@pepperi-addons/ngx-composite-lib 0.4.2-beta.7 → 0.4.2-beta.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/color-settings/color-settings.component.d.ts +3 -2
- package/core/common/services/dimx.service.d.ts +4 -0
- package/esm2020/color-settings/color-settings.component.mjs +6 -3
- package/esm2020/core/common/directives/reset-configuration-field.directive.mjs +5 -4
- package/esm2020/core/common/services/dimx.service.mjs +1 -1
- package/esm2020/file-status-panel/file-status-panel.module.mjs +23 -3
- package/esm2020/flow-picker-button/flow-picker-button.component.mjs +94 -0
- package/esm2020/flow-picker-button/flow-picker-button.module.mjs +36 -0
- package/esm2020/flow-picker-button/flow-picker-button.service.mjs +21 -0
- package/esm2020/flow-picker-button/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs +5 -0
- package/esm2020/flow-picker-button/public-api.mjs +6 -0
- package/esm2020/generic-list/generic-list.component.mjs +64 -7
- package/esm2020/generic-list/generic-list.service.mjs +6 -2
- package/esm2020/group-buttons-settings/group-buttons-settings.component.mjs +17 -4
- package/esm2020/group-buttons-settings/group-buttons-settings.model.mjs +1 -1
- package/esm2020/icon-picker/icon-picker.component.mjs +79 -0
- package/esm2020/icon-picker/icon-picker.module.mjs +44 -0
- package/esm2020/icon-picker/icon-picker.service.mjs +17 -0
- package/esm2020/icon-picker/pepperi-addons-ngx-composite-lib-icon-picker.mjs +5 -0
- package/esm2020/icon-picker/public-api.mjs +6 -0
- package/esm2020/layout-builder/hide-in/hide-in.component.mjs +54 -0
- package/esm2020/layout-builder/hide-in/hide-in.module.mjs +81 -0
- package/esm2020/layout-builder/layout/layout.component.mjs +204 -0
- package/esm2020/layout-builder/layout/layout.module.mjs +58 -0
- package/esm2020/layout-builder/layout-builder-internal.service.mjs +655 -0
- package/esm2020/layout-builder/layout-builder.component.mjs +205 -0
- package/esm2020/layout-builder/layout-builder.model.mjs +6 -0
- package/esm2020/layout-builder/layout-builder.module.mjs +136 -0
- package/esm2020/layout-builder/layout-builder.service.mjs +33 -0
- package/esm2020/layout-builder/layout-editor/layout-editor.component.mjs +156 -0
- package/esm2020/layout-builder/layout-editor/layout-editor.module.mjs +109 -0
- package/esm2020/layout-builder/pepperi-addons-ngx-composite-lib-layout-builder.mjs +5 -0
- package/esm2020/layout-builder/public-api.mjs +10 -0
- package/esm2020/layout-builder/section/section.component.mjs +298 -0
- package/esm2020/layout-builder/section/section.module.mjs +45 -0
- package/esm2020/layout-builder/section-block/section-block.component.mjs +109 -0
- package/esm2020/layout-builder/section-block/section-block.module.mjs +48 -0
- package/esm2020/layout-builder/section-editor/section-editor.component.mjs +191 -0
- package/esm2020/layout-builder/section-editor/section-editor.module.mjs +40 -0
- package/esm2020/manage-parameters/manage-parameter/manage-parameter.component.mjs +82 -0
- package/esm2020/manage-parameters/manage-parameters.component.mjs +153 -0
- package/esm2020/manage-parameters/manage-parameters.model.mjs +24 -0
- package/esm2020/manage-parameters/manage-parameters.module.mjs +45 -0
- package/esm2020/manage-parameters/manage-parameters.service.mjs +142 -0
- package/esm2020/manage-parameters/pepperi-addons-ngx-composite-lib-manage-parameters.mjs +5 -0
- package/esm2020/manage-parameters/public-api.mjs +8 -0
- package/esm2020/rich-text/pepperi-addons-ngx-composite-lib-rich-text.mjs +5 -0
- package/esm2020/rich-text/public-api.mjs +6 -0
- package/esm2020/rich-text/rich-text.component.mjs +154 -0
- package/esm2020/rich-text/rich-text.module.mjs +52 -0
- package/esm2020/rich-text/rich-text.service.mjs +21 -0
- package/esm2020/shadow-settings/shadow-settings.component.mjs +7 -4
- package/esm2020/show-if-badge/pepperi-addons-ngx-composite-lib-show-if-badge.mjs +5 -0
- package/esm2020/show-if-badge/public-api.mjs +6 -0
- package/esm2020/show-if-badge/show-if-badge.component.mjs +44 -0
- package/esm2020/show-if-badge/show-if-badge.module.mjs +50 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-color-settings.mjs +5 -2
- package/fesm2015/pepperi-addons-ngx-composite-lib-color-settings.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-file-status-panel.mjs +22 -3
- package/fesm2015/pepperi-addons-ngx-composite-lib-file-status-panel.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs +161 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-generic-list.mjs +70 -7
- package/fesm2015/pepperi-addons-ngx-composite-lib-generic-list.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs +16 -3
- package/fesm2015/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-icon-picker.mjs +146 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-icon-picker.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-layout-builder.mjs +2307 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-layout-builder.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-manage-parameters.mjs +441 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-manage-parameters.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-rich-text.mjs +234 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-rich-text.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-shadow-settings.mjs +6 -3
- package/fesm2015/pepperi-addons-ngx-composite-lib-shadow-settings.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-show-if-badge.mjs +100 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-show-if-badge.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib.mjs +4 -3
- package/fesm2015/pepperi-addons-ngx-composite-lib.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-composite-lib-color-settings.mjs +5 -2
- package/fesm2020/pepperi-addons-ngx-composite-lib-color-settings.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-composite-lib-file-status-panel.mjs +22 -3
- package/fesm2020/pepperi-addons-ngx-composite-lib-file-status-panel.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs +155 -0
- package/fesm2020/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-composite-lib-generic-list.mjs +68 -7
- package/fesm2020/pepperi-addons-ngx-composite-lib-generic-list.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs +16 -3
- package/fesm2020/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-composite-lib-icon-picker.mjs +145 -0
- package/fesm2020/pepperi-addons-ngx-composite-lib-icon-picker.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-composite-lib-layout-builder.mjs +2286 -0
- package/fesm2020/pepperi-addons-ngx-composite-lib-layout-builder.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-composite-lib-manage-parameters.mjs +438 -0
- package/fesm2020/pepperi-addons-ngx-composite-lib-manage-parameters.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-composite-lib-rich-text.mjs +230 -0
- package/fesm2020/pepperi-addons-ngx-composite-lib-rich-text.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-composite-lib-shadow-settings.mjs +6 -3
- package/fesm2020/pepperi-addons-ngx-composite-lib-shadow-settings.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-composite-lib-show-if-badge.mjs +100 -0
- package/fesm2020/pepperi-addons-ngx-composite-lib-show-if-badge.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-composite-lib.mjs +4 -3
- package/fesm2020/pepperi-addons-ngx-composite-lib.mjs.map +1 -1
- package/flow-picker-button/flow-picker-button.component.d.ts +27 -0
- package/flow-picker-button/flow-picker-button.module.d.ts +11 -0
- package/flow-picker-button/flow-picker-button.service.d.ts +9 -0
- package/flow-picker-button/index.d.ts +5 -0
- package/flow-picker-button/public-api.d.ts +2 -0
- package/generic-list/generic-list.component.d.ts +17 -5
- package/generic-list/generic-list.service.d.ts +2 -1
- package/group-buttons-settings/group-buttons-settings.component.d.ts +5 -2
- package/group-buttons-settings/group-buttons-settings.model.d.ts +1 -1
- package/icon-picker/icon-picker.component.d.ts +24 -0
- package/icon-picker/icon-picker.module.d.ts +13 -0
- package/icon-picker/icon-picker.service.d.ts +8 -0
- package/icon-picker/index.d.ts +5 -0
- package/icon-picker/public-api.d.ts +2 -0
- package/layout-builder/hide-in/hide-in.component.d.ts +25 -0
- package/layout-builder/hide-in/hide-in.component.theme.scss +9 -0
- package/layout-builder/hide-in/hide-in.module.d.ts +20 -0
- package/layout-builder/index.d.ts +5 -0
- package/layout-builder/layout/layout.component.d.ts +51 -0
- package/layout-builder/layout/layout.module.d.ts +17 -0
- package/layout-builder/layout-builder-internal.service.d.ts +107 -0
- package/layout-builder/layout-builder.component.d.ts +51 -0
- package/layout-builder/layout-builder.component.theme.scss +56 -0
- package/layout-builder/layout-builder.model.d.ts +51 -0
- package/layout-builder/layout-builder.module.d.ts +32 -0
- package/layout-builder/layout-builder.service.d.ts +14 -0
- package/layout-builder/layout-editor/layout-editor.component.d.ts +49 -0
- package/layout-builder/layout-editor/layout-editor.module.d.ts +28 -0
- package/layout-builder/public-api.d.ts +6 -0
- package/layout-builder/section/section.component.d.ts +76 -0
- package/layout-builder/section/section.component.theme.scss +115 -0
- package/layout-builder/section/section.module.d.ts +14 -0
- package/layout-builder/section-block/section-block.component.d.ts +39 -0
- package/layout-builder/section-block/section-block.component.theme.scss +13 -0
- package/layout-builder/section-block/section-block.module.d.ts +13 -0
- package/layout-builder/section-editor/section-editor.component.d.ts +53 -0
- package/layout-builder/section-editor/section-editor.module.d.ts +13 -0
- package/manage-parameters/index.d.ts +5 -0
- package/manage-parameters/manage-parameter/manage-parameter.component.d.ts +28 -0
- package/manage-parameters/manage-parameters.component.d.ts +33 -0
- package/manage-parameters/manage-parameters.model.d.ts +21 -0
- package/manage-parameters/manage-parameters.module.d.ts +14 -0
- package/manage-parameters/manage-parameters.service.d.ts +16 -0
- package/manage-parameters/public-api.d.ts +3 -0
- package/package.json +50 -2
- package/rich-text/index.d.ts +5 -0
- package/rich-text/public-api.d.ts +2 -0
- package/rich-text/rich-text.component.d.ts +43 -0
- package/rich-text/rich-text.module.d.ts +16 -0
- package/rich-text/rich-text.service.d.ts +9 -0
- package/shadow-settings/shadow-settings.component.d.ts +2 -1
- package/show-if-badge/index.d.ts +5 -0
- package/show-if-badge/public-api.d.ts +2 -0
- package/show-if-badge/show-if-badge.component.d.ts +20 -0
- package/show-if-badge/show-if-badge.module.d.ts +16 -0
- package/src/assets/i18n/en.ngx-composite-lib.json +77 -4
- package/src/assets/images/brand-leaf-full@1x.png +0 -0
- package/src/assets/images/brand-leaf-full@2x.png +0 -0
- package/src/assets/images/brand-leaf-round.png +0 -0
- package/src/assets/images/brand-leaf-round@2x.png +0 -0
- package/src/assets/images/brand-leaf-skiny@1x.png +0 -0
- package/src/assets/images/brand-leaf-skiny@2x.png +0 -0
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { ElementRef, ViewChild, Component, EventEmitter, Input, Output, HostListener } from '@angular/core';
|
|
2
|
+
import { BaseDestroyerDirective } from '@pepperi-addons/ngx-lib';
|
|
3
|
+
import { pepIconDeviceDesktop, pepIconDeviceMobile, pepIconDeviceTablet } from '@pepperi-addons/ngx-lib/icon';
|
|
4
|
+
import { PepSideBarComponent } from '@pepperi-addons/ngx-lib/side-bar';
|
|
5
|
+
import { coerceNumberProperty } from '@angular/cdk/coercion';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@ngx-translate/core";
|
|
8
|
+
import * as i2 from "./layout-builder-internal.service";
|
|
9
|
+
import * as i3 from "@pepperi-addons/ngx-lib";
|
|
10
|
+
import * as i4 from "@angular/common";
|
|
11
|
+
import * as i5 from "@pepperi-addons/ngx-lib/page-layout";
|
|
12
|
+
import * as i6 from "@pepperi-addons/ngx-lib/side-bar";
|
|
13
|
+
import * as i7 from "@pepperi-addons/ngx-lib/button";
|
|
14
|
+
import * as i8 from "@pepperi-addons/ngx-lib/group-buttons";
|
|
15
|
+
import * as i9 from "./layout-editor/layout-editor.component";
|
|
16
|
+
import * as i10 from "./section-editor/section-editor.component";
|
|
17
|
+
export class PepLayoutBuilderComponent extends BaseDestroyerDirective {
|
|
18
|
+
constructor(renderer, hostElement, translate, layoutBuilderService, pepAddonService) {
|
|
19
|
+
super();
|
|
20
|
+
this.renderer = renderer;
|
|
21
|
+
this.hostElement = hostElement;
|
|
22
|
+
this.translate = translate;
|
|
23
|
+
this.layoutBuilderService = layoutBuilderService;
|
|
24
|
+
this.pepAddonService = pepAddonService;
|
|
25
|
+
this._availableBlocksForDrag = [];
|
|
26
|
+
this._blocksLimitNumber = 0;
|
|
27
|
+
this._layoutEditorTitle = '';
|
|
28
|
+
this.backClick = new EventEmitter();
|
|
29
|
+
this.editorChange = new EventEmitter(); // blockKey
|
|
30
|
+
this.blockAdded = new EventEmitter();
|
|
31
|
+
this.blocksRemoved = new EventEmitter();
|
|
32
|
+
this.lockScreen = false;
|
|
33
|
+
this.previewMode = false;
|
|
34
|
+
this.currentEditor = null;
|
|
35
|
+
this.viewportWidth = 0;
|
|
36
|
+
this.pepAddonService.setShellRouterData({ showSidebar: false, addPadding: false });
|
|
37
|
+
this.renderer.addClass(this.hostElement.nativeElement, 'pep-layout-builder');
|
|
38
|
+
this.layoutBuilderService.setEditMode(true);
|
|
39
|
+
}
|
|
40
|
+
set availableBlocksForDrag(value) {
|
|
41
|
+
this._availableBlocksForDrag = value;
|
|
42
|
+
this.layoutBuilderService.setAvailableBlocksToDrag(value);
|
|
43
|
+
}
|
|
44
|
+
get availableBlocksForDrag() {
|
|
45
|
+
return this._availableBlocksForDrag;
|
|
46
|
+
}
|
|
47
|
+
set blocksLimitNumber(value) {
|
|
48
|
+
this._blocksLimitNumber = coerceNumberProperty(value, 0);
|
|
49
|
+
this.layoutBuilderService.setBlocksLimitNumber(this._blocksLimitNumber);
|
|
50
|
+
}
|
|
51
|
+
set layoutEditorTitle(value) {
|
|
52
|
+
this._layoutEditorTitle = value;
|
|
53
|
+
this.setLayoutEditorTitle();
|
|
54
|
+
}
|
|
55
|
+
get layoutEditorTitle() {
|
|
56
|
+
return this._layoutEditorTitle;
|
|
57
|
+
}
|
|
58
|
+
setScreenWidth(screenType) {
|
|
59
|
+
this.layoutBuilderService.setScreenWidth(screenType);
|
|
60
|
+
}
|
|
61
|
+
updateViewportWidth() {
|
|
62
|
+
if (this.layoutBuilderWrapper?.nativeElement) {
|
|
63
|
+
setTimeout(() => {
|
|
64
|
+
this.viewportWidth = this.layoutBuilderWrapper.nativeElement.clientWidth;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
setLayoutEditorTitle() {
|
|
69
|
+
if (this.currentEditor?.type === 'layout-builder' && this.layoutEditorTitle !== '') {
|
|
70
|
+
this.currentEditor.title = this.layoutEditorTitle;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
subscribeEvents() {
|
|
74
|
+
/***********************************************************************************************/
|
|
75
|
+
/* Internal Events - for code usage
|
|
76
|
+
/***********************************************************************************************/
|
|
77
|
+
this.layoutBuilderService.previewModeChange$.pipe(this.getDestroyer()).subscribe((previewMode) => {
|
|
78
|
+
this.previewMode = previewMode;
|
|
79
|
+
});
|
|
80
|
+
this.layoutBuilderService.lockScreenChange$.pipe(this.getDestroyer()).subscribe((lockScreen) => {
|
|
81
|
+
this.lockScreen = lockScreen;
|
|
82
|
+
});
|
|
83
|
+
this.layoutBuilderService.screenSizeChange$.pipe(this.getDestroyer()).subscribe((size) => {
|
|
84
|
+
const screenType = this.layoutBuilderService.getScreenType(size);
|
|
85
|
+
this.selectedScreenType = screenType;
|
|
86
|
+
});
|
|
87
|
+
// For update the layout data
|
|
88
|
+
this.layoutBuilderService.layoutViewChange$.pipe(this.getDestroyer()).subscribe((layoutView) => {
|
|
89
|
+
if (layoutView) {
|
|
90
|
+
if (this.layoutBuilderWrapper?.nativeElement) {
|
|
91
|
+
let maxWidth = coerceNumberProperty(layoutView.Layout.MaxWidth, 0);
|
|
92
|
+
const maxWidthToSet = maxWidth === 0 ? '100%' : `${maxWidth}px`;
|
|
93
|
+
this.renderer.setStyle(this.layoutBuilderWrapper.nativeElement, 'max-width', maxWidthToSet);
|
|
94
|
+
this.updateViewportWidth();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
this.layoutBuilderService.screenWidthChange$.pipe(this.getDestroyer()).subscribe((width) => {
|
|
99
|
+
if (this.layoutBuilderWrapper?.nativeElement) {
|
|
100
|
+
this.renderer.setStyle(this.layoutBuilderWrapper.nativeElement, 'width', width);
|
|
101
|
+
this.updateViewportWidth();
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
// Get the sections id's into sectionsColumnsDropList for the drag & drop.
|
|
105
|
+
this.layoutBuilderService.sectionsChange$.pipe(this.getDestroyer()).subscribe((sections) => {
|
|
106
|
+
// Concat all results into one array.
|
|
107
|
+
const sectionsColumnsDropList = [].concat(...sections.map((section) => {
|
|
108
|
+
return section.Columns.map((column, index) => this.layoutBuilderService.getSectionColumnKey(section.Key, index.toString()));
|
|
109
|
+
}));
|
|
110
|
+
this.layoutBuilderService.setSectionsColumnsDropListChange(sectionsColumnsDropList);
|
|
111
|
+
});
|
|
112
|
+
/***********************************************************************************************/
|
|
113
|
+
/* External Events - for raise to the client
|
|
114
|
+
/***********************************************************************************************/
|
|
115
|
+
// For update editor.
|
|
116
|
+
this.layoutBuilderService.editorChange$.pipe(this.getDestroyer()).subscribe((editor) => {
|
|
117
|
+
if (editor) {
|
|
118
|
+
// Init the side bar scroll top to 0.
|
|
119
|
+
if (this.sideBarComponent) {
|
|
120
|
+
const sideLayout = this.sideBarComponent.nativeElement.querySelector('.side-layout');
|
|
121
|
+
sideLayout?.scrollTo(0, 0);
|
|
122
|
+
}
|
|
123
|
+
this.currentEditor = editor;
|
|
124
|
+
this.setLayoutEditorTitle();
|
|
125
|
+
// Raise event to let the user set the block editor in the UI.
|
|
126
|
+
this.editorChange.emit(editor);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
this.layoutBuilderService.blockAddedEventSubject$.pipe(this.getDestroyer()).subscribe((event) => {
|
|
130
|
+
if (event) {
|
|
131
|
+
this.blockAdded.emit(event);
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
this.layoutBuilderService.blocksRemovedEventSubject$.pipe(this.getDestroyer()).subscribe((event) => {
|
|
135
|
+
if (event?.length > 0) {
|
|
136
|
+
this.blocksRemoved.emit(event);
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
ngOnInit() {
|
|
141
|
+
// Get the first translation for load all translations.
|
|
142
|
+
this.translate.get('LAYOUT_BUILDER.DESKTOP').subscribe((res) => {
|
|
143
|
+
this.screenTypes = [
|
|
144
|
+
{ key: 'Landscape', value: this.translate.instant('LAYOUT_BUILDER.DESKTOP'), callback: () => this.setScreenWidth('Landscape'), iconName: pepIconDeviceDesktop.name, iconPosition: 'end' },
|
|
145
|
+
{ key: 'Tablet', value: this.translate.instant('LAYOUT_BUILDER.TABLET'), callback: () => this.setScreenWidth('Tablet'), iconName: pepIconDeviceTablet.name, iconPosition: 'end' },
|
|
146
|
+
{ key: 'Phablet', value: this.translate.instant('LAYOUT_BUILDER.MOBILE'), callback: () => this.setScreenWidth('Phablet'), iconName: pepIconDeviceMobile.name, iconPosition: 'end' }
|
|
147
|
+
];
|
|
148
|
+
});
|
|
149
|
+
this.subscribeEvents();
|
|
150
|
+
}
|
|
151
|
+
onResize(event) {
|
|
152
|
+
this.updateViewportWidth();
|
|
153
|
+
}
|
|
154
|
+
togglePreviewMode() {
|
|
155
|
+
this.layoutBuilderService.changePreviewMode(!this.previewMode);
|
|
156
|
+
this.updateViewportWidth();
|
|
157
|
+
}
|
|
158
|
+
onSidebarStateChange(event) {
|
|
159
|
+
this.updateViewportWidth();
|
|
160
|
+
}
|
|
161
|
+
onLayoutEditorObjectChange(pageEditor) {
|
|
162
|
+
this.layoutBuilderService.updateLayoutFromEditor(pageEditor);
|
|
163
|
+
}
|
|
164
|
+
onSectionEditorObjectChange(sectionEditor) {
|
|
165
|
+
this.layoutBuilderService.updateSectionFromEditor(sectionEditor);
|
|
166
|
+
}
|
|
167
|
+
onNavigateBackFromEditor() {
|
|
168
|
+
if (!this.currentEditor || this.currentEditor?.type === 'layout-builder') {
|
|
169
|
+
this.backClick.emit();
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
this.layoutBuilderService.navigateBackFromEditor();
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
PepLayoutBuilderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepLayoutBuilderComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.TranslateService }, { token: i2.LayoutBuilderInternalService }, { token: i3.PepAddonService }], target: i0.ɵɵFactoryTarget.Component });
|
|
177
|
+
PepLayoutBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepLayoutBuilderComponent, selector: "pep-layout-builder", inputs: { availableBlocksForDrag: "availableBlocksForDrag", blocksLimitNumber: "blocksLimitNumber", layoutEditorTitle: "layoutEditorTitle" }, outputs: { backClick: "backClick", editorChange: "editorChange", blockAdded: "blockAdded", blocksRemoved: "blocksRemoved" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "layoutBuilderWrapper", first: true, predicate: ["layoutBuilderWrapper"], descendants: true, static: true }, { propertyName: "sideBarComponent", first: true, predicate: PepSideBarComponent, descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"lockScreen\" class=\"cdk-overlay-backdrop cdk-overlay-dark-backdrop cdk-overlay-backdrop-showing\"></div>\n\n<pep-page-layout [showShadow]=\"!previewMode && currentEditor !== null\" >\n <div pep-side-area *ngIf=\"!previewMode && currentEditor\" style=\"height: inherit;\">\n <pep-side-bar #sideBar [ignoreResize]=\"true\" (stateChange)=\"onSidebarStateChange($event)\">\n <div header-content class=\"side-bar-title\">\n <pep-button class=\"back-button\" sizeType=\"sm\" iconName=\"arrow_left_alt\" (buttonClick)=\"onNavigateBackFromEditor();\"></pep-button>\n <div class=\"title title-lg ellipsis\" [title]=\"currentEditor.title\">\n <span>{{ currentEditor.title }}</span>\n </div>\n </div>\n <div class=\"layout-builder-editor-wrapper\">\n <pep-layout-editor *ngIf=\"currentEditor.type === 'layout-builder'\" [availableBlocksForDrag]=\"availableBlocksForDrag\"\n [hostObject]=\"currentEditor.hostObject\" (hostObjectChange)=\"onLayoutEditorObjectChange($event)\"\n >\n <ng-container layout-editor-top-content>\n <ng-content select=\"[layout-editor-top-content]\"></ng-content>\n </ng-container>\n <ng-container layout-editor-bottom-content>\n <ng-content select=\"[layout-editor-bottom-content]\"></ng-content>\n </ng-container>\n </pep-layout-editor>\n \n <section-editor *ngIf=\"currentEditor.type === 'section'\" \n [hostObject]=\"currentEditor.hostObject\" (hostObjectChange)=\"onSectionEditorObjectChange($event)\"></section-editor>\n \n <div *ngIf=\"currentEditor.type === 'block'\" class=\"layout-builder-editor-container\">\n <ng-content select=\"[block-editor-content]\"></ng-content>\n </div>\n </div>\n </pep-side-bar>\n </div>\n <ng-container pep-main-area>\n <div class=\"main-area-container\" [ngClass]=\"{'preview-mode': previewMode }\">\n <div class=\"header-container\" >\n <ng-container *ngIf=\"!previewMode; then editorTitleTemplate; else previewTitleTemplate\"></ng-container>\n <ng-template #editorTitleTemplate>\n <div>\n <span class=\"header-title body-xs\">{{('LAYOUT_BUILDER.VIEWPORT_WIDTH' | translate)}}: </span>\n <span class=\"body-xs\"><b>{{viewportWidth}}</b></span>\n </div>\n </ng-template>\n <ng-template #previewTitleTemplate>\n <div class=\"preview-title body-sm\">\n <span>{{('LAYOUT_BUILDER.PREVIEW_TITLE' | translate)}}</span>\n </div>\n </ng-template>\n\n <div class=\"header-group-btn\">\n <pep-group-buttons [buttons]=\"screenTypes\" [selectedButtonKey]=\"selectedScreenType\" sizeType=\"sm\" viewType=\"toggle\" >\n </pep-group-buttons>\n </div>\n\n <ng-container *ngIf=\"!previewMode; then editorButtonsTemplate; else previewButtonsTemplate\"></ng-container>\n <ng-template #editorButtonsTemplate>\n <div class=\"header-end\">\n <pep-button key='Preview' [value]=\"'ACTIONS.PREVIEW' | translate\" sizeType=\"sm\" classNames=\"pep-spacing-element\" (buttonClick)=\"togglePreviewMode()\"></pep-button>\n <ng-content select=\"[header-end-content]\"></ng-content>\n </div>\n </ng-template>\n <ng-template #previewButtonsTemplate>\n <a class=\"color-link body-sm\" (click)=\"togglePreviewMode()\" href=\"javascript:void(0)\">{{('LAYOUT_BUILDER.PREVIEW_CLICK_HERE' | translate)}}</a> \n </ng-template>\n </div>\n <div #layoutBuilderWrapper class=\"layout-builder-wrapper\" [ngClass]=\"{'limit-min-width': selectedScreenType === 'Landscape' }\">\n <ng-content select=\"[layout-content]\"></ng-content>\n <div *ngIf=\"!previewMode\" class=\"backdrop\" [ngClass]=\"{'show-backdrop': currentEditor?.type === 'section' || currentEditor?.type === 'block'}\"></div>\n </div>\n </div>\n </ng-container>\n</pep-page-layout>", styles: [".side-bar-title{display:flex;padding-top:var(--pep-spacing-sm, .5rem)}.side-bar-title .back-button{margin-inline-end:var(--pep-spacing-sm, .5rem)}.side-bar-title .title{display:flex;align-items:center}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs{height:100%}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-header{position:sticky;top:calc(var(--pep-top-bar-spacing-top, 1.5rem) + var(--pep-top-bar-spacing-bottom, .5rem) + var(--pep-top-bar-field-height, 2.5rem));z-index:2}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-header-pagination{display:none}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-labels{display:grid;grid-template-columns:1fr 1fr}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-labels .mat-tab-label{padding:0 var(--pep-spacing-md, .75rem)!important}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-body-wrapper{overflow:unset;margin:0;display:block}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-body-wrapper .mat-tab-body.mat-tab-body-active{overflow:unset}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-body-wrapper .mat-tab-body.mat-tab-body-active .mat-tab-body-content{overflow:unset;display:flex;flex-direction:column;padding-inline:0!important}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab{overflow:inherit;display:inherit;flex-direction:inherit;gap:var(--pep-spacing-lg, 1rem)}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab .group-buttons-container .toggle-buttons{width:100%}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-checkbox,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-color,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-select,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-textarea,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-textbox{margin-bottom:0!important}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container{padding-top:var(--pep-spacing-lg, 1rem);padding-bottom:var(--pep-spacing-lg, 1rem)}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group{overflow:inherit;display:inherit;flex-direction:inherit;gap:var(--pep-spacing-lg, 1rem);display:flex;flex-direction:column}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container .group-buttons-container .toggle-buttons,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group .group-buttons-container .toggle-buttons{width:100%}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-checkbox,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-color,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-select,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-textarea,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-textbox,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-checkbox,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-color,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-select,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-textarea,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-textbox{margin-bottom:0!important}.layout-builder-editor-wrapper ::ng-deep .editor-title{display:block;font-family:var(--pep-font-family-body, Inter),-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif!important;font-weight:var(--pep-font-weight-bold, 600)!important;font-size:var(--pep-font-size-xl, 1.25rem)!important;line-height:var(--pep-line-height-xl, 1.5625rem)!important;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layout-builder-editor-wrapper ::ng-deep .editor-sub-title{display:block;font-family:var(--pep-font-family-body, Inter),-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif!important;font-weight:var(--pep-font-weight-normal, 400)!important;font-size:var(--pep-font-size-md, 1rem)!important;line-height:var(--pep-line-height-md, 1.25rem)!important;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layout-builder-editor-wrapper ::ng-deep .editor-separator{margin-top:var(--pep-spacing-lg, 1rem);border-bottom:1px solid hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.24)}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title{margin-bottom:.5rem!important;min-height:unset!important}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title .pep-checkbox-container{background:unset!important;padding-left:unset!important;padding-right:unset!important}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container .mat-checkbox-inner-container,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title .pep-checkbox-container .mat-checkbox-inner-container{margin-left:0!important;margin-right:0!important}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container .mat-checkbox-layout,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title .pep-checkbox-container .mat-checkbox-layout{font-family:var(--pep-font-family-body, Inter),-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif!important;font-weight:var(--pep-font-weight-normal, 400);font-size:var(--pep-font-size-lg, 1.125rem)!important;line-height:var(--pep-line-height-lg, 1.40625rem)!important;font-weight:var(--pep-font-weight-bold, 600)!important}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container .mat-checkbox-layout .mat-checkbox-label span,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title .pep-checkbox-container .mat-checkbox-layout .mat-checkbox-label span{margin:0 .5rem}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container .mat-checkbox-layout{font-family:var(--pep-font-family-body, Inter),-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif!important;font-weight:var(--pep-font-weight-normal, 400);font-size:var(--pep-font-size-md, 1rem)!important;line-height:var(--pep-line-height-md, 1.25rem)!important;font-weight:var(--pep-font-weight-normal, 400)!important}.main-area-container{min-height:100%;display:grid;grid-template-rows:auto 1fr}.main-area-container .header-container{display:flex;position:sticky;top:0;z-index:100;height:3rem;align-items:center;justify-content:space-between;padding:0 var(--pep-spacing-sm, .5rem)}.main-area-container .header-container .header-group-btn{display:flex;justify-content:space-around;align-items:center}.main-area-container .header-container .header-end{display:flex;justify-content:flex-end;gap:var(--pep-spacing-sm, .5rem)}.main-area-container .header-container ::ng-deep .group-buttons-container .toggle-buttons{width:16rem}.main-area-container .layout-builder-wrapper{width:100%;margin:0 auto;position:relative}.main-area-container .layout-builder-wrapper.limit-min-width{min-width:800px}.main-area-container .layout-builder-wrapper .backdrop{position:absolute;width:100%;height:100%;top:0;z-index:10;display:none}.main-area-container .layout-builder-wrapper .backdrop.show-backdrop{display:block}\n", ".layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-header{background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}.main-area-container{background:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.04)}.main-area-container .header-container{background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%));box-shadow:var(--pep-shadow-sm-offset, 0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.16)}.main-area-container .header-container .header-title{color:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.7)}.main-area-container .header-container .size-limit-container{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.12)}.main-area-container.preview-mode .header-container{background:unset;background-color:hsl(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%))}.main-area-container.preview-mode .header-container .preview-title,.main-area-container.preview-mode .header-container .color-link{color:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}.main-area-container.preview-mode .layout-builder-wrapper{overflow:auto}.main-area-container .layout-builder-wrapper{background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%));box-shadow:var(--pep-shadow-md-offset, 0 .5rem 1rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.16)}.main-area-container .layout-builder-wrapper .backdrop{background:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.5)}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.PepPageLayoutComponent, selector: "pep-page-layout", inputs: ["addPadding", "showShadow"] }, { kind: "component", type: i6.PepSideBarComponent, selector: "pep-side-bar", inputs: ["position", "ignoreResize", "showHeader", "showFooter", "showToggle", "useAsWebComponent"], outputs: ["stateChange"] }, { kind: "component", type: i7.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i8.PepGroupButtonsComponent, selector: "pep-group-buttons", inputs: ["viewType", "styleType", "sizeType", "buttons", "buttonsDisabled", "supportUnselect", "selectedButtonKey", "stretch"], outputs: ["buttonClick"] }, { kind: "component", type: i9.PepLayoutEditorComponent, selector: "pep-layout-editor", inputs: ["availableBlocksForDrag", "hostObject"], outputs: ["hostObjectChange"] }, { kind: "component", type: i10.SectionEditorComponent, selector: "section-editor", inputs: ["hostObject"], outputs: ["hostObjectChange"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
|
|
178
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepLayoutBuilderComponent, decorators: [{
|
|
179
|
+
type: Component,
|
|
180
|
+
args: [{ selector: 'pep-layout-builder', template: "<div *ngIf=\"lockScreen\" class=\"cdk-overlay-backdrop cdk-overlay-dark-backdrop cdk-overlay-backdrop-showing\"></div>\n\n<pep-page-layout [showShadow]=\"!previewMode && currentEditor !== null\" >\n <div pep-side-area *ngIf=\"!previewMode && currentEditor\" style=\"height: inherit;\">\n <pep-side-bar #sideBar [ignoreResize]=\"true\" (stateChange)=\"onSidebarStateChange($event)\">\n <div header-content class=\"side-bar-title\">\n <pep-button class=\"back-button\" sizeType=\"sm\" iconName=\"arrow_left_alt\" (buttonClick)=\"onNavigateBackFromEditor();\"></pep-button>\n <div class=\"title title-lg ellipsis\" [title]=\"currentEditor.title\">\n <span>{{ currentEditor.title }}</span>\n </div>\n </div>\n <div class=\"layout-builder-editor-wrapper\">\n <pep-layout-editor *ngIf=\"currentEditor.type === 'layout-builder'\" [availableBlocksForDrag]=\"availableBlocksForDrag\"\n [hostObject]=\"currentEditor.hostObject\" (hostObjectChange)=\"onLayoutEditorObjectChange($event)\"\n >\n <ng-container layout-editor-top-content>\n <ng-content select=\"[layout-editor-top-content]\"></ng-content>\n </ng-container>\n <ng-container layout-editor-bottom-content>\n <ng-content select=\"[layout-editor-bottom-content]\"></ng-content>\n </ng-container>\n </pep-layout-editor>\n \n <section-editor *ngIf=\"currentEditor.type === 'section'\" \n [hostObject]=\"currentEditor.hostObject\" (hostObjectChange)=\"onSectionEditorObjectChange($event)\"></section-editor>\n \n <div *ngIf=\"currentEditor.type === 'block'\" class=\"layout-builder-editor-container\">\n <ng-content select=\"[block-editor-content]\"></ng-content>\n </div>\n </div>\n </pep-side-bar>\n </div>\n <ng-container pep-main-area>\n <div class=\"main-area-container\" [ngClass]=\"{'preview-mode': previewMode }\">\n <div class=\"header-container\" >\n <ng-container *ngIf=\"!previewMode; then editorTitleTemplate; else previewTitleTemplate\"></ng-container>\n <ng-template #editorTitleTemplate>\n <div>\n <span class=\"header-title body-xs\">{{('LAYOUT_BUILDER.VIEWPORT_WIDTH' | translate)}}: </span>\n <span class=\"body-xs\"><b>{{viewportWidth}}</b></span>\n </div>\n </ng-template>\n <ng-template #previewTitleTemplate>\n <div class=\"preview-title body-sm\">\n <span>{{('LAYOUT_BUILDER.PREVIEW_TITLE' | translate)}}</span>\n </div>\n </ng-template>\n\n <div class=\"header-group-btn\">\n <pep-group-buttons [buttons]=\"screenTypes\" [selectedButtonKey]=\"selectedScreenType\" sizeType=\"sm\" viewType=\"toggle\" >\n </pep-group-buttons>\n </div>\n\n <ng-container *ngIf=\"!previewMode; then editorButtonsTemplate; else previewButtonsTemplate\"></ng-container>\n <ng-template #editorButtonsTemplate>\n <div class=\"header-end\">\n <pep-button key='Preview' [value]=\"'ACTIONS.PREVIEW' | translate\" sizeType=\"sm\" classNames=\"pep-spacing-element\" (buttonClick)=\"togglePreviewMode()\"></pep-button>\n <ng-content select=\"[header-end-content]\"></ng-content>\n </div>\n </ng-template>\n <ng-template #previewButtonsTemplate>\n <a class=\"color-link body-sm\" (click)=\"togglePreviewMode()\" href=\"javascript:void(0)\">{{('LAYOUT_BUILDER.PREVIEW_CLICK_HERE' | translate)}}</a> \n </ng-template>\n </div>\n <div #layoutBuilderWrapper class=\"layout-builder-wrapper\" [ngClass]=\"{'limit-min-width': selectedScreenType === 'Landscape' }\">\n <ng-content select=\"[layout-content]\"></ng-content>\n <div *ngIf=\"!previewMode\" class=\"backdrop\" [ngClass]=\"{'show-backdrop': currentEditor?.type === 'section' || currentEditor?.type === 'block'}\"></div>\n </div>\n </div>\n </ng-container>\n</pep-page-layout>", styles: [".side-bar-title{display:flex;padding-top:var(--pep-spacing-sm, .5rem)}.side-bar-title .back-button{margin-inline-end:var(--pep-spacing-sm, .5rem)}.side-bar-title .title{display:flex;align-items:center}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs{height:100%}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-header{position:sticky;top:calc(var(--pep-top-bar-spacing-top, 1.5rem) + var(--pep-top-bar-spacing-bottom, .5rem) + var(--pep-top-bar-field-height, 2.5rem));z-index:2}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-header-pagination{display:none}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-labels{display:grid;grid-template-columns:1fr 1fr}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-labels .mat-tab-label{padding:0 var(--pep-spacing-md, .75rem)!important}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-body-wrapper{overflow:unset;margin:0;display:block}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-body-wrapper .mat-tab-body.mat-tab-body-active{overflow:unset}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-body-wrapper .mat-tab-body.mat-tab-body-active .mat-tab-body-content{overflow:unset;display:flex;flex-direction:column;padding-inline:0!important}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab{overflow:inherit;display:inherit;flex-direction:inherit;gap:var(--pep-spacing-lg, 1rem)}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab .group-buttons-container .toggle-buttons{width:100%}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-checkbox,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-color,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-select,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-textarea,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-textbox{margin-bottom:0!important}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container{padding-top:var(--pep-spacing-lg, 1rem);padding-bottom:var(--pep-spacing-lg, 1rem)}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group{overflow:inherit;display:inherit;flex-direction:inherit;gap:var(--pep-spacing-lg, 1rem);display:flex;flex-direction:column}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container .group-buttons-container .toggle-buttons,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group .group-buttons-container .toggle-buttons{width:100%}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-checkbox,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-color,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-select,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-textarea,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-textbox,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-checkbox,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-color,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-select,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-textarea,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-textbox{margin-bottom:0!important}.layout-builder-editor-wrapper ::ng-deep .editor-title{display:block;font-family:var(--pep-font-family-body, Inter),-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif!important;font-weight:var(--pep-font-weight-bold, 600)!important;font-size:var(--pep-font-size-xl, 1.25rem)!important;line-height:var(--pep-line-height-xl, 1.5625rem)!important;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layout-builder-editor-wrapper ::ng-deep .editor-sub-title{display:block;font-family:var(--pep-font-family-body, Inter),-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif!important;font-weight:var(--pep-font-weight-normal, 400)!important;font-size:var(--pep-font-size-md, 1rem)!important;line-height:var(--pep-line-height-md, 1.25rem)!important;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layout-builder-editor-wrapper ::ng-deep .editor-separator{margin-top:var(--pep-spacing-lg, 1rem);border-bottom:1px solid hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.24)}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title{margin-bottom:.5rem!important;min-height:unset!important}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title .pep-checkbox-container{background:unset!important;padding-left:unset!important;padding-right:unset!important}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container .mat-checkbox-inner-container,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title .pep-checkbox-container .mat-checkbox-inner-container{margin-left:0!important;margin-right:0!important}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container .mat-checkbox-layout,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title .pep-checkbox-container .mat-checkbox-layout{font-family:var(--pep-font-family-body, Inter),-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif!important;font-weight:var(--pep-font-weight-normal, 400);font-size:var(--pep-font-size-lg, 1.125rem)!important;line-height:var(--pep-line-height-lg, 1.40625rem)!important;font-weight:var(--pep-font-weight-bold, 600)!important}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container .mat-checkbox-layout .mat-checkbox-label span,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title .pep-checkbox-container .mat-checkbox-layout .mat-checkbox-label span{margin:0 .5rem}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container .mat-checkbox-layout{font-family:var(--pep-font-family-body, Inter),-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif!important;font-weight:var(--pep-font-weight-normal, 400);font-size:var(--pep-font-size-md, 1rem)!important;line-height:var(--pep-line-height-md, 1.25rem)!important;font-weight:var(--pep-font-weight-normal, 400)!important}.main-area-container{min-height:100%;display:grid;grid-template-rows:auto 1fr}.main-area-container .header-container{display:flex;position:sticky;top:0;z-index:100;height:3rem;align-items:center;justify-content:space-between;padding:0 var(--pep-spacing-sm, .5rem)}.main-area-container .header-container .header-group-btn{display:flex;justify-content:space-around;align-items:center}.main-area-container .header-container .header-end{display:flex;justify-content:flex-end;gap:var(--pep-spacing-sm, .5rem)}.main-area-container .header-container ::ng-deep .group-buttons-container .toggle-buttons{width:16rem}.main-area-container .layout-builder-wrapper{width:100%;margin:0 auto;position:relative}.main-area-container .layout-builder-wrapper.limit-min-width{min-width:800px}.main-area-container .layout-builder-wrapper .backdrop{position:absolute;width:100%;height:100%;top:0;z-index:10;display:none}.main-area-container .layout-builder-wrapper .backdrop.show-backdrop{display:block}\n", ".layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-header{background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}.main-area-container{background:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.04)}.main-area-container .header-container{background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%));box-shadow:var(--pep-shadow-sm-offset, 0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.16)}.main-area-container .header-container .header-title{color:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.7)}.main-area-container .header-container .size-limit-container{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.12)}.main-area-container.preview-mode .header-container{background:unset;background-color:hsl(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%))}.main-area-container.preview-mode .header-container .preview-title,.main-area-container.preview-mode .header-container .color-link{color:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}.main-area-container.preview-mode .layout-builder-wrapper{overflow:auto}.main-area-container .layout-builder-wrapper{background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%));box-shadow:var(--pep-shadow-md-offset, 0 .5rem 1rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.16)}.main-area-container .layout-builder-wrapper .backdrop{background:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.5)}\n"] }]
|
|
181
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.TranslateService }, { type: i2.LayoutBuilderInternalService }, { type: i3.PepAddonService }]; }, propDecorators: { layoutBuilderWrapper: [{
|
|
182
|
+
type: ViewChild,
|
|
183
|
+
args: ['layoutBuilderWrapper', { static: true }]
|
|
184
|
+
}], sideBarComponent: [{
|
|
185
|
+
type: ViewChild,
|
|
186
|
+
args: [PepSideBarComponent, { read: ElementRef }]
|
|
187
|
+
}], availableBlocksForDrag: [{
|
|
188
|
+
type: Input
|
|
189
|
+
}], blocksLimitNumber: [{
|
|
190
|
+
type: Input
|
|
191
|
+
}], layoutEditorTitle: [{
|
|
192
|
+
type: Input
|
|
193
|
+
}], backClick: [{
|
|
194
|
+
type: Output
|
|
195
|
+
}], editorChange: [{
|
|
196
|
+
type: Output
|
|
197
|
+
}], blockAdded: [{
|
|
198
|
+
type: Output
|
|
199
|
+
}], blocksRemoved: [{
|
|
200
|
+
type: Output
|
|
201
|
+
}], onResize: [{
|
|
202
|
+
type: HostListener,
|
|
203
|
+
args: ['window:resize', ['$event']]
|
|
204
|
+
}] } });
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvbGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvbGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxTQUFTLEVBQVUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsc0JBQXNCLEVBQXdELE1BQU0seUJBQXlCLENBQUM7QUFJdkgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUcsT0FBTyxFQUErQixtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBS3BHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7Ozs7QUFPN0QsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHNCQUFzQjtJQTRDakUsWUFDWSxRQUFtQixFQUNuQixXQUF1QixFQUN2QixTQUEyQixFQUMzQixvQkFBa0QsRUFDbEQsZUFBZ0M7UUFFeEMsS0FBSyxFQUFFLENBQUM7UUFOQSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBOEI7UUFDbEQsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBN0NwQyw0QkFBdUIsR0FBNkIsRUFBRSxDQUFDO1FBVXZELHVCQUFrQixHQUFHLENB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UUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgUmVuZGVyZXIyLCBWaWV3Q2hpbGQsIE9uSW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZURlc3Ryb3llckRpcmVjdGl2ZSwgUGVwQWRkb25TZXJ2aWNlLCBQZXBMYXlvdXRTZXJ2aWNlLCBQZXBTY3JlZW5TaXplVHlwZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7IERhdGFWaWV3U2NyZWVuU2l6ZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9wYXBpLXNkayc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBQZXBCdXR0b24gfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9idXR0b24nO1xuaW1wb3J0IHsgcGVwSWNvbkRldmljZURlc2t0b3AsIHBlcEljb25EZXZpY2VNb2JpbGUsIHBlcEljb25EZXZpY2VUYWJsZXQgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9pY29uJztcbmltcG9ydCB7IElQZXBTaWRlQmFyU3RhdGVDaGFuZ2VFdmVudCwgUGVwU2lkZUJhckNvbXBvbmVudCB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL3NpZGUtYmFyJztcbmltcG9ydCB7IElQZXBEcmFnZ2FibGVJdGVtIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvZHJhZ2dhYmxlLWl0ZW1zJztcblxuaW1wb3J0IHsgSUVkaXRvciwgSUxheW91dEVkaXRvciwgSVBlcExheW91dFNlY3Rpb24sIElQZXBMYXlvdXRWaWV3LCBJTGF5b3V0U2VjdGlvbkVkaXRvciwgSVBlcExheW91dEJsb2NrQWRkZWRFdmVudCB9IGZyb20gJy4vbGF5b3V0LWJ1aWxkZXIubW9kZWwnO1xuaW1wb3J0IHsgTGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZSB9IGZyb20gJy4vbGF5b3V0LWJ1aWxkZXItaW50ZXJuYWwuc2VydmljZSc7XG5pbXBvcnQgeyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGVwLWxheW91dC1idWlsZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xheW91dC1idWlsZGVyLmNvbXBvbmVudC5zY3NzJywgJy4vbGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50LnRoZW1lLnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUGVwTGF5b3V0QnVpbGRlckNvbXBvbmVudCBleHRlbmRzIEJhc2VEZXN0cm95ZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ2xheW91dEJ1aWxkZXJXcmFwcGVyJywgeyBzdGF0aWM6IHRydWUgfSkgbGF5b3V0QnVpbGRlcldyYXBwZXIhOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoUGVwU2lkZUJhckNvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pIHByaXZhdGUgc2lkZUJhckNvbXBvbmVudCE6IEVsZW1lbnRSZWY7XG4gICAgXG4gICAgcHJpdmF0ZSBfYXZhaWxhYmxlQmxvY2tzRm9yRHJhZzogQXJyYXk8SVBlcERyYWdnYWJsZUl0ZW0+ID0gW107XG4gICAgQElucHV0KCkgXG4gICAgc2V0IGF2YWlsYWJsZUJsb2Nrc0ZvckRyYWcodmFsdWU6IEFycmF5PElQZXBEcmFnZ2FibGVJdGVtPikge1xuICAgICAgICB0aGlzLl9hdmFpbGFibGVCbG9ja3NGb3JEcmFnID0gdmFsdWU7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2Uuc2V0QXZhaWxhYmxlQmxvY2tzVG9EcmFnKHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IGF2YWlsYWJsZUJsb2Nrc0ZvckRyYWcoKTogQXJyYXk8SVBlcERyYWdnYWJsZUl0ZW0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2F2YWlsYWJsZUJsb2Nrc0ZvckRyYWc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYmxvY2tzTGltaXROdW1iZXIgPSAwO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGJsb2Nrc0xpbWl0TnVtYmVyKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fYmxvY2tzTGltaXROdW1iZXIgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSwgMCk7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2Uuc2V0QmxvY2tzTGltaXROdW1iZXIodGhpcy5fYmxvY2tzTGltaXROdW1iZXIpO1xuICAgIH1cbiAgICBcbiAgICBwcml2YXRlIF9sYXlvdXRFZGl0b3JUaXRsZSA9ICcnO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGxheW91dEVkaXRvclRpdGxlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fbGF5b3V0RWRpdG9yVGl0bGUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRMYXlvdXRFZGl0b3JUaXRsZSgpIFxuICAgIH1cbiAgICBnZXQgbGF5b3V0RWRpdG9yVGl0bGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xheW91dEVkaXRvclRpdGxlO1xuICAgIH1cbiAgICBcbiAgICBAT3V0cHV0KCkgYmFja0NsaWNrOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGVkaXRvckNoYW5nZTogRXZlbnRFbWl0dGVyPElFZGl0b3I+ID0gbmV3IEV2ZW50RW1pdHRlcigpOyAvLyBibG9ja0tleVxuICAgIEBPdXRwdXQoKSBibG9ja0FkZGVkOiBFdmVudEVtaXR0ZXI8SVBlcExheW91dEJsb2NrQWRkZWRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGJsb2Nrc1JlbW92ZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwcm90ZWN0ZWQgbG9ja1NjcmVlbiA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBwcmV2aWV3TW9kZSA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBjdXJyZW50RWRpdG9yOiBJRWRpdG9yIHwgbnVsbCA9IG51bGw7XG4gICAgcHJvdGVjdGVkIHZpZXdwb3J0V2lkdGg6IG51bWJlciA9IDA7XG4gICAgcHJvdGVjdGVkIHNjcmVlblR5cGVzITogQXJyYXk8UGVwQnV0dG9uPjtcblxuICAgIHByb3RlY3RlZCBzZWxlY3RlZFNjcmVlblR5cGUhOiBEYXRhVmlld1NjcmVlblNpemU7XG4gICAgXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBob3N0RWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbGF5b3V0QnVpbGRlclNlcnZpY2U6IExheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcGVwQWRkb25TZXJ2aWNlOiBQZXBBZGRvblNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy5wZXBBZGRvblNlcnZpY2Uuc2V0U2hlbGxSb3V0ZXJEYXRhKHsgc2hvd1NpZGViYXI6IGZhbHNlLCBhZGRQYWRkaW5nOiBmYWxzZX0pO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3BlcC1sYXlvdXQtYnVpbGRlcicpO1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLnNldEVkaXRNb2RlKHRydWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U2NyZWVuV2lkdGgoc2NyZWVuVHlwZTogRGF0YVZpZXdTY3JlZW5TaXplKSB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2Uuc2V0U2NyZWVuV2lkdGgoc2NyZWVuVHlwZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVWaWV3cG9ydFdpZHRoKCkge1xuICAgICAgICBpZiAodGhpcy5sYXlvdXRCdWlsZGVyV3JhcHBlcj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy52aWV3cG9ydFdpZHRoID0gdGhpcy5sYXlvdXRCdWlsZGVyV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgcHJpdmF0ZSBzZXRMYXlvdXRFZGl0b3JUaXRsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEVkaXRvcj8udHlwZSA9PT0gJ2xheW91dC1idWlsZGVyJyAmJiB0aGlzLmxheW91dEVkaXRvclRpdGxlICE9PSAnJykge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50RWRpdG9yLnRpdGxlID0gdGhpcy5sYXlvdXRFZGl0b3JUaXRsZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc3Vic2NyaWJlRXZlbnRzKCkge1xuICAgICAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gICAgICAgIC8qICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcm5hbCBFdmVudHMgLSBmb3IgY29kZSB1c2FnZVxuICAgICAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVyU2VydmljZS5wcmV2aWV3TW9kZUNoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKHByZXZpZXdNb2RlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMucHJldmlld01vZGUgPSBwcmV2aWV3TW9kZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVyU2VydmljZS5sb2NrU2NyZWVuQ2hhbmdlJC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgobG9ja1NjcmVlbjogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvY2tTY3JlZW4gPSBsb2NrU2NyZWVuO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLnNjcmVlblNpemVDaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChzaXplOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNjcmVlblR5cGUgPSB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLmdldFNjcmVlblR5cGUoc2l6ZSk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkU2NyZWVuVHlwZSA9IHNjcmVlblR5cGU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEZvciB1cGRhdGUgdGhlIGxheW91dCBkYXRhXG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UubGF5b3V0Vmlld0NoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKGxheW91dFZpZXc6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKGxheW91dFZpZXcpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sYXlvdXRCdWlsZGVyV3JhcHBlcj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgbWF4V2lkdGggPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eShsYXlvdXRWaWV3LkxheW91dC5NYXhXaWR0aCwgMCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1heFdpZHRoVG9TZXQgPSBtYXhXaWR0aCA9PT0gMCA/ICcxMDAlJyA6IGAke21heFdpZHRofXB4YDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmxheW91dEJ1aWxkZXJXcmFwcGVyLm5hdGl2ZUVsZW1lbnQsICdtYXgtd2lkdGgnLCBtYXhXaWR0aFRvU2V0KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVWaWV3cG9ydFdpZHRoKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLnNjcmVlbldpZHRoQ2hhbmdlJC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgod2lkdGg6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMubGF5b3V0QnVpbGRlcldyYXBwZXI/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMubGF5b3V0QnVpbGRlcldyYXBwZXIubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgd2lkdGgpO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVmlld3BvcnRXaWR0aCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBHZXQgdGhlIHNlY3Rpb25zIGlkJ3MgaW50byBzZWN0aW9uc0NvbHVtbnNEcm9wTGlzdCBmb3IgdGhlIGRyYWcgJiBkcm9wLlxuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLnNlY3Rpb25zQ2hhbmdlJC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgoc2VjdGlvbnM6IGFueSkgPT4ge1xuICAgICAgICAgICAgLy8gQ29uY2F0IGFsbCByZXN1bHRzIGludG8gb25lIGFycmF5LlxuICAgICAgICAgICAgY29uc3Qgc2VjdGlvbnNDb2x1bW5zRHJvcExpc3QgPSBbXS5jb25jYXQoLi4uc2VjdGlvbnMubWFwKChzZWN0aW9uOiBJUGVwTGF5b3V0U2VjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZWN0aW9uLkNvbHVtbnMubWFwKChjb2x1bW4sIGluZGV4KSA9PiBcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVyU2VydmljZS5nZXRTZWN0aW9uQ29sdW1uS2V5KHNlY3Rpb24uS2V5LCBpbmRleC50b1N0cmluZygpKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pKTtcblxuICAgICAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVyU2VydmljZS5zZXRTZWN0aW9uc0NvbHVtbnNEcm9wTGlzdENoYW5nZShzZWN0aW9uc0NvbHVtbnNEcm9wTGlzdCk7XG4gICAgICAgIH0pO1xuXG5cbiAgICAgICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuICAgICAgICAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgRXh0ZXJuYWwgRXZlbnRzIC0gZm9yIHJhaXNlIHRvIHRoZSBjbGllbnRcbiAgICAgICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgICAgIC8vIEZvciB1cGRhdGUgZWRpdG9yLlxuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLmVkaXRvckNoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKGVkaXRvcjogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoZWRpdG9yKSB7XG4gICAgICAgICAgICAgICAgLy8gSW5pdCB0aGUgc2lkZSBiYXIgc2Nyb2xsIHRvcCB0byAwLlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNpZGVCYXJDb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2lkZUxheW91dCA9IHRoaXMuc2lkZUJhckNvbXBvbmVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zaWRlLWxheW91dCcpO1xuICAgICAgICAgICAgICAgICAgICBzaWRlTGF5b3V0Py5zY3JvbGxUbygwLCAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50RWRpdG9yID0gZWRpdG9yO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0TGF5b3V0RWRpdG9yVGl0bGUoKTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAvLyBSYWlzZSBldmVudCB0byBsZXQgdGhlIHVzZXIgc2V0IHRoZSBibG9jayBlZGl0b3IgaW4gdGhlIFVJLlxuICAgICAgICAgICAgICAgIHRoaXMuZWRpdG9yQ2hhbmdlLmVtaXQoZWRpdG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVyU2VydmljZS5ibG9ja0FkZGVkRXZlbnRTdWJqZWN0JC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja0FkZGVkLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLmJsb2Nrc1JlbW92ZWRFdmVudFN1YmplY3QkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQ/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrc1JlbW92ZWQuZW1pdChldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICAvLyBHZXQgdGhlIGZpcnN0IHRyYW5zbGF0aW9uIGZvciBsb2FkIGFsbCB0cmFuc2xhdGlvbnMuXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmdldCgnTEFZT1VUX0JVSUxERVIuREVTS1RPUCcpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHRoaXMuc2NyZWVuVHlwZXMgPSBbXG4gICAgICAgICAgICAgICAgeyBrZXk6ICdMYW5kc2NhcGUnLCB2YWx1ZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnTEFZT1VUX0JVSUxERVIuREVTS1RPUCcpLCBjYWxsYmFjazogKCkgPT4gdGhpcy5zZXRTY3JlZW5XaWR0aCgnTGFuZHNjYXBlJyksIGljb25OYW1lOiBwZXBJY29uRGV2aWNlRGVza3RvcC5uYW1lLCBpY29uUG9zaXRpb246ICdlbmQnIH0sXG4gICAgICAgICAgICAgICAgeyBrZXk6ICdUYWJsZXQnLCB2YWx1ZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnTEFZT1VUX0JVSUxERVIuVEFCTEVUJyksIGNhbGxiYWNrOiAoKSA9PiB0aGlzLnNldFNjcmVlbldpZHRoKCdUYWJsZXQnKSwgaWNvbk5hbWU6IHBlcEljb25EZXZpY2VUYWJsZXQubmFtZSwgaWNvblBvc2l0aW9uOiAnZW5kJyB9LFxuICAgICAgICAgICAgICAgIHsga2V5OiAnUGhhYmxldCcsIHZhbHVlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdMQVlPVVRfQlVJTERFUi5NT0JJTEUnKSwgY2FsbGJhY2s6ICgpID0+IHRoaXMuc2V0U2NyZWVuV2lkdGgoJ1BoYWJsZXQnKSwgaWNvbk5hbWU6IHBlcEljb25EZXZpY2VNb2JpbGUubmFtZSwgaWNvblBvc2l0aW9uOiAnZW5kJyB9XG4gICAgICAgICAgICBdO1xuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlRXZlbnRzKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gICAgb25SZXNpemUoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVZpZXdwb3J0V2lkdGgoKTtcbiAgICB9XG5cbiAgICB0b2dnbGVQcmV2aWV3TW9kZSgpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVyU2VydmljZS5jaGFuZ2VQcmV2aWV3TW9kZSghdGhpcy5wcmV2aWV3TW9kZSk7XG4gICAgICAgIHRoaXMudXBkYXRlVmlld3BvcnRXaWR0aCgpO1xuICAgIH1cblxuICAgIG9uU2lkZWJhclN0YXRlQ2hhbmdlKGV2ZW50OiBJUGVwU2lkZUJhclN0YXRlQ2hhbmdlRXZlbnQpIHtcbiAgICAgICAgdGhpcy51cGRhdGVWaWV3cG9ydFdpZHRoKCk7XG4gICAgfVxuXG4gICAgb25MYXlvdXRFZGl0b3JPYmplY3RDaGFuZ2UocGFnZUVkaXRvcjogSUxheW91dEVkaXRvcikge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLnVwZGF0ZUxheW91dEZyb21FZGl0b3IocGFnZUVkaXRvcik7XG4gICAgfVxuXG4gICAgb25TZWN0aW9uRWRpdG9yT2JqZWN0Q2hhbmdlKHNlY3Rpb25FZGl0b3I6IElMYXlvdXRTZWN0aW9uRWRpdG9yKSB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UudXBkYXRlU2VjdGlvbkZyb21FZGl0b3Ioc2VjdGlvbkVkaXRvcik7XG4gICAgfVxuXG4gICAgb25OYXZpZ2F0ZUJhY2tGcm9tRWRpdG9yKCkge1xuICAgICAgICBpZiAoIXRoaXMuY3VycmVudEVkaXRvciB8fCB0aGlzLmN1cnJlbnRFZGl0b3I/LnR5cGUgPT09ICdsYXlvdXQtYnVpbGRlcicpIHtcbiAgICAgICAgICAgIHRoaXMuYmFja0NsaWNrLmVtaXQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UubmF2aWdhdGVCYWNrRnJvbUVkaXRvcigpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImxvY2tTY3JlZW5cIiBjbGFzcz1cImNkay1vdmVybGF5LWJhY2tkcm9wIGNkay1vdmVybGF5LWRhcmstYmFja2Ryb3AgY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1wiPjwvZGl2PlxuXG48cGVwLXBhZ2UtbGF5b3V0IFtzaG93U2hhZG93XT1cIiFwcmV2aWV3TW9kZSAmJiBjdXJyZW50RWRpdG9yICE9PSBudWxsXCIgPlxuICAgIDxkaXYgcGVwLXNpZGUtYXJlYSAqbmdJZj1cIiFwcmV2aWV3TW9kZSAmJiBjdXJyZW50RWRpdG9yXCIgc3R5bGU9XCJoZWlnaHQ6IGluaGVyaXQ7XCI+XG4gICAgICAgIDxwZXAtc2lkZS1iYXIgI3NpZGVCYXIgW2lnbm9yZVJlc2l6ZV09XCJ0cnVlXCIgKHN0YXRlQ2hhbmdlKT1cIm9uU2lkZWJhclN0YXRlQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgIDxkaXYgaGVhZGVyLWNvbnRlbnQgY2xhc3M9XCJzaWRlLWJhci10aXRsZVwiPlxuICAgICAgICAgICAgICAgIDxwZXAtYnV0dG9uIGNsYXNzPVwiYmFjay1idXR0b25cIiBzaXplVHlwZT1cInNtXCIgaWNvbk5hbWU9XCJhcnJvd19sZWZ0X2FsdFwiIChidXR0b25DbGljayk9XCJvbk5hdmlnYXRlQmFja0Zyb21FZGl0b3IoKTtcIj48L3BlcC1idXR0b24+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlIHRpdGxlLWxnIGVsbGlwc2lzXCIgW3RpdGxlXT1cImN1cnJlbnRFZGl0b3IudGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgY3VycmVudEVkaXRvci50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxheW91dC1idWlsZGVyLWVkaXRvci13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgPHBlcC1sYXlvdXQtZWRpdG9yICpuZ0lmPVwiY3VycmVudEVkaXRvci50eXBlID09PSAnbGF5b3V0LWJ1aWxkZXInXCIgW2F2YWlsYWJsZUJsb2Nrc0ZvckRyYWddPVwiYXZhaWxhYmxlQmxvY2tzRm9yRHJhZ1wiXG4gICAgICAgICAgICAgICAgICAgIFtob3N0T2JqZWN0XT1cImN1cnJlbnRFZGl0b3IuaG9zdE9iamVjdFwiIChob3N0T2JqZWN0Q2hhbmdlKT1cIm9uTGF5b3V0RWRpdG9yT2JqZWN0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbGF5b3V0LWVkaXRvci10b3AtY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltsYXlvdXQtZWRpdG9yLXRvcC1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbGF5b3V0LWVkaXRvci1ib3R0b20tY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltsYXlvdXQtZWRpdG9yLWJvdHRvbS1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9wZXAtbGF5b3V0LWVkaXRvcj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDxzZWN0aW9uLWVkaXRvciAqbmdJZj1cImN1cnJlbnRFZGl0b3IudHlwZSA9PT0gJ3NlY3Rpb24nXCIgXG4gICAgICAgICAgICAgICAgICAgIFtob3N0T2JqZWN0XT1cImN1cnJlbnRFZGl0b3IuaG9zdE9iamVjdFwiIChob3N0T2JqZWN0Q2hhbmdlKT1cIm9uU2VjdGlvbkVkaXRvck9iamVjdENoYW5nZSgkZXZlbnQpXCI+PC9zZWN0aW9uLWVkaXRvcj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjdXJyZW50RWRpdG9yLnR5cGUgPT09ICdibG9jaydcIiBjbGFzcz1cImxheW91dC1idWlsZGVyLWVkaXRvci1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Jsb2NrLWVkaXRvci1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3BlcC1zaWRlLWJhcj5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyIHBlcC1tYWluLWFyZWE+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYWluLWFyZWEtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieydwcmV2aWV3LW1vZGUnOiBwcmV2aWV3TW9kZSB9XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWNvbnRhaW5lclwiID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXByZXZpZXdNb2RlOyB0aGVuIGVkaXRvclRpdGxlVGVtcGxhdGU7IGVsc2UgcHJldmlld1RpdGxlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRvclRpdGxlVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlci10aXRsZSBib2R5LXhzXCI+e3soJ0xBWU9VVF9CVUlMREVSLlZJRVdQT1JUX1dJRFRIJyB8IHRyYW5zbGF0ZSl9fTombmJzcDs8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJvZHkteHNcIj48Yj57e3ZpZXdwb3J0V2lkdGh9fTwvYj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNwcmV2aWV3VGl0bGVUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByZXZpZXctdGl0bGUgYm9keS1zbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3soJ0xBWU9VVF9CVUlMREVSLlBSRVZJRVdfVElUTEUnIHwgdHJhbnNsYXRlKX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1ncm91cC1idG5cIj5cbiAgICAgICAgICAgICAgICAgICAgPHBlcC1ncm91cC1idXR0b25zIFtidXR0b25zXT1cInNjcmVlblR5cGVzXCIgW3NlbGVjdGVkQnV0dG9uS2V5XT1cInNlbGVjdGVkU2NyZWVuVHlwZVwiIHNpemVUeXBlPVwic21cIiB2aWV3VHlwZT1cInRvZ2dsZVwiID5cbiAgICAgICAgICAgICAgICAgICAgPC9wZXAtZ3JvdXAtYnV0dG9ucz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhcHJldmlld01vZGU7IHRoZW4gZWRpdG9yQnV0dG9uc1RlbXBsYXRlOyBlbHNlIHByZXZpZXdCdXR0b25zVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRvckJ1dHRvbnNUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1lbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwZXAtYnV0dG9uIGtleT0nUHJldmlldycgW3ZhbHVlXT1cIidBQ1RJT05TLlBSRVZJRVcnIHwgdHJhbnNsYXRlXCIgc2l6ZVR5cGU9XCJzbVwiIGNsYXNzTmFtZXM9XCJwZXAtc3BhY2luZy1lbGVtZW50XCIgKGJ1dHRvbkNsaWNrKT1cInRvZ2dsZVByZXZpZXdNb2RlKClcIj48L3BlcC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaGVhZGVyLWVuZC1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3ByZXZpZXdCdXR0b25zVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiY29sb3ItbGluayBib2R5LXNtXCIgKGNsaWNrKT1cInRvZ2dsZVByZXZpZXdNb2RlKClcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCI+e3soJ0xBWU9VVF9CVUlMREVSLlBSRVZJRVdfQ0xJQ0tfSEVSRScgfCB0cmFuc2xhdGUpfX08L2E+ICAgIFxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgI2xheW91dEJ1aWxkZXJXcmFwcGVyIGNsYXNzPVwibGF5b3V0LWJ1aWxkZXItd3JhcHBlclwiIFtuZ0NsYXNzXT1cInsnbGltaXQtbWluLXdpZHRoJzogc2VsZWN0ZWRTY3JlZW5UeXBlID09PSAnTGFuZHNjYXBlJyB9XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2xheW91dC1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXByZXZpZXdNb2RlXCIgY2xhc3M9XCJiYWNrZHJvcFwiIFtuZ0NsYXNzXT1cInsnc2hvdy1iYWNrZHJvcCc6IGN1cnJlbnRFZGl0b3I/LnR5cGUgPT09ICdzZWN0aW9uJyB8fCBjdXJyZW50RWRpdG9yPy50eXBlID09PSAnYmxvY2snfVwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9wZXAtcGFnZS1sYXlvdXQ+Il19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
// export interface IBlockEditor {
|
|
3
|
+
// id: string,
|
|
4
|
+
// [key: string]: any
|
|
5
|
+
// }
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWJ1aWxkZXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9sYXlvdXQtYnVpbGRlci9sYXlvdXQtYnVpbGRlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBb0VBLGtDQUFrQztBQUNsQyxrQkFBa0I7QUFDbEIseUJBQXlCO0FBQ3pCLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYWdlQmxvY2tDb250YWluZXIsIFBhZ2VMYXlvdXQsIFBhZ2VTZWN0aW9uLCBQYWdlU2VjdGlvbkNvbHVtbiwgUGFnZVNpemVUeXBlLCBTcGxpdFR5cGUgfSBmcm9tIFwiQHBlcHBlcmktYWRkb25zL3BhcGktc2RrXCI7XG5pbXBvcnQgeyBJUGVwRHJhZ2dhYmxlSXRlbSB9IGZyb20gXCJAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9kcmFnZ2FibGUtaXRlbXNcIjtcblxuZXhwb3J0IHR5cGUgUGVwTGF5b3V0U2l6ZVR5cGUgPSBQYWdlU2l6ZVR5cGU7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBlcExheW91dCBleHRlbmRzIFBhZ2VMYXlvdXQge1xuICAgIFNlY3Rpb25zOiBJUGVwTGF5b3V0U2VjdGlvbltdO1xuICAgIFZlcnRpY2FsU3BhY2luZz86IFBlcExheW91dFNpemVUeXBlO1xuICAgIEhvcml6b250YWxTcGFjaW5nPzogUGVwTGF5b3V0U2l6ZVR5cGU7XG4gICAgU2VjdGlvbnNHYXA/OiBQZXBMYXlvdXRTaXplVHlwZTtcbiAgICBDb2x1bW5zR2FwPzogUGVwTGF5b3V0U2l6ZVR5cGU7XG59XG5leHBvcnQgaW50ZXJmYWNlIElQZXBMYXlvdXRTZWN0aW9uIGV4dGVuZHMgUGFnZVNlY3Rpb24geyBcbiAgICBDb2x1bW5zOiBJUGVwTGF5b3V0U2VjdGlvbkNvbHVtbltdO1xuICAgIENvbHVtbnNHYXA/OiBQZXBMYXlvdXRTaXplVHlwZTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSVBlcExheW91dFNlY3Rpb25Db2x1bW4gZXh0ZW5kcyBQYWdlU2VjdGlvbkNvbHVtbiB7XG4gICAgQmxvY2tDb250YWluZXI/OiBJUGVwTGF5b3V0QmxvY2tDb250YWluZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIElQZXBMYXlvdXRCbG9ja0NvbnRhaW5lciBleHRlbmRzIFBhZ2VCbG9ja0NvbnRhaW5lciB7IFxuICAgIERyYWdnYWJsZUl0ZW1LZXk6IHN0cmluZyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGVwTGF5b3V0QmxvY2tBZGRlZEV2ZW50IHtcbiAgICBCbG9ja0tleTogc3RyaW5nLFxuICAgIERyYWdnYWJsZUl0ZW06IElQZXBEcmFnZ2FibGVJdGVtLFxufVxuICAgIFxuZXhwb3J0IGludGVyZmFjZSBJUGVwTGF5b3V0VmlldyB7XG4gICAgLy8gSWQ6IHN0cmluZyxcbiAgICBUaXRsZTogc3RyaW5nLFxuICAgIExheW91dDogSVBlcExheW91dCxcbn1cblxuZXhwb3J0IHR5cGUgTGF5b3V0RWRpdG9yVHlwZSA9ICdsYXlvdXQtYnVpbGRlcicgfCAnc2VjdGlvbicgfCAnYmxvY2snO1xuXG5leHBvcnQgaW50ZXJmYWNlIElFZGl0b3Ige1xuICAgIGlkOiBzdHJpbmcsXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICB0eXBlOiBMYXlvdXRFZGl0b3JUeXBlLFxuICAgIC8vIHJlbW90ZU1vZHVsZU9wdGlvbnM/OiBQZXBSZW1vdGVMb2FkZXJPcHRpb25zLFxuICAgIGhvc3RPYmplY3Q/OiBhbnlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTGF5b3V0RWRpdG9yIHtcbiAgICAvLyBpZDogc3RyaW5nLFxuICAgIC8vIHBhZ2VOYW1lOiBzdHJpbmcsXG4gICAgLy8gcGFnZURlc2NyaXB0aW9uOiBzdHJpbmcsXG4gICAgLy8gcGFyYW1ldGVyczogSVBhcmFtZW1ldGVyW10sXG4gICAgLy8gb25Mb2FkRmxvdzogYW55LFxuICAgIC8vIG9uQ2hhbmdlRmxvdzogYW55LFxuICAgIG1heFdpZHRoOiBudW1iZXIsXG4gICAgaG9yaXpvbnRhbFNwYWNpbmc/OiBQZXBMYXlvdXRTaXplVHlwZSxcbiAgICB2ZXJ0aWNhbFNwYWNpbmc/OiBQZXBMYXlvdXRTaXplVHlwZSxcbiAgICBzZWN0aW9uc0dhcD86IFBlcExheW91dFNpemVUeXBlLFxuICAgIGNvbHVtbnNHYXA/OiBQZXBMYXlvdXRTaXplVHlwZSxcbiAgICByb3VuZGVkQ29ybmVycz86IFBlcExheW91dFNpemVUeXBlLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElMYXlvdXRTZWN0aW9uRWRpdG9yIHtcbiAgICBpZDogc3RyaW5nLFxuICAgIHNlY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgc3BsaXQ6IFNwbGl0VHlwZSB8IHVuZGVmaW5lZCxcbiAgICBoZWlnaHQ6IG51bWJlcixcbiAgICBjb2xsYXBzZU9uVGFibGV0OiBib29sZWFuLFxuICAgIGZpbGxIZWlnaHQ6IGJvb2xlYW5cbn1cblxuLy8gZXhwb3J0IGludGVyZmFjZSBJQmxvY2tFZGl0b3Ige1xuLy8gICAgIGlkOiBzdHJpbmcsXG4vLyAgICAgW2tleTogc3RyaW5nXTogYW55XG4vLyB9Il19
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
4
|
+
import { MatCommonModule } from '@angular/material/core';
|
|
5
|
+
import { MatTabsModule } from '@angular/material/tabs';
|
|
6
|
+
import { PepNgxLibModule } from '@pepperi-addons/ngx-lib';
|
|
7
|
+
import { PepSizeDetectorModule } from '@pepperi-addons/ngx-lib/size-detector';
|
|
8
|
+
import { PepSkeletonLoaderModule } from '@pepperi-addons/ngx-lib/skeleton-loader';
|
|
9
|
+
import { PepButtonModule } from '@pepperi-addons/ngx-lib/button';
|
|
10
|
+
import { PepDialogModule } from '@pepperi-addons/ngx-lib/dialog';
|
|
11
|
+
import { PepGroupButtonsModule } from '@pepperi-addons/ngx-lib/group-buttons';
|
|
12
|
+
import { PepPageLayoutModule } from '@pepperi-addons/ngx-lib/page-layout';
|
|
13
|
+
import { PepSideBarModule } from '@pepperi-addons/ngx-lib/side-bar';
|
|
14
|
+
import { PepDraggableItemsModule } from '@pepperi-addons/ngx-lib/draggable-items';
|
|
15
|
+
import { PepCheckboxModule } from '@pepperi-addons/ngx-lib/checkbox';
|
|
16
|
+
import { PepSelectModule } from '@pepperi-addons/ngx-lib/select';
|
|
17
|
+
import { PepTextboxModule } from '@pepperi-addons/ngx-lib/textbox';
|
|
18
|
+
import { PepGroupButtonsSettingsModule } from '@pepperi-addons/ngx-composite-lib/group-buttons-settings';
|
|
19
|
+
import { PepHideInModule } from './hide-in/hide-in.module';
|
|
20
|
+
import { PepLayoutModule } from './layout/layout.module';
|
|
21
|
+
import { PepLayoutEditorModule } from './layout-editor/layout-editor.module';
|
|
22
|
+
import { SectionEditorModule } from './section-editor/section-editor.module';
|
|
23
|
+
import { LayoutBuilderInternalService } from './layout-builder-internal.service';
|
|
24
|
+
import { PepLayoutBuilderComponent } from './layout-builder.component';
|
|
25
|
+
// import { SectionBlockModule } from './layout/section-block/section-block.module';
|
|
26
|
+
import { PepIconModule, pepIconDeviceDesktop, pepIconDeviceTablet, pepIconDeviceMobile, } from '@pepperi-addons/ngx-lib/icon';
|
|
27
|
+
import { PepLayoutBuilderService } from './layout-builder.service';
|
|
28
|
+
import * as i0 from "@angular/core";
|
|
29
|
+
import * as i1 from "@pepperi-addons/ngx-lib/icon";
|
|
30
|
+
export class PepLayoutBuilderModule {
|
|
31
|
+
constructor(pepIconRegistry) {
|
|
32
|
+
this.pepIconRegistry = pepIconRegistry;
|
|
33
|
+
this.pepIconRegistry.registerIcons([
|
|
34
|
+
pepIconDeviceDesktop,
|
|
35
|
+
pepIconDeviceTablet,
|
|
36
|
+
pepIconDeviceMobile,
|
|
37
|
+
]);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
PepLayoutBuilderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepLayoutBuilderModule, deps: [{ token: i1.PepIconRegistry }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
41
|
+
PepLayoutBuilderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: PepLayoutBuilderModule, declarations: [PepLayoutBuilderComponent], imports: [CommonModule,
|
|
42
|
+
DragDropModule,
|
|
43
|
+
// Material modules,
|
|
44
|
+
MatCommonModule,
|
|
45
|
+
MatTabsModule,
|
|
46
|
+
// ngx-lib modules
|
|
47
|
+
PepNgxLibModule,
|
|
48
|
+
PepDialogModule,
|
|
49
|
+
PepIconModule,
|
|
50
|
+
PepPageLayoutModule,
|
|
51
|
+
PepSideBarModule,
|
|
52
|
+
PepButtonModule,
|
|
53
|
+
PepCheckboxModule,
|
|
54
|
+
PepTextboxModule,
|
|
55
|
+
PepSelectModule,
|
|
56
|
+
PepSizeDetectorModule,
|
|
57
|
+
PepGroupButtonsModule,
|
|
58
|
+
PepSkeletonLoaderModule,
|
|
59
|
+
PepDraggableItemsModule,
|
|
60
|
+
PepGroupButtonsSettingsModule,
|
|
61
|
+
PepHideInModule,
|
|
62
|
+
PepLayoutModule,
|
|
63
|
+
PepLayoutEditorModule,
|
|
64
|
+
SectionEditorModule], exports: [PepLayoutBuilderComponent,
|
|
65
|
+
PepLayoutModule] });
|
|
66
|
+
PepLayoutBuilderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepLayoutBuilderModule, providers: [
|
|
67
|
+
LayoutBuilderInternalService,
|
|
68
|
+
PepLayoutBuilderService
|
|
69
|
+
], imports: [CommonModule,
|
|
70
|
+
DragDropModule,
|
|
71
|
+
// Material modules,
|
|
72
|
+
MatCommonModule,
|
|
73
|
+
MatTabsModule,
|
|
74
|
+
// ngx-lib modules
|
|
75
|
+
PepNgxLibModule,
|
|
76
|
+
PepDialogModule,
|
|
77
|
+
PepIconModule,
|
|
78
|
+
PepPageLayoutModule,
|
|
79
|
+
PepSideBarModule,
|
|
80
|
+
PepButtonModule,
|
|
81
|
+
PepCheckboxModule,
|
|
82
|
+
PepTextboxModule,
|
|
83
|
+
PepSelectModule,
|
|
84
|
+
PepSizeDetectorModule,
|
|
85
|
+
PepGroupButtonsModule,
|
|
86
|
+
PepSkeletonLoaderModule,
|
|
87
|
+
PepDraggableItemsModule,
|
|
88
|
+
PepGroupButtonsSettingsModule,
|
|
89
|
+
PepHideInModule,
|
|
90
|
+
PepLayoutModule,
|
|
91
|
+
PepLayoutEditorModule,
|
|
92
|
+
SectionEditorModule, PepLayoutModule] });
|
|
93
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepLayoutBuilderModule, decorators: [{
|
|
94
|
+
type: NgModule,
|
|
95
|
+
args: [{
|
|
96
|
+
declarations: [
|
|
97
|
+
PepLayoutBuilderComponent,
|
|
98
|
+
],
|
|
99
|
+
imports: [
|
|
100
|
+
CommonModule,
|
|
101
|
+
DragDropModule,
|
|
102
|
+
// Material modules,
|
|
103
|
+
MatCommonModule,
|
|
104
|
+
MatTabsModule,
|
|
105
|
+
// ngx-lib modules
|
|
106
|
+
PepNgxLibModule,
|
|
107
|
+
PepDialogModule,
|
|
108
|
+
PepIconModule,
|
|
109
|
+
PepPageLayoutModule,
|
|
110
|
+
PepSideBarModule,
|
|
111
|
+
PepButtonModule,
|
|
112
|
+
PepCheckboxModule,
|
|
113
|
+
PepTextboxModule,
|
|
114
|
+
PepSelectModule,
|
|
115
|
+
PepSizeDetectorModule,
|
|
116
|
+
PepGroupButtonsModule,
|
|
117
|
+
PepSkeletonLoaderModule,
|
|
118
|
+
PepDraggableItemsModule,
|
|
119
|
+
PepGroupButtonsSettingsModule,
|
|
120
|
+
PepHideInModule,
|
|
121
|
+
PepLayoutModule,
|
|
122
|
+
PepLayoutEditorModule,
|
|
123
|
+
SectionEditorModule,
|
|
124
|
+
// SectionBlockModule
|
|
125
|
+
],
|
|
126
|
+
exports: [
|
|
127
|
+
PepLayoutBuilderComponent,
|
|
128
|
+
PepLayoutModule,
|
|
129
|
+
],
|
|
130
|
+
providers: [
|
|
131
|
+
LayoutBuilderInternalService,
|
|
132
|
+
PepLayoutBuilderService
|
|
133
|
+
]
|
|
134
|
+
}]
|
|
135
|
+
}], ctorParameters: function () { return [{ type: i1.PepIconRegistry }]; } });
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWJ1aWxkZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvbGF5b3V0LWJ1aWxkZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdC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QUFFO3dCQUNQLDRCQUE0Qjt3QkFDNUIsdUJBQXVCO3FCQUMxQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcblxuaW1wb3J0IHsgTWF0Q29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXRUYWJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5cbmltcG9ydCB7IFBlcE5neExpYk1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7IFBlcFNpemVEZXRlY3Rvck1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL3NpemUtZGV0ZWN0b3InO1xuaW1wb3J0IHsgUGVwU2tlbGV0b25Mb2FkZXJNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9za2VsZXRvbi1sb2FkZXInO1xuaW1wb3J0IHsgUGVwQnV0dG9uTW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvYnV0dG9uJztcbmltcG9ydCB7IFBlcERpYWxvZ01vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2RpYWxvZyc7XG5pbXBvcnQgeyBQZXBHcm91cEJ1dHRvbnNNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9ncm91cC1idXR0b25zJztcbmltcG9ydCB7IFBlcFBhZ2VMYXlvdXRNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9wYWdlLWxheW91dCc7XG5pbXBvcnQgeyBQZXBTaWRlQmFyTW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvc2lkZS1iYXInO1xuaW1wb3J0IHsgUGVwRHJhZ2dhYmxlSXRlbXNNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9kcmFnZ2FibGUtaXRlbXMnO1xuaW1wb3J0IHsgUGVwQ2hlY2tib3hNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9jaGVja2JveCc7XG5pbXBvcnQgeyBQZXBTZWxlY3RNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9zZWxlY3QnO1xuaW1wb3J0IHsgUGVwVGV4dGJveE1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL3RleHRib3gnO1xuXG5pbXBvcnQgeyBQZXBHcm91cEJ1dHRvbnNTZXR0aW5nc01vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtY29tcG9zaXRlLWxpYi9ncm91cC1idXR0b25zLXNldHRpbmdzJztcblxuaW1wb3J0IHsgUGVwSGlkZUluTW9kdWxlIH0gZnJvbSAnLi9oaWRlLWluL2hpZGUtaW4ubW9kdWxlJztcbmltcG9ydCB7IFBlcExheW91dE1vZHVsZSB9IGZyb20gJy4vbGF5b3V0L2xheW91dC5tb2R1bGUnO1xuaW1wb3J0IHsgUGVwTGF5b3V0RWRpdG9yTW9kdWxlIH0gZnJvbSAnLi9sYXlvdXQtZWRpdG9yL2xheW91dC1lZGl0b3IubW9kdWxlJztcbmltcG9ydCB7IFNlY3Rpb25FZGl0b3JNb2R1bGUgfSBmcm9tICcuL3NlY3Rpb24tZWRpdG9yL3NlY3Rpb24tZWRpdG9yLm1vZHVsZSc7XG5cbmltcG9ydCB7IExheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UgfSBmcm9tICcuL2xheW91dC1idWlsZGVyLWludGVybmFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVwTGF5b3V0QnVpbGRlckNvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50JztcblxuLy8gaW1wb3J0IHsgU2VjdGlvbkJsb2NrTW9kdWxlIH0gZnJvbSAnLi9sYXlvdXQvc2VjdGlvbi1ibG9jay9zZWN0aW9uLWJsb2NrLm1vZHVsZSc7XG5cbmltcG9ydCB7XG4gICAgUGVwSWNvbk1vZHVsZSxcbiAgICBQZXBJY29uUmVnaXN0cnksXG4gICAgcGVwSWNvbkRldmljZURlc2t0b3AsXG4gICAgcGVwSWNvbkRldmljZVRhYmxldCxcbiAgICBwZXBJY29uRGV2aWNlTW9iaWxlLFxufSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9pY29uJztcbmltcG9ydCB7IFBlcExheW91dEJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi9sYXlvdXQtYnVpbGRlci5zZXJ2aWNlJztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgUGVwTGF5b3V0QnVpbGRlckNvbXBvbmVudCxcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBEcmFnRHJvcE1vZHVsZSxcbiAgICAgICAgLy8gTWF0ZXJpYWwgbW9kdWxlcyxcbiAgICAgICAgTWF0Q29tbW9uTW9kdWxlLFxuICAgICAgICBNYXRUYWJzTW9kdWxlLFxuICAgICAgICAvLyBuZ3gtbGliIG1vZHVsZXNcbiAgICAgICAgUGVwTmd4TGliTW9kdWxlLFxuICAgICAgICBQZXBEaWFsb2dNb2R1bGUsXG4gICAgICAgIFBlcEljb25Nb2R1bGUsXG4gICAgICAgIFBlcFBhZ2VMYXlvdXRNb2R1bGUsXG4gICAgICAgIFBlcFNpZGVCYXJNb2R1bGUsXG4gICAgICAgIFBlcEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgUGVwQ2hlY2tib3hNb2R1bGUsXG4gICAgICAgIFBlcFRleHRib3hNb2R1bGUsXG4gICAgICAgIFBlcFNlbGVjdE1vZHVsZSxcbiAgICAgICAgUGVwU2l6ZURldGVjdG9yTW9kdWxlLFxuICAgICAgICBQZXBHcm91cEJ1dHRvbnNNb2R1bGUsXG4gICAgICAgIFBlcFNrZWxldG9uTG9hZGVyTW9kdWxlLFxuICAgICAgICBQZXBEcmFnZ2FibGVJdGVtc01vZHVsZSxcbiAgICAgICAgUGVwR3JvdXBCdXR0b25zU2V0dGluZ3NNb2R1bGUsXG4gICAgICAgIFBlcEhpZGVJbk1vZHVsZSxcbiAgICAgICAgUGVwTGF5b3V0TW9kdWxlLFxuICAgICAgICBQZXBMYXlvdXRFZGl0b3JNb2R1bGUsXG4gICAgICAgIFNlY3Rpb25FZGl0b3JNb2R1bGUsXG4gICAgICAgIC8vIFNlY3Rpb25CbG9ja01vZHVsZVxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBQZXBMYXlvdXRCdWlsZGVyQ29tcG9uZW50LFxuICAgICAgICBQZXBMYXlvdXRNb2R1bGUsXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZSxcbiAgICAgICAgUGVwTGF5b3V0QnVpbGRlclNlcnZpY2VcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFBlcExheW91dEJ1aWxkZXJNb2R1bGUgeyBcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBlcEljb25SZWdpc3RyeTogUGVwSWNvblJlZ2lzdHJ5KSB7XG4gICAgICAgIHRoaXMucGVwSWNvblJlZ2lzdHJ5LnJlZ2lzdGVySWNvbnMoW1xuICAgICAgICAgICAgcGVwSWNvbkRldmljZURlc2t0b3AsXG4gICAgICAgICAgICBwZXBJY29uRGV2aWNlVGFibGV0LFxuICAgICAgICAgICAgcGVwSWNvbkRldmljZU1vYmlsZSxcbiAgICAgICAgXSk7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "./layout-builder-internal.service";
|
|
4
|
+
export class PepLayoutBuilderService {
|
|
5
|
+
constructor(layoutBuilderInternalService) {
|
|
6
|
+
this.layoutBuilderInternalService = layoutBuilderInternalService;
|
|
7
|
+
//
|
|
8
|
+
}
|
|
9
|
+
get editMode() {
|
|
10
|
+
return this.layoutBuilderInternalService.editMode;
|
|
11
|
+
}
|
|
12
|
+
get editableState() {
|
|
13
|
+
return this.layoutBuilderInternalService.editableState;
|
|
14
|
+
}
|
|
15
|
+
getCurrentScreenType() {
|
|
16
|
+
return this.layoutBuilderInternalService.getCurrentScreenType();
|
|
17
|
+
}
|
|
18
|
+
getIsHidden(hideIn, currentScreenType) {
|
|
19
|
+
return (hideIn && hideIn?.length > 0) ? hideIn.some(hi => hi === currentScreenType) : false;
|
|
20
|
+
}
|
|
21
|
+
showSkeleton(show) {
|
|
22
|
+
return this.layoutBuilderInternalService.showSkeleton(show);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
PepLayoutBuilderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepLayoutBuilderService, deps: [{ token: i1.LayoutBuilderInternalService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
26
|
+
PepLayoutBuilderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepLayoutBuilderService, providedIn: 'root' });
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepLayoutBuilderService, decorators: [{
|
|
28
|
+
type: Injectable,
|
|
29
|
+
args: [{
|
|
30
|
+
providedIn: 'root',
|
|
31
|
+
}]
|
|
32
|
+
}], ctorParameters: function () { return [{ type: i1.LayoutBuilderInternalService }]; } });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWJ1aWxkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21wb3NpdGUtbGliL2xheW91dC1idWlsZGVyL2xheW91dC1idWlsZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTzNDLE1BQU0sT0FBTyx1QkFBdUI7SUFTaEMsWUFDWSw0QkFBMEQ7UUFBMUQsaUNBQTRCLEdBQTVCLDRCQUE0QixDQUE4QjtRQUVsRSxFQUFFO0lBQ04sQ0FBQztJQVhELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUMsYUFBYSxDQUFDO0lBQzNELENBQUM7SUFRRCxvQkFBb0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNwRSxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQXdDLEVBQUUsaUJBQXFDO1FBQ3ZGLE9BQU8sQ0FBQyxNQUFNLElBQUksTUFBTSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDaEcsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLDRCQUE0QixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoRSxDQUFDOztvSEF6QlEsdUJBQXVCO3dIQUF2Qix1QkFBdUIsY0FGcEIsTUFBTTsyRkFFVCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBEYXRhVmlld1NjcmVlblNpemUgfSBmcm9tIFwiQHBlcHBlcmktYWRkb25zL3BhcGktc2RrXCI7XG5pbXBvcnQgeyBMYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlIH0gZnJvbSBcIi4vbGF5b3V0LWJ1aWxkZXItaW50ZXJuYWwuc2VydmljZVwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBMYXlvdXRCdWlsZGVyU2VydmljZSB7XG4gICAgXG4gICAgZ2V0IGVkaXRNb2RlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmVkaXRNb2RlO1xuICAgIH1cbiAgICBnZXQgZWRpdGFibGVTdGF0ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5lZGl0YWJsZVN0YXRlO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2U6IExheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgLy9cbiAgICB9XG4gICAgXG4gICAgZ2V0Q3VycmVudFNjcmVlblR5cGUoKTogRGF0YVZpZXdTY3JlZW5TaXplIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5nZXRDdXJyZW50U2NyZWVuVHlwZSgpO1xuICAgIH1cblxuICAgIGdldElzSGlkZGVuKGhpZGVJbjogRGF0YVZpZXdTY3JlZW5TaXplW10gfCB1bmRlZmluZWQsIGN1cnJlbnRTY3JlZW5UeXBlOiBEYXRhVmlld1NjcmVlblNpemUpIHtcbiAgICAgICAgcmV0dXJuIChoaWRlSW4gJiYgaGlkZUluPy5sZW5ndGggPiAwKSA/IGhpZGVJbi5zb21lKGhpID0+IGhpID09PSBjdXJyZW50U2NyZWVuVHlwZSkgOiBmYWxzZTtcbiAgICB9XG4gICAgXG4gICAgc2hvd1NrZWxldG9uKHNob3c6IGJvb2xlYW4pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5zaG93U2tlbGV0b24oc2hvdyk7XG4gICAgfVxufVxuIl19
|