[ACS-5523] move viewer and preview to aca-content (#3303)

* move aca-viewer to secondary entry

* move aca-preview to aca-content
This commit is contained in:
Denys Vuika 2023-06-28 09:01:21 +01:00 committed by GitHub
parent 29c0083e36
commit caff4a3800
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
42 changed files with 42 additions and 430 deletions

View File

@ -12,9 +12,7 @@ fi
export PROJECTS=(
'aca-content'
'aca-preview'
'aca-shared'
'aca-viewer'
);
for PROJECT in ${PROJECTS[@]}

View File

@ -11,9 +11,7 @@ fi
export PROJECTS=(
'aca-content'
'aca-preview'
'aca-shared'
'aca-viewer'
);
for PROJECT in ${PROJECTS[@]}

View File

@ -106,7 +106,6 @@ jobs:
unit-tests:
- name: "aca-content"
- name: "aca-shared"
- name: "aca-preview"
steps:
- name: Checkout
uses: actions/checkout@v3

View File

@ -0,0 +1,5 @@
{
"lib": {
"entryFile": "src/public-api.ts"
}
}

View File

@ -77,7 +77,7 @@ import { CommentsTabComponent } from './components/info-drawer/comments-tab/comm
import { LibraryMetadataTabComponent } from './components/info-drawer/library-metadata-tab/library-metadata-tab.component';
import { MetadataTabComponent } from './components/info-drawer/metadata-tab/metadata-tab.component';
import { VersionsTabComponent } from './components/info-drawer/versions-tab/versions-tab.component';
import { PreviewComponent } from '@alfresco/aca-preview';
import { PreviewComponent } from '@alfresco/aca-content/preview';
import { ToggleEditOfflineComponent } from './components/toolbar/toggle-edit-offline/toggle-edit-offline.component';
import { ToggleFavoriteLibraryComponent } from './components/toolbar/toggle-favorite-library/toggle-favorite-library.component';
import { ToggleFavoriteComponent } from './components/toolbar/toggle-favorite/toggle-favorite.component';

View File

@ -64,7 +64,7 @@ export const CONTENT_ROUTES: ExtensionRoute[] = [
children: [
{
path: '',
loadChildren: () => import('@alfresco/aca-viewer').then((m) => m.AcaViewerModule)
loadChildren: () => import('@alfresco/aca-content/viewer').then((m) => m.AcaViewerModule)
}
]
}
@ -120,7 +120,7 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
// deprecated, backwards compatibility with ACA 1.8
{
path: 'preview/:nodeId',
loadChildren: () => import('@alfresco/aca-preview').then((m) => m.PreviewModule),
loadChildren: () => import('@alfresco/aca-content/preview').then((m) => m.PreviewModule),
data: {
navigateSource: 'personal-files'
}
@ -134,7 +134,7 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
data: {
navigateSource: 'personal-files'
},
loadChildren: () => import('@alfresco/aca-viewer').then((m) => m.AcaViewerModule)
loadChildren: () => import('@alfresco/aca-content/viewer').then((m) => m.AcaViewerModule)
}
]
},
@ -147,7 +147,7 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
data: {
navigateSource: 'personal-files'
},
loadChildren: () => import('@alfresco/aca-viewer').then((m) => m.AcaViewerModule)
loadChildren: () => import('@alfresco/aca-content/viewer').then((m) => m.AcaViewerModule)
}
]
}
@ -173,14 +173,14 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
data: {
navigateSource: 'personal-files'
},
loadChildren: () => import('@alfresco/aca-viewer').then((m) => m.AcaViewerModule)
loadChildren: () => import('@alfresco/aca-content/viewer').then((m) => m.AcaViewerModule)
}
]
},
// deprecated, backwards compatibility with ACA 1.8
{
path: 'preview/:nodeId',
loadChildren: () => import('@alfresco/aca-preview').then((m) => m.PreviewModule),
loadChildren: () => import('@alfresco/aca-content/preview').then((m) => m.PreviewModule),
data: {
navigateSource: 'personal-files'
}
@ -188,7 +188,7 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
// deprecated, backwards compatibility with ACA 1.8
{
path: ':folderId/preview/:nodeId',
loadChildren: () => import('@alfresco/aca-preview').then((m) => m.PreviewModule),
loadChildren: () => import('@alfresco/aca-content/preview').then((m) => m.PreviewModule),
data: {
navigateSource: 'personal-files'
}
@ -202,7 +202,7 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
data: {
navigateSource: 'personal-files'
},
loadChildren: () => import('@alfresco/aca-viewer').then((m) => m.AcaViewerModule)
loadChildren: () => import('@alfresco/aca-content/viewer').then((m) => m.AcaViewerModule)
}
]
}
@ -235,7 +235,7 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
// deprecated, backwards compatibility with ACA 1.8
{
path: 'preview/:nodeId',
loadChildren: () => import('@alfresco/aca-preview').then((m) => m.PreviewModule),
loadChildren: () => import('@alfresco/aca-content/preview').then((m) => m.PreviewModule),
data: {
navigateSource: 'libraries'
}
@ -249,7 +249,7 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
data: {
navigateSource: 'libraries'
},
loadChildren: () => import('@alfresco/aca-viewer').then((m) => m.AcaViewerModule)
loadChildren: () => import('@alfresco/aca-content/viewer').then((m) => m.AcaViewerModule)
}
],
data: {
@ -265,7 +265,7 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
data: {
navigateSource: 'libraries'
},
loadChildren: () => import('@alfresco/aca-viewer').then((m) => m.AcaViewerModule)
loadChildren: () => import('@alfresco/aca-content/viewer').then((m) => m.AcaViewerModule)
}
]
}
@ -309,7 +309,7 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
data: {
navigateSource: 'libraries'
},
loadChildren: () => import('@alfresco/aca-viewer').then((m) => m.AcaViewerModule)
loadChildren: () => import('@alfresco/aca-content/viewer').then((m) => m.AcaViewerModule)
}
]
},
@ -322,7 +322,7 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
data: {
navigateSource: 'libraries'
},
loadChildren: () => import('@alfresco/aca-viewer').then((m) => m.AcaViewerModule)
loadChildren: () => import('@alfresco/aca-content/viewer').then((m) => m.AcaViewerModule)
}
]
}
@ -347,7 +347,7 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
// deprecated, backwards compatibility with ACA 1.8
{
path: 'preview/:nodeId',
loadChildren: () => import('@alfresco/aca-preview').then((m) => m.PreviewModule),
loadChildren: () => import('@alfresco/aca-content/preview').then((m) => m.PreviewModule),
data: {
navigateSource: 'favorites'
}
@ -361,7 +361,7 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
data: {
navigateSource: 'favorites'
},
loadChildren: () => import('@alfresco/aca-viewer').then((m) => m.AcaViewerModule)
loadChildren: () => import('@alfresco/aca-content/viewer').then((m) => m.AcaViewerModule)
}
]
},
@ -374,7 +374,7 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
data: {
navigateSource: 'favorites'
},
loadChildren: () => import('@alfresco/aca-viewer').then((m) => m.AcaViewerModule)
loadChildren: () => import('@alfresco/aca-content/viewer').then((m) => m.AcaViewerModule)
}
]
}
@ -398,7 +398,7 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
// deprecated, backwards compatibility with ACA 1.8
{
path: 'preview/:nodeId',
loadChildren: () => import('@alfresco/aca-preview').then((m) => m.PreviewModule),
loadChildren: () => import('@alfresco/aca-content/preview').then((m) => m.PreviewModule),
data: {
navigateSource: 'recent-files'
}
@ -412,7 +412,7 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
data: {
navigateSource: 'recent-files'
},
loadChildren: () => import('@alfresco/aca-viewer').then((m) => m.AcaViewerModule)
loadChildren: () => import('@alfresco/aca-content/viewer').then((m) => m.AcaViewerModule)
}
]
},
@ -425,7 +425,7 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
data: {
navigateSource: 'recent-files'
},
loadChildren: () => import('@alfresco/aca-viewer').then((m) => m.AcaViewerModule)
loadChildren: () => import('@alfresco/aca-content/viewer').then((m) => m.AcaViewerModule)
}
]
}
@ -447,7 +447,7 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
// deprecated, backwards compatibility with ACA 1.8
{
path: 'preview/:nodeId',
loadChildren: () => import('@alfresco/aca-preview').then((m) => m.PreviewModule),
loadChildren: () => import('@alfresco/aca-content/preview').then((m) => m.PreviewModule),
data: {
navigateSource: 'shared'
}
@ -461,7 +461,7 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
data: {
navigateSource: 'shared'
},
loadChildren: () => import('@alfresco/aca-viewer').then((m) => m.AcaViewerModule)
loadChildren: () => import('@alfresco/aca-content/viewer').then((m) => m.AcaViewerModule)
}
]
},
@ -474,7 +474,7 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
data: {
navigateSource: 'shared'
},
loadChildren: () => import('@alfresco/aca-viewer').then((m) => m.AcaViewerModule)
loadChildren: () => import('@alfresco/aca-content/viewer').then((m) => m.AcaViewerModule)
}
]
}
@ -508,7 +508,7 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
// deprecated, backwards compatibility with ACA 1.8
{
path: 'preview/:nodeId',
loadChildren: () => import('@alfresco/aca-preview').then((m) => m.PreviewModule),
loadChildren: () => import('@alfresco/aca-content/preview').then((m) => m.PreviewModule),
data: {
navigateSource: 'search'
}
@ -522,7 +522,7 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
data: {
navigateSource: 'search'
},
loadChildren: () => import('@alfresco/aca-viewer').then((m) => m.AcaViewerModule)
loadChildren: () => import('@alfresco/aca-content/viewer').then((m) => m.AcaViewerModule)
}
]
},
@ -535,7 +535,7 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
data: {
navigateSource: 'search'
},
loadChildren: () => import('@alfresco/aca-viewer').then((m) => m.AcaViewerModule)
loadChildren: () => import('@alfresco/aca-content/viewer').then((m) => m.AcaViewerModule)
}
]
}
@ -560,7 +560,7 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
data: {
navigateSource: 'search'
},
loadChildren: () => import('@alfresco/aca-viewer').then((m) => m.AcaViewerModule)
loadChildren: () => import('@alfresco/aca-content/viewer').then((m) => m.AcaViewerModule)
}
]
}

View File

@ -6,9 +6,7 @@
"paths": {
"@alfresco/aca-shared": ["dist/@alfresco/aca-shared"],
"@alfresco/aca-shared/store": ["dist/@alfresco/aca-shared/store"],
"@alfresco/aca-shared/rules": ["dist/@alfresco/aca-shared/rules"],
"@alfresco/aca-viewer": ["dist/@alfresco/aca-viewer"],
"@alfresco/aca-preview": ["dist/@alfresco/aca-preview"]
"@alfresco/aca-shared/rules": ["dist/@alfresco/aca-shared/rules"]
},
},
"angularCompilerOptions": {

View File

@ -0,0 +1,5 @@
{
"lib": {
"entryFile": "src/public-api.ts"
}
}

View File

@ -1,23 +0,0 @@
path = require("path");
module.exports = {
"extends": "../../.eslintrc.json",
"ignorePatterns": [
"!**/*"
],
"overrides": [
{
"files": [
"*.ts"
],
"parserOptions": {
"project": [
path.join(__dirname, "tsconfig.lib.json"),
path.join(__dirname, "tsconfig.spec.json")
],
"createDefaultProgram": true
},
"rules": {
}
}
]
}

View File

@ -1,24 +0,0 @@
# AcaPreview
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 14.1.0.
## Code scaffolding
Run `nx generate component component-name --project aca-preview` to generate a new component. You can also use `nx generate directive|pipe|service|class|guard|interface|enum|module --project aca-preview`.
> Note: Don't forget to add `--project aca-preview` or else it will be added to the default project in your `angular.json` file.
## Build
Run `nx build aca-preview` to build the project. The build artifacts will be stored in the `dist/` directory.
## Publishing
After building your library with `nx build aca-preview`, go to the dist folder `cd dist/aca-preview` and run `npm publish`.
## Running unit tests
Run `nx test aca-preview` to execute the unit tests via [Karma](https://karma-runner.github.io).
## Further help
To get more help on the NX use `nx help` or go check out the [NX documentation](https://nx.dev/getting-started/intro) page.

View File

@ -1,15 +0,0 @@
// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html
const { join } = require('path');
const getBaseKarmaConfig = require('../../karma.conf');
module.exports = function (config) {
const baseConfig = getBaseKarmaConfig();
config.set({
...baseConfig,
coverageReporter: {
...baseConfig.coverageReporter,
dir: join(__dirname, '../../coverage/aca-preview'),
},
});
};

View File

@ -1,7 +0,0 @@
{
"$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
"dest": "../../dist/@alfresco/aca-preview",
"lib": {
"entryFile": "src/public-api.ts"
}
}

View File

@ -1,19 +0,0 @@
{
"name": "@alfresco/aca-preview",
"version": "0.0.1",
"license": "LGPL-3.0",
"peerDependencies": {
"@angular/common": "^14.1.0",
"@angular/core": "^14.1.0"
},
"dependencies": {
"tslib": "^2.3.0"
},
"publishConfig": {
"access": "public"
},
"repository": {
"type": "git",
"url": "https://github.com/Alfresco/alfresco-content-app.git"
}
}

View File

@ -1,56 +0,0 @@
{
"$schema": "../../node_modules/nx/schemas/project-schema.json",
"name": "aca-preview",
"projectType": "library",
"sourceRoot": "projects/aca-preview/src",
"prefix": "lib",
"targets": {
"build": {
"executor": "@angular-devkit/build-angular:ng-packagr",
"options": {
"project": "projects/aca-preview/ng-package.json"
},
"configurations": {
"production": {
"tsConfig": "projects/aca-preview/tsconfig.lib.prod.json"
},
"development": {
"tsConfig": "projects/aca-preview/tsconfig.lib.json"
}
},
"defaultConfiguration": "production",
"outputs": [
"{workspaceRoot}/dist/@alfresco/aca-preview"
]
},
"test": {
"executor": "@angular-devkit/build-angular:karma",
"options": {
"codeCoverage": true,
"main": "projects/aca-preview/src/test.ts",
"tsConfig": "projects/aca-preview/tsconfig.spec.json",
"karmaConfig": "projects/aca-preview/karma.conf.js"
},
"configurations": {
"adfprod": {
"tsConfig": "projects/aca-preview/tsconfig.spec.adf.json"
}
}
},
"lint": {
"executor": "@angular-eslint/builder:lint",
"options": {
"lintFilePatterns": [
"projects/aca-preview/**/*.ts",
"projects/aca-preview/**/*.html"
],
"cache": true,
"cacheLocation": ".eslintcache",
"ignorePath": ".eslintignore"
},
"outputs": [
"{options.outputFile}"
]
}
}
}

View File

@ -1,15 +0,0 @@
/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/lib",
"declaration": true,
"declarationMap": true,
"inlineSources": true,
"types": []
},
"exclude": [
"src/test.ts",
"**/*.spec.ts"
]
}

View File

@ -1,14 +0,0 @@
/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
"extends": "./tsconfig.lib.json",
"compilerOptions": {
"declarationMap": false,
"paths": {
"@alfresco/aca-shared": ["dist/@alfresco/aca-shared"],
"@alfresco/aca-shared/store": ["dist/@alfresco/aca-shared/store"],
}
},
"angularCompilerOptions": {
"compilationMode": "partial"
}
}

View File

@ -1,16 +0,0 @@
{
"extends": "../../tsconfig.adf.json",
"compilerOptions": {
"outDir": "../../out-tsc/spec",
"types": [
"jasmine"
]
},
"files": [
"src/test.ts"
],
"include": [
"**/*.spec.ts",
"**/*.d.ts"
]
}

View File

@ -1,17 +0,0 @@
/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/spec",
"types": [
"jasmine"
]
},
"files": [
"src/test.ts"
],
"include": [
"**/*.spec.ts",
"**/*.d.ts"
]
}

View File

@ -1,23 +0,0 @@
path = require("path");
module.exports = {
"extends": "../../.eslintrc.json",
"ignorePatterns": [
"!**/*"
],
"overrides": [
{
"files": [
"*.ts"
],
"parserOptions": {
"project": [
path.join(__dirname, "tsconfig.lib.json"),
path.join(__dirname, "tsconfig.spec.json")
],
"createDefaultProgram": true
},
"rules": {
}
}
]
}

View File

@ -1,24 +0,0 @@
# AcaViewer
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 14.1.0.
## Code scaffolding
Run `nx generate component component-name --project aca-viewer` to generate a new component. You can also use `nx generate directive|pipe|service|class|guard|interface|enum|module --project aca-viewer`.
> Note: Don't forget to add `--project aca-viewer` or else it will be added to the default project in your `angular.json` file.
## Build
Run `nx build aca-viewer` to build the project. The build artifacts will be stored in the `dist/` directory.
## Publishing
After building your library with `nx build aca-viewer`, go to the dist folder `cd dist/aca-viewer` and run `npm publish`.
## Running unit tests
Run `nx test aca-viewer` to execute the unit tests via [Karma](https://karma-runner.github.io).
## Further help
To get more help on the NX use `nx help` or go check out the [NX documentation](https://nx.dev/getting-started/intro) page.

View File

@ -1,15 +0,0 @@
// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html
const { join } = require('path');
const getBaseKarmaConfig = require('../../karma.conf');
module.exports = function (config) {
const baseConfig = getBaseKarmaConfig();
config.set({
...baseConfig,
coverageReporter: {
...baseConfig.coverageReporter,
dir: join(__dirname, '../../coverage/aca-viewer'),
},
});
};

View File

@ -1,7 +0,0 @@
{
"$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
"dest": "../../dist/@alfresco/aca-viewer",
"lib": {
"entryFile": "src/public-api.ts"
}
}

View File

@ -1,19 +0,0 @@
{
"name": "@alfresco/aca-viewer",
"version": "0.0.1",
"license": "LGPL-3.0",
"peerDependencies": {
"@angular/common": "^14.1.0",
"@angular/core": "^14.1.0"
},
"dependencies": {
"tslib": "^2.3.0"
},
"publishConfig": {
"access": "public"
},
"repository": {
"type": "git",
"url": "https://github.com/Alfresco/alfresco-content-app.git"
}
}

View File

@ -1,51 +0,0 @@
{
"$schema": "../../node_modules/nx/schemas/project-schema.json",
"name": "aca-viewer",
"projectType": "library",
"sourceRoot": "projects/aca-viewer/src",
"prefix": "lib",
"targets": {
"build": {
"executor": "@angular-devkit/build-angular:ng-packagr",
"options": {
"project": "projects/aca-viewer/ng-package.json"
},
"configurations": {
"production": {
"tsConfig": "projects/aca-viewer/tsconfig.lib.prod.json"
},
"development": {
"tsConfig": "projects/aca-viewer/tsconfig.lib.json"
}
},
"defaultConfiguration": "production",
"outputs": [
"{workspaceRoot}/dist/@alfresco/aca-viewer"
]
},
"test": {
"executor": "@angular-devkit/build-angular:karma",
"options": {
"codeCoverage": true,
"main": "projects/aca-viewer/src/test.ts",
"tsConfig": "projects/aca-viewer/tsconfig.spec.json",
"karmaConfig": "projects/aca-viewer/karma.conf.js"
}
},
"lint": {
"executor": "@angular-eslint/builder:lint",
"options": {
"lintFilePatterns": [
"projects/aca-viewer/**/*.ts",
"projects/aca-viewer/**/*.html"
],
"cache": true,
"cacheLocation": ".eslintcache",
"ignorePath": ".eslintignore"
},
"outputs": [
"{options.outputFile}"
]
}
}
}

View File

@ -1,15 +0,0 @@
/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/lib",
"declaration": true,
"declarationMap": true,
"inlineSources": true,
"types": []
},
"exclude": [
"src/test.ts",
"**/*.spec.ts"
]
}

View File

@ -1,14 +0,0 @@
/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
"extends": "./tsconfig.lib.json",
"compilerOptions": {
"declarationMap": false,
"paths": {
"@alfresco/aca-shared": ["dist/@alfresco/aca-shared"],
"@alfresco/aca-shared/store": ["dist/@alfresco/aca-shared/store"],
}
},
"angularCompilerOptions": {
"compilationMode": "partial"
}
}

View File

@ -1,17 +0,0 @@
/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/spec",
"types": [
"jasmine"
]
},
"files": [
"src/test.ts"
],
"include": [
"**/*.spec.ts",
"**/*.d.ts"
]
}

View File

@ -41,8 +41,8 @@
"@alfresco/aca-content/about": ["projects/aca-content/about/src/public-api.ts"],
"@alfresco/aca-content/folder-rules": ["projects/aca-content/folder-rules/src/public-api.ts"],
"@alfresco/aca-content": ["projects/aca-content/src/public-api.ts"],
"@alfresco/aca-viewer": ["projects/aca-viewer/src/public-api.ts"],
"@alfresco/aca-preview": ["projects/aca-preview/src/public-api.ts"],
"@alfresco/aca-content/viewer": ["projects/aca-content/viewer/src/public-api.ts"],
"@alfresco/aca-content/preview": ["projects/aca-content/preview/src/public-api.ts"],
"package.json": ["package.json"],
"*": ["./node_modules/*"]
}

View File

@ -29,8 +29,8 @@
"@alfresco/aca-content/folder-rules": ["projects/aca-content/folder-rules/src/public-api.ts"],
"@alfresco/aca-content": ["projects/aca-content/src/public-api.ts"],
"@alfresco/aca-content/about": ["projects/aca-content/about/src/public-api.ts"],
"@alfresco/aca-viewer": ["projects/aca-viewer/src/public-api.ts"],
"@alfresco/aca-preview": ["projects/aca-preview/src/public-api.ts"],
"@alfresco/aca-content/viewer": ["projects/aca-content/viewer/src/public-api.ts"],
"@alfresco/aca-content/preview": ["projects/aca-content/preview/src/public-api.ts"],
"@alfresco/playwright-shared": ["projects/aca-playwright-shared/src/index.ts"],
"package.json": ["package.json"]
}