@dotcms/angular 0.0.1-alpha.23 → 0.0.1-alpha.25

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.
@@ -1,6 +1,7 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
1
2
  import { ChangeDetectionStrategy, Component, DestroyRef, Input, inject } from '@angular/core';
2
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
- import { ActivatedRoute, Router } from '@angular/router';
4
+ import { ActivatedRoute } from '@angular/router';
4
5
  import { filter } from 'rxjs/operators';
5
6
  import { initEditor, isInsideEditor, updateNavigation } from '@dotcms/client';
6
7
  import { PageContextService } from '../../services/dotcms-context/page-context.service';
@@ -15,8 +16,8 @@ import * as i0 from "@angular/core";
15
16
  */
16
17
  export class DotcmsLayoutComponent {
17
18
  constructor() {
19
+ this.pageAsset = null;
18
20
  this.route = inject(ActivatedRoute);
19
- this.router = inject(Router);
20
21
  this.pageContextService = inject(PageContextService);
21
22
  this.destroyRef$ = inject(DestroyRef);
22
23
  }
@@ -25,31 +26,24 @@ export class DotcmsLayoutComponent {
25
26
  .pipe(takeUntilDestroyed(this.destroyRef$), filter(() => isInsideEditor()))
26
27
  .subscribe((urlSegments) => {
27
28
  const pathname = '/' + urlSegments.join('/');
28
- const config = {
29
- pathname,
30
- onReload: () => {
31
- // Reload the page when the user edit the page
32
- this.router.navigate([pathname], {
33
- onSameUrlNavigation: 'reload' // Force Angular to reload the page
34
- });
35
- }
36
- };
37
- initEditor(config);
29
+ initEditor({ pathname });
38
30
  updateNavigation(pathname || '/');
39
31
  });
40
32
  }
41
33
  ngOnChanges() {
42
34
  //Each time the layout changes, we need to update the context
43
- this.pageContextService.setContext(this.pageAsset, this.components);
35
+ if (this.pageAsset !== null) {
36
+ this.pageContextService.setContext(this.pageAsset, this.components);
37
+ }
44
38
  }
45
39
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: DotcmsLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
46
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: DotcmsLayoutComponent, isStandalone: true, selector: "dotcms-layout", inputs: { pageAsset: "pageAsset", components: "components" }, usesOnChanges: true, ngImport: i0, template: `@for (row of pageAsset.layout.body.rows; track $index) {
40
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: DotcmsLayoutComponent, isStandalone: true, selector: "dotcms-layout", inputs: { pageAsset: "pageAsset", components: "components" }, usesOnChanges: true, ngImport: i0, template: `@for (row of this.pageAsset?.layout?.body?.rows; track $index) {
47
41
  <dotcms-row [row]="row" />
48
42
  }`, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: RowComponent, selector: "dotcms-row", inputs: ["row"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
49
43
  }
50
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: DotcmsLayoutComponent, decorators: [{
51
45
  type: Component,
52
- args: [{ selector: 'dotcms-layout', standalone: true, imports: [RowComponent], template: `@for (row of pageAsset.layout.body.rows; track $index) {
46
+ args: [{ selector: 'dotcms-layout', standalone: true, imports: [RowComponent], template: `@for (row of this.pageAsset?.layout?.body?.rows; track $index) {
53
47
  <dotcms-row [row]="row" />
54
48
  }`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}\n"] }]
55
49
  }], propDecorators: { pageAsset: [{
@@ -59,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
59
53
  type: Input,
60
54
  args: [{ required: true }]
61
55
  }] } });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvbGF5b3V0L2RvdGNtcy1sYXlvdXQvZG90Y21zLWxheW91dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUk5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRXBEOzs7Ozs7R0FNRztBQVdILE1BQU0sT0FBTyxxQkFBcUI7SUFWbEM7UUFjcUIsVUFBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvQixXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hELGdCQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBNEJyRDtJQTFCRyxRQUFRO1FBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHO2FBQ1QsSUFBSSxDQUNELGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFDcEMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQ2pDO2FBQ0EsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDdkIsTUFBTSxRQUFRLEdBQUcsR0FBRyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0MsTUFBTSxNQUFNLEdBQUc7Z0JBQ1gsUUFBUTtnQkFDUixRQUFRLEVBQUUsR0FBRyxFQUFFO29CQUNYLDhDQUE4QztvQkFDOUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRTt3QkFDN0IsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLG1DQUFtQztxQkFDcEUsQ0FBQyxDQUFDO2dCQUNQLENBQUM7YUFDSixDQUFDO1lBQ0YsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25CLGdCQUFnQixDQUFDLFFBQVEsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxXQUFXO1FBQ1AsNkRBQTZEO1FBQzdELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEUsQ0FBQzs4R0FsQ1EscUJBQXFCO2tHQUFyQixxQkFBcUIsNEpBTnBCOztNQUVSLGdHQUhRLFlBQVk7OzJGQU9iLHFCQUFxQjtrQkFWakMsU0FBUzsrQkFDSSxlQUFlLGNBQ2IsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLFlBQ2I7O01BRVIsbUJBRWUsdUJBQXVCLENBQUMsTUFBTTs4QkFHcEIsU0FBUztzQkFBbkMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsVUFBVTtzQkFBcEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBEZXN0cm95UmVmLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBpbml0RWRpdG9yLCBpc0luc2lkZUVkaXRvciwgdXBkYXRlTmF2aWdhdGlvbiB9IGZyb20gJ0Bkb3RjbXMvY2xpZW50JztcblxuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudEVudGl0eSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBEb3RDTVNQYWdlQXNzZXQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZG90Y21zLm1vZGVsJztcbmltcG9ydCB7IFBhZ2VDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RvdGNtcy1jb250ZXh0L3BhZ2UtY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IFJvd0NvbXBvbmVudCB9IGZyb20gJy4uL3Jvdy9yb3cuY29tcG9uZW50JztcblxuLyoqXG4gKiBgRG90Y21zTGF5b3V0Q29tcG9uZW50YCBpcyBhIGNsYXNzIHRoYXQgcmVwcmVzZW50cyB0aGUgbGF5b3V0IGZvciBhIERvdENNUyBwYWdlLlxuICogIEl0IGluY2x1ZGVzIGEgYHBhZ2VBc3NldGAgcHJvcGVydHkgdGhhdCByZXByZXNlbnRzIHRoZSBEb3RDTVMgcGFnZSBhc3NldCBhbmQgYSBgY29tcG9uZW50c2AgcHJvcGVydHkgdGhhdCByZXByZXNlbnRzIHRoZSBkeW5hbWljIGNvbXBvbmVudHMgZm9yIHRoZSBwYWdlLlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBEb3RjbXNMYXlvdXRDb21wb25lbnRcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkb3RjbXMtbGF5b3V0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtSb3dDb21wb25lbnRdLFxuICAgIHRlbXBsYXRlOiBgQGZvciAocm93IG9mIHBhZ2VBc3NldC5sYXlvdXQuYm9keS5yb3dzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGRvdGNtcy1yb3cgW3Jvd109XCJyb3dcIiAvPlxuICAgIH1gLFxuICAgIHN0eWxlVXJsOiAnLi9kb3RjbXMtbGF5b3V0LmNvbXBvbmVudC5jc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERvdGNtc0xheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcGFnZUFzc2V0ITogRG90Q01TUGFnZUFzc2V0O1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGNvbXBvbmVudHMhOiBSZWNvcmQ8c3RyaW5nLCBEeW5hbWljQ29tcG9uZW50RW50aXR5PjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwYWdlQ29udGV4dFNlcnZpY2UgPSBpbmplY3QoUGFnZUNvbnRleHRTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYkID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMucm91dGUudXJsXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmJCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IGlzSW5zaWRlRWRpdG9yKCkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh1cmxTZWdtZW50cykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhdGhuYW1lID0gJy8nICsgdXJsU2VnbWVudHMuam9pbignLycpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIG9uUmVsb2FkOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBSZWxvYWQgdGhlIHBhZ2Ugd2hlbiB0aGUgdXNlciBlZGl0IHRoZSBwYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcGF0aG5hbWVdLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25TYW1lVXJsTmF2aWdhdGlvbjogJ3JlbG9hZCcgLy8gRm9yY2UgQW5ndWxhciB0byByZWxvYWQgdGhlIHBhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpbml0RWRpdG9yKGNvbmZpZyk7XG4gICAgICAgICAgICAgICAgdXBkYXRlTmF2aWdhdGlvbihwYXRobmFtZSB8fCAnLycpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoKSB7XG4gICAgICAgIC8vRWFjaCB0aW1lIHRoZSBsYXlvdXQgY2hhbmdlcywgd2UgbmVlZCB0byB1cGRhdGUgdGhlIGNvbnRleHRcbiAgICAgICAgdGhpcy5wYWdlQ29udGV4dFNlcnZpY2Uuc2V0Q29udGV4dCh0aGlzLnBhZ2VBc3NldCwgdGhpcy5jb21wb25lbnRzKTtcbiAgICB9XG59XG4iXX0=
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvbGF5b3V0L2RvdGNtcy1sYXlvdXQvZG90Y21zLWxheW91dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBRUwsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUk5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRXBEOzs7Ozs7R0FNRztBQVdILE1BQU0sT0FBTyxxQkFBcUI7SUFWbEM7UUFXK0IsY0FBUyxHQUEyQixJQUFJLENBQUM7UUFHbkQsVUFBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvQix1QkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNoRCxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQXNCckQ7SUFwQkcsUUFBUTtRQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRzthQUNULElBQUksQ0FDRCxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQ3BDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUNqQzthQUNBLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ3ZCLE1BQU0sUUFBUSxHQUFHLEdBQUcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRTdDLFVBQVUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDekIsZ0JBQWdCLENBQUMsUUFBUSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFdBQVc7UUFDUCw2REFBNkQ7UUFDN0QsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEUsQ0FBQztJQUNMLENBQUM7OEdBM0JRLHFCQUFxQjtrR0FBckIscUJBQXFCLDRKQU5wQjs7TUFFUixnR0FIUSxZQUFZOzsyRkFPYixxQkFBcUI7a0JBVmpDLFNBQVM7K0JBQ0ksZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiOztNQUVSLG1CQUVlLHVCQUF1QixDQUFDLE1BQU07OEJBR3BCLFNBQVM7c0JBQW5DLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNFLFVBQVU7c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRGVzdHJveVJlZixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IGluaXRFZGl0b3IsIGlzSW5zaWRlRWRpdG9yLCB1cGRhdGVOYXZpZ2F0aW9uIH0gZnJvbSAnQGRvdGNtcy9jbGllbnQnO1xuXG5pbXBvcnQgeyBEeW5hbWljQ29tcG9uZW50RW50aXR5IH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IERvdENNU1BhZ2VBc3NldCB9IGZyb20gJy4uLy4uL21vZGVscy9kb3RjbXMubW9kZWwnO1xuaW1wb3J0IHsgUGFnZUNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZG90Y21zLWNvbnRleHQvcGFnZS1jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUm93Q29tcG9uZW50IH0gZnJvbSAnLi4vcm93L3Jvdy5jb21wb25lbnQnO1xuXG4vKipcbiAqIGBEb3RjbXNMYXlvdXRDb21wb25lbnRgIGlzIGEgY2xhc3MgdGhhdCByZXByZXNlbnRzIHRoZSBsYXlvdXQgZm9yIGEgRG90Q01TIHBhZ2UuXG4gKiAgSXQgaW5jbHVkZXMgYSBgcGFnZUFzc2V0YCBwcm9wZXJ0eSB0aGF0IHJlcHJlc2VudHMgdGhlIERvdENNUyBwYWdlIGFzc2V0IGFuZCBhIGBjb21wb25lbnRzYCBwcm9wZXJ0eSB0aGF0IHJlcHJlc2VudHMgdGhlIGR5bmFtaWMgY29tcG9uZW50cyBmb3IgdGhlIHBhZ2UuXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIERvdGNtc0xheW91dENvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdGNtcy1sYXlvdXQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1Jvd0NvbXBvbmVudF0sXG4gICAgdGVtcGxhdGU6IGBAZm9yIChyb3cgb2YgdGhpcy5wYWdlQXNzZXQ/LmxheW91dD8uYm9keT8ucm93czsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIDxkb3RjbXMtcm93IFtyb3ddPVwicm93XCIgLz5cbiAgICB9YCxcbiAgICBzdHlsZVVybDogJy4vZG90Y21zLWxheW91dC5jb21wb25lbnQuY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEb3RjbXNMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHBhZ2VBc3NldDogRG90Q01TUGFnZUFzc2V0IHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgY29tcG9uZW50cyE6IFJlY29yZDxzdHJpbmcsIER5bmFtaWNDb21wb25lbnRFbnRpdHk+O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwYWdlQ29udGV4dFNlcnZpY2UgPSBpbmplY3QoUGFnZUNvbnRleHRTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYkID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMucm91dGUudXJsXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmJCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IGlzSW5zaWRlRWRpdG9yKCkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh1cmxTZWdtZW50cykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhdGhuYW1lID0gJy8nICsgdXJsU2VnbWVudHMuam9pbignLycpO1xuXG4gICAgICAgICAgICAgICAgaW5pdEVkaXRvcih7IHBhdGhuYW1lIH0pO1xuICAgICAgICAgICAgICAgIHVwZGF0ZU5hdmlnYXRpb24ocGF0aG5hbWUgfHwgJy8nKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICAvL0VhY2ggdGltZSB0aGUgbGF5b3V0IGNoYW5nZXMsIHdlIG5lZWQgdG8gdXBkYXRlIHRoZSBjb250ZXh0XG4gICAgICAgIGlmICh0aGlzLnBhZ2VBc3NldCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5wYWdlQ29udGV4dFNlcnZpY2Uuc2V0Q29udGV4dCh0aGlzLnBhZ2VBc3NldCwgdGhpcy5jb21wb25lbnRzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, Component, ChangeDetectionStrategy, Input, HostBinding, inject, signal, computed, DestroyRef } from '@angular/core';
3
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
- import { ActivatedRoute, Router } from '@angular/router';
4
+ import { ActivatedRoute } from '@angular/router';
5
5
  import { filter } from 'rxjs/operators';
6
6
  import { isInsideEditor, initEditor, updateNavigation } from '@dotcms/client';
7
7
  import { AsyncPipe, NgComponentOutlet } from '@angular/common';
@@ -295,6 +295,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
295
295
  args: [{ required: true }]
296
296
  }] } });
297
297
 
298
+ /* eslint-disable @typescript-eslint/no-explicit-any */
298
299
  /**
299
300
  * `DotcmsLayoutComponent` is a class that represents the layout for a DotCMS page.
300
301
  * It includes a `pageAsset` property that represents the DotCMS page asset and a `components` property that represents the dynamic components for the page.
@@ -304,8 +305,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
304
305
  */
305
306
  class DotcmsLayoutComponent {
306
307
  constructor() {
308
+ this.pageAsset = null;
307
309
  this.route = inject(ActivatedRoute);
308
- this.router = inject(Router);
309
310
  this.pageContextService = inject(PageContextService);
310
311
  this.destroyRef$ = inject(DestroyRef);
311
312
  }
@@ -314,31 +315,24 @@ class DotcmsLayoutComponent {
314
315
  .pipe(takeUntilDestroyed(this.destroyRef$), filter(() => isInsideEditor()))
315
316
  .subscribe((urlSegments) => {
316
317
  const pathname = '/' + urlSegments.join('/');
317
- const config = {
318
- pathname,
319
- onReload: () => {
320
- // Reload the page when the user edit the page
321
- this.router.navigate([pathname], {
322
- onSameUrlNavigation: 'reload' // Force Angular to reload the page
323
- });
324
- }
325
- };
326
- initEditor(config);
318
+ initEditor({ pathname });
327
319
  updateNavigation(pathname || '/');
328
320
  });
329
321
  }
330
322
  ngOnChanges() {
331
323
  //Each time the layout changes, we need to update the context
332
- this.pageContextService.setContext(this.pageAsset, this.components);
324
+ if (this.pageAsset !== null) {
325
+ this.pageContextService.setContext(this.pageAsset, this.components);
326
+ }
333
327
  }
334
328
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: DotcmsLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
335
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: DotcmsLayoutComponent, isStandalone: true, selector: "dotcms-layout", inputs: { pageAsset: "pageAsset", components: "components" }, usesOnChanges: true, ngImport: i0, template: `@for (row of pageAsset.layout.body.rows; track $index) {
329
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: DotcmsLayoutComponent, isStandalone: true, selector: "dotcms-layout", inputs: { pageAsset: "pageAsset", components: "components" }, usesOnChanges: true, ngImport: i0, template: `@for (row of this.pageAsset?.layout?.body?.rows; track $index) {
336
330
  <dotcms-row [row]="row" />
337
331
  }`, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: RowComponent, selector: "dotcms-row", inputs: ["row"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
338
332
  }
339
333
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: DotcmsLayoutComponent, decorators: [{
340
334
  type: Component,
341
- args: [{ selector: 'dotcms-layout', standalone: true, imports: [RowComponent], template: `@for (row of pageAsset.layout.body.rows; track $index) {
335
+ args: [{ selector: 'dotcms-layout', standalone: true, imports: [RowComponent], template: `@for (row of this.pageAsset?.layout?.body?.rows; track $index) {
342
336
  <dotcms-row [row]="row" />
343
337
  }`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}\n"] }]
344
338
  }], propDecorators: { pageAsset: [{
@@ -1 +1 @@
1
- {"version":3,"file":"dotcms-angular.mjs","sources":["../../../../../libs/sdk/angular/src/lib/services/dotcms-context/page-context.service.ts","../../../../../libs/sdk/angular/src/lib/utils/index.ts","../../../../../libs/sdk/angular/src/lib/components/no-component/no-component.component.ts","../../../../../libs/sdk/angular/src/lib/layout/contentlet/contentlet.component.ts","../../../../../libs/sdk/angular/src/lib/layout/container/container.component.ts","../../../../../libs/sdk/angular/src/lib/layout/container/container.component.html","../../../../../libs/sdk/angular/src/lib/layout/column/column.component.ts","../../../../../libs/sdk/angular/src/lib/layout/row/row.component.ts","../../../../../libs/sdk/angular/src/lib/layout/dotcms-layout/dotcms-layout.component.ts","../../../../../libs/sdk/angular/src/lib/models/dotcms.model.ts","../../../../../libs/sdk/angular/src/lib/models/index.ts","../../../../../libs/sdk/angular/src/dotcms-angular.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { Injectable } from '@angular/core';\n\nimport { isInsideEditor } from '@dotcms/client';\n\nimport { DotCMSPageComponent, DotCMSPageContext } from '../../models';\nimport { DotCMSPageAsset } from '../../models/dotcms.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PageContextService {\n private pageContext: DotCMSPageContext | null = null;\n\n get pageContextValue(): DotCMSPageContext {\n return this.pageContext as DotCMSPageContext;\n }\n\n /**\n * Set the context\n *\n * @protected\n * @param {DotCMSPageAsset} value\n * @memberof DotcmsContextService\n */\n setContext(pageAsset: DotCMSPageAsset, components: DotCMSPageComponent) {\n this.pageContext = {\n components,\n pageAsset,\n isInsideEditor: isInsideEditor()\n };\n }\n}\n","import { DotCMSContainer, DotCMSPageAssetContainer } from '../models/dotcms.model';\n\n//Changed the type, to avoid SQ issue.\n//This should be put inside a lib\nconst endClassMap: Record<number, string | null> = {\n 1: 'col-end-1',\n 2: 'col-end-2',\n 3: 'col-end-3',\n 4: 'col-end-4',\n 5: 'col-end-5',\n 6: 'col-end-6',\n 7: 'col-end-7',\n 8: 'col-end-8',\n 9: 'col-end-9',\n 10: 'col-end-10',\n 11: 'col-end-11',\n 12: 'col-end-12',\n 13: 'col-end-13'\n};\n\n//Changed the type, to avoid SQ issue.\n//This should be put inside a lib\nconst startClassMap: Record<number, string | null> = {\n 1: 'col-start-1',\n 2: 'col-start-2',\n 3: 'col-start-3',\n 4: 'col-start-4',\n 5: 'col-start-5',\n 6: 'col-start-6',\n 7: 'col-start-7',\n 8: 'col-start-8',\n 9: 'col-start-9',\n 10: 'col-start-10',\n 11: 'col-start-11',\n 12: 'col-start-12'\n};\n\nexport const getContainersData = (\n containers: DotCMSPageAssetContainer,\n containerRef: DotCMSContainer\n) => {\n const { identifier, uuid } = containerRef;\n\n const { containerStructures, container } = containers[identifier];\n\n const { variantId } = container?.parentPermissionable || {};\n\n const acceptTypes: string = containerStructures\n .map((structure) => structure.contentTypeVar)\n .join(',');\n\n const contentlets = containers[identifier].contentlets[`uuid-${uuid}`];\n\n return {\n ...containers[identifier].container,\n acceptTypes,\n contentlets,\n variantId\n };\n};\n\nexport const getPositionStyleClasses = (start: number, end: number) => {\n const startClass = startClassMap[start];\n const endClass = endClassMap[end];\n\n return {\n startClass,\n endClass\n };\n};\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\nimport { DotCMSContentlet } from '../../models';\n\n/**\n * This is part of the Angular SDK.\n * This is a component for the `NoComponentComponent` component.\n */\n@Component({\n selector: 'dotcms-no-component',\n standalone: true,\n template: `No Component for {{ contentlet.contentType }}`,\n styleUrl: './no-component.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NoComponent {\n @Input() contentlet!: DotCMSContentlet;\n @HostBinding('attr.data-testid') testId = 'no-component';\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges } from '@angular/core';\n\nimport { DotCMSContentlet } from '../../models';\n\n@Component({\n selector: 'dotcms-contentlet-wrapper',\n standalone: true,\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ContentletComponent implements OnChanges {\n @Input({ required: true }) contentlet!: DotCMSContentlet;\n @Input() container!: string;\n\n @HostBinding('attr.data-dot-identifier') identifier: string | null = null;\n @HostBinding('attr.data-dot-basetype') baseType: string | null = null;\n @HostBinding('attr.data-dot-title') title: string | null = null;\n @HostBinding('attr.data-dot-inode') inode: string | null = null;\n @HostBinding('attr.data-dot-type') dotType: string | null = null;\n @HostBinding('attr.data-dot-container') dotContainer: string | null = null;\n @HostBinding('attr.data-dot-on-number-of-pages') numberOfPages: string | null = null;\n @HostBinding('attr.data-dot-object') dotContent: string | null = null;\n\n ngOnChanges() {\n this.identifier = this.contentlet.identifier;\n this.baseType = this.contentlet.baseType;\n this.title = this.contentlet.title;\n this.inode = this.contentlet.inode;\n this.dotType = this.contentlet.contentType;\n this.dotContainer = this.container;\n this.numberOfPages = this.contentlet['onNumberOfPages'];\n this.dotContent = 'contentlet';\n }\n}\n","import { AsyncPipe, NgComponentOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n OnChanges,\n computed,\n inject,\n signal\n} from '@angular/core';\n\nimport { NoComponent } from '../../components/no-component/no-component.component';\nimport { DynamicComponentEntity } from '../../models';\nimport { DotCMSContainer, DotCMSContentlet } from '../../models/dotcms.model';\nimport { PageContextService } from '../../services/dotcms-context/page-context.service';\nimport { getContainersData } from '../../utils';\nimport { ContentletComponent } from '../contentlet/contentlet.component';\n\ninterface DotContainer {\n acceptTypes: string;\n identifier: string;\n maxContentlets: number;\n uuid: string;\n variantId?: string;\n}\n\n@Component({\n selector: 'dotcms-container',\n standalone: true,\n imports: [AsyncPipe, NgComponentOutlet, NoComponent, ContentletComponent],\n templateUrl: './container.component.html',\n styleUrl: './container.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ContainerComponent implements OnChanges {\n @Input({ required: true }) container!: DotCMSContainer;\n\n private readonly pageContextService: PageContextService = inject(PageContextService);\n protected readonly NoComponent = NoComponent;\n protected readonly $isInsideEditor = signal<boolean>(false);\n\n protected componentsMap!: Record<string, DynamicComponentEntity>;\n protected $contentlets = signal<DotCMSContentlet[]>([]);\n protected $dotContainer = signal<DotContainer | null>(null);\n protected $dotContainerAsString = computed(() => JSON.stringify(this.$dotContainer()));\n\n @HostBinding('attr.data-dot-accept-types') acceptTypes: string | null = null;\n @HostBinding('attr.data-dot-identifier') identifier: string | null = null;\n @HostBinding('attr.data-max-contentlets') maxContentlets: number | null = null;\n @HostBinding('attr.data-dot-uuid') uuid: string | null = null;\n @HostBinding('class') class: string | null = null;\n @HostBinding('attr.data-dot-object') dotObject: string | null = null;\n @HostBinding('attr.data-testid') testId = 'dot-container';\n\n ngOnChanges() {\n const {\n pageAsset: { containers },\n components,\n isInsideEditor\n } = this.pageContextService.pageContextValue;\n const { acceptTypes, maxContentlets, variantId, path, contentlets } = getContainersData(\n containers,\n this.container\n );\n const { identifier, uuid } = this.container;\n\n this.componentsMap = components;\n\n this.$isInsideEditor.set(isInsideEditor);\n this.$contentlets.set(contentlets);\n this.$dotContainer.set({\n identifier: path ?? identifier,\n acceptTypes,\n maxContentlets,\n variantId,\n uuid\n });\n\n if (this.$isInsideEditor()) {\n this.acceptTypes = acceptTypes;\n this.identifier = identifier;\n this.maxContentlets = maxContentlets;\n this.uuid = uuid;\n this.class = this.$contentlets().length ? null : 'empty-container';\n this.dotObject = 'container';\n }\n }\n}\n","@if ($isInsideEditor()) {\n @if ($contentlets().length) {\n @for (contentlet of $contentlets(); track $index) {\n <dotcms-contentlet-wrapper\n [contentlet]=\"contentlet\"\n [container]=\"$dotContainerAsString()\">\n <ng-container\n *ngComponentOutlet=\"\n (componentsMap[contentlet.contentType] || componentsMap['CustomNoComponent']\n | async) || NoComponent;\n inputs: { contentlet }\n \" />\n </dotcms-contentlet-wrapper>\n }\n } @else {\n This container is empty.\n }\n} @else {\n @for (contentlet of $contentlets(); track $index) {\n <ng-container\n *ngComponentOutlet=\"\n componentsMap[contentlet.contentType] | async;\n inputs: { contentlet }\n \" />\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnInit } from '@angular/core';\n\nimport { DotPageAssetLayoutColumn } from '../../models';\nimport { getPositionStyleClasses } from '../../utils';\nimport { ContainerComponent } from '../container/container.component';\n\n@Component({\n selector: 'dotcms-column',\n standalone: true,\n imports: [ContainerComponent],\n template: `\n @for (container of column.containers; track $index) {\n <dotcms-container [container]=\"container\" />\n }\n `,\n styleUrl: './column.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ColumnComponent implements OnInit {\n @Input() column!: DotPageAssetLayoutColumn;\n @HostBinding('class') containerClasses = '';\n\n ngOnInit() {\n const { startClass, endClass } = getPositionStyleClasses(\n this.column.leftOffset,\n this.column.width + this.column.leftOffset\n );\n this.containerClasses = `${startClass} ${endClass}`;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { DotPageAssetLayoutRow } from '../../models';\nimport { ColumnComponent } from '../column/column.component';\n\n@Component({\n selector: 'dotcms-row',\n standalone: true,\n imports: [ColumnComponent],\n template: `@for (column of row.columns; track $index) {\n <dotcms-column [column]=\"column\" />\n }`,\n styleUrl: './row.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RowComponent {\n @Input({ required: true }) row!: DotPageAssetLayoutRow;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Input,\n OnInit,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { filter } from 'rxjs/operators';\n\nimport { initEditor, isInsideEditor, updateNavigation } from '@dotcms/client';\n\nimport { DynamicComponentEntity } from '../../models';\nimport { DotCMSPageAsset } from '../../models/dotcms.model';\nimport { PageContextService } from '../../services/dotcms-context/page-context.service';\nimport { RowComponent } from '../row/row.component';\n\n/**\n * `DotcmsLayoutComponent` is a class that represents the layout for a DotCMS page.\n * It includes a `pageAsset` property that represents the DotCMS page asset and a `components` property that represents the dynamic components for the page.\n *\n * @export\n * @class DotcmsLayoutComponent\n */\n@Component({\n selector: 'dotcms-layout',\n standalone: true,\n imports: [RowComponent],\n template: `@for (row of pageAsset.layout.body.rows; track $index) {\n <dotcms-row [row]=\"row\" />\n }`,\n styleUrl: './dotcms-layout.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DotcmsLayoutComponent implements OnInit {\n @Input({ required: true }) pageAsset!: DotCMSPageAsset;\n @Input({ required: true }) components!: Record<string, DynamicComponentEntity>;\n\n private readonly route = inject(ActivatedRoute);\n private readonly router = inject(Router);\n private readonly pageContextService = inject(PageContextService);\n private readonly destroyRef$ = inject(DestroyRef);\n\n ngOnInit() {\n this.route.url\n .pipe(\n takeUntilDestroyed(this.destroyRef$),\n filter(() => isInsideEditor())\n )\n .subscribe((urlSegments) => {\n const pathname = '/' + urlSegments.join('/');\n const config = {\n pathname,\n onReload: () => {\n // Reload the page when the user edit the page\n this.router.navigate([pathname], {\n onSameUrlNavigation: 'reload' // Force Angular to reload the page\n });\n }\n };\n initEditor(config);\n updateNavigation(pathname || '/');\n });\n }\n\n ngOnChanges() {\n //Each time the layout changes, we need to update the context\n this.pageContextService.setContext(this.pageAsset, this.components);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport interface DotCMSPageAsset {\n canCreateTemplate: boolean;\n containers: DotCMSPageAssetContainer;\n layout: DotCMSLayout;\n page: DotCMSPage;\n site: DotCMSSite;\n template: DotCMSTemplate;\n viewAs: DotCMSViewAs;\n vanityUrl?: {\n pattern: string;\n vanityUrlId: string;\n url: string;\n siteId: string;\n languageId: number;\n forwardTo: string;\n response: number;\n order: number;\n temporaryRedirect: boolean;\n permanentRedirect: boolean;\n forward: boolean;\n };\n}\n\nexport interface DotPageAssetLayoutRow {\n identifier: number;\n value?: string;\n id?: string;\n columns: DotPageAssetLayoutColumn[];\n styleClass?: string;\n}\n\nexport interface DotPageAssetLayoutColumn {\n preview: boolean;\n containers: DotCMSContainer[];\n widthPercent: number;\n width: number;\n leftOffset: number;\n left: number;\n styleClass?: string;\n}\n\nexport interface DotCMSPageAssetContainer {\n [key: string]: {\n container: DotCMSContainer;\n containerStructures: DotCMSContainerStructure[];\n contentlets: {\n [key: string]: DotCMSContentlet[];\n };\n };\n}\n\nexport interface DotCMSContainer {\n identifier: string;\n uuid: string;\n iDate: number;\n type: string;\n owner?: string;\n inode: string;\n source: string;\n title: string;\n friendlyName: string;\n modDate: number;\n modUser: string;\n sortOrder: number;\n showOnMenu: boolean;\n code?: string;\n maxContentlets: number;\n useDiv: boolean;\n sortContentletsBy?: string;\n preLoop: string;\n postLoop: string;\n staticify: boolean;\n luceneQuery?: string;\n notes: string;\n languageId?: number;\n path?: string;\n live: boolean;\n locked: boolean;\n working: boolean;\n deleted: boolean;\n name: string;\n archived: boolean;\n permissionId: string;\n versionId: string;\n versionType: string;\n permissionType: string;\n categoryId: string;\n idate: number;\n new: boolean;\n acceptTypes: string;\n contentlets: DotCMSContentlet[];\n parentPermissionable: DotCMSSiteParentPermissionable;\n}\n\nexport interface DotCMSContentlet {\n archived: boolean;\n baseType: string;\n deleted?: boolean;\n binary?: string;\n binaryContentAsset?: string;\n binaryVersion?: string;\n contentType: string;\n file?: string;\n folder: string;\n hasLiveVersion?: boolean;\n hasTitleImage: boolean;\n host: string;\n hostName: string;\n identifier: string;\n inode: string;\n image?: string;\n languageId: number;\n language?: string;\n live: boolean;\n locked: boolean;\n mimeType?: string;\n modDate: string;\n modUser: string;\n modUserName: string;\n owner: string;\n sortOrder: number;\n stInode: string;\n title: string;\n titleImage: string;\n text?: string;\n url: string;\n working: boolean;\n body?: string;\n contentTypeIcon?: string;\n variant?: string;\n __icon__?: string;\n [key: string]: any; // This is a catch-all for any other custom properties that might be on the contentlet.\n}\n\nexport interface DotcmsNavigationItem {\n code?: any;\n folder: string;\n children?: DotcmsNavigationItem[];\n host: string;\n languageId: number;\n href: string;\n title: string;\n type: string;\n hash: number;\n target: string;\n order: number;\n}\n\ninterface DotCMSTemplate {\n iDate: number;\n type: string;\n owner: string;\n inode: string;\n identifier: string;\n source: string;\n title: string;\n friendlyName: string;\n modDate: number;\n modUser: string;\n sortOrder: number;\n showOnMenu: boolean;\n image: string;\n drawed: boolean;\n drawedBody: string;\n theme: string;\n anonymous: boolean;\n template: boolean;\n name: string;\n live: boolean;\n archived: boolean;\n locked: boolean;\n working: boolean;\n permissionId: string;\n versionId: string;\n versionType: string;\n deleted: boolean;\n permissionType: string;\n categoryId: string;\n idate: number;\n new: boolean;\n canEdit: boolean;\n}\n\ninterface DotCMSPage {\n template: string;\n modDate: number;\n metadata: string;\n cachettl: string;\n pageURI: string;\n title: string;\n type: string;\n showOnMenu: string;\n httpsRequired: boolean;\n inode: string;\n disabledWYSIWYG: any[];\n seokeywords: string;\n host: string;\n lastReview: number;\n working: boolean;\n locked: boolean;\n stInode: string;\n friendlyName: string;\n live: boolean;\n owner: string;\n identifier: string;\n nullProperties: any[];\n friendlyname: string;\n pagemetadata: string;\n languageId: number;\n url: string;\n seodescription: string;\n modUserName: string;\n folder: string;\n deleted: boolean;\n sortOrder: number;\n modUser: string;\n pageUrl: string;\n workingInode: string;\n shortyWorking: string;\n canEdit: boolean;\n canRead: boolean;\n canLock: boolean;\n lockedOn: number;\n lockedBy: string;\n lockedByName: string;\n liveInode: string;\n shortyLive: string;\n}\n\ninterface DotCMSViewAs {\n language: {\n id: number;\n languageCode: string;\n countryCode: string;\n language: string;\n country: string;\n };\n mode: string;\n}\n\ninterface DotCMSLayout {\n pageWidth: string;\n width: string;\n layout: string;\n title: string;\n header: boolean;\n footer: boolean;\n body: DotPageAssetLayoutBody;\n sidebar: DotPageAssetLayoutSidebar;\n}\n\ninterface DotCMSContainerStructure {\n id: string;\n structureId: string;\n containerInode: string;\n containerId: string;\n code: string;\n contentTypeVar: string;\n}\n\ninterface DotPageAssetLayoutSidebar {\n preview: boolean;\n containers: DotCMSContainer[];\n location: string;\n widthPercent: number;\n width: string;\n}\n\ninterface DotPageAssetLayoutBody {\n rows: DotPageAssetLayoutRow[];\n}\n\ninterface DotCMSSite {\n lowIndexPriority: boolean;\n name: string;\n default: boolean;\n aliases: string;\n parent: boolean;\n tagStorage: string;\n systemHost: boolean;\n inode: string;\n versionType: string;\n structureInode: string;\n hostname: string;\n hostThumbnail?: any;\n owner: string;\n permissionId: string;\n permissionType: string;\n type: string;\n identifier: string;\n modDate: number;\n host: string;\n live: boolean;\n indexPolicy: string;\n categoryId: string;\n actionId?: any;\n new: boolean;\n archived: boolean;\n locked: boolean;\n disabledWysiwyg: any[];\n modUser: string;\n working: boolean;\n titleImage: {\n present: boolean;\n };\n folder: string;\n htmlpage: boolean;\n fileAsset: boolean;\n vanityUrl: boolean;\n keyValue: boolean;\n structure?: DotCMSSiteStructure;\n title: string;\n languageId: number;\n indexPolicyDependencies: string;\n contentTypeId: string;\n versionId: string;\n lastReview: number;\n nextReview?: any;\n reviewInterval?: any;\n sortOrder: number;\n contentType: DotCMSSiteContentType;\n}\n\ninterface DotCMSSiteContentType {\n owner?: any;\n parentPermissionable: DotCMSSiteParentPermissionable;\n permissionId: string;\n permissionType: string;\n}\n\nexport interface DotCMSSiteParentPermissionable {\n Inode: string;\n Identifier: string;\n permissionByIdentifier: boolean;\n type: string;\n owner?: any;\n identifier: string;\n permissionId: string;\n parentPermissionable?: any;\n permissionType: string;\n inode: string;\n childrenPermissionable?: any;\n variantId?: string;\n}\n\ninterface DotCMSSiteStructure {\n iDate: number;\n type: string;\n owner?: any;\n inode: string;\n identifier: string;\n name: string;\n description: string;\n defaultStructure: boolean;\n reviewInterval?: any;\n reviewerRole?: any;\n pagedetail?: any;\n structureType: number;\n fixed: boolean;\n system: boolean;\n velocityVarName: string;\n urlMapPattern?: any;\n host: string;\n folder: string;\n publishDateVar?: any;\n expireDateVar?: any;\n modDate: number;\n fields: DotCMSSiteField[];\n widget: boolean;\n detailPage?: any;\n fieldsBySortOrder: DotCMSSiteField[];\n form: boolean;\n htmlpageAsset: boolean;\n content: boolean;\n fileAsset: boolean;\n persona: boolean;\n permissionId: string;\n permissionType: string;\n live: boolean;\n categoryId: string;\n idate: number;\n new: boolean;\n archived: boolean;\n locked: boolean;\n modUser: string;\n working: boolean;\n title: string;\n versionId: string;\n versionType: string;\n}\n\ninterface DotCMSSiteField {\n iDate: number;\n type: string;\n owner?: any;\n inode: string;\n identifier: string;\n structureInode: string;\n fieldName: string;\n fieldType: string;\n fieldRelationType?: any;\n fieldContentlet: string;\n required: boolean;\n velocityVarName: string;\n sortOrder: number;\n values?: any;\n regexCheck?: any;\n hint?: any;\n defaultValue?: any;\n indexed: boolean;\n listed: boolean;\n fixed: boolean;\n readOnly: boolean;\n searchable: boolean;\n unique: boolean;\n modDate: number;\n dataType: string;\n live: boolean;\n categoryId: string;\n idate: number;\n new: boolean;\n archived: boolean;\n locked: boolean;\n modUser: string;\n working: boolean;\n permissionId: string;\n parentPermissionable?: any;\n permissionType: string;\n title: string;\n versionId: string;\n versionType: string;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nexport * from './dotcms.model';\n\nimport { Type } from '@angular/core';\n\nimport { DotCMSPageAsset } from './dotcms.model';\n\nexport type DynamicComponentEntity = Promise<Type<any>>;\n\nexport interface DotCMSPageContext {\n pageAsset: DotCMSPageAsset;\n components: DotCMSPageComponent;\n isInsideEditor: boolean;\n}\n\nexport type DotCMSPageComponent = Record<string, DynamicComponentEntity>;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dotcms-angular.mjs","sources":["../../../../../libs/sdk/angular/src/lib/services/dotcms-context/page-context.service.ts","../../../../../libs/sdk/angular/src/lib/utils/index.ts","../../../../../libs/sdk/angular/src/lib/components/no-component/no-component.component.ts","../../../../../libs/sdk/angular/src/lib/layout/contentlet/contentlet.component.ts","../../../../../libs/sdk/angular/src/lib/layout/container/container.component.ts","../../../../../libs/sdk/angular/src/lib/layout/container/container.component.html","../../../../../libs/sdk/angular/src/lib/layout/column/column.component.ts","../../../../../libs/sdk/angular/src/lib/layout/row/row.component.ts","../../../../../libs/sdk/angular/src/lib/layout/dotcms-layout/dotcms-layout.component.ts","../../../../../libs/sdk/angular/src/lib/models/dotcms.model.ts","../../../../../libs/sdk/angular/src/lib/models/index.ts","../../../../../libs/sdk/angular/src/dotcms-angular.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { Injectable } from '@angular/core';\n\nimport { isInsideEditor } from '@dotcms/client';\n\nimport { DotCMSPageComponent, DotCMSPageContext } from '../../models';\nimport { DotCMSPageAsset } from '../../models/dotcms.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PageContextService {\n private pageContext: DotCMSPageContext | null = null;\n\n get pageContextValue(): DotCMSPageContext {\n return this.pageContext as DotCMSPageContext;\n }\n\n /**\n * Set the context\n *\n * @protected\n * @param {DotCMSPageAsset} value\n * @memberof DotcmsContextService\n */\n setContext(pageAsset: DotCMSPageAsset, components: DotCMSPageComponent) {\n this.pageContext = {\n components,\n pageAsset,\n isInsideEditor: isInsideEditor()\n };\n }\n}\n","import { DotCMSContainer, DotCMSPageAssetContainer } from '../models/dotcms.model';\n\n//Changed the type, to avoid SQ issue.\n//This should be put inside a lib\nconst endClassMap: Record<number, string | null> = {\n 1: 'col-end-1',\n 2: 'col-end-2',\n 3: 'col-end-3',\n 4: 'col-end-4',\n 5: 'col-end-5',\n 6: 'col-end-6',\n 7: 'col-end-7',\n 8: 'col-end-8',\n 9: 'col-end-9',\n 10: 'col-end-10',\n 11: 'col-end-11',\n 12: 'col-end-12',\n 13: 'col-end-13'\n};\n\n//Changed the type, to avoid SQ issue.\n//This should be put inside a lib\nconst startClassMap: Record<number, string | null> = {\n 1: 'col-start-1',\n 2: 'col-start-2',\n 3: 'col-start-3',\n 4: 'col-start-4',\n 5: 'col-start-5',\n 6: 'col-start-6',\n 7: 'col-start-7',\n 8: 'col-start-8',\n 9: 'col-start-9',\n 10: 'col-start-10',\n 11: 'col-start-11',\n 12: 'col-start-12'\n};\n\nexport const getContainersData = (\n containers: DotCMSPageAssetContainer,\n containerRef: DotCMSContainer\n) => {\n const { identifier, uuid } = containerRef;\n\n const { containerStructures, container } = containers[identifier];\n\n const { variantId } = container?.parentPermissionable || {};\n\n const acceptTypes: string = containerStructures\n .map((structure) => structure.contentTypeVar)\n .join(',');\n\n const contentlets = containers[identifier].contentlets[`uuid-${uuid}`];\n\n return {\n ...containers[identifier].container,\n acceptTypes,\n contentlets,\n variantId\n };\n};\n\nexport const getPositionStyleClasses = (start: number, end: number) => {\n const startClass = startClassMap[start];\n const endClass = endClassMap[end];\n\n return {\n startClass,\n endClass\n };\n};\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\nimport { DotCMSContentlet } from '../../models';\n\n/**\n * This is part of the Angular SDK.\n * This is a component for the `NoComponentComponent` component.\n */\n@Component({\n selector: 'dotcms-no-component',\n standalone: true,\n template: `No Component for {{ contentlet.contentType }}`,\n styleUrl: './no-component.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NoComponent {\n @Input() contentlet!: DotCMSContentlet;\n @HostBinding('attr.data-testid') testId = 'no-component';\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges } from '@angular/core';\n\nimport { DotCMSContentlet } from '../../models';\n\n@Component({\n selector: 'dotcms-contentlet-wrapper',\n standalone: true,\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ContentletComponent implements OnChanges {\n @Input({ required: true }) contentlet!: DotCMSContentlet;\n @Input() container!: string;\n\n @HostBinding('attr.data-dot-identifier') identifier: string | null = null;\n @HostBinding('attr.data-dot-basetype') baseType: string | null = null;\n @HostBinding('attr.data-dot-title') title: string | null = null;\n @HostBinding('attr.data-dot-inode') inode: string | null = null;\n @HostBinding('attr.data-dot-type') dotType: string | null = null;\n @HostBinding('attr.data-dot-container') dotContainer: string | null = null;\n @HostBinding('attr.data-dot-on-number-of-pages') numberOfPages: string | null = null;\n @HostBinding('attr.data-dot-object') dotContent: string | null = null;\n\n ngOnChanges() {\n this.identifier = this.contentlet.identifier;\n this.baseType = this.contentlet.baseType;\n this.title = this.contentlet.title;\n this.inode = this.contentlet.inode;\n this.dotType = this.contentlet.contentType;\n this.dotContainer = this.container;\n this.numberOfPages = this.contentlet['onNumberOfPages'];\n this.dotContent = 'contentlet';\n }\n}\n","import { AsyncPipe, NgComponentOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n OnChanges,\n computed,\n inject,\n signal\n} from '@angular/core';\n\nimport { NoComponent } from '../../components/no-component/no-component.component';\nimport { DynamicComponentEntity } from '../../models';\nimport { DotCMSContainer, DotCMSContentlet } from '../../models/dotcms.model';\nimport { PageContextService } from '../../services/dotcms-context/page-context.service';\nimport { getContainersData } from '../../utils';\nimport { ContentletComponent } from '../contentlet/contentlet.component';\n\ninterface DotContainer {\n acceptTypes: string;\n identifier: string;\n maxContentlets: number;\n uuid: string;\n variantId?: string;\n}\n\n@Component({\n selector: 'dotcms-container',\n standalone: true,\n imports: [AsyncPipe, NgComponentOutlet, NoComponent, ContentletComponent],\n templateUrl: './container.component.html',\n styleUrl: './container.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ContainerComponent implements OnChanges {\n @Input({ required: true }) container!: DotCMSContainer;\n\n private readonly pageContextService: PageContextService = inject(PageContextService);\n protected readonly NoComponent = NoComponent;\n protected readonly $isInsideEditor = signal<boolean>(false);\n\n protected componentsMap!: Record<string, DynamicComponentEntity>;\n protected $contentlets = signal<DotCMSContentlet[]>([]);\n protected $dotContainer = signal<DotContainer | null>(null);\n protected $dotContainerAsString = computed(() => JSON.stringify(this.$dotContainer()));\n\n @HostBinding('attr.data-dot-accept-types') acceptTypes: string | null = null;\n @HostBinding('attr.data-dot-identifier') identifier: string | null = null;\n @HostBinding('attr.data-max-contentlets') maxContentlets: number | null = null;\n @HostBinding('attr.data-dot-uuid') uuid: string | null = null;\n @HostBinding('class') class: string | null = null;\n @HostBinding('attr.data-dot-object') dotObject: string | null = null;\n @HostBinding('attr.data-testid') testId = 'dot-container';\n\n ngOnChanges() {\n const {\n pageAsset: { containers },\n components,\n isInsideEditor\n } = this.pageContextService.pageContextValue;\n const { acceptTypes, maxContentlets, variantId, path, contentlets } = getContainersData(\n containers,\n this.container\n );\n const { identifier, uuid } = this.container;\n\n this.componentsMap = components;\n\n this.$isInsideEditor.set(isInsideEditor);\n this.$contentlets.set(contentlets);\n this.$dotContainer.set({\n identifier: path ?? identifier,\n acceptTypes,\n maxContentlets,\n variantId,\n uuid\n });\n\n if (this.$isInsideEditor()) {\n this.acceptTypes = acceptTypes;\n this.identifier = identifier;\n this.maxContentlets = maxContentlets;\n this.uuid = uuid;\n this.class = this.$contentlets().length ? null : 'empty-container';\n this.dotObject = 'container';\n }\n }\n}\n","@if ($isInsideEditor()) {\n @if ($contentlets().length) {\n @for (contentlet of $contentlets(); track $index) {\n <dotcms-contentlet-wrapper\n [contentlet]=\"contentlet\"\n [container]=\"$dotContainerAsString()\">\n <ng-container\n *ngComponentOutlet=\"\n (componentsMap[contentlet.contentType] || componentsMap['CustomNoComponent']\n | async) || NoComponent;\n inputs: { contentlet }\n \" />\n </dotcms-contentlet-wrapper>\n }\n } @else {\n This container is empty.\n }\n} @else {\n @for (contentlet of $contentlets(); track $index) {\n <ng-container\n *ngComponentOutlet=\"\n componentsMap[contentlet.contentType] | async;\n inputs: { contentlet }\n \" />\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnInit } from '@angular/core';\n\nimport { DotPageAssetLayoutColumn } from '../../models';\nimport { getPositionStyleClasses } from '../../utils';\nimport { ContainerComponent } from '../container/container.component';\n\n@Component({\n selector: 'dotcms-column',\n standalone: true,\n imports: [ContainerComponent],\n template: `\n @for (container of column.containers; track $index) {\n <dotcms-container [container]=\"container\" />\n }\n `,\n styleUrl: './column.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ColumnComponent implements OnInit {\n @Input() column!: DotPageAssetLayoutColumn;\n @HostBinding('class') containerClasses = '';\n\n ngOnInit() {\n const { startClass, endClass } = getPositionStyleClasses(\n this.column.leftOffset,\n this.column.width + this.column.leftOffset\n );\n this.containerClasses = `${startClass} ${endClass}`;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { DotPageAssetLayoutRow } from '../../models';\nimport { ColumnComponent } from '../column/column.component';\n\n@Component({\n selector: 'dotcms-row',\n standalone: true,\n imports: [ColumnComponent],\n template: `@for (column of row.columns; track $index) {\n <dotcms-column [column]=\"column\" />\n }`,\n styleUrl: './row.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RowComponent {\n @Input({ required: true }) row!: DotPageAssetLayoutRow;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Input,\n OnInit,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { filter } from 'rxjs/operators';\n\nimport { initEditor, isInsideEditor, updateNavigation } from '@dotcms/client';\n\nimport { DynamicComponentEntity } from '../../models';\nimport { DotCMSPageAsset } from '../../models/dotcms.model';\nimport { PageContextService } from '../../services/dotcms-context/page-context.service';\nimport { RowComponent } from '../row/row.component';\n\n/**\n * `DotcmsLayoutComponent` is a class that represents the layout for a DotCMS page.\n * It includes a `pageAsset` property that represents the DotCMS page asset and a `components` property that represents the dynamic components for the page.\n *\n * @export\n * @class DotcmsLayoutComponent\n */\n@Component({\n selector: 'dotcms-layout',\n standalone: true,\n imports: [RowComponent],\n template: `@for (row of this.pageAsset?.layout?.body?.rows; track $index) {\n <dotcms-row [row]=\"row\" />\n }`,\n styleUrl: './dotcms-layout.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DotcmsLayoutComponent implements OnInit {\n @Input({ required: true }) pageAsset: DotCMSPageAsset | null = null;\n @Input({ required: true }) components!: Record<string, DynamicComponentEntity>;\n\n private readonly route = inject(ActivatedRoute);\n private readonly pageContextService = inject(PageContextService);\n private readonly destroyRef$ = inject(DestroyRef);\n\n ngOnInit() {\n this.route.url\n .pipe(\n takeUntilDestroyed(this.destroyRef$),\n filter(() => isInsideEditor())\n )\n .subscribe((urlSegments) => {\n const pathname = '/' + urlSegments.join('/');\n\n initEditor({ pathname });\n updateNavigation(pathname || '/');\n });\n }\n\n ngOnChanges() {\n //Each time the layout changes, we need to update the context\n if (this.pageAsset !== null) {\n this.pageContextService.setContext(this.pageAsset, this.components);\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport interface DotCMSPageAsset {\n canCreateTemplate: boolean;\n containers: DotCMSPageAssetContainer;\n layout: DotCMSLayout;\n page: DotCMSPage;\n site: DotCMSSite;\n template: DotCMSTemplate;\n viewAs: DotCMSViewAs;\n vanityUrl?: {\n pattern: string;\n vanityUrlId: string;\n url: string;\n siteId: string;\n languageId: number;\n forwardTo: string;\n response: number;\n order: number;\n temporaryRedirect: boolean;\n permanentRedirect: boolean;\n forward: boolean;\n };\n}\n\nexport interface DotPageAssetLayoutRow {\n identifier: number;\n value?: string;\n id?: string;\n columns: DotPageAssetLayoutColumn[];\n styleClass?: string;\n}\n\nexport interface DotPageAssetLayoutColumn {\n preview: boolean;\n containers: DotCMSContainer[];\n widthPercent: number;\n width: number;\n leftOffset: number;\n left: number;\n styleClass?: string;\n}\n\nexport interface DotCMSPageAssetContainer {\n [key: string]: {\n container: DotCMSContainer;\n containerStructures: DotCMSContainerStructure[];\n contentlets: {\n [key: string]: DotCMSContentlet[];\n };\n };\n}\n\nexport interface DotCMSContainer {\n identifier: string;\n uuid: string;\n iDate: number;\n type: string;\n owner?: string;\n inode: string;\n source: string;\n title: string;\n friendlyName: string;\n modDate: number;\n modUser: string;\n sortOrder: number;\n showOnMenu: boolean;\n code?: string;\n maxContentlets: number;\n useDiv: boolean;\n sortContentletsBy?: string;\n preLoop: string;\n postLoop: string;\n staticify: boolean;\n luceneQuery?: string;\n notes: string;\n languageId?: number;\n path?: string;\n live: boolean;\n locked: boolean;\n working: boolean;\n deleted: boolean;\n name: string;\n archived: boolean;\n permissionId: string;\n versionId: string;\n versionType: string;\n permissionType: string;\n categoryId: string;\n idate: number;\n new: boolean;\n acceptTypes: string;\n contentlets: DotCMSContentlet[];\n parentPermissionable: DotCMSSiteParentPermissionable;\n}\n\nexport interface DotCMSContentlet {\n archived: boolean;\n baseType: string;\n deleted?: boolean;\n binary?: string;\n binaryContentAsset?: string;\n binaryVersion?: string;\n contentType: string;\n file?: string;\n folder: string;\n hasLiveVersion?: boolean;\n hasTitleImage: boolean;\n host: string;\n hostName: string;\n identifier: string;\n inode: string;\n image?: string;\n languageId: number;\n language?: string;\n live: boolean;\n locked: boolean;\n mimeType?: string;\n modDate: string;\n modUser: string;\n modUserName: string;\n owner: string;\n sortOrder: number;\n stInode: string;\n title: string;\n titleImage: string;\n text?: string;\n url: string;\n working: boolean;\n body?: string;\n contentTypeIcon?: string;\n variant?: string;\n __icon__?: string;\n [key: string]: any; // This is a catch-all for any other custom properties that might be on the contentlet.\n}\n\nexport interface DotcmsNavigationItem {\n code?: any;\n folder: string;\n children?: DotcmsNavigationItem[];\n host: string;\n languageId: number;\n href: string;\n title: string;\n type: string;\n hash: number;\n target: string;\n order: number;\n}\n\ninterface DotCMSTemplate {\n iDate: number;\n type: string;\n owner: string;\n inode: string;\n identifier: string;\n source: string;\n title: string;\n friendlyName: string;\n modDate: number;\n modUser: string;\n sortOrder: number;\n showOnMenu: boolean;\n image: string;\n drawed: boolean;\n drawedBody: string;\n theme: string;\n anonymous: boolean;\n template: boolean;\n name: string;\n live: boolean;\n archived: boolean;\n locked: boolean;\n working: boolean;\n permissionId: string;\n versionId: string;\n versionType: string;\n deleted: boolean;\n permissionType: string;\n categoryId: string;\n idate: number;\n new: boolean;\n canEdit: boolean;\n}\n\ninterface DotCMSPage {\n template: string;\n modDate: number;\n metadata: string;\n cachettl: string;\n pageURI: string;\n title: string;\n type: string;\n showOnMenu: string;\n httpsRequired: boolean;\n inode: string;\n disabledWYSIWYG: any[];\n seokeywords: string;\n host: string;\n lastReview: number;\n working: boolean;\n locked: boolean;\n stInode: string;\n friendlyName: string;\n live: boolean;\n owner: string;\n identifier: string;\n nullProperties: any[];\n friendlyname: string;\n pagemetadata: string;\n languageId: number;\n url: string;\n seodescription: string;\n modUserName: string;\n folder: string;\n deleted: boolean;\n sortOrder: number;\n modUser: string;\n pageUrl: string;\n workingInode: string;\n shortyWorking: string;\n canEdit: boolean;\n canRead: boolean;\n canLock: boolean;\n lockedOn: number;\n lockedBy: string;\n lockedByName: string;\n liveInode: string;\n shortyLive: string;\n}\n\ninterface DotCMSViewAs {\n language: {\n id: number;\n languageCode: string;\n countryCode: string;\n language: string;\n country: string;\n };\n mode: string;\n}\n\ninterface DotCMSLayout {\n pageWidth: string;\n width: string;\n layout: string;\n title: string;\n header: boolean;\n footer: boolean;\n body: DotPageAssetLayoutBody;\n sidebar: DotPageAssetLayoutSidebar;\n}\n\ninterface DotCMSContainerStructure {\n id: string;\n structureId: string;\n containerInode: string;\n containerId: string;\n code: string;\n contentTypeVar: string;\n}\n\ninterface DotPageAssetLayoutSidebar {\n preview: boolean;\n containers: DotCMSContainer[];\n location: string;\n widthPercent: number;\n width: string;\n}\n\ninterface DotPageAssetLayoutBody {\n rows: DotPageAssetLayoutRow[];\n}\n\ninterface DotCMSSite {\n lowIndexPriority: boolean;\n name: string;\n default: boolean;\n aliases: string;\n parent: boolean;\n tagStorage: string;\n systemHost: boolean;\n inode: string;\n versionType: string;\n structureInode: string;\n hostname: string;\n hostThumbnail?: any;\n owner: string;\n permissionId: string;\n permissionType: string;\n type: string;\n identifier: string;\n modDate: number;\n host: string;\n live: boolean;\n indexPolicy: string;\n categoryId: string;\n actionId?: any;\n new: boolean;\n archived: boolean;\n locked: boolean;\n disabledWysiwyg: any[];\n modUser: string;\n working: boolean;\n titleImage: {\n present: boolean;\n };\n folder: string;\n htmlpage: boolean;\n fileAsset: boolean;\n vanityUrl: boolean;\n keyValue: boolean;\n structure?: DotCMSSiteStructure;\n title: string;\n languageId: number;\n indexPolicyDependencies: string;\n contentTypeId: string;\n versionId: string;\n lastReview: number;\n nextReview?: any;\n reviewInterval?: any;\n sortOrder: number;\n contentType: DotCMSSiteContentType;\n}\n\ninterface DotCMSSiteContentType {\n owner?: any;\n parentPermissionable: DotCMSSiteParentPermissionable;\n permissionId: string;\n permissionType: string;\n}\n\nexport interface DotCMSSiteParentPermissionable {\n Inode: string;\n Identifier: string;\n permissionByIdentifier: boolean;\n type: string;\n owner?: any;\n identifier: string;\n permissionId: string;\n parentPermissionable?: any;\n permissionType: string;\n inode: string;\n childrenPermissionable?: any;\n variantId?: string;\n}\n\ninterface DotCMSSiteStructure {\n iDate: number;\n type: string;\n owner?: any;\n inode: string;\n identifier: string;\n name: string;\n description: string;\n defaultStructure: boolean;\n reviewInterval?: any;\n reviewerRole?: any;\n pagedetail?: any;\n structureType: number;\n fixed: boolean;\n system: boolean;\n velocityVarName: string;\n urlMapPattern?: any;\n host: string;\n folder: string;\n publishDateVar?: any;\n expireDateVar?: any;\n modDate: number;\n fields: DotCMSSiteField[];\n widget: boolean;\n detailPage?: any;\n fieldsBySortOrder: DotCMSSiteField[];\n form: boolean;\n htmlpageAsset: boolean;\n content: boolean;\n fileAsset: boolean;\n persona: boolean;\n permissionId: string;\n permissionType: string;\n live: boolean;\n categoryId: string;\n idate: number;\n new: boolean;\n archived: boolean;\n locked: boolean;\n modUser: string;\n working: boolean;\n title: string;\n versionId: string;\n versionType: string;\n}\n\ninterface DotCMSSiteField {\n iDate: number;\n type: string;\n owner?: any;\n inode: string;\n identifier: string;\n structureInode: string;\n fieldName: string;\n fieldType: string;\n fieldRelationType?: any;\n fieldContentlet: string;\n required: boolean;\n velocityVarName: string;\n sortOrder: number;\n values?: any;\n regexCheck?: any;\n hint?: any;\n defaultValue?: any;\n indexed: boolean;\n listed: boolean;\n fixed: boolean;\n readOnly: boolean;\n searchable: boolean;\n unique: boolean;\n modDate: number;\n dataType: string;\n live: boolean;\n categoryId: string;\n idate: number;\n new: boolean;\n archived: boolean;\n locked: boolean;\n modUser: string;\n working: boolean;\n permissionId: string;\n parentPermissionable?: any;\n permissionType: string;\n title: string;\n versionId: string;\n versionType: string;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nexport * from './dotcms.model';\n\nimport { Type } from '@angular/core';\n\nimport { DotCMSPageAsset } from './dotcms.model';\n\nexport type DynamicComponentEntity = Promise<Type<any>>;\n\nexport interface DotCMSPageContext {\n pageAsset: DotCMSPageAsset;\n components: DotCMSPageComponent;\n isInsideEditor: boolean;\n}\n\nexport type DotCMSPageComponent = Record<string, DynamicComponentEntity>;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -10,10 +10,9 @@ import * as i0 from "@angular/core";
10
10
  * @class DotcmsLayoutComponent
11
11
  */
12
12
  export declare class DotcmsLayoutComponent implements OnInit {
13
- pageAsset: DotCMSPageAsset;
13
+ pageAsset: DotCMSPageAsset | null;
14
14
  components: Record<string, DynamicComponentEntity>;
15
15
  private readonly route;
16
- private readonly router;
17
16
  private readonly pageContextService;
18
17
  private readonly destroyRef$;
19
18
  ngOnInit(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"dotcms-layout.component.d.ts","sourceRoot":"","sources":["../../../../../../../libs/sdk/angular/src/lib/layout/dotcms-layout/dotcms-layout.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,MAAM,EAET,MAAM,eAAe,CAAC;AAQvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;;AAI5D;;;;;;GAMG;AACH,qBAUa,qBAAsB,YAAW,MAAM;IACrB,SAAS,EAAG,eAAe,CAAC;IAC5B,UAAU,EAAG,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAE/E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8B;IACjE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAElD,QAAQ;IAsBR,WAAW;yCA/BF,qBAAqB;2CAArB,qBAAqB;CAmCjC"}
1
+ {"version":3,"file":"dotcms-layout.component.d.ts","sourceRoot":"","sources":["../../../../../../../libs/sdk/angular/src/lib/layout/dotcms-layout/dotcms-layout.component.ts"],"names":[],"mappings":"AACA,OAAO,EAKH,MAAM,EAET,MAAM,eAAe,CAAC;AAQvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;;AAI5D;;;;;;GAMG;AACH,qBAUa,qBAAsB,YAAW,MAAM;IACrB,SAAS,EAAE,eAAe,GAAG,IAAI,CAAQ;IACzC,UAAU,EAAG,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAE/E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAChD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8B;IACjE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAElD,QAAQ;IAcR,WAAW;yCAtBF,qBAAqB;2CAArB,qBAAqB;CA4BjC"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@dotcms/angular",
3
- "version": "0.0.1-alpha.23",
3
+ "version": "0.0.1-alpha.25",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^17.1.0",
6
6
  "@angular/core": "^17.1.0",
7
7
  "@angular/router": "^17.1.0",
8
- "@dotcms/client": "0.0.1-alpha.23",
8
+ "@dotcms/client": "0.0.1-alpha.25",
9
9
  "rxjs": "^7.8.0"
10
10
  },
11
11
  "description": "Official Angular Components library to render a dotCMS page.",