mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2026-09-16 18:13:06 +00:00
Compare commits
169
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0447a30b38 | ||
|
|
b6e6237b45 | ||
|
|
6dd3fc61fc | ||
|
|
a39480bc48 | ||
|
|
9863149a28 | ||
|
|
41f9974919 | ||
|
|
997fa81c59 | ||
|
|
8db863219c | ||
|
|
29132ec5c8 | ||
|
|
3711eecca4 | ||
|
|
f4a8084f0c | ||
|
|
dd91f2eeb6 | ||
|
|
cb69f34aa7 | ||
|
|
63886d5262 | ||
|
|
8567b147be | ||
|
|
52a733d2a2 | ||
|
|
ad150bf610 | ||
|
|
77fde1ab65 | ||
|
|
005b26c54f | ||
|
|
97253bba85 | ||
|
|
1049de9825 | ||
|
|
5d92a08f1e | ||
|
|
8ab4e15daf | ||
|
|
99db02b9db | ||
|
|
b156e866b2 | ||
|
|
aa6b5089bb | ||
|
|
fc224713f2 | ||
|
|
2bc74f012d | ||
|
|
c890999c80 | ||
|
|
713320b01d | ||
|
|
2f3c9f1658 | ||
|
|
b5310f6b89 | ||
|
|
7028910616 | ||
|
|
d26593e4d8 | ||
|
|
25d85c7890 | ||
|
|
2dccde9e6b | ||
|
|
7d02ea61a2 | ||
|
|
33d7fca2cf | ||
|
|
e7bb097be6 | ||
|
|
90c8cb3add | ||
|
|
8625a49df7 | ||
|
|
d412579836 | ||
|
|
fbccbb5a98 | ||
|
|
bac4d786bc | ||
|
|
0d4049b333 | ||
|
|
69689876af | ||
|
|
55ec15e174 | ||
|
|
c89714be83 | ||
|
|
6e7b1808cc | ||
|
|
8e3d5a9b9f | ||
|
|
02dcd4fb48 | ||
|
|
477d49eaee | ||
|
|
b876102098 | ||
|
|
f76e10ff09 | ||
|
|
4aa2e0eb87 | ||
|
|
058cd9e01c | ||
|
|
2062d4744c | ||
|
|
6cd6eefc92 | ||
|
|
561f8c38d4 | ||
|
|
f8f6d145f3 | ||
|
|
c00c7643b1 | ||
|
|
05e2033633 | ||
|
|
384628197e | ||
|
|
f18fd94085 | ||
|
|
41f135df0f | ||
|
|
9014a85eda | ||
|
|
96075ae456 | ||
|
|
c5710c0e61 | ||
|
|
54bb8e24e5 | ||
|
|
275d30b043 | ||
|
|
a1ec61f857 | ||
|
|
3b7ac02098 | ||
|
|
0ba076722f | ||
|
|
bcfa488940 | ||
|
|
b1311c6966 | ||
|
|
6e99dd663a | ||
|
|
5ce8553901 | ||
|
|
d2f9523053 | ||
|
|
99015fee87 | ||
|
|
e16bed611c | ||
|
|
5d2dddee28 | ||
|
|
cae2d70637 | ||
|
|
d873306c7c | ||
|
|
dd1feeec6e | ||
|
|
08b4cc7939 | ||
|
|
7c6ce0a5fe | ||
|
|
b9c53e586d | ||
|
|
cd84be9712 | ||
|
|
1a00249f6a | ||
|
|
4c7e500ea8 | ||
|
|
c12b4284ef | ||
|
|
a0333b1d9c | ||
|
|
857f9bd2b4 | ||
|
|
e59176d393 | ||
|
|
49c6cb5ad3 | ||
|
|
65e0c2405a | ||
|
|
d50aa91922 | ||
|
|
e0dfc9a8e9 | ||
|
|
3f8293b64c | ||
|
|
e8a3d109d4 | ||
|
|
4043d55fc4 | ||
|
|
52520bb61e | ||
|
|
afb22bbc02 | ||
|
|
ca49693bd6 | ||
|
|
a720edd2cf | ||
|
|
1f450c0593 | ||
|
|
0ab39e28fd | ||
|
|
11c3a02acc | ||
|
|
4f25426c25 | ||
|
|
89b79c9e45 | ||
|
|
71e7fc0bf6 | ||
|
|
d6e8e7a3b3 | ||
|
|
49237fee2d | ||
|
|
2d386c5890 | ||
|
|
2a45c1e7a3 | ||
|
|
b503773475 | ||
|
|
efb2558c3f | ||
|
|
266d3aa9b0 | ||
|
|
b6cf14c844 | ||
|
|
4a3bc568ad | ||
|
|
42dbfe25ac | ||
|
|
2c248a611f | ||
|
|
588ffe0fa0 | ||
|
|
61a3e30c31 | ||
|
|
facc4f6b03 | ||
|
|
3df6bcea26 | ||
|
|
f02272ac68 | ||
|
|
1746fcf653 | ||
|
|
011f78ac43 | ||
|
|
46717cdd4b | ||
|
|
d71eb6291a | ||
|
|
ad9ffeb17d | ||
|
|
44538015fa | ||
|
|
4f7f5b0afb | ||
|
|
a5a9a1e45b | ||
|
|
570bfb235c | ||
|
|
491d16f562 | ||
|
|
eb8bad1f96 | ||
|
|
35721b0279 | ||
|
|
59df5c661d | ||
|
|
bd9127d960 | ||
|
|
32e4564e14 | ||
|
|
cc33c5dec1 | ||
|
|
6138c16f42 | ||
|
|
a412b45300 | ||
|
|
b99a574f94 | ||
|
|
616ae95c23 | ||
|
|
bbee01a809 | ||
|
|
067d4e9369 | ||
|
|
db38ccda7a | ||
|
|
8a2f73ec2f | ||
|
|
55b146044e | ||
|
|
73e1953418 | ||
|
|
0b9fb82de2 | ||
|
|
f654fdf008 | ||
|
|
34e5508076 | ||
|
|
9d143cf945 | ||
|
|
fe65f7c201 | ||
|
|
f6fd813a29 | ||
|
|
93edda2263 | ||
|
|
3ab91806c3 | ||
|
|
2bf1832fec | ||
|
|
9f77d4187b | ||
|
|
e7624f031a | ||
|
|
c4dbda49eb | ||
|
|
1791534ec6 | ||
|
|
fd6f881eab | ||
|
|
28b20afc16 | ||
|
|
01678a4fc7 |
@@ -17,7 +17,6 @@ demo-shell/resources/
|
||||
/angular.json
|
||||
/desktop.ini
|
||||
/cspell.json
|
||||
/.travis.yml
|
||||
/CODE_OF_CONDUCT.md
|
||||
/.stylelintignore
|
||||
/ALFRESCOCORS.md
|
||||
|
||||
@@ -8,7 +8,7 @@ inputs:
|
||||
default: 'false'
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
steps:
|
||||
- name: Before install
|
||||
if: ${{ ! env.ACT }}
|
||||
shell: bash
|
||||
@@ -22,7 +22,7 @@ runs:
|
||||
echo "GIT_HASH=$(git rev-parse HEAD)";
|
||||
echo "BASE_HASH=$(git merge-base origin/${GITHUB_BASE_REF} HEAD)";
|
||||
echo "HEAD_HASH=HEAD";
|
||||
echo "HEAD_COMMIT_HASH=${TRAVIS_PULL_REQUEST_SHA:-${TRAVIS_COMMIT}}";
|
||||
echo "HEAD_COMMIT_HASH=${GH_COMMIT}";
|
||||
echo "NX_CALCULATION_FLAGS=--all";
|
||||
echo "BUILD_OPTS=--configuration production";
|
||||
echo CI_FORCE_RUN=false;
|
||||
@@ -35,7 +35,7 @@ runs:
|
||||
run: |
|
||||
echo "Setting up CI to run with commit flag [affected:*] flag."
|
||||
echo "BREAK_ACTION=true" >> $GITHUB_ENV
|
||||
|
||||
|
||||
- name: ci:force flag parser
|
||||
shell: bash
|
||||
if: ${{ contains(github.event.head_commit.message , '[ci:force]') }}
|
||||
@@ -45,7 +45,7 @@ runs:
|
||||
echo "BREAK_ACTION=true" >> $GITHUB_ENV
|
||||
|
||||
- name: PULL_REQUEST event
|
||||
if: ${{ env.BREAK_ACTION == false && github.event_name == 'pull_request' }}
|
||||
if: ${{ env.BREAK_ACTION == false && github.event_name == 'pull_request' && !github.event.pull_request.merged }}
|
||||
shell: bash
|
||||
run: |
|
||||
echo "Setting up CI flags for Pull Request event"
|
||||
@@ -76,8 +76,8 @@ runs:
|
||||
- name: SCHEDULE event
|
||||
if: ${{ github.event_name == 'schedule' }}
|
||||
shell: bash
|
||||
env:
|
||||
EV_NAME: ${{ github.event_name }}
|
||||
env:
|
||||
EV_NAME: ${{ github.event_name }}
|
||||
run: |
|
||||
echo "Setting up CI to run on SCHEDULE"
|
||||
echo "NX_CALCULATION_FLAGS=--all" >> $GITHUB_ENV
|
||||
|
||||
@@ -60,9 +60,9 @@ runs:
|
||||
run: |
|
||||
set -u;
|
||||
mkdir -p "${SMART_RUNNER_PATH}"
|
||||
if [[ $(aws s3 ls "${S3_BUILD_BUCKET}/adf/${REMOTE_PATH}" > /dev/null; echo $?) -eq 0 ]]; then
|
||||
if [[ $(aws s3 ls "s3://${S3_BUILD_BUCKET_SHORT_NAME}/adf/${REMOTE_PATH}" > /dev/null; echo $?) -eq 0 ]]; then
|
||||
echo "downloading test files"
|
||||
aws s3 cp "${S3_BUILD_BUCKET}/adf/${REMOTE_PATH}" .;
|
||||
aws s3 cp "s3://${S3_BUILD_BUCKET_SHORT_NAME}/adf/${REMOTE_PATH}" .;
|
||||
tar xzf ${{ inputs.e2e-tar-name }};
|
||||
else
|
||||
echo "nothing to download";
|
||||
@@ -134,7 +134,7 @@ runs:
|
||||
PROVIDER: "${{ inputs.e2e-test-provider }}"
|
||||
AUTH_TYPE: "${{ inputs.e2e-test-auth }}"
|
||||
E2E_TEST_ID: "${{ inputs.e2e-test-id }}"
|
||||
|
||||
|
||||
uses: nick-fields/retry@v2.8.2
|
||||
with:
|
||||
timeout_minutes: 40
|
||||
@@ -144,16 +144,24 @@ runs:
|
||||
command: |
|
||||
set -u;
|
||||
export GH_ACTION_RETRY_COUNT=$(cat ${GITHUB_OUTPUT} | grep -E '^[0-9]{1,2}$' | tail -n1)
|
||||
echo "RETRY GH_ACTION_RETRY_COUNT = <$GH_ACTION_RETRY_COUNT>"
|
||||
echo "RETRY GH_ACTION_RETRY_COUNT = <$GH_ACTION_RETRY_COUNT>"
|
||||
if [[ ${{ inputs.e2e-test-folder }} == 'content-services/upload' ]]; then
|
||||
export DISPLAY=:99
|
||||
chromedriver --url-base=/wd/hub &
|
||||
sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & # optional
|
||||
bash ./scripts/travis/e2e/e2e.sh "$E2E_TEST_ID" "browser" || exit 1
|
||||
sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & # optional
|
||||
bash ./scripts/github/e2e/e2e.sh "$E2E_TEST_ID" "browser" || exit 1
|
||||
else
|
||||
bash ./scripts/travis/e2e/e2e.sh "$E2E_TEST_ID" || exit 1
|
||||
bash ./scripts/github/e2e/e2e.sh "$E2E_TEST_ID" || exit 1
|
||||
fi
|
||||
- name: upload smartrunner tests results on s3 to cache tests
|
||||
|
||||
- name: upload artifacts on gh
|
||||
id: upload_gh
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: e2e-artifact-output
|
||||
path: /home/runner/work/alfresco-ng2-components/alfresco-ng2-components/e2e-output-*
|
||||
|
||||
- name: upload smart-runner tests results on s3 to cache tests
|
||||
shell: bash
|
||||
if: always()
|
||||
env:
|
||||
@@ -161,4 +169,4 @@ runs:
|
||||
# description: always upload newer results
|
||||
run: |
|
||||
tar czf "${{ inputs.e2e-tar-name }}" "${SMART_RUNNER_PATH}"
|
||||
aws s3 cp "${{ inputs.e2e-tar-name }}" "${S3_BUILD_BUCKET}/adf/$REMOTE_PATH"
|
||||
aws s3 cp "${{ inputs.e2e-tar-name }}" "s3://${S3_BUILD_BUCKET_SHORT_NAME}/adf/${REMOTE_PATH}"
|
||||
|
||||
@@ -1,19 +1,28 @@
|
||||
name: 'Check NPM bundle'
|
||||
description: 'check npm bundle'
|
||||
|
||||
outputs:
|
||||
tag_sha:
|
||||
description: "long sha of the tag"
|
||||
value: ${{ steps.sha_out.outputs.tag_sha }}
|
||||
inputs:
|
||||
branch_name:
|
||||
description: "override GITHUB_REF_NAME"
|
||||
required: false
|
||||
default: $GITHUB_REF_NAME
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
|
||||
steps:
|
||||
- name: load "NPM TAG"
|
||||
uses: ./.github/actions/set-npm-tag
|
||||
with:
|
||||
branch_name: ${{ inputs.branch_name }}
|
||||
- name: check npm bundle
|
||||
shell: bash
|
||||
id: sha_out
|
||||
run: |
|
||||
ADF_VERSION=$(npm view @alfresco/adf-core@${TAG_NPM} version)
|
||||
echo "check bundle on TAG_NPM='${TAG_NPM}' and ADF_VERSION='${ADF_VERSION}'"
|
||||
./scripts/travis/build/npm-check-bundles.sh -v ${ADF_VERSION}
|
||||
if [[ -z $TAG_NPM ]]; then
|
||||
echo "TAG_NPM not set, aborting"
|
||||
exit 1
|
||||
fi
|
||||
ADF_VERSION=$(npm view @alfresco/adf-core@${TAG_NPM} version)
|
||||
echo "check bundle on TAG_NPM='${TAG_NPM}' and ADF_VERSION='${ADF_VERSION}'"
|
||||
./scripts/github/build/npm-check-bundles.sh -v ${ADF_VERSION}
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
name: "set npm tag"
|
||||
description: "se NPM tag"
|
||||
|
||||
inputs:
|
||||
event_name:
|
||||
description: "override github.event_name"
|
||||
required: false
|
||||
default: ${{ github.event_name }}
|
||||
branch_name:
|
||||
description: "override GITHUB_REF_NAME"
|
||||
required: false
|
||||
default: $GITHUB_REF_NAME
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
|
||||
- name: set TAG_NPM
|
||||
shell: bash
|
||||
run: |
|
||||
TAG_NPM="alpha"
|
||||
VERSION_IN_PACKAGE_JSON=$(node -p "require('./package.json')".version)
|
||||
echo "version in package.json=${VERSION_IN_PACKAGE_JSON}"
|
||||
if [[ ${{ inputs.branch_name }} =~ ^master(-patch.*)?$ ]]; then
|
||||
# Pre-release versions
|
||||
if [[ $VERSION_IN_PACKAGE_JSON =~ ^[0-9]*\.[0-9]*\.[0-9]*-A\.[0-9]*$ ]];
|
||||
then
|
||||
TAG_NPM=next
|
||||
# Stable major versions
|
||||
else
|
||||
TAG_NPM=latest
|
||||
fi
|
||||
fi
|
||||
if [[ ${{ inputs.branch_name }} =~ ^develop(-patch.*)?$ ]]; then
|
||||
TAG_NPM=alpha
|
||||
fi
|
||||
echo "TAG_NPM=${TAG_NPM}" >> $GITHUB_ENV
|
||||
@@ -10,7 +10,7 @@ inputs:
|
||||
description: 'enable caching for node modules'
|
||||
required: false
|
||||
type: boolean
|
||||
default: 'true'
|
||||
default: 'true'
|
||||
act:
|
||||
description: 'enable act debug'
|
||||
required: false
|
||||
@@ -26,24 +26,8 @@ runs:
|
||||
cache-dependency-path: package-lock.json
|
||||
- name: get latest tag sha
|
||||
id: tag-sha
|
||||
uses: ./.github/actions/get-latest-tag-sha
|
||||
uses: Alfresco/alfresco-build-tools/.github/actions/git-latest-tag@v1.29.0
|
||||
# CACHE
|
||||
- name: Node cache
|
||||
id: node-cache
|
||||
if: ${{ inputs.enable-cache == 'true' }}
|
||||
uses: actions/cache@v3
|
||||
env:
|
||||
cache-name: node-cache
|
||||
with:
|
||||
path: |
|
||||
~/.npm
|
||||
nxcache
|
||||
dist
|
||||
key: .npm-${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}-${{ steps.tag-sha.outputs.tag_sha }}
|
||||
restore-keys: |
|
||||
node-${{ runner.os }}-build-${{ env.cache-name }}-
|
||||
node-${{ runner.os }}-build-
|
||||
node-${{ runner.os }}-
|
||||
- name: Node Modules cache
|
||||
id: node-modules-cache
|
||||
if: ${{ inputs.enable-node-modules-cache == 'true' }}
|
||||
@@ -53,11 +37,11 @@ runs:
|
||||
with:
|
||||
path: |
|
||||
node_modules
|
||||
key: .npm-${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}-${{ steps.tag-sha.outputs.tag_sha }}
|
||||
key: .npm-${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
|
||||
restore-keys: |
|
||||
node_modules-${{ runner.os }}-build-${{ env.cache-name }}-
|
||||
node_modules-${{ runner.os }}-build-
|
||||
node_modules-${{ runner.os }}-
|
||||
node_modules-${{ runner.os }}-
|
||||
- name: pip cache
|
||||
uses: actions/cache@v3
|
||||
if: ${{ inputs.enable-cache == 'true' }}
|
||||
@@ -66,13 +50,8 @@ runs:
|
||||
key: ${{ runner.os }}-pip-
|
||||
restore-keys: |
|
||||
${{ runner.os }}
|
||||
# ENV LOAD
|
||||
- name: load .travis.yml env.global variables
|
||||
uses: Alfresco/alfresco-build-tools/.github/actions/travis-env-load@v1.17.0
|
||||
with:
|
||||
yml_path: .travis.yml
|
||||
- name: load "TRAVIS_EVENT_TYPE"
|
||||
uses: ./.github/actions/travis-env-var-facade
|
||||
- name: load "NPM TAG"
|
||||
uses: ./.github/actions/set-npm-tag
|
||||
- name: before install script
|
||||
uses: ./.github/actions/before-install
|
||||
with:
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
# TRAVIS_EVENT_TYPE= Indicates how the build was triggered. One of push, pull_request, api, cron
|
||||
name: "travis-event-type-env-var"
|
||||
description: "Mimic loading of a TRAVIS_EVENT_TYPE env var"
|
||||
|
||||
inputs:
|
||||
event_name:
|
||||
description: "override github.event_name"
|
||||
required: false
|
||||
default: ${{ github.event_name }}
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Parse env global
|
||||
shell: bash
|
||||
run: |
|
||||
EVENT_TYPE=""
|
||||
TRAVIS_PULL_REQUEST_BRANCH=""
|
||||
TRAVIS_BRANCH=""
|
||||
TAG_NPM=""
|
||||
REGEX="(repository|workflow)_dispatch"
|
||||
if [[ "${{ inputs.event_name }}" == "schedule" ]]; then
|
||||
EVENT_TYPE="cron";
|
||||
elif [[ "${{ inputs.event_name }}" == "pull_request" ]]; then
|
||||
EVENT_TYPE="pull_request";
|
||||
TRAVIS_BRANCH=${GITHUB_BASE_REF}
|
||||
TRAVIS_PULL_REQUEST_BRANCH=${GITHUB_BASE_REF}
|
||||
elif [[ "${{ inputs.event_name }}" == "push" ]]; then
|
||||
EVENT_TYPE="push";
|
||||
TRAVIS_BRANCH=${GITHUB_REF##*/}
|
||||
elif [[ "${{ inputs.event_name }}" =~ $REGEX ]]; then
|
||||
EVENT_TYPE="api";
|
||||
fi
|
||||
|
||||
if [[ GITHUB_REF_NAME == "master" ]]; then
|
||||
echo "Set up TAG_NPM to latest on master branch"
|
||||
TAG_NPM="latest"
|
||||
fi
|
||||
if [[ GITHUB_REF_NAME == "develop" ]]; then
|
||||
echo "Set up TAG_NPM to alpha on develop branch"
|
||||
TAG_NPM="alpha"
|
||||
fi
|
||||
echo "TAG_NPM=${TAG_NPM}" >> $GITHUB_ENV
|
||||
echo "TRAVIS_EVENT_TYPE=${EVENT_TYPE}" >> $GITHUB_ENV
|
||||
echo "TRAVIS_PULL_REQUEST_BRANCH=${TRAVIS_PULL_REQUEST_BRANCH}" >> $GITHUB_ENV
|
||||
echo "TRAVIS_BRANCH=${TRAVIS_BRANCH}" >> $GITHUB_ENV
|
||||
@@ -1,28 +0,0 @@
|
||||
# TRAVIS_EVENT_TYPE= Indicates how the build was triggered. One of push, pull_request, api, cron
|
||||
name: "travis-event-type-env-var"
|
||||
description: "Mimic loading of a TRAVIS_EVENT_TYPE env var"
|
||||
|
||||
inputs:
|
||||
event_name:
|
||||
description: "override github.event_name"
|
||||
required: false
|
||||
default: ${{ github.event_name }}
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Parse env global
|
||||
run: |
|
||||
EVENT_TYPE=""
|
||||
REGEX="(repository|workflow)_dispatch"
|
||||
if [[ "${{ inputs.event_name }}" == "schedule" ]]; then
|
||||
EVENT_TYPE="cron";
|
||||
elif [[ "${{ inputs.event_name }}" == "pull_request" ]]; then
|
||||
EVENT_TYPE="pull_request";
|
||||
elif [[ "${{ inputs.event_name }}" == "push" ]]; then
|
||||
EVENT_TYPE="push";
|
||||
elif [[ "${{ inputs.event_name }}" =~ $REGEX ]]; then
|
||||
EVENT_TYPE="api";
|
||||
fi
|
||||
echo "TRAVIS_EVENT_TYPE=${EVENT_TYPE}" >> $GITHUB_ENV
|
||||
echo "exporting TRAVIS_EVENT_TYPE=${EVENT_TYPE}"
|
||||
shell: bash
|
||||
+2
-2
@@ -7,13 +7,13 @@ runs:
|
||||
- name: tar and upload artifacts
|
||||
shell: bash
|
||||
env:
|
||||
REMOTE_PATH: "alfresco-ng2-components/build-cache/${{ github.run_id }}"
|
||||
REMOTE_PATH: "alfresco-ng2-components/build-cache/${{ github.run_id }}"
|
||||
run: |
|
||||
packages=( dist nxcache node_modules )
|
||||
for i in "${packages[@]}"; do
|
||||
time tar czf $i.tar.gz $i
|
||||
du -h $i.tar.gz
|
||||
time aws s3 cp --no-progress $i.tar.gz s3://${S3_BUILD_BUCKET_SHORT_NAME}/${REMOTE_PATH}/$i.tar.gz
|
||||
time aws s3 cp --no-progress $i.tar.gz "s3://${S3_BUILD_BUCKET_SHORT_NAME}/${REMOTE_PATH}/$i.tar.gz"
|
||||
done
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ updates:
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
day: "sunday"
|
||||
time: "07:00"
|
||||
open-pull-requests-limit: 5
|
||||
target-branch: develop
|
||||
ignore:
|
||||
|
||||
@@ -1,7 +1,13 @@
|
||||
name: "alpha-adf"
|
||||
name: "upstream adf"
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
repo_to_update:
|
||||
description: Repository to update
|
||||
type: string
|
||||
required: false
|
||||
default: alfresco-applications
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
cluster_operation:
|
||||
@@ -9,18 +15,29 @@ on:
|
||||
type: choice
|
||||
required: true
|
||||
options:
|
||||
- TRIGGER_ALPHA_ADF
|
||||
- TRIGGER_ALPHA_ADF
|
||||
default: TRIGGER_ALPHA_ADF
|
||||
repo_to_update:
|
||||
description: Repository to update
|
||||
type: choice
|
||||
required: true
|
||||
options:
|
||||
- all
|
||||
- alfresco-content-app
|
||||
- alfresco-applications
|
||||
- alfresco-apps
|
||||
default: all
|
||||
|
||||
env:
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
GITHUB_BRANCH: ${{ github.ref_name }}
|
||||
GH_TOKEN: ${{ secrets.BOT_GITHUB_TOKEN }}
|
||||
TRAVIS_BUILD_DIR: ${{ github.workspace }}
|
||||
TRAVIS_COMMIT: ${{ github.sha }}
|
||||
GH_BUILD_DIR: ${{ github.workspace }}
|
||||
GH_COMMIT: ${{ github.sha }}
|
||||
BUILD_ID: ${{ github.run_id }}
|
||||
TRAVIS_RUN_NUMBER: ${{ github.run_attempt }}
|
||||
TRAVIS_BUILD_NUMBER: github-run-${{ github.run_id }}
|
||||
GH_RUN_NUMBER: ${{ github.run_attempt }}
|
||||
GH_BUILD_NUMBER: ${{ github.run_id }}
|
||||
JOB_ID: ${{ github.run_id }}
|
||||
PROXY_HOST_BPM: ${{ secrets.E2E_HOST }}
|
||||
E2E_HOST_APA: ${{ secrets.E2E_HOST_APA }}
|
||||
@@ -55,20 +72,30 @@ env:
|
||||
DOCKER_REPOSITORY_STORYBOOK: "${{ secrets.DOCKER_REPOSITORY_DOMAIN }}/alfresco/storybook"
|
||||
DOCKER_REPOSITORY: "${{ secrets.DOCKER_REPOSITORY_DOMAIN }}/alfresco/demo-shell"
|
||||
NODE_OPTIONS: "--max-old-space-size=5120"
|
||||
GH_PACKAGES_READ_ONLY_TOKEN: ${{ secrets.HYLAND_GH_PACKAGES_READ_ONLY_TOKEN }}
|
||||
|
||||
jobs:
|
||||
trigger_adf:
|
||||
name: trigger adf test
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
name: trigger adf
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: install NPM
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 14
|
||||
cache-dependency-path: package-lock.json
|
||||
# - name: Debug on failure
|
||||
# uses: mxschmitt/action-tmate@v3
|
||||
# with:
|
||||
# timeout-minutes: 60
|
||||
# limit-access-to-actor: true
|
||||
- name: Trigger Alpha ADF child build
|
||||
shell: bash
|
||||
if: ${{ contains(github.event.head_commit.message, '[trigger adf]') || inputs.cluster_operation == 'TRIGGER_ALPHA_ADF' || github.event.schedule == '0 11 * * *' }}
|
||||
if: ${{ contains(github.event.head_commit.message, '[trigger adf]') || inputs.cluster_operation == 'TRIGGER_ALPHA_ADF' || github.event.schedule == '0 12 * * *' }}
|
||||
run: |
|
||||
npm install github-api
|
||||
./scripts/travis/update/update-project.sh -p $TRAVIS_BUILD_NUMBER -t $GH_TOKEN -v alpha -c $TRAVIS_COMMIT -d
|
||||
|
||||
npm install github-api
|
||||
./scripts/github/update/update-project.sh -p $GH_BUILD_NUMBER -t $GH_TOKEN -v alpha -c $GH_COMMIT -r ${{ inputs.repo_to_update }}
|
||||
|
||||
@@ -16,20 +16,15 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
# We must fetch at least the immediate parents so that if this is
|
||||
# a pull request then we can checkout the head.
|
||||
fetch-depth: 2
|
||||
|
||||
# If this run was triggered by a pull request event, then checkout
|
||||
# the head of the pull request instead of the merge commit.
|
||||
- run: git checkout HEAD^2
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v1
|
||||
uses: github/codeql-action/init@v2
|
||||
# Override language selection by uncommenting this and choosing your languages
|
||||
with:
|
||||
languages: javascript
|
||||
@@ -37,7 +32,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@v1
|
||||
uses: github/codeql-action/autobuild@v2
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
@@ -51,4 +46,4 @@ jobs:
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v1
|
||||
uses: github/codeql-action/analyze@v2
|
||||
|
||||
@@ -1,18 +1,20 @@
|
||||
name: "cron schedule"
|
||||
name: "cron e2e daily"
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 11 * * *'
|
||||
- cron: '0 12 * * *'
|
||||
|
||||
env:
|
||||
BASE_REF: ${{ github.base_ref }}
|
||||
HEAD_REF: ${{ github.head_ref }}
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
GITHUB_BRANCH: ${{ github.ref_name }}
|
||||
TRAVIS_BUILD_DIR: ${{ github.workspace }}
|
||||
TRAVIS_COMMIT: ${{ github.sha }}
|
||||
GH_BUILD_DIR: ${{ github.workspace }}
|
||||
GH_COMMIT: ${{ github.sha }}
|
||||
BUILD_ID: ${{ github.run_id }}
|
||||
TRAVIS_RUN_NUMBER: ${{ github.run_attempt }}
|
||||
TRAVIS_BUILD_NUMBER: github-run-${{ github.run_id }}
|
||||
GH_RUN_NUMBER: ${{ github.run_attempt }}
|
||||
GH_BUILD_NUMBER: ${{ github.run_id }}
|
||||
JOB_ID: ${{ github.run_id }}
|
||||
PROXY_HOST_BPM: ${{ secrets.E2E_HOST }}
|
||||
E2E_HOST_APA: ${{ secrets.E2E_HOST_APA }}
|
||||
@@ -21,9 +23,9 @@ env:
|
||||
E2E_PASSWORD: ${{ secrets.E2E_PASSWORD }}
|
||||
E2E_ADMIN_EMAIL_IDENTITY: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
|
||||
E2E_ADMIN_PASSWORD_IDENTITY: ${{ secrets.E2E_ADMIN_PASSWORD_IDENTITY }}
|
||||
USERNAME_ADF: ${{ secrets.E2E_USERNAME }}
|
||||
USERNAME_ADF: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
|
||||
PASSWORD_ADF: ${{ secrets.E2E_PASSWORD }}
|
||||
URL_HOST_ADF: ${{ secrets.URL_HOST_ADF }}
|
||||
URL_HOST_ADF: "http://localhost:4200"
|
||||
IDENTITY_ADMIN_EMAIL: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
|
||||
IDENTITY_ADMIN_PASSWORD: ${{ secrets.E2E_ADMIN_PASSWORD_IDENTITY }}
|
||||
AWS_S3_BUCKET_ACTIVITI_LICENSE: ${{ secrets.AWS_S3_BUCKET_ACTIVITI_LICENSE }}
|
||||
@@ -39,21 +41,33 @@ env:
|
||||
PASSWORD_SUPER_ADMIN_ADF: ${{ secrets.PASSWORD_SUPER_ADMIN_ADF }}
|
||||
HR_USER: ${{ secrets.HR_USER }}
|
||||
HR_USER_PASSWORD: ${{ secrets.HR_USER_PASSWORD }}
|
||||
NPM_REGISTRY_ADDRESS: ${{ secrets.NPM_REGISTRY_ADDRESS }}
|
||||
NPM_REGISTRY_TOKEN: ${{ secrets.NPM_REGISTRY_TOKEN }}
|
||||
SMART_RUNNER_PATH: ".protractor-smartrunner"
|
||||
S3_DBP_PATH: ${{ secrets.S3_DBP_PATH }}
|
||||
S3_BUILD_BUCKET_SHORT_NAME: ${{ secrets.S3_BUILD_BUCKET_SHORT_NAME }}
|
||||
NODE_OPTIONS: "--max-old-space-size=5120"
|
||||
DOCKER_REPOSITORY_DOMAIN: ${{ secrets.DOCKER_REPOSITORY_DOMAIN }}
|
||||
DOCKER_REPOSITORY_USER: ${{ secrets.DOCKER_REPOSITORY_USER }}
|
||||
DOCKER_REPOSITORY_PASSWORD: ${{ secrets.DOCKER_REPOSITORY_PASSWORD }}
|
||||
DOCKER_REPOSITORY_DOMAIN: ${{ secrets.DOCKER_REPOSITORY_DOMAIN }}
|
||||
DOCKER_REPOSITORY_STORYBOOK: "${{ secrets.DOCKER_REPOSITORY_DOMAIN }}/alfresco/storybook"
|
||||
DOCKER_REPOSITORY: "${{ secrets.DOCKER_REPOSITORY_DOMAIN }}/alfresco/demo-shell"
|
||||
NODE_OPTIONS: "--max-old-space-size=5120"
|
||||
REPO_OWNER: "Alfresco"
|
||||
REPO_NAME: "alfresco-ng2-components"
|
||||
DEMO_SHELL_DIR: "./dist/demo-shell"
|
||||
STORYBOOK_DIR: "./dist/storybook/stories"
|
||||
BUILT_LIBS_DIR: "./dist/libs"
|
||||
NODE_MODULES_DIR: "./node_modules"
|
||||
SMART_RUNNER_DIRECTORY: ".protractor-smartrunner"
|
||||
SAVE_SCREENSHOT: true
|
||||
REDIRECT_URI: /
|
||||
BROWSER_RUN: false
|
||||
MAXINSTANCES: 2
|
||||
PLAYWRIGHT_WORKERS: 2
|
||||
PLAYWRIGHT_STORYBOOK_E2E_HOST: http://localhost
|
||||
PLAYWRIGHT_STORYBOOK_E2E_PORT: 4400
|
||||
PROXY_HOST_ECM: ${{ secrets.E2E_HOST }}
|
||||
|
||||
jobs:
|
||||
run-e2e:
|
||||
name: run e2e
|
||||
uses: ./.github/workflows/pull-request.yml
|
||||
secrets: inherit
|
||||
|
||||
adf-alpha-test:
|
||||
name: trigger alpha test
|
||||
uses: ./.github/workflows/adf_alpha.yml
|
||||
@@ -0,0 +1,27 @@
|
||||
name: "cron upstream daily"
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 12 * * *'
|
||||
|
||||
jobs:
|
||||
adf-upstream-alpha-alfresco-aca:
|
||||
name: trigger upstream alpha for alfresco-content-app
|
||||
uses: ./.github/workflows/adf_alpha.yml
|
||||
secrets: inherit
|
||||
with:
|
||||
repo_to_update: alfresco-content-app
|
||||
|
||||
adf-upstream-alpha-alfresco-apps:
|
||||
name: trigger upstream alpha for alfresco-applications
|
||||
uses: ./.github/workflows/adf_alpha.yml
|
||||
secrets: inherit
|
||||
with:
|
||||
repo_to_update: alfresco-applications
|
||||
|
||||
adf-upstream-alpha-hxp:
|
||||
name: trigger upstream alpha for hxp monorepo
|
||||
uses: ./.github/workflows/adf_alpha.yml
|
||||
secrets: inherit
|
||||
with:
|
||||
repo_to_update: alfresco-apps
|
||||
@@ -0,0 +1,16 @@
|
||||
name: pr-workflow
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- "devops/*"
|
||||
|
||||
|
||||
jobs:
|
||||
|
||||
adf-upstream-alpha-hxp:
|
||||
name: trigger upstream alpha for hxp monorepo
|
||||
uses: ./.github/workflows/adf_alpha.yml
|
||||
secrets: inherit
|
||||
with:
|
||||
repo_to_update: alfresco-apps
|
||||
@@ -0,0 +1,111 @@
|
||||
name: "git-tag"
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
dry-run-release:
|
||||
description: 'enable dry-run on artifact push'
|
||||
required: false
|
||||
type: boolean
|
||||
default: true
|
||||
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- master-patch-*
|
||||
env:
|
||||
BASE_REF: ${{ github.base_ref }}
|
||||
HEAD_REF: ${{ github.head_ref }}
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
GITHUB_BRANCH: ${{ github.ref_name }}
|
||||
GH_BUILD_DIR: ${{ github.workspace }}
|
||||
GH_COMMIT: ${{ github.sha }}
|
||||
BUILD_ID: ${{ github.run_id }}
|
||||
GH_RUN_NUMBER: ${{ github.run_attempt }}
|
||||
GH_BUILD_NUMBER: ${{ github.run_id }}
|
||||
JOB_ID: ${{ github.run_id }}
|
||||
PROXY_HOST_BPM: ${{ secrets.E2E_HOST }}
|
||||
E2E_HOST_APA: ${{ secrets.E2E_HOST_APA }}
|
||||
E2E_HOST: ${{ secrets.E2E_HOST }}
|
||||
E2E_USERNAME: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
|
||||
E2E_PASSWORD: ${{ secrets.E2E_PASSWORD }}
|
||||
E2E_ADMIN_EMAIL_IDENTITY: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
|
||||
E2E_ADMIN_PASSWORD_IDENTITY: ${{ secrets.E2E_ADMIN_PASSWORD_IDENTITY }}
|
||||
USERNAME_ADF: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
|
||||
PASSWORD_ADF: ${{ secrets.E2E_PASSWORD }}
|
||||
URL_HOST_ADF: "http://localhost:4200"
|
||||
IDENTITY_ADMIN_EMAIL: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
|
||||
IDENTITY_ADMIN_PASSWORD: ${{ secrets.E2E_ADMIN_PASSWORD_IDENTITY }}
|
||||
AWS_S3_BUCKET_ACTIVITI_LICENSE: ${{ secrets.AWS_S3_BUCKET_ACTIVITI_LICENSE }}
|
||||
HOST_SSO: ${{ secrets.HOST_SSO }}
|
||||
LOG_LEVEL: "ERROR"
|
||||
E2E_LOG_LEVEL: "ERROR"
|
||||
E2E_MODELER_USERNAME: ${{ secrets.E2E_MODELER_USERNAME }}
|
||||
E2E_MODELER_PASSWORD: ${{ secrets.E2E_MODELER_PASSWORD }}
|
||||
EXTERNAL_ACS_HOST: ${{ secrets.EXTERNAL_ACS_HOST }}
|
||||
E2E_DEVOPS_USERNAME: ${{ secrets.E2E_DEVOPS_USERNAME }}
|
||||
E2E_DEVOPS_PASSWORD: ${{ secrets.E2E_DEVOPS_PASSWORD }}
|
||||
USERNAME_SUPER_ADMIN_ADF: ${{ secrets.USERNAME_SUPER_ADMIN_ADF }}
|
||||
PASSWORD_SUPER_ADMIN_ADF: ${{ secrets.PASSWORD_SUPER_ADMIN_ADF }}
|
||||
HR_USER: ${{ secrets.HR_USER }}
|
||||
HR_USER_PASSWORD: ${{ secrets.HR_USER_PASSWORD }}
|
||||
SMART_RUNNER_PATH: ".protractor-smartrunner"
|
||||
S3_DBP_PATH: ${{ secrets.S3_DBP_PATH }}
|
||||
S3_BUILD_BUCKET_SHORT_NAME: ${{ secrets.S3_BUILD_BUCKET_SHORT_NAME }}
|
||||
NODE_OPTIONS: "--max-old-space-size=5120"
|
||||
DOCKER_REPOSITORY_DOMAIN: ${{ secrets.DOCKER_REPOSITORY_DOMAIN }}
|
||||
DOCKER_REPOSITORY_USER: ${{ secrets.DOCKER_REPOSITORY_USER }}
|
||||
DOCKER_REPOSITORY_PASSWORD: ${{ secrets.DOCKER_REPOSITORY_PASSWORD }}
|
||||
DOCKER_REPOSITORY_STORYBOOK: "${{ secrets.DOCKER_REPOSITORY_DOMAIN }}/alfresco/storybook"
|
||||
DOCKER_REPOSITORY: "${{ secrets.DOCKER_REPOSITORY_DOMAIN }}/alfresco/demo-shell"
|
||||
NPM_REGISTRY_ADDRESS: ${{ secrets.NPM_REGISTRY_ADDRESS }}
|
||||
NPM_REGISTRY_TOKEN: ${{ secrets.NPM_REGISTRY_TOKEN }}
|
||||
GITHUB_TOKEN: ${{ secrets.BOT_GITHUB_TOKEN }}
|
||||
REPO_OWNER: "Alfresco"
|
||||
REPO_NAME: "alfresco-ng2-components"
|
||||
DEMO_SHELL_DIR: "./dist/demo-shell"
|
||||
STORYBOOK_DIR: "./dist/storybook/stories"
|
||||
BUILT_LIBS_DIR: "./dist/libs"
|
||||
NODE_MODULES_DIR: "./node_modules"
|
||||
SMART_RUNNER_DIRECTORY: ".protractor-smartrunner"
|
||||
SAVE_SCREENSHOT: true
|
||||
REDIRECT_URI: /
|
||||
BROWSER_RUN: false
|
||||
MAXINSTANCES: 2
|
||||
PLAYWRIGHT_WORKERS: 2
|
||||
PLAYWRIGHT_STORYBOOK_E2E_HOST: http://localhost
|
||||
PLAYWRIGHT_STORYBOOK_E2E_PORT: 4400
|
||||
PROXY_HOST_ECM: ${{ secrets.E2E_HOST }}
|
||||
|
||||
jobs:
|
||||
|
||||
release:
|
||||
uses: ./.github/workflows/release.yml
|
||||
secrets: inherit
|
||||
with:
|
||||
dry-run-release: false
|
||||
|
||||
setup:
|
||||
needs: release
|
||||
timeout-minutes: 20
|
||||
name: "Release tag"
|
||||
runs-on: ubuntu-22.04
|
||||
env:
|
||||
GITHUB_TOKEN: $GH_TOKEN
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
- id: set-dryrun
|
||||
uses: ./.github/actions/enable-dryrun
|
||||
with:
|
||||
dry-run-flag: ${{ inputs.dry-run-release }}
|
||||
- name: install NPM
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 14
|
||||
- name: "Release tag"
|
||||
run: |
|
||||
git fetch --all --quiet
|
||||
BRANCH=${GITHUB_REF##*/} ./scripts/github/release/git-tag.sh ${{ steps.set-dryrun.outputs.dryrun }}
|
||||
|
||||
@@ -8,6 +8,11 @@ on:
|
||||
required: false
|
||||
type: boolean
|
||||
default: true
|
||||
devel:
|
||||
description: 'devel'
|
||||
required: false
|
||||
type: string
|
||||
default: false
|
||||
pull_request:
|
||||
types: [opened, synchronize, reopened]
|
||||
branches:
|
||||
@@ -16,17 +21,21 @@ on:
|
||||
- develop-patch*
|
||||
- master-patch*
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
BASE_REF: ${{ github.base_ref }}
|
||||
HEAD_REF: ${{ github.head_ref }}
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
GITHUB_BRANCH: ${{ github.ref_name }}
|
||||
TRAVIS_BUILD_DIR: ${{ github.workspace }}
|
||||
TRAVIS_COMMIT: ${{ github.sha }}
|
||||
GH_BUILD_DIR: ${{ github.workspace }}
|
||||
GH_COMMIT: ${{ github.sha }}
|
||||
BUILD_ID: ${{ github.run_id }}
|
||||
TRAVIS_RUN_NUMBER: ${{ github.run_attempt }}
|
||||
TRAVIS_BUILD_NUMBER: ${{ github.run_id }}
|
||||
GH_RUN_NUMBER: ${{ github.run_attempt }}
|
||||
GH_BUILD_NUMBER: ${{ github.run_id }}
|
||||
JOB_ID: ${{ github.run_id }}
|
||||
PROXY_HOST_BPM: ${{ secrets.E2E_HOST }}
|
||||
E2E_HOST_APA: ${{ secrets.E2E_HOST_APA }}
|
||||
@@ -35,9 +44,9 @@ env:
|
||||
E2E_PASSWORD: ${{ secrets.E2E_PASSWORD }}
|
||||
E2E_ADMIN_EMAIL_IDENTITY: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
|
||||
E2E_ADMIN_PASSWORD_IDENTITY: ${{ secrets.E2E_ADMIN_PASSWORD_IDENTITY }}
|
||||
USERNAME_ADF: ${{ secrets.E2E_USERNAME }}
|
||||
USERNAME_ADF: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
|
||||
PASSWORD_ADF: ${{ secrets.E2E_PASSWORD }}
|
||||
URL_HOST_ADF: ${{ secrets.URL_HOST_ADF }}
|
||||
URL_HOST_ADF: "http://localhost:4200"
|
||||
IDENTITY_ADMIN_EMAIL: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
|
||||
IDENTITY_ADMIN_PASSWORD: ${{ secrets.E2E_ADMIN_PASSWORD_IDENTITY }}
|
||||
AWS_S3_BUCKET_ACTIVITI_LICENSE: ${{ secrets.AWS_S3_BUCKET_ACTIVITI_LICENSE }}
|
||||
@@ -55,7 +64,6 @@ env:
|
||||
HR_USER_PASSWORD: ${{ secrets.HR_USER_PASSWORD }}
|
||||
SMART_RUNNER_PATH: ".protractor-smartrunner"
|
||||
S3_DBP_PATH: ${{ secrets.S3_DBP_PATH }}
|
||||
S3_BUILD_BUCKET: ${{ secrets.S3_BUILD_BUCKET }}
|
||||
S3_BUILD_BUCKET_SHORT_NAME: ${{ secrets.S3_BUILD_BUCKET_SHORT_NAME }}
|
||||
NODE_OPTIONS: "--max-old-space-size=5120"
|
||||
DOCKER_REPOSITORY_DOMAIN: ${{ secrets.DOCKER_REPOSITORY_DOMAIN }}
|
||||
@@ -63,13 +71,89 @@ env:
|
||||
DOCKER_REPOSITORY_PASSWORD: ${{ secrets.DOCKER_REPOSITORY_PASSWORD }}
|
||||
DOCKER_REPOSITORY_STORYBOOK: "${{ secrets.DOCKER_REPOSITORY_DOMAIN }}/alfresco/storybook"
|
||||
DOCKER_REPOSITORY: "${{ secrets.DOCKER_REPOSITORY_DOMAIN }}/alfresco/demo-shell"
|
||||
REPO_OWNER: "Alfresco"
|
||||
REPO_NAME: "alfresco-ng2-components"
|
||||
DEMO_SHELL_DIR: "./dist/demo-shell"
|
||||
STORYBOOK_DIR: "./dist/storybook/stories"
|
||||
BUILT_LIBS_DIR: "./dist/libs"
|
||||
NODE_MODULES_DIR: "./node_modules"
|
||||
SMART_RUNNER_DIRECTORY: ".protractor-smartrunner"
|
||||
SAVE_SCREENSHOT: true
|
||||
REDIRECT_URI: /
|
||||
BROWSER_RUN: false
|
||||
MAXINSTANCES: 2
|
||||
PLAYWRIGHT_WORKERS: 2
|
||||
PLAYWRIGHT_STORYBOOK_E2E_HOST: http://localhost
|
||||
PLAYWRIGHT_STORYBOOK_E2E_PORT: 4400
|
||||
PROXY_HOST_ECM: ${{ secrets.E2E_HOST }}
|
||||
|
||||
|
||||
|
||||
jobs:
|
||||
main:
|
||||
check-package-lock:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
- name: Check package-lock.json version
|
||||
run: |
|
||||
if [[ $(jq '.lockfileVersion == 2' package-lock.json) == "true" ]] ; then
|
||||
echo -e "\033[31mpackage-lock must be version 1\033[0m"
|
||||
exit 1
|
||||
else
|
||||
echo -e "\033[32mpackage-lock.json has a correct version\033[0m"
|
||||
fi
|
||||
|
||||
check-if-pr-is-approved:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
- name: Check if PR is approved
|
||||
id: action
|
||||
if: ${{ github.event_name != 'schedule' }}
|
||||
uses: kamatama41/get-pr-number-action@5c77b38a1b4974ebf8a9521a689f38a5898eadd6
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: check if pr is approved
|
||||
env:
|
||||
DEVEL_FLAG: ${{ inputs.devel }}
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
skip_check: "false"
|
||||
run: |
|
||||
if [ "${{ github.actor }}" == "dependabot[bot]" ] || [ "${{ github.actor }}" == "alfresco-build" ]; then
|
||||
echo -e "\033[32mCommit by ${{ github.actor }}. No need for approval.\033[0m"
|
||||
skip_check="true"
|
||||
fi
|
||||
|
||||
if [ "${{ github.event_name }}" == "schedule" ]; then
|
||||
echo -e "\033[32mSchedule event\033[0m"
|
||||
skip_check="true"
|
||||
fi
|
||||
|
||||
if [[ "$DEVEL_FLAG" == "true" ]]; then
|
||||
echo -e "\033[32mDevel flag\033[0m"
|
||||
skip_check="true"
|
||||
fi
|
||||
|
||||
if [ "$skip_check" == "false" ]; then
|
||||
echo "Checking PR approval"
|
||||
prNumber=${{ steps.action.outputs.number }}
|
||||
checkApproval=$(gh api /repos/Alfresco/alfresco-ng2-components/pulls/$prNumber/reviews | jq '.[] | select(.state == "APPROVED") | .user.login')
|
||||
if [[ $checkApproval ]]; then
|
||||
echo -e "\033[32mPR approved\033[0m"
|
||||
else
|
||||
echo -e "\033[31mPR NOT approved\033[0m"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
setup:
|
||||
# long timeout required when cache has to be recreated
|
||||
timeout-minutes: 30
|
||||
name: "Build Components"
|
||||
name: "Setup"
|
||||
runs-on: ubuntu-22.04
|
||||
needs: [check-if-pr-is-approved, check-package-lock]
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
@@ -81,17 +165,75 @@ jobs:
|
||||
npm ci
|
||||
nx run cli:bundle
|
||||
nx run testing:bundle
|
||||
- run: nx print-affected $NX_CALCULATION_FLAGS
|
||||
- uses: ./.github/actions/upload-node-modules-and-artifacts
|
||||
|
||||
unit-tests:
|
||||
timeout-minutes: 30
|
||||
name: "Unit tests: ${{ matrix.unit-tests.name }}"
|
||||
runs-on: ubuntu-22.04
|
||||
needs: [setup]
|
||||
strategy:
|
||||
fail-fast: false
|
||||
# max-parallel: 4
|
||||
matrix:
|
||||
unit-tests:
|
||||
- name: content-services
|
||||
exclude: "insights,core,extensions,process-services,process-services-cloud"
|
||||
- name: core
|
||||
exclude: "insights,content-services,process-services,process-services-cloud"
|
||||
- name: insights and process-services
|
||||
exclude: "core,extensions,content-services,process-services-cloud"
|
||||
- name: process-cloud
|
||||
exclude: "insights,core,extensions,content-services,process-services"
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0 # Fetch all history for all tags and branches
|
||||
- uses: ./.github/actions/setup
|
||||
- uses: ./.github/actions/download-node-modules-and-artifacts
|
||||
- name: Run unit tests
|
||||
run: |
|
||||
/usr/bin/xvfb-run --auto-servernum nx affected:test $NX_CALCULATION_FLAGS --exclude=${{ matrix.unit-tests.exclude }}
|
||||
|
||||
lint:
|
||||
# long timeout required when cache has to be recreated
|
||||
timeout-minutes: 30
|
||||
name: "Lint"
|
||||
runs-on: ubuntu-22.04
|
||||
needs: [setup]
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0 # Fetch all history for all tags and branches
|
||||
- uses: ./.github/actions/setup
|
||||
- uses: ./.github/actions/download-node-modules-and-artifacts
|
||||
- run: nx affected --target=lint $NX_CALCULATION_FLAGS
|
||||
- run: /usr/bin/xvfb-run --auto-servernum nx affected:test $NX_CALCULATION_FLAGS --exclude="insights,core,extensions,process-services,process-services-cloud" }}
|
||||
|
||||
build-libs:
|
||||
# long timeout required when cache has to be recreated
|
||||
timeout-minutes: 30
|
||||
name: "Build libs"
|
||||
runs-on: ubuntu-22.04
|
||||
needs: [setup]
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0 # Fetch all history for all tags and branches
|
||||
- uses: ./.github/actions/setup
|
||||
- uses: ./.github/actions/download-node-modules-and-artifacts
|
||||
- run: nx affected:build $NX_CALCULATION_FLAGS --prod
|
||||
- run: nx build demoshell --configuration production
|
||||
- run: nx run stories:build-storybook --configuration ci
|
||||
- uses: ./.github/actions/upload-cache-and-artifacts
|
||||
- run: nx affected --target=build-storybook $NX_CALCULATION_FLAGS --configuration ci
|
||||
- uses: ./.github/actions/upload-node-modules-and-artifacts
|
||||
|
||||
playwright:
|
||||
e2e-storybook:
|
||||
timeout-minutes: 20
|
||||
name: "playwright"
|
||||
needs: [main]
|
||||
name: "e2e: storybook"
|
||||
needs: [build-libs, lint, unit-tests]
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
@@ -99,18 +241,18 @@ jobs:
|
||||
with:
|
||||
fetch-depth: 0 # Fetch all history for all
|
||||
- uses: ./.github/actions/setup
|
||||
- uses: ./.github/actions/download-cache-and-artifacts
|
||||
- uses: ./.github/actions/download-node-modules-and-artifacts
|
||||
- name: Process Cloud Storybook Playwright
|
||||
run: |
|
||||
npx playwright install chromium
|
||||
sudo sysctl -w fs.inotify.max_user_watches=524288
|
||||
npx playwright test --config='e2e-playwright/playwright.config.ts' || exit 1
|
||||
- uses: ./.github/actions/upload-cache-and-artifacts
|
||||
npx nx affected --target=e2e-playwright $NX_CALCULATION_FLAGS || exit 1
|
||||
- uses: ./.github/actions/upload-node-modules-and-artifacts
|
||||
|
||||
e2e:
|
||||
timeout-minutes: 90
|
||||
name: "e2e: ${{ matrix.e2e-test.description }}"
|
||||
needs: [playwright]
|
||||
needs: [build-libs, lint, unit-tests]
|
||||
runs-on: ubuntu-22.04
|
||||
strategy:
|
||||
fail-fast: false
|
||||
@@ -238,7 +380,7 @@ jobs:
|
||||
with:
|
||||
enable-cache: "true"
|
||||
enable-node-modules-cache: "true"
|
||||
- uses: ./.github/actions/download-cache-and-artifacts
|
||||
- uses: ./.github/actions/download-node-modules-and-artifacts
|
||||
- name: setup chrome
|
||||
uses: ./.github/actions/setup-chrome
|
||||
- name: e2e
|
||||
@@ -253,4 +395,19 @@ jobs:
|
||||
check-ps-cloud-env: ${{ matrix.e2e-test.check-ps-cloud-env }}
|
||||
check-external-cs-env: ${{ matrix.e2e-test.check-external-cs-env }}
|
||||
apa-proxy: ${{ matrix.e2e-test.apa-proxy }}
|
||||
#
|
||||
|
||||
finalize:
|
||||
if: ${{ always() }}
|
||||
runs-on: ubuntu-latest
|
||||
name: Final Results
|
||||
needs: [check-if-pr-is-approved, check-package-lock, unit-tests, build-libs, e2e, e2e-storybook]
|
||||
steps:
|
||||
- name: workflow failure
|
||||
run: exit 1
|
||||
if: ${{ contains(needs.*.result, 'failure') }}
|
||||
- name: workflow canceled
|
||||
run: exit 1
|
||||
if: ${{ contains(needs.*.result, 'cancelled') }}
|
||||
- name: workflow success
|
||||
run: exit 0
|
||||
if: ${{ contains(needs.*.result, 'success') }}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
on:
|
||||
on:
|
||||
issue_comment:
|
||||
types: [created]
|
||||
name: Automatic Rebase
|
||||
@@ -9,10 +9,10 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout the latest code
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Automatic Rebase
|
||||
uses: cirrus-actions/rebase@1.3.1
|
||||
uses: cirrus-actions/rebase@1.8
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
@@ -22,11 +22,11 @@ env:
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
GITHUB_BRANCH: ${{ github.ref_name }}
|
||||
TRAVIS_BUILD_DIR: ${{ github.workspace }}
|
||||
TRAVIS_COMMIT: ${{ github.sha }}
|
||||
GH_BUILD_DIR: ${{ github.workspace }}
|
||||
GH_COMMIT: ${{ github.sha }}
|
||||
BUILD_ID: ${{ github.run_id }}
|
||||
TRAVIS_RUN_NUMBER: ${{ github.run_attempt }}
|
||||
TRAVIS_BUILD_NUMBER: ${{ github.run_id }}
|
||||
GH_RUN_NUMBER: ${{ github.run_attempt }}
|
||||
GH_BUILD_NUMBER: ${{ github.run_id }}
|
||||
JOB_ID: ${{ github.run_id }}
|
||||
PROXY_HOST_BPM: ${{ secrets.E2E_HOST }}
|
||||
E2E_HOST_APA: ${{ secrets.E2E_HOST_APA }}
|
||||
@@ -35,9 +35,10 @@ env:
|
||||
E2E_PASSWORD: ${{ secrets.E2E_PASSWORD }}
|
||||
E2E_ADMIN_EMAIL_IDENTITY: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
|
||||
E2E_ADMIN_PASSWORD_IDENTITY: ${{ secrets.E2E_ADMIN_PASSWORD_IDENTITY }}
|
||||
USERNAME_ADF: ${{ secrets.E2E_USERNAME }}
|
||||
#USERNAME_ADF: ${{ secrets.E2E_USERNAME }}
|
||||
USERNAME_ADF: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
|
||||
PASSWORD_ADF: ${{ secrets.E2E_PASSWORD }}
|
||||
URL_HOST_ADF: ${{ secrets.URL_HOST_ADF }}
|
||||
URL_HOST_ADF: "http://localhost:4200"
|
||||
IDENTITY_ADMIN_EMAIL: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
|
||||
IDENTITY_ADMIN_PASSWORD: ${{ secrets.E2E_ADMIN_PASSWORD_IDENTITY }}
|
||||
AWS_S3_BUCKET_ACTIVITI_LICENSE: ${{ secrets.AWS_S3_BUCKET_ACTIVITI_LICENSE }}
|
||||
@@ -55,7 +56,6 @@ env:
|
||||
HR_USER_PASSWORD: ${{ secrets.HR_USER_PASSWORD }}
|
||||
SMART_RUNNER_PATH: ".protractor-smartrunner"
|
||||
S3_DBP_PATH: ${{ secrets.S3_DBP_PATH }}
|
||||
S3_BUILD_BUCKET: ${{ secrets.S3_BUILD_BUCKET }}
|
||||
S3_BUILD_BUCKET_SHORT_NAME: ${{ secrets.S3_BUILD_BUCKET_SHORT_NAME }}
|
||||
NODE_OPTIONS: "--max-old-space-size=5120"
|
||||
DOCKER_REPOSITORY_DOMAIN: ${{ secrets.DOCKER_REPOSITORY_DOMAIN }}
|
||||
@@ -63,9 +63,21 @@ env:
|
||||
DOCKER_REPOSITORY_PASSWORD: ${{ secrets.DOCKER_REPOSITORY_PASSWORD }}
|
||||
DOCKER_REPOSITORY_STORYBOOK: "${{ secrets.DOCKER_REPOSITORY_DOMAIN }}/alfresco/storybook"
|
||||
DOCKER_REPOSITORY: "${{ secrets.DOCKER_REPOSITORY_DOMAIN }}/alfresco/demo-shell"
|
||||
NPM_REGISTRY_ADDRESS: ${{ secrets.NPM_REGISTRY_ADDRESS }}
|
||||
NPM_REGISTRY_TOKEN: ${{ secrets.NPM_REGISTRY_TOKEN }}
|
||||
|
||||
GITHUB_TOKEN: ${{ secrets.BOT_GITHUB_TOKEN }}
|
||||
REPO_OWNER: "Alfresco"
|
||||
REPO_NAME: "alfresco-ng2-components"
|
||||
DEMO_SHELL_DIR: "./dist/demo-shell"
|
||||
STORYBOOK_DIR: "./dist/storybook/stories"
|
||||
BUILT_LIBS_DIR: "./dist/libs"
|
||||
NODE_MODULES_DIR: "./node_modules"
|
||||
SMART_RUNNER_DIRECTORY: ".protractor-smartrunner"
|
||||
SAVE_SCREENSHOT: true
|
||||
REDIRECT_URI: /
|
||||
BROWSER_RUN: false
|
||||
MAXINSTANCES: 2
|
||||
PLAYWRIGHT_WORKERS: 2
|
||||
PLAYWRIGHT_STORYBOOK_E2E_HOST: http://localhost
|
||||
PLAYWRIGHT_STORYBOOK_E2E_PORT: 4400
|
||||
|
||||
jobs:
|
||||
setup:
|
||||
@@ -79,12 +91,15 @@ jobs:
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: ./.github/actions/setup
|
||||
with:
|
||||
enable-cache: false
|
||||
enable-node-modules-cache: false
|
||||
- name: install
|
||||
run: |
|
||||
npm ci
|
||||
nx run cli:bundle
|
||||
nx run testing:bundle
|
||||
- uses: ./.github/actions/upload-cache-and-artifacts
|
||||
- uses: ./.github/actions/upload-node-modules-and-artifacts
|
||||
|
||||
release-demoshell:
|
||||
needs: [setup]
|
||||
@@ -99,18 +114,18 @@ jobs:
|
||||
- run: git fetch --all
|
||||
- id: set-dryrun
|
||||
uses: ./.github/actions/enable-dryrun
|
||||
with:
|
||||
with:
|
||||
dry-run-flag: ${{ inputs.dry-run-release }}
|
||||
- uses: ./.github/actions/setup
|
||||
with:
|
||||
with:
|
||||
enable-cache: false
|
||||
enable-node-modules-cache: false
|
||||
- uses: ./.github/actions/download-cache-and-artifacts
|
||||
- uses: ./.github/actions/download-node-modules-and-artifacts
|
||||
- name: release Demoshell docker
|
||||
run: |
|
||||
nx build demoshell --configuration production
|
||||
. ./scripts/travis/release/docker-tag.sh
|
||||
./scripts/travis/release/release-demoshell-docker.sh ${{ steps.set-dryrun.outputs.dryrun }}
|
||||
. ./scripts/github/release/docker-tag.sh
|
||||
./scripts/github/release/release-demoshell-docker.sh ${{ steps.set-dryrun.outputs.dryrun }}
|
||||
|
||||
release-storybook:
|
||||
needs: [setup]
|
||||
@@ -125,47 +140,77 @@ jobs:
|
||||
- run: git fetch --all
|
||||
- id: set-dryrun
|
||||
uses: ./.github/actions/enable-dryrun
|
||||
with:
|
||||
with:
|
||||
dry-run-flag: ${{ inputs.dry-run-release }}
|
||||
- uses: ./.github/actions/setup
|
||||
with:
|
||||
with:
|
||||
enable-cache: false
|
||||
enable-node-modules-cache: false
|
||||
act: ${{ inputs.dry-run-release }}
|
||||
- uses: ./.github/actions/download-cache-and-artifacts
|
||||
- uses: ./.github/actions/download-node-modules-and-artifacts
|
||||
- name: release Storybook docker
|
||||
run: |
|
||||
nx run stories:build-storybook --configuration ci
|
||||
. ./scripts/travis/release/docker-tag.sh
|
||||
./scripts/travis/release/release-storybook-docker.sh ${{ steps.set-dryrun.outputs.dryrun }}
|
||||
. ./scripts/github/release/docker-tag.sh
|
||||
./scripts/github/release/release-storybook-docker.sh ${{ steps.set-dryrun.outputs.dryrun }}
|
||||
|
||||
release-npm:
|
||||
needs: [setup]
|
||||
timeout-minutes: 15
|
||||
if: github.event.pull_request.merged == true || ${{ inputs.dry-run-release }}
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: ./.github/actions/setup
|
||||
with:
|
||||
with:
|
||||
enable-cache: false
|
||||
enable-node-modules-cache: false
|
||||
- id: set-dryrun
|
||||
uses: ./.github/actions/enable-dryrun
|
||||
with:
|
||||
dry-run-flag: ${{ inputs.dry-run-release }}
|
||||
- uses: ./.github/actions/download-cache-and-artifacts
|
||||
with:
|
||||
dry-run-flag: ${{ inputs.dry-run-release }}
|
||||
- uses: ./.github/actions/download-node-modules-and-artifacts
|
||||
- name: check PR number
|
||||
id: action
|
||||
uses: kamatama41/get-pr-number-action@v0
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: save PR number
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
shell: bash
|
||||
run: |
|
||||
echo "PR_NUMBER=${{ steps.action.outputs.number }}" >> $GITHUB_ENV
|
||||
- name: build libraries
|
||||
run: |
|
||||
set -u;
|
||||
./scripts/travis/build/bumpversion.sh
|
||||
nx affected:build $NX_CALCULATION_FLAGS --prod --exclude="demoshell"
|
||||
./scripts/github/build/bumpversion.sh
|
||||
nx affected:build $NX_CALCULATION_FLAGS --prod --exclude="demoshell" --skip-nx-cache
|
||||
nx affected $NX_CALCULATION_FLAGS --target=pretheme
|
||||
- name: release libraries
|
||||
run: ./scripts/travis/release/release-npm.sh ${{ steps.set-dryrun.outputs.dryrun }}
|
||||
- uses: actions/setup-node@v3
|
||||
name: release libraries GH registry
|
||||
with:
|
||||
node-version: 14
|
||||
registry-url: 'https://npm.pkg.github.com'
|
||||
scope: '@alfresco'
|
||||
- run: nx affected --target=npm-publish $NX_CALCULATION_FLAGS --tag=$TAG_NPM || exit 1
|
||||
env:
|
||||
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- uses: actions/setup-node@v3
|
||||
name: release libraries Npm registry
|
||||
with:
|
||||
node-version: 14
|
||||
registry-url: 'https://${{ vars.NPM_REGISTRY_ADDRESS }}'
|
||||
scope: '@alfresco'
|
||||
- run: nx affected --target=npm-publish $NX_CALCULATION_FLAGS --tag=$TAG_NPM || exit 1
|
||||
env:
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_REGISTRY_TOKEN }}
|
||||
|
||||
npm-check-bundle:
|
||||
needs: [release-npm]
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
pull_request_rules:
|
||||
- name: automatic merge for Dependabot pull requests
|
||||
conditions:
|
||||
- author=dependabot-preview[bot]
|
||||
- status-success=continuous-integration/travis-ci/pr
|
||||
- status-success=security/snyk - package.json (eromano (GitHub marketplace))
|
||||
actions:
|
||||
merge:
|
||||
method: merge
|
||||
- name: merge when all requested reviews are valid
|
||||
conditions:
|
||||
- status-success=continuous-integration/travis-ci/pr
|
||||
- status-success=security/snyk - package.json (eromano (GitHub marketplace))
|
||||
- '#approved-reviews-by>=1'
|
||||
- '#changes-requested-reviews-by=0'
|
||||
- '#commented-reviews-by=0'
|
||||
- label!="do not merge"
|
||||
actions:
|
||||
merge:
|
||||
method: merge
|
||||
-622
@@ -1,622 +0,0 @@
|
||||
import:
|
||||
- source: Alfresco/alfresco-build-tools:.travis.docker_hub_login.yml@v1.1.1
|
||||
|
||||
git:
|
||||
depth: false
|
||||
quiet: true
|
||||
|
||||
language: node_js
|
||||
arch: arm64-graviton2
|
||||
dist: bionic
|
||||
node_js:
|
||||
- '14'
|
||||
|
||||
before_install: . ./scripts/ci/job_hooks/before_install.sh
|
||||
install: ./scripts/ci/job_hooks/install.sh
|
||||
|
||||
env:
|
||||
global:
|
||||
# REPOSITORY
|
||||
- REPO_OWNER="Alfresco"
|
||||
- REPO_NAME="alfresco-ng2-components"
|
||||
|
||||
- S3_DBP_PATH="s3://alfresco-travis-builds/adf"
|
||||
- DEMO_SHELL_DIR="./dist/demo-shell"
|
||||
- STORYBOOK_DIR="./dist/storybook/stories"
|
||||
- BUILT_LIBS_DIR="./dist/libs"
|
||||
- NODE_MODULES_DIR="./node_modules"
|
||||
- SMART_RUNNER_DIRECTORY=".protractor-smartrunner"
|
||||
#E2E VARIABLES
|
||||
- SAVE_SCREENSHOT=true
|
||||
- REDIRECT_URI=/
|
||||
- BROWSER_RUN=false
|
||||
- MAXINSTANCES=2
|
||||
- PROXY_HOST_ECM=$E2E_HOST
|
||||
- PROXY_HOST_BPM=$E2E_HOST
|
||||
- HOST_SSO=$HOST_SSO
|
||||
- USERNAME_ADF=$E2E_USERNAME
|
||||
- PASSWORD_ADF=$E2E_PASSWORD
|
||||
- IDENTITY_ADMIN_EMAIL=$E2E_ADMIN_EMAIL_IDENTITY
|
||||
- IDENTITY_ADMIN_PASSWORD=$E2E_ADMIN_PASSWORD_IDENTITY
|
||||
- URL_HOST_ADF="http://localhost:4200"
|
||||
#PLAYWRIGHT VARIABLES
|
||||
- PLAYWRIGHT_WORKERS=2
|
||||
- PLAYWRIGHT_STORYBOOK_E2E_HOST=http://localhost
|
||||
- PLAYWRIGHT_STORYBOOK_E2E_PORT=4400
|
||||
|
||||
branches:
|
||||
only:
|
||||
- /^master(-patch.*)?$/
|
||||
- /^develop(-patch.*)?$/
|
||||
- master
|
||||
- develop
|
||||
- /.*old-env.*/
|
||||
- /.*next-release.*/
|
||||
- /.*beta.*/
|
||||
|
||||
stages:
|
||||
- name: Prerequisite
|
||||
- name: Setup
|
||||
- name: "Build"
|
||||
if: tag IS blank AND (type = pull_request OR type = cron OR type = api)
|
||||
- name: "Trigger Alpha ADF child build"
|
||||
if: type = cron OR (type = api AND commit_message =~ /\[trigger adf\]/)
|
||||
- name: "Release"
|
||||
if: type = push
|
||||
- name: "Unit test Lib"
|
||||
if: type = pull_request OR type = cron OR type = api
|
||||
- name: "e2e Test"
|
||||
if: type = pull_request OR type = cron OR type = api
|
||||
- name: "Release tag"
|
||||
if: branch =~ /^master(-patch.*)?$/
|
||||
- name: "Check bundle"
|
||||
if: type = push AND tag IS blank OR (type = cron || type = api)
|
||||
- name: "Deprecate develop builds"
|
||||
if: branch =~ /^master(-patch.*)?$/
|
||||
|
||||
addons:
|
||||
chrome: stable
|
||||
before_script:
|
||||
- export GIT_HASH=`git rev-parse HEAD`
|
||||
services:
|
||||
- xvfb
|
||||
|
||||
jobs:
|
||||
include:
|
||||
# Big Bang ===================
|
||||
- stage: Prerequisite
|
||||
name: "Before anything unnece$$ary happens..."
|
||||
if: type == pull_request
|
||||
language: python
|
||||
python: 3.8
|
||||
install: echo "no install here"
|
||||
script: ./scripts/ci/jobs/dbpci-build-guard-check $TRAVIS_PULL_REQUEST || exit 1
|
||||
|
||||
# Setup ======================
|
||||
- stage: Setup
|
||||
name: "Node modules cache preparation"
|
||||
script: echo "Only here for setting up the shared node_modules"
|
||||
workspaces:
|
||||
create:
|
||||
name: node_modules_cache
|
||||
paths:
|
||||
- "$NODE_MODULES_DIR"
|
||||
use: node_modules_cache
|
||||
|
||||
- stage: "Build"
|
||||
name: "Lib::Build"
|
||||
install: echo "no install"
|
||||
script: $(npm bin)/nx affected:build $NX_CALCULATION_FLAGS --prod --exclude="demoshell"
|
||||
|
||||
workspaces:
|
||||
create:
|
||||
name: built_libs_cache
|
||||
paths:
|
||||
- "$BUILT_LIBS_DIR"
|
||||
- "$NODE_MODULES_DIR"
|
||||
use: node_modules_cache
|
||||
|
||||
- stage: "Build"
|
||||
name: "Lint"
|
||||
install: echo "no install"
|
||||
script: $(npm bin)/nx affected:lint $NX_CALCULATION_FLAGS --parallel=5
|
||||
workspaces:
|
||||
use: node_modules_cache
|
||||
|
||||
- stage: "Build"
|
||||
name: "Demo Shell::Build"
|
||||
install: echo "no install"
|
||||
script: $(npm bin)/nx build demoshell --configuration production
|
||||
workspaces:
|
||||
create:
|
||||
name: built_demo_shell_cache
|
||||
paths:
|
||||
- "$DEMO_SHELL_DIR"
|
||||
use:
|
||||
- node_modules_cache
|
||||
|
||||
- stage: "Build"
|
||||
name: "Storybook::Build"
|
||||
install: echo "no install"
|
||||
script: $(npm bin)/nx run stories:build-storybook --configuration ci
|
||||
workspaces:
|
||||
create:
|
||||
name: built_storybook_cache
|
||||
paths:
|
||||
- "$STORYBOOK_DIR"
|
||||
use:
|
||||
- node_modules_cache
|
||||
|
||||
- stage: "Unit test Lib"
|
||||
name: "content::unit"
|
||||
install: echo "no install"
|
||||
script: $(npm bin)/nx affected:test $NX_CALCULATION_FLAGS --exclude="insights,core,extensions,process-services,process-services-cloud"
|
||||
workspaces:
|
||||
use: built_libs_cache
|
||||
|
||||
- stage: "Unit test Lib"
|
||||
name: "core-extension::unit"
|
||||
install: echo "no install"
|
||||
script: $(npm bin)/nx affected:test $NX_CALCULATION_FLAGS --exclude="insights,content-services,process-services,process-services-cloud"
|
||||
workspaces:
|
||||
use: built_libs_cache
|
||||
|
||||
- stage: "Unit test Lib"
|
||||
name: "process-insights::unit"
|
||||
install: echo "no install"
|
||||
script: $(npm bin)/nx affected:test $NX_CALCULATION_FLAGS --exclude="core,extensions,content-services,process-services-cloud"
|
||||
workspaces:
|
||||
use: built_libs_cache
|
||||
|
||||
- stage: "Unit test Lib"
|
||||
name: "process-cloud::unit"
|
||||
install: echo "no install"
|
||||
script: $(npm bin)/nx affected:test $NX_CALCULATION_FLAGS --exclude="insights,core,extensions,content-services,process-services"
|
||||
workspaces:
|
||||
use: built_libs_cache
|
||||
|
||||
- stage: "Trigger Alpha ADF child build"
|
||||
name: "Trigger Alpha ADF child build"
|
||||
script: ./scripts/travis/update/update-project.sh -p $TRAVIS_BUILD_NUMBER -t $GITHUB_TOKEN -v alpha -c $TRAVIS_COMMIT
|
||||
workspaces:
|
||||
use: built_libs_cache
|
||||
|
||||
- stage: "Release"
|
||||
name: "release libs::npm"
|
||||
install: echo "no install"
|
||||
script:
|
||||
- ./scripts/travis/build/bumpversion.sh || travis_terminate 1
|
||||
- $(npm bin)/nx affected:build $NX_CALCULATION_FLAGS --prod --exclude="demoshell" || travis_terminate 1
|
||||
- $(npm bin)/nx affected $NX_CALCULATION_FLAGS --target=pretheme || travis_terminate 1
|
||||
- ./scripts/travis/release/release-npm.sh || travis_terminate 1
|
||||
workspaces:
|
||||
use: node_modules_cache
|
||||
|
||||
- stage: "Release"
|
||||
name: "release demoshell::docker"
|
||||
install: echo "no install"
|
||||
script:
|
||||
- $(npm bin)/nx build demoshell --configuration production || travis_terminate 1
|
||||
- . ./scripts/travis/release/docker-tag.sh || travis_terminate 1
|
||||
- ./scripts/travis/release/release-demoshell-docker.sh
|
||||
workspaces:
|
||||
use: node_modules_cache
|
||||
|
||||
- stage: "Release"
|
||||
name: "release storybook::docker"
|
||||
install: echo "no install"
|
||||
script:
|
||||
- $(npm bin)/nx run stories:build-storybook --configuration ci || travis_terminate 1
|
||||
- . ./scripts/travis/release/docker-tag.sh || travis_terminate 1
|
||||
- ./scripts/travis/release/release-storybook-docker.sh || travis_terminate 1
|
||||
workspaces:
|
||||
use: node_modules_cache
|
||||
|
||||
- stage: "Release tag"
|
||||
script: ./scripts/travis/release/git-tag.sh
|
||||
|
||||
- stage: "Deprecate develop builds"
|
||||
script:
|
||||
- ADF_VERSION=$(npm view @alfresco/adf-core@${TAG_NPM} version)
|
||||
- ./scripts/travis/release/deprecate-develop-build.sh -v ${ADF_VERSION}
|
||||
|
||||
- stage: "e2e Test"
|
||||
name: "Process Cloud: Storybook Playwright"
|
||||
install: echo "no install"
|
||||
before_script: ./scripts/ci/jobs/dbpci-before-playwright
|
||||
script: ./scripts/travis/storybook-testing/storybook-test.sh
|
||||
workspaces:
|
||||
use:
|
||||
- built_libs_cache
|
||||
- built_demo_shell_cache
|
||||
|
||||
- stage: "e2e Test"
|
||||
name: "Core"
|
||||
install: echo "no install"
|
||||
before_script:
|
||||
- ./scripts/ci/job_hooks/before_e2e.sh
|
||||
- ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1
|
||||
- ./scripts/ci/check-env/check-ps-env.sh || travis_terminate 1
|
||||
script: ./scripts/travis/e2e/e2e.sh "core"
|
||||
after_script: ./scripts/ci/job_hooks/after_e2e.sh
|
||||
workspaces:
|
||||
create:
|
||||
name: e2e_cache
|
||||
paths:
|
||||
- "$SMART_RUNNER_DIRECTORY"
|
||||
use:
|
||||
- built_libs_cache
|
||||
- built_demo_shell_cache
|
||||
- e2e_cache
|
||||
env:
|
||||
- FOLDER="core"
|
||||
- PROVIDER='ALL'
|
||||
- AUTH_TYPE='OAUTH'
|
||||
|
||||
- stage: "e2e Test"
|
||||
name: "Content: Components"
|
||||
install: echo "no install"
|
||||
before_script:
|
||||
- ./scripts/ci/job_hooks/before_e2e.sh
|
||||
- ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1
|
||||
script: ./scripts/travis/e2e/e2e.sh "content-services"
|
||||
after_script: ./scripts/ci/job_hooks/after_e2e.sh
|
||||
workspaces:
|
||||
create:
|
||||
name: e2e_cache
|
||||
paths:
|
||||
- "$SMART_RUNNER_DIRECTORY"
|
||||
use:
|
||||
- built_libs_cache
|
||||
- built_demo_shell_cache
|
||||
- e2e_cache
|
||||
env:
|
||||
- FOLDER="content-services/components"
|
||||
- PROVIDER="ECM"
|
||||
- AUTH_TYPE="BASIC"
|
||||
|
||||
- stage: "e2e Test"
|
||||
name: "Content: Directives"
|
||||
install: echo "no install"
|
||||
before_script:
|
||||
- ./scripts/ci/job_hooks/before_e2e.sh
|
||||
- ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1
|
||||
script: ./scripts/travis/e2e/e2e.sh "content-services"
|
||||
after_script: ./scripts/ci/job_hooks/after_e2e.sh
|
||||
workspaces:
|
||||
create:
|
||||
name: e2e_cache
|
||||
paths:
|
||||
- "$SMART_RUNNER_DIRECTORY"
|
||||
use:
|
||||
- built_libs_cache
|
||||
- built_demo_shell_cache
|
||||
- e2e_cache
|
||||
env:
|
||||
- FOLDER="content-services/directives"
|
||||
- PROVIDER="ECM"
|
||||
- AUTH_TYPE="BASIC"
|
||||
|
||||
- stage: "e2e Test"
|
||||
name: "Content: Document List"
|
||||
install: echo "no install"
|
||||
before_script:
|
||||
- ./scripts/ci/job_hooks/before_e2e.sh
|
||||
- ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1
|
||||
script: ./scripts/travis/e2e/e2e.sh "content-services"
|
||||
after_script: ./scripts/ci/job_hooks/after_e2e.sh
|
||||
workspaces:
|
||||
create:
|
||||
name: e2e_cache
|
||||
paths:
|
||||
- "$SMART_RUNNER_DIRECTORY"
|
||||
use:
|
||||
- built_libs_cache
|
||||
- built_demo_shell_cache
|
||||
- e2e_cache
|
||||
env:
|
||||
- FOLDER="content-services/document-list"
|
||||
- PROVIDER="ECM"
|
||||
- AUTH_TYPE="BASIC"
|
||||
|
||||
- stage: "e2e Test"
|
||||
name: "Content: Metadata"
|
||||
install: echo "no install"
|
||||
before_script:
|
||||
- ./scripts/ci/job_hooks/before_e2e.sh
|
||||
- ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1
|
||||
script: ./scripts/travis/e2e/e2e.sh "content-services"
|
||||
after_script: ./scripts/ci/job_hooks/after_e2e.sh
|
||||
workspaces:
|
||||
create:
|
||||
name: e2e_cache
|
||||
paths:
|
||||
- "$SMART_RUNNER_DIRECTORY"
|
||||
use:
|
||||
- built_libs_cache
|
||||
- built_demo_shell_cache
|
||||
- e2e_cache
|
||||
env:
|
||||
- FOLDER="content-services/metadata"
|
||||
- PROVIDER="ECM"
|
||||
- AUTH_TYPE="BASIC"
|
||||
|
||||
- stage: "e2e Test"
|
||||
name: "Content: Upload and Versioning"
|
||||
install: echo "no install"
|
||||
before_script:
|
||||
- ./scripts/ci/job_hooks/before_e2e.sh
|
||||
- ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1
|
||||
script: ./scripts/travis/e2e/e2e.sh "content-services" "browser"
|
||||
after_script: ./scripts/ci/job_hooks/after_e2e.sh
|
||||
workspaces:
|
||||
create:
|
||||
name: e2e_cache
|
||||
paths:
|
||||
- "$SMART_RUNNER_DIRECTORY"
|
||||
use:
|
||||
- built_libs_cache
|
||||
- built_demo_shell_cache
|
||||
- e2e_cache
|
||||
env:
|
||||
- FOLDER="content-services/upload"
|
||||
- PROVIDER="ECM"
|
||||
- AUTH_TYPE="BASIC"
|
||||
|
||||
- stage: "e2e Test"
|
||||
name: "Search"
|
||||
install: echo "no install"
|
||||
before_script:
|
||||
- ./scripts/ci/job_hooks/before_e2e.sh
|
||||
- ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1
|
||||
script: ./scripts/travis/e2e/e2e.sh "content-services"
|
||||
after_script: ./scripts/ci/job_hooks/after_e2e.sh
|
||||
workspaces:
|
||||
create:
|
||||
name: e2e_cache
|
||||
paths:
|
||||
- "$SMART_RUNNER_DIRECTORY"
|
||||
use:
|
||||
- built_libs_cache
|
||||
- built_demo_shell_cache
|
||||
- e2e_cache
|
||||
env:
|
||||
- FOLDER="search"
|
||||
- PROVIDER="ECM"
|
||||
- AUTH_TYPE="BASIC"
|
||||
|
||||
- stage: "e2e Test"
|
||||
name: "Process: Form"
|
||||
install: echo "no install"
|
||||
before_script:
|
||||
- ./scripts/ci/job_hooks/before_e2e.sh
|
||||
- ./scripts/ci/check-env/check-ps-env.sh || travis_terminate 1
|
||||
- ./scripts/ci/check-env/check-external-cs-env.sh || travis_terminate 1
|
||||
script: ./scripts/travis/e2e/e2e.sh "process-services"
|
||||
after_script: ./scripts/ci/job_hooks/after_e2e.sh
|
||||
workspaces:
|
||||
create:
|
||||
name: e2e_cache
|
||||
paths:
|
||||
- "$SMART_RUNNER_DIRECTORY"
|
||||
use:
|
||||
- built_libs_cache
|
||||
- built_demo_shell_cache
|
||||
- e2e_cache
|
||||
env:
|
||||
- FOLDER="process-services/form"
|
||||
- PROVIDER="BPM"
|
||||
- AUTH_TYPE="OAUTH"
|
||||
|
||||
- stage: "e2e Test"
|
||||
name: "Process: Process"
|
||||
install: echo "no install"
|
||||
before_script:
|
||||
- ./scripts/ci/job_hooks/before_e2e.sh
|
||||
- ./scripts/ci/check-env/check-ps-env.sh || travis_terminate 1
|
||||
- ./scripts/ci/check-env/check-external-cs-env.sh || travis_terminate 1
|
||||
script: ./scripts/travis/e2e/e2e.sh "process-services"
|
||||
after_script: ./scripts/ci/job_hooks/after_e2e.sh
|
||||
workspaces:
|
||||
create:
|
||||
name: e2e_cache
|
||||
paths:
|
||||
- "$SMART_RUNNER_DIRECTORY"
|
||||
use:
|
||||
- built_libs_cache
|
||||
- built_demo_shell_cache
|
||||
- e2e_cache
|
||||
env:
|
||||
- FOLDER="process-services/process"
|
||||
- PROVIDER="BPM"
|
||||
- AUTH_TYPE="OAUTH"
|
||||
|
||||
- stage: "e2e Test"
|
||||
name: "Process: Tasks"
|
||||
install: echo "no install"
|
||||
before_script:
|
||||
- ./scripts/ci/job_hooks/before_e2e.sh
|
||||
- ./scripts/ci/check-env/check-ps-env.sh || travis_terminate 1
|
||||
- ./scripts/ci/check-env/check-external-cs-env.sh || travis_terminate 1
|
||||
script: ./scripts/travis/e2e/e2e.sh "process-services"
|
||||
after_script: ./scripts/ci/job_hooks/after_e2e.sh
|
||||
workspaces:
|
||||
create:
|
||||
name: e2e_cache
|
||||
paths:
|
||||
- "$SMART_RUNNER_DIRECTORY"
|
||||
use:
|
||||
- built_libs_cache
|
||||
- built_demo_shell_cache
|
||||
- e2e_cache
|
||||
env:
|
||||
- FOLDER="process-services/tasks"
|
||||
- PROVIDER="BPM"
|
||||
- AUTH_TYPE="OAUTH"
|
||||
|
||||
- stage: "e2e Test"
|
||||
name: "Process: Widgets"
|
||||
install: echo "no install"
|
||||
before_script:
|
||||
- ./scripts/ci/job_hooks/before_e2e.sh
|
||||
- ./scripts/ci/check-env/check-ps-env.sh || travis_terminate 1
|
||||
- ./scripts/ci/check-env/check-external-cs-env.sh || travis_terminate 1
|
||||
script: ./scripts/travis/e2e/e2e.sh "process-services"
|
||||
after_script: ./scripts/ci/job_hooks/after_e2e.sh
|
||||
workspaces:
|
||||
create:
|
||||
name: e2e_cache
|
||||
paths:
|
||||
- "$SMART_RUNNER_DIRECTORY"
|
||||
use:
|
||||
- built_libs_cache
|
||||
- built_demo_shell_cache
|
||||
- e2e_cache
|
||||
env:
|
||||
- FOLDER="process-services/widgets"
|
||||
- PROVIDER="BPM"
|
||||
- AUTH_TYPE="OAUTH"
|
||||
|
||||
- stage: "e2e Test"
|
||||
name: "Process Cloud : Form"
|
||||
install: echo "no install"
|
||||
before_script:
|
||||
- ./scripts/ci/job_hooks/before_e2e.sh
|
||||
- ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1
|
||||
- ./scripts/ci/check-env/check-ps-cloud-env.sh || travis_terminate 1
|
||||
script: ./scripts/travis/e2e/e2e.sh "process-services-cloud"
|
||||
after_script: ./scripts/ci/job_hooks/after_e2e.sh
|
||||
workspaces:
|
||||
create:
|
||||
name: e2e_cache
|
||||
paths:
|
||||
- "$SMART_RUNNER_DIRECTORY"
|
||||
use:
|
||||
- built_libs_cache
|
||||
- built_demo_shell_cache
|
||||
- e2e_cache
|
||||
env:
|
||||
- FOLDER="process-services-cloud/form-field"
|
||||
- PROVIDER="ALL"
|
||||
- AUTH_TYPE="OAUTH"
|
||||
- PROXY_HOST_BPM=$E2E_HOST_APA
|
||||
|
||||
- stage: "e2e Test"
|
||||
name: "Process Cloud : People"
|
||||
before_script:
|
||||
- ./scripts/ci/job_hooks/before_e2e.sh
|
||||
- ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1
|
||||
- ./scripts/ci/check-env/check-ps-cloud-env.sh || travis_terminate 1
|
||||
script: ./scripts/travis/e2e/e2e.sh "process-services-cloud"
|
||||
after_script: ./scripts/ci/job_hooks/after_e2e.sh
|
||||
workspaces:
|
||||
create:
|
||||
name: e2e_cache
|
||||
paths:
|
||||
- "$SMART_RUNNER_DIRECTORY"
|
||||
use:
|
||||
- built_libs_cache
|
||||
- built_demo_shell_cache
|
||||
- e2e_cache
|
||||
env:
|
||||
- FOLDER="process-services-cloud/people"
|
||||
- PROVIDER="ALL"
|
||||
- AUTH_TYPE="OAUTH"
|
||||
- PROXY_HOST_BPM=$E2E_HOST_APA
|
||||
|
||||
- stage: "e2e Test"
|
||||
name: "Process Cloud : Process"
|
||||
install: echo "no install"
|
||||
before_script:
|
||||
- ./scripts/ci/job_hooks/before_e2e.sh
|
||||
- ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1
|
||||
- ./scripts/ci/check-env/check-ps-cloud-env.sh || travis_terminate 1
|
||||
script: ./scripts/travis/e2e/e2e.sh "process-services-cloud"
|
||||
after_script: ./scripts/ci/job_hooks/after_e2e.sh
|
||||
workspaces:
|
||||
create:
|
||||
name: e2e_cache
|
||||
paths:
|
||||
- "$SMART_RUNNER_DIRECTORY"
|
||||
use:
|
||||
- built_libs_cache
|
||||
- built_demo_shell_cache
|
||||
- e2e_cache
|
||||
env:
|
||||
- FOLDER="process-services-cloud/process"
|
||||
- PROVIDER="ALL"
|
||||
- AUTH_TYPE="OAUTH"
|
||||
- PROXY_HOST_BPM=$E2E_HOST_APA
|
||||
|
||||
- stage: "e2e Test"
|
||||
name: "Process Cloud : Start Task"
|
||||
install: echo "no install"
|
||||
before_script:
|
||||
- ./scripts/ci/job_hooks/before_e2e.sh
|
||||
- ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1
|
||||
- ./scripts/ci/check-env/check-ps-cloud-env.sh || travis_terminate 1
|
||||
script: ./scripts/travis/e2e/e2e.sh "process-services-cloud"
|
||||
after_script: ./scripts/ci/job_hooks/after_e2e.sh
|
||||
workspaces:
|
||||
create:
|
||||
name: e2e_cache
|
||||
paths:
|
||||
- "$SMART_RUNNER_DIRECTORY"
|
||||
use:
|
||||
- built_libs_cache
|
||||
- built_demo_shell_cache
|
||||
- e2e_cache
|
||||
env:
|
||||
- FOLDER="process-services-cloud/start-task"
|
||||
- PROVIDER="ALL"
|
||||
- AUTH_TYPE="OAUTH"
|
||||
- PROXY_HOST_BPM=$E2E_HOST_APA
|
||||
|
||||
- stage: "e2e Test"
|
||||
name: "Process Cloud : Tasks List"
|
||||
install: echo "no install"
|
||||
before_script:
|
||||
- ./scripts/ci/job_hooks/before_e2e.sh
|
||||
- ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1
|
||||
- ./scripts/ci/check-env/check-ps-cloud-env.sh || travis_terminate 1
|
||||
script: ./scripts/travis/e2e/e2e.sh "process-services-cloud"
|
||||
after_script: ./scripts/ci/job_hooks/after_e2e.sh
|
||||
workspaces:
|
||||
create:
|
||||
name: e2e_cache
|
||||
paths:
|
||||
- "$SMART_RUNNER_DIRECTORY"
|
||||
use:
|
||||
- built_libs_cache
|
||||
- built_demo_shell_cache
|
||||
- e2e_cache
|
||||
env:
|
||||
- FOLDER="process-services-cloud/task-list"
|
||||
- PROVIDER="ALL"
|
||||
- AUTH_TYPE="OAUTH"
|
||||
- PROXY_HOST_BPM=$E2E_HOST_APA
|
||||
|
||||
- stage: Check bundle
|
||||
install: echo "no install"
|
||||
script:
|
||||
- ADF_VERSION=$(npm view @alfresco/adf-core@${TAG_NPM} version)
|
||||
- ./scripts/travis/build/npm-check-bundles.sh -v ${ADF_VERSION}
|
||||
workspaces:
|
||||
use: built_libs_cache
|
||||
|
||||
notifications:
|
||||
slack:
|
||||
on_pull_requests: false
|
||||
rooms:
|
||||
secure: "qcTP/+rhVweMSZZAQMPz4sW7boS8XC0RX1SPYgg7hIfxBr9747WpRLkJ1sirkVaXI/6XfYAyl42CTfPmTuJxIC+co/NSnEDknwVsnKZd0O/ykTpo+mxIN4BTZX8dm+gELR5IEYQPs+Yki3ZnD9b+0mCK1yD8JallKCQeE2U9BhzZhP/Fn0ce35EulybNp3QQDaox0XC+7gadMdxlvK8mzP1scw76wRLtx25QLxxV+OwEw0bzyh8y3onfjHfnoDcUQWRTNdnjapzmgf1LNdC202A5kwp5sJggfSDr+ActRqaMvv4BbMsFpdan34B6zPQJfyZL1r8IB8O8BEKcAaOUVcTjnZAOom8kHS8F07/mo5xnNYmV8oNX2/egr1CiG4U0EAGF2XGqM+vetYnF88LTEzy84kVxmSwKGVfzlGOyTplMXJ1iCENndtfWm1AXhAFj5RSsSAZg6IStTM+mcpnC75moEwQtj8bTenwehHz1HQAjQX7xeTQo27SxDc7oqp1ReyXCllMjKxckjVGmp2j6yxn1Jl55kivBj57vluLtEtziOGluVELP5E2fV0VAuErNhnjLm4LJARVN76PQaTOXYwATVVJJDhb/77TesvxQsr3VfiROEKm7QB7IDFjghjLLisSX67JQ5+7K/qMlqf9+9hNw4n0v1eMylVjt+gyxspc="
|
||||
on_failure: always
|
||||
on_success: change
|
||||
template:
|
||||
- "Repo `%{repository_slug}` *%{result}* build (<%{build_url}|#%{build_number}>) for commit (<%{compare_url}|%{commit}>) on branch `%{branch}`."
|
||||
- "Author: %{author} Execution time: *%{duration}*"
|
||||
- "Message: %{message}"
|
||||
|
||||
cache:
|
||||
npm: false
|
||||
directories:
|
||||
- tmp
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
| branch | status |
|
||||
| --- | --- |
|
||||
| master | [](https://travis-ci.com/Alfresco/alfresco-ng2-components) |
|
||||
| develop | [](https://travis-ci.com/Alfresco/alfresco-ng2-components) |
|
||||
| master | [](https://github.com/Alfresco/alfresco-ng2-components/actions/workflows/git-tag.yml) |
|
||||
| develop | [](https://github.com/Alfresco/alfresco-ng2-components/actions/workflows/cron.yml)|
|
||||
|
||||
[](https://www.codacy.com/app/Alfresco/alfresco-ng2-components?utm_source=github.com&utm_medium=referral&utm_content=Alfresco/alfresco-ng2-components&utm_campaign=badger)
|
||||
[](https://gitter.im/Alfresco/alfresco-ng2-components?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||
@@ -39,8 +39,8 @@ ADF Libraries list:
|
||||
- [Insights](https://github.com/Alfresco/alfresco-ng2-components/tree/develop/lib/insights)
|
||||
- [Process Service Cloud](https://github.com/Alfresco/alfresco-ng2-components/tree/develop/lib/process-services-cloud)
|
||||
- [Process service](https://github.com/Alfresco/alfresco-ng2-components/tree/develop/lib/process-services)
|
||||
- [Stories](https://github.com/Alfresco/alfresco-ng2-components/tree/develop/lib/stories)
|
||||
|
||||
- [Stories](https://github.com/Alfresco/alfresco-ng2-components/tree/develop/lib/stories)
|
||||
|
||||
## Demo Application
|
||||
|
||||
A separate application showcasing integration of components can be found
|
||||
@@ -49,7 +49,7 @@ The app has examples of basic interaction for both APS and ACS components.
|
||||
|
||||
## Yeoman generators
|
||||
|
||||
To speed up the development of your ADF application, use the
|
||||
To speed up the development of your ADF application, use the
|
||||
[Yeoman Generator](https://github.com/Alfresco/generator-ng2-alfresco-app).
|
||||
This will create a full working project with all the right libraries and tools.
|
||||
|
||||
@@ -69,6 +69,6 @@ All components are supported in the following browsers:
|
||||
|Edge |13, 14 |
|
||||
|Internet Explorer |11 |
|
||||
|
||||
* Due to a [known issue](https://bugzilla.mozilla.org/show_bug.cgi?id=1188880) in Firefox, the Alfresco Upload Component does not currently support folder upload functionality on Firefox.
|
||||
* Due to a [known issue](https://bugzilla.mozilla.org/show_bug.cgi?id=1188880) in Firefox, the Alfresco Upload Component does not currently support folder upload functionality on Firefox.
|
||||
|
||||
See the [Browser Support](BROWSER-SUPPORT.md) article for more details.
|
||||
|
||||
+175
-17
@@ -167,7 +167,8 @@
|
||||
"demo-shell/src/assets/fonts/muli/muli.css",
|
||||
"demo-shell/src/styles.scss",
|
||||
"demo-shell/src/custom-style-dev.scss",
|
||||
"node_modules/cropperjs/dist/cropper.min.css"
|
||||
"node_modules/cropperjs/dist/cropper.min.css",
|
||||
"node_modules/pdfjs-dist/web/pdf_viewer.css"
|
||||
],
|
||||
"scripts": [
|
||||
"node_modules/pdfjs-dist/build/pdf.js",
|
||||
@@ -204,6 +205,14 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"canary": {
|
||||
"fileReplacements": [
|
||||
{
|
||||
"replace": "demo-shell/src/environments/environment.ts",
|
||||
"with": "demo-shell/src/environments/environment.canary.ts"
|
||||
}
|
||||
]
|
||||
},
|
||||
"e2e": {
|
||||
"budgets": [
|
||||
{
|
||||
@@ -241,6 +250,9 @@
|
||||
"production": {
|
||||
"browserTarget": "demoshell:build:production"
|
||||
},
|
||||
"canary": {
|
||||
"browserTarget": "demoshell:build:canary"
|
||||
},
|
||||
"e2e": {
|
||||
"browserTarget": "demoshell:build:e2e"
|
||||
}
|
||||
@@ -357,7 +369,8 @@
|
||||
"demo-shell/src/assets/fonts/muli/muli.css",
|
||||
"demo-shell/src/styles.scss",
|
||||
"demo-shell/src/custom-style-dev.scss",
|
||||
"node_modules/cropperjs/dist/cropper.min.css"
|
||||
"node_modules/cropperjs/dist/cropper.min.css",
|
||||
"node_modules/pdfjs-dist/web/pdf_viewer.css"
|
||||
]
|
||||
},
|
||||
"configurations": {
|
||||
@@ -378,7 +391,8 @@
|
||||
"demo-shell/src/assets/fonts/muli/muli.css",
|
||||
"demo-shell/src/styles.scss",
|
||||
"demo-shell/src/custom-style-dev.scss",
|
||||
"node_modules/cropperjs/dist/cropper.min.css"
|
||||
"node_modules/cropperjs/dist/cropper.min.css",
|
||||
"node_modules/pdfjs-dist/web/pdf_viewer.css"
|
||||
]
|
||||
},
|
||||
"configurations": {
|
||||
@@ -422,10 +436,25 @@
|
||||
"options": {
|
||||
"commands": [
|
||||
{
|
||||
"command": "$(npm bin)/webpack -- --config ./lib/config/webpack.style.js --progress --profile --bail && rm ./dist/libs/core/lib/prebuilt-themes/*.js"
|
||||
"command": "$(npm bin)/webpack -- --config ./lib/config/webpack.style.js --progress --profile --bail"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"npm-publish": {
|
||||
"executor": "nx:run-commands",
|
||||
"dependsOn": [
|
||||
"build"
|
||||
],
|
||||
"options": {
|
||||
"cwd": "dist/libs/core",
|
||||
"commands": [
|
||||
{
|
||||
"command": "npm publish --tag {args.tag}",
|
||||
"forwardAllArgs": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -446,7 +475,8 @@
|
||||
"project": "lib/content-services/ng-package.json",
|
||||
"tsConfig": "lib/content-services/tsconfig.lib.prod.json"
|
||||
}
|
||||
}
|
||||
},
|
||||
"defaultConfiguration": "production"
|
||||
},
|
||||
"test": {
|
||||
"builder": "@angular-devkit/build-angular:karma",
|
||||
@@ -478,7 +508,8 @@
|
||||
"demo-shell/src/assets/fonts/muli/muli.css",
|
||||
"demo-shell/src/styles.scss",
|
||||
"demo-shell/src/custom-style-dev.scss",
|
||||
"node_modules/cropperjs/dist/cropper.min.css"
|
||||
"node_modules/cropperjs/dist/cropper.min.css",
|
||||
"node_modules/pdfjs-dist/web/pdf_viewer.css"
|
||||
]
|
||||
},
|
||||
"configurations": {
|
||||
@@ -499,7 +530,8 @@
|
||||
"demo-shell/src/assets/fonts/muli/muli.css",
|
||||
"demo-shell/src/styles.scss",
|
||||
"demo-shell/src/custom-style-dev.scss",
|
||||
"node_modules/cropperjs/dist/cropper.min.css"
|
||||
"node_modules/cropperjs/dist/cropper.min.css",
|
||||
"node_modules/pdfjs-dist/web/pdf_viewer.css"
|
||||
]
|
||||
},
|
||||
"configurations": {
|
||||
@@ -527,6 +559,21 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"npm-publish": {
|
||||
"executor": "nx:run-commands",
|
||||
"dependsOn": [
|
||||
"build"
|
||||
],
|
||||
"options": {
|
||||
"cwd": "dist/libs/content-services",
|
||||
"commands": [
|
||||
{
|
||||
"command": "npm publish --tag {args.tag}",
|
||||
"forwardAllArgs": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -547,7 +594,8 @@
|
||||
"project": "lib/process-services/ng-package.json",
|
||||
"tsConfig": "lib/process-services/tsconfig.lib.prod.json"
|
||||
}
|
||||
}
|
||||
},
|
||||
"defaultConfiguration": "production"
|
||||
},
|
||||
"test": {
|
||||
"builder": "@angular-devkit/build-angular:karma",
|
||||
@@ -596,6 +644,21 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"npm-publish": {
|
||||
"executor": "nx:run-commands",
|
||||
"dependsOn": [
|
||||
"build"
|
||||
],
|
||||
"options": {
|
||||
"cwd": "dist/libs/process-services",
|
||||
"commands": [
|
||||
{
|
||||
"command": "npm publish --tag {args.tag}",
|
||||
"forwardAllArgs": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -616,7 +679,8 @@
|
||||
"project": "lib/process-services-cloud/ng-package.json",
|
||||
"tsConfig": "lib/process-services-cloud/tsconfig.lib.prod.json"
|
||||
}
|
||||
}
|
||||
},
|
||||
"defaultConfiguration": "production"
|
||||
},
|
||||
"test": {
|
||||
"builder": "@angular-devkit/build-angular:karma",
|
||||
@@ -648,7 +712,8 @@
|
||||
"demo-shell/src/assets/fonts/muli/muli.css",
|
||||
"demo-shell/src/styles.scss",
|
||||
"demo-shell/src/custom-style-dev.scss",
|
||||
"node_modules/cropperjs/dist/cropper.min.css"
|
||||
"node_modules/cropperjs/dist/cropper.min.css",
|
||||
"node_modules/pdfjs-dist/web/pdf_viewer.css"
|
||||
]
|
||||
},
|
||||
"configurations": {
|
||||
@@ -669,7 +734,8 @@
|
||||
"demo-shell/src/assets/fonts/muli/muli.css",
|
||||
"demo-shell/src/styles.scss",
|
||||
"demo-shell/src/custom-style-dev.scss",
|
||||
"node_modules/cropperjs/dist/cropper.min.css"
|
||||
"node_modules/cropperjs/dist/cropper.min.css",
|
||||
"node_modules/pdfjs-dist/web/pdf_viewer.css"
|
||||
]
|
||||
},
|
||||
"configurations": {
|
||||
@@ -678,6 +744,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"e2e-playwright": {
|
||||
"executor": "nx:run-commands",
|
||||
"options": {
|
||||
"commands": [
|
||||
{
|
||||
"command": "$(npm bin)/playwright test --config='e2e-playwright/playwright.config.ts'"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"spellcheck": {
|
||||
"executor": "nx:run-commands",
|
||||
"options": {
|
||||
@@ -697,6 +774,21 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"npm-publish": {
|
||||
"executor": "nx:run-commands",
|
||||
"dependsOn": [
|
||||
"build"
|
||||
],
|
||||
"options": {
|
||||
"cwd": "dist/libs/process-services-cloud",
|
||||
"commands": [
|
||||
{
|
||||
"command": "npm publish --tag {args.tag}",
|
||||
"forwardAllArgs": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -717,7 +809,8 @@
|
||||
"project": "lib/insights/ng-package.json",
|
||||
"tsConfig": "lib/insights/tsconfig.lib.prod.json"
|
||||
}
|
||||
}
|
||||
},
|
||||
"defaultConfiguration": "production"
|
||||
},
|
||||
"test": {
|
||||
"builder": "@angular-devkit/build-angular:karma",
|
||||
@@ -756,6 +849,21 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"npm-publish": {
|
||||
"executor": "nx:run-commands",
|
||||
"dependsOn": [
|
||||
"build"
|
||||
],
|
||||
"options": {
|
||||
"cwd": "dist/libs/insights",
|
||||
"commands": [
|
||||
{
|
||||
"command": "npm publish --tag {args.tag}",
|
||||
"forwardAllArgs": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -775,7 +883,8 @@
|
||||
"production": {
|
||||
"tsConfig": "lib/extensions/tsconfig.lib.prod.json"
|
||||
}
|
||||
}
|
||||
},
|
||||
"defaultConfiguration": "production"
|
||||
},
|
||||
"test": {
|
||||
"builder": "@angular-devkit/build-angular:karma",
|
||||
@@ -805,6 +914,21 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"npm-publish": {
|
||||
"executor": "nx:run-commands",
|
||||
"dependsOn": [
|
||||
"build"
|
||||
],
|
||||
"options": {
|
||||
"cwd": "dist/libs/extensions",
|
||||
"commands": [
|
||||
{
|
||||
"command": "npm publish --tag {args.tag}",
|
||||
"forwardAllArgs": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -837,7 +961,8 @@
|
||||
"generatePackageJson" : true,
|
||||
"tsConfig": "lib/testing/tsconfig.lib.prod.json"
|
||||
}
|
||||
}
|
||||
},
|
||||
"defaultConfiguration": "production"
|
||||
},
|
||||
"lint": {
|
||||
"builder": "@nrwl/linter:eslint",
|
||||
@@ -876,6 +1001,21 @@
|
||||
"target": "build"
|
||||
}
|
||||
]
|
||||
},
|
||||
"npm-publish": {
|
||||
"executor": "nx:run-commands",
|
||||
"dependsOn": [
|
||||
"build"
|
||||
],
|
||||
"options": {
|
||||
"cwd": "dist/libs/testing",
|
||||
"commands": [
|
||||
{
|
||||
"command": "npm publish --tag {args.tag}",
|
||||
"forwardAllArgs": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -896,7 +1036,8 @@
|
||||
"production": {
|
||||
"tsConfig": "lib/cli/tsconfig.json"
|
||||
}
|
||||
}
|
||||
},
|
||||
"defaultConfiguration": "production"
|
||||
},
|
||||
"bundle": {
|
||||
"executor": "nx:run-commands",
|
||||
@@ -935,6 +1076,21 @@
|
||||
"lib/cli/**/*.html"
|
||||
]
|
||||
}
|
||||
},
|
||||
"npm-publish": {
|
||||
"executor": "nx:run-commands",
|
||||
"dependsOn": [
|
||||
"build"
|
||||
],
|
||||
"options": {
|
||||
"cwd": "dist/libs/cli",
|
||||
"commands": [
|
||||
{
|
||||
"command": "npm publish --tag {args.tag}",
|
||||
"forwardAllArgs": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -955,7 +1111,8 @@
|
||||
"demo-shell/src/assets/fonts/muli/muli.css",
|
||||
"demo-shell/src/styles.scss",
|
||||
"demo-shell/src/custom-style-dev.scss",
|
||||
"node_modules/cropperjs/dist/cropper.min.css"
|
||||
"node_modules/cropperjs/dist/cropper.min.css",
|
||||
"node_modules/pdfjs-dist/web/pdf_viewer.css"
|
||||
]
|
||||
},
|
||||
"configurations": {
|
||||
@@ -976,7 +1133,8 @@
|
||||
"demo-shell/src/assets/fonts/muli/muli.css",
|
||||
"demo-shell/src/styles.scss",
|
||||
"demo-shell/src/custom-style-dev.scss",
|
||||
"node_modules/cropperjs/dist/cropper.min.css"
|
||||
"node_modules/cropperjs/dist/cropper.min.css",
|
||||
"node_modules/pdfjs-dist/web/pdf_viewer.css"
|
||||
]
|
||||
},
|
||||
"configurations": {
|
||||
|
||||
+6
-2
@@ -27,6 +27,7 @@
|
||||
"CSRF",
|
||||
"datacolumn",
|
||||
"datarow",
|
||||
"Datasource",
|
||||
"datatable",
|
||||
"dateitem",
|
||||
"datepicker",
|
||||
@@ -62,9 +63,11 @@
|
||||
"highlightable",
|
||||
"hotfix",
|
||||
"imgpreview",
|
||||
"Inplace",
|
||||
"intitem",
|
||||
"jira",
|
||||
"jsons",
|
||||
"jwks",
|
||||
"keycodes",
|
||||
"keyvaluepairs",
|
||||
"keyvaluepairsitem",
|
||||
@@ -76,15 +79,15 @@
|
||||
"mincount",
|
||||
"minlength",
|
||||
"minmax",
|
||||
"jsons",
|
||||
"Inplace",
|
||||
"MLTEXT",
|
||||
"mousedrag",
|
||||
"mouseenter",
|
||||
"multiselect",
|
||||
"mysites",
|
||||
"nginx",
|
||||
"numbervisibilityprocess",
|
||||
"OAUTHCONFIG",
|
||||
"oidc",
|
||||
"pdfjs",
|
||||
"penta",
|
||||
"printf",
|
||||
@@ -121,6 +124,7 @@
|
||||
"uncheck",
|
||||
"Unclaim",
|
||||
"unfavorite",
|
||||
"unlisten",
|
||||
"unshare",
|
||||
"UPDATEPERMISSIONS",
|
||||
"uploader",
|
||||
|
||||
@@ -50,7 +50,7 @@ module.exports = function (config) {
|
||||
colors: true,
|
||||
logLevel: config.LOG_INFO,
|
||||
autoWatch: true,
|
||||
browsers: ['Chrome'],
|
||||
browsers: ['ChromeHeadless'],
|
||||
singleRun: false
|
||||
});
|
||||
};
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "Alfresco-ADF-Angular-Demo",
|
||||
"description": "Demo shell for Alfresco Angular components",
|
||||
"version": "6.0.0-A.1",
|
||||
"version": "6.0.0-A.3",
|
||||
"author": "Alfresco Software, Ltd.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
@@ -1,5 +1,28 @@
|
||||
{
|
||||
"APP": {
|
||||
"HOST_SETTINGS": {
|
||||
"TYPE-AUTH": "نوع المصادقة",
|
||||
"BASIC": "مصادقة أساسية",
|
||||
"SSO": "SSO",
|
||||
"IMPLICIT-FLOW": "تدفق ضمني",
|
||||
"PROVIDER": "موفر",
|
||||
"REQUIRED": "هذا الحقل مطلوب",
|
||||
"CS_URL_ERROR": "لا يتطابق عنوان Content Services مع تنسيق URL",
|
||||
"PS_URL_ERROR": "لا يتطابق عنوان Process Services مع تنسيق URL",
|
||||
"TITLE": "الإعدادات",
|
||||
"CS-HOST": "عنوان URL لـ Content Services",
|
||||
"BP-HOST": "عنوان URL لـ Process Services",
|
||||
"BACK": "عودة",
|
||||
"APPLY": "تطبيق",
|
||||
"NOT_VALID": "لم يتم التعرف على http(s)://host|ip:port(/path)، جرّب عنوان URL مختلفًا.",
|
||||
"REDIRECT": "إعادة توجيه URI",
|
||||
"REDIRECT_LOGOUT": "إعادة توجيه خروج URI",
|
||||
"SILENT": "دخول صامت",
|
||||
"SCOPE": "نطاق",
|
||||
"CLIENT": "معرف العميل",
|
||||
"PUBLIC_URLS": "عناوين url العامة لتسجيل الدخول الصامت",
|
||||
"SECRET": "سر"
|
||||
},
|
||||
"ABOUT": {
|
||||
"DEVELOPMENT": "وضع التطوير"
|
||||
},
|
||||
@@ -44,7 +67,7 @@
|
||||
"VERSION": {
|
||||
"NO_PERMISSION": "ليس لديك إذن لإدارة إصدارات هذا المحتوى",
|
||||
"NO_PERMISSION_EVENT": "ليس لديك إذن ${event.permission} ل${event.action} ${event.type}",
|
||||
"CHOOSE_FILE": "تحديد ملف لرؤية إصداراته",
|
||||
"CHOOSE_FILE": "حدد ملف لرؤية إصداراته",
|
||||
"DIALOG": {
|
||||
"CLOSE": "إغلاق",
|
||||
"TITLE": "إدارة الإصدارات"
|
||||
@@ -164,7 +187,7 @@
|
||||
"DELETE": "حذف",
|
||||
"FAVORITES": "إضافة إلى المفضلات",
|
||||
"SHARE": "مشاركة",
|
||||
"THEME": "تحديد نسق",
|
||||
"THEME": "حدد نسق",
|
||||
"SHOW_VERSION": "إظهار الإصدار",
|
||||
"HIDE_VERSION": "إخفاء الإصدار",
|
||||
"LISTVIEW": "وضع عرض القائمة",
|
||||
|
||||
@@ -1,5 +1,28 @@
|
||||
{
|
||||
"APP": {
|
||||
"HOST_SETTINGS": {
|
||||
"TYPE-AUTH": "Typ ověřování",
|
||||
"BASIC": "Základní ověřování",
|
||||
"SSO": "Jednotné přihlášení",
|
||||
"IMPLICIT-FLOW": "Implicitní tok",
|
||||
"PROVIDER": "Poskytovatel",
|
||||
"REQUIRED": "Toto pole je povinné",
|
||||
"CS_URL_ERROR": "Adresa Content Services neodpovídá formátu adresy URL",
|
||||
"PS_URL_ERROR": "Adresa Process Services neodpovídá formátu adresy URL",
|
||||
"TITLE": "Nastavení",
|
||||
"CS-HOST": "Adresa URL pro Content Services",
|
||||
"BP-HOST": "Adresa URL pro Process Services",
|
||||
"BACK": "Zpět",
|
||||
"APPLY": "Použít",
|
||||
"NOT_VALID": "http(s)://host|ip:port(/path) nelze rozeznat. Použijte jinou adresu URL.",
|
||||
"REDIRECT": "URI pro přesměrování",
|
||||
"REDIRECT_LOGOUT": "URI pro přesměrování (odhlášení)",
|
||||
"SILENT": "Přihlášení na pozadí",
|
||||
"SCOPE": "Rozsah",
|
||||
"CLIENT": "ID klienta",
|
||||
"PUBLIC_URLS": "Veřejné adresy URL pro přihlášení na pozadí",
|
||||
"SECRET": "Tajné"
|
||||
},
|
||||
"ABOUT": {
|
||||
"DEVELOPMENT": "Režim pro vývojáře"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,28 @@
|
||||
{
|
||||
"APP": {
|
||||
"HOST_SETTINGS": {
|
||||
"TYPE-AUTH": "Godkendelsestype",
|
||||
"BASIC": "Grundlæggende godkendelse",
|
||||
"SSO": "SSO",
|
||||
"IMPLICIT-FLOW": "Implicit flow",
|
||||
"PROVIDER": "Udbyder",
|
||||
"REQUIRED": "Dette felt er påkrævet",
|
||||
"CS_URL_ERROR": "Content Services-adressen matcher ikke URL-formatet",
|
||||
"PS_URL_ERROR": "Process Services-adressen matcher ikke URL-adresseformatet",
|
||||
"TITLE": "Indstillinger",
|
||||
"CS-HOST": "Content Services-URL",
|
||||
"BP-HOST": "Process Services-URL",
|
||||
"BACK": "Tilbage",
|
||||
"APPLY": "Anvend",
|
||||
"NOT_VALID": "http(s)://vært|ip-adresse:port(/sti) blev ikke genkendt. Prøv en anden URL-adresse.",
|
||||
"REDIRECT": "URI til omdirigering",
|
||||
"REDIRECT_LOGOUT": "Omdiriger URI til aflogning",
|
||||
"SILENT": "Uovervåget login",
|
||||
"SCOPE": "Omfang",
|
||||
"CLIENT": "Klient-id",
|
||||
"PUBLIC_URLS": "Uovervåget login til offentlige URL-adresser",
|
||||
"SECRET": "Hemmelig"
|
||||
},
|
||||
"ABOUT": {
|
||||
"DEVELOPMENT": "Udv. model"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,28 @@
|
||||
{
|
||||
"APP": {
|
||||
"HOST_SETTINGS": {
|
||||
"TYPE-AUTH": "Authentifizierungstyp",
|
||||
"BASIC": "Basisauthentifizierung",
|
||||
"SSO": "SSO",
|
||||
"IMPLICIT-FLOW": "Impliziter Fluss",
|
||||
"PROVIDER": "Provider",
|
||||
"REQUIRED": "Dieses Feld ist erforderlich",
|
||||
"CS_URL_ERROR": "Content Services-Adresse nicht im richtigen URL-Format",
|
||||
"PS_URL_ERROR": "Process Services-Adresse nicht im richtigen URL-Format",
|
||||
"TITLE": "Einstellungen",
|
||||
"CS-HOST": "URL für Content Services",
|
||||
"BP-HOST": "URL für Process Services",
|
||||
"BACK": "Zurück",
|
||||
"APPLY": "Anwenden",
|
||||
"NOT_VALID": "http(s)://host|ip:port(/path) nicht erkannt. Probieren Sie es mit einer anderen URL.",
|
||||
"REDIRECT": "Umleitungs-URI",
|
||||
"REDIRECT_LOGOUT": "Umleitungs-URI zum Abmelden",
|
||||
"SILENT": "Automatische Anmeldung",
|
||||
"SCOPE": "Bereich",
|
||||
"CLIENT": "Client-ID",
|
||||
"PUBLIC_URLS": "Öffentliche URLs für automatische Anmeldung",
|
||||
"SECRET": "Geheimnis"
|
||||
},
|
||||
"ABOUT": {
|
||||
"DEVELOPMENT": "Entwicklermodus"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,28 @@
|
||||
{
|
||||
"APP": {
|
||||
"HOST_SETTINGS": {
|
||||
"TYPE-AUTH": "Todennustyyppi",
|
||||
"BASIC": "Perustodennus",
|
||||
"SSO": "Kertakirjautuminen",
|
||||
"IMPLICIT-FLOW": "Epäsuora kulku",
|
||||
"PROVIDER": "Palvelu",
|
||||
"REQUIRED": "Tämä kenttä on pakollinen",
|
||||
"CS_URL_ERROR": "Content Services -osoite ei täsmää URL-muodon kanssa",
|
||||
"PS_URL_ERROR": "Process Services -osoite ei täsmää URL-muodon kanssa",
|
||||
"TITLE": "Asetukset",
|
||||
"CS-HOST": "Content Servicesin URL-osoite",
|
||||
"BP-HOST": "Process Servicesin URL-osoite",
|
||||
"BACK": "Takaisin",
|
||||
"APPLY": "Käytä",
|
||||
"NOT_VALID": "Osoitetta http(s)://host|ip:port(/path) ei tunnisteta. Kokeile toista URL-osoitetta.",
|
||||
"REDIRECT": "Uudelleenohjauksen URI-osoite",
|
||||
"REDIRECT_LOGOUT": "Uudelleenohjauksen URI-osoite – uloskirjautuminen",
|
||||
"SILENT": "Hiljainen kirjautuminen",
|
||||
"SCOPE": "Laajuus",
|
||||
"CLIENT": "Asiakastunnus",
|
||||
"PUBLIC_URLS": "Yleisten url-osoitteiden hiljainen sisäänkirjaus",
|
||||
"SECRET": "Salainen"
|
||||
},
|
||||
"ABOUT": {
|
||||
"DEVELOPMENT": "Kehitystapa"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,28 @@
|
||||
{
|
||||
"APP": {
|
||||
"HOST_SETTINGS": {
|
||||
"TYPE-AUTH": "Type d'authentification",
|
||||
"BASIC": "Authentification de base",
|
||||
"SSO": "SSO",
|
||||
"IMPLICIT-FLOW": "Flux implicite",
|
||||
"PROVIDER": "Fournisseur",
|
||||
"REQUIRED": "Ce champ est obligatoire",
|
||||
"CS_URL_ERROR": "L'adresse Content Services ne correspond pas au format d'URL",
|
||||
"PS_URL_ERROR": "L'adresse Process Services ne correspond pas au format d'URL",
|
||||
"TITLE": "Paramètres",
|
||||
"CS-HOST": "URL de Content Services",
|
||||
"BP-HOST": "URL de Process Services",
|
||||
"BACK": "Retour",
|
||||
"APPLY": "Appliquer",
|
||||
"NOT_VALID": "Adresse http(s)://host|ip:port(/path) non reconnue, essayez une autre URL.",
|
||||
"REDIRECT": "URI de redirection",
|
||||
"REDIRECT_LOGOUT": "Déconnexion URI de redirection",
|
||||
"SILENT": "Connexion en mode silencieux",
|
||||
"SCOPE": "Etendue",
|
||||
"CLIENT": "ID client",
|
||||
"PUBLIC_URLS": "URL publiques pour connexion en mode silencieux",
|
||||
"SECRET": "Secret"
|
||||
},
|
||||
"ABOUT": {
|
||||
"DEVELOPMENT": "Mode développement"
|
||||
},
|
||||
@@ -83,7 +106,7 @@
|
||||
"FORM_LOADING": "Chargement du formulaire",
|
||||
"UPLOADER": "Chargeur",
|
||||
"WEBSCRIPT": "Script Web",
|
||||
"TAG": "Balise",
|
||||
"TAG": "Tag",
|
||||
"PIPES": "Tuyaux",
|
||||
"TRASHCAN": "Corbeille",
|
||||
"SOCIAL": "Réseaux sociaux",
|
||||
@@ -146,7 +169,7 @@
|
||||
"COLUMNS": {
|
||||
"DISPLAY_NAME": "Nom affiché",
|
||||
"IS_LOCKED": "Verrouiller",
|
||||
"TAG": "Balise",
|
||||
"TAG": "Tag",
|
||||
"NODE_ID": "ID du nœud",
|
||||
"CREATED_BY": "Créé par",
|
||||
"CREATED_ON": "Créé le",
|
||||
@@ -271,9 +294,9 @@
|
||||
"RATING": "Composant d'évaluation"
|
||||
},
|
||||
"TAG": {
|
||||
"LIST": "Liste de balises Content Services",
|
||||
"LIST": "Liste des tags Content Services",
|
||||
"INSERT": "Insérer l'ID du nœud",
|
||||
"NODE_LIST": "Liste de balises par ID de nœud"
|
||||
"NODE_LIST": "Liste des tags par ID de nœud"
|
||||
},
|
||||
"DEMO_PERMISSION": {
|
||||
"INHERIT_PERMISSION_BUTTON": "Hériter des droits d'accès",
|
||||
|
||||
@@ -1,5 +1,28 @@
|
||||
{
|
||||
"APP": {
|
||||
"HOST_SETTINGS": {
|
||||
"TYPE-AUTH": "Tipo di autenticazione",
|
||||
"BASIC": "Autenticazione di base",
|
||||
"SSO": "SSO",
|
||||
"IMPLICIT-FLOW": "Flusso implicito",
|
||||
"PROVIDER": "Fornitore",
|
||||
"REQUIRED": "Questo campo è obbligatorio",
|
||||
"CS_URL_ERROR": "L'indirizzo Content Services non corrisponde al formato dell'URL",
|
||||
"PS_URL_ERROR": "L'indirizzo Process Services non corrisponde al formato dell'URL",
|
||||
"TITLE": "Impostazioni",
|
||||
"CS-HOST": "URL Content Services",
|
||||
"BP-HOST": "URL Process Services",
|
||||
"BACK": "Indietro",
|
||||
"APPLY": "Applica",
|
||||
"NOT_VALID": "http(s)://host|ip:port(/path) non riconosciuto, provare un URL diverso.",
|
||||
"REDIRECT": "Reindirizza URI",
|
||||
"REDIRECT_LOGOUT": "Reindirizza logout URI",
|
||||
"SILENT": "Login invisibile",
|
||||
"SCOPE": "Ambito",
|
||||
"CLIENT": "ID client",
|
||||
"PUBLIC_URLS": "URL pubblici per login invisibile",
|
||||
"SECRET": "Segreto"
|
||||
},
|
||||
"ABOUT": {
|
||||
"DEVELOPMENT": "Modalità sviluppo"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,28 @@
|
||||
{
|
||||
"APP": {
|
||||
"HOST_SETTINGS": {
|
||||
"TYPE-AUTH": "認証タイプ",
|
||||
"BASIC": "基本認証",
|
||||
"SSO": "SSO",
|
||||
"IMPLICIT-FLOW": "暗黙的フロー",
|
||||
"PROVIDER": "プロバイダ",
|
||||
"REQUIRED": "このフィールドは必須です",
|
||||
"CS_URL_ERROR": "Content Services のアドレスが URL 形式と一致しません",
|
||||
"PS_URL_ERROR": "Process Services のアドレスが URL 形式と一致しません",
|
||||
"TITLE": "設定",
|
||||
"CS-HOST": "Content Services の URL",
|
||||
"BP-HOST": "Process Services の URL",
|
||||
"BACK": "戻る",
|
||||
"APPLY": "適用",
|
||||
"NOT_VALID": "http(s)://host|ip:port(/path) が認識されません。別の URL を指定してください。",
|
||||
"REDIRECT": "リダイレクト URI",
|
||||
"REDIRECT_LOGOUT": "リダイレクト URI のログアウト",
|
||||
"SILENT": "サイレントログイン",
|
||||
"SCOPE": "範囲",
|
||||
"CLIENT": "クライアント ID",
|
||||
"PUBLIC_URLS": "サイレントログインのパブリック URL",
|
||||
"SECRET": "シークレット"
|
||||
},
|
||||
"ABOUT": {
|
||||
"DEVELOPMENT": "開発モード"
|
||||
},
|
||||
@@ -248,7 +271,7 @@
|
||||
"RESULTS": "検索結果",
|
||||
"NO_RESULT": "一致するアイテムはありません",
|
||||
"FACET_FIELDS": {
|
||||
"TYPE": "1:種類",
|
||||
"TYPE": "1:タイプ",
|
||||
"SIZE": "2:サイズ",
|
||||
"CREATOR": "3:作成者",
|
||||
"MODIFIER": "4:変更者",
|
||||
@@ -257,7 +280,7 @@
|
||||
"FACET_QUERIES": {
|
||||
"MY_FACET_QUERIES": "あなたのファセットクエリ",
|
||||
"CREATED_THIS_YEAR": "1.今年作成",
|
||||
"MIMETYPE": "2.種類: HTML",
|
||||
"MIMETYPE": "2.タイプ: HTML",
|
||||
"XTRASMALL": "3.サイズ: 極小",
|
||||
"SMALL": "4.サイズ: 小",
|
||||
"MEDIUM": "5.サイズ: 中",
|
||||
@@ -293,7 +316,7 @@
|
||||
},
|
||||
"PROCESS_LIST_DEMO": {
|
||||
"ERROR_MESSAGE": {
|
||||
"APP_ID_REQUIRED_ERROR": "アプリケーション ID を挿入してください",
|
||||
"APP_ID_REQUIRED_ERROR": "アプリケーション ID を挿入する",
|
||||
"APP_ID_TYPE_ERROR": "アプリケーション ID は数字でなければなりません",
|
||||
"NUMBER_GREATER_THAN": "値は {{ value }} 以上でなければなりません"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,28 @@
|
||||
{
|
||||
"APP": {
|
||||
"HOST_SETTINGS": {
|
||||
"TYPE-AUTH": "Godkjenningstype",
|
||||
"BASIC": "Grunnleggende godkjenning",
|
||||
"SSO": "SSO",
|
||||
"IMPLICIT-FLOW": "Implisitt flyt",
|
||||
"PROVIDER": "Leverandør",
|
||||
"REQUIRED": "Dette feltet er påkrevd",
|
||||
"CS_URL_ERROR": "Adressen til innholdstjenesten stemmer ikke med URL-formatet",
|
||||
"PS_URL_ERROR": "Adressen til prosesstjenestene stemmer ikke med URL-formatet",
|
||||
"TITLE": "Innstillinger",
|
||||
"CS-HOST": "URL tinnholdstjenester",
|
||||
"BP-HOST": "URL prosesstjenester",
|
||||
"BACK": "Tilbake",
|
||||
"APPLY": "Bruk",
|
||||
"NOT_VALID": "http(s)://host|ip:port(/path) ikke gjenkjent, prøv en annen URL.",
|
||||
"REDIRECT": "Omdirigerings-URI",
|
||||
"REDIRECT_LOGOUT": "Omdirigerings-URI avlogging",
|
||||
"SILENT": "Stille pålogging",
|
||||
"SCOPE": "Område",
|
||||
"CLIENT": "Klient-ID",
|
||||
"PUBLIC_URLS": "Offentlige URL-er for stille pålogging",
|
||||
"SECRET": "Hemmelig"
|
||||
},
|
||||
"ABOUT": {
|
||||
"DEVELOPMENT": "Utvikl.modus"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,28 @@
|
||||
{
|
||||
"APP": {
|
||||
"HOST_SETTINGS": {
|
||||
"TYPE-AUTH": "Verificatietype",
|
||||
"BASIC": "Basisverificatie",
|
||||
"SSO": "SSO",
|
||||
"IMPLICIT-FLOW": "Impliciete stroom",
|
||||
"PROVIDER": "Provider",
|
||||
"REQUIRED": "Dit veld is vereist",
|
||||
"CS_URL_ERROR": "Content Services-adres komt niet overeen met de URL-indeling",
|
||||
"PS_URL_ERROR": "Process Services-adres komt niet overeen met de URL-indeling",
|
||||
"TITLE": "Instellingen",
|
||||
"CS-HOST": "Content Services-URL",
|
||||
"BP-HOST": "Process Services-URL",
|
||||
"BACK": "Terug",
|
||||
"APPLY": "Toepassen",
|
||||
"NOT_VALID": "http(s)://host|ip:port(/path) niet herkend, probeer een andere URL.",
|
||||
"REDIRECT": "Omleidings-URI",
|
||||
"REDIRECT_LOGOUT": "Omleidings-URI afmelden",
|
||||
"SILENT": "Stille aanmelding",
|
||||
"SCOPE": "Bereik",
|
||||
"CLIENT": "Client-id",
|
||||
"PUBLIC_URLS": "Openbare URL's voor stille aanmelding",
|
||||
"SECRET": "Geheim"
|
||||
},
|
||||
"ABOUT": {
|
||||
"DEVELOPMENT": "Ontwikkelaarsmodus"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,28 @@
|
||||
{
|
||||
"APP": {
|
||||
"HOST_SETTINGS": {
|
||||
"TYPE-AUTH": "Typ uwierzytelnienia",
|
||||
"BASIC": "Uwierzytelnienie podstawowe",
|
||||
"SSO": "Logowanie jednokrotne",
|
||||
"IMPLICIT-FLOW": "Niejawny przepływ",
|
||||
"PROVIDER": "Dostawca",
|
||||
"REQUIRED": "To pole jest wymagane.",
|
||||
"CS_URL_ERROR": "Adres usług Content Services jest niezgodny z formatem adresu URL.",
|
||||
"PS_URL_ERROR": "Adres usług Process Services jest niezgodny z formatem adresu URL.",
|
||||
"TITLE": "Ustawienia",
|
||||
"CS-HOST": "Adres URL usług Content Services",
|
||||
"BP-HOST": "Adres URL usług Process Services",
|
||||
"BACK": "Wstecz",
|
||||
"APPLY": "Zastosuj",
|
||||
"NOT_VALID": "Nie rozpoznano adresu http(s)://host|ip:port(/path). Spróbuj użyć innego adresu URL.",
|
||||
"REDIRECT": "Identyfikator URI przekierowania",
|
||||
"REDIRECT_LOGOUT": "Identyfikator URI przekierowania — wylogowanie",
|
||||
"SILENT": "Ciche logowanie",
|
||||
"SCOPE": "Zakres",
|
||||
"CLIENT": "Identyfikator klienta",
|
||||
"PUBLIC_URLS": "Publiczne URL do cichego logowania",
|
||||
"SECRET": "Klucz tajny"
|
||||
},
|
||||
"ABOUT": {
|
||||
"DEVELOPMENT": "Tryb progr."
|
||||
},
|
||||
|
||||
@@ -1,5 +1,28 @@
|
||||
{
|
||||
"APP": {
|
||||
"HOST_SETTINGS": {
|
||||
"TYPE-AUTH": "Tipo de autenticação",
|
||||
"BASIC": "Autenticação básica",
|
||||
"SSO": "SSO",
|
||||
"IMPLICIT-FLOW": "Fluxo implícito",
|
||||
"PROVIDER": "Provedor",
|
||||
"REQUIRED": "Este campo é obrigatório",
|
||||
"CS_URL_ERROR": "O endereço do Content Services não corresponde ao formato de URL",
|
||||
"PS_URL_ERROR": "O endereço do Process Services não corresponde ao formato de URL",
|
||||
"TITLE": "Configurações",
|
||||
"CS-HOST": "URL do Content Services",
|
||||
"BP-HOST": "URL do Process Services",
|
||||
"BACK": "Voltar",
|
||||
"APPLY": "Aplicar",
|
||||
"NOT_VALID": "http(s)://host|ip:port(/path) não reconhecida, tente uma URL diferente.",
|
||||
"REDIRECT": "Redirecionar URI",
|
||||
"REDIRECT_LOGOUT": "Redirecionar logout de URI",
|
||||
"SILENT": "Login silencioso",
|
||||
"SCOPE": "Escopo",
|
||||
"CLIENT": "ID de cliente",
|
||||
"PUBLIC_URLS": "Login silencioso de URLs públicas",
|
||||
"SECRET": "Segredo"
|
||||
},
|
||||
"ABOUT": {
|
||||
"DEVELOPMENT": "Modo de desenvolvimento"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,28 @@
|
||||
{
|
||||
"APP": {
|
||||
"HOST_SETTINGS": {
|
||||
"TYPE-AUTH": "Тип авторизации",
|
||||
"BASIC": "Базовая авторизация",
|
||||
"SSO": "SSO",
|
||||
"IMPLICIT-FLOW": "Неявный поток",
|
||||
"PROVIDER": "Поставщик",
|
||||
"REQUIRED": "Поле обязательно для заполнения",
|
||||
"CS_URL_ERROR": "Адрес Content Services не соответствует формату URL",
|
||||
"PS_URL_ERROR": "Адрес Process Services не соответствует формату URL",
|
||||
"TITLE": "Параметры",
|
||||
"CS-HOST": "URL-адрес Content Services",
|
||||
"BP-HOST": "URL-адрес Process Services",
|
||||
"BACK": "Назад",
|
||||
"APPLY": "Применить",
|
||||
"NOT_VALID": "http(s)://host|ip:port(/path) не распознан, используйте другой URL-адрес.",
|
||||
"REDIRECT": "URI перенаправления",
|
||||
"REDIRECT_LOGOUT": "Выход URI перенаправления",
|
||||
"SILENT": "Автоматический вход",
|
||||
"SCOPE": "Область применения",
|
||||
"CLIENT": "Идентификатор клиента",
|
||||
"PUBLIC_URLS": "Общедоступные URL-адреса с автоматическим входом",
|
||||
"SECRET": "Секретный"
|
||||
},
|
||||
"ABOUT": {
|
||||
"DEVELOPMENT": "Режим разработки"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,28 @@
|
||||
{
|
||||
"APP": {
|
||||
"HOST_SETTINGS": {
|
||||
"TYPE-AUTH": "Autentiseringstyp",
|
||||
"BASIC": "Grundläggande autentisering",
|
||||
"SSO": "SSO",
|
||||
"IMPLICIT-FLOW": "Implicit flöde",
|
||||
"PROVIDER": "Leverantör",
|
||||
"REQUIRED": "Detta fält krävs",
|
||||
"CS_URL_ERROR": "Content Services-adressen matchar inte URL-formatet",
|
||||
"PS_URL_ERROR": "Process Services-adressen matchar inte URL-formatet",
|
||||
"TITLE": "Inställningar",
|
||||
"CS-HOST": "Content Services-URL",
|
||||
"BP-HOST": "Process Services-URL",
|
||||
"BACK": "Tillbaka",
|
||||
"APPLY": "Tillämpa",
|
||||
"NOT_VALID": "http(s)://host|ip:port(/path) kändes inte igen, testa annan URL.",
|
||||
"REDIRECT": "Omdirigera URI",
|
||||
"REDIRECT_LOGOUT": "Omdirigera URI-utloggning",
|
||||
"SILENT": "Tyst inloggning",
|
||||
"SCOPE": "Definitionsområde",
|
||||
"CLIENT": "Klient-ID",
|
||||
"PUBLIC_URLS": "Offentliga url:er för tyst inloggning",
|
||||
"SECRET": "Hemlig"
|
||||
},
|
||||
"ABOUT": {
|
||||
"DEVELOPMENT": "Utvecklarläge"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,28 @@
|
||||
{
|
||||
"APP": {
|
||||
"HOST_SETTINGS": {
|
||||
"TYPE-AUTH": "身份验证类型",
|
||||
"BASIC": "基本身份验证",
|
||||
"SSO": "SSO",
|
||||
"IMPLICIT-FLOW": "隐式流",
|
||||
"PROVIDER": "提供程序",
|
||||
"REQUIRED": "此字段为必填字段",
|
||||
"CS_URL_ERROR": "Content Services 地址与 URL 格式不匹配",
|
||||
"PS_URL_ERROR": "Process Services 地址与 URL 格式不匹配",
|
||||
"TITLE": "设置",
|
||||
"CS-HOST": "Content Services URL",
|
||||
"BP-HOST": "Process Services URL",
|
||||
"BACK": "返回",
|
||||
"APPLY": "应用",
|
||||
"NOT_VALID": "http(s)://host|ip:port(/path) 无法识别,请使用其他 URL。",
|
||||
"REDIRECT": "重定向 URI",
|
||||
"REDIRECT_LOGOUT": "重定向 URI 注销",
|
||||
"SILENT": "静默登录",
|
||||
"SCOPE": "范围",
|
||||
"CLIENT": "客户端 ID",
|
||||
"PUBLIC_URLS": "用于静默登录的公共 URL",
|
||||
"SECRET": "机密"
|
||||
},
|
||||
"ABOUT": {
|
||||
"DEVELOPMENT": "Dev 模式"
|
||||
},
|
||||
@@ -103,7 +126,7 @@
|
||||
"PEOPLE_GROUPS_CLOUD": "人员/一组云",
|
||||
"TASK_HEADER_CLOUD": {
|
||||
"COMPONENT_NAME": "云的任务标题",
|
||||
"APP_NAME_INPUT": "应用程序名称",
|
||||
"APP_NAME_INPUT": "App 名称",
|
||||
"TASK_ID_INPUT": "任务 id",
|
||||
"FIND_TASK_BUTTON": "查找任务"
|
||||
},
|
||||
@@ -281,8 +304,8 @@
|
||||
},
|
||||
"TASK_LIST_DEMO": {
|
||||
"ERROR_MESSAGE": {
|
||||
"APP_ID_REQUIRED_ERROR": "插入应用程序 ID",
|
||||
"APP_ID_TYPE_ERROR": "应用程序 ID 必须为数字",
|
||||
"APP_ID_REQUIRED_ERROR": "插入 App ID",
|
||||
"APP_ID_TYPE_ERROR": "App ID 必须为数字",
|
||||
"NUMBER_TYPE_ERROR": "值必须是数字",
|
||||
"NUMBER_GREATER_THAN": "值必须大于或等于 {{ value }}"
|
||||
},
|
||||
@@ -293,8 +316,8 @@
|
||||
},
|
||||
"PROCESS_LIST_DEMO": {
|
||||
"ERROR_MESSAGE": {
|
||||
"APP_ID_REQUIRED_ERROR": "插入应用程序 ID",
|
||||
"APP_ID_TYPE_ERROR": "应用程序 ID 必须为数字",
|
||||
"APP_ID_REQUIRED_ERROR": "插入 App ID",
|
||||
"APP_ID_TYPE_ERROR": "App ID 必须为数字",
|
||||
"NUMBER_GREATER_THAN": "值必须大于或等于 {{ value }}"
|
||||
},
|
||||
"PROCESS_CONTEXT_MENU": "流程列表上下文菜单"
|
||||
|
||||
@@ -1327,6 +1327,15 @@
|
||||
"title": "ADF_CLOUD_TASK_LIST.PROPERTIES.LAST_MODIFIED",
|
||||
"sortable": true,
|
||||
"format": "timeAgo"
|
||||
},
|
||||
{
|
||||
"id": "description",
|
||||
"key": "description",
|
||||
"type": "text",
|
||||
"title": "ADF_CLOUD_TASK_LIST.PROPERTIES.DESCRIPTION",
|
||||
"sortable": false,
|
||||
"draggable": false,
|
||||
"isHidden": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ import { APP_INITIALIZER, NgModule } from '@angular/core';
|
||||
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
||||
import { FlexLayoutModule } from '@angular/flex-layout';
|
||||
import { ChartsModule } from 'ng2-charts';
|
||||
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
|
||||
import { HttpClientModule } from '@angular/common/http';
|
||||
import { BrowserAnimationsModule, NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import {
|
||||
@@ -29,7 +29,7 @@ import {
|
||||
DebugAppConfigService,
|
||||
CoreModule,
|
||||
CoreAutomationService,
|
||||
AuthBearerInterceptor
|
||||
AuthModule
|
||||
} from '@alfresco/adf-core';
|
||||
import { ExtensionsModule } from '@alfresco/adf-extensions';
|
||||
import { AppComponent } from './app.component';
|
||||
@@ -115,6 +115,7 @@ import localeSv from '@angular/common/locales/sv';
|
||||
import { setupAppNotifications } from './services/app-notifications-factory';
|
||||
import { AppNotificationsService } from './services/app-notifications.service';
|
||||
import { SearchFilterChipsComponent } from './components/search/search-filter-chips.component';
|
||||
import { UserInfoComponent } from './components/app-layout/user-info/user-info.component';
|
||||
|
||||
registerLocaleData(localeFr);
|
||||
registerLocaleData(localeDe);
|
||||
@@ -139,6 +140,7 @@ registerLocaleData(localeSv);
|
||||
environment.e2e ? NoopAnimationsModule : BrowserAnimationsModule,
|
||||
ReactiveFormsModule,
|
||||
RouterModule.forRoot(appRoutes, { useHash: true, relativeLinkResolution: 'legacy' }),
|
||||
...(environment.oidc ? [AuthModule.forRoot({ useHash: true })] : []),
|
||||
FormsModule,
|
||||
HttpClientModule,
|
||||
MaterialModule,
|
||||
@@ -159,6 +161,7 @@ registerLocaleData(localeSv);
|
||||
AppComponent,
|
||||
LogoutComponent,
|
||||
AppLayoutComponent,
|
||||
UserInfoComponent,
|
||||
HomeComponent,
|
||||
SearchBarComponent,
|
||||
SearchResultComponent,
|
||||
@@ -209,10 +212,6 @@ registerLocaleData(localeSv);
|
||||
SearchFilterChipsComponent
|
||||
],
|
||||
providers: [
|
||||
{
|
||||
provide: HTTP_INTERCEPTORS, useClass:
|
||||
AuthBearerInterceptor, multi: true
|
||||
},
|
||||
{ provide: AppConfigService, useClass: DebugAppConfigService }, // not use this service in production
|
||||
{
|
||||
provide: TRANSLATION_PROVIDER,
|
||||
|
||||
@@ -22,8 +22,7 @@
|
||||
|
||||
<div class="app-header-delimiexpandedSidenavter"></div>
|
||||
|
||||
<adf-userinfo [menuPositionX]="'before'" [menuPositionY]="'above'">
|
||||
</adf-userinfo>
|
||||
<app-shell-user-info [menuPositionX]="'before'" [menuPositionY]="'above'"></app-shell-user-info>
|
||||
|
||||
<app-theme-picker></app-theme-picker>
|
||||
<button data-automation-id="language-menu-button" mat-icon-button [matMenuTriggerFor]="langMenu">
|
||||
|
||||
@@ -127,7 +127,7 @@ export class AppLayoutComponent implements OnInit, OnDestroy {
|
||||
this.color = color;
|
||||
} else {
|
||||
this.color = undefined;
|
||||
document.documentElement.style.setProperty('--adf-header-background-color', color);
|
||||
document.documentElement.style.setProperty('--theme-primary-color', color);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -138,7 +138,7 @@ export class AppLayoutComponent implements OnInit, OnDestroy {
|
||||
this.headerService.headerTextColor
|
||||
.pipe(takeUntil(this.onDestroy$))
|
||||
.subscribe(headerTextColor => {
|
||||
document.documentElement.style.setProperty('--adf-header-text-color', headerTextColor);
|
||||
document.documentElement.style.setProperty('--theme-primary-color-default-contrast', headerTextColor);
|
||||
});
|
||||
|
||||
this.headerService.logo
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
<ng-container>
|
||||
<adf-content-user-info
|
||||
*ngIf="mode === userInfoMode.CONTENT || mode === userInfoMode.CONTENT_SSO"
|
||||
[ecmUser]="ecmUser$ | async"
|
||||
[identityUser]="identityUser$ | async"
|
||||
[isLoggedIn]="isLoggedIn"
|
||||
[mode]="mode"
|
||||
></adf-content-user-info>
|
||||
<adf-identity-user-info
|
||||
*ngIf="mode === userInfoMode.SSO"
|
||||
[identityUser]="identityUser$ | async"
|
||||
[isLoggedIn]="isLoggedIn"
|
||||
></adf-identity-user-info>
|
||||
<adf-process-user-info
|
||||
*ngIf="mode === userInfoMode.PROCESS || mode === userInfoMode.ALL"
|
||||
[bpmUser]="bpmUser$ | async"
|
||||
[ecmUser]="ecmUser$ | async"
|
||||
[isLoggedIn]="isLoggedIn"
|
||||
[mode]="mode"
|
||||
></adf-process-user-info>
|
||||
</ng-container>
|
||||
+15
-73
@@ -15,34 +15,16 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Component, Input, OnInit, ViewEncapsulation, ViewChild, OnDestroy } from '@angular/core';
|
||||
import { AuthenticationService } from '../../auth/services/authentication.service';
|
||||
import { BpmUserModel } from '../../models/bpm-user.model';
|
||||
import { EcmUserModel } from '../../models/ecm-user.model';
|
||||
import { IdentityUserModel } from '../../auth/models/identity-user.model';
|
||||
import { BpmUserService } from '../../services/bpm-user.service';
|
||||
import { IdentityUserService } from '../../auth/services/identity-user.service';
|
||||
import { of, Observable, Subject } from 'rxjs';
|
||||
import { MatMenuTrigger, MenuPositionX, MenuPositionY } from '@angular/material/menu';
|
||||
import { PeopleContentService } from '../../services/people-content.service';
|
||||
import { AuthenticationService, BpmUserModel, BpmUserService, EcmUserModel, IdentityUserModel, IdentityUserService, PeopleContentService, UserInfoMode } from '@alfresco/adf-core';
|
||||
import { Component, OnInit, Input } from '@angular/core';
|
||||
import { MenuPositionX, MenuPositionY } from '@angular/material/menu';
|
||||
import { Observable, of } from 'rxjs';
|
||||
|
||||
@Component({
|
||||
selector: 'adf-userinfo',
|
||||
templateUrl: './user-info.component.html',
|
||||
styleUrls: ['./user-info.component.scss'],
|
||||
encapsulation: ViewEncapsulation.None
|
||||
selector: 'app-shell-user-info',
|
||||
templateUrl: './user-info.component.html'
|
||||
})
|
||||
export class UserInfoComponent implements OnInit, OnDestroy {
|
||||
|
||||
@ViewChild(MatMenuTrigger) trigger: MatMenuTrigger;
|
||||
|
||||
/** Custom path for the background banner image for ACS users. */
|
||||
@Input()
|
||||
ecmBackgroundImage: string = './assets/images/ecm-background.png';
|
||||
|
||||
/** Custom path for the background banner image for APS users. */
|
||||
@Input()
|
||||
bpmBackgroundImage: string = './assets/images/bpm-background.png';
|
||||
export class UserInfoComponent implements OnInit {
|
||||
|
||||
/** Custom choice for opening the menu at the bottom. Can be `before` or `after`. */
|
||||
@Input()
|
||||
@@ -52,23 +34,12 @@ export class UserInfoComponent implements OnInit, OnDestroy {
|
||||
@Input()
|
||||
menuPositionY: MenuPositionY = 'below';
|
||||
|
||||
/** Shows/hides the username next to the user info button. */
|
||||
@Input()
|
||||
showName: boolean = true;
|
||||
|
||||
/** When the username is shown, this defines its position relative to the user info button.
|
||||
* Can be `right` or `left`.
|
||||
*/
|
||||
@Input()
|
||||
namePosition: string = 'right';
|
||||
|
||||
mode: string;
|
||||
|
||||
mode: UserInfoMode;
|
||||
ecmUser$: Observable<EcmUserModel>;
|
||||
bpmUser$: Observable<BpmUserModel>;
|
||||
identityUser$: Observable<IdentityUserModel>;
|
||||
selectedIndex: number;
|
||||
private destroy$ = new Subject();
|
||||
userInfoMode = UserInfoMode;
|
||||
|
||||
constructor(private peopleContentService: PeopleContentService,
|
||||
private bpmUserService: BpmUserService,
|
||||
@@ -80,40 +51,26 @@ export class UserInfoComponent implements OnInit, OnDestroy {
|
||||
this.getUserInfo();
|
||||
}
|
||||
|
||||
ngOnDestroy(): void {
|
||||
this.destroy$.next(true);
|
||||
this.destroy$.complete();
|
||||
}
|
||||
|
||||
getUserInfo() {
|
||||
if (this.authService.isOauth()) {
|
||||
this.loadIdentityUserInfo();
|
||||
this.mode = 'SSO';
|
||||
this.mode = UserInfoMode.SSO;
|
||||
|
||||
if (this.authService.isECMProvider() && this.authService.isEcmLoggedIn()) {
|
||||
this.mode = UserInfoMode.CONTENT_SSO;
|
||||
this.loadEcmUserInfo();
|
||||
}
|
||||
|
||||
} else if (this.isAllLoggedIn()) {
|
||||
this.loadEcmUserInfo();
|
||||
this.loadBpmUserInfo();
|
||||
this.mode = 'ALL';
|
||||
this.mode = UserInfoMode.ALL;
|
||||
} else if (this.isEcmLoggedIn()) {
|
||||
this.loadEcmUserInfo();
|
||||
this.mode = 'CONTENT';
|
||||
this.mode = UserInfoMode.CONTENT;
|
||||
} else if (this.isBpmLoggedIn()) {
|
||||
this.loadBpmUserInfo();
|
||||
this.mode = 'PROCESS';
|
||||
}
|
||||
}
|
||||
|
||||
onKeyPress(event: KeyboardEvent) {
|
||||
this.closeUserModal(event);
|
||||
}
|
||||
|
||||
private closeUserModal($event: KeyboardEvent) {
|
||||
if ($event.keyCode === 27) {
|
||||
this.trigger.closeMenu();
|
||||
this.mode = UserInfoMode.PROCESS;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -147,20 +104,5 @@ export class UserInfoComponent implements OnInit, OnDestroy {
|
||||
private isEcmLoggedIn() {
|
||||
return this.authService.isEcmLoggedIn() || (this.authService.isECMProvider() && this.authService.isKerberosEnabled());
|
||||
}
|
||||
|
||||
stopClosing(event: Event) {
|
||||
event.stopPropagation();
|
||||
}
|
||||
|
||||
getEcmAvatar(avatarId: any): string {
|
||||
return this.peopleContentService.getUserProfileImage(avatarId);
|
||||
}
|
||||
|
||||
getBpmUserImage(): string {
|
||||
return this.bpmUserService.getCurrentUserProfileImage();
|
||||
}
|
||||
|
||||
get showOnRight(): boolean {
|
||||
return this.namePosition === 'right';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
<adf-viewer
|
||||
[overlayMode]="true"
|
||||
<adf-alfresco-viewer
|
||||
[nodeId]="nodeId">
|
||||
</adf-viewer>
|
||||
</adf-alfresco-viewer>
|
||||
|
||||
@@ -1,340 +1,382 @@
|
||||
<ng-container *ngIf="nodeId || content">
|
||||
<ng-container *ngIf="nodeId">
|
||||
|
||||
<ng-template let-node="node" #sidebarRightTemplate>
|
||||
<adf-info-drawer [title]="'APP.INFO_DRAWER.TITLE' | translate">
|
||||
|
||||
<adf-info-drawer-tab label="APP.INFO_DRAWER.COMMENTS">
|
||||
<adf-node-comments
|
||||
[nodeId]="nodeId"
|
||||
[readOnly]="!isCommentEnabled"
|
||||
>
|
||||
</adf-node-comments>
|
||||
</adf-info-drawer-tab>
|
||||
|
||||
<adf-info-drawer-tab label="APP.INFO_DRAWER.PROPERTIES">
|
||||
<adf-content-metadata-card *ngIf="isPreset" [node]="node"
|
||||
[multi]="multi"
|
||||
[preset]="customPreset"
|
||||
[readOnly]="isReadOnly"
|
||||
[displayAspect]="showAspect"
|
||||
[displayDefaultProperties]="displayDefaultProperties"
|
||||
[displayEmpty]="displayEmptyMetadata"></adf-content-metadata-card>
|
||||
|
||||
<adf-content-metadata-card *ngIf="!isPreset" [node]="node"
|
||||
[multi]="multi"
|
||||
[readOnly]="isReadOnly"
|
||||
[displayAspect]="showAspect"
|
||||
[displayDefaultProperties]="displayDefaultProperties"
|
||||
[displayEmpty]="displayEmptyMetadata"></adf-content-metadata-card>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-metadata-default-properties"
|
||||
[color]="'primary'"
|
||||
(change)="toggleDisplayProperties()"
|
||||
[checked]="displayDefaultProperties">
|
||||
Display Default Properties
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-metadata-empty"
|
||||
[color]="'primary'"
|
||||
(change)="toggleEmptyMetadata()"
|
||||
[checked]="displayEmptyMetadata">
|
||||
Display Empty Metadata
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-metadata-multi"
|
||||
[color]="'primary'"
|
||||
(change)="toggleMulti()"
|
||||
[checked]="multi">
|
||||
Multi accordion
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-metadata-readonly"
|
||||
[color]="'primary'"
|
||||
(change)="toggleReadOnly()"
|
||||
[checked]="isReadOnly">
|
||||
Read Only
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-toggle-custom-preset"
|
||||
[color]="'primary'"
|
||||
(change)="togglePreset()"
|
||||
[checked]="isPreset">
|
||||
Custom preset
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
|
||||
<mat-form-field floatPlaceholder="float">
|
||||
<input matInput
|
||||
placeholder="Display Aspect"
|
||||
[(ngModel)]="desiredAspect">
|
||||
</mat-form-field>
|
||||
|
||||
<button mat-raised-button (click)="applyAspect()" color="primary">
|
||||
Apply Aspect
|
||||
</button>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<ng-container *ngIf="isPreset">
|
||||
<mat-form-field floatPlaceholder="float">
|
||||
<input matInput
|
||||
placeholder="Custom Preset"
|
||||
[(ngModel)]="customPreset"
|
||||
data-automation-id="adf-text-custom-preset">
|
||||
</mat-form-field>
|
||||
|
||||
<button mat-raised-button id="adf-metadata-aplly" (click)="applyCustomPreset()" color="primary">
|
||||
Apply
|
||||
</button>
|
||||
|
||||
</ng-container>
|
||||
</p>
|
||||
|
||||
</adf-info-drawer-tab>
|
||||
|
||||
<adf-info-drawer-tab label="APP.INFO_DRAWER.VERSIONS">
|
||||
<mat-card>
|
||||
<mat-card-content>
|
||||
<adf-version-manager [node]="node"
|
||||
(uploadError)="onUploadError($event)"
|
||||
(viewVersion)="onViewVersion($event)">
|
||||
</adf-version-manager>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
</adf-info-drawer-tab>
|
||||
</adf-info-drawer>
|
||||
</ng-template>
|
||||
|
||||
|
||||
<ng-template let-node="node" #sidebarLeftTemplate>
|
||||
<adf-info-drawer [title]="'Viewer Options'">
|
||||
|
||||
<adf-info-drawer-tab label="Settings">
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-switch-custoname"
|
||||
[color]="'primary'"
|
||||
(change)="toggleCustomName()"
|
||||
[checked]="customName">
|
||||
Custom Name
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<ng-container *ngIf="customName">
|
||||
<mat-form-field floatLabel="never">
|
||||
<input matInput
|
||||
placeholder="Custom Name"
|
||||
[(ngModel)]="displayName"
|
||||
data-automation-id="adf-text-custom-name">
|
||||
</mat-form-field>
|
||||
</ng-container>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-switch-fileurl"
|
||||
[color]="'primary'"
|
||||
(change)="toggleFileUrl()"
|
||||
[checked]="fileUrlSwitch">
|
||||
Url File
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<ng-container *ngIf="fileUrlSwitch">
|
||||
<mat-form-field floatPlaceholder="float">
|
||||
<input matInput
|
||||
placeholder="Url File"
|
||||
[(ngModel)]="urlFile"
|
||||
data-automation-id="adf-text-file-url">
|
||||
</mat-form-field>
|
||||
</ng-container>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-switch-toolbar"
|
||||
[color]="'primary'"
|
||||
(change)="toggleShowToolbar()"
|
||||
[checked]="showToolbar">
|
||||
Show Toolbar
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-switch-goback"
|
||||
[color]="'primary'"
|
||||
(change)="toggleAllowGoBack()"
|
||||
[checked]="allowGoBack">
|
||||
Allow GoBack
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-switch-openwith"
|
||||
[color]="'primary'"
|
||||
(change)="toggleOpenWith()"
|
||||
[checked]="openWith">
|
||||
Open With
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-switch-moreactions"
|
||||
[color]="'primary'"
|
||||
(change)="toggleOpenMoreActions()"
|
||||
[checked]="moreActions">
|
||||
More Actions
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-switch-moreactionsmenu"
|
||||
[color]="'primary'"
|
||||
(change)="toggleMoreActionsMenu()"
|
||||
[checked]="moreActionsMenu">
|
||||
More Actions Menu
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-switch-download"
|
||||
[color]="'primary'"
|
||||
(change)="toggleAllowDownload()"
|
||||
[checked]="allowDownload">
|
||||
Allow Download
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-switch-print"
|
||||
[color]="'primary'"
|
||||
(change)="toggleAllowPrint()"
|
||||
[checked]="allowPrint">
|
||||
Allow Print
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-switch-allowsidebar"
|
||||
[color]="'primary'"
|
||||
(change)="toggleAllowRightSidebar()"
|
||||
[checked]="allowRightSidebar">
|
||||
Allow Right Sidebar
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-switch-allowLeftSidebar"
|
||||
[color]="'primary'"
|
||||
(change)="toggleAllowLeftSidebar()"
|
||||
[checked]="allowLeftSidebar">
|
||||
Allow Left Sidebar
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-toggle-custom-toolbar"
|
||||
[color]="'primary'"
|
||||
(change)="toggleToolbar()"
|
||||
[checked]="customToolbar">
|
||||
Custom Toolbar
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-tab-with-icon"
|
||||
[color]="'primary'"
|
||||
(change)="toggleShowTabWithIcon()"
|
||||
[checked]="showTabWithIcon">
|
||||
Show tab with icon
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-icon-and-label-tab"
|
||||
[color]="'primary'"
|
||||
(change)="toggleShowTabWithIconAndLabel()"
|
||||
[checked]="showTabWithIconAndLabel">
|
||||
Show tab with icon and label
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<button mat-raised-button id="adf-switch-showrightsidebar" (click)="toggleShowRightSidebar()"
|
||||
color="primary">
|
||||
Toggle Right Sidebar
|
||||
</button>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<button mat-raised-button id="adf-switch-showleftsidebar" (click)="hideLeftSidebar()"
|
||||
color="primary">
|
||||
Hide Left Sidebar
|
||||
</button>
|
||||
</p>
|
||||
|
||||
</adf-info-drawer-tab>
|
||||
|
||||
<adf-info-drawer-tab
|
||||
*ngIf="showTabWithIcon"
|
||||
[label]=""
|
||||
[icon]="'face'"
|
||||
data-automation-id="adf-settings-tab">
|
||||
</adf-info-drawer-tab>
|
||||
|
||||
<adf-info-drawer-tab
|
||||
*ngIf="showTabWithIconAndLabel"
|
||||
[label]="'Comments'"
|
||||
[icon]="'comment'"
|
||||
data-automation-id="adf-settings-tab">
|
||||
</adf-info-drawer-tab>
|
||||
</adf-info-drawer>
|
||||
</ng-template>
|
||||
|
||||
<adf-viewer
|
||||
[blobFile]="content"
|
||||
<adf-alfresco-viewer
|
||||
(showViewerChange)="onViewerClosed()"
|
||||
[nodeId]="nodeId"
|
||||
[versionId]="versionId"
|
||||
[showRightSidebar]="showRightSidebar"
|
||||
[showLeftSidebar]="showLeftSidebar"
|
||||
[allowGoBack]="allowGoBack"
|
||||
[displayName]="displayName"
|
||||
[showToolbar]="showToolbar"
|
||||
[allowPrint]="allowPrint"
|
||||
[allowDownload]="allowDownload"
|
||||
[allowRightSidebar]="allowRightSidebar"
|
||||
[allowLeftSidebar]="allowLeftSidebar"
|
||||
[urlFile]="urlFile"
|
||||
(showViewerChange)="onViewerVisibilityChanged()"
|
||||
[sidebarLeftTemplate]="sidebarLeftTemplate"
|
||||
[sidebarRightTemplate]="sidebarRightTemplate">
|
||||
|
||||
<adf-viewer-toolbar *ngIf="customToolbar" data-automation-id="adf-viewer-custom-toolbar">
|
||||
<h1>My custom toolbar</h1>
|
||||
</adf-viewer-toolbar>
|
||||
|
||||
<adf-viewer-toolbar-actions *ngIf="moreActions">
|
||||
<button mat-icon-button id="adf-viewer-time">
|
||||
<mat-icon>alarm</mat-icon>
|
||||
</button>
|
||||
<button mat-icon-button id="adf-viewer-upload">
|
||||
<mat-icon>backup</mat-icon>
|
||||
</button>
|
||||
<button mat-icon-button id="adf-viewer-bug">
|
||||
<mat-icon>bug_report</mat-icon>
|
||||
</button>
|
||||
</adf-viewer-toolbar-actions>
|
||||
|
||||
<adf-viewer-more-actions *ngIf="moreActionsMenu">
|
||||
<button mat-menu-item id="adf-viewer-more-menu-alarm">
|
||||
<mat-icon>alarm</mat-icon>
|
||||
<span>Alarm</span>
|
||||
</button>
|
||||
<button mat-menu-item id="adf-viewer-more-menu-backup">
|
||||
<mat-icon>backup</mat-icon>
|
||||
<span>Backup</span>
|
||||
</button>
|
||||
<button mat-menu-item id="adf-viewer-more-menu-bug">
|
||||
<mat-icon>bug_report</mat-icon>
|
||||
<span>Bug report</span>
|
||||
</button>
|
||||
</adf-viewer-more-actions>
|
||||
|
||||
<ng-container *ngIf="openWith">
|
||||
<adf-viewer-open-with>
|
||||
<button mat-menu-item>
|
||||
<mat-icon>dialpad</mat-icon>
|
||||
<span>Option 1</span>
|
||||
</button>
|
||||
<button mat-menu-item disabled>
|
||||
<mat-icon>voicemail</mat-icon>
|
||||
<span>Option 2</span>
|
||||
</button>
|
||||
<button mat-menu-item>
|
||||
<mat-icon>notifications_off</mat-icon>
|
||||
<span>Option 3</span>
|
||||
</button>
|
||||
</adf-viewer-open-with>
|
||||
</ng-container>
|
||||
</adf-alfresco-viewer>
|
||||
|
||||
</ng-container>
|
||||
|
||||
|
||||
<ng-template let-node="node" #sidebarRightTemplate>
|
||||
<adf-info-drawer [title]="'APP.INFO_DRAWER.TITLE' | translate">
|
||||
|
||||
<adf-info-drawer-tab label="APP.INFO_DRAWER.COMMENTS">
|
||||
<adf-node-comments
|
||||
[nodeId]="nodeId"
|
||||
[readOnly]="!isCommentEnabled"
|
||||
>
|
||||
</adf-node-comments>
|
||||
</adf-info-drawer-tab>
|
||||
|
||||
<adf-info-drawer-tab label="APP.INFO_DRAWER.PROPERTIES">
|
||||
<adf-content-metadata-card *ngIf="isPreset" [node]="node"
|
||||
[multi]="multi"
|
||||
[preset]="customPreset"
|
||||
[readOnly]="isReadOnly"
|
||||
[displayAspect]="showAspect"
|
||||
[displayDefaultProperties]="displayDefaultProperties"
|
||||
[displayEmpty]="displayEmptyMetadata"></adf-content-metadata-card>
|
||||
|
||||
<adf-content-metadata-card *ngIf="!isPreset" [node]="node"
|
||||
[multi]="multi"
|
||||
[readOnly]="isReadOnly"
|
||||
[displayAspect]="showAspect"
|
||||
[displayDefaultProperties]="displayDefaultProperties"
|
||||
[displayEmpty]="displayEmptyMetadata"></adf-content-metadata-card>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-metadata-default-properties"
|
||||
[color]="'primary'"
|
||||
(change)="toggleDisplayProperties()"
|
||||
[checked]="displayDefaultProperties">
|
||||
Display Default Properties
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-metadata-empty"
|
||||
[color]="'primary'"
|
||||
(change)="toggleEmptyMetadata()"
|
||||
[checked]="displayEmptyMetadata">
|
||||
Display Empty Metadata
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-metadata-multi"
|
||||
[color]="'primary'"
|
||||
(change)="toggleMulti()"
|
||||
[checked]="multi">
|
||||
Multi accordion
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-metadata-readonly"
|
||||
[color]="'primary'"
|
||||
(change)="toggleReadOnly()"
|
||||
[checked]="isReadOnly">
|
||||
Read Only
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-toggle-custom-preset"
|
||||
[color]="'primary'"
|
||||
(change)="togglePreset()"
|
||||
[checked]="isPreset">
|
||||
Custom preset
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
|
||||
<mat-form-field floatPlaceholder="float">
|
||||
<input matInput
|
||||
placeholder="Display Aspect"
|
||||
[(ngModel)]="desiredAspect">
|
||||
</mat-form-field>
|
||||
|
||||
<button mat-raised-button (click)="applyAspect()" color="primary">
|
||||
Apply Aspect
|
||||
</button>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<ng-container *ngIf="isPreset">
|
||||
<mat-form-field floatPlaceholder="float">
|
||||
<input matInput
|
||||
placeholder="Custom Preset"
|
||||
[(ngModel)]="customPreset"
|
||||
data-automation-id="adf-text-custom-preset">
|
||||
</mat-form-field>
|
||||
|
||||
<button mat-raised-button id="adf-metadata-aplly" (click)="applyCustomPreset()" color="primary">
|
||||
Apply
|
||||
</button>
|
||||
|
||||
</ng-container>
|
||||
</p>
|
||||
|
||||
</adf-info-drawer-tab>
|
||||
|
||||
<adf-info-drawer-tab label="APP.INFO_DRAWER.VERSIONS">
|
||||
<mat-card>
|
||||
<mat-card-content>
|
||||
<adf-version-manager [node]="node"
|
||||
(uploadError)="onUploadError($event)"
|
||||
(viewVersion)="onViewVersion($event)">
|
||||
</adf-version-manager>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
</adf-info-drawer-tab>
|
||||
</adf-info-drawer>
|
||||
</ng-template>
|
||||
|
||||
<ng-template #sidebarLeftTemplate>
|
||||
<adf-info-drawer [title]="'Viewer Options'">
|
||||
|
||||
<adf-info-drawer-tab label="Settings">
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-switch-fileurl"
|
||||
[color]="'primary'"
|
||||
(change)="toggleFileUrl()"
|
||||
[checked]="fileUrlSwitch">
|
||||
Url File
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<ng-container *ngIf="fileUrlSwitch">
|
||||
<mat-form-field floatPlaceholder="float">
|
||||
<input matInput
|
||||
placeholder="Url File"
|
||||
[(ngModel)]="urlFile"
|
||||
data-automation-id="adf-text-file-url">
|
||||
</mat-form-field>
|
||||
</ng-container>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-switch-toolbar"
|
||||
[color]="'primary'"
|
||||
(change)="toggleShowToolbar()"
|
||||
[checked]="showToolbar">
|
||||
Show Toolbar
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-switch-goback"
|
||||
[color]="'primary'"
|
||||
(change)="toggleAllowGoBack()"
|
||||
[checked]="allowGoBack">
|
||||
Allow GoBack
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-switch-openwith"
|
||||
[color]="'primary'"
|
||||
(change)="toggleOpenWith()"
|
||||
[checked]="openWith">
|
||||
Open With
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-switch-moreactions"
|
||||
[color]="'primary'"
|
||||
(change)="toggleOpenMoreActions()"
|
||||
[checked]="moreActions">
|
||||
More Actions
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-switch-moreactionsmenu"
|
||||
[color]="'primary'"
|
||||
(change)="toggleMoreActionsMenu()"
|
||||
[checked]="moreActionsMenu">
|
||||
More Actions Menu
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-switch-download"
|
||||
[color]="'primary'"
|
||||
(change)="toggleAllowDownload()"
|
||||
[checked]="allowDownload">
|
||||
Allow Download
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-switch-print"
|
||||
[color]="'primary'"
|
||||
(change)="toggleAllowPrint()"
|
||||
[checked]="allowPrint">
|
||||
Allow Print
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-switch-allowsidebar"
|
||||
[color]="'primary'"
|
||||
(change)="toggleAllowRightSidebar()"
|
||||
[checked]="allowRightSidebar">
|
||||
Allow Right Sidebar
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-switch-allowLeftSidebar"
|
||||
[color]="'primary'"
|
||||
(change)="toggleAllowLeftSidebar()"
|
||||
[checked]="allowLeftSidebar">
|
||||
Allow Left Sidebar
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-toggle-custom-toolbar"
|
||||
[color]="'primary'"
|
||||
(change)="toggleToolbar()"
|
||||
[checked]="customToolbar">
|
||||
Custom Toolbar
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-tab-with-icon"
|
||||
[color]="'primary'"
|
||||
(change)="toggleShowTabWithIcon()"
|
||||
[checked]="showTabWithIcon">
|
||||
Show tab with icon
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<mat-slide-toggle
|
||||
id="adf-icon-and-label-tab"
|
||||
[color]="'primary'"
|
||||
(change)="toggleShowTabWithIconAndLabel()"
|
||||
[checked]="showTabWithIconAndLabel">
|
||||
Show tab with icon and label
|
||||
</mat-slide-toggle>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<button mat-raised-button id="adf-switch-showrightsidebar" (click)="toggleShowRightSidebar()"
|
||||
color="primary">
|
||||
Toggle Right Sidebar
|
||||
</button>
|
||||
</p>
|
||||
|
||||
<p class="toggle">
|
||||
<button mat-raised-button id="adf-switch-showleftsidebar" (click)="hideLeftSidebar()"
|
||||
color="primary">
|
||||
Hide Left Sidebar
|
||||
</button>
|
||||
</p>
|
||||
|
||||
</adf-info-drawer-tab>
|
||||
|
||||
<adf-info-drawer-tab
|
||||
*ngIf="showTabWithIcon"
|
||||
[label]=""
|
||||
[icon]="'face'"
|
||||
data-automation-id="adf-settings-tab">
|
||||
</adf-info-drawer-tab>
|
||||
|
||||
<adf-info-drawer-tab
|
||||
*ngIf="showTabWithIconAndLabel"
|
||||
[label]="'Comments'"
|
||||
[icon]="'comment'"
|
||||
data-automation-id="adf-settings-tab">
|
||||
</adf-info-drawer-tab>
|
||||
</adf-info-drawer>
|
||||
</ng-template>
|
||||
|
||||
<ng-container *ngIf="blobFile">
|
||||
<adf-viewer
|
||||
[blobFile]="blobFile"
|
||||
[fileName]="fileName"
|
||||
[showRightSidebar]="showRightSidebar"
|
||||
[showLeftSidebar]="showLeftSidebar"
|
||||
[allowGoBack]="allowGoBack"
|
||||
[showToolbar]="showToolbar"
|
||||
[allowRightSidebar]="allowRightSidebar"
|
||||
[allowLeftSidebar]="allowLeftSidebar"
|
||||
(showViewerChange)="onViewerClosed()"
|
||||
[sidebarLeftTemplate]="sidebarLeftTemplate"
|
||||
[sidebarRightTemplate]="sidebarRightTemplate">
|
||||
|
||||
@@ -386,36 +428,5 @@
|
||||
</adf-viewer-open-with>
|
||||
</ng-container>
|
||||
|
||||
<!--
|
||||
<adf-viewer-extension [supportedExtensions]="['json']">
|
||||
<ng-template let-urlFileContent="urlFileContent" let-extension="extension">
|
||||
<h1>JSON VIEWER</h1>
|
||||
</ng-template>
|
||||
</adf-viewer-extension>
|
||||
-->
|
||||
|
||||
<!--
|
||||
<adf-viewer-extension [supportedExtensions]="['png']">
|
||||
<ng-template>
|
||||
<h1>PNG Viewer</h1>
|
||||
</ng-template>
|
||||
</adf-viewer-extension>
|
||||
-->
|
||||
|
||||
<!--
|
||||
<adf-viewer-extension [supportedExtensions]="['pdf']">
|
||||
<ng-template>
|
||||
<h1>PDF Viewer</h1>
|
||||
</ng-template>
|
||||
</adf-viewer-extension>
|
||||
-->
|
||||
|
||||
<!--
|
||||
<extension-viewer [supportedExtensions]="['obj','3DS']" #extension>
|
||||
<ng-template let-urlFileContent="urlFileContent" let-extension="extension" >
|
||||
<threed-viewer [urlFile]="urlFileContent" [extension]="extension" ></threed-viewer>
|
||||
</ng-template>
|
||||
</extension-viewer>
|
||||
-->
|
||||
</adf-viewer>
|
||||
</ng-container>
|
||||
|
||||
@@ -45,7 +45,6 @@ export class FileViewComponent implements OnInit {
|
||||
customPreset: string = null;
|
||||
displayDefaultProperties = true;
|
||||
showToolbar = true;
|
||||
displayName = null;
|
||||
urlFile = null;
|
||||
allowGoBack = true;
|
||||
openWith = false;
|
||||
@@ -55,7 +54,6 @@ export class FileViewComponent implements OnInit {
|
||||
allowLeftSidebar = true;
|
||||
moreActions = true;
|
||||
moreActionsMenu = false;
|
||||
customName = false;
|
||||
fileUrlSwitch = false;
|
||||
showLeftSidebar = null;
|
||||
showRightSidebar = false;
|
||||
@@ -65,8 +63,9 @@ export class FileViewComponent implements OnInit {
|
||||
showTabWithIconAndLabel = false;
|
||||
desiredAspect: string = null;
|
||||
showAspect: string = null;
|
||||
content: Blob;
|
||||
name: string;
|
||||
fileName: string;
|
||||
blobFile: Blob;
|
||||
|
||||
constructor(private router: Router,
|
||||
private route: ActivatedRoute,
|
||||
@@ -93,9 +92,9 @@ export class FileViewComponent implements OnInit {
|
||||
},
|
||||
() => this.router.navigate(['/files', id])
|
||||
);
|
||||
} else if (this.preview.content) {
|
||||
this.content = this.preview.content;
|
||||
this.displayName = this.preview.name;
|
||||
} else if (this.preview?.content) {
|
||||
this.blobFile = this.preview.content;
|
||||
this.fileName = this.preview.name;
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -104,7 +103,7 @@ export class FileViewComponent implements OnInit {
|
||||
this.preview.showResource(this.nodeId, versionId);
|
||||
}
|
||||
|
||||
onViewerVisibilityChanged() {
|
||||
onViewerClosed() {
|
||||
const primaryUrl = this.router.parseUrl(this.router.url).root.children[PRIMARY_OUTLET].toString();
|
||||
this.router.navigateByUrl(primaryUrl);
|
||||
}
|
||||
@@ -182,14 +181,6 @@ export class FileViewComponent implements OnInit {
|
||||
this.showTabWithIconAndLabel = !this.showTabWithIconAndLabel;
|
||||
}
|
||||
|
||||
toggleCustomName() {
|
||||
this.customName = !this.customName;
|
||||
|
||||
if (!this.customName) {
|
||||
this.displayName = null;
|
||||
}
|
||||
}
|
||||
|
||||
toggleFileUrl() {
|
||||
this.fileUrlSwitch = !this.fileUrlSwitch;
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ const routes: Routes = [
|
||||
CommonModule,
|
||||
RouterModule.forChild(routes),
|
||||
CoreModule,
|
||||
ContentModule,
|
||||
InfoDrawerModule,
|
||||
ContentModule,
|
||||
ContentDirectiveModule,
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
(preview)="showPreview($event)">
|
||||
</adf-document-list>
|
||||
|
||||
<adf-viewer
|
||||
<adf-alfresco-viewer
|
||||
[(showViewer)]="showViewer"
|
||||
[overlayMode]="isOverlay"
|
||||
[nodeId]="nodeId">
|
||||
</adf-viewer>
|
||||
</adf-alfresco-viewer>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
<div fxFlex="50" class="app-rich-text-editor-col app-rich-text-editor-col-sx">
|
||||
<h1 class="app-rich-text-editor-col-title">Rich Text Editor</h1>
|
||||
<adf-rich-text-editor [data]="sampleData" #textEditor></adf-rich-text-editor>
|
||||
<adf-cloud-rich-text-editor [data]="sampleData" #textEditor></adf-cloud-rich-text-editor>
|
||||
</div>
|
||||
<div fxFlex="50" class="app-rich-text-editor-col app-rich-text-editor-col-rx">
|
||||
<h1 class="app-rich-text-editor-col-title">Output Data</h1>
|
||||
|
||||
@@ -15,9 +15,9 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { AfterViewInit, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';
|
||||
import { AfterViewInit, Component, OnDestroy, ViewChild } from '@angular/core';
|
||||
import { OutputData } from '@editorjs/editorjs';
|
||||
import { RichTextEditorComponent as AdfRichTextEditorComponent } from '@alfresco/adf-core';
|
||||
import { RichTextEditorComponent as AdfRichTextEditorComponent } from '@alfresco/adf-process-services-cloud';
|
||||
import { takeUntil } from 'rxjs/operators';
|
||||
import { Subject } from 'rxjs';
|
||||
|
||||
@@ -26,7 +26,7 @@ import { Subject } from 'rxjs';
|
||||
templateUrl: './rich-text-editor.component.html',
|
||||
styleUrls: ['./rich-text-editor.component.scss']
|
||||
})
|
||||
export class RichTextEditorComponent implements OnInit, AfterViewInit, OnDestroy {
|
||||
export class RichTextEditorComponent implements AfterViewInit, OnDestroy {
|
||||
|
||||
@ViewChild('textEditor')
|
||||
textEditor: AdfRichTextEditorComponent;
|
||||
@@ -91,11 +91,6 @@ export class RichTextEditorComponent implements OnInit, AfterViewInit, OnDestroy
|
||||
]
|
||||
};
|
||||
|
||||
constructor() { }
|
||||
|
||||
ngOnInit(): void {
|
||||
}
|
||||
|
||||
ngAfterViewInit(): void {
|
||||
this.textEditor.outputData$.pipe(
|
||||
takeUntil(this.onDestroy$)
|
||||
|
||||
@@ -19,6 +19,7 @@ import { NgModule } from '@angular/core';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { RichTextEditorComponent } from './rich-text-editor.component';
|
||||
import { ContentModule } from '@alfresco/adf-content-services';
|
||||
import { RichTextEditorModule } from '@alfresco/adf-process-services-cloud';
|
||||
import { CoreModule } from '@alfresco/adf-core';
|
||||
import { RouterModule, Routes } from '@angular/router';
|
||||
import { FlexLayoutModule } from '@angular/flex-layout';
|
||||
@@ -37,7 +38,8 @@ const routes: Routes = [
|
||||
CoreModule,
|
||||
RouterModule.forChild(routes),
|
||||
ContentModule.forChild(),
|
||||
FlexLayoutModule
|
||||
FlexLayoutModule,
|
||||
RichTextEditorModule
|
||||
]
|
||||
})
|
||||
export class AppRichTextEditorModule { }
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
*/
|
||||
|
||||
import { QueryBody } from '@alfresco/js-api';
|
||||
import { SearchConfigurationInterface } from '@alfresco/adf-core';
|
||||
import { SearchConfigurationInterface } from '@alfresco/adf-content-services';
|
||||
import { Injectable } from '@angular/core';
|
||||
|
||||
@Injectable()
|
||||
|
||||
@@ -119,6 +119,12 @@
|
||||
formControlName="implicitFlow">
|
||||
</mat-slide-toggle>
|
||||
|
||||
<ng-container *ngIf="supportsCodeFlow">
|
||||
<label for="codeFlow">{{ 'CORE.HOST_SETTINGS.CODE-FLOW'| translate }}</label>
|
||||
<mat-slide-toggle class="adf-full-width" name="codeFlow" [color]="'primary'"
|
||||
formControlName="codeFlow">
|
||||
</mat-slide-toggle>
|
||||
</ng-container>
|
||||
|
||||
<mat-form-field class="adf-full-width">
|
||||
<mat-label>{{ 'APP.HOST_SETTINGS.REDIRECT'| translate }}</mat-label>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
import { Component, EventEmitter, Output, ViewEncapsulation, OnInit, Input } from '@angular/core';
|
||||
import { Validators, UntypedFormGroup, UntypedFormBuilder, UntypedFormControl } from '@angular/forms';
|
||||
import { AppConfigService, AppConfigValues, StorageService, AlfrescoApiService, OauthConfigModel } from '@alfresco/adf-core';
|
||||
import { AppConfigService, AppConfigValues, StorageService, AlfrescoApiService, OauthConfigModel, AuthenticationService } from '@alfresco/adf-core';
|
||||
import { ENTER } from '@angular/cdk/keycodes';
|
||||
|
||||
export const HOST_REGEX = '^(http|https):\/\/.*[^/]$';
|
||||
@@ -57,11 +57,13 @@ export class HostSettingsComponent implements OnInit {
|
||||
// eslint-disable-next-line @angular-eslint/no-output-native
|
||||
success = new EventEmitter<boolean>();
|
||||
|
||||
constructor(private formBuilder: UntypedFormBuilder,
|
||||
private storageService: StorageService,
|
||||
private alfrescoApiService: AlfrescoApiService,
|
||||
private appConfig: AppConfigService) {
|
||||
}
|
||||
constructor(
|
||||
private formBuilder: UntypedFormBuilder,
|
||||
private storageService: StorageService,
|
||||
private alfrescoApiService: AlfrescoApiService,
|
||||
private appConfig: AppConfigService,
|
||||
private auth: AuthenticationService
|
||||
) {}
|
||||
|
||||
ngOnInit() {
|
||||
if (this.providers.length === 1) {
|
||||
@@ -146,6 +148,7 @@ export class HostSettingsComponent implements OnInit {
|
||||
secret: oauth.secret,
|
||||
silentLogin: oauth.silentLogin,
|
||||
implicitFlow: oauth.implicitFlow,
|
||||
codeFlow: oauth.codeFlow,
|
||||
publicUrls: [oauth.publicUrls]
|
||||
});
|
||||
}
|
||||
@@ -185,6 +188,7 @@ export class HostSettingsComponent implements OnInit {
|
||||
this.storageService.setItem(AppConfigValues.AUTHTYPE, values.authType);
|
||||
|
||||
this.alfrescoApiService.reset();
|
||||
this.auth.reset();
|
||||
this.alfrescoApiService.getInstance().invalidateSession();
|
||||
this.success.emit(true);
|
||||
}
|
||||
@@ -228,6 +232,10 @@ export class HostSettingsComponent implements OnInit {
|
||||
return this.form.get('authType').value === 'OAUTH';
|
||||
}
|
||||
|
||||
get supportsCodeFlow(): boolean {
|
||||
return this.auth.supportCodeFlow;
|
||||
}
|
||||
|
||||
get providersControl(): UntypedFormControl {
|
||||
return this.form.get('providersControl') as UntypedFormControl;
|
||||
}
|
||||
@@ -264,6 +272,10 @@ export class HostSettingsComponent implements OnInit {
|
||||
return this.oauthConfig.get('implicitFlow') as UntypedFormControl;
|
||||
}
|
||||
|
||||
get codeFlow(): UntypedFormControl {
|
||||
return this.oauthConfig.get('codeFlow') as UntypedFormControl;
|
||||
}
|
||||
|
||||
get silentLogin(): UntypedFormControl {
|
||||
return this.oauthConfig.get('silentLogin') as UntypedFormControl;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<ng-container *ngIf="sharedLinkId">
|
||||
<adf-viewer
|
||||
<adf-alfresco-viewer
|
||||
(invalidSharedLink)="redirectTo404()"
|
||||
[sharedLinkId]="sharedLinkId"
|
||||
[allowGoBack]="false">
|
||||
</adf-viewer>
|
||||
</adf-alfresco-viewer>
|
||||
</ng-container>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
@use '@angular/material' as mat;
|
||||
@import '../../lib/core/src/lib/styles/index';
|
||||
@include mat.core($alfresco-typography);
|
||||
@import '../../lib/core/src/lib/styles/typography';
|
||||
@include mat.core;
|
||||
|
||||
$primary: mat.define-palette($alfresco-accent-orange);
|
||||
$accent: mat.define-palette($alfresco-accent-purple);
|
||||
@@ -10,21 +11,25 @@ $theme: mat.define-light-theme(
|
||||
color: (
|
||||
primary: $primary,
|
||||
accent: $accent,
|
||||
)
|
||||
warn: $warn
|
||||
),
|
||||
typography: $alfresco-typography
|
||||
)
|
||||
);
|
||||
|
||||
@include mat.all-component-themes($theme);
|
||||
@include alfresco-material-theme($theme);
|
||||
|
||||
$typography: map-get($theme, typography);
|
||||
|
||||
body,
|
||||
html {
|
||||
margin: 0;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
font-size: mat.font-size($alfresco-typography, body-1);
|
||||
font-family: mat.font-family($alfresco-typography);
|
||||
line-height: mat.line-height($alfresco-typography, body-1);
|
||||
font-size: mat.font-size($typography, body-1);
|
||||
font-family: mat.font-family($typography);
|
||||
line-height: mat.line-height($typography, body-1);
|
||||
}
|
||||
|
||||
body {
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2019 Alfresco Software, Ltd.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
export const environment = {
|
||||
production: true,
|
||||
e2e: false,
|
||||
oidc: true
|
||||
};
|
||||
@@ -17,5 +17,6 @@
|
||||
|
||||
export const environment = {
|
||||
production: false,
|
||||
e2e: true
|
||||
e2e: true,
|
||||
oidc: false
|
||||
};
|
||||
|
||||
@@ -17,5 +17,6 @@
|
||||
|
||||
export const environment = {
|
||||
production: true,
|
||||
e2e: false
|
||||
e2e: false,
|
||||
oidc: false
|
||||
};
|
||||
|
||||
@@ -22,5 +22,6 @@
|
||||
|
||||
export const environment = {
|
||||
production: false,
|
||||
e2e: false
|
||||
e2e: false,
|
||||
oidc: false
|
||||
};
|
||||
|
||||
+5
-5
@@ -112,7 +112,7 @@ for more information about installing and using the source code.
|
||||
| [Notification History component](core/components/notification-history.component.md)  | This component is in the current status just an experimental component. | |
|
||||
| The main purpose of the Notification history component is list all the notification received in the current session. They will disappear from the list after the refresh. | [Source](../lib/core/src/lib/notifications/components/notification-history.component.ts) | |
|
||||
| [Pagination Component](core/components/pagination.component.md) | Adds pagination to the component it is used with. | [Source](../lib/core/src/lib/pagination/pagination.component.ts) |
|
||||
| [Rich Text Editor component](core/components/rich-text-editor.md) | Wrap Editor.js element to show a Rich Text editor allows to add formatted text. | [Source](../lib/core/src/lib/rich-text-editor/rich-text-editor.component.ts) |
|
||||
| [Rich Text Editor component](docs/process-services-cloud/rich-text-editor.md) | Wrap Editor.js element to show a Rich Text editor allows to add formatted text. | [Source](lib/process-services-cloud/src/lib/rich-text-editor/rich-text-editor.component.ts) |
|
||||
| [Search Text Input Component](core/components/search-text-input.component.md) | Displays a input text that supports autocompletion | [Source](../lib/core/src/lib/search-text/search-text-input.component.ts) |
|
||||
| [Sidebar action menu component](core/components/sidebar-action-menu.component.md) | Displays a sidebar-action menu information panel. | [Source](../lib/core/src/lib/layout/components/sidebar-action/sidebar-action-menu.component.ts) |
|
||||
| [Sidenav Layout component](core/components/sidenav-layout.component.md) | Displays the standard three-region ADF application layout. | [Source](../lib/core/src/lib/layout/components/sidenav-layout/sidenav-layout.component.ts) |
|
||||
@@ -213,7 +213,7 @@ for more information about installing and using the source code.
|
||||
| [Favorites Api service](core/services/favorites-api.service.md) | Gets a list of items a user has marked as their favorites. | [Source](lib/content-services/src/lib/common/services/favorites-api.service.ts) |
|
||||
| [Form Rendering service](core/services/form-rendering.service.md) | Maps a form field type string onto the corresponding form widget component type. | [Source](../lib/core/form/services/form-rendering.service.ts) |
|
||||
| [Form service](core/services/form.service.md) | Implements Process Services form methods | [Source](../lib/core/src/lib/form/services/form.service.ts) |
|
||||
| [Highlight Transform service](core/services/highlight-transform.service.md) | Adds HTML to a string to highlight chosen sections. | [Source](../lib/core/src/lib/services/highlight-transform.service.ts) |
|
||||
| [Highlight Transform service](core/services/highlight-transform.service.md) | Adds HTML to a string to highlight chosen sections. | [Source](lib/core/src/lib/common/services/highlight-transform.service.ts) |
|
||||
| [Identity Group service](core/services/identity-group.service.md) | Performs CRUD operations on identity groups. | [Source](../lib/process-services-cloud/src/lib/group/services/identity-group.service.ts) |
|
||||
| [Identity role service](core/services/identity-role.service.md) | Provides APIs for working with the Roles in Identity Services. | [Source](../lib/core/src/lib/auth/services/identity-role.service.ts) |
|
||||
| [Identity user service](core/services/identity-user.service.md) | Gets OAuth2 personal details and roles for users and performs CRUD operations on identity users. | [Source](../lib/process-services-cloud/src/lib/people/services/identity-user.service.ts) |
|
||||
@@ -222,7 +222,7 @@ for more information about installing and using the source code.
|
||||
| [Login Dialog service](core/services/login-dialog.service.md) | Manages login dialogs. | [Source](../lib/core/src/lib/services/login-dialog.service.ts) |
|
||||
| [Nodes Api service](core/services/nodes-api.service.md) | Accesses and manipulates ACS document nodes using their node IDs. | [Source](../lib/core/src/lib/services/nodes-api.service.ts) |
|
||||
| [Notification Service](core/services/notification.service.md) | Shows a notification message with optional feedback. | [Source](../lib/core/src/lib/notifications/services/notification.service.ts) |
|
||||
| [Page Title service](core/services/page-title.service.md) | Sets the page title. | [Source](../lib/core/src/lib/services/page-title.service.ts) |
|
||||
| [Page Title service](core/services/page-title.service.md) | Sets the page title. | [Source](lib/core/src/lib/common/services/page-title.service.ts) |
|
||||
| [People Content service](core/services/people-content.service.md) | Gets information about a Content Services user. | [Source](../lib/core/src/lib/services/people-content.service.ts) |
|
||||
| [People Process service](core/services/people-process.service.md) | Gets information about Process Services users. | [Source](../lib/core/src/lib/services/people-process.service.ts) |
|
||||
| [Process Content Service](core/services/process-content.service.md) | Manipulates content related to a Process Instance or Task Instance in APS. | [Source](../lib/process-services/src/lib/form/services/process-content.service.ts) |
|
||||
@@ -231,8 +231,8 @@ for more information about installing and using the source code.
|
||||
| [Search service](core/services/search.service.md) | Accesses the Content Services Search API. | [Source](../lib/core/src/lib/services/search.service.ts) |
|
||||
| [Shared Links Api service](core/services/shared-links-api.service.md) | Finds shared links to Content Services items. | [Source](lib/content-services/src/lib/content-node-share/services/shared-links-api.service.ts) |
|
||||
| [Storage service](core/services/storage.service.md) | Stores items in the form of key-value pairs. | [Source](../lib/core/src/lib/services/storage.service.ts) |
|
||||
| [Thumbnail service](core/services/thumbnail.service.md) | Retrieves an SVG thumbnail image to represent a document type. | [Source](../lib/core/src/lib/services/thumbnail.service.ts) |
|
||||
| [Translation service](core/services/translation.service.md) | Supports localisation. | [Source](../lib/core/src/lib/services/translation.service.ts) |
|
||||
| [Thumbnail service](core/services/thumbnail.service.md) | Retrieves an SVG thumbnail image to represent a document type. | [Source](lib/core/src/lib/common/services/thumbnail.service.ts) |
|
||||
| [Translation service](core/services/translation.service.md) | Supports localisation. | [Source](lib/core/src/lib/translation/translation.service.ts) |
|
||||
| [Upload Service](core/services/upload.service.md) | Provides access to various APIs related to file upload features. | [Source](../lib/core/src/lib/services/upload.service.ts) |
|
||||
| [User access service](core/services/user-access.service.md) | Checks the global and application access of a user | [Source](../lib/core/src/lib/services/user-access.service.ts) |
|
||||
| [User Preferences Service](core/services/user-preferences.service.md) | Stores preferences for the app and for individual components. | [Source](../lib/core/src/lib/common/services/user-preferences.service.ts) |
|
||||
|
||||
@@ -0,0 +1,474 @@
|
||||
---
|
||||
Title: Alfresco Viewer component
|
||||
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")
|
||||
|
||||
Displays content from an ACS repository.
|
||||
|
||||
See it live: [Viewer Quickstart](https://embed.plnkr.co/iTuG1lFIXfsP95l6bDW6/)
|
||||
|
||||
## Contents
|
||||
|
||||
- [Basic usage](#basic-usage)
|
||||
- [Transclusions](#transclusions)
|
||||
- [Class members](#class-members)
|
||||
- [Properties](#properties)
|
||||
- [Events](#events)
|
||||
- [Keyboard shortcuts](#keyboard-shortcuts)
|
||||
- [Details](#details)
|
||||
- [Integrating with the Document List component](#integrating-with-the-document-list-component)
|
||||
- [Supported file formats](#supported-file-formats)
|
||||
- [Content Renditions](#content-renditions)
|
||||
- [Configuring PDF.js library](#configuring-pdfjs-library)
|
||||
- [Extending the Viewer](#extending-the-viewer)
|
||||
- [Custom layout](#custom-layout)
|
||||
- [Printing](#printing)
|
||||
- [See also](#see-also)
|
||||
|
||||
## Basic usage
|
||||
|
||||
Using with node id:
|
||||
|
||||
```html
|
||||
<adf-alfresco-viewer
|
||||
[showViewer]="true"
|
||||
[overlayMode]="true"
|
||||
[nodeId]="'d367023a-7ebe-4f3a-a7d0-4f27c43f1045'">
|
||||
</adf-alfresco-viewer>
|
||||
```
|
||||
|
||||
Using with shared link:
|
||||
|
||||
```html
|
||||
<adf-alfresco-viewer
|
||||
[overlayMode]="true"
|
||||
[sharedLinkId]="'WWDg_afiTU6lHEgr4fAbQA'">
|
||||
</adf-alfresco-viewer>
|
||||
```
|
||||
|
||||
Note that if you have a URL which contains a shared link ID, you should extract the
|
||||
ID portion and use it with the `sharedLinkId` property rather than using the whole
|
||||
URL with `urlFile`.
|
||||
|
||||
### [Transclusions](../../user-guide/transclusion.md)
|
||||
|
||||
The [Alfresco Viewer component](viewer.component.md) 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.
|
||||
|
||||
## Class members
|
||||
|
||||
### Properties
|
||||
|
||||
| Name | Type | Default value | Description |
|
||||
| ---- | ---- | ------------- | ----------- |
|
||||
| allowDownload | `boolean` | true | Toggles downloading. |
|
||||
| allowGoBack | `boolean` | true | Allows `back` navigation |
|
||||
| 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" ("<") 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. |
|
||||
|
||||
### Events
|
||||
|
||||
| Name | Type | Description |
|
||||
| ---- | ---- | ----------- |
|
||||
| close | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<boolean>` | Emitted when the viewer close |
|
||||
| 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' ("<") button. |
|
||||
| navigateNext | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<KeyboardEvent \| MouseEvent>` | Emitted when user clicks 'Navigate Next' (">") button. |
|
||||
|
||||
## 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. |
|
||||
|
||||
## 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:
|
||||
|
||||
```html
|
||||
<adf-document-list
|
||||
currentFolderId="-my-"
|
||||
(preview)="showPreview($event)">
|
||||
</adf-document-list>
|
||||
|
||||
<adf-alfresco-viewer
|
||||
[(showViewer)]="showViewer"
|
||||
[overlayMode]="true"
|
||||
[nodeId]="nodeId">
|
||||
</adf-alfresco-viewer>
|
||||
```
|
||||
|
||||
The component controller class implementation might look like the following:
|
||||
|
||||
```ts
|
||||
export class OverlayViewerComponent {
|
||||
|
||||
@Input()
|
||||
showViewer: boolean = false;
|
||||
|
||||
nodeId: string;
|
||||
|
||||
showPreview(event) {
|
||||
if (event.value.entry.isFile) {
|
||||
this.nodeId = event.value.entry.id;
|
||||
this.showViewer = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 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:
|
||||
|
||||
- PDF View
|
||||
- application/pdf
|
||||
- \*.pdf
|
||||
- Image View
|
||||
- image/png
|
||||
- image/jpeg
|
||||
- image/gif
|
||||
- image/bmp
|
||||
- image/svg+xml
|
||||
- \*.png
|
||||
- \*.jpg
|
||||
- \*.jpeg
|
||||
- \*.gif
|
||||
- \*.bpm
|
||||
- \*.svg
|
||||
- Text View
|
||||
- text/plain
|
||||
- text/csv
|
||||
- text/xml
|
||||
- text/html
|
||||
- application/x-javascript
|
||||
- \*.txt
|
||||
- \*.xml
|
||||
- \*.js
|
||||
- \*.html
|
||||
- \*.json
|
||||
- \*.ts
|
||||
- Media View
|
||||
- video/mp4
|
||||
- video/webm
|
||||
- video/ogg
|
||||
- audio/mpeg
|
||||
- audio/ogg
|
||||
- audio/wav
|
||||
- \*.wav
|
||||
- \*.mp4
|
||||
- \*.mp3
|
||||
- \*.webm
|
||||
- \*.ogg
|
||||
|
||||
### Content Renditions
|
||||
|
||||
For those extensions and mime types that cannot be natively displayed in the browser, the Viewer will try to fetch the corresponding rendition using the [renditions service api](../services/renditions.service.md).
|
||||
|
||||
For the full list of supported types please refer to: [File types that support preview and thumbnail generation](http://docs.alfresco.com/5.2/references/valid-transformations-preview.html).
|
||||
|
||||
### Configuring PDF.js library
|
||||
|
||||
Configure your webpack-enabled application with the PDF.js library as follows.
|
||||
|
||||
1. 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)
|
||||
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:
|
||||
|
||||
```ts
|
||||
// PDF.js
|
||||
require('pdfjs-dist/web/compatibility.js');
|
||||
const pdfjsLib = require('pdfjs-dist');
|
||||
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:
|
||||
|
||||
```js
|
||||
new CopyWebpackPlugin([
|
||||
...
|
||||
{
|
||||
from: 'node_modules/pdfjs-dist/build/pdf.worker.js',
|
||||
to: 'pdf.worker.js'
|
||||
}
|
||||
])
|
||||
```
|
||||
|
||||
### Extending the Viewer
|
||||
|
||||
#### 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
|
||||
|
||||
#### Code extension mechanism]
|
||||
|
||||
You can define your own custom handler to 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`
|
||||
to handle 3D data files:
|
||||
|
||||
```html
|
||||
<adf-alfresco-viewer [nodeId]="nodeId">
|
||||
|
||||
<adf-viewer-extension [supportedExtensions]="['obj','3ds']" #extension>
|
||||
<ng-template let-urlFileContent="urlFileContent" let-extension="extension">
|
||||
<threed-viewer
|
||||
[urlFile]="urlFileContent"
|
||||
[extension]="extension">
|
||||
</threed-viewer>
|
||||
</ng-template>
|
||||
</adf-viewer-extension>
|
||||
|
||||
</adf-alfresco-viewer>
|
||||
```
|
||||
|
||||
Note: you need to add the `ng2-3d-editor` dependency to your `package.json` file to make the example above work.
|
||||
|
||||
You can define multiple `adf-viewer-extension` templates if required:
|
||||
|
||||
```html
|
||||
<adf-alfresco-viewer [nodeId]="nodeId">
|
||||
|
||||
<adf-viewer-extension [supportedExtensions]="['xls','xlsx']" #extension>
|
||||
<ng-template let-urlFileContent="urlFileContent">
|
||||
<my-custom-xls-component
|
||||
urlFileContent="urlFileContent">
|
||||
</my-custom-xls-component>
|
||||
</ng-template>
|
||||
</adf-viewer-extension>
|
||||
|
||||
<adf-viewer-extension [supportedExtensions]="['txt']" #extension>
|
||||
<ng-template let-urlFileContent="urlFileContent" >
|
||||
<my-custom-txt-component
|
||||
urlFileContent="urlFileContent">
|
||||
</my-custom-txt-component>
|
||||
</ng-template>
|
||||
</adf-viewer-extension>
|
||||
</adf-alfresco-viewer>
|
||||
```
|
||||
|
||||
### Custom layout
|
||||
|
||||
The [Alfresco Viewer Component](viewer.component.md) lets you transclude custom content in several different places as
|
||||
explained in the sections below.
|
||||
|
||||
#### Custom toolbar
|
||||
|
||||
You can replace the standard viewer toolbar with your own custom implementation:
|
||||
|
||||
```html
|
||||
<adf-alfresco-viewer>
|
||||
<adf-alfresco-viewer-toolbar>
|
||||
<h1>toolbar</h1>
|
||||
</adf-alfresco-viewer-toolbar>
|
||||
</adf-alfresco-viewer>
|
||||
```
|
||||
|
||||
Everything you put inside the "adf-alfresco-viewer-toolbar" tags will be rendered instead of the
|
||||
standard toolbar.
|
||||
|
||||
#### Custom toolbar buttons
|
||||
|
||||
If you are happy with the custom toolbar's behaviour but want to add some extra buttons
|
||||
then you can do so as shown in the following example:
|
||||
|
||||
```html
|
||||
<adf-alfresco-viewer>
|
||||
<adf-alfresco-viewer-toolbar-actions>
|
||||
<button mat-icon-button>
|
||||
<mat-icon>alarm</mat-icon>
|
||||
</button>
|
||||
<button mat-icon-button>
|
||||
<mat-icon>backup</mat-icon>
|
||||
</button>
|
||||
<button mat-icon-button>
|
||||
<mat-icon>bug_report</mat-icon>
|
||||
</button>
|
||||
</adf-alfresco-viewer-toolbar-actions>
|
||||
</adf-alfresco-viewer>
|
||||
```
|
||||
|
||||
The result should look like this:
|
||||
|
||||

|
||||
|
||||
#### Custom sidebar
|
||||
|
||||
The [Alfresco Viewer Component](viewer.component.md) 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
|
||||
transclusion, which will display all content placed inside the `<adf-alfresco-viewer-sidebar>` element:
|
||||
|
||||
```html
|
||||
<adf-alfresco-viewer [allowRightSidebar]="true">
|
||||
<adf-alfresco-viewer-sidebar>
|
||||
<h1>My info</h1>
|
||||
</adf-alfresco-viewer-sidebar>
|
||||
</adf-alfresco-viewer>
|
||||
```
|
||||
|
||||
The second way to customize the sidebar is to use template injection but note that this only works
|
||||
when using the viewer with `nodeId`.
|
||||
|
||||
```html
|
||||
<ng-template let-node="node" #sidebarTemplate>
|
||||
<adf-content-metadata-card [node]="node"></adf-content-metadata-card>
|
||||
</ng-template>
|
||||
<adf-alfresco-viewer [allowRightSidebar]="true" [sidebarRightTemplate]="sidebarTemplate"></adf-alfresco-viewer>
|
||||
```
|
||||
|
||||
#### Custom thumbnails
|
||||
|
||||
The PDF viewer comes with its own default list of thumbnails but you can replace this
|
||||
by providing a custom template and binding to the context property `viewer` to access the PDFJS.PDFViewer
|
||||
instance.
|
||||
|
||||

|
||||
|
||||
Provide the custom template as in the following example:
|
||||
|
||||
```javascript
|
||||
import { Component, Input } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'custom-thumbnails',
|
||||
template: '<p> Custom Thumbnails Component </p>'
|
||||
})
|
||||
export class CustomThumbnailsComponent {
|
||||
@Input() pdfViewer: any;
|
||||
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
```html
|
||||
<ng-template #customThumbnailsTemplate let-pdfViewer="viewer">
|
||||
<custom-thumbnails [pdfViewer]="pdfViewer"></custom-thumbnails>
|
||||
</ng-template>
|
||||
|
||||
<adf-alfresco-viewer [thumbnailsTemplate]="customThumbnailsTemplate"></adf-alfresco-viewer>
|
||||
```
|
||||
|
||||
#### Custom "Open With" menu
|
||||
|
||||
You can enable a custom "Open With" menu by providing at least one action inside the
|
||||
`adf-alfresco-viewer-open-with` tag:
|
||||
|
||||
```html
|
||||
<adf-alfresco-viewer [nodeId]="nodeId">
|
||||
|
||||
<adf-alfresco-viewer-open-with>
|
||||
<button mat-menu-item>
|
||||
<mat-icon>dialpad</mat-icon>
|
||||
<span>Option 1</span>
|
||||
</button>
|
||||
<button mat-menu-item disabled>
|
||||
<mat-icon>voicemail</mat-icon>
|
||||
<span>Option 2</span>
|
||||
</button>
|
||||
<button mat-menu-item>
|
||||
<mat-icon>notifications_off</mat-icon>
|
||||
<span>Option 3</span>
|
||||
</button>
|
||||
</adf-alfresco-viewer-open-with>
|
||||
|
||||
</adf-alfresco-viewer>
|
||||
```
|
||||
|
||||

|
||||
|
||||
#### Custom "More actions" menu
|
||||
|
||||
You can enable a custom "More actions" menu by providing at least one action inside the `adf-alfresco-viewer-more-actions` tag:
|
||||
|
||||
```html
|
||||
<adf-alfresco-viewer [nodeId]="nodeId">
|
||||
|
||||
<adf-alfresco-viewer-more-actions>
|
||||
<button mat-menu-item>
|
||||
<mat-icon>dialpad</mat-icon>
|
||||
<span>Action One</span>
|
||||
</button>
|
||||
<button mat-menu-item disabled>
|
||||
<mat-icon>voicemail</mat-icon>
|
||||
<span>Action Two</span>
|
||||
</button>
|
||||
<button mat-menu-item>
|
||||
<mat-icon>notifications_off</mat-icon>
|
||||
<span>Action Three</span>
|
||||
</button>
|
||||
</adf-alfresco-viewer-more-actions>
|
||||
|
||||
</adv-viewer>
|
||||
```
|
||||
|
||||

|
||||
|
||||
#### Custom zoom scaling
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
By default the viewer's zoom scaling is set to 100%.
|
||||
|
||||
### Printing
|
||||
|
||||
You can configure the Viewer to let the user print the displayed content. The
|
||||
component will show a "Print" button if the `allowPrint` property is set to
|
||||
true.
|
||||
|
||||
```html
|
||||
<adf-alfresco-viewer [allowPrint]="true">
|
||||
...
|
||||
</adf-alfresco-viewer>
|
||||
```
|
||||
|
||||
You can also use the `print` event to get notification when the user prints some
|
||||
content.
|
||||
|
||||
## See also
|
||||
|
||||
- [Document List component](../../content-services/components/document-list.component.md)
|
||||
- [Preview Extension component](../../extensions/components/preview-extension.component.md)
|
||||
@@ -0,0 +1,38 @@
|
||||
---
|
||||
Title: Content User Info component
|
||||
Added: v6.0.0
|
||||
Status: Active
|
||||
Last reviewed: 2023-01-24
|
||||
---
|
||||
|
||||
# [Content User Info component](../../../lib/content-services/src/lib/content-user-info/content-user-info.component.ts "Defined in content-user-info.component.ts")
|
||||
|
||||
Shows user information for `CONTENT` and `CONTENT_SSO` mode.
|
||||
|
||||
## Basic usage
|
||||
|
||||
```html
|
||||
<adf-content-user-info></adf-content-user-info>
|
||||
```
|
||||
|
||||
## Class members
|
||||
|
||||
### Properties
|
||||
|
||||
| Name | Type | Default value | Description |
|
||||
| ---- | ---- | ------------- | ----------- |
|
||||
| isLoggedIn | `boolean` | Is user logged in |
|
||||
| EcmUser | `EcmUserModel` | Ecm user model. |
|
||||
| identityUser | `IdentityUserModel` | Identity user model. |
|
||||
| mode | `UserInfoMode` | `UserInfoMode.CONTENT` | current mode. |
|
||||
| bpmBackgroundImage | `string` | | Custom path for the background banner image for APS users. |
|
||||
| EcmBackgroundImage | `string` | | Custom path for the background banner image for ACS users. |
|
||||
| menuPositionX | [`MenuPositionX`](https://github.com/angular/components/blob/master/src/material/menu/menu-positions.ts) | "after" | Custom choice for opening the menu at the bottom. Can be `before` or `after`. |
|
||||
| menuPositionY | [`MenuPositionY`](https://github.com/angular/components/blob/master/src/material/menu/menu-positions.ts) | "below" | Custom choice for opening the menu at the bottom. Can be `above` or `below`. |
|
||||
| namePosition | `string` | "right" | When the username is shown, this defines its position relative to the user info button. Can be `right` or `left`. |
|
||||
| showName | `boolean` | true | Shows/hides the username next to the user info button. |
|
||||
|
||||
## Details
|
||||
|
||||
The component shows a round icon for the user and will show extra information about
|
||||
the user when clicked.
|
||||
@@ -99,7 +99,7 @@ Displays the documents from a repository.
|
||||
| nodeClick | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`NodeEntityEvent`](../../../lib/content-services/src/lib/document-list/components/node.event.ts)`>` | Emitted when the user clicks a list node |
|
||||
| nodeDblClick | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`NodeEntityEvent`](../../../lib/content-services/src/lib/document-list/components/node.event.ts)`>` | Emitted when the user double-clicks a list node |
|
||||
| nodeSelected | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`NodeEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeEntry.md)`[]>` | Emitted when the node selection change |
|
||||
| preview | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`NodeEntityEvent`](../../../lib/content-services/src/lib/document-list/components/node.event.ts)`>` | Emitted when the user acts upon files with either single or double click (depends on `navigation-mode`). Useful for integration with the [Viewer component](../../core/components/viewer.component.md). |
|
||||
| preview | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`NodeEntityEvent`](../../../lib/content-services/src/lib/document-list/components/node.event.ts)`>` | Emitted when the user acts upon files with either single or double click (depends on `navigation-mode`). Useful for integration with the Viewer component. |
|
||||
| ready | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`NodePaging`](https://github.com/Alfresco/alfresco-js-api/blob/develop/src/api/content-rest-api/docs/NodePaging.md)`>` | Emitted when the Document List has loaded all items and is ready for use |
|
||||
|
||||
## Details
|
||||
|
||||
@@ -27,9 +27,23 @@ Shows tags for a node.
|
||||
| ---- | ---- | ------------- | ----------- |
|
||||
| nodeId | `string` | | The identifier of a node. |
|
||||
| showDelete | `boolean` | true | Show delete button |
|
||||
| limitTagsDisplayed | `boolean` | false | Should limit number of tags displayed to as much as fits into container |
|
||||
|
||||
### Events
|
||||
|
||||
| Name | Type | Description |
|
||||
| ---- | ---- | ----------- |
|
||||
| results | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<any>` | Emitted when a tag is selected. |
|
||||
|
||||
## Details
|
||||
### Limit number of tags displayed initially
|
||||
|
||||
To limit number of tags initially displayed set `limitTagsDisplayed` to `true`.
|
||||
|
||||
```html
|
||||
<adf-tag-node-list
|
||||
[nodeId]="nodeId"
|
||||
[limitTagsDisplayed]="true">
|
||||
</adf-tag-node-list>
|
||||
```
|
||||
Now when tag chips will exceed the size of the container number of displayed chips will be limited to as much as fits together with view more button. At least one tag will always be displayed, when one tag and view more button won't fit into one line the button will be displayed under the tag.
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
---
|
||||
Title: Tree component
|
||||
Added: v6.0.0.0
|
||||
Status: Active
|
||||
Last reviewed: 2023-01-25
|
||||
---
|
||||
|
||||
# [Tree component](../../../lib/content-services/src/lib/tree/components/tree.component.ts "Defined in tree.component.ts")
|
||||
|
||||
Shows the nodes in tree structure, each node containing children is collapsible/expandable. Can be integrated with any datasource extending [Tree service](../../../lib/content-services//src/lib/tree/services/tree.service.ts).
|
||||
|
||||

|
||||
|
||||
## Basic Usage
|
||||
|
||||
```html
|
||||
<adf-tree
|
||||
[displayName]="'Tree display name'"
|
||||
[loadMoreSuffix]="'subnodes'"
|
||||
[emptyContentTemplate]="emptyContentTemplate"
|
||||
[nodeActionsMenuTemplate]="nodeActionsMenuTemplate"
|
||||
(paginationChanged)="onPaginationChanged($event)">
|
||||
</adf-tree>
|
||||
```
|
||||
|
||||
## Class members
|
||||
|
||||
### Properties
|
||||
|
||||
| Name | Type | Default value | Description |
|
||||
| ---- |---------------| --------- | ----------- |
|
||||
| emptyContentTemplate | `TemplateRef` | | Template that will be rendered when no nodes are loaded. |
|
||||
| nodeActionsMenuTemplate | `TemplateRef` | | Template that will be rendered when context menu for given node is opened. |
|
||||
| stickyHeader | `boolean` | false | If set to true header will be sticky. |
|
||||
| selectableNodes | `boolean` | false | If set to true nodes will be selectable. |
|
||||
| displayName | `string` | | Display name for tree title. |
|
||||
| loadMoreSuffix | `string` | | Suffix added to `Load more` string inside load more node. |
|
||||
| expandIcon | `string` | `chevron_right` | Icon shown when node is collapsed. |
|
||||
| collapseIcon | `string` | `expand_more` | Icon showed when node is expanded. |
|
||||
| contextMenuOptions | `any[]` | | Array of context menu options which should be displayed for each row. |
|
||||
|
||||
|
||||
### Events
|
||||
|
||||
| Name | Type | Description |
|
||||
| ---- |----------------------------------------------------------------------------------------|------------------------------------------------------------------|
|
||||
| paginationChanged | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<PaginationModel>` | Emitted when during loading additional nodes pagination changes. |
|
||||
| contextMenuOptionSelected | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<TreeContextMenuResult<T>>` | Emitted when any context menu option is selected. |
|
||||
|
||||
## Details
|
||||
|
||||
### Defining your own custom datasource
|
||||
|
||||
First of all create custom node interface extending [`TreeNode`](../../../lib/content-services/src/lib/tree/models/tree-node.interface.ts) interface or use [`TreeNode`](../../../lib/content-services/src/lib/tree/models/tree-node.interface.ts) when none extra properties are required.
|
||||
|
||||
```ts
|
||||
export interface CustomNode extends TreeNode
|
||||
```
|
||||
|
||||
Next create custom datasource service extending [`TreeService`](../../../lib/content-services/src/lib/tree/services/tree.service.ts). Datasource service must implement `getSubNodes` method. It has to be able to provide both root level nodes as well as subnodes. If there are more subnodes to load for a given node it should add node with `LoadMoreNode` node type. Example of custom datasource service can be found in [`Category tree datasource service`](../services/category-tree-datasource.service.md).
|
||||
|
||||
```ts
|
||||
@Injectable({...})
|
||||
export class CustomTreeDatasourceService extends TreeService<TreeNode> {
|
||||
...
|
||||
public getSubNodes(parentNodeId: string, skipCount?: number, maxItems?: number): Observable<TreeResponse<TreeNode>> {
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
Final step is to provide your custom datasource service as tree service in component using `TreeComponent`.
|
||||
|
||||
```ts
|
||||
providers: [
|
||||
{
|
||||
provide: TreeService,
|
||||
useClass: CustomTreeDatasourceService,
|
||||
},
|
||||
]
|
||||
```
|
||||
|
||||
### Enabling nodes selection and listening to selection changes
|
||||
|
||||
First step is to provide necessary input value.
|
||||
```html
|
||||
<adf-tree
|
||||
[displayName]="'Tree display name'"
|
||||
[loadMoreSuffix]="'subnodes'"
|
||||
[selectableNodes]="true"
|
||||
[emptyContentTemplate]="emptyContentTemplate"
|
||||
[nodeActionsMenuTemplate]="nodeActionsMenuTemplate"
|
||||
(paginationChanged)="onPaginationChanged($event)">
|
||||
</adf-tree>
|
||||
```
|
||||
|
||||
Next inside your component get the `TreeComponent`
|
||||
|
||||
```ts
|
||||
@ViewChild(TreeComponent)
|
||||
public treeComponent: TreeComponent<TreeNode>;
|
||||
```
|
||||
|
||||
and listen to selection changes.
|
||||
|
||||
```ts
|
||||
this.treeComponent.treeNodesSelection.changed.subscribe(
|
||||
(selectionChange: SelectionChange<TreeNode>) => {
|
||||
this.onTreeSelectionChange(selectionChange);
|
||||
}
|
||||
);
|
||||
```
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
Title: Category tree datasource service
|
||||
Added: v6.0.0.0
|
||||
Status: Active
|
||||
Last reviewed: 2023-01-25
|
||||
---
|
||||
|
||||
# [Category tree datasource service](../../../lib/content-services/src/lib/category/services/category-tree-datasource.service.ts "Defined in category-tree-datasource.service.ts")
|
||||
|
||||
Datasource service for category tree.
|
||||
|
||||
## Class members
|
||||
|
||||
### Methods
|
||||
|
||||
- **getSubNodes**(parentNodeId: `string`, skipCount?: `number`, maxItems?: `number`, name?: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`TreeResponse<CategoryNode>`](../../../lib/content-services/src/lib/tree/models/tree-response.interface.ts)`>`<br/>
|
||||
Gets categories as nodes for category tree.
|
||||
- _parentNodeId:_ `string` - Identifier of a parent category
|
||||
- _skipCount:_ `number` - Number of top categories to skip
|
||||
- _maxItems:_ `number` - Maximum number of subcategories returned from Observable
|
||||
- _name:_ `string` - Optional parameter which specifies if categories should be filtered out by name or not. If not specified then returns categories without filtering.
|
||||
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`TreeResponse<CategoryNode>`](../../../lib/content-services/src/lib/tree/models/tree-response.interface.ts)`>` - TreeResponse object containing pagination object and list on nodes
|
||||
|
||||
## Details
|
||||
|
||||
Category tree datasource service acts as datasource for tree component utilizing category service. See the
|
||||
[Tree component](../../../lib/content-services/src/lib/tree/components/tree.component.ts) and [Tree service](../../../lib/content-services/src/lib/tree/services/tree.service.ts) to get more details on how datasource is used.
|
||||
@@ -0,0 +1,49 @@
|
||||
---
|
||||
Title: Category service
|
||||
Added: v6.0.0.0
|
||||
Status: Active
|
||||
Last reviewed: 2023-01-25
|
||||
---
|
||||
|
||||
# [Category service](../../../lib/content-services/src/lib/category/services/category.service.ts "Defined in category.service.ts")
|
||||
|
||||
Manages categories in Content Services.
|
||||
|
||||
## Class members
|
||||
|
||||
### Methods
|
||||
|
||||
- **getSubcategories**(parentCategoryId: `string`, skipCount?: `number`, maxItems?: `number`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`CategoryPaging`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/api/content-rest-api/docs/CategoryPaging.md)`>`<br/>
|
||||
Gets subcategories of a given parent category.
|
||||
- _parentCategoryId:_ `string` - Identifier of a parent category
|
||||
- _skipCount:_ `number` - Number of top categories to skip
|
||||
- _maxItems:_ `number` - Maximum number of subcategories returned from Observable
|
||||
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`CategoryPaging`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/api/content-rest-api/docs/CategoryPaging.md)`>` - CategoryPaging object (defined in JS-API) with category paging list
|
||||
- **createSubcategory**(parentCategoryId: `string`, payload: [`CategoryBody`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/api/content-rest-api/docs/CategoryBody.md)): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`CategoryEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/api/content-rest-api/docs/CategoryEntry.md)`>`<br/>
|
||||
Creates subcategory under category with provided categoryId.
|
||||
- _parentCategoryId:_ `string` - Identifier of a parent category
|
||||
- _payload:_ [`CategoryBody`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/api/content-rest-api/docs/CategoryBody.md) - Created category body
|
||||
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`CategoryEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/api/content-rest-api/docs/CategoryEntry.md)`>` - CategoryEntry object (defined in JS-API) containing the category
|
||||
- **updateCategory**(categoryId: `string`, payload: [`CategoryBody`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/api/content-rest-api/docs/CategoryBody.md)): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`CategoryEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/api/content-rest-api/docs/CategoryEntry.md)`>`<br/>
|
||||
Updates category.
|
||||
- _categoryId:_ `string` - Identifier of a category
|
||||
- _payload:_ [`CategoryBody`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/api/content-rest-api/docs/CategoryBody.md) - Created category body
|
||||
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`CategoryEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/api/content-rest-api/docs/CategoryEntry.md)`>` - CategoryEntry object (defined in JS-API) containing the category
|
||||
- **deleteCategory**(categoryId: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)`<void>`<br/>
|
||||
Deletes category.
|
||||
- _categoryId:_ `string` - Identifier of a category
|
||||
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<void>` - Null object when the operation completes
|
||||
- **searchCategories**(name: `string`, skipCount: `number`, maxItems?: `number`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`ResultSetPaging`](https://github.com/Alfresco/alfresco-js-api/blob/develop/src/api/search-rest-api/docs/ResultSetPaging.md)`>`<br/>
|
||||
Searches categories by their name.
|
||||
- _name:_ `string` - Value for name which should be used during searching categories.
|
||||
- _skipCount:_ `number` - Specify how many first results should be skipped. Default 0.
|
||||
- _maxItems:_ `number` - Specify max number of returned categories. Default is specified by UserPreferencesService.
|
||||
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`ResultSetPaging`](https://github.com/Alfresco/alfresco-js-api/blob/develop/src/api/search-rest-api/docs/ResultSetPaging.md)`>` - Found categories which name contains searched name.
|
||||
|
||||
## Details
|
||||
|
||||
See the
|
||||
[Categories API](https://github.com/Alfresco/alfresco-js-api/blob/master/src/api/content-rest-api/docs/CategoriesApi.md)
|
||||
in the Alfresco JS API for more information about the types returned by [Category
|
||||
service](category.service.md) methods and for the implementation of the REST API the service is
|
||||
based on.
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
Title: Content Comment List Service
|
||||
Added: v6.0.0
|
||||
Status: Active
|
||||
Last reviewed: 2023-01-17
|
||||
---
|
||||
|
||||
# [Content Comment List service](../../../lib/content-services/src/lib/node-comments/services/content-comment-list.service.ts "Defined in content-comment-list.service.ts")
|
||||
|
||||
Gets user image for comments in Content Services.
|
||||
|
||||
## Class members
|
||||
|
||||
### Methods
|
||||
|
||||
- **getUserImage**(user: `string`): `string`<br/>
|
||||
Gets user image
|
||||
- _user:_ `string` - The user id;
|
||||
- **Returns** `string` - The user image path
|
||||
|
||||
## See also
|
||||
|
||||
- [Node comments component](../../../lib/content-services/src/lib/node-comments/node-comments.component.ts)
|
||||
@@ -25,7 +25,7 @@ Stores information from all the custom search and faceted search widgets, compil
|
||||
- **Returns** `QueryBody` - The finished query
|
||||
- **execute**(queryBody?: `QueryBody`)<br/>
|
||||
Builds and executes the current query.
|
||||
- _queryBody:_ `QueryBody` - (Optional)
|
||||
- _queryBody:_ `QueryBody` - (Optional) (Optional)
|
||||
- **getDefaultConfiguration**(): [`SearchConfiguration`](../../../lib/content-services/src/lib/search/models/search-configuration.interface.ts)`|undefined`<br/>
|
||||
|
||||
- **Returns** [`SearchConfiguration`](../../../lib/content-services/src/lib/search/models/search-configuration.interface.ts)`|undefined` -
|
||||
@@ -92,7 +92,7 @@ Stores information from all the custom search and faceted search widgets, compil
|
||||
|
||||
- **update**(queryBody?: `QueryBody`)<br/>
|
||||
Builds the current query and triggers the `updated` event.
|
||||
- _queryBody:_ `QueryBody` - (Optional)
|
||||
- _queryBody:_ `QueryBody` - (Optional) (Optional)
|
||||
- **updateSelectedConfiguration**(index: `number`)<br/>
|
||||
|
||||
- _index:_ `number` -
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
---
|
||||
Title: Security Controls service
|
||||
Added: v2.0.0
|
||||
Status: Active
|
||||
Last reviewed: 2023-02-21
|
||||
---
|
||||
|
||||
# [Security Controls service](../../../lib/content-services/src/lib/security/services/security-controls-groups-marks-security.service.ts "Defined in security-controls-groups-marks-security.service.ts")
|
||||
|
||||
Manages security groups & marks in Content Services.
|
||||
|
||||
## Class members
|
||||
|
||||
### Methods
|
||||
|
||||
- **getSecurityGroup**(skipCount?: `number`, maxItems?: `number`, include?: `string`): [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises)`<SecurityControlsGroupResponse>`<br/>
|
||||
Get security groups.
|
||||
- _skipCount:_ `number` - The number of entities that exist in the collection before those included in this list.
|
||||
- _maxItems:_ `number` - The maximum number of items to return in the list.
|
||||
- _include:_ `string` - Additional information about the security group.
|
||||
- **Returns** [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises)`<SecurityControlsGroupResponse>`
|
||||
- **createSecurityGroup**(input: `SecurityGroupBody`): [`Observable`](http://reactivex.io/documentation/observable.html)`<SecurityGroupEntry>`<br/>
|
||||
Creates a security group.
|
||||
- _input:_ `SecurityGroupBody` - Security group.
|
||||
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<SecurityGroupEntry>`
|
||||
- **createSecurityMarks**(securityGroupId: `string`, input: `SecurityMarkBody[]`): [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises)`<SecurityMarkPaging | SecurityMarkEntry>`<br/>
|
||||
Create security marks.
|
||||
- _securityGroupId:_ `string` - The key for the security group id.
|
||||
- _SecurityMarkBody:_ `SecurityMarkBody[]` - Node security marks list.
|
||||
- **Returns** [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises)`<SecurityMarkPaging | SecurityMarkEntry>`
|
||||
- **getSecurityMark**(securityGroupId: `string`, skipCount?: `number`, include?: `string`): [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises)`<SecurityControlsMarkResponse>`<br/>
|
||||
Get security mark value.
|
||||
- _securityGroupId:_ `string` - The key for the security group id.
|
||||
- _skipCount:_ `number` - The number of entities that exist in the collection before those included in this list.
|
||||
- _include:_ `string` - The key for the security mark is in use or not.
|
||||
- **Returns** [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises)`<SecurityControlsMarkResponse>`
|
||||
- **updateSecurityGroup**(securityGroupId: `string`, input: `SecurityGroupBody`, opts?: `any`): [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises)`<SecurityGroupEntry>`<br/>
|
||||
Update a security groups information.
|
||||
- _securityGroupId:_ `string` - The key of security group id for which info is required.
|
||||
- _input:_ `SecurityGroupBody` - Security group.
|
||||
- _opts:_ `any` - (Optional) Extra options supported by JS-API.
|
||||
- **Returns** [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises)`<SecurityGroupEntry>`
|
||||
- **updateSecurityMark**(securityGroupId: `string`, securityMarkId: `string`, input: `SecurityMarkBody`): [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises)`<SecurityMarkEntry>`<br/>
|
||||
Updates Security Mark value.
|
||||
- _securityGroupId:_ `string` - The key for the security group id.
|
||||
- _securityMarkId:_ `string` - The key for the security mark is in use or not.
|
||||
- _input:_ `SecurityMarkBody` - Security mark.
|
||||
- **Returns** [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises)`<SecurityMarkEntry>`
|
||||
- **deleteSecurityGroup**(securityGroupId: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)`<SecurityGroupEntry>`<br/>
|
||||
Delete security group.
|
||||
- _securityGroupId:_ `string` - The key for the security group id.
|
||||
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<SecurityGroupEntry>`
|
||||
- **deleteSecurityMark**(securityGroupId: `string`, securityMarkId: `string`): [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises)`<SecurityMarkEntry>`<br/>
|
||||
Delete security mark.
|
||||
- _securityGroupId:_ `string` - The key for the security group id.
|
||||
- _securityMarkId:_ `string` - The key for the security mark id.
|
||||
- **Returns** [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises)`<SecurityMarkEntry>`
|
||||
- **getClearancesForAuthority**(authorityName: `string`, skipCount?: `number`, maxItems?: `number`): [`Observable`](http://reactivex.io/documentation/observable.html)`<AuthorityClearanceGroupPaging>`<br/>
|
||||
Get the authority clearances for a single user/group.
|
||||
- _authorityName:_ `string` - The name for the authority for which the clearance is to be fetched.
|
||||
- _skipCount:_ `number` - The number of entities that exist in the collection before those included in this list.
|
||||
- _maxItems:_ `number` - The maximum number of items to return in the list.
|
||||
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<AuthorityClearanceGroupPaging>`
|
||||
- **updateClearancesForAuthority**(authorityName: `string`, securityMarksList: `NodeSecurityMarkBody[]`): [`Observable`](http://reactivex.io/documentation/observable.html)`<SecurityMarkEntry | SecurityMarkPaging>`<br/>
|
||||
Updates the authority clearance.
|
||||
- _authorityName:_ `string` - The name for the authority for which the clearance is to be updated.
|
||||
- _securityMarksList:_ `NodeSecurityMarkBody[]` - Node security marks list.
|
||||
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<SecurityMarkEntry | SecurityMarkPaging>`
|
||||
|
||||
|
||||
## Properties
|
||||
|
||||
| Name | Type | Description |
|
||||
| ---- | ---- |--------------------------|
|
||||
| groupsPaginated$ | [`Observable`](http://reactivex.io/documentation/observable.html)`<SecurityControlsGroupResponse>` | Current paginated groups. |
|
||||
| marksPaginated$ | [`Observable`](http://reactivex.io/documentation/observable.html)`<SecurityControlsMarkResponse>` | Current paginated marks. |
|
||||
| reloadSecurityControls$ | [`Observable`](http://reactivex.io/documentation/observable.html)`<void>` | |
|
||||
| reloadAuthorityClearance$ | [`Observable`](http://reactivex.io/documentation/observable.html)`<void>` | |
|
||||
| loading$ | [`Observable`](http://reactivex.io/documentation/observable.html)`<boolean>` | Current loading state. |
|
||||
@@ -31,6 +31,33 @@ Manages tags in Content Services.
|
||||
- _nodeId:_ `string` - ID of the target node
|
||||
- _tag:_ `string` - Name of the tag to remove
|
||||
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<any>` - Null object when the operation completes
|
||||
- **deleteTag**(tagId: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)`<void>`<br/>
|
||||
Completely deletes a tag, this will cause the tag to be removed from all the nodes.
|
||||
- _tagId:_ `string` - ID of the tag to remove
|
||||
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<void>` - Null object when the operation completes
|
||||
- **createTags**(tags: `TagBody[]`): [`Observable`](http://reactivex.io/documentation/observable.html)`<TagEntry[]>`<br/>
|
||||
Creates tags.
|
||||
- _tags:_ `TagBody[]` - List of tags to create.
|
||||
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<TagEntry[]>` - List of created tags.
|
||||
- **updateTag**(tagId: `string`, tagBody: `TagBody`): [`Observable`](http://reactivex.io/documentation/observable.html)`<TagEntry>`<br/>
|
||||
Updates a tag.
|
||||
- _tagId:_ `string` - The identifier of a tag.
|
||||
- _tagBody:_ `TagBody` - The updated tag.
|
||||
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<TagEntry>` - Updated tag.
|
||||
- **searchTags**(name: `string`, skipCount: `number`): [`Observable`](http://reactivex.io/documentation/observable.html)`<ResultSetPaging>`<br/>
|
||||
Find tags which name contains searched name.
|
||||
- _name:_ `string` - Value for name which should be used during searching tags.
|
||||
- _skipCount:_ `number` - Specify how many first results should be skipped. Default 0.
|
||||
- _maxItems:_ `number` - Specify max number of returned tags. Default is specified by UserPreferencesService.
|
||||
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<ResultSetPaging>` - Found tags which name contains searched name.
|
||||
- **getCountersForTags**(tags: `string[]`): [`Observable`](http://reactivex.io/documentation/observable.html)`<ResultSetContextFacetQueries[]>`<br/>
|
||||
Get usage counters for passed tags.
|
||||
- _tags:_ `string[]` - Array of tags names for which there should be returned counters.
|
||||
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<ResultSetContextFacetQueries[]>` - Array of usage counters for specified tags.
|
||||
- **findTagByName**(name: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)`<TagEntry>`<br/>
|
||||
Find tag which name matches exactly to passed name.
|
||||
- _name:_ `string` - Value for name which should be used during finding exact tag.
|
||||
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<TagEntry>` - Found tag which name matches exactly to passed name.
|
||||
|
||||
## Details
|
||||
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
Title: Comment list component
|
||||
Added: v2.0.0
|
||||
Status: Active
|
||||
Last reviewed: 2018-11-14
|
||||
Last reviewed: 2023-01-10
|
||||
---
|
||||
|
||||
# [Comment list component](../../../lib/core/src/lib/comments/comment-list.component.ts "Defined in comment-list.component.ts")
|
||||
# [Comment list component](../../../lib/core/src/lib/comments/comment-list/comment-list.component.ts "Defined in comment-list.component.ts")
|
||||
|
||||
Shows a list of comments.
|
||||
|
||||
|
||||
@@ -60,6 +60,7 @@ Defines column properties for DataTable, Tasklist, Document List and other compo
|
||||
| srTitle | `string` | | Title to be used for screen readers. |
|
||||
| title | `string` | "" | Display title of the column, typically used for column headers. You can use the i18n resource key to get it translated automatically. |
|
||||
| type | `string` | "text" | Value type for the column. Possible settings are 'text', 'image', 'date', 'fileSize', 'location', and 'json'. |
|
||||
| width | `number` | | size of the column in pixels |
|
||||
|
||||
## Details
|
||||
|
||||
|
||||
@@ -388,11 +388,13 @@ Learm more about styling your datatable: [Customizing the component's styles](#c
|
||||
| showMainDatatableActions | `boolean` | false | Toggles the main datatable action. |
|
||||
| sorting | `any[]` | \[] | Define the sort order of the datatable. Possible values are : [`created`, `desc`], [`created`, `asc`], [`due`, `desc`], [`due`, `asc`] |
|
||||
| stickyHeader | `boolean` | false | Toggles the sticky header mode. |
|
||||
| isResizingEnabled | `boolean` | false | Toggles column resizing feature. |
|
||||
|
||||
### Events
|
||||
|
||||
| Name | Type | Description |
|
||||
| ---- | ---- | ----------- |
|
||||
| columnsWidthChanged | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`DataColumn`](../../../lib/core/src/lib/datatable/data/data-column.model.ts)`<>[]>` | Emitted after a column width gets changed due to resizing. |
|
||||
| columnOrderChanged | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`DataColumn`](../../../lib/core/src/lib/datatable/data/data-column.model.ts)`<>[]>` | Emitted after dragging and dropping column header. |
|
||||
| executeRowAction | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`DataRowActionEvent`](../../../lib/core/src/lib/datatable/components/data-row-action.event.ts)`>` | Emitted when the user executes a row action. |
|
||||
| rowClick | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`DataRowEvent`](../../../lib/core/src/lib/datatable/data/data-row-event.model.ts)`>` | Emitted when the user clicks a row. |
|
||||
@@ -873,3 +875,19 @@ You can define the tooltip format for cells of type date using a configuration i
|
||||
- [Pagination component](pagination.component.md)
|
||||
- [Data Table Adapter interface](../interfaces/datatable-adapter.interface.md)
|
||||
- [Document list component](../../content-services/components/document-list.component.md)
|
||||
|
||||
#### Column Resizing
|
||||
|
||||
It is possible to have the ability to resize columns by clicking on the right border of each column and dragging it to the left.
|
||||
You can do this by setting the `isResizingEnabled` property of your datatable to `true`:
|
||||
|
||||
```html
|
||||
<adf-datatable
|
||||
[data]="data"
|
||||
[isResizingEnabled]="true">
|
||||
</adf-datatable>
|
||||
```
|
||||
|
||||
Once set up, the column resizing behaves as shown in the image below:
|
||||
|
||||

|
||||
|
||||
@@ -57,6 +57,5 @@ Forms defined in APS have the following default mappings for the form fields:
|
||||
| Attach File | upload | AttachWidgetComponent or [`UploadWidgetComponent`](../../../lib/process-services/src/lib/form/widgets/upload/upload.widget.ts) (based on metadata) |
|
||||
| Display value | readonly | [`TextWidgetComponent`](../../../lib/core/src/lib/form/components/widgets/text/text.widget.ts) |
|
||||
| Display text | readonly-text | [`DisplayTextWidgetComponent`](../../../lib/core/src/lib/form/components/widgets/display-text/display-text.widget.ts) |
|
||||
| Display Rich text | display-rich-text | [`DisplayRichTextWidgetComponent`](../../../lib/core/src/lib/form/components/widgets/display-rich-text/display-rich-text.widget.ts) |
|
||||
| N/A | container | [`ContainerWidgetComponent`](lib/core/src/lib/form/components/widgets/container/container.widget.ts) (layout component) |
|
||||
| N/A | container | [`ContainerWidgetComponent`](lib/core/src/lib/form/components/widgets/container/container.widget.ts) (layout component) |
|
||||
| N/A | N/A | [`UnknownWidgetComponent`](../../../lib/core/src/lib/form/components/widgets/unknown/unknown.widget.ts) |
|
||||
|
||||
+8
-8
@@ -1,18 +1,18 @@
|
||||
---
|
||||
Title: User Info component
|
||||
Added: v2.0.0
|
||||
Title: Identity User Info component
|
||||
Added: v6.0.0
|
||||
Status: Active
|
||||
Last reviewed: 2018-11-19
|
||||
Last reviewed: 2023-01-24
|
||||
---
|
||||
|
||||
# [User Info component](../../../lib/core/src/lib/userinfo/components/user-info.component.ts "Defined in user-info.component.ts")
|
||||
# [Identity User Info component](../../../lib/core/src/lib/identity-user-info/identity-user-info.component.ts "Defined in identityuser-info.component.ts")
|
||||
|
||||
Shows user information.
|
||||
Shows user information for SSO mode.
|
||||
|
||||
## Basic usage
|
||||
|
||||
```html
|
||||
<adf-userinfo></adf-userinfo>
|
||||
<adf-identity-user-info></adf-identity-user-info>
|
||||
```
|
||||
|
||||
## Class members
|
||||
@@ -21,6 +21,8 @@ Shows user information.
|
||||
|
||||
| Name | Type | Default value | Description |
|
||||
| ---- | ---- | ------------- | ----------- |
|
||||
| isLoggedIn | `boolean` | Is user logged in |
|
||||
| identityUser | `IdentityUserModel` | Identity user model. |
|
||||
| bpmBackgroundImage | `string` | | Custom path for the background banner image for APS users. |
|
||||
| ecmBackgroundImage | `string` | | Custom path for the background banner image for ACS users. |
|
||||
| menuPositionX | [`MenuPositionX`](https://github.com/angular/components/blob/master/src/material/menu/menu-positions.ts) | "after" | Custom choice for opening the menu at the bottom. Can be `before` or `after`. |
|
||||
@@ -32,5 +34,3 @@ Shows user information.
|
||||
|
||||
The component shows a round icon for the user and will show extra information about
|
||||
the user when clicked.
|
||||
If user is logged in with both ACS and APS, the ACS image will be shown.
|
||||
In case of SSO authentication, the information related to the user like firstname, lastname will be fetched using the Keycloak [`Api`](../../../lib/testing/src/lib/core/structure/api.ts)
|
||||
@@ -5,7 +5,7 @@ Status: Active
|
||||
Last reviewed: 2019-11-06
|
||||
---
|
||||
|
||||
# [Search Text Input Component](../../../lib/core/src/lib/search-text/search-text-input.component.ts "Defined in search-text-input.component.ts")
|
||||
- # [Search Text Input Component](../../../lib/core/src/lib/search-text/search-text-input.component.ts "Defined in search-text-input.component.ts")
|
||||
|
||||
Displays a input text that supports autocompletion
|
||||
|
||||
|
||||
@@ -0,0 +1,275 @@
|
||||
---
|
||||
Title: Viewer Render component
|
||||
Added: v6.0.0
|
||||
Status: Active
|
||||
Last reviewed: 2022-11-25
|
||||
---
|
||||
|
||||
# [Viewer render component](../../../lib/core/src/lib/viewer/components/viewer-render.component.ts "Defined in viewer-render.component.ts")
|
||||
|
||||
Displays content from an ACS repository.
|
||||
|
||||
See it live: [Viewer Quickstart](https://embed.plnkr.co/iTuG1lFIXfsP95l6bDW6/)
|
||||
|
||||
## Contents
|
||||
|
||||
- [Basic usage](#basic-usage)
|
||||
- [Class members](#class-members)
|
||||
- [Properties](#properties)
|
||||
- [Events](#events)
|
||||
- [Keyboard shortcuts](#keyboard-shortcuts)
|
||||
- [Details](#details)
|
||||
- [Custom file parameters](#custom-file-parameters)
|
||||
- [Supported file formats](#supported-file-formats)
|
||||
- [Configuring PDF.js library](#configuring-pdfjs-library)
|
||||
- [Extending the Viewer](#extending-the-viewer)
|
||||
- [Custom layout](#custom-layout)
|
||||
- [See also](#see-also)
|
||||
|
||||
## Basic usage
|
||||
|
||||
Using with file url:
|
||||
|
||||
```html
|
||||
<adf-viewer-render
|
||||
[overlayMode]="true"
|
||||
[urlFile]="'filename.pdf'">
|
||||
</adf-viewer-render>
|
||||
```
|
||||
|
||||
Using with file [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob):
|
||||
|
||||
```html
|
||||
<adf-viewer-render
|
||||
[overlayMode]="true"
|
||||
[blobFile]="myBlobVar">
|
||||
</adf-viewer-render>
|
||||
```
|
||||
|
||||
## Class members
|
||||
|
||||
### Properties
|
||||
|
||||
| Name | Type | Default value | Description |
|
||||
| ---- | ---- | ------------- | ----------- |
|
||||
| allowFullScreen | `boolean` | true | Toggles the 'Full Screen' feature. |
|
||||
| allowThumbnails | `boolean` | true | Toggles PDF thumbnails. |
|
||||
| blobFile | [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob) | | Loads a [Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob) File |
|
||||
| fileName | `string` | | Override Content filename. |
|
||||
| isLoading | `boolean` | false | Override loading status |
|
||||
| mimeType | `string` | | MIME type of the file content (when not determined by the filename extension). |
|
||||
| readOnly | `boolean` | true | Enable when where is possible the editing functionalities |
|
||||
| thumbnailsTemplate | [`TemplateRef`](https://angular.io/api/core/TemplateRef)`<any>` | null | The template for the pdf thumbnails. |
|
||||
| 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. |
|
||||
| viewerType | `string` | "unknown" | Override Content view type. Viewer to use with the `urlFile` address (`pdf`, `image`, `media`, `text`). |
|
||||
|
||||
### Events
|
||||
|
||||
| Name | Type | Description |
|
||||
| ---- | ---- | ----------- |
|
||||
| close | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<boolean>` | Emitted when the img is submitted in the img viewer. |
|
||||
| extensionChange | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<string>` | Emitted when the filename extension changes. |
|
||||
| submitFile | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob)`>` | Emitted when the img is submitted in the img viewer. |
|
||||
|
||||
## 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. |
|
||||
|
||||
## Details
|
||||
|
||||
The component controller class implementation might look like the following:
|
||||
|
||||
```ts
|
||||
export class OverlayViewerComponent {
|
||||
|
||||
@Input()
|
||||
showViewer: boolean = false;
|
||||
|
||||
nodeId: string;
|
||||
|
||||
showPreview(event) {
|
||||
if (event.value.entry.isFile) {
|
||||
this.nodeId = event.value.entry.id;
|
||||
this.showViewer = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Custom file parameters
|
||||
|
||||
You can provide custom file parameters, for example a value for the `mimeType` or `displayName` when using URL values that have no file names or extensions:
|
||||
|
||||
```html
|
||||
<adf-viewer-render
|
||||
[displayName]="fileName"
|
||||
[allowGoBack]="false"
|
||||
[mimeType]="mimeType"
|
||||
[urlFile]="fileUrl">
|
||||
</adf-viewer-render>
|
||||
```
|
||||
|
||||
### Supported file formats
|
||||
|
||||
The [Viewer render 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:
|
||||
|
||||
- PDF View
|
||||
- application/pdf
|
||||
- \*.pdf
|
||||
- Image View
|
||||
- image/png
|
||||
- image/jpeg
|
||||
- image/gif
|
||||
- image/bmp
|
||||
- image/svg+xml
|
||||
- \*.png
|
||||
- \*.jpg
|
||||
- \*.jpeg
|
||||
- \*.gif
|
||||
- \*.bpm
|
||||
- \*.svg
|
||||
- Text View
|
||||
- text/plain
|
||||
- text/csv
|
||||
- text/xml
|
||||
- text/html
|
||||
- application/x-javascript
|
||||
- \*.txt
|
||||
- \*.xml
|
||||
- \*.js
|
||||
- \*.html
|
||||
- \*.json
|
||||
- \*.ts
|
||||
- Media View
|
||||
- video/mp4
|
||||
- video/webm
|
||||
- video/ogg
|
||||
- audio/mpeg
|
||||
- audio/ogg
|
||||
- audio/wav
|
||||
- \*.wav
|
||||
- \*.mp4
|
||||
- \*.mp3
|
||||
- \*.webm
|
||||
- \*.ogg
|
||||
|
||||
### Configuring PDF.js library
|
||||
|
||||
Configure your webpack-enabled application with the PDF.js library as follows.
|
||||
|
||||
1. Install pdfjs-dist
|
||||
|
||||
```sh
|
||||
npm install pdfjs-dist
|
||||
```
|
||||
|
||||
2. Update `vendors.ts` by appending the following code. This will enable the [Viewer render 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:
|
||||
|
||||
```ts
|
||||
// PDF.js
|
||||
require('pdfjs-dist/web/compatibility.js');
|
||||
const pdfjsLib = require('pdfjs-dist');
|
||||
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:
|
||||
|
||||
```js
|
||||
new CopyWebpackPlugin([
|
||||
...
|
||||
{
|
||||
from: 'node_modules/pdfjs-dist/build/pdf.worker.js',
|
||||
to: 'pdf.worker.js'
|
||||
}
|
||||
])
|
||||
```
|
||||
|
||||
The [Viewer render component](viewer.component.md) should now be able to display PDF files.
|
||||
|
||||
### Extending the Viewer
|
||||
|
||||
#### 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
|
||||
|
||||
#### Code extension mechanism]
|
||||
|
||||
You can define your own custom handler to handle other file formats that are not yet supported by
|
||||
the [Viewer render component](viewer.component.md). Below is an example that shows how to use the `adf-viewer-render-extension`
|
||||
to handle 3D data files:
|
||||
|
||||
```html
|
||||
<adf-viewer-render [nodeId]="nodeId">
|
||||
|
||||
<adf-viewer-extension [supportedExtensions]="['obj','3ds']" #extension>
|
||||
<ng-template let-urlFileContent="urlFileContent" let-extension="extension">
|
||||
<threed-viewer
|
||||
[urlFile]="urlFileContent"
|
||||
[extension]="extension">
|
||||
</threed-viewer>
|
||||
</ng-template>
|
||||
</adf-viewer-extension>
|
||||
|
||||
</adf-viewer-render>
|
||||
```
|
||||
|
||||
Note: you need to add the `ng2-3d-editor` dependency to your `package.json` file to make the example above work.
|
||||
|
||||
You can define multiple `adf-viewer-render-extension` templates if required:
|
||||
|
||||
```html
|
||||
<adf-viewer-render [nodeId]="nodeId">
|
||||
|
||||
<adf-viewer-extension [supportedExtensions]="['xls','xlsx']" #extension>
|
||||
<ng-template let-urlFileContent="urlFileContent">
|
||||
<my-custom-xls-component
|
||||
urlFileContent="urlFileContent">
|
||||
</my-custom-xls-component>
|
||||
</ng-template>
|
||||
</adf-viewer-extension>
|
||||
|
||||
<adf-viewer-render-extension [supportedExtensions]="['txt']" #extension>
|
||||
<ng-template let-urlFileContent="urlFileContent" >
|
||||
<my-custom-txt-component
|
||||
urlFileContent="urlFileContent">
|
||||
</my-custom-txt-component>
|
||||
</ng-template>
|
||||
</adf-viewer-render-extension>
|
||||
</adf-viewer-render>
|
||||
```
|
||||
|
||||
### Custom layout
|
||||
|
||||
The [Viewer render component](viewer.component.md) lets you transclude custom content in several different places as
|
||||
explained in the sections below.
|
||||
|
||||
#### Custom zoom scaling
|
||||
|
||||
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-render": {
|
||||
"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-render": {
|
||||
"image-viewer-scaling": 150
|
||||
}
|
||||
|
||||
By default the viewer's zoom scaling is set to 100%.
|
||||
|
||||
## See also
|
||||
|
||||
- [Alfresco Viewer component](../../content-services/components/document-list.component.md)
|
||||
- [Viewer Render component](../../core/components/viewer-render.component.md)
|
||||
@@ -2,14 +2,13 @@
|
||||
Title: Viewer component
|
||||
Added: v2.0.0
|
||||
Status: Active
|
||||
Last reviewed: 2019-03-25
|
||||
Last reviewed: 2023-01-30
|
||||
---
|
||||
|
||||
# [Viewer component](../../../lib/core/src/lib/viewer/components/viewer.component.ts "Defined in viewer.component.ts")
|
||||
|
||||
Displays content from an ACS repository.
|
||||
Displays content from blob file or url file.
|
||||
|
||||
See it live: [Viewer Quickstart](https://embed.plnkr.co/iTuG1lFIXfsP95l6bDW6/)
|
||||
|
||||
## Contents
|
||||
|
||||
@@ -23,22 +22,21 @@ See it live: [Viewer Quickstart](https://embed.plnkr.co/iTuG1lFIXfsP95l6bDW6/)
|
||||
- [Integrating with the Document List component](#integrating-with-the-document-list-component)
|
||||
- [Custom file parameters](#custom-file-parameters)
|
||||
- [Supported file formats](#supported-file-formats)
|
||||
- [Content Renditions](#content-renditions)
|
||||
- [Configuring PDF.js library](#configuring-pdfjs-library)
|
||||
- [Extending the Viewer](#extending-the-viewer)
|
||||
- [Custom layout](#custom-layout)
|
||||
- [Printing](#printing)
|
||||
- [See also](#see-also)
|
||||
|
||||
## Basic usage
|
||||
|
||||
Using with node id:
|
||||
Using with blob file:
|
||||
|
||||
```html
|
||||
<adf-viewer
|
||||
[showViewer]="true"
|
||||
[overlayMode]="true"
|
||||
[nodeId]="'d367023a-7ebe-4f3a-a7d0-4f27c43f1045'">
|
||||
[blobFile]="blobFile"
|
||||
[fileName]="'filename.pdf'">
|
||||
</adf-viewer>
|
||||
```
|
||||
|
||||
@@ -47,23 +45,10 @@ Using with file url:
|
||||
```html
|
||||
<adf-viewer
|
||||
[overlayMode]="true"
|
||||
[urlFile]="'filename.pdf'">
|
||||
[urlFile]="'https://fileUrl.com/filename.pdf'">
|
||||
</adf-viewer>
|
||||
```
|
||||
|
||||
Using with shared link:
|
||||
|
||||
```html
|
||||
<adf-viewer
|
||||
[overlayMode]="true"
|
||||
[sharedLinkId]="'WWDg_afiTU6lHEgr4fAbQA'">
|
||||
</adf-viewer>
|
||||
```
|
||||
|
||||
Note that if you have a URL which contains a shared link ID, you should extract the
|
||||
ID portion and use it with the `sharedLinkId` property rather than using the whole
|
||||
URL with `urlFile`.
|
||||
|
||||
### [Transclusions](../../user-guide/transclusion.md)
|
||||
|
||||
The [Viewer component](viewer.component.md) lets you transclude content for the toolbar (and toolbar buttons),
|
||||
@@ -81,41 +66,30 @@ See the [Custom layout](#custom-layout) section for full details of all availabl
|
||||
| allowGoBack | `boolean` | true | Allows `back` navigation |
|
||||
| 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. |
|
||||
| allowThumbnails | `boolean` | true | Toggles PDF thumbnails. |
|
||||
| blobFile | [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob) | | Loads a [Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob) File |
|
||||
| canNavigateBefore | `boolean` | true | Toggles the "before" ("<") button. Requires `allowNavigate` to be enabled. |
|
||||
| canNavigateNext | `boolean` | true | Toggles the next (">") button. Requires `allowNavigate` to be enabled. |
|
||||
| displayName | `string` | | Specifies the name of the file when it is not available from the URL. |
|
||||
| fileName | `string` | | Content filename. |
|
||||
| maxRetries | `number` | 30 | Number of times the Viewer will retry fetching content Rendition. There is a delay of at least one second between attempts. |
|
||||
| mimeType | `string` | | MIME type of the file content (when not determined by the filename extension). |
|
||||
| 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. |
|
||||
| thumbnailsTemplate | [`TemplateRef`](https://angular.io/api/core/TemplateRef)`<any>` | null | The template for the pdf thumbnails. |
|
||||
| sidebarLeftTemplate | [`TemplateRef`](https://angular.io/api/core/TemplateRef)`<any>` | null | The template for the left sidebar. The template context contains the loaded data. |
|
||||
| sidebarRightTemplate | [`TemplateRef`](https://angular.io/api/core/TemplateRef)`<any>` | null | The template for the right sidebar. The template context contains the loaded data. |
|
||||
| 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. |
|
||||
| urlFileViewer | `string` | null | Viewer to use with the `urlFile` address (`pdf`, `image`, `media`, `text`). Used when `urlFile` has no filename and extension. |
|
||||
| versionId | `string` | null | Version Id of the file to load. |
|
||||
|
||||
### Events
|
||||
|
||||
| Name | Type | Description |
|
||||
| ---- | ---- | ----------- |
|
||||
| extensionChange | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<string>` | Emitted when the filename extension changes. |
|
||||
| goBack | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`BaseEvent`](../../../lib/core/src/lib/events/base.event.ts)`<any>>` | Emitted when user clicks the 'Back' button. |
|
||||
| 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' ("<") button. |
|
||||
| navigateNext | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<KeyboardEvent \| MouseEvent>` | Emitted when user clicks 'Navigate Next' (">") button. |
|
||||
| print | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`BaseEvent`](../../../lib/core/src/lib/events/base.event.ts)`<any>>` | Emitted when user clicks the 'Print' button. |
|
||||
| showViewerChange | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<boolean>` | Emitted when the viewer is shown or hidden. |
|
||||
| submitFile | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob)`>` | Emitted when the img is submitted in the img viewer. |
|
||||
|
||||
## Keyboard shortcuts
|
||||
|
||||
@@ -128,50 +102,13 @@ See the [Custom layout](#custom-layout) section for full details of all availabl
|
||||
|
||||
## 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:
|
||||
|
||||
```html
|
||||
<adf-document-list
|
||||
currentFolderId="-my-"
|
||||
(preview)="showPreview($event)">
|
||||
</adf-document-list>
|
||||
|
||||
<adf-viewer
|
||||
[(showViewer)]="showViewer"
|
||||
[overlayMode]="true"
|
||||
[nodeId]="nodeId">
|
||||
</adf-viewer>
|
||||
```
|
||||
|
||||
The component controller class implementation might look like the following:
|
||||
|
||||
```ts
|
||||
export class OverlayViewerComponent {
|
||||
|
||||
@Input()
|
||||
showViewer: boolean = false;
|
||||
|
||||
nodeId: string;
|
||||
|
||||
showPreview(event) {
|
||||
if (event.value.entry.isFile) {
|
||||
this.nodeId = event.value.entry.id;
|
||||
this.showViewer = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Custom file parameters
|
||||
|
||||
You can provide custom file parameters, for example a value for the `mimeType` or `displayName` when using URL values that have no file names or extensions:
|
||||
You can provide custom file parameters, for example a value for the `mimeType` or `fileName` when using URL values that have no file names or extensions:
|
||||
|
||||
```html
|
||||
<adf-viewer
|
||||
[displayName]="fileName"
|
||||
[fileName]="fileName"
|
||||
[allowGoBack]="false"
|
||||
[mimeType]="mimeType"
|
||||
[urlFile]="fileUrl">
|
||||
@@ -222,12 +159,6 @@ The [Viewer component](viewer.component.md) consists of separate Views that hand
|
||||
- \*.webm
|
||||
- \*.ogg
|
||||
|
||||
### Content Renditions
|
||||
|
||||
For those extensions and mime types that cannot be natively displayed in the browser, the Viewer will try to fetch the corresponding rendition using the [renditions service api](../services/renditions.service.md).
|
||||
|
||||
For the full list of supported types please refer to: [File types that support preview and thumbnail generation](http://docs.alfresco.com/5.2/references/valid-transformations-preview.html).
|
||||
|
||||
### Configuring PDF.js library
|
||||
|
||||
Configure your webpack-enabled application with the PDF.js library as follows.
|
||||
@@ -277,7 +208,7 @@ the [Viewer component](viewer.component.md). Below is an example that shows how
|
||||
to handle 3D data files:
|
||||
|
||||
```html
|
||||
<adf-viewer [nodeId]="nodeId">
|
||||
<adf-viewer [urlFile]="urlFile">
|
||||
|
||||
<adf-viewer-extension [supportedExtensions]="['obj','3ds']" #extension>
|
||||
<ng-template let-urlFileContent="urlFileContent" let-extension="extension">
|
||||
@@ -296,7 +227,7 @@ Note: you need to add the `ng2-3d-editor` dependency to your `package.json` file
|
||||
You can define multiple `adf-viewer-extension` templates if required:
|
||||
|
||||
```html
|
||||
<adf-viewer [nodeId]="nodeId">
|
||||
<adf-viewer [urlFile]="urlFile">
|
||||
|
||||
<adf-viewer-extension [supportedExtensions]="['xls','xlsx']" #extension>
|
||||
<ng-template let-urlFileContent="urlFileContent">
|
||||
@@ -377,55 +308,13 @@ transclusion, which will display all content placed inside the `<adf-viewer-side
|
||||
</adf-viewer>
|
||||
```
|
||||
|
||||
The second way to customize the sidebar is to use template injection but note that this only works
|
||||
when using the viewer with `nodeId`.
|
||||
|
||||
```html
|
||||
<ng-template let-node="node" #sidebarTemplate>
|
||||
<adf-content-metadata-card [node]="node"></adf-content-metadata-card>
|
||||
</ng-template>
|
||||
<adf-viewer [allowRightSidebar]="true" [sidebarRightTemplate]="sidebarTemplate"></adf-viewer>
|
||||
```
|
||||
|
||||
#### Custom thumbnails
|
||||
|
||||
The PDF viewer comes with its own default list of thumbnails but you can replace this
|
||||
by providing a custom template and binding to the context property `viewer` to access the PDFJS.PDFViewer
|
||||
instance.
|
||||
|
||||

|
||||
|
||||
Provide the custom template as in the following example:
|
||||
|
||||
```javascript
|
||||
import { Component, Input } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'custom-thumbnails',
|
||||
template: '<p> Custom Thumbnails Component </p>'
|
||||
})
|
||||
export class CustomThumbnailsComponent {
|
||||
@Input() pdfViewer: any;
|
||||
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
```html
|
||||
<ng-template #customThumbnailsTemplate let-pdfViewer="viewer">
|
||||
<custom-thumbnails [pdfViewer]="pdfViewer"></custom-thumbnails>
|
||||
</ng-template>
|
||||
|
||||
<adf-viewer [thumbnailsTemplate]="customThumbnailsTemplate"></adf-viewer>
|
||||
```
|
||||
|
||||
#### Custom "Open With" menu
|
||||
|
||||
You can enable a custom "Open With" menu by providing at least one action inside the
|
||||
`adf-viewer-open-with` tag:
|
||||
|
||||
```html
|
||||
<adf-viewer [nodeId]="nodeId">
|
||||
<adf-viewer [urlFile]="urlFile">
|
||||
|
||||
<adf-viewer-open-with>
|
||||
<button mat-menu-item>
|
||||
@@ -452,7 +341,7 @@ You can enable a custom "Open With" menu by providing at least one action inside
|
||||
You can enable a custom "More actions" menu by providing at least one action inside the `adf-viewer-more-actions` tag:
|
||||
|
||||
```html
|
||||
<adf-viewer [nodeId]="nodeId">
|
||||
<adf-viewer [urlFile]="urlFile">
|
||||
|
||||
<adf-viewer-more-actions>
|
||||
<button mat-menu-item>
|
||||
@@ -491,21 +380,6 @@ In the same way you can set a default zoom scaling value for the image viewer by
|
||||
|
||||
By default the viewer's zoom scaling is set to 100%.
|
||||
|
||||
### Printing
|
||||
|
||||
You can configure the Viewer to let the user print the displayed content. The
|
||||
component will show a "Print" button if the `allowPrint` property is set to
|
||||
true.
|
||||
|
||||
```html
|
||||
<adf-viewer [allowPrint]="true">
|
||||
...
|
||||
</adf-viewer>
|
||||
```
|
||||
|
||||
You can also use the `print` event to get notification when the user prints some
|
||||
content.
|
||||
|
||||
## See also
|
||||
|
||||
- [Document List component](../../content-services/components/document-list.component.md)
|
||||
|
||||
@@ -51,7 +51,7 @@ Picard's birthday (47457.1):
|
||||
1. Define the model for the custom type.
|
||||
|
||||
Your model must extend the [`CardViewBaseItemModel`](../../../lib/core/src/lib/card-view/models/card-view-baseitem.model.ts) class and implement the [`CardViewItem`](../../../lib/core/src/lib/card-view/interfaces/card-view-item.interface.ts)
|
||||
and [`DynamicComponentModel`](../../../lib/core/src/lib/services/dynamic-component-mapper.service.ts) interfaces. See the
|
||||
and [`DynamicComponentModel`](lib/core/src/lib/common/services/dynamic-component-mapper.service.ts) interfaces. See the
|
||||
[Card View Text Item model source](https://github.com/Alfresco/alfresco-ng2-components/blob/develop/lib/core/card-view/components/card-view-textitem/card-view-textitem.component.ts)
|
||||
for an example of how to do this.
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ Added: v2.1.0
|
||||
Status: Active
|
||||
---
|
||||
|
||||
# [Search Configuration interface](lib/core/src/lib/search-text/interfaces/search-configuration.interface.ts "Defined in search-configuration.interface.ts")
|
||||
# [Search Configuration interface](../../../lib/core/src/lib/common/interface/search-configuration.interface.ts "Defined in search-configuration.interface.ts")
|
||||
|
||||
Provides fine control of parameters to a search.
|
||||
|
||||
|
||||
@@ -13,31 +13,31 @@ Maps type names to field component types for the [Card View component](../compon
|
||||
|
||||
### Methods
|
||||
|
||||
- **getComponentTypeResolver**(type: `string`, defaultValue: `Type<any>` = `this.defaultValue`): [`DynamicComponentResolveFunction`](../../../lib/core/src/lib/services/dynamic-component-mapper.service.ts)<br/>
|
||||
Gets the currently active [DynamicComponentResolveFunction](../../../lib/core/src/lib/services/dynamic-component-mapper.service.ts) for a field type.
|
||||
- **getComponentTypeResolver**(type: `string`, defaultValue: `Type<any>` = `this.defaultValue`): [`DynamicComponentResolveFunction`](lib/core/src/lib/common/services/dynamic-component-mapper.service.ts)<br/>
|
||||
Gets the currently active [DynamicComponentResolveFunction](lib/core/src/lib/common/services/dynamic-component-mapper.service.ts) for a field type.
|
||||
- _type:_ `string` - The type whose resolver you want
|
||||
- _defaultValue:_ `Type<any>` - Default type returned for types that are not yet mapped
|
||||
- **Returns** [`DynamicComponentResolveFunction`](../../../lib/core/src/lib/services/dynamic-component-mapper.service.ts) - Resolver function
|
||||
- **Returns** [`DynamicComponentResolveFunction`](lib/core/src/lib/common/services/dynamic-component-mapper.service.ts) - Resolver function
|
||||
- **register**(components: `Function`, override: `boolean` = `false`)<br/>
|
||||
Register multiple components
|
||||
- _components:_ `Function` -
|
||||
- _override:_ `boolean` -
|
||||
- **resolveComponentType**(model: [`DynamicComponentModel`](../../../lib/core/src/lib/services/dynamic-component-mapper.service.ts), defaultValue: `Type<any>` = `this.defaultValue`): `Type<any>`<br/>
|
||||
- **resolveComponentType**(model: [`DynamicComponentModel`](lib/core/src/lib/common/services/dynamic-component-mapper.service.ts), defaultValue: `Type<any>` = `this.defaultValue`): `Type<any>`<br/>
|
||||
Finds the component type that is needed to render a form field.
|
||||
- _model:_ [`DynamicComponentModel`](../../../lib/core/src/lib/services/dynamic-component-mapper.service.ts) - [Form](../../../lib/process-services/src/lib/task-list/models/form.model.ts) field model for the field to render
|
||||
- _model:_ [`DynamicComponentModel`](lib/core/src/lib/common/services/dynamic-component-mapper.service.ts) - [Form](../../../lib/process-services/src/lib/task-list/models/form.model.ts) field model for the field to render
|
||||
- _defaultValue:_ `Type<any>` - Default type returned for field types that are not yet mapped.
|
||||
- **Returns** `Type<any>` - Component type
|
||||
- **setComponentTypeResolver**(type: `string`, resolver: [`DynamicComponentResolveFunction`](../../../lib/core/src/lib/services/dynamic-component-mapper.service.ts), override: `boolean` = `true`)<br/>
|
||||
Sets or optionally replaces a [DynamicComponentResolveFunction](../../../lib/core/src/lib/services/dynamic-component-mapper.service.ts) for a field type.
|
||||
- **setComponentTypeResolver**(type: `string`, resolver: [`DynamicComponentResolveFunction`](lib/core/src/lib/common/services/dynamic-component-mapper.service.ts), override: `boolean` = `true`)<br/>
|
||||
Sets or optionally replaces a [DynamicComponentResolveFunction](lib/core/src/lib/common/services/dynamic-component-mapper.service.ts) for a field type.
|
||||
- _type:_ `string` - The type whose resolver you want to set
|
||||
- _resolver:_ [`DynamicComponentResolveFunction`](../../../lib/core/src/lib/services/dynamic-component-mapper.service.ts) - The new resolver function
|
||||
- _resolver:_ [`DynamicComponentResolveFunction`](lib/core/src/lib/common/services/dynamic-component-mapper.service.ts) - The new resolver function
|
||||
- _override:_ `boolean` - The new resolver will only replace an existing one if this parameter is true
|
||||
|
||||
## Details
|
||||
|
||||
The [Card View component](../components/card-view.component.md) uses this service to find the component
|
||||
type that is required to display a particular field type (text, date, etc). The service
|
||||
maps a type name string to a corresponding [`DynamicComponentResolveFunction`](../../../lib/core/src/lib/services/dynamic-component-mapper.service.ts) that takes a
|
||||
maps a type name string to a corresponding [`DynamicComponentResolveFunction`](lib/core/src/lib/common/services/dynamic-component-mapper.service.ts) that takes a
|
||||
model object as a parameter and returns the component type needed to display that model.
|
||||
|
||||
The default mapping is shown below:
|
||||
|
||||
@@ -13,24 +13,24 @@ Maps a form field type string onto the corresponding form [widget component](../
|
||||
|
||||
### Methods
|
||||
|
||||
- **getComponentTypeResolver**(type: `string`, defaultValue: `Type<any>` = `this.defaultValue`): [`DynamicComponentResolveFunction`](../../../lib/core/src/lib/services/dynamic-component-mapper.service.ts)<br/>
|
||||
Gets the currently active [DynamicComponentResolveFunction](../../../lib/core/src/lib/services/dynamic-component-mapper.service.ts) for a field type.
|
||||
- **getComponentTypeResolver**(type: `string`, defaultValue: `Type<any>` = `this.defaultValue`): [`DynamicComponentResolveFunction`](lib/core/src/lib/common/services/dynamic-component-mapper.service.ts)<br/>
|
||||
Gets the currently active [DynamicComponentResolveFunction](lib/core/src/lib/common/services/dynamic-component-mapper.service.ts) for a field type.
|
||||
- _type:_ `string` - The type whose resolver you want
|
||||
- _defaultValue:_ `Type<any>` - Default type returned for types that are not yet mapped
|
||||
- **Returns** [`DynamicComponentResolveFunction`](../../../lib/core/src/lib/services/dynamic-component-mapper.service.ts) - Resolver function
|
||||
- **Returns** [`DynamicComponentResolveFunction`](lib/core/src/lib/common/services/dynamic-component-mapper.service.ts) - Resolver function
|
||||
- **register**(components: `Function`, override: `boolean` = `false`)<br/>
|
||||
Register multiple components
|
||||
- _components:_ `Function` -
|
||||
- _override:_ `boolean` -
|
||||
- **resolveComponentType**(model: [`DynamicComponentModel`](../../../lib/core/src/lib/services/dynamic-component-mapper.service.ts), defaultValue: `Type<any>` = `this.defaultValue`): `Type<any>`<br/>
|
||||
- **resolveComponentType**(model: [`DynamicComponentModel`](lib/core/src/lib/common/services/dynamic-component-mapper.service.ts), defaultValue: `Type<any>` = `this.defaultValue`): `Type<any>`<br/>
|
||||
Finds the component type that is needed to render a form field.
|
||||
- _model:_ [`DynamicComponentModel`](../../../lib/core/src/lib/services/dynamic-component-mapper.service.ts) - [Form](../../../lib/process-services/src/lib/task-list/models/form.model.ts) field model for the field to render
|
||||
- _model:_ [`DynamicComponentModel`](lib/core/src/lib/common/services/dynamic-component-mapper.service.ts) - [Form](../../../lib/process-services/src/lib/task-list/models/form.model.ts) field model for the field to render
|
||||
- _defaultValue:_ `Type<any>` - Default type returned for field types that are not yet mapped.
|
||||
- **Returns** `Type<any>` - Component type
|
||||
- **setComponentTypeResolver**(type: `string`, resolver: [`DynamicComponentResolveFunction`](../../../lib/core/src/lib/services/dynamic-component-mapper.service.ts), override: `boolean` = `true`)<br/>
|
||||
Sets or optionally replaces a [DynamicComponentResolveFunction](../../../lib/core/src/lib/services/dynamic-component-mapper.service.ts) for a field type.
|
||||
- **setComponentTypeResolver**(type: `string`, resolver: [`DynamicComponentResolveFunction`](lib/core/src/lib/common/services/dynamic-component-mapper.service.ts), override: `boolean` = `true`)<br/>
|
||||
Sets or optionally replaces a [DynamicComponentResolveFunction](lib/core/src/lib/common/services/dynamic-component-mapper.service.ts) for a field type.
|
||||
- _type:_ `string` - The type whose resolver you want to set
|
||||
- _resolver:_ [`DynamicComponentResolveFunction`](../../../lib/core/src/lib/services/dynamic-component-mapper.service.ts) - The new resolver function
|
||||
- _resolver:_ [`DynamicComponentResolveFunction`](lib/core/src/lib/common/services/dynamic-component-mapper.service.ts) - The new resolver function
|
||||
- _override:_ `boolean` - The new resolver will only replace an existing one if this parameter is true
|
||||
|
||||
## Details
|
||||
@@ -38,7 +38,7 @@ Maps a form field type string onto the corresponding form [widget component](../
|
||||
The [`Form`](../../../lib/process-services/src/lib/task-list/models/form.model.ts) Field component uses this service to choose which [widget](../../../lib/testing/src/lib/core/pages/form/widgets/widget.ts) to use to render an instance of a
|
||||
form field. The [`Form`](../../../lib/process-services/src/lib/task-list/models/form.model.ts) Field model stores the field type name as a string (see the table below).
|
||||
The [`Form`](../../../lib/process-services/src/lib/task-list/models/form.model.ts) Rendering service maintains a mapping between each type name and
|
||||
a corresponding [`DynamicComponentResolveFunction`](../../../lib/core/src/lib/services/dynamic-component-mapper.service.ts). The function takes a [`FormFieldModel`](../../core/models/form-field.model.md) object as its argument and
|
||||
a corresponding [`DynamicComponentResolveFunction`](lib/core/src/lib/common/services/dynamic-component-mapper.service.ts). The function takes a [`FormFieldModel`](../../core/models/form-field.model.md) object as its argument and
|
||||
uses the data from the object to determine which [widget](../../../lib/testing/src/lib/core/pages/form/widgets/widget.ts) should be used to render the field.
|
||||
|
||||
In some cases, the field type string alone is enough to determine the [widget](../../../lib/testing/src/lib/core/pages/form/widgets/widget.ts) type and so the function
|
||||
@@ -73,7 +73,7 @@ The [`Form`](../../../lib/process-services/src/lib/task-list/models/form.model.t
|
||||
| Checkbox | "boolean" | [`CheckboxWidgetComponent`](../../../lib/core/src/lib/form/components/widgets/checkbox/checkbox.widget.ts) |
|
||||
| Date | "date" | [`DateWidgetComponent`](../../../lib/core/src/lib/form/components/widgets/date/date.widget.ts) |
|
||||
| Display text | "readonly-text" | [`DisplayTextWidgetComponentComponent`](../../../lib/core/form/components/widgets/display-text/display-text.widget.ts) |
|
||||
| Display Rich text | "display-rich-text" | [`DisplayRichTextWidgetComponent`](../../../lib/core/src/lib/form/components/widgets/display-rich-text/display-rich-text.widget.ts) |
|
||||
| Display Rich text | "display-rich-text" | [`DisplayRichTextWidgetComponent`](lib/process-services-cloud/src/lib/form/components/widgets/display-rich-text/display-rich-text.widget.ts) |
|
||||
| Display value | "readonly" | DisplayValueWidgetComponent |
|
||||
| Dropdown | "dropdown" | [`DropdownWidgetComponent`](../../../lib/process-services/src/lib/form/widgets/dropdown/dropdown.widget.ts) |
|
||||
| Dynamic table | "dynamic-table" | [`DynamicTableWidgetComponent`](../../../lib/process-services/src/lib/form/widgets/dynamic-table/dynamic-table.widget.ts) |
|
||||
|
||||
@@ -5,7 +5,7 @@ Status: Active
|
||||
Last reviewed: 2018-11-13
|
||||
---
|
||||
|
||||
# [Highlight Transform service](../../../lib/core/src/lib/services/highlight-transform.service.ts "Defined in highlight-transform.service.ts")
|
||||
# [Highlight Transform service](lib/core/src/lib/common/services/highlight-transform.service.ts "Defined in highlight-transform.service.ts")
|
||||
|
||||
Adds HTML to a string to highlight chosen sections.
|
||||
|
||||
@@ -13,12 +13,12 @@ Adds HTML to a string to highlight chosen sections.
|
||||
|
||||
### Methods
|
||||
|
||||
- **highlight**(text: `string`, search: `string`, wrapperClass: `string` = `"adf-highlight"`): [`HighlightTransformResult`](../../../lib/core/src/lib/services/highlight-transform.service.ts)<br/>
|
||||
- **highlight**(text: `string`, search: `string`, wrapperClass: `string` = `"adf-highlight"`): [`HighlightTransformResult`](lib/core/src/lib/common/services/highlight-transform.service.ts)<br/>
|
||||
Searches for `search` string(s) within `text` and highlights all occurrences.
|
||||
- _text:_ `string` - Text to search within
|
||||
- _search:_ `string` - Text pattern to search for
|
||||
- _wrapperClass:_ `string` - CSS class used to provide highlighting style
|
||||
- **Returns** [`HighlightTransformResult`](../../../lib/core/src/lib/services/highlight-transform.service.ts) - New text along with boolean value to indicate whether anything was highlighted
|
||||
- **Returns** [`HighlightTransformResult`](lib/core/src/lib/common/services/highlight-transform.service.ts) - New text along with boolean value to indicate whether anything was highlighted
|
||||
|
||||
## Details
|
||||
|
||||
@@ -33,7 +33,7 @@ highlight any of those words individually. The <span> element includes a
|
||||
`class` attribute which defaults to "highlight" but you can pass any class name
|
||||
you like using the `wrapperClass` parameter.
|
||||
|
||||
The resulting text with HTML highlighting is returned within a [`HighlightTransformResult`](../../../lib/core/src/lib/services/highlight-transform.service.ts)
|
||||
The resulting text with HTML highlighting is returned within a [`HighlightTransformResult`](lib/core/src/lib/common/services/highlight-transform.service.ts)
|
||||
object:
|
||||
|
||||
```ts
|
||||
|
||||
@@ -5,7 +5,7 @@ Status: Active
|
||||
Last reviewed: 2018-11-19
|
||||
---
|
||||
|
||||
# [Page Title service](../../../lib/core/src/lib/services/page-title.service.ts "Defined in page-title.service.ts")
|
||||
# [Page Title service](lib/core/src/lib/common/services/page-title.service.ts "Defined in page-title.service.ts")
|
||||
|
||||
Sets the page title.
|
||||
|
||||
|
||||
@@ -18,7 +18,8 @@ Accesses the Content Services Search API.
|
||||
- _term:_ `string` - Term to search for
|
||||
- _options:_ [`SearchOptions`](lib/content-services/src/lib/search/services/search.service.ts) - (Optional) Options for delivery of the search results
|
||||
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`NodePaging`](https://github.com/Alfresco/alfresco-js-api/blob/develop/src/api/content-rest-api/docs/NodePaging.md)`>` - List of nodes resulting from the search
|
||||
- **search**(searchTerm: `string`, maxResults: `number`, skipCount: `number`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`ResultSetPaging`](https://github.com/Alfresco/alfresco-js-api/blob/develop/src/api/search-rest-api/docs/ResultSetPaging.md)`>`<br/>
|
||||
- **search**(searchTerm: `string`, maxResults: `number`, skipCount: `number`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`ResultSetPaging`]
|
||||
- `>`<br/>
|
||||
Performs a search.
|
||||
- _searchTerm:_ `string` - Term to search for
|
||||
- _maxResults:_ `number` - Maximum number of items in the list of results
|
||||
|
||||
@@ -5,7 +5,7 @@ Status: Active
|
||||
Last reviewed: 2019-03-20
|
||||
---
|
||||
|
||||
# [Thumbnail service](../../../lib/core/src/lib/services/thumbnail.service.ts "Defined in thumbnail.service.ts")
|
||||
# [Thumbnail service](lib/core/src/lib/common/services/thumbnail.service.ts "Defined in thumbnail.service.ts")
|
||||
|
||||
Retrieves an SVG thumbnail image to represent a document type.
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ Status: Active
|
||||
Last reviewed: 2019-02-08
|
||||
---
|
||||
|
||||
# [Translation service](../../../lib/core/src/lib/services/translation.service.ts "Defined in translation.service.ts")
|
||||
# [Translation service](lib/core/src/lib/translation/translation.service.ts "Defined in translation.service.ts")
|
||||
|
||||
Supports localisation.
|
||||
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 129 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 115 KiB |
@@ -20,7 +20,6 @@ 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. |
|
||||
| node | `Node` | | Node containing the content to display. |
|
||||
| url | `string` | | URL of the content in the repository. |
|
||||
|
||||
## Details
|
||||
|
||||
@@ -33,3 +33,5 @@ The pages linked below contain the licenses for all third party dependencies of
|
||||
- [ADF 5.0.0](license-info-5.0.0.md)
|
||||
- [ADF 5.1.0](license-info-5.1.0.md)
|
||||
- [ADF 6.0.0-A.1](license-info-6.0.0-A.1.md)
|
||||
- [ADF 6.0.0-A.2](license-info-6.0.0-A.2.md)
|
||||
- [ADF 6.0.0-A.3](license-info-6.0.0-A.3.md)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,392 @@
|
||||
---
|
||||
Title: License info, alfresco-ng2-components 6.0.0-A.3
|
||||
---
|
||||
|
||||
# License information for alfresco-ng2-components 6.0.0-A.3
|
||||
|
||||
This page lists all third party libraries the project depends on.
|
||||
|
||||
## Libraries
|
||||
|
||||
| Name | Version | License |
|
||||
| --- | --- | --- |
|
||||
| [@alfresco/js-api](https://github.com/Alfresco/alfresco-js-api) | 5.4.0-657 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
|
||||
| [@angular/animations](https://github.com/angular/angular) | 14.1.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@angular/cdk](https://github.com/angular/components) | 14.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@angular/common](https://github.com/angular/angular) | 14.1.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@angular/compiler](https://github.com/angular/angular) | 14.1.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@angular/core](https://github.com/angular/angular) | 14.1.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@angular/flex-layout](https://github.com/angular/flex-layout) | 14.0.0-beta.40 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@angular/forms](https://github.com/angular/angular) | 14.1.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@angular/material-moment-adapter](https://github.com/angular/components) | 14.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@angular/material](https://github.com/angular/components) | 14.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@angular/platform-browser-dynamic](https://github.com/angular/angular) | 14.1.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@angular/platform-browser](https://github.com/angular/angular) | 14.1.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@angular/router](https://github.com/angular/angular) | 14.1.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@apollo/client](https://github.com/apollographql/apollo-client) | 3.7.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/code-frame](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/compat-data](https://github.com/babel/babel) | 7.18.8 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/core](https://github.com/babel/babel) | 7.12.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/core](https://github.com/babel/babel) | 7.16.12 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/generator](https://github.com/babel/babel) | 7.16.8 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/generator](https://github.com/babel/babel) | 7.18.9 | [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-builder-binary-assignment-operator-visitor](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/helper-compilation-targets](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/helper-create-class-features-plugin](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/helper-create-regexp-features-plugin](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/helper-define-polyfill-provider](https://github.com/babel/babel-polyfills) | 0.1.5 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/helper-environment-visitor](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/helper-explode-assignable-expression](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/helper-function-name](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/helper-hoist-variables](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/helper-member-expression-to-functions](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/helper-module-imports](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/helper-module-transforms](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/helper-optimise-call-expression](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/helper-plugin-utils](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/helper-remap-async-to-generator](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/helper-replace-supers](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/helper-simple-access](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/helper-skip-transparent-expression-wrappers](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/helper-split-export-declaration](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/helper-string-parser](https://github.com/babel/babel) | 7.18.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/helper-validator-identifier](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/helper-validator-option](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/helper-wrap-function](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/helpers](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/highlight](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/parser](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-proposal-async-generator-functions](https://github.com/babel/babel) | 7.16.8 | [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.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-proposal-decorators](https://github.com/babel/babel) | 7.18.9 | [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-default-from](https://github.com/babel/babel) | 7.18.9 | [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.18.9 | [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.18.9 | [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.18.9 | [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) | 7.18.6 | [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-decorators](https://github.com/babel/babel) | 7.18.6 | [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-default-from](https://github.com/babel/babel) | 7.18.6 | [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-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.12.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-syntax-jsx](https://github.com/babel/babel) | 7.18.6 | [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.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-arrow-functions](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-async-to-generator](https://github.com/babel/babel) | 7.16.8 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-block-scoped-functions](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-block-scoping](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-classes](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-computed-properties](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-destructuring](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-dotall-regex](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-duplicate-keys](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-exponentiation-operator](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-for-of](https://github.com/babel/babel) | 7.18.8 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-function-name](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-literals](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-member-expression-literals](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-modules-amd](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-modules-commonjs](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-modules-systemjs](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-modules-umd](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-named-capturing-groups-regex](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-new-target](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-object-super](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-parameters](https://github.com/babel/babel) | 7.18.8 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-property-literals](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-react-display-name](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-react-jsx-development](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-react-jsx](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-react-pure-annotations](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-regenerator](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-reserved-words](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-shorthand-properties](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-spread](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-sticky-regex](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-template-literals](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-typeof-symbol](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-typescript](https://github.com/babel/babel) | 7.18.8 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-unicode-escapes](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/plugin-transform-unicode-regex](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/preset-env](https://github.com/babel/babel) | 7.16.11 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/preset-modules](https://github.com/babel/preset-modules) | 0.1.5 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/preset-react](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/preset-typescript](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/register](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/runtime](https://github.com/babel/babel) | 7.16.7 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/template](https://github.com/babel/babel) | 7.16.7 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/template](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/traverse](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/types](https://github.com/babel/babel) | 7.18.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@babel/types](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@codexteam/icons](https://github.com/codex-team/icon-pack) | 0.0.4 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@codexteam/icons](https://github.com/codex-team/icon-pack) | 0.0.5 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@codexteam/icons](https://github.com/codex-team/icon-pack) | 0.0.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@codexteam/icons](https://github.com/codex-team/icon-pack) | 0.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@discoveryjs/json-ext](https://github.com/discoveryjs/json-ext) | 0.5.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@editorjs/editorjs](https://github.com/codex-team/editor.js) | 2.26.5 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
|
||||
| [@editorjs/header](https://github.com/editor-js/header) | 2.7.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@editorjs/list](https://github.com/editor-js/list) | 1.8.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@editorjs/underline](https://github.com/editor-js/underline) | 1.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@emotion/cache](https://github.com/emotion-js/emotion/tree/master/packages/cache) | 10.0.29 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@emotion/core](https://github.com/emotion-js/emotion/tree/master/packages/core) | 10.3.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@emotion/css](https://github.com/emotion-js/emotion/tree/master/packages/css) | 10.0.27 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@emotion/hash](https://github.com/emotion-js/emotion/tree/master/packages/hash) | 0.8.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@emotion/is-prop-valid](https://github.com/emotion-js/emotion/tree/master/packages/is-prop-valid) | 0.8.8 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@emotion/memoize](https://github.com/emotion-js/emotion/tree/master/packages/memoize) | 0.7.4 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@emotion/serialize](https://github.com/emotion-js/emotion/tree/master/packages/serialize) | 0.11.16 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@emotion/sheet](https://github.com/emotion-js/emotion/tree/master/packages/sheet) | 0.9.4 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@emotion/styled-base](https://github.com/emotion-js/emotion/tree/master/packages/styled-base) | 10.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@emotion/styled](https://github.com/emotion-js/emotion/tree/master/packages/styled) | 10.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@emotion/stylis](https://github.com/emotion-js/emotion/tree/master/packages/stylis) | 0.8.5 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@emotion/unitless](https://github.com/emotion-js/emotion/tree/master/packages/unitless) | 0.7.5 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@emotion/utils](https://github.com/emotion-js/emotion/tree/master/packages/serialize) | 0.11.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@emotion/weak-memoize](https://github.com/emotion-js/emotion/tree/master/packages/weak-memoize) | 0.2.5 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@gar/promisify](https://github.com/wraithgar/gar-promisify) | 1.1.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@graphql-typed-document-node/core](https://github.com/dotansimha/graphql-typed-document-node) | 3.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@jridgewell/gen-mapping](https://github.com/jridgewell/gen-mapping) | 0.3.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@jridgewell/resolve-uri](https://github.com/jridgewell/resolve-uri) | 3.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@jridgewell/set-array](https://github.com/jridgewell/set-array) | 1.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@jridgewell/source-map](https://github.com/jridgewell/source-map) | 0.3.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@jridgewell/sourcemap-codec](https://github.com/jridgewell/sourcemap-codec) | 1.4.14 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@jridgewell/trace-mapping](https://github.com/jridgewell/trace-mapping) | 0.3.14 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@mat-datetimepicker/core](https://github.com/kuhnroyal/mat-datetimepicker) | 9.0.68 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@mat-datetimepicker/moment](https://github.com/kuhnroyal/mat-datetimepicker) | 9.0.68 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@mdx-js/mdx](https://github.com/mdx-js/mdx) | 1.6.22 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@mdx-js/util](https://github.com/mdx-js/mdx) | 1.6.22 | [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) |
|
||||
| @npmcli/fs | 1.1.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||
| [@npmcli/move-file](https://github.com/npm/move-file) | 1.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@popperjs/core](https://github.com/popperjs/popper-core) | 2.11.5 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/addons](https://github.com/storybookjs/storybook) | 6.4.22 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/addons](https://github.com/storybookjs/storybook) | 6.5.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/api](https://github.com/storybookjs/storybook) | 6.4.22 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/api](https://github.com/storybookjs/storybook) | 6.5.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/builder-webpack4](https://github.com/storybookjs/storybook) | 6.4.22 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/builder-webpack5](https://github.com/storybookjs/storybook) | 6.5.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/channel-postmessage](https://github.com/storybookjs/storybook) | 6.4.22 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/channel-postmessage](https://github.com/storybookjs/storybook) | 6.5.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/channel-websocket](https://github.com/storybookjs/storybook) | 6.4.22 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/channel-websocket](https://github.com/storybookjs/storybook) | 6.5.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/channels](https://github.com/storybookjs/storybook) | 6.4.22 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/channels](https://github.com/storybookjs/storybook) | 6.5.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/client-api](https://github.com/storybookjs/storybook) | 6.4.22 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/client-api](https://github.com/storybookjs/storybook) | 6.5.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/client-logger](https://github.com/storybookjs/storybook) | 6.4.22 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/client-logger](https://github.com/storybookjs/storybook) | 6.5.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/components](https://github.com/storybookjs/storybook) | 6.4.22 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/components](https://github.com/storybookjs/storybook) | 6.5.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/core-client](https://github.com/storybookjs/storybook) | 6.4.22 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/core-client](https://github.com/storybookjs/storybook) | 6.5.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/core-common](https://github.com/storybookjs/storybook) | 6.4.22 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/core-common](https://github.com/storybookjs/storybook) | 6.5.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/core-events](https://github.com/storybookjs/storybook) | 6.4.22 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/core-events](https://github.com/storybookjs/storybook) | 6.5.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/core-server](https://github.com/storybookjs/storybook) | 6.4.22 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/csf-tools](https://github.com/storybookjs/storybook) | 6.4.22 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/csf](https://github.com/ComponentDriven/csf) | 0.0.2--canary.4566f4d.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/csf](https://github.com/ComponentDriven/csf) | 0.0.2--canary.87bc651.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/manager-webpack4](https://github.com/storybookjs/storybook) | 6.4.22 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/manager-webpack5](https://github.com/storybookjs/storybook) | 6.5.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/node-logger](https://github.com/storybookjs/storybook) | 6.4.22 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/node-logger](https://github.com/storybookjs/storybook) | 6.5.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/preview-web](https://github.com/storybookjs/storybook) | 6.4.22 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/preview-web](https://github.com/storybookjs/storybook) | 6.5.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/router](https://github.com/storybookjs/storybook) | 6.4.22 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/router](https://github.com/storybookjs/storybook) | 6.5.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/semver](https://github.com/storybookjs/browser-semver) | 7.3.2 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||
| [@storybook/store](https://github.com/storybookjs/storybook) | 6.4.22 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/store](https://github.com/storybookjs/storybook) | 6.5.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/theming](https://github.com/storybookjs/storybook) | 6.4.22 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/theming](https://github.com/storybookjs/storybook) | 6.5.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/ui](https://github.com/storybookjs/storybook) | 6.4.22 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@storybook/ui](https://github.com/storybookjs/storybook) | 6.5.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@types/color-convert](https://github.com/DefinitelyTyped/DefinitelyTyped) | 2.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@types/color-name](https://github.com/DefinitelyTyped/DefinitelyTyped) | 1.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@types/html-minifier-terser](https://github.com/DefinitelyTyped/DefinitelyTyped) | 6.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@types/is-function](https://github.com/DefinitelyTyped/DefinitelyTyped) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@types/json-schema](https://github.com/DefinitelyTyped/DefinitelyTyped) | 7.0.11 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@types/node-fetch](https://github.com/DefinitelyTyped/DefinitelyTyped) | 2.6.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped) | 14.18.22 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped) | 16.11.49 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped) | 18.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@types/npmlog](https://github.com/DefinitelyTyped/DefinitelyTyped) | 4.1.4 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@types/overlayscrollbars](https://github.com/DefinitelyTyped/DefinitelyTyped) | 1.12.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@types/parse-json](https://github.com/DefinitelyTyped/DefinitelyTyped) | 4.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@types/pretty-hrtime](https://github.com/DefinitelyTyped/DefinitelyTyped) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@types/prop-types](https://github.com/DefinitelyTyped/DefinitelyTyped) | 15.7.5 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@types/qs](https://github.com/DefinitelyTyped/DefinitelyTyped) | 6.9.7 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@types/react-syntax-highlighter](https://github.com/DefinitelyTyped/DefinitelyTyped) | 11.0.5 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped) | 18.0.15 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@types/scheduler](https://github.com/DefinitelyTyped/DefinitelyTyped) | 0.16.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@types/source-list-map](https://github.com/DefinitelyTyped/DefinitelyTyped) | 0.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@types/tapable](https://github.com/DefinitelyTyped/DefinitelyTyped) | 1.0.8 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@types/uglify-js](https://github.com/DefinitelyTyped/DefinitelyTyped) | 3.16.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@types/webpack-env](https://github.com/DefinitelyTyped/DefinitelyTyped) | 1.17.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@types/webpack-sources](https://github.com/DefinitelyTyped/DefinitelyTyped) | 3.2.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@types/webpack](https://github.com/DefinitelyTyped/DefinitelyTyped) | 4.41.32 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@webassemblyjs/ast](https://github.com/xtuc/webassemblyjs) | 1.9.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@webassemblyjs/floating-point-hex-parser](https://github.com/xtuc/webassemblyjs) | 1.9.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@webassemblyjs/helper-api-error](https://github.com/xtuc/webassemblyjs) | 1.9.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@webassemblyjs/helper-buffer](https://github.com/xtuc/webassemblyjs) | 1.9.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@webassemblyjs/helper-code-frame](https://github.com/xtuc/webassemblyjs) | 1.9.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@webassemblyjs/helper-fsm](https://github.com/xtuc/webassemblyjs) | 1.9.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||
| [@webassemblyjs/helper-module-context](https://github.com/xtuc/webassemblyjs) | 1.9.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@webassemblyjs/helper-wasm-bytecode](https://github.com/xtuc/webassemblyjs) | 1.9.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@webassemblyjs/helper-wasm-section](https://github.com/xtuc/webassemblyjs) | 1.9.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@webassemblyjs/ieee754](https://github.com/xtuc/webassemblyjs) | 1.9.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@webassemblyjs/leb128](https://github.com/xtuc/webassemblyjs) | 1.9.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@webassemblyjs/utf8](https://github.com/xtuc/webassemblyjs) | 1.9.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@webassemblyjs/wasm-edit](https://github.com/xtuc/webassemblyjs) | 1.9.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@webassemblyjs/wasm-gen](https://github.com/xtuc/webassemblyjs) | 1.9.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@webassemblyjs/wasm-opt](https://github.com/xtuc/webassemblyjs) | 1.9.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@webassemblyjs/wasm-parser](https://github.com/xtuc/webassemblyjs) | 1.9.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@webassemblyjs/wast-parser](https://github.com/xtuc/webassemblyjs) | 1.9.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@webassemblyjs/wast-printer](https://github.com/xtuc/webassemblyjs) | 1.9.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@wry/context](https://github.com/benjamn/wryware) | 0.7.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@wry/equality](https://github.com/benjamn/wryware) | 0.5.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@wry/trie](https://github.com/benjamn/wryware) | 0.3.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [@xtuc/ieee754](https://github.com/feross/ieee754) | 1.2.0 | [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause) |
|
||||
| [@xtuc/long](https://github.com/dcodeIO/long.js) | 4.2.2 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
|
||||
| [acorn](https://github.com/acornjs/acorn) | 6.4.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [acorn](https://github.com/acornjs/acorn) | 8.8.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [ajv](https://github.com/ajv-validator/ajv) | 6.12.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [alfresco-ng2-components](https://github.com/Alfresco/alfresco-ng2-components) | 6.0.0-A.3 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
|
||||
| [ansi-styles](https://github.com/chalk/ansi-styles) | 4.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [are-we-there-yet](https://github.com/npm/are-we-there-yet) | 2.0.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||
| [array-union](https://github.com/sindresorhus/array-union) | 2.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [autoprefixer](https://github.com/postcss/autoprefixer) | 9.8.8 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [babel-plugin-macros](https://github.com/kentcdodds/babel-plugin-macros) | 3.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [babel-plugin-polyfill-corejs3](https://github.com/babel/babel-polyfills) | 0.1.7 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [braces](https://github.com/micromatch/braces) | 2.3.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [cacache](https://github.com/npm/cacache) | 15.3.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||
| [chalk](https://github.com/chalk/chalk) | 4.1.2 | [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/) |
|
||||
| [clean-css](https://github.com/clean-css/clean-css) | 5.3.1 | [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) |
|
||||
| [colorette](https://github.com/jorgebucaran/colorette) | 1.4.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [commander](https://github.com/tj/commander.js) | 2.20.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [commander](https://github.com/tj/commander.js) | 8.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [cosmiconfig](https://github.com/davidtheclark/cosmiconfig) | 6.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [css-loader](https://github.com/webpack-contrib/css-loader) | 3.6.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [css-loader](https://github.com/webpack-contrib/css-loader) | 5.2.7 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [cssesc](https://github.com/mathiasbynens/cssesc) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [csstype](https://github.com/frenic/csstype) | 3.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [enhanced-resolve](https://github.com/webpack/enhanced-resolve) | 4.5.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [eslint-scope](https://github.com/eslint/eslint-scope) | 4.0.3 | [BSD-2-Clause](http://www.opensource.org/licenses/BSD-2-Clause) |
|
||||
| [extend-shallow](https://github.com/jonschlinkert/extend-shallow) | 2.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [fill-range](https://github.com/jonschlinkert/fill-range) | 4.0.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) |
|
||||
| [fork-ts-checker-webpack-plugin](https://github.com/TypeStrong/fork-ts-checker-webpack-plugin) | 6.5.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [gauge](https://github.com/iarna/gauge) | 3.0.2 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||
| [globby](https://github.com/sindresorhus/globby) | 11.1.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) |
|
||||
| [html-minifier-terser](https://github.com/terser/html-minifier-terser) | 6.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [html-webpack-plugin](https://github.com/jantimon/html-webpack-plugin) | 5.5.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [icss-utils](https://github.com/css-modules/icss-utils) | 4.1.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||
| [is-number](https://github.com/jonschlinkert/is-number) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [isobject](https://github.com/jonschlinkert/isobject) | 4.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [jest-worker](https://github.com/facebook/jest) | 26.6.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [jsesc](https://github.com/mathiasbynens/jsesc) | 2.5.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [json-schema-traverse](https://github.com/epoberezkin/json-schema-traverse) | 0.4.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [json5](https://github.com/json5/json5) | 1.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [json5](https://github.com/json5/json5) | 2.2.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [kind-of](https://github.com/jonschlinkert/kind-of) | 3.2.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [loader-runner](https://github.com/webpack/loader-runner) | 2.4.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [loader-utils](https://github.com/webpack/loader-utils) | 1.4.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [loader-utils](https://github.com/webpack/loader-utils) | 2.0.3 | [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) |
|
||||
| [make-dir](https://github.com/sindresorhus/make-dir) | 2.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [memory-fs](https://github.com/webpack/memory-fs) | 0.4.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [memory-fs](https://github.com/webpack/memory-fs) | 0.5.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [micromatch](https://github.com/micromatch/micromatch) | 3.1.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [minimatch](https://github.com/isaacs/minimatch) | 5.0.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||
| [mkdirp](https://github.com/substack/node-mkdirp) | 0.5.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [npmlog](https://github.com/npm/npmlog) | 5.0.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||
| [p-limit](https://github.com/sindresorhus/p-limit) | 3.1.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) |
|
||||
| [path-browserify](https://github.com/browserify/path-browserify) | 1.0.1 | [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) |
|
||||
| [picocolors](https://github.com/alexeyraspopov/picocolors) | 0.2.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||
| [pkg-dir](https://github.com/sindresorhus/pkg-dir) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [pkg-dir](https://github.com/sindresorhus/pkg-dir) | 5.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [postcss-loader](https://github.com/webpack-contrib/postcss-loader) | 4.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [postcss-modules-extract-imports](https://github.com/css-modules/postcss-modules-extract-imports) | 2.0.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||
| [postcss-modules-local-by-default](https://github.com/css-modules/postcss-modules-local-by-default) | 3.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [postcss-modules-scope](https://github.com/css-modules/postcss-modules-scope) | 2.2.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||
| [postcss-modules-values](https://github.com/css-modules/postcss-modules-values) | 3.0.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||
| [postcss](https://github.com/postcss/postcss) | 7.0.39 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [prettier](https://github.com/prettier/prettier) | 2.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [pretty-error](https://github.com/AriaMinaei/pretty-error) | 4.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [readable-stream](https://github.com/nodejs/readable-stream) | 2.3.7 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [regexpu-core](https://github.com/mathiasbynens/regexpu-core) | 5.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [regjsgen](https://github.com/bnjmnt4n/regjsgen) | 0.6.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [regjsparser](https://github.com/jviereck/regjsparser) | 0.8.4 | [BSD-2-Clause](http://www.opensource.org/licenses/BSD-2-Clause) |
|
||||
| [renderkid](https://github.com/AriaMinaei/RenderKid) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [safe-buffer](https://github.com/feross/safe-buffer) | 5.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [schema-utils](https://github.com/webpack-contrib/schema-utils) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [schema-utils](https://github.com/webpack/schema-utils) | 2.7.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [schema-utils](https://github.com/webpack/schema-utils) | 3.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [semver](https://github.com/npm/node-semver) | 5.7.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||
| [semver](https://github.com/npm/node-semver) | 6.3.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||
| [serialize-javascript](https://github.com/yahoo/serialize-javascript) | 4.0.0 | [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause) |
|
||||
| [serialize-javascript](https://github.com/yahoo/serialize-javascript) | 5.0.1 | [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause) |
|
||||
| [slash](https://github.com/sindresorhus/slash) | 3.0.0 | [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) |
|
||||
| [source-map](https://github.com/mozilla/source-map) | 0.7.4 | [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause) |
|
||||
| [ssri](https://github.com/npm/ssri) | 8.0.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||
| [string_decoder](https://github.com/nodejs/string_decoder) | 1.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [style-loader](https://github.com/webpack-contrib/style-loader) | 2.0.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) |
|
||||
| [tapable](https://github.com/webpack/tapable) | 1.1.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [tapable](https://github.com/webpack/tapable) | 2.2.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [telejson](https://github.com/storybookjs/telejson) | 6.0.8 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) | 1.4.5 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) | 4.2.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [terser](https://github.com/terser/terser) | 5.14.2 | [BSD-2-Clause](http://www.opensource.org/licenses/BSD-2-Clause) |
|
||||
| [to-regex-range](https://github.com/micromatch/to-regex-range) | 2.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [watchpack](https://github.com/webpack/watchpack) | 1.7.5 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [webpack-dev-middleware](https://github.com/webpack/webpack-dev-middleware) | 3.7.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [webpack-dev-middleware](https://github.com/webpack/webpack-dev-middleware) | 4.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [webpack-sources](https://github.com/webpack/webpack-sources) | 1.4.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [webpack-virtual-modules](https://github.com/sysgears/webpack-virtual-modules) | 0.4.4 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [webpack](https://github.com/webpack/webpack) | 4.46.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [wide-align](https://github.com/iarna/wide-align) | 1.1.5 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||
| [worker-farm](https://github.com/rvagg/node-worker-farm) | 1.7.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [ws](https://github.com/websockets/ws) | 8.8.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
| [y18n](https://github.com/yargs/y18n) | 4.0.3 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||
| [yallist](https://github.com/isaacs/yallist) | 3.1.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||
| [yaml](https://github.com/eemeli/yaml) | 1.10.2 | [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) |
|
||||
| [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.7 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user