@dotcms/angular 0.0.1-beta.4 → 0.0.1-beta.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +646 -167
- package/dotcms-angular.d.ts.map +1 -1
- package/esm2022/dotcms-angular.mjs +2 -2
- package/esm2022/lib/deprecated/components/dot-editable-text/dot-editable-text.component.mjs +229 -0
- package/esm2022/lib/deprecated/components/dot-editable-text/utils.mjs +43 -0
- package/esm2022/lib/deprecated/components/no-component/no-component.component.mjs +32 -0
- package/esm2022/lib/deprecated/deprecated-api.mjs +11 -0
- package/esm2022/lib/{layout → deprecated/layout}/column/column.component.mjs +1 -1
- package/esm2022/lib/deprecated/layout/container/container.component.mjs +126 -0
- package/esm2022/lib/deprecated/layout/contentlet/contentlet.component.mjs +120 -0
- package/esm2022/lib/deprecated/layout/dotcms-layout/dotcms-layout.component.mjs +106 -0
- package/esm2022/lib/{layout → deprecated/layout}/row/row.component.mjs +1 -1
- package/esm2022/lib/deprecated/models/dotcms.model.mjs +3 -0
- package/esm2022/lib/deprecated/models/index.mjs +3 -0
- package/esm2022/lib/deprecated/services/dotcms-context/page-context.service.mjs +79 -0
- package/esm2022/lib/deprecated/utils/image_loader.mjs +74 -0
- package/esm2022/lib/deprecated/utils/index.mjs +84 -0
- package/esm2022/next/components/dotcms-block-editor-renderer/blocks/code.component.mjs +49 -0
- package/esm2022/next/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.mjs +125 -0
- package/esm2022/next/components/dotcms-block-editor-renderer/blocks/image.component.mjs +25 -0
- package/esm2022/next/components/dotcms-block-editor-renderer/blocks/list.component.mjs +66 -0
- package/esm2022/next/components/dotcms-block-editor-renderer/blocks/table.component.mjs +97 -0
- package/esm2022/next/components/dotcms-block-editor-renderer/blocks/text.component.mjs +231 -0
- package/esm2022/next/components/dotcms-block-editor-renderer/blocks/unknown.component.mjs +65 -0
- package/esm2022/next/components/dotcms-block-editor-renderer/blocks/video.component.mjs +48 -0
- package/esm2022/next/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.mjs +50 -0
- package/esm2022/next/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.mjs +45 -0
- package/esm2022/next/components/dotcms-editable-text/dotcms-editable-text.component.mjs +240 -0
- package/esm2022/next/components/dotcms-editable-text/utils.mjs +20 -0
- package/esm2022/next/components/dotcms-layout-body/components/column/column.component.mjs +45 -0
- package/esm2022/next/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.mjs +52 -0
- package/esm2022/next/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.mjs +47 -0
- package/esm2022/next/components/dotcms-layout-body/components/container/container.component.mjs +99 -0
- package/esm2022/next/components/dotcms-layout-body/components/contentlet/contentlet.component.mjs +145 -0
- package/esm2022/next/components/dotcms-layout-body/components/fallback-component/fallback-component.component.mjs +47 -0
- package/esm2022/next/components/dotcms-layout-body/components/page-error-message/page-error-message.component.mjs +55 -0
- package/esm2022/next/components/dotcms-layout-body/components/row/row.component.mjs +46 -0
- package/esm2022/next/components/dotcms-layout-body/dotcms-layout-body.component.mjs +69 -0
- package/esm2022/next/directives/dotcms-show-when/dotcms-show-when.directive.mjs +49 -0
- package/esm2022/next/dotcms-angular-next.mjs +5 -0
- package/esm2022/next/models/index.mjs +3 -0
- package/esm2022/next/providers/dotcms-client/dotcms-client.provider.mjs +52 -0
- package/esm2022/next/providers/dotcms-image-loader/dotcms-image_loader.mjs +74 -0
- package/esm2022/next/public_api.mjs +8 -0
- package/esm2022/next/services/dotcms-editable-page.service.mjs +93 -0
- package/esm2022/next/store/dotcms.store.mjs +61 -0
- package/esm2022/public_api.mjs +2 -0
- package/fesm2022/dotcms-angular-next.mjs +1904 -0
- package/fesm2022/dotcms-angular-next.mjs.map +1 -0
- package/fesm2022/dotcms-angular.mjs +103 -10
- package/fesm2022/dotcms-angular.mjs.map +1 -1
- package/index.d.ts +6 -5
- package/lib/{components → deprecated/components}/dot-editable-text/dot-editable-text.component.d.ts +10 -6
- package/lib/deprecated/components/dot-editable-text/dot-editable-text.component.d.ts.map +1 -0
- package/lib/deprecated/components/dot-editable-text/utils.d.ts.map +1 -0
- package/lib/deprecated/components/no-component/no-component.component.d.ts.map +1 -0
- package/lib/deprecated/deprecated-api.d.ts +11 -0
- package/lib/deprecated/deprecated-api.d.ts.map +1 -0
- package/lib/deprecated/layout/column/column.component.d.ts.map +1 -0
- package/lib/deprecated/layout/container/container.component.d.ts.map +1 -0
- package/lib/deprecated/layout/contentlet/contentlet.component.d.ts.map +1 -0
- package/lib/{layout → deprecated/layout}/dotcms-layout/dotcms-layout.component.d.ts +5 -0
- package/lib/deprecated/layout/dotcms-layout/dotcms-layout.component.d.ts.map +1 -0
- package/lib/deprecated/layout/row/row.component.d.ts.map +1 -0
- package/lib/{models → deprecated/models}/dotcms.model.d.ts +2 -2
- package/lib/deprecated/models/dotcms.model.d.ts.map +1 -0
- package/lib/deprecated/models/index.d.ts.map +1 -0
- package/lib/{services → deprecated/services}/dotcms-context/page-context.service.d.ts +4 -0
- package/lib/deprecated/services/dotcms-context/page-context.service.d.ts.map +1 -0
- package/lib/deprecated/utils/image_loader.d.ts +21 -0
- package/lib/deprecated/utils/image_loader.d.ts.map +1 -0
- package/lib/deprecated/utils/index.d.ts.map +1 -0
- package/next/components/dotcms-block-editor-renderer/blocks/code.component.d.ts +10 -0
- package/next/components/dotcms-block-editor-renderer/blocks/code.component.d.ts.map +1 -0
- package/next/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.d.ts +34 -0
- package/next/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.d.ts.map +1 -0
- package/next/components/dotcms-block-editor-renderer/blocks/image.component.d.ts +9 -0
- package/next/components/dotcms-block-editor-renderer/blocks/image.component.d.ts.map +1 -0
- package/next/components/dotcms-block-editor-renderer/blocks/list.component.d.ts +14 -0
- package/next/components/dotcms-block-editor-renderer/blocks/list.component.d.ts.map +1 -0
- package/next/components/dotcms-block-editor-renderer/blocks/table.component.d.ts +10 -0
- package/next/components/dotcms-block-editor-renderer/blocks/table.component.d.ts.map +1 -0
- package/next/components/dotcms-block-editor-renderer/blocks/text.component.d.ts +27 -0
- package/next/components/dotcms-block-editor-renderer/blocks/text.component.d.ts.map +1 -0
- package/next/components/dotcms-block-editor-renderer/blocks/unknown.component.d.ts +18 -0
- package/next/components/dotcms-block-editor-renderer/blocks/unknown.component.d.ts.map +1 -0
- package/next/components/dotcms-block-editor-renderer/blocks/video.component.d.ts +10 -0
- package/next/components/dotcms-block-editor-renderer/blocks/video.component.d.ts.map +1 -0
- package/next/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.d.ts +39 -0
- package/next/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.d.ts.map +1 -0
- package/next/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.d.ts +12 -0
- package/next/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.d.ts.map +1 -0
- package/next/components/dotcms-editable-text/dotcms-editable-text.component.d.ts +129 -0
- package/next/components/dotcms-editable-text/dotcms-editable-text.component.d.ts.map +1 -0
- package/next/components/dotcms-editable-text/utils.d.ts +7 -0
- package/next/components/dotcms-editable-text/utils.d.ts.map +1 -0
- package/next/components/dotcms-layout-body/components/column/column.component.d.ts +21 -0
- package/next/components/dotcms-layout-body/components/column/column.component.d.ts.map +1 -0
- package/next/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.d.ts +27 -0
- package/next/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.d.ts.map +1 -0
- package/next/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.d.ts +23 -0
- package/next/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.d.ts.map +1 -0
- package/next/components/dotcms-layout-body/components/container/container.component.d.ts +32 -0
- package/next/components/dotcms-layout-body/components/container/container.component.d.ts.map +1 -0
- package/next/components/dotcms-layout-body/components/contentlet/contentlet.component.d.ts +48 -0
- package/next/components/dotcms-layout-body/components/contentlet/contentlet.component.d.ts.map +1 -0
- package/next/components/dotcms-layout-body/components/fallback-component/fallback-component.component.d.ts +16 -0
- package/next/components/dotcms-layout-body/components/fallback-component/fallback-component.component.d.ts.map +1 -0
- package/next/components/dotcms-layout-body/components/page-error-message/page-error-message.component.d.ts +13 -0
- package/next/components/dotcms-layout-body/components/page-error-message/page-error-message.component.d.ts.map +1 -0
- package/next/components/dotcms-layout-body/components/row/row.component.d.ts +22 -0
- package/next/components/dotcms-layout-body/components/row/row.component.d.ts.map +1 -0
- package/next/components/dotcms-layout-body/dotcms-layout-body.component.d.ts +30 -0
- package/next/components/dotcms-layout-body/dotcms-layout-body.component.d.ts.map +1 -0
- package/next/directives/dotcms-show-when/dotcms-show-when.directive.d.ts +21 -0
- package/next/directives/dotcms-show-when/dotcms-show-when.directive.d.ts.map +1 -0
- package/next/dotcms-angular-next.d.ts.map +1 -0
- package/next/index.d.ts +6 -0
- package/next/models/index.d.ts +39 -0
- package/next/models/index.d.ts.map +1 -0
- package/next/providers/dotcms-client/dotcms-client.provider.d.ts +60 -0
- package/next/providers/dotcms-client/dotcms-client.provider.d.ts.map +1 -0
- package/next/providers/dotcms-image-loader/dotcms-image_loader.d.ts +21 -0
- package/next/providers/dotcms-image-loader/dotcms-image_loader.d.ts.map +1 -0
- package/next/public_api.d.ts +8 -0
- package/next/public_api.d.ts.map +1 -0
- package/next/services/dotcms-editable-page.service.d.ts +40 -0
- package/next/services/dotcms-editable-page.service.d.ts.map +1 -0
- package/next/store/dotcms.store.d.ts +36 -0
- package/next/store/dotcms.store.d.ts.map +1 -0
- package/package.json +16 -9
- package/public_api.d.ts +2 -0
- package/public_api.d.ts.map +1 -0
- package/esm2022/index.mjs +0 -5
- package/esm2022/lib/components/dot-editable-text/dot-editable-text.component.mjs +0 -225
- package/esm2022/lib/components/dot-editable-text/utils.mjs +0 -43
- package/esm2022/lib/components/no-component/no-component.component.mjs +0 -32
- package/esm2022/lib/layout/container/container.component.mjs +0 -126
- package/esm2022/lib/layout/contentlet/contentlet.component.mjs +0 -120
- package/esm2022/lib/layout/dotcms-layout/dotcms-layout.component.mjs +0 -100
- package/esm2022/lib/models/dotcms.model.mjs +0 -3
- package/esm2022/lib/models/index.mjs +0 -3
- package/esm2022/lib/services/dotcms-context/page-context.service.mjs +0 -75
- package/esm2022/lib/utils/index.mjs +0 -84
- package/index.d.ts.map +0 -1
- package/lib/components/dot-editable-text/dot-editable-text.component.d.ts.map +0 -1
- package/lib/components/dot-editable-text/utils.d.ts.map +0 -1
- package/lib/components/no-component/no-component.component.d.ts.map +0 -1
- package/lib/layout/column/column.component.d.ts.map +0 -1
- package/lib/layout/container/container.component.d.ts.map +0 -1
- package/lib/layout/contentlet/contentlet.component.d.ts.map +0 -1
- package/lib/layout/dotcms-layout/dotcms-layout.component.d.ts.map +0 -1
- package/lib/layout/row/row.component.d.ts.map +0 -1
- package/lib/models/dotcms.model.d.ts.map +0 -1
- package/lib/models/index.d.ts.map +0 -1
- package/lib/services/dotcms-context/page-context.service.d.ts.map +0 -1
- package/lib/utils/index.d.ts.map +0 -1
- /package/lib/{components → deprecated/components}/dot-editable-text/utils.d.ts +0 -0
- /package/lib/{components → deprecated/components}/no-component/no-component.component.d.ts +0 -0
- /package/lib/{layout → deprecated/layout}/column/column.component.d.ts +0 -0
- /package/lib/{layout → deprecated/layout}/container/container.component.d.ts +0 -0
- /package/lib/{layout → deprecated/layout}/contentlet/contentlet.component.d.ts +0 -0
- /package/lib/{layout → deprecated/layout}/row/row.component.d.ts +0 -0
- /package/lib/{models → deprecated/models}/index.d.ts +0 -0
- /package/lib/{utils → deprecated/utils}/index.d.ts +0 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, inject, Input, signal } from '@angular/core';
|
|
2
|
+
import { PageErrorMessageComponent } from './components/page-error-message/page-error-message.component';
|
|
3
|
+
import { RowComponent } from './components/row/row.component';
|
|
4
|
+
import { DotCMSStore } from '../../store/dotcms.store';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* @description This component is used to render the layout for a DotCMS page.
|
|
8
|
+
* @param {DotCMSPageAsset} page - The page to render the layout for
|
|
9
|
+
* @param {DotCMSPageComponent} components - The components to render the layout for
|
|
10
|
+
* @param {DotCMSPageRendererMode} mode - The mode to render the layout for
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* <dotcms-layout-body [page]="page" [components]="components" [mode]="'development'" />
|
|
14
|
+
*
|
|
15
|
+
* @export
|
|
16
|
+
* @implements {OnChanges}
|
|
17
|
+
* @class DotCMSLayoutBodyComponent
|
|
18
|
+
*/
|
|
19
|
+
export class DotCMSLayoutBodyComponent {
|
|
20
|
+
constructor() {
|
|
21
|
+
this.components = {};
|
|
22
|
+
this.mode = 'production';
|
|
23
|
+
this.#dotCMSStore = inject(DotCMSStore);
|
|
24
|
+
this.$isDevMode = this.#dotCMSStore.$isDevMode;
|
|
25
|
+
this.$rows = signal([]);
|
|
26
|
+
this.$isEmpty = signal(false);
|
|
27
|
+
}
|
|
28
|
+
#dotCMSStore;
|
|
29
|
+
ngOnChanges() {
|
|
30
|
+
this.#dotCMSStore.setStore({
|
|
31
|
+
page: this.page,
|
|
32
|
+
components: this.components,
|
|
33
|
+
mode: this.mode
|
|
34
|
+
});
|
|
35
|
+
this.$isEmpty.set(!this.page?.layout?.body);
|
|
36
|
+
this.$rows.set(this.page?.layout?.body?.rows ?? []);
|
|
37
|
+
}
|
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSLayoutBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: DotCMSLayoutBodyComponent, isStandalone: true, selector: "dotcms-layout-body", inputs: { page: "page", components: "components", mode: "mode" }, providers: [DotCMSStore], usesOnChanges: true, ngImport: i0, template: `
|
|
40
|
+
@if ($isEmpty() && $isDevMode()) {
|
|
41
|
+
<dotcms-page-error-message />
|
|
42
|
+
} @else {
|
|
43
|
+
@for (row of $rows(); track row.identifier) {
|
|
44
|
+
<dotcms-row [row]="row" />
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
`, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: PageErrorMessageComponent, selector: "dotcms-page-error-message" }, { kind: "component", type: RowComponent, selector: "dotcms-row", inputs: ["row"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
48
|
+
}
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSLayoutBodyComponent, decorators: [{
|
|
50
|
+
type: Component,
|
|
51
|
+
args: [{ selector: 'dotcms-layout-body', standalone: true, imports: [PageErrorMessageComponent, RowComponent], providers: [DotCMSStore], template: `
|
|
52
|
+
@if ($isEmpty() && $isDevMode()) {
|
|
53
|
+
<dotcms-page-error-message />
|
|
54
|
+
} @else {
|
|
55
|
+
@for (row of $rows(); track row.identifier) {
|
|
56
|
+
<dotcms-row [row]="row" />
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}\n"] }]
|
|
60
|
+
}], propDecorators: { page: [{
|
|
61
|
+
type: Input,
|
|
62
|
+
args: [{ required: true }]
|
|
63
|
+
}], components: [{
|
|
64
|
+
type: Input,
|
|
65
|
+
args: [{ required: true }]
|
|
66
|
+
}], mode: [{
|
|
67
|
+
type: Input
|
|
68
|
+
}] } });
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWxheW91dC1ib2R5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvbmV4dC9jb21wb25lbnRzL2RvdGNtcy1sYXlvdXQtYm9keS9kb3RjbXMtbGF5b3V0LWJvZHkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUc5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBQ3ZEOzs7Ozs7Ozs7Ozs7R0FZRztBQWtCSCxNQUFNLE9BQU8seUJBQXlCO0lBakJ0QztRQW1CK0IsZUFBVSxHQUF3QixFQUFFLENBQUM7UUFDdkQsU0FBSSxHQUEyQixZQUFZLENBQUM7UUFFckQsaUJBQVksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFbkMsZUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDO1FBRTFDLFVBQUssR0FBRyxNQUFNLENBQTBCLEVBQUUsQ0FBQyxDQUFDO1FBRTVDLGFBQVEsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7S0FhNUI7SUFuQkcsWUFBWSxDQUF1QjtJQVFuQyxXQUFXO1FBQ1AsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7WUFDdkIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQzs4R0F2QlEseUJBQXlCO2tHQUF6Qix5QkFBeUIsbUlBYnZCLENBQUMsV0FBVyxDQUFDLCtDQUNkOzs7Ozs7OztLQVFULGdHQVZTLHlCQUF5QixzRUFBRSxZQUFZOzsyRkFjeEMseUJBQXlCO2tCQWpCckMsU0FBUzsrQkFDSSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMseUJBQXlCLEVBQUUsWUFBWSxDQUFDLGFBQ3ZDLENBQUMsV0FBVyxDQUFDLFlBQ2Q7Ozs7Ozs7O0tBUVQsbUJBRWdCLHVCQUF1QixDQUFDLE1BQU07OEJBR3BCLElBQUk7c0JBQTlCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNFLFVBQVU7c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNoQixJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIHNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRG90Q01TUGFnZUFzc2V0LCBEb3RDTVNQYWdlUmVuZGVyZXJNb2RlLCBEb3RQYWdlQXNzZXRMYXlvdXRSb3cgfSBmcm9tICdAZG90Y21zL3R5cGVzJztcblxuaW1wb3J0IHsgUGFnZUVycm9yTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYWdlLWVycm9yLW1lc3NhZ2UvcGFnZS1lcnJvci1tZXNzYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSb3dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcm93L3Jvdy5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBEb3RDTVNQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IERvdENNU1N0b3JlIH0gZnJvbSAnLi4vLi4vc3RvcmUvZG90Y21zLnN0b3JlJztcbi8qKlxuICogQGRlc2NyaXB0aW9uIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gcmVuZGVyIHRoZSBsYXlvdXQgZm9yIGEgRG90Q01TIHBhZ2UuXG4gKiBAcGFyYW0ge0RvdENNU1BhZ2VBc3NldH0gcGFnZSAtIFRoZSBwYWdlIHRvIHJlbmRlciB0aGUgbGF5b3V0IGZvclxuICogQHBhcmFtIHtEb3RDTVNQYWdlQ29tcG9uZW50fSBjb21wb25lbnRzIC0gVGhlIGNvbXBvbmVudHMgdG8gcmVuZGVyIHRoZSBsYXlvdXQgZm9yXG4gKiBAcGFyYW0ge0RvdENNU1BhZ2VSZW5kZXJlck1vZGV9IG1vZGUgLSBUaGUgbW9kZSB0byByZW5kZXIgdGhlIGxheW91dCBmb3JcbiAqXG4gKiBAZXhhbXBsZVxuICogPGRvdGNtcy1sYXlvdXQtYm9keSBbcGFnZV09XCJwYWdlXCIgW2NvbXBvbmVudHNdPVwiY29tcG9uZW50c1wiIFttb2RlXT1cIidkZXZlbG9wbWVudCdcIiAvPlxuICpcbiAqIEBleHBvcnRcbiAqIEBpbXBsZW1lbnRzIHtPbkNoYW5nZXN9XG4gKiBAY2xhc3MgRG90Q01TTGF5b3V0Qm9keUNvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdGNtcy1sYXlvdXQtYm9keScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbUGFnZUVycm9yTWVzc2FnZUNvbXBvbmVudCwgUm93Q29tcG9uZW50XSxcbiAgICBwcm92aWRlcnM6IFtEb3RDTVNTdG9yZV0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgQGlmICgkaXNFbXB0eSgpICYmICRpc0Rldk1vZGUoKSkge1xuICAgICAgICAgICAgPGRvdGNtcy1wYWdlLWVycm9yLW1lc3NhZ2UgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAZm9yIChyb3cgb2YgJHJvd3MoKTsgdHJhY2sgcm93LmlkZW50aWZpZXIpIHtcbiAgICAgICAgICAgICAgICA8ZG90Y21zLXJvdyBbcm93XT1cInJvd1wiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICBgLFxuICAgIHN0eWxlVXJsOiAnLi9kb3RjbXMtbGF5b3V0LWJvZHkuY29tcG9uZW50LmNzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRG90Q01TTGF5b3V0Qm9keUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcGFnZSE6IERvdENNU1BhZ2VBc3NldDtcbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBjb21wb25lbnRzOiBEb3RDTVNQYWdlQ29tcG9uZW50ID0ge307XG4gICAgQElucHV0KCkgbW9kZTogRG90Q01TUGFnZVJlbmRlcmVyTW9kZSA9ICdwcm9kdWN0aW9uJztcblxuICAgICNkb3RDTVNTdG9yZSA9IGluamVjdChEb3RDTVNTdG9yZSk7XG5cbiAgICAkaXNEZXZNb2RlID0gdGhpcy4jZG90Q01TU3RvcmUuJGlzRGV2TW9kZTtcblxuICAgICRyb3dzID0gc2lnbmFsPERvdFBhZ2VBc3NldExheW91dFJvd1tdPihbXSk7XG5cbiAgICAkaXNFbXB0eSA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgdGhpcy4jZG90Q01TU3RvcmUuc2V0U3RvcmUoe1xuICAgICAgICAgICAgcGFnZTogdGhpcy5wYWdlLFxuICAgICAgICAgICAgY29tcG9uZW50czogdGhpcy5jb21wb25lbnRzLFxuICAgICAgICAgICAgbW9kZTogdGhpcy5tb2RlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuJGlzRW1wdHkuc2V0KCF0aGlzLnBhZ2U/LmxheW91dD8uYm9keSk7XG5cbiAgICAgICAgdGhpcy4kcm93cy5zZXQodGhpcy5wYWdlPy5sYXlvdXQ/LmJvZHk/LnJvd3MgPz8gW10pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Directive, Input, ViewContainerRef, TemplateRef, inject } from '@angular/core';
|
|
2
|
+
import { UVE_MODE } from '@dotcms/types';
|
|
3
|
+
import { getUVEState } from '@dotcms/uve';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* Directive to show a template when the UVE is in a specific mode.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* <div *dotCMSShowWhen="UVE_MODE.EDIT">
|
|
10
|
+
* This will be shown when the UVE is in edit mode.
|
|
11
|
+
* </div>
|
|
12
|
+
*
|
|
13
|
+
* @export
|
|
14
|
+
* @class DotCMSShowWhenDirective
|
|
15
|
+
*/
|
|
16
|
+
export class DotCMSShowWhenDirective {
|
|
17
|
+
#when = UVE_MODE.EDIT;
|
|
18
|
+
#hasView = false;
|
|
19
|
+
set dotCMSShowWhen(value) {
|
|
20
|
+
this.#when = value;
|
|
21
|
+
this.updateViewContainer();
|
|
22
|
+
}
|
|
23
|
+
#viewContainerRef = inject(ViewContainerRef);
|
|
24
|
+
#templateRef = inject(TemplateRef);
|
|
25
|
+
updateViewContainer() {
|
|
26
|
+
const state = getUVEState();
|
|
27
|
+
const shouldShow = state?.mode === this.#when;
|
|
28
|
+
if (shouldShow && !this.#hasView) {
|
|
29
|
+
this.#viewContainerRef.createEmbeddedView(this.#templateRef);
|
|
30
|
+
this.#hasView = true;
|
|
31
|
+
}
|
|
32
|
+
else if (!shouldShow && this.#hasView) {
|
|
33
|
+
this.#viewContainerRef.clear();
|
|
34
|
+
this.#hasView = false;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSShowWhenDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
38
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.3", type: DotCMSShowWhenDirective, isStandalone: true, selector: "[dotCMSShowWhen]", inputs: { dotCMSShowWhen: "dotCMSShowWhen" }, ngImport: i0 }); }
|
|
39
|
+
}
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSShowWhenDirective, decorators: [{
|
|
41
|
+
type: Directive,
|
|
42
|
+
args: [{
|
|
43
|
+
selector: '[dotCMSShowWhen]',
|
|
44
|
+
standalone: true
|
|
45
|
+
}]
|
|
46
|
+
}], propDecorators: { dotCMSShowWhen: [{
|
|
47
|
+
type: Input
|
|
48
|
+
}] } });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLXNob3ctd2hlbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL25leHQvZGlyZWN0aXZlcy9kb3RjbXMtc2hvdy13aGVuL2RvdGNtcy1zaG93LXdoZW4uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEYsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUUxQzs7Ozs7Ozs7OztHQVVHO0FBS0gsTUFBTSxPQUFPLHVCQUF1QjtJQUNoQyxLQUFLLEdBQWEsUUFBUSxDQUFDLElBQUksQ0FBQztJQUNoQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBRWpCLElBQWEsY0FBYyxDQUFDLEtBQWU7UUFDdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzdDLFlBQVksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFM0IsbUJBQW1CO1FBQ3ZCLE1BQU0sS0FBSyxHQUF5QixXQUFXLEVBQUUsQ0FBQztRQUVsRCxNQUFNLFVBQVUsR0FBRyxLQUFLLEVBQUUsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFOUMsSUFBSSxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUN6QixDQUFDO2FBQU0sSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUM7SUFDTCxDQUFDOzhHQXhCUSx1QkFBdUI7a0dBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFKbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OEJBS2dCLGNBQWM7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBWaWV3Q29udGFpbmVyUmVmLCBUZW1wbGF0ZVJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFVWRV9NT0RFLCBVVkVTdGF0ZSB9IGZyb20gJ0Bkb3RjbXMvdHlwZXMnO1xuaW1wb3J0IHsgZ2V0VVZFU3RhdGUgfSBmcm9tICdAZG90Y21zL3V2ZSc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHRvIHNob3cgYSB0ZW1wbGF0ZSB3aGVuIHRoZSBVVkUgaXMgaW4gYSBzcGVjaWZpYyBtb2RlLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8ZGl2ICpkb3RDTVNTaG93V2hlbj1cIlVWRV9NT0RFLkVESVRcIj5cbiAqICAgICBUaGlzIHdpbGwgYmUgc2hvd24gd2hlbiB0aGUgVVZFIGlzIGluIGVkaXQgbW9kZS5cbiAqIDwvZGl2PlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBEb3RDTVNTaG93V2hlbkRpcmVjdGl2ZVxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tkb3RDTVNTaG93V2hlbl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRG90Q01TU2hvd1doZW5EaXJlY3RpdmUge1xuICAgICN3aGVuOiBVVkVfTU9ERSA9IFVWRV9NT0RFLkVESVQ7XG4gICAgI2hhc1ZpZXcgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIHNldCBkb3RDTVNTaG93V2hlbih2YWx1ZTogVVZFX01PREUpIHtcbiAgICAgICAgdGhpcy4jd2hlbiA9IHZhbHVlO1xuICAgICAgICB0aGlzLnVwZGF0ZVZpZXdDb250YWluZXIoKTtcbiAgICB9XG5cbiAgICAjdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgICAjdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWYpO1xuXG4gICAgcHJpdmF0ZSB1cGRhdGVWaWV3Q29udGFpbmVyKCkge1xuICAgICAgICBjb25zdCBzdGF0ZTogVVZFU3RhdGUgfCB1bmRlZmluZWQgPSBnZXRVVkVTdGF0ZSgpO1xuXG4gICAgICAgIGNvbnN0IHNob3VsZFNob3cgPSBzdGF0ZT8ubW9kZSA9PT0gdGhpcy4jd2hlbjtcblxuICAgICAgICBpZiAoc2hvdWxkU2hvdyAmJiAhdGhpcy4jaGFzVmlldykge1xuICAgICAgICAgICAgdGhpcy4jdmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy4jdGVtcGxhdGVSZWYpO1xuICAgICAgICAgICAgdGhpcy4jaGFzVmlldyA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAoIXNob3VsZFNob3cgJiYgdGhpcy4jaGFzVmlldykge1xuICAgICAgICAgICAgdGhpcy4jdmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgICAgICAgICAgdGhpcy4jaGFzVmlldyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public_api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWFuZ3VsYXItbmV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvbmV4dC9kb3RjbXMtYW5ndWxhci1uZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
export {};
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL25leHQvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RCIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cblxuaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEb3RDTVNQYWdlQXNzZXQsIERvdENNU1BhZ2VSZW5kZXJlck1vZGUgfSBmcm9tICdAZG90Y21zL3R5cGVzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgZHluYW1pYyBjb21wb25lbnQgZW50aXR5LlxuICogQHR5cGVkZWYge1Byb21pc2U8VHlwZTxhbnk+Pn0gRHluYW1pY0NvbXBvbmVudEVudGl0eVxuICogQG1lbWJlcm9mIEBkb3RjbXMvYW5ndWxhclxuICovXG5leHBvcnQgdHlwZSBEeW5hbWljQ29tcG9uZW50RW50aXR5ID0gUHJvbWlzZTxUeXBlPGFueT4+O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGNvbnRleHQgb2YgYSBEb3RDTVMgcGFnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb3RDTVNQYWdlU3RvcmUge1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgdGhlIERvdENNUyBwYWdlIGFzc2V0LlxuICAgICAqIEB0eXBlIHtEb3RDTVNQYWdlQXNzZXR9XG4gICAgICogQG1lbWJlcm9mIERvdENNU1BhZ2VTdG9yZVxuICAgICAqL1xuICAgIHBhZ2U6IERvdENNU1BhZ2VBc3NldDtcblxuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgdGhlIGR5bmFtaWMgY29tcG9uZW50cyBvZiB0aGUgcGFnZSBmb3IgZWFjaCBDb250ZW50IFR5cGUuXG4gICAgICogQHR5cGUge0RvdENNU1BhZ2VDb21wb25lbnR9XG4gICAgICogQG1lbWJlcm9mIERvdENNU1BhZ2VTdG9yZVxuICAgICAqL1xuICAgIGNvbXBvbmVudHM6IERvdENNU1BhZ2VDb21wb25lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBJbmRpY2F0ZXMgdGhlIHJlbmRlcmVyIG1vZGUuXG4gICAgICogQHR5cGUge0RvdENNU1BhZ2VSZW5kZXJlck1vZGV9XG4gICAgICogQG1lbWJlcm9mIERvdENNU1BhZ2VTdG9yZVxuICAgICAqL1xuICAgIG1vZGU6IERvdENNU1BhZ2VSZW5kZXJlck1vZGU7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIERvdENNUyBwYWdlIGNvbXBvbmVudC5cbiAqIFVzZWQgdG8gc3RvcmUgdGhlIGR5bmFtaWMgY29tcG9uZW50cyBvZiBhIERvdENNUyBwYWdlLlxuICogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIER5bmFtaWNDb21wb25lbnRFbnRpdHk+fSBEb3RDTVNQYWdlQ29tcG9uZW50XG4gKiBAbWVtYmVyb2YgQGRvdGNtcy9hbmd1bGFyXG4gKi9cbmV4cG9ydCB0eXBlIERvdENNU1BhZ2VDb21wb25lbnQgPSBSZWNvcmQ8c3RyaW5nLCBEeW5hbWljQ29tcG9uZW50RW50aXR5PjtcbiJdfQ==
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { makeEnvironmentProviders } from '@angular/core';
|
|
2
|
+
import { createDotCMSClient } from '@dotcms/client/next';
|
|
3
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging
|
|
4
|
+
export class DotCMSClient {
|
|
5
|
+
constructor(client) {
|
|
6
|
+
return client;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Creates environment providers for the DotCMS client to be used in Angular applications.
|
|
11
|
+
* This function configures the DI container to provide a DotCMSClient instance
|
|
12
|
+
* throughout the application using the specified configuration.
|
|
13
|
+
*
|
|
14
|
+
* The provider should be registered at the application level (typically in main.ts)
|
|
15
|
+
* to ensure a single instance is shared across the entire application.
|
|
16
|
+
*
|
|
17
|
+
* @param options - Configuration object for the DotCMS client
|
|
18
|
+
* @param options.apiUrl - The base URL for the DotCMS API
|
|
19
|
+
* @param options.authToken - Authentication token for API requests (optional)
|
|
20
|
+
* @param options.siteId - The site identifier (optional)
|
|
21
|
+
* @returns Environment providers array that can be used with bootstrapApplication
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* // main.ts
|
|
26
|
+
* import { bootstrapApplication } from '@angular/platform-browser';
|
|
27
|
+
* import { AppComponent } from './app/app.component';
|
|
28
|
+
* import { provideDotCMSClient } from '@dotcms/angular';
|
|
29
|
+
*
|
|
30
|
+
* bootstrapApplication(AppComponent, {
|
|
31
|
+
* providers: [
|
|
32
|
+
* provideDotCMSClient({
|
|
33
|
+
* apiUrl: 'https://demo.dotcms.com',
|
|
34
|
+
* authToken: 'your-auth-token',
|
|
35
|
+
* siteId: 'your-site-id'
|
|
36
|
+
* }),
|
|
37
|
+
* // other providers...
|
|
38
|
+
* ]
|
|
39
|
+
* });
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
*/
|
|
43
|
+
export function provideDotCMSClient(options) {
|
|
44
|
+
const dotCMSClient = createDotCMSClient(options);
|
|
45
|
+
return makeEnvironmentProviders([
|
|
46
|
+
{
|
|
47
|
+
provide: DotCMSClient,
|
|
48
|
+
useFactory: () => new DotCMSClient(dotCMSClient)
|
|
49
|
+
}
|
|
50
|
+
]);
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWNsaWVudC5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvbmV4dC9wcm92aWRlcnMvZG90Y21zLWNsaWVudC9kb3RjbXMtY2xpZW50LnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUF3QnpELDRFQUE0RTtBQUM1RSxNQUFNLE9BQU8sWUFBWTtJQUNyQixZQUFZLE1BQWtCO1FBQzFCLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7Q0FDSjtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ0c7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsT0FBMkI7SUFDM0QsTUFBTSxZQUFZLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFakQsT0FBTyx3QkFBd0IsQ0FBQztRQUM1QjtZQUNJLE9BQU8sRUFBRSxZQUFZO1lBQ3JCLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxZQUFZLENBQUM7U0FDbkQ7S0FDSixDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzLCBFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBjcmVhdGVEb3RDTVNDbGllbnQgfSBmcm9tICdAZG90Y21zL2NsaWVudC9uZXh0JztcbmltcG9ydCB7IERvdENNU0NsaWVudENvbmZpZyB9IGZyb20gJ0Bkb3RjbXMvdHlwZXMnO1xuXG4vKipcbiAqIFR5cGUgYWxpYXMgZm9yIHRoZSByZXR1cm4gdHlwZSBvZiBjcmVhdGVEb3RDTVNDbGllbnQgZnVuY3Rpb24uXG4gKiBVc2VkIHRvIGVuc3VyZSB0eXBlIGNvbnNpc3RlbmN5IGFjcm9zcyB0aGUgRG90Q01TQ2xpZW50IGludGVyZmFjZSBhbmQgY2xhc3MuXG4gKi9cbnR5cGUgQ2xpZW50VHlwZSA9IFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZURvdENNU0NsaWVudD47XG5cbi8vIFRoaXMgaXMgYSBoYWNrIGluc3BpcmVkIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXJmaXJlL2Jsb2IvYzFjNmFmOTc3OTE1NGNhZmY2YmMwZDliODM3ZjZjM2UyZDkxMzQ1Ni9zcmMvZmlyZXN0b3JlL2ZpcmVzdG9yZS50cyNMOFxuXG4vKipcbiAqIEludGVyZmFjZSB0aGF0IGV4dGVuZHMgdGhlIGNsaWVudCB0eXBlIGNyZWF0ZWQgYnkgY3JlYXRlRG90Q01TQ2xpZW50LlxuICogVGhpcyBpbnRlcmZhY2UgcHJvdmlkZXMgdHlwZSBzYWZldHkgYW5kIEludGVsbGlTZW5zZSBzdXBwb3J0IGZvciB0aGUgRG90Q01TIGNsaWVudFxuICogd2hlbiB1c2VkIGFzIGEgZGVwZW5kZW5jeSBpbmplY3Rpb24gdG9rZW4gaW4gQW5ndWxhciBhcHBsaWNhdGlvbnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGRvdGNtc0NsaWVudCA9IGluamVjdChEb3RDTVNDbGllbnQpO1xuICogYGBgXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWRlY2xhcmF0aW9uLW1lcmdpbmcsIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1pbnRlcmZhY2VcbmV4cG9ydCBpbnRlcmZhY2UgRG90Q01TQ2xpZW50IGV4dGVuZHMgQ2xpZW50VHlwZSB7fVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1kZWNsYXJhdGlvbi1tZXJnaW5nXG5leHBvcnQgY2xhc3MgRG90Q01TQ2xpZW50IHtcbiAgICBjb25zdHJ1Y3RvcihjbGllbnQ6IENsaWVudFR5cGUpIHtcbiAgICAgICAgcmV0dXJuIGNsaWVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQ3JlYXRlcyBlbnZpcm9ubWVudCBwcm92aWRlcnMgZm9yIHRoZSBEb3RDTVMgY2xpZW50IHRvIGJlIHVzZWQgaW4gQW5ndWxhciBhcHBsaWNhdGlvbnMuXG4gKiBUaGlzIGZ1bmN0aW9uIGNvbmZpZ3VyZXMgdGhlIERJIGNvbnRhaW5lciB0byBwcm92aWRlIGEgRG90Q01TQ2xpZW50IGluc3RhbmNlXG4gKiB0aHJvdWdob3V0IHRoZSBhcHBsaWNhdGlvbiB1c2luZyB0aGUgc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogVGhlIHByb3ZpZGVyIHNob3VsZCBiZSByZWdpc3RlcmVkIGF0IHRoZSBhcHBsaWNhdGlvbiBsZXZlbCAodHlwaWNhbGx5IGluIG1haW4udHMpXG4gKiB0byBlbnN1cmUgYSBzaW5nbGUgaW5zdGFuY2UgaXMgc2hhcmVkIGFjcm9zcyB0aGUgZW50aXJlIGFwcGxpY2F0aW9uLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHRoZSBEb3RDTVMgY2xpZW50XG4gKiBAcGFyYW0gb3B0aW9ucy5hcGlVcmwgLSBUaGUgYmFzZSBVUkwgZm9yIHRoZSBEb3RDTVMgQVBJXG4gKiBAcGFyYW0gb3B0aW9ucy5hdXRoVG9rZW4gLSBBdXRoZW50aWNhdGlvbiB0b2tlbiBmb3IgQVBJIHJlcXVlc3RzIChvcHRpb25hbClcbiAqIEBwYXJhbSBvcHRpb25zLnNpdGVJZCAtIFRoZSBzaXRlIGlkZW50aWZpZXIgKG9wdGlvbmFsKVxuICogQHJldHVybnMgRW52aXJvbm1lbnQgcHJvdmlkZXJzIGFycmF5IHRoYXQgY2FuIGJlIHVzZWQgd2l0aCBib290c3RyYXBBcHBsaWNhdGlvblxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBtYWluLnRzXG4gKiBpbXBvcnQgeyBib290c3RyYXBBcHBsaWNhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuICogaW1wb3J0IHsgQXBwQ29tcG9uZW50IH0gZnJvbSAnLi9hcHAvYXBwLmNvbXBvbmVudCc7XG4gKiBpbXBvcnQgeyBwcm92aWRlRG90Q01TQ2xpZW50IH0gZnJvbSAnQGRvdGNtcy9hbmd1bGFyJztcbiAqXG4gKiBib290c3RyYXBBcHBsaWNhdGlvbihBcHBDb21wb25lbnQsIHtcbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAgcHJvdmlkZURvdENNU0NsaWVudCh7XG4gKiAgICAgICBhcGlVcmw6ICdodHRwczovL2RlbW8uZG90Y21zLmNvbScsXG4gKiAgICAgICBhdXRoVG9rZW46ICd5b3VyLWF1dGgtdG9rZW4nLFxuICogICAgICAgc2l0ZUlkOiAneW91ci1zaXRlLWlkJ1xuICogICAgIH0pLFxuICogICAgIC8vIG90aGVyIHByb3ZpZGVycy4uLlxuICogICBdXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEb3RDTVNDbGllbnQob3B0aW9uczogRG90Q01TQ2xpZW50Q29uZmlnKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICAgIGNvbnN0IGRvdENNU0NsaWVudCA9IGNyZWF0ZURvdENNU0NsaWVudChvcHRpb25zKTtcblxuICAgIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBEb3RDTVNDbGllbnQsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PiBuZXcgRG90Q01TQ2xpZW50KGRvdENNU0NsaWVudClcbiAgICAgICAgfVxuICAgIF0pO1xufVxuIl19
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { IMAGE_LOADER } from '@angular/common';
|
|
2
|
+
/**
|
|
3
|
+
* Validates if a given path is a valid URL string
|
|
4
|
+
*
|
|
5
|
+
* @param path - The path to validate
|
|
6
|
+
* @returns boolean indicating if the path is valid
|
|
7
|
+
*/
|
|
8
|
+
function isValidPath(path) {
|
|
9
|
+
if (typeof path !== 'string' || path.trim() === '') {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
try {
|
|
13
|
+
new URL(path);
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Provides a DotCMS image loader configuration for the Angular Image directive
|
|
22
|
+
*
|
|
23
|
+
* @param path - The base URL path to the DotCMS instance, or empty to use current site
|
|
24
|
+
* @returns An array of providers for the IMAGE_LOADER token
|
|
25
|
+
* @throws Error if the provided path is invalid
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* // In your app.config.ts
|
|
29
|
+
* export const appConfig: ApplicationConfig = {
|
|
30
|
+
* providers: [
|
|
31
|
+
* provideDotCMSImageLoader('https://demo.dotcms.com')
|
|
32
|
+
* // Or use current site:
|
|
33
|
+
* // provideDotCMSImageLoader()
|
|
34
|
+
* ]
|
|
35
|
+
* };
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export function provideDotCMSImageLoader(path) {
|
|
39
|
+
// If path is provided, validate it
|
|
40
|
+
if (path && !isValidPath(path)) {
|
|
41
|
+
throw new Error(`Image loader has detected an invalid path (\`${path}\`). ` +
|
|
42
|
+
`To fix this, supply either the full URL to the dotCMS site, or leave it empty to use the current site.`);
|
|
43
|
+
}
|
|
44
|
+
return [
|
|
45
|
+
{
|
|
46
|
+
provide: IMAGE_LOADER,
|
|
47
|
+
useValue: (config) => createDotCMSURL(config, path)
|
|
48
|
+
}
|
|
49
|
+
];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Creates a DotCMS-compatible URL for image loading
|
|
53
|
+
*
|
|
54
|
+
* @param config - The image loader configuration
|
|
55
|
+
* @param path - The base URL path to the DotCMS instance
|
|
56
|
+
* @returns A fully qualified URL for the image
|
|
57
|
+
* @internal
|
|
58
|
+
*/
|
|
59
|
+
function createDotCMSURL(config, path) {
|
|
60
|
+
const { loaderParams, src, width } = config;
|
|
61
|
+
const params = loaderParams;
|
|
62
|
+
if (params?.isOutsideSRC) {
|
|
63
|
+
return src;
|
|
64
|
+
}
|
|
65
|
+
// Use empty string as fallback to support using current site
|
|
66
|
+
const dotcmsHost = path ? new URL(path).origin : '';
|
|
67
|
+
const imageSRC = src.includes('/dA/') ? src : `/dA/${src}`;
|
|
68
|
+
const languageId = params?.languageId ?? '1';
|
|
69
|
+
if (width) {
|
|
70
|
+
return `${dotcmsHost}${imageSRC}/${width}w?language_id=${languageId}`;
|
|
71
|
+
}
|
|
72
|
+
return `${dotcmsHost}${imageSRC}?language_id=${languageId}`;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWltYWdlX2xvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvbmV4dC9wcm92aWRlcnMvZG90Y21zLWltYWdlLWxvYWRlci9kb3RjbXMtaW1hZ2VfbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0saUJBQWlCLENBQUM7QUFXbEU7Ozs7O0dBS0c7QUFDSCxTQUFTLFdBQVcsQ0FBQyxJQUFhO0lBQzlCLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNqRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0QsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFZCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ0wsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztBQUNMLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsSUFBYTtJQUNsRCxtQ0FBbUM7SUFDbkMsSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM3QixNQUFNLElBQUksS0FBSyxDQUNYLGdEQUFnRCxJQUFJLE9BQU87WUFDdkQsd0dBQXdHLENBQy9HLENBQUM7SUFDTixDQUFDO0lBRUQsT0FBTztRQUNIO1lBQ0ksT0FBTyxFQUFFLFlBQVk7WUFDckIsUUFBUSxFQUFFLENBQUMsTUFBeUIsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7U0FDekU7S0FDSixDQUFDO0FBQ04sQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFTLGVBQWUsQ0FBQyxNQUF5QixFQUFFLElBQWE7SUFDN0QsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQzVDLE1BQU0sTUFBTSxHQUFHLFlBQXVDLENBQUM7SUFFdkQsSUFBSSxNQUFNLEVBQUUsWUFBWSxFQUFFLENBQUM7UUFDdkIsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRUQsNkRBQTZEO0lBQzdELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDcEQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQzNELE1BQU0sVUFBVSxHQUFHLE1BQU0sRUFBRSxVQUFVLElBQUksR0FBRyxDQUFDO0lBRTdDLElBQUksS0FBSyxFQUFFLENBQUM7UUFDUixPQUFPLEdBQUcsVUFBVSxHQUFHLFFBQVEsSUFBSSxLQUFLLGlCQUFpQixVQUFVLEVBQUUsQ0FBQztJQUMxRSxDQUFDO0lBRUQsT0FBTyxHQUFHLFVBQVUsR0FBRyxRQUFRLGdCQUFnQixVQUFVLEVBQUUsQ0FBQztBQUNoRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSU1BR0VfTE9BREVSLCBJbWFnZUxvYWRlckNvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFR5cGUgZGVmaW5pdGlvbiBmb3IgdGhlIERvdENNUyBpbWFnZSBsb2FkZXIgcGFyYW1ldGVyc1xuICovXG5pbnRlcmZhY2UgRG90Q01TSW1hZ2VMb2FkZXJQYXJhbXMge1xuICAgIGlzT3V0c2lkZVNSQz86IGJvb2xlYW47XG4gICAgbGFuZ3VhZ2VJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZXMgaWYgYSBnaXZlbiBwYXRoIGlzIGEgdmFsaWQgVVJMIHN0cmluZ1xuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gdmFsaWRhdGVcbiAqIEByZXR1cm5zIGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgcGF0aCBpcyB2YWxpZFxuICovXG5mdW5jdGlvbiBpc1ZhbGlkUGF0aChwYXRoOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgaWYgKHR5cGVvZiBwYXRoICE9PSAnc3RyaW5nJyB8fCBwYXRoLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICAgIG5ldyBVUkwocGF0aCk7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5cbi8qKlxuICogUHJvdmlkZXMgYSBEb3RDTVMgaW1hZ2UgbG9hZGVyIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBBbmd1bGFyIEltYWdlIGRpcmVjdGl2ZVxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIGJhc2UgVVJMIHBhdGggdG8gdGhlIERvdENNUyBpbnN0YW5jZSwgb3IgZW1wdHkgdG8gdXNlIGN1cnJlbnQgc2l0ZVxuICogQHJldHVybnMgQW4gYXJyYXkgb2YgcHJvdmlkZXJzIGZvciB0aGUgSU1BR0VfTE9BREVSIHRva2VuXG4gKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBwcm92aWRlZCBwYXRoIGlzIGludmFsaWRcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBJbiB5b3VyIGFwcC5jb25maWcudHNcbiAqIGV4cG9ydCBjb25zdCBhcHBDb25maWc6IEFwcGxpY2F0aW9uQ29uZmlnID0ge1xuICogICBwcm92aWRlcnM6IFtcbiAqICAgICBwcm92aWRlRG90Q01TSW1hZ2VMb2FkZXIoJ2h0dHBzOi8vZGVtby5kb3RjbXMuY29tJylcbiAqICAgICAvLyBPciB1c2UgY3VycmVudCBzaXRlOlxuICogICAgIC8vIHByb3ZpZGVEb3RDTVNJbWFnZUxvYWRlcigpXG4gKiAgIF1cbiAqIH07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEb3RDTVNJbWFnZUxvYWRlcihwYXRoPzogc3RyaW5nKTogUHJvdmlkZXJbXSB7XG4gICAgLy8gSWYgcGF0aCBpcyBwcm92aWRlZCwgdmFsaWRhdGUgaXRcbiAgICBpZiAocGF0aCAmJiAhaXNWYWxpZFBhdGgocGF0aCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEltYWdlIGxvYWRlciBoYXMgZGV0ZWN0ZWQgYW4gaW52YWxpZCBwYXRoIChcXGAke3BhdGh9XFxgKS4gYCArXG4gICAgICAgICAgICAgICAgYFRvIGZpeCB0aGlzLCBzdXBwbHkgZWl0aGVyIHRoZSBmdWxsIFVSTCB0byB0aGUgZG90Q01TIHNpdGUsIG9yIGxlYXZlIGl0IGVtcHR5IHRvIHVzZSB0aGUgY3VycmVudCBzaXRlLmBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBJTUFHRV9MT0FERVIsXG4gICAgICAgICAgICB1c2VWYWx1ZTogKGNvbmZpZzogSW1hZ2VMb2FkZXJDb25maWcpID0+IGNyZWF0ZURvdENNU1VSTChjb25maWcsIHBhdGgpXG4gICAgICAgIH1cbiAgICBdO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBEb3RDTVMtY29tcGF0aWJsZSBVUkwgZm9yIGltYWdlIGxvYWRpbmdcbiAqXG4gKiBAcGFyYW0gY29uZmlnIC0gVGhlIGltYWdlIGxvYWRlciBjb25maWd1cmF0aW9uXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBiYXNlIFVSTCBwYXRoIHRvIHRoZSBEb3RDTVMgaW5zdGFuY2VcbiAqIEByZXR1cm5zIEEgZnVsbHkgcXVhbGlmaWVkIFVSTCBmb3IgdGhlIGltYWdlXG4gKiBAaW50ZXJuYWxcbiAqL1xuZnVuY3Rpb24gY3JlYXRlRG90Q01TVVJMKGNvbmZpZzogSW1hZ2VMb2FkZXJDb25maWcsIHBhdGg/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHsgbG9hZGVyUGFyYW1zLCBzcmMsIHdpZHRoIH0gPSBjb25maWc7XG4gICAgY29uc3QgcGFyYW1zID0gbG9hZGVyUGFyYW1zIGFzIERvdENNU0ltYWdlTG9hZGVyUGFyYW1zO1xuXG4gICAgaWYgKHBhcmFtcz8uaXNPdXRzaWRlU1JDKSB7XG4gICAgICAgIHJldHVybiBzcmM7XG4gICAgfVxuXG4gICAgLy8gVXNlIGVtcHR5IHN0cmluZyBhcyBmYWxsYmFjayB0byBzdXBwb3J0IHVzaW5nIGN1cnJlbnQgc2l0ZVxuICAgIGNvbnN0IGRvdGNtc0hvc3QgPSBwYXRoID8gbmV3IFVSTChwYXRoKS5vcmlnaW4gOiAnJztcbiAgICBjb25zdCBpbWFnZVNSQyA9IHNyYy5pbmNsdWRlcygnL2RBLycpID8gc3JjIDogYC9kQS8ke3NyY31gO1xuICAgIGNvbnN0IGxhbmd1YWdlSWQgPSBwYXJhbXM/Lmxhbmd1YWdlSWQgPz8gJzEnO1xuXG4gICAgaWYgKHdpZHRoKSB7XG4gICAgICAgIHJldHVybiBgJHtkb3RjbXNIb3N0fSR7aW1hZ2VTUkN9LyR7d2lkdGh9dz9sYW5ndWFnZV9pZD0ke2xhbmd1YWdlSWR9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7ZG90Y21zSG9zdH0ke2ltYWdlU1JDfT9sYW5ndWFnZV9pZD0ke2xhbmd1YWdlSWR9YDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { DotCMSShowWhenDirective } from './directives/dotcms-show-when/dotcms-show-when.directive';
|
|
2
|
+
export { provideDotCMSImageLoader } from './providers/dotcms-image-loader/dotcms-image_loader';
|
|
3
|
+
export { provideDotCMSClient, DotCMSClient } from './providers/dotcms-client/dotcms-client.provider';
|
|
4
|
+
export { DotCMSEditableTextComponent } from './components/dotcms-editable-text/dotcms-editable-text.component';
|
|
5
|
+
export { DotCMSBlockEditorRendererComponent } from './components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component';
|
|
6
|
+
export { DotCMSLayoutBodyComponent } from './components/dotcms-layout-body/dotcms-layout-body.component';
|
|
7
|
+
export { DotCMSEditablePageService } from './services/dotcms-editable-page.service';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvbmV4dC9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBRW5HLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBRS9GLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsWUFBWSxFQUNmLE1BQU0sa0RBQWtELENBQUM7QUFFMUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFFL0csT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0ZBQWtGLENBQUM7QUFFdEksT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFFekcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seUNBQXlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBEb3RDTVNTaG93V2hlbkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9kb3RjbXMtc2hvdy13aGVuL2RvdGNtcy1zaG93LXdoZW4uZGlyZWN0aXZlJztcblxuZXhwb3J0IHsgcHJvdmlkZURvdENNU0ltYWdlTG9hZGVyIH0gZnJvbSAnLi9wcm92aWRlcnMvZG90Y21zLWltYWdlLWxvYWRlci9kb3RjbXMtaW1hZ2VfbG9hZGVyJztcblxuZXhwb3J0IHtcbiAgICBwcm92aWRlRG90Q01TQ2xpZW50LFxuICAgIERvdENNU0NsaWVudFxufSBmcm9tICcuL3Byb3ZpZGVycy9kb3RjbXMtY2xpZW50L2RvdGNtcy1jbGllbnQucHJvdmlkZXInO1xuXG5leHBvcnQgeyBEb3RDTVNFZGl0YWJsZVRleHRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZG90Y21zLWVkaXRhYmxlLXRleHQvZG90Y21zLWVkaXRhYmxlLXRleHQuY29tcG9uZW50JztcblxuZXhwb3J0IHsgRG90Q01TQmxvY2tFZGl0b3JSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyL2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXIuY29tcG9uZW50JztcblxuZXhwb3J0IHsgRG90Q01TTGF5b3V0Qm9keUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kb3RjbXMtbGF5b3V0LWJvZHkvZG90Y21zLWxheW91dC1ib2R5LmNvbXBvbmVudCc7XG5cbmV4cG9ydCB7IERvdENNU0VkaXRhYmxlUGFnZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2RvdGNtcy1lZGl0YWJsZS1wYWdlLnNlcnZpY2UnO1xuIl19
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { of, Subject } from 'rxjs';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { finalize } from 'rxjs/operators';
|
|
4
|
+
import { UVEEventType } from '@dotcms/types';
|
|
5
|
+
import { createUVESubscription, getUVEState, initUVE, updateNavigation } from '@dotcms/uve';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class DotCMSEditablePageService {
|
|
8
|
+
/**
|
|
9
|
+
* Subject that emits the current editable page asset or null.
|
|
10
|
+
* Used internally to track changes to the page data.
|
|
11
|
+
*
|
|
12
|
+
* @private
|
|
13
|
+
* @type {Subject<DotCMSPageResponse | undefined>}
|
|
14
|
+
*/
|
|
15
|
+
#responseSubject = new Subject();
|
|
16
|
+
/**
|
|
17
|
+
* Observable stream of the page asset changes.
|
|
18
|
+
* Exposes the pageAssetSubject as an Observable for subscribers.
|
|
19
|
+
*
|
|
20
|
+
* @private
|
|
21
|
+
* @type {Observable<DotCMSPageResponse | undefined>}
|
|
22
|
+
*/
|
|
23
|
+
#response$ = this.#responseSubject.asObservable();
|
|
24
|
+
/**
|
|
25
|
+
* Listens for changes to an editable page and returns an Observable that emits the updated page data.
|
|
26
|
+
* This method initializes the UVE (Universal Visual Editor) and sets up subscriptions to track content changes.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* // Import the service
|
|
31
|
+
* import { DotCMSEditablePageService } from '@dotcms/angular';
|
|
32
|
+
*
|
|
33
|
+
* // Inject the service
|
|
34
|
+
* constructor(private editablePageService: DotCMSEditablePageService) {}
|
|
35
|
+
*
|
|
36
|
+
* // Get the page data from your API call
|
|
37
|
+
* const page = await client.page.get('/');
|
|
38
|
+
*
|
|
39
|
+
* // Listen for changes
|
|
40
|
+
* const subscription = this.editablePageService.listen(page).subscribe(updatedPage => {
|
|
41
|
+
* if (updatedPage) {
|
|
42
|
+
* // Handle updated page data
|
|
43
|
+
* console.log('Page updated:', updatedPage);
|
|
44
|
+
* }
|
|
45
|
+
* });
|
|
46
|
+
*
|
|
47
|
+
* // When done listening, unsubscribe
|
|
48
|
+
* subscription.unsubscribe();
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* @param response Optional initial page data
|
|
52
|
+
* @returns Observable that emits the updated page data or undefined
|
|
53
|
+
*/
|
|
54
|
+
listen(response) {
|
|
55
|
+
if (!getUVEState()) {
|
|
56
|
+
return of(response);
|
|
57
|
+
}
|
|
58
|
+
const pageURI = response?.pageAsset?.page?.pageURI;
|
|
59
|
+
initUVE(response);
|
|
60
|
+
// Update the navigation to the pageURI, when we have a pageURI
|
|
61
|
+
// Sometimes the page is null due to permissions, so we don't want to update the navigation
|
|
62
|
+
// And wait for the UVE to resolve the page
|
|
63
|
+
if (pageURI) {
|
|
64
|
+
updateNavigation(pageURI);
|
|
65
|
+
}
|
|
66
|
+
const unsubscribeUVEChanges = this.#listenUVEChanges();
|
|
67
|
+
return this.#response$.pipe(finalize(() => {
|
|
68
|
+
unsubscribeUVEChanges();
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Sets up a subscription to listen for UVE content changes and updates the page asset subject.
|
|
73
|
+
* This is an internal method used by listenEditablePage() to handle UVE events.
|
|
74
|
+
*
|
|
75
|
+
* @returns {UVEUnsubscribeFunction} Function to unsubscribe from the UVE content changes
|
|
76
|
+
* @private
|
|
77
|
+
*/
|
|
78
|
+
#listenUVEChanges() {
|
|
79
|
+
const { unsubscribe } = createUVESubscription(UVEEventType.CONTENT_CHANGES, (payload) => {
|
|
80
|
+
this.#responseSubject.next(payload);
|
|
81
|
+
});
|
|
82
|
+
return unsubscribe;
|
|
83
|
+
}
|
|
84
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSEditablePageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
85
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSEditablePageService, providedIn: 'root' }); }
|
|
86
|
+
}
|
|
87
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSEditablePageService, decorators: [{
|
|
88
|
+
type: Injectable,
|
|
89
|
+
args: [{
|
|
90
|
+
providedIn: 'root'
|
|
91
|
+
}]
|
|
92
|
+
}] });
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWVkaXRhYmxlLXBhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvbmV4dC9zZXJ2aWNlcy9kb3RjbXMtZWRpdGFibGUtcGFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFDSCxZQUFZLEVBSWYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBSzVGLE1BQU0sT0FBTyx5QkFBeUI7SUFDbEM7Ozs7OztPQU1HO0lBQ0gsZ0JBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQWtDLENBQUM7SUFFakU7Ozs7OztPQU1HO0lBQ0gsVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVsRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0E2Qkc7SUFDSCxNQUFNLENBQ0YsUUFBd0M7UUFFeEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDakIsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEIsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQztRQUVuRCxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbEIsK0RBQStEO1FBQy9ELDJGQUEyRjtRQUMzRiwyQ0FBMkM7UUFDM0MsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNWLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlCLENBQUM7UUFFRCxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRXZELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3ZCLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDVixxQkFBcUIsRUFBRSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsaUJBQWlCO1FBQ2IsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNwRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQzs4R0F6RlEseUJBQXlCO2tIQUF6Qix5QkFBeUIsY0FGdEIsTUFBTTs7MkZBRVQseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gICAgVVZFRXZlbnRUeXBlLFxuICAgIERvdENNU1BhZ2VSZXNwb25zZSxcbiAgICBEb3RDTVNDb21wb3NlZFBhZ2VSZXNwb25zZSxcbiAgICBEb3RDTVNFeHRlbmRlZFBhZ2VSZXNwb25zZVxufSBmcm9tICdAZG90Y21zL3R5cGVzJztcbmltcG9ydCB7IGNyZWF0ZVVWRVN1YnNjcmlwdGlvbiwgZ2V0VVZFU3RhdGUsIGluaXRVVkUsIHVwZGF0ZU5hdmlnYXRpb24gfSBmcm9tICdAZG90Y21zL3V2ZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRG90Q01TRWRpdGFibGVQYWdlU2VydmljZSB7XG4gICAgLyoqXG4gICAgICogU3ViamVjdCB0aGF0IGVtaXRzIHRoZSBjdXJyZW50IGVkaXRhYmxlIHBhZ2UgYXNzZXQgb3IgbnVsbC5cbiAgICAgKiBVc2VkIGludGVybmFsbHkgdG8gdHJhY2sgY2hhbmdlcyB0byB0aGUgcGFnZSBkYXRhLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAdHlwZSB7U3ViamVjdDxEb3RDTVNQYWdlUmVzcG9uc2UgfCB1bmRlZmluZWQ+fVxuICAgICAqL1xuICAgICNyZXNwb25zZVN1YmplY3QgPSBuZXcgU3ViamVjdDxEb3RDTVNQYWdlUmVzcG9uc2UgfCB1bmRlZmluZWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBPYnNlcnZhYmxlIHN0cmVhbSBvZiB0aGUgcGFnZSBhc3NldCBjaGFuZ2VzLlxuICAgICAqIEV4cG9zZXMgdGhlIHBhZ2VBc3NldFN1YmplY3QgYXMgYW4gT2JzZXJ2YWJsZSBmb3Igc3Vic2NyaWJlcnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEB0eXBlIHtPYnNlcnZhYmxlPERvdENNU1BhZ2VSZXNwb25zZSB8IHVuZGVmaW5lZD59XG4gICAgICovXG4gICAgI3Jlc3BvbnNlJCA9IHRoaXMuI3Jlc3BvbnNlU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICAgIC8qKlxuICAgICAqIExpc3RlbnMgZm9yIGNoYW5nZXMgdG8gYW4gZWRpdGFibGUgcGFnZSBhbmQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVwZGF0ZWQgcGFnZSBkYXRhLlxuICAgICAqIFRoaXMgbWV0aG9kIGluaXRpYWxpemVzIHRoZSBVVkUgKFVuaXZlcnNhbCBWaXN1YWwgRWRpdG9yKSBhbmQgc2V0cyB1cCBzdWJzY3JpcHRpb25zIHRvIHRyYWNrIGNvbnRlbnQgY2hhbmdlcy5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHNcbiAgICAgKiAvLyBJbXBvcnQgdGhlIHNlcnZpY2VcbiAgICAgKiBpbXBvcnQgeyBEb3RDTVNFZGl0YWJsZVBhZ2VTZXJ2aWNlIH0gZnJvbSAnQGRvdGNtcy9hbmd1bGFyJztcbiAgICAgKlxuICAgICAqIC8vIEluamVjdCB0aGUgc2VydmljZVxuICAgICAqIGNvbnN0cnVjdG9yKHByaXZhdGUgZWRpdGFibGVQYWdlU2VydmljZTogRG90Q01TRWRpdGFibGVQYWdlU2VydmljZSkge31cbiAgICAgKlxuICAgICAqIC8vIEdldCB0aGUgcGFnZSBkYXRhIGZyb20geW91ciBBUEkgY2FsbFxuICAgICAqIGNvbnN0IHBhZ2UgPSBhd2FpdCBjbGllbnQucGFnZS5nZXQoJy8nKTtcbiAgICAgKlxuICAgICAqIC8vIExpc3RlbiBmb3IgY2hhbmdlc1xuICAgICAqIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuZWRpdGFibGVQYWdlU2VydmljZS5saXN0ZW4ocGFnZSkuc3Vic2NyaWJlKHVwZGF0ZWRQYWdlID0+IHtcbiAgICAgKiAgIGlmICh1cGRhdGVkUGFnZSkge1xuICAgICAqICAgICAvLyBIYW5kbGUgdXBkYXRlZCBwYWdlIGRhdGFcbiAgICAgKiAgICAgY29uc29sZS5sb2coJ1BhZ2UgdXBkYXRlZDonLCB1cGRhdGVkUGFnZSk7XG4gICAgICogICB9XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiAvLyBXaGVuIGRvbmUgbGlzdGVuaW5nLCB1bnN1YnNjcmliZVxuICAgICAqIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQHBhcmFtIHJlc3BvbnNlIE9wdGlvbmFsIGluaXRpYWwgcGFnZSBkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB1cGRhdGVkIHBhZ2UgZGF0YSBvciB1bmRlZmluZWRcbiAgICAgKi9cbiAgICBsaXN0ZW48VCBleHRlbmRzIERvdENNU0V4dGVuZGVkUGFnZVJlc3BvbnNlPihcbiAgICAgICAgcmVzcG9uc2U/OiBEb3RDTVNDb21wb3NlZFBhZ2VSZXNwb25zZTxUPlxuICAgICk6IE9ic2VydmFibGU8RG90Q01TQ29tcG9zZWRQYWdlUmVzcG9uc2U8VD4gfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgaWYgKCFnZXRVVkVTdGF0ZSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YocmVzcG9uc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFnZVVSSSA9IHJlc3BvbnNlPy5wYWdlQXNzZXQ/LnBhZ2U/LnBhZ2VVUkk7XG5cbiAgICAgICAgaW5pdFVWRShyZXNwb25zZSk7XG5cbiAgICAgICAgLy8gVXBkYXRlIHRoZSBuYXZpZ2F0aW9uIHRvIHRoZSBwYWdlVVJJLCB3aGVuIHdlIGhhdmUgYSBwYWdlVVJJXG4gICAgICAgIC8vIFNvbWV0aW1lcyB0aGUgcGFnZSBpcyBudWxsIGR1ZSB0byBwZXJtaXNzaW9ucywgc28gd2UgZG9uJ3Qgd2FudCB0byB1cGRhdGUgdGhlIG5hdmlnYXRpb25cbiAgICAgICAgLy8gQW5kIHdhaXQgZm9yIHRoZSBVVkUgdG8gcmVzb2x2ZSB0aGUgcGFnZVxuICAgICAgICBpZiAocGFnZVVSSSkge1xuICAgICAgICAgICAgdXBkYXRlTmF2aWdhdGlvbihwYWdlVVJJKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVuc3Vic2NyaWJlVVZFQ2hhbmdlcyA9IHRoaXMuI2xpc3RlblVWRUNoYW5nZXMoKTtcblxuICAgICAgICByZXR1cm4gdGhpcy4jcmVzcG9uc2UkLnBpcGUoXG4gICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdW5zdWJzY3JpYmVVVkVDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdXAgYSBzdWJzY3JpcHRpb24gdG8gbGlzdGVuIGZvciBVVkUgY29udGVudCBjaGFuZ2VzIGFuZCB1cGRhdGVzIHRoZSBwYWdlIGFzc2V0IHN1YmplY3QuXG4gICAgICogVGhpcyBpcyBhbiBpbnRlcm5hbCBtZXRob2QgdXNlZCBieSBsaXN0ZW5FZGl0YWJsZVBhZ2UoKSB0byBoYW5kbGUgVVZFIGV2ZW50cy5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHtVVkVVbnN1YnNjcmliZUZ1bmN0aW9ufSBGdW5jdGlvbiB0byB1bnN1YnNjcmliZSBmcm9tIHRoZSBVVkUgY29udGVudCBjaGFuZ2VzXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICAjbGlzdGVuVVZFQ2hhbmdlcygpIHtcbiAgICAgICAgY29uc3QgeyB1bnN1YnNjcmliZSB9ID0gY3JlYXRlVVZFU3Vic2NyaXB0aW9uKFVWRUV2ZW50VHlwZS5DT05URU5UX0NIQU5HRVMsIChwYXlsb2FkKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiNyZXNwb25zZVN1YmplY3QubmV4dChwYXlsb2FkKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHVuc3Vic2NyaWJlO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { computed, Injectable, signal } from '@angular/core';
|
|
2
|
+
import { UVE_MODE } from '@dotcms/types';
|
|
3
|
+
import { getUVEState } from '@dotcms/uve';
|
|
4
|
+
import { DEVELOPMENT_MODE, PRODUCTION_MODE } from '@dotcms/uve/internal';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export const EMPTY_DOTCMS_PAGE_STORE = {
|
|
7
|
+
page: {},
|
|
8
|
+
components: {},
|
|
9
|
+
mode: PRODUCTION_MODE
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* @description This service is responsible for managing the page context.
|
|
13
|
+
* @internal
|
|
14
|
+
* @author dotCMS
|
|
15
|
+
* @export
|
|
16
|
+
* @class DotCMSStore
|
|
17
|
+
*/
|
|
18
|
+
export class DotCMSStore {
|
|
19
|
+
constructor() {
|
|
20
|
+
this.$store = signal(EMPTY_DOTCMS_PAGE_STORE);
|
|
21
|
+
/**
|
|
22
|
+
* @description Get if the current context is in development mode
|
|
23
|
+
* @readonly
|
|
24
|
+
* @type {boolean}
|
|
25
|
+
* @memberof DotCMSStore
|
|
26
|
+
*/
|
|
27
|
+
this.$isDevMode = computed(() => {
|
|
28
|
+
const uveState = getUVEState();
|
|
29
|
+
if (uveState?.mode) {
|
|
30
|
+
return uveState?.mode === UVE_MODE.EDIT;
|
|
31
|
+
}
|
|
32
|
+
return this.$store()?.mode === DEVELOPMENT_MODE;
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @description Get the store
|
|
37
|
+
* @readonly
|
|
38
|
+
* @type {DotCMSPageStore}
|
|
39
|
+
* @memberof DotCMSStore
|
|
40
|
+
*/
|
|
41
|
+
get store() {
|
|
42
|
+
return this.$store();
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* @description Set the store
|
|
46
|
+
* @param {DotCMSPageStore} value
|
|
47
|
+
* @memberof DotCMSStore
|
|
48
|
+
*/
|
|
49
|
+
setStore(store) {
|
|
50
|
+
this.$store.set(store);
|
|
51
|
+
}
|
|
52
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
53
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSStore, providedIn: 'root' }); }
|
|
54
|
+
}
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSStore, decorators: [{
|
|
56
|
+
type: Injectable,
|
|
57
|
+
args: [{
|
|
58
|
+
providedIn: 'root'
|
|
59
|
+
}]
|
|
60
|
+
}] });
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLnN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9uZXh0L3N0b3JlL2RvdGNtcy5zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0QsT0FBTyxFQUFtQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBSXpFLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFvQjtJQUNwRCxJQUFJLEVBQUUsRUFBcUI7SUFDM0IsVUFBVSxFQUFFLEVBQUU7SUFDZCxJQUFJLEVBQUUsZUFBZTtDQUN4QixDQUFDO0FBRUY7Ozs7OztHQU1HO0FBSUgsTUFBTSxPQUFPLFdBQVc7SUFIeEI7UUFJWSxXQUFNLEdBQUcsTUFBTSxDQUFrQix1QkFBdUIsQ0FBQyxDQUFDO1FBcUJsRTs7Ozs7V0FLRztRQUNILGVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sUUFBUSxHQUFHLFdBQVcsRUFBRSxDQUFDO1lBRS9CLElBQUksUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO2dCQUNqQixPQUFPLFFBQVEsRUFBRSxJQUFJLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQztZQUM1QyxDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxLQUFLLGdCQUFnQixDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0tBQ047SUFsQ0c7Ozs7O09BS0c7SUFDSCxJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsQ0FBQyxLQUFzQjtRQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDOzhHQXBCUSxXQUFXO2tIQUFYLFdBQVcsY0FGUixNQUFNOzsyRkFFVCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRG90Q01TUGFnZUFzc2V0LCBVVkVfTU9ERSB9IGZyb20gJ0Bkb3RjbXMvdHlwZXMnO1xuaW1wb3J0IHsgZ2V0VVZFU3RhdGUgfSBmcm9tICdAZG90Y21zL3V2ZSc7XG5pbXBvcnQgeyBERVZFTE9QTUVOVF9NT0RFLCBQUk9EVUNUSU9OX01PREUgfSBmcm9tICdAZG90Y21zL3V2ZS9pbnRlcm5hbCc7XG5cbmltcG9ydCB7IERvdENNU1BhZ2VTdG9yZSB9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBjb25zdCBFTVBUWV9ET1RDTVNfUEFHRV9TVE9SRTogRG90Q01TUGFnZVN0b3JlID0ge1xuICAgIHBhZ2U6IHt9IGFzIERvdENNU1BhZ2VBc3NldCxcbiAgICBjb21wb25lbnRzOiB7fSxcbiAgICBtb2RlOiBQUk9EVUNUSU9OX01PREVcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFRoaXMgc2VydmljZSBpcyByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgdGhlIHBhZ2UgY29udGV4dC5cbiAqIEBpbnRlcm5hbFxuICogQGF1dGhvciBkb3RDTVNcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBEb3RDTVNTdG9yZVxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERvdENNU1N0b3JlIHtcbiAgICBwcml2YXRlICRzdG9yZSA9IHNpZ25hbDxEb3RDTVNQYWdlU3RvcmU+KEVNUFRZX0RPVENNU19QQUdFX1NUT1JFKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBHZXQgdGhlIHN0b3JlXG4gICAgICogQHJlYWRvbmx5XG4gICAgICogQHR5cGUge0RvdENNU1BhZ2VTdG9yZX1cbiAgICAgKiBAbWVtYmVyb2YgRG90Q01TU3RvcmVcbiAgICAgKi9cbiAgICBnZXQgc3RvcmUoKTogRG90Q01TUGFnZVN0b3JlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuJHN0b3JlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFNldCB0aGUgc3RvcmVcbiAgICAgKiBAcGFyYW0ge0RvdENNU1BhZ2VTdG9yZX0gdmFsdWVcbiAgICAgKiBAbWVtYmVyb2YgRG90Q01TU3RvcmVcbiAgICAgKi9cbiAgICBzZXRTdG9yZShzdG9yZTogRG90Q01TUGFnZVN0b3JlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuJHN0b3JlLnNldChzdG9yZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEdldCBpZiB0aGUgY3VycmVudCBjb250ZXh0IGlzIGluIGRldmVsb3BtZW50IG1vZGVcbiAgICAgKiBAcmVhZG9ubHlcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKiBAbWVtYmVyb2YgRG90Q01TU3RvcmVcbiAgICAgKi9cbiAgICAkaXNEZXZNb2RlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCB1dmVTdGF0ZSA9IGdldFVWRVN0YXRlKCk7XG5cbiAgICAgICAgaWYgKHV2ZVN0YXRlPy5tb2RlKSB7XG4gICAgICAgICAgICByZXR1cm4gdXZlU3RhdGU/Lm1vZGUgPT09IFVWRV9NT0RFLkVESVQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy4kc3RvcmUoKT8ubW9kZSA9PT0gREVWRUxPUE1FTlRfTU9ERTtcbiAgICB9KTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './lib/deprecated/deprecated-api';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2RlcHJlY2F0ZWQvZGVwcmVjYXRlZC1hcGknO1xuIl19
|