From a6ab4a34b17bbd3b611a51afa3bf634e16c898a2 Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Tue, 18 Jul 2023 14:13:33 +0100 Subject: [PATCH] [ACS-5631] Improved page layout and provide documentation (#3346) * page layout supports CSS selectors * migrate to using CSS selectors for page layout * add docs --- .../about/src/about.component.html | 8 +-- .../aca-content/about/src/about.component.ts | 14 +--- .../manage-rules.smart-component.html | 12 ++-- .../manage-rules.smart-component.ts | 11 +-- .../components/details/details.component.html | 8 +-- .../components/details/details.component.ts | 13 +--- .../favorite-libraries.component.html | 8 +-- .../favorite-libraries.component.ts | 6 +- .../favorites/favorites.component.html | 8 +-- .../favorites/favorites.component.ts | 4 -- .../lib/components/files/files.component.html | 12 ++-- .../lib/components/files/files.component.ts | 6 -- .../libraries/libraries.component.html | 8 +-- .../libraries/libraries.component.ts | 4 -- .../recent-files/recent-files.component.html | 8 +-- .../recent-files/recent-files.component.ts | 4 -- .../search-libraries-results.component.html | 8 +-- .../search-libraries-results.component.ts | 4 -- .../search-results.component.html | 8 +-- .../search-results.component.ts | 4 -- .../shared-files/shared-files.component.html | 8 +-- .../shared-files/shared-files.component.ts | 4 -- .../trashcan/trashcan.component.html | 8 +-- .../components/trashcan/trashcan.component.ts | 12 +--- .../page-layout-content.component.ts | 1 + .../page-layout-error.component.ts | 1 + .../page-layout-header.component.ts | 1 + .../page-layout/page-layout.component.html | 28 +++++--- .../lib/components/page-layout/page-layout.md | 69 +++++++++++++++++++ 29 files changed, 148 insertions(+), 142 deletions(-) create mode 100644 projects/aca-shared/src/lib/components/page-layout/page-layout.md diff --git a/projects/aca-content/about/src/about.component.html b/projects/aca-content/about/src/about.component.html index d08f64213..808609799 100644 --- a/projects/aca-content/about/src/about.component.html +++ b/projects/aca-content/about/src/about.component.html @@ -1,12 +1,12 @@ - +

{{ 'APP.BROWSE.ABOUT.TITLE' | translate }}

- +
- +
@@ -32,5 +32,5 @@ - +
diff --git a/projects/aca-content/about/src/about.component.ts b/projects/aca-content/about/src/about.component.ts index 35d370539..6bac9531c 100644 --- a/projects/aca-content/about/src/about.component.ts +++ b/projects/aca-content/about/src/about.component.ts @@ -28,7 +28,7 @@ import { AboutModule, AppConfigService, AuthenticationService, RepositoryInfo } import { DiscoveryApiService } from '@alfresco/adf-content-services'; import { PACKAGE_JSON } from './package-json.token'; import { TranslateModule } from '@ngx-translate/core'; -import { AppExtensionService, PageLayoutComponent, PageLayoutContentComponent, PageLayoutHeaderComponent } from '@alfresco/aca-shared'; +import { AppExtensionService, PageLayoutComponent } from '@alfresco/aca-shared'; import { RouterModule } from '@angular/router'; import { MatIconModule } from '@angular/material/icon'; import { CommonModule } from '@angular/common'; @@ -36,17 +36,7 @@ import { MatButtonModule } from '@angular/material/button'; @Component({ standalone: true, - imports: [ - CommonModule, - TranslateModule, - AboutModule, - RouterModule, - MatIconModule, - MatButtonModule, - PageLayoutHeaderComponent, - PageLayoutContentComponent, - PageLayoutComponent - ], + imports: [CommonModule, TranslateModule, AboutModule, RouterModule, MatIconModule, MatButtonModule, PageLayoutComponent], selector: 'app-about-page', templateUrl: './about.component.html', styleUrls: ['./about.component.scss'], diff --git a/projects/aca-content/folder-rules/src/manage-rules/manage-rules.smart-component.html b/projects/aca-content/folder-rules/src/manage-rules/manage-rules.smart-component.html index 35144a075..bfddaad16 100644 --- a/projects/aca-content/folder-rules/src/manage-rules/manage-rules.smart-component.html +++ b/projects/aca-content/folder-rules/src/manage-rules/manage-rules.smart-component.html @@ -1,15 +1,15 @@ - +
- +
- +
@@ -127,14 +127,14 @@ - +
- +
- +
diff --git a/projects/aca-content/folder-rules/src/manage-rules/manage-rules.smart-component.ts b/projects/aca-content/folder-rules/src/manage-rules/manage-rules.smart-component.ts index d9e1bc542..2066674be 100644 --- a/projects/aca-content/folder-rules/src/manage-rules/manage-rules.smart-component.ts +++ b/projects/aca-content/folder-rules/src/manage-rules/manage-rules.smart-component.ts @@ -42,13 +42,7 @@ import { RuleSetPickerSmartComponent } from '../rule-set-picker/rule-set-picker. import { MatSlideToggleChange, MatSlideToggleModule } from '@angular/material/slide-toggle'; import { ActionParameterConstraint } from '../model/action-parameter-constraint.model'; import { TranslateModule } from '@ngx-translate/core'; -import { - GenericErrorComponent, - PageLayoutComponent, - PageLayoutContentComponent, - PageLayoutErrorComponent, - PageLayoutHeaderComponent -} from '@alfresco/aca-shared'; +import { GenericErrorComponent, PageLayoutComponent } from '@alfresco/aca-shared'; import { MatButtonModule } from '@angular/material/button'; import { MatIconModule } from '@angular/material/icon'; import { MatProgressBarModule } from '@angular/material/progress-bar'; @@ -72,9 +66,6 @@ import { RuleDetailsUiComponent } from '../rule-details/rule-details.ui-componen RuleListUiComponent, RouterModule, TemplateModule, - PageLayoutErrorComponent, - PageLayoutContentComponent, - PageLayoutHeaderComponent, GenericErrorComponent, RuleDetailsUiComponent, MatDialogModule diff --git a/projects/aca-content/src/lib/components/details/details.component.html b/projects/aca-content/src/lib/components/details/details.component.html index 3e8138006..681698680 100644 --- a/projects/aca-content/src/lib/components/details/details.component.html +++ b/projects/aca-content/src/lib/components/details/details.component.html @@ -1,5 +1,5 @@ - +
@@ -7,9 +7,9 @@ - +
- +
@@ -36,7 +36,7 @@
- +
diff --git a/projects/aca-content/src/lib/components/details/details.component.ts b/projects/aca-content/src/lib/components/details/details.component.ts index 757814916..5edc4cae5 100644 --- a/projects/aca-content/src/lib/components/details/details.component.ts +++ b/projects/aca-content/src/lib/components/details/details.component.ts @@ -24,14 +24,7 @@ import { Component, OnInit, ViewEncapsulation, OnDestroy } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; -import { - ContentApiService, - PageComponent, - PageLayoutComponent, - PageLayoutContentComponent, - PageLayoutHeaderComponent, - ToolbarActionComponent -} from '@alfresco/aca-shared'; +import { ContentApiService, PageComponent, PageLayoutComponent, ToolbarActionComponent } from '@alfresco/aca-shared'; import { NavigateToPreviousPage, SetSelectedNodesAction } from '@alfresco/aca-shared/store'; import { Subject } from 'rxjs'; import { BreadcrumbModule, PermissionManagerModule } from '@alfresco/adf-content-services'; @@ -60,9 +53,7 @@ import { CommentsTabComponent } from '../info-drawer/comments-tab/comments-tab.c MetadataTabComponent, CommentsTabComponent, ToolbarActionComponent, - PageLayoutComponent, - PageLayoutContentComponent, - PageLayoutHeaderComponent + PageLayoutComponent ], selector: 'app-details-manager', templateUrl: './details.component.html', diff --git a/projects/aca-content/src/lib/components/favorite-libraries/favorite-libraries.component.html b/projects/aca-content/src/lib/components/favorite-libraries/favorite-libraries.component.html index 7de3ea93c..5fa36ff10 100644 --- a/projects/aca-content/src/lib/components/favorite-libraries/favorite-libraries.component.html +++ b/projects/aca-content/src/lib/components/favorite-libraries/favorite-libraries.component.html @@ -1,5 +1,5 @@ - +
@@ -7,9 +7,9 @@ - +
- +
- +
diff --git a/projects/aca-content/src/lib/components/favorite-libraries/favorite-libraries.component.ts b/projects/aca-content/src/lib/components/favorite-libraries/favorite-libraries.component.ts index b9be5c642..176a2e418 100644 --- a/projects/aca-content/src/lib/components/favorite-libraries/favorite-libraries.component.ts +++ b/projects/aca-content/src/lib/components/favorite-libraries/favorite-libraries.component.ts @@ -31,8 +31,6 @@ import { InfoDrawerComponent, PageComponent, PageLayoutComponent, - PageLayoutContentComponent, - PageLayoutHeaderComponent, ToolbarActionComponent } from '@alfresco/aca-shared'; import { NavigateLibraryAction } from '@alfresco/aca-shared/store'; @@ -57,9 +55,7 @@ import { DocumentListDirective } from '../../directives/document-list.directive' PaginationModule, InfoDrawerComponent, ToolbarActionComponent, - PageLayoutComponent, - PageLayoutContentComponent, - PageLayoutHeaderComponent + PageLayoutComponent ], templateUrl: './favorite-libraries.component.html', encapsulation: ViewEncapsulation.None diff --git a/projects/aca-content/src/lib/components/favorites/favorites.component.html b/projects/aca-content/src/lib/components/favorites/favorites.component.html index fdae20e6e..9b031cb50 100644 --- a/projects/aca-content/src/lib/components/favorites/favorites.component.html +++ b/projects/aca-content/src/lib/components/favorites/favorites.component.html @@ -1,5 +1,5 @@ - +
@@ -7,9 +7,9 @@ - +
- +
- +
diff --git a/projects/aca-content/src/lib/components/favorites/favorites.component.ts b/projects/aca-content/src/lib/components/favorites/favorites.component.ts index de8b470f8..0a788ea4e 100644 --- a/projects/aca-content/src/lib/components/favorites/favorites.component.ts +++ b/projects/aca-content/src/lib/components/favorites/favorites.component.ts @@ -28,8 +28,6 @@ import { InfoDrawerComponent, PageComponent, PageLayoutComponent, - PageLayoutContentComponent, - PageLayoutHeaderComponent, PaginationDirective, ToolbarActionComponent } from '@alfresco/aca-shared'; @@ -58,8 +56,6 @@ import { DocumentListDirective } from '../../directives/document-list.directive' PaginationDirective, InfoDrawerComponent, ToolbarActionComponent, - PageLayoutContentComponent, - PageLayoutHeaderComponent, PageLayoutComponent ], templateUrl: './favorites.component.html', diff --git a/projects/aca-content/src/lib/components/files/files.component.html b/projects/aca-content/src/lib/components/files/files.component.html index 07807ecd4..5a4188301 100644 --- a/projects/aca-content/src/lib/components/files/files.component.html +++ b/projects/aca-content/src/lib/components/files/files.component.html @@ -1,5 +1,5 @@ - +
@@ -7,13 +7,13 @@ - +
- +
- +
- +
- +
diff --git a/projects/aca-content/src/lib/components/files/files.component.ts b/projects/aca-content/src/lib/components/files/files.component.ts index 787fc4154..44caa0740 100644 --- a/projects/aca-content/src/lib/components/files/files.component.ts +++ b/projects/aca-content/src/lib/components/files/files.component.ts @@ -34,9 +34,6 @@ import { InfoDrawerComponent, PageComponent, PageLayoutComponent, - PageLayoutContentComponent, - PageLayoutErrorComponent, - PageLayoutHeaderComponent, PaginationDirective, ToolbarActionComponent } from '@alfresco/aca-shared'; @@ -68,9 +65,6 @@ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; InfoDrawerComponent, ToolbarActionComponent, PaginationDirective, - PageLayoutHeaderComponent, - PageLayoutContentComponent, - PageLayoutErrorComponent, PageLayoutComponent ], templateUrl: './files.component.html', diff --git a/projects/aca-content/src/lib/components/libraries/libraries.component.html b/projects/aca-content/src/lib/components/libraries/libraries.component.html index fe2edb405..188a481b0 100644 --- a/projects/aca-content/src/lib/components/libraries/libraries.component.html +++ b/projects/aca-content/src/lib/components/libraries/libraries.component.html @@ -1,5 +1,5 @@ - +
@@ -7,9 +7,9 @@ - +
- +
- +
diff --git a/projects/aca-content/src/lib/components/libraries/libraries.component.ts b/projects/aca-content/src/lib/components/libraries/libraries.component.ts index 3921128f0..8b13268aa 100644 --- a/projects/aca-content/src/lib/components/libraries/libraries.component.ts +++ b/projects/aca-content/src/lib/components/libraries/libraries.component.ts @@ -31,8 +31,6 @@ import { InfoDrawerComponent, PageComponent, PageLayoutComponent, - PageLayoutContentComponent, - PageLayoutHeaderComponent, PaginationDirective, ToolbarActionComponent } from '@alfresco/aca-shared'; @@ -58,8 +56,6 @@ import { DocumentListDirective } from '../../directives/document-list.directive' PaginationDirective, InfoDrawerComponent, ToolbarActionComponent, - PageLayoutContentComponent, - PageLayoutHeaderComponent, PageLayoutComponent ], templateUrl: './libraries.component.html', diff --git a/projects/aca-content/src/lib/components/recent-files/recent-files.component.html b/projects/aca-content/src/lib/components/recent-files/recent-files.component.html index 6816cbcdf..603a3aee6 100644 --- a/projects/aca-content/src/lib/components/recent-files/recent-files.component.html +++ b/projects/aca-content/src/lib/components/recent-files/recent-files.component.html @@ -1,5 +1,5 @@ - +
@@ -7,9 +7,9 @@ - +
- +
- +
diff --git a/projects/aca-content/src/lib/components/recent-files/recent-files.component.ts b/projects/aca-content/src/lib/components/recent-files/recent-files.component.ts index a43dad3cd..95abdafae 100644 --- a/projects/aca-content/src/lib/components/recent-files/recent-files.component.ts +++ b/projects/aca-content/src/lib/components/recent-files/recent-files.component.ts @@ -30,8 +30,6 @@ import { InfoDrawerComponent, PageComponent, PageLayoutComponent, - PageLayoutContentComponent, - PageLayoutHeaderComponent, PaginationDirective, ToolbarActionComponent } from '@alfresco/aca-shared'; @@ -57,8 +55,6 @@ import { DocumentListDirective } from '../../directives/document-list.directive' PaginationDirective, InfoDrawerComponent, ToolbarActionComponent, - PageLayoutContentComponent, - PageLayoutHeaderComponent, PageLayoutComponent ], templateUrl: './recent-files.component.html', diff --git a/projects/aca-content/src/lib/components/search/search-libraries-results/search-libraries-results.component.html b/projects/aca-content/src/lib/components/search/search-libraries-results/search-libraries-results.component.html index e644cccbd..6ee8560dd 100644 --- a/projects/aca-content/src/lib/components/search/search-libraries-results/search-libraries-results.component.html +++ b/projects/aca-content/src/lib/components/search/search-libraries-results/search-libraries-results.component.html @@ -1,5 +1,5 @@ - +
@@ -7,9 +7,9 @@ - +
- +
@@ -87,5 +87,5 @@
- +
diff --git a/projects/aca-content/src/lib/components/search/search-libraries-results/search-libraries-results.component.ts b/projects/aca-content/src/lib/components/search/search-libraries-results/search-libraries-results.component.ts index 2fceaf0e2..8730d4938 100644 --- a/projects/aca-content/src/lib/components/search/search-libraries-results/search-libraries-results.component.ts +++ b/projects/aca-content/src/lib/components/search/search-libraries-results/search-libraries-results.component.ts @@ -34,8 +34,6 @@ import { InfoDrawerComponent, PageComponent, PageLayoutComponent, - PageLayoutContentComponent, - PageLayoutHeaderComponent, PaginationDirective, ToolbarActionComponent } from '@alfresco/aca-shared'; @@ -65,8 +63,6 @@ import { DocumentListDirective } from '../../../directives/document-list.directi DocumentListDirective, ToolbarActionComponent, PaginationDirective, - PageLayoutContentComponent, - PageLayoutHeaderComponent, PageLayoutComponent ], selector: 'aca-search-results', diff --git a/projects/aca-content/src/lib/components/search/search-results/search-results.component.html b/projects/aca-content/src/lib/components/search/search-results/search-results.component.html index b52faf4d7..e5b4b9ce1 100644 --- a/projects/aca-content/src/lib/components/search/search-results/search-results.component.html +++ b/projects/aca-content/src/lib/components/search/search-results/search-results.component.html @@ -1,5 +1,5 @@ - +
@@ -7,9 +7,9 @@ - +
- +
@@ -140,5 +140,5 @@
- +
diff --git a/projects/aca-content/src/lib/components/search/search-results/search-results.component.ts b/projects/aca-content/src/lib/components/search/search-results/search-results.component.ts index cf09bcffa..24779dc45 100644 --- a/projects/aca-content/src/lib/components/search/search-results/search-results.component.ts +++ b/projects/aca-content/src/lib/components/search/search-results/search-results.component.ts @@ -42,8 +42,6 @@ import { InfoDrawerComponent, PageComponent, PageLayoutComponent, - PageLayoutContentComponent, - PageLayoutHeaderComponent, PaginationDirective, ToolbarActionComponent } from '@alfresco/aca-shared'; @@ -88,8 +86,6 @@ import { SearchResultsRowComponent } from '../search-results-row/search-results- PaginationDirective, ViewerModule, ToolbarActionComponent, - PageLayoutHeaderComponent, - PageLayoutContentComponent, PageLayoutComponent ], selector: 'aca-search-results', diff --git a/projects/aca-content/src/lib/components/shared-files/shared-files.component.html b/projects/aca-content/src/lib/components/shared-files/shared-files.component.html index 747e7a22d..083381569 100644 --- a/projects/aca-content/src/lib/components/shared-files/shared-files.component.html +++ b/projects/aca-content/src/lib/components/shared-files/shared-files.component.html @@ -1,5 +1,5 @@ - +
@@ -7,9 +7,9 @@ - +
- +
- +
diff --git a/projects/aca-content/src/lib/components/shared-files/shared-files.component.ts b/projects/aca-content/src/lib/components/shared-files/shared-files.component.ts index 2aa124580..03d1ed148 100644 --- a/projects/aca-content/src/lib/components/shared-files/shared-files.component.ts +++ b/projects/aca-content/src/lib/components/shared-files/shared-files.component.ts @@ -31,8 +31,6 @@ import { InfoDrawerComponent, PageComponent, PageLayoutComponent, - PageLayoutContentComponent, - PageLayoutHeaderComponent, PaginationDirective, ToolbarActionComponent } from '@alfresco/aca-shared'; @@ -58,8 +56,6 @@ import { DocumentListDirective } from '../../directives/document-list.directive' InfoDrawerComponent, PaginationDirective, ToolbarActionComponent, - PageLayoutContentComponent, - PageLayoutHeaderComponent, PageLayoutComponent ], templateUrl: './shared-files.component.html', diff --git a/projects/aca-content/src/lib/components/trashcan/trashcan.component.html b/projects/aca-content/src/lib/components/trashcan/trashcan.component.html index 989444e77..c71e6e0ad 100644 --- a/projects/aca-content/src/lib/components/trashcan/trashcan.component.html +++ b/projects/aca-content/src/lib/components/trashcan/trashcan.component.html @@ -1,5 +1,5 @@ - +
@@ -7,9 +7,9 @@ - +
- +
- +
diff --git a/projects/aca-content/src/lib/components/trashcan/trashcan.component.ts b/projects/aca-content/src/lib/components/trashcan/trashcan.component.ts index 53bcdad07..824afe1af 100644 --- a/projects/aca-content/src/lib/components/trashcan/trashcan.component.ts +++ b/projects/aca-content/src/lib/components/trashcan/trashcan.component.ts @@ -25,15 +25,7 @@ import { getUserProfile } from '@alfresco/aca-shared/store'; import { DocumentListPresetRef, ExtensionsModule } from '@alfresco/adf-extensions'; import { Component, OnInit, ViewEncapsulation } from '@angular/core'; -import { - ContextActionsDirective, - PageComponent, - PageLayoutComponent, - PageLayoutContentComponent, - PageLayoutHeaderComponent, - PaginationDirective, - ToolbarActionComponent -} from '@alfresco/aca-shared'; +import { ContextActionsDirective, PageComponent, PageLayoutComponent, PaginationDirective, ToolbarActionComponent } from '@alfresco/aca-shared'; import { CommonModule } from '@angular/common'; import { TranslateModule } from '@ngx-translate/core'; import { BreadcrumbModule, DocumentListModule } from '@alfresco/adf-content-services'; @@ -56,8 +48,6 @@ import { DocumentListDirective } from '../../directives/document-list.directive' ContextActionsDirective, PaginationDirective, ToolbarActionComponent, - PageLayoutContentComponent, - PageLayoutHeaderComponent, PageLayoutComponent ], templateUrl: './trashcan.component.html', diff --git a/projects/aca-shared/src/lib/components/page-layout/page-layout-content.component.ts b/projects/aca-shared/src/lib/components/page-layout/page-layout-content.component.ts index e1a52da88..22537d409 100644 --- a/projects/aca-shared/src/lib/components/page-layout/page-layout-content.component.ts +++ b/projects/aca-shared/src/lib/components/page-layout/page-layout-content.component.ts @@ -24,6 +24,7 @@ import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, HostBinding } from '@angular/core'; +// @deprecated Use `.aca-page-layout-content` CSS selector instead @Component({ standalone: true, selector: 'aca-page-layout-content', diff --git a/projects/aca-shared/src/lib/components/page-layout/page-layout-error.component.ts b/projects/aca-shared/src/lib/components/page-layout/page-layout-error.component.ts index 6884c7e06..2867df919 100644 --- a/projects/aca-shared/src/lib/components/page-layout/page-layout-error.component.ts +++ b/projects/aca-shared/src/lib/components/page-layout/page-layout-error.component.ts @@ -24,6 +24,7 @@ import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core'; +// @deprecated Use `.aca-page-layout-error` selectors instead @Component({ standalone: true, selector: 'aca-page-layout-error', diff --git a/projects/aca-shared/src/lib/components/page-layout/page-layout-header.component.ts b/projects/aca-shared/src/lib/components/page-layout/page-layout-header.component.ts index 6da512236..f928ac664 100644 --- a/projects/aca-shared/src/lib/components/page-layout/page-layout-header.component.ts +++ b/projects/aca-shared/src/lib/components/page-layout/page-layout-header.component.ts @@ -24,6 +24,7 @@ import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core'; +// @deprecated Use `.aca-page-layout-header` CSS selector instead @Component({ standalone: true, selector: 'aca-page-layout-header', diff --git a/projects/aca-shared/src/lib/components/page-layout/page-layout.component.html b/projects/aca-shared/src/lib/components/page-layout/page-layout.component.html index 03c5ec86a..ba5fc1a37 100644 --- a/projects/aca-shared/src/lib/components/page-layout/page-layout.component.html +++ b/projects/aca-shared/src/lib/components/page-layout/page-layout.component.html @@ -1,11 +1,17 @@ -
- - -
- - +
+ + +
+ + + + + + + + diff --git a/projects/aca-shared/src/lib/components/page-layout/page-layout.md b/projects/aca-shared/src/lib/components/page-layout/page-layout.md new file mode 100644 index 000000000..6aa6d4ad3 --- /dev/null +++ b/projects/aca-shared/src/lib/components/page-layout/page-layout.md @@ -0,0 +1,69 @@ +# Page Layout Component + +Selector: `aca-page-layout` + +## Layout Structure + +The layout component provides a set of slots for your custom content: + +- header +- error +- content + +```html + + +
+ +
+ +
+ +
+ +
+ +
+ +
+``` + +## Layout Header + +Supports any HTML or Angular component as a content + +```html + +
+ +
+
+``` + +## Layout Error + +Supports any HTML or Angular component as the error visualisation. +Displayed only when an error is detected by the parent container component. + +```html + +
+ +
+
+``` + +## Layout Content + +You can provide any Angular component or HTML element as the main content. +In addition, you can use `scrollable` class to make the content scroll. + +The content is displayed only when there are no errors detected. + +```html + +
+ +
+
+```