@dotcms/angular 0.0.1-beta.30 → 0.0.1-beta.31

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.
Files changed (17) hide show
  1. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.mjs +125 -0
  2. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/unknown.component.mjs +65 -0
  3. package/esm2022/next/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.mjs +7 -3
  4. package/esm2022/next/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.mjs +7 -5
  5. package/fesm2022/dotcms-angular-next.mjs +159 -29
  6. package/fesm2022/dotcms-angular-next.mjs.map +1 -1
  7. package/next/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.d.ts +34 -0
  8. package/next/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.d.ts.map +1 -0
  9. package/next/components/dotcms-block-editor-renderer/blocks/unknown.component.d.ts +18 -0
  10. package/next/components/dotcms-block-editor-renderer/blocks/unknown.component.d.ts.map +1 -0
  11. package/next/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.d.ts +3 -1
  12. package/next/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.d.ts.map +1 -1
  13. package/next/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.d.ts.map +1 -1
  14. package/package.json +3 -3
  15. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/contentlet.component.mjs +0 -53
  16. package/next/components/dotcms-block-editor-renderer/blocks/contentlet.component.d.ts +0 -25
  17. package/next/components/dotcms-block-editor-renderer/blocks/contentlet.component.d.ts.map +0 -1
@@ -0,0 +1,125 @@
1
+ import { AsyncPipe, NgComponentOutlet } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, computed, Input } from '@angular/core';
3
+ import { UVE_MODE } from '@dotcms/types';
4
+ import { getUVEState } from '@dotcms/uve';
5
+ import * as i0 from "@angular/core";
6
+ export class NoComponentProvided {
7
+ constructor() {
8
+ this.style = {
9
+ backgroundColor: '#fffaf0',
10
+ color: '#333',
11
+ padding: '1rem',
12
+ borderRadius: '0.5rem',
13
+ marginBottom: '1rem',
14
+ marginTop: '1rem',
15
+ border: '1px solid #ed8936'
16
+ };
17
+ }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NoComponentProvided, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: NoComponentProvided, isStandalone: true, selector: "dotcms-no-component-provided", inputs: { contentType: "contentType" }, ngImport: i0, template: `
20
+ <div data-testid="no-component-provided" [style]="style">
21
+ <strong style="color: #c05621">Dev Warning</strong>
22
+ : No component or custom renderer provided for content type
23
+ <strong style="color: #c05621">{{ contentType || 'Unknown' }}</strong>
24
+ .
25
+ <br />
26
+ Please refer to the
27
+ <a
28
+ href="https://dev.dotcms.com/docs/block-editor"
29
+ target="_blank"
30
+ rel="noopener noreferrer"
31
+ style="color: #c05621">
32
+ Block Editor Custom Renderers Documentation
33
+ </a>
34
+ for guidance.
35
+ </div>
36
+ `, isInline: true }); }
37
+ }
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NoComponentProvided, decorators: [{
39
+ type: Component,
40
+ args: [{
41
+ selector: 'dotcms-no-component-provided',
42
+ standalone: true,
43
+ template: `
44
+ <div data-testid="no-component-provided" [style]="style">
45
+ <strong style="color: #c05621">Dev Warning</strong>
46
+ : No component or custom renderer provided for content type
47
+ <strong style="color: #c05621">{{ contentType || 'Unknown' }}</strong>
48
+ .
49
+ <br />
50
+ Please refer to the
51
+ <a
52
+ href="https://dev.dotcms.com/docs/block-editor"
53
+ target="_blank"
54
+ rel="noopener noreferrer"
55
+ style="color: #c05621">
56
+ Block Editor Custom Renderers Documentation
57
+ </a>
58
+ for guidance.
59
+ </div>
60
+ `
61
+ }]
62
+ }], propDecorators: { contentType: [{
63
+ type: Input
64
+ }] } });
65
+ /**
66
+ * DotContent component that renders content based on content type
67
+ */
68
+ export class DotContentletBlock {
69
+ constructor() {
70
+ this.$data = computed(() => this.attrs?.['data']);
71
+ this.DOT_CONTENT_NO_DATA_MESSAGE = '[DotCMSBlockEditorRenderer]: No data provided for Contentlet Block. Try to add a contentlet to the block editor. If the error persists, please contact the DotCMS support team.';
72
+ this.DOT_CONTENT_NO_MATCHING_COMPONENT_MESSAGE = (contentType) => `[DotCMSBlockEditorRenderer]: No matching component found for content type: ${contentType}. Provide a custom renderer for this content type to fix this error.`;
73
+ }
74
+ get isDevMode() {
75
+ return getUVEState()?.mode === UVE_MODE.EDIT;
76
+ }
77
+ ngOnInit() {
78
+ if (!this.$data()) {
79
+ console.error(this.DOT_CONTENT_NO_DATA_MESSAGE);
80
+ return;
81
+ }
82
+ const contentType = this.$data()?.contentType || '';
83
+ this.contentComponent = this.customRenderers?.[contentType];
84
+ if (!this.contentComponent) {
85
+ console.warn(this.DOT_CONTENT_NO_MATCHING_COMPONENT_MESSAGE(contentType));
86
+ }
87
+ }
88
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotContentletBlock, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
89
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: DotContentletBlock, isStandalone: true, selector: "dotcms-block-editor-renderer-contentlet", inputs: { customRenderers: "customRenderers", attrs: "attrs" }, ngImport: i0, template: `
90
+ @if (contentComponent) {
91
+ <ng-container
92
+ *ngComponentOutlet="
93
+ contentComponent | async;
94
+ inputs: { contentlet: $data() }
95
+ "></ng-container>
96
+ } @else if (isDevMode) {
97
+ <dotcms-no-component-provided [contentType]="$data()?.contentType" />
98
+ }
99
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: NoComponentProvided, selector: "dotcms-no-component-provided", inputs: ["contentType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
100
+ }
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotContentletBlock, decorators: [{
102
+ type: Component,
103
+ args: [{
104
+ selector: 'dotcms-block-editor-renderer-contentlet',
105
+ standalone: true,
106
+ imports: [NgComponentOutlet, AsyncPipe, NoComponentProvided],
107
+ changeDetection: ChangeDetectionStrategy.OnPush,
108
+ template: `
109
+ @if (contentComponent) {
110
+ <ng-container
111
+ *ngComponentOutlet="
112
+ contentComponent | async;
113
+ inputs: { contentlet: $data() }
114
+ "></ng-container>
115
+ } @else if (isDevMode) {
116
+ <dotcms-no-component-provided [contentType]="$data()?.contentType" />
117
+ }
118
+ `
119
+ }]
120
+ }], propDecorators: { customRenderers: [{
121
+ type: Input
122
+ }], attrs: [{
123
+ type: Input
124
+ }] } });
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90LWNvbnRlbnRsZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9uZXh0L2NvbXBvbmVudHMvZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci9ibG9ja3MvZG90LWNvbnRlbnRsZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEYsT0FBTyxFQUFtQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUEyQjFDLE1BQU0sT0FBTyxtQkFBbUI7SUF0QmhDO1FBd0J1QixVQUFLLEdBQUc7WUFDdkIsZUFBZSxFQUFFLFNBQVM7WUFDMUIsS0FBSyxFQUFFLE1BQU07WUFDYixPQUFPLEVBQUUsTUFBTTtZQUNmLFlBQVksRUFBRSxRQUFRO1lBQ3RCLFlBQVksRUFBRSxNQUFNO1lBQ3BCLFNBQVMsRUFBRSxNQUFNO1lBQ2pCLE1BQU0sRUFBRSxtQkFBbUI7U0FDOUIsQ0FBQztLQUNMOzhHQVhZLG1CQUFtQjtrR0FBbkIsbUJBQW1CLGdJQW5CbEI7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBaUJUOzsyRkFFUSxtQkFBbUI7a0JBdEIvQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw4QkFBOEI7b0JBQ3hDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBaUJUO2lCQUNKOzhCQUVZLFdBQVc7c0JBQW5CLEtBQUs7O0FBWVY7O0dBRUc7QUFrQkgsTUFBTSxPQUFPLGtCQUFrQjtJQWpCL0I7UUFzQnVCLFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDL0MsZ0NBQTJCLEdBQ3hDLGlMQUFpTCxDQUFDO1FBQ3JLLDhDQUF5QyxHQUFHLENBQUMsV0FBbUIsRUFBRSxFQUFFLENBQ2pGLDhFQUE4RSxXQUFXLHNFQUFzRSxDQUFDO0tBbUJ2SztJQWxCRyxJQUFjLFNBQVM7UUFDbkIsT0FBTyxXQUFXLEVBQUUsRUFBRSxJQUFJLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQztJQUNqRCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1lBRWhELE9BQU87UUFDWCxDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDcEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU1RCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMseUNBQXlDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUM5RSxDQUFDO0lBQ0wsQ0FBQzs4R0EzQlEsa0JBQWtCO2tHQUFsQixrQkFBa0IsbUtBWmpCOzs7Ozs7Ozs7O0tBVVQsNERBWlMsaUJBQWlCLCtPQUFFLFNBQVMsOENBbkI3QixtQkFBbUI7OzJGQWlDbkIsa0JBQWtCO2tCQWpCOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseUNBQXlDO29CQUNuRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixDQUFDO29CQUM1RCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFOzs7Ozs7Ozs7O0tBVVQ7aUJBQ0o7OEJBRVksZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nQ29tcG9uZW50T3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCbG9ja0VkaXRvck5vZGUsIFVWRV9NT0RFIH0gZnJvbSAnQGRvdGNtcy90eXBlcyc7XG5pbXBvcnQgeyBnZXRVVkVTdGF0ZSB9IGZyb20gJ0Bkb3RjbXMvdXZlJztcblxuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudEVudGl0eSB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBDdXN0b21SZW5kZXJlciB9IGZyb20gJy4uL2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkb3RjbXMtbm8tY29tcG9uZW50LXByb3ZpZGVkJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXYgZGF0YS10ZXN0aWQ9XCJuby1jb21wb25lbnQtcHJvdmlkZWRcIiBbc3R5bGVdPVwic3R5bGVcIj5cbiAgICAgICAgICAgIDxzdHJvbmcgc3R5bGU9XCJjb2xvcjogI2MwNTYyMVwiPkRldiBXYXJuaW5nPC9zdHJvbmc+XG4gICAgICAgICAgICA6IE5vIGNvbXBvbmVudCBvciBjdXN0b20gcmVuZGVyZXIgcHJvdmlkZWQgZm9yIGNvbnRlbnQgdHlwZVxuICAgICAgICAgICAgPHN0cm9uZyBzdHlsZT1cImNvbG9yOiAjYzA1NjIxXCI+e3sgY29udGVudFR5cGUgfHwgJ1Vua25vd24nIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAuXG4gICAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICAgIFBsZWFzZSByZWZlciB0byB0aGVcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vZGV2LmRvdGNtcy5jb20vZG9jcy9ibG9jay1lZGl0b3JcIlxuICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJjb2xvcjogI2MwNTYyMVwiPlxuICAgICAgICAgICAgICAgIEJsb2NrIEVkaXRvciBDdXN0b20gUmVuZGVyZXJzIERvY3VtZW50YXRpb25cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIGZvciBndWlkYW5jZS5cbiAgICAgICAgPC9kaXY+XG4gICAgYFxufSlcbmV4cG9ydCBjbGFzcyBOb0NvbXBvbmVudFByb3ZpZGVkIHtcbiAgICBASW5wdXQoKSBjb250ZW50VHlwZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBzdHlsZSA9IHtcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI2ZmZmFmMCcsXG4gICAgICAgIGNvbG9yOiAnIzMzMycsXG4gICAgICAgIHBhZGRpbmc6ICcxcmVtJyxcbiAgICAgICAgYm9yZGVyUmFkaXVzOiAnMC41cmVtJyxcbiAgICAgICAgbWFyZ2luQm90dG9tOiAnMXJlbScsXG4gICAgICAgIG1hcmdpblRvcDogJzFyZW0nLFxuICAgICAgICBib3JkZXI6ICcxcHggc29saWQgI2VkODkzNidcbiAgICB9O1xufVxuXG4vKipcbiAqIERvdENvbnRlbnQgY29tcG9uZW50IHRoYXQgcmVuZGVycyBjb250ZW50IGJhc2VkIG9uIGNvbnRlbnQgdHlwZVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItY29udGVudGxldCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdDb21wb25lbnRPdXRsZXQsIEFzeW5jUGlwZSwgTm9Db21wb25lbnRQcm92aWRlZF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgQGlmIChjb250ZW50Q29tcG9uZW50KSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nQ29tcG9uZW50T3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnRDb21wb25lbnQgfCBhc3luYztcbiAgICAgICAgICAgICAgICAgICAgaW5wdXRzOiB7IGNvbnRlbnRsZXQ6ICRkYXRhKCkgfVxuICAgICAgICAgICAgICAgIFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9IEBlbHNlIGlmIChpc0Rldk1vZGUpIHtcbiAgICAgICAgICAgIDxkb3RjbXMtbm8tY29tcG9uZW50LXByb3ZpZGVkIFtjb250ZW50VHlwZV09XCIkZGF0YSgpPy5jb250ZW50VHlwZVwiIC8+XG4gICAgICAgIH1cbiAgICBgXG59KVxuZXhwb3J0IGNsYXNzIERvdENvbnRlbnRsZXRCbG9jayB7XG4gICAgQElucHV0KCkgY3VzdG9tUmVuZGVyZXJzOiBDdXN0b21SZW5kZXJlciB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBhdHRyczogQmxvY2tFZGl0b3JOb2RlWydhdHRycyddO1xuXG4gICAgY29udGVudENvbXBvbmVudDogRHluYW1pY0NvbXBvbmVudEVudGl0eSB8IHVuZGVmaW5lZDtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgJGRhdGEgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmF0dHJzPy5bJ2RhdGEnXSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBET1RfQ09OVEVOVF9OT19EQVRBX01FU1NBR0UgPVxuICAgICAgICAnW0RvdENNU0Jsb2NrRWRpdG9yUmVuZGVyZXJdOiBObyBkYXRhIHByb3ZpZGVkIGZvciBDb250ZW50bGV0IEJsb2NrLiBUcnkgdG8gYWRkIGEgY29udGVudGxldCB0byB0aGUgYmxvY2sgZWRpdG9yLiBJZiB0aGUgZXJyb3IgcGVyc2lzdHMsIHBsZWFzZSBjb250YWN0IHRoZSBEb3RDTVMgc3VwcG9ydCB0ZWFtLic7XG4gICAgcHJpdmF0ZSByZWFkb25seSBET1RfQ09OVEVOVF9OT19NQVRDSElOR19DT01QT05FTlRfTUVTU0FHRSA9IChjb250ZW50VHlwZTogc3RyaW5nKSA9PlxuICAgICAgICBgW0RvdENNU0Jsb2NrRWRpdG9yUmVuZGVyZXJdOiBObyBtYXRjaGluZyBjb21wb25lbnQgZm91bmQgZm9yIGNvbnRlbnQgdHlwZTogJHtjb250ZW50VHlwZX0uIFByb3ZpZGUgYSBjdXN0b20gcmVuZGVyZXIgZm9yIHRoaXMgY29udGVudCB0eXBlIHRvIGZpeCB0aGlzIGVycm9yLmA7XG4gICAgcHJvdGVjdGVkIGdldCBpc0Rldk1vZGUoKSB7XG4gICAgICAgIHJldHVybiBnZXRVVkVTdGF0ZSgpPy5tb2RlID09PSBVVkVfTU9ERS5FRElUO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAoIXRoaXMuJGRhdGEoKSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcih0aGlzLkRPVF9DT05URU5UX05PX0RBVEFfTUVTU0FHRSk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gdGhpcy4kZGF0YSgpPy5jb250ZW50VHlwZSB8fCAnJztcbiAgICAgICAgdGhpcy5jb250ZW50Q29tcG9uZW50ID0gdGhpcy5jdXN0b21SZW5kZXJlcnM/Lltjb250ZW50VHlwZV07XG5cbiAgICAgICAgaWYgKCF0aGlzLmNvbnRlbnRDb21wb25lbnQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2Fybih0aGlzLkRPVF9DT05URU5UX05PX01BVENISU5HX0NPTVBPTkVOVF9NRVNTQUdFKGNvbnRlbnRUeXBlKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,65 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { UVE_MODE } from '@dotcms/types';
3
+ import { getUVEState } from '@dotcms/uve';
4
+ import * as i0 from "@angular/core";
5
+ export class DotUnknownBlockComponent {
6
+ constructor() {
7
+ this.style = {
8
+ backgroundColor: '#fff5f5',
9
+ color: '#333',
10
+ padding: '1rem',
11
+ borderRadius: '0.5rem',
12
+ marginBottom: '1rem',
13
+ marginTop: '1rem',
14
+ border: '1px solid #fc8181'
15
+ };
16
+ }
17
+ get isEditMode() {
18
+ return getUVEState()?.mode === UVE_MODE.EDIT;
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotUnknownBlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: DotUnknownBlockComponent, isStandalone: true, selector: "dotcms-block-editor-renderer-unknown", inputs: { node: "node" }, ngImport: i0, template: `
22
+ @if (isEditMode) {
23
+ <div [style]="style" data-testid="unknown-block-type">
24
+ <strong style="color: #c53030">Warning:</strong>
25
+ The block type
26
+ <strong>{{ node.type }}</strong>
27
+ is not recognized. Please check your
28
+ <a
29
+ href="https://dev.dotcms.com/docs/block-editor"
30
+ target="_blank"
31
+ rel="noopener noreferrer">
32
+ configuration
33
+ </a>
34
+ or contact support for assistance.
35
+ </div>
36
+ }
37
+ `, isInline: true }); }
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotUnknownBlockComponent, decorators: [{
40
+ type: Component,
41
+ args: [{
42
+ selector: 'dotcms-block-editor-renderer-unknown',
43
+ standalone: true,
44
+ template: `
45
+ @if (isEditMode) {
46
+ <div [style]="style" data-testid="unknown-block-type">
47
+ <strong style="color: #c53030">Warning:</strong>
48
+ The block type
49
+ <strong>{{ node.type }}</strong>
50
+ is not recognized. Please check your
51
+ <a
52
+ href="https://dev.dotcms.com/docs/block-editor"
53
+ target="_blank"
54
+ rel="noopener noreferrer">
55
+ configuration
56
+ </a>
57
+ or contact support for assistance.
58
+ </div>
59
+ }
60
+ `
61
+ }]
62
+ }], propDecorators: { node: [{
63
+ type: Input
64
+ }] } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5rbm93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL25leHQvY29tcG9uZW50cy9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyL2Jsb2Nrcy91bmtub3duLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQW1CLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQXVCMUMsTUFBTSxPQUFPLHdCQUF3QjtJQXJCckM7UUE0QnVCLFVBQUssR0FBRztZQUN2QixlQUFlLEVBQUUsU0FBUztZQUMxQixLQUFLLEVBQUUsTUFBTTtZQUNiLE9BQU8sRUFBRSxNQUFNO1lBQ2YsWUFBWSxFQUFFLFFBQVE7WUFDdEIsWUFBWSxFQUFFLE1BQU07WUFDcEIsU0FBUyxFQUFFLE1BQU07WUFDakIsTUFBTSxFQUFFLG1CQUFtQjtTQUM5QixDQUFDO0tBQ0w7SUFiRyxJQUFJLFVBQVU7UUFDVixPQUFPLFdBQVcsRUFBRSxFQUFFLElBQUksS0FBSyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQ2pELENBQUM7OEdBTFEsd0JBQXdCO2tHQUF4Qix3QkFBd0IsMEhBbEJ2Qjs7Ozs7Ozs7Ozs7Ozs7OztLQWdCVDs7MkZBRVEsd0JBQXdCO2tCQXJCcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsc0NBQXNDO29CQUNoRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7O0tBZ0JUO2lCQUNKOzhCQUVZLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmxvY2tFZGl0b3JOb2RlLCBVVkVfTU9ERSB9IGZyb20gJ0Bkb3RjbXMvdHlwZXMnO1xuaW1wb3J0IHsgZ2V0VVZFU3RhdGUgfSBmcm9tICdAZG90Y21zL3V2ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci11bmtub3duJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIEBpZiAoaXNFZGl0TW9kZSkge1xuICAgICAgICAgICAgPGRpdiBbc3R5bGVdPVwic3R5bGVcIiBkYXRhLXRlc3RpZD1cInVua25vd24tYmxvY2stdHlwZVwiPlxuICAgICAgICAgICAgICAgIDxzdHJvbmcgc3R5bGU9XCJjb2xvcjogI2M1MzAzMFwiPldhcm5pbmc6PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgVGhlIGJsb2NrIHR5cGVcbiAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IG5vZGUudHlwZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIGlzIG5vdCByZWNvZ25pemVkLiBQbGVhc2UgY2hlY2sgeW91clxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL2Rldi5kb3RjbXMuY29tL2RvY3MvYmxvY2stZWRpdG9yXCJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiPlxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uXG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIG9yIGNvbnRhY3Qgc3VwcG9ydCBmb3IgYXNzaXN0YW5jZS5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgYFxufSlcbmV4cG9ydCBjbGFzcyBEb3RVbmtub3duQmxvY2tDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIG5vZGUhOiBCbG9ja0VkaXRvck5vZGU7XG5cbiAgICBnZXQgaXNFZGl0TW9kZSgpIHtcbiAgICAgICAgcmV0dXJuIGdldFVWRVN0YXRlKCk/Lm1vZGUgPT09IFVWRV9NT0RFLkVESVQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0eWxlID0ge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmZmNWY1JyxcbiAgICAgICAgY29sb3I6ICcjMzMzJyxcbiAgICAgICAgcGFkZGluZzogJzFyZW0nLFxuICAgICAgICBib3JkZXJSYWRpdXM6ICcwLjVyZW0nLFxuICAgICAgICBtYXJnaW5Cb3R0b206ICcxcmVtJyxcbiAgICAgICAgbWFyZ2luVG9wOiAnMXJlbScsXG4gICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCAjZmM4MTgxJ1xuICAgIH07XG59XG4iXX0=
@@ -33,14 +33,18 @@ export class DotCMSBlockEditorRendererComponent {
33
33
  this.$blockEditorState.set(isValidBlocks(this.blocks));
34
34
  }
35
35
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSBlockEditorRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
36
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: DotCMSBlockEditorRendererComponent, isStandalone: true, selector: "dotcms-block-editor-renderer", inputs: { blocks: "blocks", customRenderers: "customRenderers" }, ngImport: i0, template: "@if ($blockEditorState().error && $isInEditMode()) {\n <div data-testid=\"invalid-blocks-message\">\n {{ $blockEditorState().error }}\n </div>\n} @else if (!$blockEditorState().error) {\n <dotcms-block-editor-renderer-block\n [content]=\"blocks.content\"\n [customRenderers]=\"customRenderers\" />\n}\n", styles: [""], dependencies: [{ kind: "component", type: DotCMSBlockEditorItemComponent, selector: "dotcms-block-editor-renderer-block", inputs: ["content", "customRenderers"] }] }); }
36
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: DotCMSBlockEditorRendererComponent, isStandalone: true, selector: "dotcms-block-editor-renderer", inputs: { blocks: "blocks", customRenderers: "customRenderers", class: "class", style: "style" }, ngImport: i0, template: "@if ($blockEditorState().error && $isInEditMode()) {\n <div data-testid=\"invalid-blocks-message\">\n {{ $blockEditorState().error }}\n </div>\n} @else if (!$blockEditorState().error) {\n <div [class]=\"class\" [style]=\"style\">\n <dotcms-block-editor-renderer-block\n [content]=\"blocks.content\"\n [customRenderers]=\"customRenderers\" />\n </div>\n}\n", styles: [""], dependencies: [{ kind: "component", type: DotCMSBlockEditorItemComponent, selector: "dotcms-block-editor-renderer-block", inputs: ["content", "customRenderers"] }] }); }
37
37
  }
38
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSBlockEditorRendererComponent, decorators: [{
39
39
  type: Component,
40
- args: [{ selector: 'dotcms-block-editor-renderer', standalone: true, imports: [DotCMSBlockEditorItemComponent], template: "@if ($blockEditorState().error && $isInEditMode()) {\n <div data-testid=\"invalid-blocks-message\">\n {{ $blockEditorState().error }}\n </div>\n} @else if (!$blockEditorState().error) {\n <dotcms-block-editor-renderer-block\n [content]=\"blocks.content\"\n [customRenderers]=\"customRenderers\" />\n}\n" }]
40
+ args: [{ selector: 'dotcms-block-editor-renderer', standalone: true, imports: [DotCMSBlockEditorItemComponent], template: "@if ($blockEditorState().error && $isInEditMode()) {\n <div data-testid=\"invalid-blocks-message\">\n {{ $blockEditorState().error }}\n </div>\n} @else if (!$blockEditorState().error) {\n <div [class]=\"class\" [style]=\"style\">\n <dotcms-block-editor-renderer-block\n [content]=\"blocks.content\"\n [customRenderers]=\"customRenderers\" />\n </div>\n}\n" }]
41
41
  }], propDecorators: { blocks: [{
42
42
  type: Input
43
43
  }], customRenderers: [{
44
44
  type: Input
45
+ }], class: [{
46
+ type: Input
47
+ }], style: [{
48
+ type: Input
45
49
  }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL25leHQvY29tcG9uZW50cy9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyL2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9uZXh0L2NvbXBvbmVudHMvZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsUUFBUSxFQUFzQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7QUFZM0Y7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBUUgsTUFBTSxPQUFPLGtDQUFrQztJQVAvQztRQVdJLHNCQUFpQixHQUFHLE1BQU0sQ0FBbUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM5RCxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBV2pFO0lBVEcsUUFBUTtRQUNKLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFekMsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLHlDQUF5QyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQzs4R0FmUSxrQ0FBa0M7a0dBQWxDLGtDQUFrQywwSkMxQy9DLDhVQVNBLDBERCtCYyw4QkFBOEI7OzJGQUUvQixrQ0FBa0M7a0JBUDlDLFNBQVM7K0JBQ0ksOEJBQThCLGNBQzVCLElBQUksV0FHUCxDQUFDLDhCQUE4QixDQUFDOzhCQUdoQyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBVVkVfTU9ERSwgQmxvY2tFZGl0b3JDb250ZW50IH0gZnJvbSAnQGRvdGNtcy90eXBlcyc7XG5pbXBvcnQgeyBCbG9ja0VkaXRvclN0YXRlIH0gZnJvbSAnQGRvdGNtcy90eXBlcy9pbnRlcm5hbCc7XG5pbXBvcnQgeyBnZXRVVkVTdGF0ZSB9IGZyb20gJ0Bkb3RjbXMvdXZlJztcbmltcG9ydCB7IGlzVmFsaWRCbG9ja3MgfSBmcm9tICdAZG90Y21zL3V2ZS9pbnRlcm5hbCc7XG5cbmltcG9ydCB7IERvdENNU0Jsb2NrRWRpdG9ySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vaXRlbS9kb3RjbXMtYmxvY2stZWRpdG9yLWl0ZW0uY29tcG9uZW50JztcblxuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudEVudGl0eSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIEN1c3RvbSBSZW5kZXJlciB1c2VkIGJ5IHRoZSBCbG9jayBFZGl0b3IgQ29tcG9uZW50XG4gKlxuICogQGV4cG9ydFxuICogQGludGVyZmFjZSBDdXN0b21SZW5kZXJlclxuICovXG5leHBvcnQgdHlwZSBDdXN0b21SZW5kZXJlciA9IFJlY29yZDxzdHJpbmcsIER5bmFtaWNDb21wb25lbnRFbnRpdHk+O1xuXG4vKipcbiAqIEEgY29tcG9uZW50IHRoYXQgcmVuZGVycyBjb250ZW50IGZyb20gRG90Q01TJ3MgQmxvY2sgRWRpdG9yIGZpZWxkLlxuICpcbiAqIFRoaXMgY29tcG9uZW50IHByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIHJlbmRlciBCbG9jayBFZGl0b3IgY29udGVudCBpbiB5b3VyIEFuZ3VsYXIgYXBwbGljYXRpb25zLlxuICogSXQgaGFuZGxlcyB0aGUgcmVuZGVyaW5nIG9mIHN0YW5kYXJkIGJsb2NrcyBhbmQgYWxsb3dzIGN1c3RvbWl6YXRpb24gdGhyb3VnaCBjdXN0b20gcmVuZGVyZXJzLlxuICpcbiAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IEJsb2NrIEVkaXRvciwgc2VlIHtAbGluayBodHRwczovL2Rldi5kb3RjbXMuY29tL2RvY3MvYmxvY2stZWRpdG9yfVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlclxuICogICBbYmxvY2tzXT1cIm15QmxvY2tFZGl0b3JDb250ZW50XCJcbiAqICAgW2N1c3RvbVJlbmRlcmVyc109XCJteUN1c3RvbVJlbmRlcmVyc1wiPlxuICogPC9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGltcG9ydHM6IFtEb3RDTVNCbG9ja0VkaXRvckl0ZW1Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIERvdENNU0Jsb2NrRWRpdG9yUmVuZGVyZXJDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGJsb2NrcyE6IEJsb2NrRWRpdG9yQ29udGVudDtcbiAgICBASW5wdXQoKSBjdXN0b21SZW5kZXJlcnM6IEN1c3RvbVJlbmRlcmVyIHwgdW5kZWZpbmVkO1xuXG4gICAgJGJsb2NrRWRpdG9yU3RhdGUgPSBzaWduYWw8QmxvY2tFZGl0b3JTdGF0ZT4oeyBlcnJvcjogbnVsbCB9KTtcbiAgICAkaXNJbkVkaXRNb2RlID0gc2lnbmFsKGdldFVWRVN0YXRlKCk/Lm1vZGUgPT09IFVWRV9NT0RFLkVESVQpO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gaXNWYWxpZEJsb2Nrcyh0aGlzLmJsb2Nrcyk7XG5cbiAgICAgICAgaWYgKHN0YXRlLmVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyOiAnLCBzdGF0ZS5lcnJvcik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLiRibG9ja0VkaXRvclN0YXRlLnNldChpc1ZhbGlkQmxvY2tzKHRoaXMuYmxvY2tzKSk7XG4gICAgfVxufVxuIiwiQGlmICgkYmxvY2tFZGl0b3JTdGF0ZSgpLmVycm9yICYmICRpc0luRWRpdE1vZGUoKSkge1xuICAgIDxkaXYgZGF0YS10ZXN0aWQ9XCJpbnZhbGlkLWJsb2Nrcy1tZXNzYWdlXCI+XG4gICAgICAgIHt7ICRibG9ja0VkaXRvclN0YXRlKCkuZXJyb3IgfX1cbiAgICA8L2Rpdj5cbn0gQGVsc2UgaWYgKCEkYmxvY2tFZGl0b3JTdGF0ZSgpLmVycm9yKSB7XG4gICAgPGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItYmxvY2tcbiAgICAgICAgW2NvbnRlbnRdPVwiYmxvY2tzLmNvbnRlbnRcIlxuICAgICAgICBbY3VzdG9tUmVuZGVyZXJzXT1cImN1c3RvbVJlbmRlcmVyc1wiIC8+XG59XG4iXX0=
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL25leHQvY29tcG9uZW50cy9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyL2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9uZXh0L2NvbXBvbmVudHMvZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsUUFBUSxFQUFzQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7QUFZM0Y7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBUUgsTUFBTSxPQUFPLGtDQUFrQztJQVAvQztRQWFJLHNCQUFpQixHQUFHLE1BQU0sQ0FBbUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM5RCxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBV2pFO0lBVEcsUUFBUTtRQUNKLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFekMsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLHlDQUF5QyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQzs4R0FqQlEsa0NBQWtDO2tHQUFsQyxrQ0FBa0MsMExDMUMvQyxxWkFXQSwwREQ2QmMsOEJBQThCOzsyRkFFL0Isa0NBQWtDO2tCQVA5QyxTQUFTOytCQUNJLDhCQUE4QixjQUM1QixJQUFJLFdBR1AsQ0FBQyw4QkFBOEIsQ0FBQzs4QkFHaEMsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBVVkVfTU9ERSwgQmxvY2tFZGl0b3JDb250ZW50IH0gZnJvbSAnQGRvdGNtcy90eXBlcyc7XG5pbXBvcnQgeyBCbG9ja0VkaXRvclN0YXRlIH0gZnJvbSAnQGRvdGNtcy90eXBlcy9pbnRlcm5hbCc7XG5pbXBvcnQgeyBnZXRVVkVTdGF0ZSB9IGZyb20gJ0Bkb3RjbXMvdXZlJztcbmltcG9ydCB7IGlzVmFsaWRCbG9ja3MgfSBmcm9tICdAZG90Y21zL3V2ZS9pbnRlcm5hbCc7XG5cbmltcG9ydCB7IERvdENNU0Jsb2NrRWRpdG9ySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vaXRlbS9kb3RjbXMtYmxvY2stZWRpdG9yLWl0ZW0uY29tcG9uZW50JztcblxuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudEVudGl0eSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIEN1c3RvbSBSZW5kZXJlciB1c2VkIGJ5IHRoZSBCbG9jayBFZGl0b3IgQ29tcG9uZW50XG4gKlxuICogQGV4cG9ydFxuICogQGludGVyZmFjZSBDdXN0b21SZW5kZXJlclxuICovXG5leHBvcnQgdHlwZSBDdXN0b21SZW5kZXJlciA9IFJlY29yZDxzdHJpbmcsIER5bmFtaWNDb21wb25lbnRFbnRpdHk+O1xuXG4vKipcbiAqIEEgY29tcG9uZW50IHRoYXQgcmVuZGVycyBjb250ZW50IGZyb20gRG90Q01TJ3MgQmxvY2sgRWRpdG9yIGZpZWxkLlxuICpcbiAqIFRoaXMgY29tcG9uZW50IHByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIHJlbmRlciBCbG9jayBFZGl0b3IgY29udGVudCBpbiB5b3VyIEFuZ3VsYXIgYXBwbGljYXRpb25zLlxuICogSXQgaGFuZGxlcyB0aGUgcmVuZGVyaW5nIG9mIHN0YW5kYXJkIGJsb2NrcyBhbmQgYWxsb3dzIGN1c3RvbWl6YXRpb24gdGhyb3VnaCBjdXN0b20gcmVuZGVyZXJzLlxuICpcbiAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IEJsb2NrIEVkaXRvciwgc2VlIHtAbGluayBodHRwczovL2Rldi5kb3RjbXMuY29tL2RvY3MvYmxvY2stZWRpdG9yfVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlclxuICogICBbYmxvY2tzXT1cIm15QmxvY2tFZGl0b3JDb250ZW50XCJcbiAqICAgW2N1c3RvbVJlbmRlcmVyc109XCJteUN1c3RvbVJlbmRlcmVyc1wiPlxuICogPC9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGltcG9ydHM6IFtEb3RDTVNCbG9ja0VkaXRvckl0ZW1Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIERvdENNU0Jsb2NrRWRpdG9yUmVuZGVyZXJDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGJsb2NrcyE6IEJsb2NrRWRpdG9yQ29udGVudDtcbiAgICBASW5wdXQoKSBjdXN0b21SZW5kZXJlcnM6IEN1c3RvbVJlbmRlcmVyIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgc3R5bGU6IHN0cmluZyB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQ7XG5cbiAgICAkYmxvY2tFZGl0b3JTdGF0ZSA9IHNpZ25hbDxCbG9ja0VkaXRvclN0YXRlPih7IGVycm9yOiBudWxsIH0pO1xuICAgICRpc0luRWRpdE1vZGUgPSBzaWduYWwoZ2V0VVZFU3RhdGUoKT8ubW9kZSA9PT0gVVZFX01PREUuRURJVCk7XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSBpc1ZhbGlkQmxvY2tzKHRoaXMuYmxvY2tzKTtcblxuICAgICAgICBpZiAoc3RhdGUuZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXI6ICcsIHN0YXRlLmVycm9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuJGJsb2NrRWRpdG9yU3RhdGUuc2V0KGlzVmFsaWRCbG9ja3ModGhpcy5ibG9ja3MpKTtcbiAgICB9XG59XG4iLCJAaWYgKCRibG9ja0VkaXRvclN0YXRlKCkuZXJyb3IgJiYgJGlzSW5FZGl0TW9kZSgpKSB7XG4gICAgPGRpdiBkYXRhLXRlc3RpZD1cImludmFsaWQtYmxvY2tzLW1lc3NhZ2VcIj5cbiAgICAgICAge3sgJGJsb2NrRWRpdG9yU3RhdGUoKS5lcnJvciB9fVxuICAgIDwvZGl2PlxufSBAZWxzZSBpZiAoISRibG9ja0VkaXRvclN0YXRlKCkuZXJyb3IpIHtcbiAgICA8ZGl2IFtjbGFzc109XCJjbGFzc1wiIFtzdHlsZV09XCJzdHlsZVwiPlxuICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1ibG9ja1xuICAgICAgICAgICAgW2NvbnRlbnRdPVwiYmxvY2tzLmNvbnRlbnRcIlxuICAgICAgICAgICAgW2N1c3RvbVJlbmRlcmVyc109XCJjdXN0b21SZW5kZXJlcnNcIiAvPlxuICAgIDwvZGl2PlxufVxuIl19
@@ -2,11 +2,12 @@ import { AsyncPipe, NgComponentOutlet, NgTemplateOutlet } from '@angular/common'
2
2
  import { Component, Input } from '@angular/core';
3
3
  import { BlockEditorDefaultBlocks } from '@dotcms/types/internal';
4
4
  import { DotCodeBlock, DotBlockQuote } from '../blocks/code.component';
5
- import { DotContentletBlock } from '../blocks/contentlet.component';
5
+ import { DotContentletBlock } from '../blocks/dot-contentlet.component';
6
6
  import { DotImageBlock } from '../blocks/image.component';
7
7
  import { DotBulletList, DotOrdererList, DotListItem } from '../blocks/list.component';
8
8
  import { DotTableBlock } from '../blocks/table.component';
9
9
  import { DotParagraphBlock, DotTextBlock, DotHeadingBlock } from '../blocks/text.component';
10
+ import { DotUnknownBlockComponent } from '../blocks/unknown.component';
10
11
  import { DotVideoBlock } from '../blocks/video.component';
11
12
  import * as i0 from "@angular/core";
12
13
  export class DotCMSBlockEditorItemComponent {
@@ -14,7 +15,7 @@ export class DotCMSBlockEditorItemComponent {
14
15
  this.BLOCKS = BlockEditorDefaultBlocks;
15
16
  }
16
17
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSBlockEditorItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: DotCMSBlockEditorItemComponent, isStandalone: true, selector: "dotcms-block-editor-renderer-block", inputs: { content: "content", customRenderers: "customRenderers" }, ngImport: i0, template: "@for (node of content; track node) {\n @if (customRenderers?.[node.type]) {\n <ng-container\n *ngTemplateOutlet=\"\n customRender;\n context: { customRender: customRenderers?.[node.type], node: node }\n \"></ng-container>\n } @else {\n @switch (node.type) {\n @case (BLOCKS.PARAGRAPH) {\n <dotcms-block-editor-renderer-paragraph [style]=\"node.attrs\">\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-paragraph>\n }\n\n @case (BLOCKS.TEXT) {\n <dotcms-block-editor-renderer-text [marks]=\"node.marks\" [text]=\"node.text || ''\" />\n }\n\n @case (BLOCKS.HEADING) {\n <dotcms-block-editor-renderer-heading\n [style]=\"node.attrs || {}\"\n [level]=\"node.attrs?.['level'] || '1'\">\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-heading>\n }\n\n @case (BLOCKS.BULLET_LIST) {\n <dotcms-block-editor-renderer-bullet-list>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-bullet-list>\n }\n\n @case (BLOCKS.ORDERED_LIST) {\n <dotcms-block-editor-renderer-ordered-list>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-ordered-list>\n }\n\n @case (BLOCKS.LIST_ITEM) {\n <dotcms-block-editor-renderer-list-item>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-list-item>\n }\n\n @case (BLOCKS.BLOCK_QUOTE) {\n <dotcms-block-editor-renderer-block-quote>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-block-quote>\n }\n\n @case (BLOCKS.CODE_BLOCK) {\n <dotcms-block-editor-renderer-code-block>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-code-block>\n }\n\n @case (BLOCKS.HARDBREAK) {\n <br />\n }\n\n @case (BLOCKS.HORIZONTAL_RULE) {\n <hr />\n }\n\n @case (BLOCKS.DOT_IMAGE) {\n <dotcms-block-editor-renderer-image [attrs]=\"node.attrs || {}\" />\n }\n\n @case (BLOCKS.DOT_VIDEO) {\n <dotcms-block-editor-renderer-video [attrs]=\"node.attrs || {}\" />\n }\n\n @case (BLOCKS.TABLE) {\n <dotcms-block-editor-renderer-table [content]=\"node.content\" />\n }\n\n @case (BLOCKS.DOT_CONTENT) {\n <dotcms-block-editor-renderer-contentlet\n [attrs]=\"node.attrs || {}\"\n [customRenderers]=\"customRenderers\" />\n }\n\n @default {\n <div>Unknown Block Type: {{ node.type }}</div>\n }\n }\n }\n}\n\n<ng-template #customRender let-customRender=\"customRender\" let-node=\"node\">\n <ng-container\n *ngComponentOutlet=\"customRender | async; inputs: { content: node }\"></ng-container>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: DotCMSBlockEditorItemComponent, selector: "dotcms-block-editor-renderer-block", inputs: ["content", "customRenderers"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: DotParagraphBlock, selector: "dotcms-block-editor-renderer-paragraph" }, { kind: "component", type: DotTextBlock, selector: "dotcms-block-editor-renderer-text", inputs: ["marks", "text"] }, { kind: "component", type: DotHeadingBlock, selector: "dotcms-block-editor-renderer-heading", inputs: ["level"] }, { kind: "component", type: DotBulletList, selector: "dotcms-block-editor-renderer-bullet-list" }, { kind: "component", type: DotOrdererList, selector: "dotcms-block-editor-renderer-ordered-list" }, { kind: "component", type: DotListItem, selector: "dotcms-block-editor-renderer-list-item" }, { kind: "component", type: DotCodeBlock, selector: "dotcms-block-editor-renderer-code-block" }, { kind: "component", type: DotBlockQuote, selector: "dotcms-block-editor-renderer-block-quote" }, { kind: "component", type: DotImageBlock, selector: "dotcms-block-editor-renderer-image", inputs: ["attrs"] }, { kind: "component", type: DotVideoBlock, selector: "dotcms-block-editor-renderer-video", inputs: ["attrs"] }, { kind: "component", type: DotTableBlock, selector: "dotcms-block-editor-renderer-table", inputs: ["content"] }, { kind: "component", type: DotContentletBlock, selector: "dotcms-block-editor-renderer-contentlet", inputs: ["customRenderers", "attrs"] }] }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: DotCMSBlockEditorItemComponent, isStandalone: true, selector: "dotcms-block-editor-renderer-block", inputs: { content: "content", customRenderers: "customRenderers" }, ngImport: i0, template: "@for (node of content; track node) {\n @if (customRenderers?.[node.type]) {\n <ng-container\n *ngTemplateOutlet=\"\n customRender;\n context: { customRender: customRenderers?.[node.type], node: node }\n \"></ng-container>\n } @else {\n @switch (node.type) {\n @case (BLOCKS.PARAGRAPH) {\n <dotcms-block-editor-renderer-paragraph [style]=\"node.attrs\">\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-paragraph>\n }\n\n @case (BLOCKS.TEXT) {\n <dotcms-block-editor-renderer-text [marks]=\"node.marks\" [text]=\"node.text || ''\" />\n }\n\n @case (BLOCKS.HEADING) {\n <dotcms-block-editor-renderer-heading\n [style]=\"node.attrs || {}\"\n [level]=\"node.attrs?.['level'] || '1'\">\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-heading>\n }\n\n @case (BLOCKS.BULLET_LIST) {\n <dotcms-block-editor-renderer-bullet-list>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-bullet-list>\n }\n\n @case (BLOCKS.ORDERED_LIST) {\n <dotcms-block-editor-renderer-ordered-list>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-ordered-list>\n }\n\n @case (BLOCKS.LIST_ITEM) {\n <dotcms-block-editor-renderer-list-item>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-list-item>\n }\n\n @case (BLOCKS.BLOCK_QUOTE) {\n <dotcms-block-editor-renderer-block-quote>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-block-quote>\n }\n\n @case (BLOCKS.CODE_BLOCK) {\n <dotcms-block-editor-renderer-code-block>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-code-block>\n }\n\n @case (BLOCKS.HARDBREAK) {\n <br />\n }\n\n @case (BLOCKS.HORIZONTAL_RULE) {\n <hr />\n }\n\n @case (BLOCKS.DOT_IMAGE) {\n <dotcms-block-editor-renderer-image [attrs]=\"node.attrs || {}\" />\n }\n\n @case (BLOCKS.DOT_VIDEO) {\n <dotcms-block-editor-renderer-video [attrs]=\"node.attrs || {}\" />\n }\n\n @case (BLOCKS.TABLE) {\n <dotcms-block-editor-renderer-table [content]=\"node.content\" />\n }\n\n @case (BLOCKS.DOT_CONTENT) {\n <dotcms-block-editor-renderer-contentlet\n [attrs]=\"node.attrs || {}\"\n [customRenderers]=\"customRenderers\" />\n }\n\n @default {\n <dotcms-block-editor-renderer-unknown [node]=\"node\" />\n }\n }\n }\n}\n\n<ng-template #customRender let-customRender=\"customRender\" let-node=\"node\">\n <ng-container\n *ngComponentOutlet=\"customRender | async; inputs: { content: node }\"></ng-container>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: DotCMSBlockEditorItemComponent, selector: "dotcms-block-editor-renderer-block", inputs: ["content", "customRenderers"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: DotParagraphBlock, selector: "dotcms-block-editor-renderer-paragraph" }, { kind: "component", type: DotTextBlock, selector: "dotcms-block-editor-renderer-text", inputs: ["marks", "text"] }, { kind: "component", type: DotHeadingBlock, selector: "dotcms-block-editor-renderer-heading", inputs: ["level"] }, { kind: "component", type: DotBulletList, selector: "dotcms-block-editor-renderer-bullet-list" }, { kind: "component", type: DotOrdererList, selector: "dotcms-block-editor-renderer-ordered-list" }, { kind: "component", type: DotListItem, selector: "dotcms-block-editor-renderer-list-item" }, { kind: "component", type: DotCodeBlock, selector: "dotcms-block-editor-renderer-code-block" }, { kind: "component", type: DotBlockQuote, selector: "dotcms-block-editor-renderer-block-quote" }, { kind: "component", type: DotImageBlock, selector: "dotcms-block-editor-renderer-image", inputs: ["attrs"] }, { kind: "component", type: DotVideoBlock, selector: "dotcms-block-editor-renderer-video", inputs: ["attrs"] }, { kind: "component", type: DotTableBlock, selector: "dotcms-block-editor-renderer-table", inputs: ["content"] }, { kind: "component", type: DotContentletBlock, selector: "dotcms-block-editor-renderer-contentlet", inputs: ["customRenderers", "attrs"] }, { kind: "component", type: DotUnknownBlockComponent, selector: "dotcms-block-editor-renderer-unknown", inputs: ["node"] }] }); }
18
19
  }
19
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSBlockEditorItemComponent, decorators: [{
20
21
  type: Component,
@@ -33,11 +34,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
33
34
  DotImageBlock,
34
35
  DotVideoBlock,
35
36
  DotTableBlock,
36
- DotContentletBlock
37
- ], template: "@for (node of content; track node) {\n @if (customRenderers?.[node.type]) {\n <ng-container\n *ngTemplateOutlet=\"\n customRender;\n context: { customRender: customRenderers?.[node.type], node: node }\n \"></ng-container>\n } @else {\n @switch (node.type) {\n @case (BLOCKS.PARAGRAPH) {\n <dotcms-block-editor-renderer-paragraph [style]=\"node.attrs\">\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-paragraph>\n }\n\n @case (BLOCKS.TEXT) {\n <dotcms-block-editor-renderer-text [marks]=\"node.marks\" [text]=\"node.text || ''\" />\n }\n\n @case (BLOCKS.HEADING) {\n <dotcms-block-editor-renderer-heading\n [style]=\"node.attrs || {}\"\n [level]=\"node.attrs?.['level'] || '1'\">\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-heading>\n }\n\n @case (BLOCKS.BULLET_LIST) {\n <dotcms-block-editor-renderer-bullet-list>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-bullet-list>\n }\n\n @case (BLOCKS.ORDERED_LIST) {\n <dotcms-block-editor-renderer-ordered-list>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-ordered-list>\n }\n\n @case (BLOCKS.LIST_ITEM) {\n <dotcms-block-editor-renderer-list-item>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-list-item>\n }\n\n @case (BLOCKS.BLOCK_QUOTE) {\n <dotcms-block-editor-renderer-block-quote>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-block-quote>\n }\n\n @case (BLOCKS.CODE_BLOCK) {\n <dotcms-block-editor-renderer-code-block>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-code-block>\n }\n\n @case (BLOCKS.HARDBREAK) {\n <br />\n }\n\n @case (BLOCKS.HORIZONTAL_RULE) {\n <hr />\n }\n\n @case (BLOCKS.DOT_IMAGE) {\n <dotcms-block-editor-renderer-image [attrs]=\"node.attrs || {}\" />\n }\n\n @case (BLOCKS.DOT_VIDEO) {\n <dotcms-block-editor-renderer-video [attrs]=\"node.attrs || {}\" />\n }\n\n @case (BLOCKS.TABLE) {\n <dotcms-block-editor-renderer-table [content]=\"node.content\" />\n }\n\n @case (BLOCKS.DOT_CONTENT) {\n <dotcms-block-editor-renderer-contentlet\n [attrs]=\"node.attrs || {}\"\n [customRenderers]=\"customRenderers\" />\n }\n\n @default {\n <div>Unknown Block Type: {{ node.type }}</div>\n }\n }\n }\n}\n\n<ng-template #customRender let-customRender=\"customRender\" let-node=\"node\">\n <ng-container\n *ngComponentOutlet=\"customRender | async; inputs: { content: node }\"></ng-container>\n</ng-template>\n" }]
37
+ DotContentletBlock,
38
+ DotUnknownBlockComponent
39
+ ], template: "@for (node of content; track node) {\n @if (customRenderers?.[node.type]) {\n <ng-container\n *ngTemplateOutlet=\"\n customRender;\n context: { customRender: customRenderers?.[node.type], node: node }\n \"></ng-container>\n } @else {\n @switch (node.type) {\n @case (BLOCKS.PARAGRAPH) {\n <dotcms-block-editor-renderer-paragraph [style]=\"node.attrs\">\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-paragraph>\n }\n\n @case (BLOCKS.TEXT) {\n <dotcms-block-editor-renderer-text [marks]=\"node.marks\" [text]=\"node.text || ''\" />\n }\n\n @case (BLOCKS.HEADING) {\n <dotcms-block-editor-renderer-heading\n [style]=\"node.attrs || {}\"\n [level]=\"node.attrs?.['level'] || '1'\">\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-heading>\n }\n\n @case (BLOCKS.BULLET_LIST) {\n <dotcms-block-editor-renderer-bullet-list>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-bullet-list>\n }\n\n @case (BLOCKS.ORDERED_LIST) {\n <dotcms-block-editor-renderer-ordered-list>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-ordered-list>\n }\n\n @case (BLOCKS.LIST_ITEM) {\n <dotcms-block-editor-renderer-list-item>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-list-item>\n }\n\n @case (BLOCKS.BLOCK_QUOTE) {\n <dotcms-block-editor-renderer-block-quote>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-block-quote>\n }\n\n @case (BLOCKS.CODE_BLOCK) {\n <dotcms-block-editor-renderer-code-block>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-code-block>\n }\n\n @case (BLOCKS.HARDBREAK) {\n <br />\n }\n\n @case (BLOCKS.HORIZONTAL_RULE) {\n <hr />\n }\n\n @case (BLOCKS.DOT_IMAGE) {\n <dotcms-block-editor-renderer-image [attrs]=\"node.attrs || {}\" />\n }\n\n @case (BLOCKS.DOT_VIDEO) {\n <dotcms-block-editor-renderer-video [attrs]=\"node.attrs || {}\" />\n }\n\n @case (BLOCKS.TABLE) {\n <dotcms-block-editor-renderer-table [content]=\"node.content\" />\n }\n\n @case (BLOCKS.DOT_CONTENT) {\n <dotcms-block-editor-renderer-contentlet\n [attrs]=\"node.attrs || {}\"\n [customRenderers]=\"customRenderers\" />\n }\n\n @default {\n <dotcms-block-editor-renderer-unknown [node]=\"node\" />\n }\n }\n }\n}\n\n<ng-template #customRender let-customRender=\"customRender\" let-node=\"node\">\n <ng-container\n *ngComponentOutlet=\"customRender | async; inputs: { content: node }\"></ng-container>\n</ng-template>\n" }]
38
40
  }], propDecorators: { content: [{
39
41
  type: Input
40
42
  }], customRenderers: [{
41
43
  type: Input
42
44
  }] } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWJsb2NrLWVkaXRvci1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvbmV4dC9jb21wb25lbnRzL2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXIvaXRlbS9kb3RjbXMtYmxvY2stZWRpdG9yLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9uZXh0L2NvbXBvbmVudHMvZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci9pdGVtL2RvdGNtcy1ibG9jay1lZGl0b3ItaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakYsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQTBCMUQsTUFBTSxPQUFPLDhCQUE4QjtJQXZCM0M7UUEyQkksV0FBTSxHQUFHLHdCQUF3QixDQUFDO0tBQ3JDOzhHQUxZLDhCQUE4QjtrR0FBOUIsOEJBQThCLGtLQ3RDM0MsaXBJQTRHQSwwRER0RWEsOEJBQThCLHVIQWpCbkMsZ0JBQWdCLG9KQUNoQixpQkFBaUIsK09BQ2pCLFNBQVMsOENBQ1QsaUJBQWlCLG1GQUNqQixZQUFZLHlHQUNaLGVBQWUsb0dBQ2YsYUFBYSxxRkFDYixjQUFjLHNGQUNkLFdBQVcsbUZBQ1gsWUFBWSxvRkFDWixhQUFhLHFGQUNiLGFBQWEsa0dBQ2IsYUFBYSxrR0FDYixhQUFhLG9HQUNiLGtCQUFrQjs7MkZBR2IsOEJBQThCO2tCQXZCMUMsU0FBUzsrQkFDSSxvQ0FBb0MsY0FDbEMsSUFBSSxXQUdQO3dCQUNMLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixTQUFTO3dCQUNULGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixrQkFBa0I7cUJBQ3JCOzhCQUdRLE9BQU87c0JBQWYsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NvbXBvbmVudE91dGxldCwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJsb2NrRWRpdG9yTm9kZSB9IGZyb20gJ0Bkb3RjbXMvdHlwZXMnO1xuaW1wb3J0IHsgQmxvY2tFZGl0b3JEZWZhdWx0QmxvY2tzIH0gZnJvbSAnQGRvdGNtcy90eXBlcy9pbnRlcm5hbCc7XG5cbmltcG9ydCB7IERvdENvZGVCbG9jaywgRG90QmxvY2tRdW90ZSB9IGZyb20gJy4uL2Jsb2Nrcy9jb2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEb3RDb250ZW50bGV0QmxvY2sgfSBmcm9tICcuLi9ibG9ja3MvY29udGVudGxldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG90SW1hZ2VCbG9jayB9IGZyb20gJy4uL2Jsb2Nrcy9pbWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG90QnVsbGV0TGlzdCwgRG90T3JkZXJlckxpc3QsIERvdExpc3RJdGVtIH0gZnJvbSAnLi4vYmxvY2tzL2xpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IERvdFRhYmxlQmxvY2sgfSBmcm9tICcuLi9ibG9ja3MvdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IERvdFBhcmFncmFwaEJsb2NrLCBEb3RUZXh0QmxvY2ssIERvdEhlYWRpbmdCbG9jayB9IGZyb20gJy4uL2Jsb2Nrcy90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEb3RWaWRlb0Jsb2NrIH0gZnJvbSAnLi4vYmxvY2tzL3ZpZGVvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXN0b21SZW5kZXJlciB9IGZyb20gJy4uL2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWJsb2NrJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kb3RjbXMtYmxvY2stZWRpdG9yLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RvdGNtcy1ibG9jay1lZGl0b3ItaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgTmdDb21wb25lbnRPdXRsZXQsXG4gICAgICAgIEFzeW5jUGlwZSxcbiAgICAgICAgRG90UGFyYWdyYXBoQmxvY2ssXG4gICAgICAgIERvdFRleHRCbG9jayxcbiAgICAgICAgRG90SGVhZGluZ0Jsb2NrLFxuICAgICAgICBEb3RCdWxsZXRMaXN0LFxuICAgICAgICBEb3RPcmRlcmVyTGlzdCxcbiAgICAgICAgRG90TGlzdEl0ZW0sXG4gICAgICAgIERvdENvZGVCbG9jayxcbiAgICAgICAgRG90QmxvY2tRdW90ZSxcbiAgICAgICAgRG90SW1hZ2VCbG9jayxcbiAgICAgICAgRG90VmlkZW9CbG9jayxcbiAgICAgICAgRG90VGFibGVCbG9jayxcbiAgICAgICAgRG90Q29udGVudGxldEJsb2NrXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEb3RDTVNCbG9ja0VkaXRvckl0ZW1Db21wb25lbnQge1xuICAgIEBJbnB1dCgpIGNvbnRlbnQ6IEJsb2NrRWRpdG9yTm9kZVtdIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIGN1c3RvbVJlbmRlcmVyczogQ3VzdG9tUmVuZGVyZXIgfCB1bmRlZmluZWQ7XG5cbiAgICBCTE9DS1MgPSBCbG9ja0VkaXRvckRlZmF1bHRCbG9ja3M7XG59XG4iLCJAZm9yIChub2RlIG9mIGNvbnRlbnQ7IHRyYWNrIG5vZGUpIHtcbiAgICBAaWYgKGN1c3RvbVJlbmRlcmVycz8uW25vZGUudHlwZV0pIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICBjdXN0b21SZW5kZXI7XG4gICAgICAgICAgICAgICAgY29udGV4dDogeyBjdXN0b21SZW5kZXI6IGN1c3RvbVJlbmRlcmVycz8uW25vZGUudHlwZV0sIG5vZGU6IG5vZGUgfVxuICAgICAgICAgICAgXCI+PC9uZy1jb250YWluZXI+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEBzd2l0Y2ggKG5vZGUudHlwZSkge1xuICAgICAgICAgICAgQGNhc2UgKEJMT0NLUy5QQVJBR1JBUEgpIHtcbiAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1wYXJhZ3JhcGggW3N0eWxlXT1cIm5vZGUuYXR0cnNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZW50XT1cIm5vZGUuY29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY3VzdG9tUmVuZGVyZXJzXT1cImN1c3RvbVJlbmRlcmVyc1wiIC8+XG4gICAgICAgICAgICAgICAgPC9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLXBhcmFncmFwaD5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGNhc2UgKEJMT0NLUy5URVhUKSB7XG4gICAgICAgICAgICAgICAgPGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItdGV4dCBbbWFya3NdPVwibm9kZS5tYXJrc1wiIFt0ZXh0XT1cIm5vZGUudGV4dCB8fCAnJ1wiIC8+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBjYXNlIChCTE9DS1MuSEVBRElORykge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWhlYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cIm5vZGUuYXR0cnMgfHwge31cIlxuICAgICAgICAgICAgICAgICAgICBbbGV2ZWxdPVwibm9kZS5hdHRycz8uWydsZXZlbCddIHx8ICcxJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1ibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnRdPVwibm9kZS5jb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21SZW5kZXJlcnNdPVwiY3VzdG9tUmVuZGVyZXJzXCIgLz5cbiAgICAgICAgICAgICAgICA8L2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItaGVhZGluZz5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGNhc2UgKEJMT0NLUy5CVUxMRVRfTElTVCkge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWJ1bGxldC1saXN0PlxuICAgICAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1ibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnRdPVwibm9kZS5jb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21SZW5kZXJlcnNdPVwiY3VzdG9tUmVuZGVyZXJzXCIgLz5cbiAgICAgICAgICAgICAgICA8L2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItYnVsbGV0LWxpc3Q+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBjYXNlIChCTE9DS1MuT1JERVJFRF9MSVNUKSB7XG4gICAgICAgICAgICAgICAgPGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItb3JkZXJlZC1saXN0PlxuICAgICAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1ibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnRdPVwibm9kZS5jb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21SZW5kZXJlcnNdPVwiY3VzdG9tUmVuZGVyZXJzXCIgLz5cbiAgICAgICAgICAgICAgICA8L2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItb3JkZXJlZC1saXN0PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAY2FzZSAoQkxPQ0tTLkxJU1RfSVRFTSkge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgPGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZW50XT1cIm5vZGUuY29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY3VzdG9tUmVuZGVyZXJzXT1cImN1c3RvbVJlbmRlcmVyc1wiIC8+XG4gICAgICAgICAgICAgICAgPC9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWxpc3QtaXRlbT5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGNhc2UgKEJMT0NLUy5CTE9DS19RVU9URSkge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWJsb2NrLXF1b3RlPlxuICAgICAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1ibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnRdPVwibm9kZS5jb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21SZW5kZXJlcnNdPVwiY3VzdG9tUmVuZGVyZXJzXCIgLz5cbiAgICAgICAgICAgICAgICA8L2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItYmxvY2stcXVvdGU+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBjYXNlIChCTE9DS1MuQ09ERV9CTE9DSykge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWNvZGUtYmxvY2s+XG4gICAgICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWJsb2NrXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29udGVudF09XCJub2RlLmNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2N1c3RvbVJlbmRlcmVyc109XCJjdXN0b21SZW5kZXJlcnNcIiAvPlxuICAgICAgICAgICAgICAgIDwvZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1jb2RlLWJsb2NrPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAY2FzZSAoQkxPQ0tTLkhBUkRCUkVBSykge1xuICAgICAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAY2FzZSAoQkxPQ0tTLkhPUklaT05UQUxfUlVMRSkge1xuICAgICAgICAgICAgICAgIDxociAvPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAY2FzZSAoQkxPQ0tTLkRPVF9JTUFHRSkge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWltYWdlIFthdHRyc109XCJub2RlLmF0dHJzIHx8IHt9XCIgLz5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGNhc2UgKEJMT0NLUy5ET1RfVklERU8pIHtcbiAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci12aWRlbyBbYXR0cnNdPVwibm9kZS5hdHRycyB8fCB7fVwiIC8+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBjYXNlIChCTE9DS1MuVEFCTEUpIHtcbiAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci10YWJsZSBbY29udGVudF09XCJub2RlLmNvbnRlbnRcIiAvPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAY2FzZSAoQkxPQ0tTLkRPVF9DT05URU5UKSB7XG4gICAgICAgICAgICAgICAgPGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItY29udGVudGxldFxuICAgICAgICAgICAgICAgICAgICBbYXR0cnNdPVwibm9kZS5hdHRycyB8fCB7fVwiXG4gICAgICAgICAgICAgICAgICAgIFtjdXN0b21SZW5kZXJlcnNdPVwiY3VzdG9tUmVuZGVyZXJzXCIgLz5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgICAgIDxkaXY+VW5rbm93biBCbG9jayBUeXBlOiB7eyBub2RlLnR5cGUgfX08L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuPG5nLXRlbXBsYXRlICNjdXN0b21SZW5kZXIgbGV0LWN1c3RvbVJlbmRlcj1cImN1c3RvbVJlbmRlclwiIGxldC1ub2RlPVwibm9kZVwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nQ29tcG9uZW50T3V0bGV0PVwiY3VzdG9tUmVuZGVyIHwgYXN5bmM7IGlucHV0czogeyBjb250ZW50OiBub2RlIH1cIj48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWJsb2NrLWVkaXRvci1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvbmV4dC9jb21wb25lbnRzL2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXIvaXRlbS9kb3RjbXMtYmxvY2stZWRpdG9yLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9uZXh0L2NvbXBvbmVudHMvZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci9pdGVtL2RvdGNtcy1ibG9jay1lZGl0b3ItaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakYsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQTJCMUQsTUFBTSxPQUFPLDhCQUE4QjtJQXhCM0M7UUE0QkksV0FBTSxHQUFHLHdCQUF3QixDQUFDO0tBQ3JDOzhHQUxZLDhCQUE4QjtrR0FBOUIsOEJBQThCLGtLQ3hDM0MsMnBJQTRHQSwwRERwRWEsOEJBQThCLHVIQWxCbkMsZ0JBQWdCLG9KQUNoQixpQkFBaUIsK09BQ2pCLFNBQVMsOENBQ1QsaUJBQWlCLG1GQUNqQixZQUFZLHlHQUNaLGVBQWUsb0dBQ2YsYUFBYSxxRkFDYixjQUFjLHNGQUNkLFdBQVcsbUZBQ1gsWUFBWSxvRkFDWixhQUFhLHFGQUNiLGFBQWEsa0dBQ2IsYUFBYSxrR0FDYixhQUFhLG9HQUNiLGtCQUFrQiwwSEFDbEIsd0JBQXdCOzsyRkFHbkIsOEJBQThCO2tCQXhCMUMsU0FBUzsrQkFDSSxvQ0FBb0MsY0FDbEMsSUFBSSxXQUdQO3dCQUNMLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixTQUFTO3dCQUNULGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLHdCQUF3QjtxQkFDM0I7OEJBR1EsT0FBTztzQkFBZixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nQ29tcG9uZW50T3V0bGV0LCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmxvY2tFZGl0b3JOb2RlIH0gZnJvbSAnQGRvdGNtcy90eXBlcyc7XG5pbXBvcnQgeyBCbG9ja0VkaXRvckRlZmF1bHRCbG9ja3MgfSBmcm9tICdAZG90Y21zL3R5cGVzL2ludGVybmFsJztcblxuaW1wb3J0IHsgRG90Q29kZUJsb2NrLCBEb3RCbG9ja1F1b3RlIH0gZnJvbSAnLi4vYmxvY2tzL2NvZGUuY29tcG9uZW50JztcbmltcG9ydCB7IERvdENvbnRlbnRsZXRCbG9jayB9IGZyb20gJy4uL2Jsb2Nrcy9kb3QtY29udGVudGxldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG90SW1hZ2VCbG9jayB9IGZyb20gJy4uL2Jsb2Nrcy9pbWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG90QnVsbGV0TGlzdCwgRG90T3JkZXJlckxpc3QsIERvdExpc3RJdGVtIH0gZnJvbSAnLi4vYmxvY2tzL2xpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IERvdFRhYmxlQmxvY2sgfSBmcm9tICcuLi9ibG9ja3MvdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IERvdFBhcmFncmFwaEJsb2NrLCBEb3RUZXh0QmxvY2ssIERvdEhlYWRpbmdCbG9jayB9IGZyb20gJy4uL2Jsb2Nrcy90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEb3RVbmtub3duQmxvY2tDb21wb25lbnQgfSBmcm9tICcuLi9ibG9ja3MvdW5rbm93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG90VmlkZW9CbG9jayB9IGZyb20gJy4uL2Jsb2Nrcy92aWRlby5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tUmVuZGVyZXIgfSBmcm9tICcuLi9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1ibG9jaycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZG90Y21zLWJsb2NrLWVkaXRvci1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kb3RjbXMtYmxvY2stZWRpdG9yLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIE5nQ29tcG9uZW50T3V0bGV0LFxuICAgICAgICBBc3luY1BpcGUsXG4gICAgICAgIERvdFBhcmFncmFwaEJsb2NrLFxuICAgICAgICBEb3RUZXh0QmxvY2ssXG4gICAgICAgIERvdEhlYWRpbmdCbG9jayxcbiAgICAgICAgRG90QnVsbGV0TGlzdCxcbiAgICAgICAgRG90T3JkZXJlckxpc3QsXG4gICAgICAgIERvdExpc3RJdGVtLFxuICAgICAgICBEb3RDb2RlQmxvY2ssXG4gICAgICAgIERvdEJsb2NrUXVvdGUsXG4gICAgICAgIERvdEltYWdlQmxvY2ssXG4gICAgICAgIERvdFZpZGVvQmxvY2ssXG4gICAgICAgIERvdFRhYmxlQmxvY2ssXG4gICAgICAgIERvdENvbnRlbnRsZXRCbG9jayxcbiAgICAgICAgRG90VW5rbm93bkJsb2NrQ29tcG9uZW50XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEb3RDTVNCbG9ja0VkaXRvckl0ZW1Db21wb25lbnQge1xuICAgIEBJbnB1dCgpIGNvbnRlbnQ6IEJsb2NrRWRpdG9yTm9kZVtdIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIGN1c3RvbVJlbmRlcmVyczogQ3VzdG9tUmVuZGVyZXIgfCB1bmRlZmluZWQ7XG5cbiAgICBCTE9DS1MgPSBCbG9ja0VkaXRvckRlZmF1bHRCbG9ja3M7XG59XG4iLCJAZm9yIChub2RlIG9mIGNvbnRlbnQ7IHRyYWNrIG5vZGUpIHtcbiAgICBAaWYgKGN1c3RvbVJlbmRlcmVycz8uW25vZGUudHlwZV0pIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICBjdXN0b21SZW5kZXI7XG4gICAgICAgICAgICAgICAgY29udGV4dDogeyBjdXN0b21SZW5kZXI6IGN1c3RvbVJlbmRlcmVycz8uW25vZGUudHlwZV0sIG5vZGU6IG5vZGUgfVxuICAgICAgICAgICAgXCI+PC9uZy1jb250YWluZXI+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEBzd2l0Y2ggKG5vZGUudHlwZSkge1xuICAgICAgICAgICAgQGNhc2UgKEJMT0NLUy5QQVJBR1JBUEgpIHtcbiAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1wYXJhZ3JhcGggW3N0eWxlXT1cIm5vZGUuYXR0cnNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZW50XT1cIm5vZGUuY29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY3VzdG9tUmVuZGVyZXJzXT1cImN1c3RvbVJlbmRlcmVyc1wiIC8+XG4gICAgICAgICAgICAgICAgPC9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLXBhcmFncmFwaD5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGNhc2UgKEJMT0NLUy5URVhUKSB7XG4gICAgICAgICAgICAgICAgPGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItdGV4dCBbbWFya3NdPVwibm9kZS5tYXJrc1wiIFt0ZXh0XT1cIm5vZGUudGV4dCB8fCAnJ1wiIC8+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBjYXNlIChCTE9DS1MuSEVBRElORykge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWhlYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cIm5vZGUuYXR0cnMgfHwge31cIlxuICAgICAgICAgICAgICAgICAgICBbbGV2ZWxdPVwibm9kZS5hdHRycz8uWydsZXZlbCddIHx8ICcxJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1ibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnRdPVwibm9kZS5jb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21SZW5kZXJlcnNdPVwiY3VzdG9tUmVuZGVyZXJzXCIgLz5cbiAgICAgICAgICAgICAgICA8L2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItaGVhZGluZz5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGNhc2UgKEJMT0NLUy5CVUxMRVRfTElTVCkge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWJ1bGxldC1saXN0PlxuICAgICAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1ibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnRdPVwibm9kZS5jb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21SZW5kZXJlcnNdPVwiY3VzdG9tUmVuZGVyZXJzXCIgLz5cbiAgICAgICAgICAgICAgICA8L2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItYnVsbGV0LWxpc3Q+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBjYXNlIChCTE9DS1MuT1JERVJFRF9MSVNUKSB7XG4gICAgICAgICAgICAgICAgPGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItb3JkZXJlZC1saXN0PlxuICAgICAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1ibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnRdPVwibm9kZS5jb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21SZW5kZXJlcnNdPVwiY3VzdG9tUmVuZGVyZXJzXCIgLz5cbiAgICAgICAgICAgICAgICA8L2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItb3JkZXJlZC1saXN0PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAY2FzZSAoQkxPQ0tTLkxJU1RfSVRFTSkge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgPGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZW50XT1cIm5vZGUuY29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY3VzdG9tUmVuZGVyZXJzXT1cImN1c3RvbVJlbmRlcmVyc1wiIC8+XG4gICAgICAgICAgICAgICAgPC9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWxpc3QtaXRlbT5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGNhc2UgKEJMT0NLUy5CTE9DS19RVU9URSkge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWJsb2NrLXF1b3RlPlxuICAgICAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1ibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnRdPVwibm9kZS5jb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21SZW5kZXJlcnNdPVwiY3VzdG9tUmVuZGVyZXJzXCIgLz5cbiAgICAgICAgICAgICAgICA8L2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItYmxvY2stcXVvdGU+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBjYXNlIChCTE9DS1MuQ09ERV9CTE9DSykge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWNvZGUtYmxvY2s+XG4gICAgICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWJsb2NrXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29udGVudF09XCJub2RlLmNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2N1c3RvbVJlbmRlcmVyc109XCJjdXN0b21SZW5kZXJlcnNcIiAvPlxuICAgICAgICAgICAgICAgIDwvZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1jb2RlLWJsb2NrPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAY2FzZSAoQkxPQ0tTLkhBUkRCUkVBSykge1xuICAgICAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAY2FzZSAoQkxPQ0tTLkhPUklaT05UQUxfUlVMRSkge1xuICAgICAgICAgICAgICAgIDxociAvPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAY2FzZSAoQkxPQ0tTLkRPVF9JTUFHRSkge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWltYWdlIFthdHRyc109XCJub2RlLmF0dHJzIHx8IHt9XCIgLz5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGNhc2UgKEJMT0NLUy5ET1RfVklERU8pIHtcbiAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci12aWRlbyBbYXR0cnNdPVwibm9kZS5hdHRycyB8fCB7fVwiIC8+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBjYXNlIChCTE9DS1MuVEFCTEUpIHtcbiAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci10YWJsZSBbY29udGVudF09XCJub2RlLmNvbnRlbnRcIiAvPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAY2FzZSAoQkxPQ0tTLkRPVF9DT05URU5UKSB7XG4gICAgICAgICAgICAgICAgPGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItY29udGVudGxldFxuICAgICAgICAgICAgICAgICAgICBbYXR0cnNdPVwibm9kZS5hdHRycyB8fCB7fVwiXG4gICAgICAgICAgICAgICAgICAgIFtjdXN0b21SZW5kZXJlcnNdPVwiY3VzdG9tUmVuZGVyZXJzXCIgLz5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLXVua25vd24gW25vZGVdPVwibm9kZVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbjxuZy10ZW1wbGF0ZSAjY3VzdG9tUmVuZGVyIGxldC1jdXN0b21SZW5kZXI9XCJjdXN0b21SZW5kZXJcIiBsZXQtbm9kZT1cIm5vZGVcIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0NvbXBvbmVudE91dGxldD1cImN1c3RvbVJlbmRlciB8IGFzeW5jOyBpbnB1dHM6IHsgY29udGVudDogbm9kZSB9XCI+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19