@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,298 @@
|
|
|
1
|
+
import { Component, HostBinding, Input, ViewChild, ViewChildren } from '@angular/core';
|
|
2
|
+
import { BaseDestroyerDirective, PepScreenSizeType } from '@pepperi-addons/ngx-lib';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../layout-builder-internal.service";
|
|
5
|
+
import * as i2 from "@pepperi-addons/ngx-lib";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
import * as i4 from "@angular/cdk/drag-drop";
|
|
8
|
+
import * as i5 from "@pepperi-addons/ngx-lib/button";
|
|
9
|
+
import * as i6 from "../section-block/section-block.component";
|
|
10
|
+
import * as i7 from "../hide-in/hide-in.component";
|
|
11
|
+
import * as i8 from "@pepperi-addons/ngx-lib/draggable-items";
|
|
12
|
+
export class SectionComponent extends BaseDestroyerDirective {
|
|
13
|
+
constructor(renderer, layoutBuilderService, layoutService) {
|
|
14
|
+
super();
|
|
15
|
+
this.renderer = renderer;
|
|
16
|
+
this.layoutBuilderService = layoutBuilderService;
|
|
17
|
+
this.layoutService = layoutService;
|
|
18
|
+
this.key = '';
|
|
19
|
+
this.name = '';
|
|
20
|
+
this._split = undefined;
|
|
21
|
+
this._height = undefined;
|
|
22
|
+
this._collapseOnTablet = false;
|
|
23
|
+
this._columns = [];
|
|
24
|
+
this._hideIn = [];
|
|
25
|
+
this.styleMaxHeight = 'unset';
|
|
26
|
+
this.styleHeight = 'unset';
|
|
27
|
+
this.sectionsColumnsDropList = [];
|
|
28
|
+
// PepScreenSizeType = PepScreenSizeType;
|
|
29
|
+
this.sectionColumnKeyPrefix = '';
|
|
30
|
+
this.isMainEditorState = false;
|
|
31
|
+
this.isEditing = false;
|
|
32
|
+
this.selectedSectionKey = '';
|
|
33
|
+
this.selectedBlockKey = '';
|
|
34
|
+
this.containsBlocks = false;
|
|
35
|
+
this.shouldSetDefaultHeight = false;
|
|
36
|
+
this.pepScreenSizeToFlipToVertical = PepScreenSizeType.SM;
|
|
37
|
+
this.hideForCurrentScreenType = false;
|
|
38
|
+
this.draggingBlockKey = '';
|
|
39
|
+
this.draggingSectionKey = '';
|
|
40
|
+
this.hoverState = false;
|
|
41
|
+
}
|
|
42
|
+
set split(value) {
|
|
43
|
+
this._split = value;
|
|
44
|
+
this.refreshSplit();
|
|
45
|
+
}
|
|
46
|
+
get split() {
|
|
47
|
+
return this._split;
|
|
48
|
+
}
|
|
49
|
+
set height(value) {
|
|
50
|
+
this._height = value;
|
|
51
|
+
this.setStyleHeight();
|
|
52
|
+
}
|
|
53
|
+
get height() {
|
|
54
|
+
return this._height;
|
|
55
|
+
}
|
|
56
|
+
set collapseOnTablet(value) {
|
|
57
|
+
this._collapseOnTablet = value;
|
|
58
|
+
this.pepScreenSizeToFlipToVertical = value ? PepScreenSizeType.MD : PepScreenSizeType.SM;
|
|
59
|
+
this.refreshSplit();
|
|
60
|
+
}
|
|
61
|
+
get collapseOnTablet() {
|
|
62
|
+
return this._collapseOnTablet;
|
|
63
|
+
}
|
|
64
|
+
set columns(value) {
|
|
65
|
+
this._columns = value || [];
|
|
66
|
+
}
|
|
67
|
+
get columns() {
|
|
68
|
+
return this._columns;
|
|
69
|
+
}
|
|
70
|
+
set hideIn(value) {
|
|
71
|
+
this._hideIn = value;
|
|
72
|
+
this.setIfHideForCurrentScreenType();
|
|
73
|
+
}
|
|
74
|
+
get hideIn() {
|
|
75
|
+
return this._hideIn;
|
|
76
|
+
}
|
|
77
|
+
// private _editable = false;
|
|
78
|
+
// protected set editable(value: boolean) {
|
|
79
|
+
// this._editable = value;
|
|
80
|
+
// this.refreshSplit();
|
|
81
|
+
// }
|
|
82
|
+
get editable() {
|
|
83
|
+
return this.layoutBuilderService.editableState;
|
|
84
|
+
;
|
|
85
|
+
}
|
|
86
|
+
set screenSize(value) {
|
|
87
|
+
this._screenSize = value;
|
|
88
|
+
this.refreshSplit();
|
|
89
|
+
this.setScreenType();
|
|
90
|
+
}
|
|
91
|
+
get screenSize() {
|
|
92
|
+
return this._screenSize;
|
|
93
|
+
}
|
|
94
|
+
calculateIfSectionContainsBlocks() {
|
|
95
|
+
this.containsBlocks = this.columns.some(column => column.BlockContainer);
|
|
96
|
+
if (this.editable) {
|
|
97
|
+
this.shouldSetDefaultHeight = !this.containsBlocks;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
setScreenType() {
|
|
101
|
+
this.screenType = this.layoutBuilderService.getScreenType(this.screenSize);
|
|
102
|
+
this.setIfHideForCurrentScreenType();
|
|
103
|
+
this.setStyleHeight();
|
|
104
|
+
}
|
|
105
|
+
setIfHideForCurrentScreenType() {
|
|
106
|
+
this.hideForCurrentScreenType = this.layoutBuilderService.getIsHidden(this.hideIn, this.screenType);
|
|
107
|
+
}
|
|
108
|
+
getCssSplitString() {
|
|
109
|
+
switch (this.split) {
|
|
110
|
+
case '1/2 1/2':
|
|
111
|
+
return '1fr 1fr';
|
|
112
|
+
case '1/2 1/4 1/4':
|
|
113
|
+
return '2fr 1fr 1fr';
|
|
114
|
+
case '1/3 1/3 1/3':
|
|
115
|
+
return '1fr 1fr 1fr';
|
|
116
|
+
case '1/3 2/3':
|
|
117
|
+
return '1fr 2fr';
|
|
118
|
+
case '1/4 1/2 1/4':
|
|
119
|
+
return '1fr 2fr 1fr';
|
|
120
|
+
case '1/4 1/4 1/2':
|
|
121
|
+
return '1fr 1fr 2fr';
|
|
122
|
+
case '1/4 1/4 1/4 1/4':
|
|
123
|
+
return '1fr 1fr 1fr 1fr';
|
|
124
|
+
case '1/4 3/4':
|
|
125
|
+
return '1fr 3fr';
|
|
126
|
+
case '2/3 1/3':
|
|
127
|
+
return '2fr 1fr';
|
|
128
|
+
case '3/4 1/4':
|
|
129
|
+
return '3fr 1fr';
|
|
130
|
+
default: // For one column.
|
|
131
|
+
return '1fr';
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
refreshSplit() {
|
|
135
|
+
setTimeout(() => {
|
|
136
|
+
if (this.sectionContainerRef) {
|
|
137
|
+
let cssSplitString = this.getCssSplitString();
|
|
138
|
+
// Go for all the columns in the columnsWrapper
|
|
139
|
+
this.columnsElementRef.toArray().map((section, sectionIndex) => {
|
|
140
|
+
// Horizontal (true) for large screens, false for small screens.
|
|
141
|
+
const isHorizontalView = this.screenSize <= this.pepScreenSizeToFlipToVertical;
|
|
142
|
+
if (isHorizontalView) {
|
|
143
|
+
this.renderer.setStyle(section.nativeElement, 'grid-auto-flow', 'column');
|
|
144
|
+
this.renderer.setStyle(section.nativeElement, 'grid-template-rows', 'unset');
|
|
145
|
+
this.renderer.setStyle(section.nativeElement, 'grid-template-columns', cssSplitString);
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
this.renderer.setStyle(section.nativeElement, 'grid-auto-flow', 'row');
|
|
149
|
+
this.renderer.setStyle(section.nativeElement, 'grid-template-columns', 'unset');
|
|
150
|
+
this.renderer.setStyle(section.nativeElement, 'grid-template-rows', cssSplitString);
|
|
151
|
+
// In runtime (or preview mode).
|
|
152
|
+
if (!this.editable) {
|
|
153
|
+
const cssSplitArray = cssSplitString.split(' ');
|
|
154
|
+
// If there are some hidden columns change the column width to 0 (for cut the spacing in the grid-template-rows).
|
|
155
|
+
this.columns.forEach((column, index) => {
|
|
156
|
+
if (!column.BlockContainer) {
|
|
157
|
+
cssSplitArray[index] = '0';
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
this.renderer.setStyle(section.nativeElement, 'grid-template-rows', 'auto');
|
|
161
|
+
//this.renderer.setStyle(section.nativeElement, 'grid-template-rows', cssSplitArray.join(' '));
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
}, 0);
|
|
167
|
+
}
|
|
168
|
+
setStyleHeight() {
|
|
169
|
+
if (this.height && this.height > 0 && this.screenType !== 'Phablet') {
|
|
170
|
+
this.styleHeight = this.styleMaxHeight = `${this.height}px`;
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
this.styleHeight = this.styleMaxHeight = 'unset';
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
getIsDragging() {
|
|
177
|
+
return this.draggingBlockKey.length > 0 && this.draggingSectionKey.length > 0;
|
|
178
|
+
}
|
|
179
|
+
getIsHidden(hideIn, currentScreenType) {
|
|
180
|
+
return this.layoutBuilderService.getIsHidden(hideIn, currentScreenType);
|
|
181
|
+
}
|
|
182
|
+
ngOnInit() {
|
|
183
|
+
this.layoutBuilderService.previewModeChange$.pipe(this.getDestroyer()).subscribe(previewMode => {
|
|
184
|
+
this.refreshSplit();
|
|
185
|
+
});
|
|
186
|
+
// Just to calculate if sections contains blocks
|
|
187
|
+
this.layoutBuilderService.sectionsChange$.pipe(this.getDestroyer()).subscribe(res => {
|
|
188
|
+
this.calculateIfSectionContainsBlocks();
|
|
189
|
+
});
|
|
190
|
+
this.layoutService.onResize$.pipe(this.getDestroyer()).subscribe((size) => {
|
|
191
|
+
this.screenSize = size;
|
|
192
|
+
});
|
|
193
|
+
this.layoutBuilderService.screenSizeChange$.pipe(this.getDestroyer()).subscribe((size) => {
|
|
194
|
+
this.screenSize = size;
|
|
195
|
+
});
|
|
196
|
+
if (this.editable) {
|
|
197
|
+
this.layoutBuilderService.sectionsColumnsDropListChange$.pipe(this.getDestroyer()).subscribe((sectionsColumnsDropList) => {
|
|
198
|
+
this.sectionsColumnsDropList = sectionsColumnsDropList;
|
|
199
|
+
});
|
|
200
|
+
this.layoutBuilderService.editorChange$.pipe(this.getDestroyer()).subscribe((editor) => {
|
|
201
|
+
this.isMainEditorState = editor && editor.type === 'layout-builder';
|
|
202
|
+
this.isEditing = editor && editor.type === 'section' && editor.id === this.key;
|
|
203
|
+
this.selectedSectionKey = editor && editor.type === 'section' ? editor.id : '';
|
|
204
|
+
this.selectedBlockKey = editor && editor.type === 'block' ? editor.id : '';
|
|
205
|
+
});
|
|
206
|
+
this.layoutBuilderService.draggingBlockKey.pipe(this.getDestroyer()).subscribe((draggingBlockKey) => {
|
|
207
|
+
this.draggingBlockKey = draggingBlockKey;
|
|
208
|
+
if (draggingBlockKey === '') {
|
|
209
|
+
this.calculateIfSectionContainsBlocks();
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
// If there is only one block in the section and now it's this block that the user is dragging.
|
|
213
|
+
const blocksLength = this.columns.filter(column => column.BlockContainer).length;
|
|
214
|
+
if (blocksLength === 1 && this.columns.find(c => c.BlockContainer?.BlockKey === this.draggingBlockKey)) {
|
|
215
|
+
this.shouldSetDefaultHeight = true;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
this.layoutBuilderService.draggingSectionKey.pipe(this.getDestroyer()).subscribe((draggingSectionKey) => {
|
|
220
|
+
this.draggingSectionKey = draggingSectionKey;
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
this.sectionColumnKeyPrefix = this.layoutBuilderService.getSectionColumnKey(this.key);
|
|
224
|
+
}
|
|
225
|
+
onEditSectionClick() {
|
|
226
|
+
this.layoutBuilderService.navigateToEditor('section', this.key);
|
|
227
|
+
}
|
|
228
|
+
onRemoveSectionClick() {
|
|
229
|
+
this.layoutBuilderService.removeSection(this.key);
|
|
230
|
+
}
|
|
231
|
+
onHideSectionChange(hideIn) {
|
|
232
|
+
this.layoutBuilderService.hideSection(this.key, hideIn);
|
|
233
|
+
}
|
|
234
|
+
onHideInMenuOpened() {
|
|
235
|
+
this.hoverState = true;
|
|
236
|
+
}
|
|
237
|
+
onHideInMenuClosed() {
|
|
238
|
+
this.hoverState = false;
|
|
239
|
+
}
|
|
240
|
+
onBlockDropped(event) {
|
|
241
|
+
this.layoutBuilderService.onBlockDropped(event, this.key);
|
|
242
|
+
}
|
|
243
|
+
canDropPredicate(columnIndex) {
|
|
244
|
+
return (drag, drop) => {
|
|
245
|
+
const res = !this.layoutBuilderService.doesColumnContainBlock(this.key, columnIndex);
|
|
246
|
+
return res;
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
onDragStart(event) {
|
|
250
|
+
this.layoutBuilderService.onSectionDragStart(event);
|
|
251
|
+
}
|
|
252
|
+
onDragEnd(event) {
|
|
253
|
+
this.layoutBuilderService.onSectionDragEnd(event);
|
|
254
|
+
}
|
|
255
|
+
onSectionBlockDragExited(event) {
|
|
256
|
+
//
|
|
257
|
+
}
|
|
258
|
+
onSectionBlockDragEntered(event) {
|
|
259
|
+
//
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
SectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionComponent, deps: [{ token: i0.Renderer2 }, { token: i1.LayoutBuilderInternalService }, { token: i2.PepLayoutService }], target: i0.ɵɵFactoryTarget.Component });
|
|
263
|
+
SectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: SectionComponent, selector: "section", inputs: { blockTemplate: "blockTemplate", key: "key", name: "name", split: "split", height: "height", collapseOnTablet: "collapseOnTablet", columns: "columns", hideIn: "hideIn", columnsGap: "columnsGap" }, host: { properties: { "style.max-height": "this.styleMaxHeight", "style.height": "this.styleHeight" } }, viewQueries: [{ propertyName: "sectionContainerRef", first: true, predicate: ["sectionContainer"], descendants: true }, { propertyName: "columnsElementRef", predicate: ["columnsWrapper"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #sectionContainer *ngIf=\"editable || (containsBlocks && !hideForCurrentScreenType)\" class=\"section-container \"\n [ngClass]=\"{ \n 'mobile': screenType === 'Phablet',\n 'editable-state': editable, 'main-editor-state': isMainEditorState, 'default-height': shouldSetDefaultHeight, 'active-section': isEditing,\n 'section-hidden-state': hideForCurrentScreenType, 'section-is-dragging': draggingSectionKey !== '', 'show-hover-state': hoverState }\" \n cdkDragBoundary=\".layout-builder-wrapper\" cdkDrag [cdkDragData]=\"key\" [cdkDragDisabled]=\"!editable || selectedSectionKey.length > 0 || selectedBlockKey.length > 0\" (cdkDragStarted)=\"onDragStart($event)\" (cdkDragEnded)=\"onDragEnd($event)\" \n >\n <pep-draggable-item *ngIf=\"editable && isMainEditorState && draggingSectionKey === ''\" cdkDragHandle style=\"cursor: grab;\"\n class=\"section-toolbar\" [ngClass]=\"{ 'hide-toolbar': !hoverState }\" [title]=\"name\">\n <ng-container pep-actions>\n <pep-button classNames=\"caution\" sizeType=\"xs\" iconName=\"system_bin\" (buttonClick)=\"onRemoveSectionClick();\"></pep-button>\n <hide-in [hideIn]=\"hideIn\" (hideInChange)=\"onHideSectionChange($event)\" (menuClosed)=\"onHideInMenuClosed()\" (menuOpened)=\"onHideInMenuOpened()\"></hide-in>\n <pep-button sizeType=\"xs\" iconName=\"system_edit\" (buttonClick)=\"onEditSectionClick();\"></pep-button>\n </ng-container>\n </pep-draggable-item>\n\n <div *ngIf=\"editable\" class=\"section-background\">\n <div class=\"back-template\" *ngFor=\"let number of [0,1,2,3,4,5,6,7,8,9,10,11]\"></div>\n </div>\n <div #columnsWrapper class=\"columns-wrapper gap-{{ columnsGap }}\" \n [ngClass]=\"{ 'mobile': screenType === 'Phablet', 'is-dragging': editable && getIsDragging }\">\n <div [id]=\"sectionColumnKeyPrefix + i\" \n *ngFor=\"let column of columns; let i=index;\"\n class=\"section-column {{screenSize <= pepScreenSizeToFlipToVertical ? 'horizontal' : 'vertical'}}\"\n [ngClass]=\"{ 'active-column': selectedBlockKey === column.BlockContainer?.BlockKey, \n 'is-hidden': getIsHidden(column?.BlockContainer?.Hide, screenType),\n 'already-contains-block': editable && column.BlockContainer && column.BlockContainer.BlockKey && column.BlockContainer.BlockKey.length > 0 && \n draggingBlockKey && draggingBlockKey.length > 0 && column.BlockContainer.BlockKey !== draggingBlockKey }\"\n cdkDropList\n [cdkDropListData]=\"column\"\n [cdkDropListOrientation]=\"screenSize <= pepScreenSizeToFlipToVertical ? 'horizontal' : 'vertical'\" \n [cdkDropListConnectedTo]=\"sectionsColumnsDropList\"\n (cdkDropListDropped)=\"onBlockDropped($event)\"\n [cdkDropListEnterPredicate]=\"canDropPredicate(i)\"\n >\n <section-block *ngIf=\"column.BlockContainer?.BlockKey\" class=\"section-block\" [sectionKey]=\"key\" [blockTemplate]=\"blockTemplate\"\n [blockContainer]=\"column.BlockContainer\" [editable]=\"editable\" [isMainEditorState]=\"isMainEditorState\" [sectionHeight]=\"styleHeight\"\n [active]=\"selectedBlockKey === column.BlockContainer?.BlockKey\" [screenType]=\"screenType\"\n (dragExited)=\"onSectionBlockDragExited($event)\" (dragEntered)=\"onSectionBlockDragEntered($event)\"></section-block>\n </div>\n </div>\n</div>\n", styles: [".section-container{position:relative;display:grid;height:100%;max-height:inherit;min-height:2.5rem}.section-container.editable-state.default-height{min-height:16rem}.section-container.editable-state.active-section{z-index:11}.section-container.editable-state.active-section .columns-wrapper{z-index:1}.section-container.editable-state.active-section ::ng-deep .block-template-wrapper .block-template{pointer-events:unset!important;opacity:unset!important}.section-container.editable-state.cdk-drag-placeholder{opacity:.5}.section-container.editable-state:not(.cdk-drag-placeholder):hover .section-toolbar,.section-container.editable-state:not(.cdk-drag-placeholder).show-hover-state .section-toolbar{display:block!important}.section-container.editable-state:not(.cdk-drag-preview) .hide-toolbar{display:none}.section-container.editable-state.main-editor-state .mobile .is-hidden{display:none}.section-container.editable-state .mobile .is-hidden{display:block}.section-container.editable-state .section-toolbar{position:absolute;top:0;height:2.625rem;z-index:11}.section-container.editable-state .section-toolbar ::ng-deep .pep-draggable-item-container{border-radius:0 0 var(--pep-border-radius-md, .25rem) 0}.section-container.editable-state .section-background{position:absolute;width:100%;height:100%;z-index:0;display:grid;grid-template-columns:repeat(12,1fr)}.section-container.editable-state .section-background .back-template{opacity:.1}.section-container.editable-state .section-background .back-template:last-of-type{border-right:0 none}.section-container .columns-wrapper{display:grid;grid-auto-flow:column;height:inherit;max-height:inherit;overflow:inherit}.section-container .columns-wrapper.is-dragging{overflow:unset}.section-container .columns-wrapper.gap-none{gap:0}.section-container .columns-wrapper.gap-sm{gap:var(--pep-spacing-sm, .5rem)}.section-container .columns-wrapper.gap-md{gap:var(--pep-spacing-lg, 1rem)}.section-container .columns-wrapper.gap-lg{gap:var(--pep-spacing-2xl, 2rem)}.section-container .columns-wrapper .section-column{position:relative;height:inherit;max-height:inherit;overflow:inherit}.section-container .columns-wrapper .section-column .section-block{height:inherit;max-height:inherit}\n", ".section-container{background:transparent}.section-container.editable-state.active-section{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:0 0 0 var(--pep-spacing-xs, .25rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}.section-container.editable-state.active-section .columns-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%))}.section-container.editable-state.section-hidden-state:not(.active-section){background:repeating-linear-gradient(45deg,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0),hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .8rem),repeating-linear-gradient(-45deg,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0),hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .8rem)}.section-container.editable-state.main-editor-state.cdk-drag-preview{box-shadow:0 0 0 .125rem hsl(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%))}.section-container.editable-state.main-editor-state.cdk-drag-placeholder{box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}.section-container.editable-state.main-editor-state.cdk-drag-placeholder:hover,.section-container.editable-state.main-editor-state.cdk-drag-placeholder.show-hover-state{box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)!important}.section-container.editable-state.main-editor-state:hover:not(.section-is-dragging),.section-container.editable-state.main-editor-state.show-hover-state:not(.section-is-dragging){box-shadow:0 0 0 .125rem hsl(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%))}.section-container.editable-state.main-editor-state .section-toolbar ::ng-deep .pep-draggable-item-container{box-shadow:0 0 0 .125rem hsl(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%))}.section-container.editable-state .section-background .back-template{background-color:#bec3e5;border-right:.125rem dashed hsl(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%))}.section-container.editable-state .columns-wrapper .section-column{border:.125rem dashed hsl(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%))}.section-container.editable-state .columns-wrapper .section-column.active-column{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%))}.section-container.editable-state .columns-wrapper .section-column.cdk-drop-list-dragging{box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}.section-container.editable-state .columns-wrapper .section-column.already-contains-block:hover{box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsl(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%))}.section-container.editable-state .columns-wrapper.gap-none .section-column:not(.section-container.editable-state .columns-wrapper.gap-none .section-column:first-of-type).horizontal{border-left:unset}.section-container.editable-state .columns-wrapper.gap-none .section-column:not(.section-container.editable-state .columns-wrapper.gap-none .section-column:first-of-type).horizontal.cdk-drop-list-dragging{border-left:.125rem dashed hsl(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%))}.section-container.editable-state .columns-wrapper.gap-none .section-column:not(.section-container.editable-state .columns-wrapper.gap-none .section-column:first-of-type).vertical{border-top:unset}.section-container.editable-state .columns-wrapper.gap-none .section-column:not(.section-container.editable-state .columns-wrapper.gap-none .section-column:first-of-type).vertical.cdk-drop-list-dragging{border-top:.125rem dashed hsl(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%))}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i4.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i5.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i6.SectionBlockComponent, selector: "section-block", inputs: ["blockTemplate", "sectionKey", "sectionHeight", "isMainEditorState", "editable", "active", "blockContainer", "screenType"], outputs: ["dragExited", "dragEntered"] }, { kind: "component", type: i7.PepHideInComponent, selector: "hide-in", inputs: ["hideIn"], outputs: ["hideInChange", "menuOpened", "menuClosed"] }, { kind: "component", type: i8.DraggableItemComponent, selector: "pep-draggable-item", inputs: ["title", "titlePrefix", "titleClassNames", "data", "disabled", "shadow", "styleType", "toggleContent", "isToggleContentOpen", "actionsMenu", "menuStyleType"], outputs: ["contentToggle", "actionsMenuItemClick"] }] });
|
|
264
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionComponent, decorators: [{
|
|
265
|
+
type: Component,
|
|
266
|
+
args: [{ selector: 'section', template: "<div #sectionContainer *ngIf=\"editable || (containsBlocks && !hideForCurrentScreenType)\" class=\"section-container \"\n [ngClass]=\"{ \n 'mobile': screenType === 'Phablet',\n 'editable-state': editable, 'main-editor-state': isMainEditorState, 'default-height': shouldSetDefaultHeight, 'active-section': isEditing,\n 'section-hidden-state': hideForCurrentScreenType, 'section-is-dragging': draggingSectionKey !== '', 'show-hover-state': hoverState }\" \n cdkDragBoundary=\".layout-builder-wrapper\" cdkDrag [cdkDragData]=\"key\" [cdkDragDisabled]=\"!editable || selectedSectionKey.length > 0 || selectedBlockKey.length > 0\" (cdkDragStarted)=\"onDragStart($event)\" (cdkDragEnded)=\"onDragEnd($event)\" \n >\n <pep-draggable-item *ngIf=\"editable && isMainEditorState && draggingSectionKey === ''\" cdkDragHandle style=\"cursor: grab;\"\n class=\"section-toolbar\" [ngClass]=\"{ 'hide-toolbar': !hoverState }\" [title]=\"name\">\n <ng-container pep-actions>\n <pep-button classNames=\"caution\" sizeType=\"xs\" iconName=\"system_bin\" (buttonClick)=\"onRemoveSectionClick();\"></pep-button>\n <hide-in [hideIn]=\"hideIn\" (hideInChange)=\"onHideSectionChange($event)\" (menuClosed)=\"onHideInMenuClosed()\" (menuOpened)=\"onHideInMenuOpened()\"></hide-in>\n <pep-button sizeType=\"xs\" iconName=\"system_edit\" (buttonClick)=\"onEditSectionClick();\"></pep-button>\n </ng-container>\n </pep-draggable-item>\n\n <div *ngIf=\"editable\" class=\"section-background\">\n <div class=\"back-template\" *ngFor=\"let number of [0,1,2,3,4,5,6,7,8,9,10,11]\"></div>\n </div>\n <div #columnsWrapper class=\"columns-wrapper gap-{{ columnsGap }}\" \n [ngClass]=\"{ 'mobile': screenType === 'Phablet', 'is-dragging': editable && getIsDragging }\">\n <div [id]=\"sectionColumnKeyPrefix + i\" \n *ngFor=\"let column of columns; let i=index;\"\n class=\"section-column {{screenSize <= pepScreenSizeToFlipToVertical ? 'horizontal' : 'vertical'}}\"\n [ngClass]=\"{ 'active-column': selectedBlockKey === column.BlockContainer?.BlockKey, \n 'is-hidden': getIsHidden(column?.BlockContainer?.Hide, screenType),\n 'already-contains-block': editable && column.BlockContainer && column.BlockContainer.BlockKey && column.BlockContainer.BlockKey.length > 0 && \n draggingBlockKey && draggingBlockKey.length > 0 && column.BlockContainer.BlockKey !== draggingBlockKey }\"\n cdkDropList\n [cdkDropListData]=\"column\"\n [cdkDropListOrientation]=\"screenSize <= pepScreenSizeToFlipToVertical ? 'horizontal' : 'vertical'\" \n [cdkDropListConnectedTo]=\"sectionsColumnsDropList\"\n (cdkDropListDropped)=\"onBlockDropped($event)\"\n [cdkDropListEnterPredicate]=\"canDropPredicate(i)\"\n >\n <section-block *ngIf=\"column.BlockContainer?.BlockKey\" class=\"section-block\" [sectionKey]=\"key\" [blockTemplate]=\"blockTemplate\"\n [blockContainer]=\"column.BlockContainer\" [editable]=\"editable\" [isMainEditorState]=\"isMainEditorState\" [sectionHeight]=\"styleHeight\"\n [active]=\"selectedBlockKey === column.BlockContainer?.BlockKey\" [screenType]=\"screenType\"\n (dragExited)=\"onSectionBlockDragExited($event)\" (dragEntered)=\"onSectionBlockDragEntered($event)\"></section-block>\n </div>\n </div>\n</div>\n", styles: [".section-container{position:relative;display:grid;height:100%;max-height:inherit;min-height:2.5rem}.section-container.editable-state.default-height{min-height:16rem}.section-container.editable-state.active-section{z-index:11}.section-container.editable-state.active-section .columns-wrapper{z-index:1}.section-container.editable-state.active-section ::ng-deep .block-template-wrapper .block-template{pointer-events:unset!important;opacity:unset!important}.section-container.editable-state.cdk-drag-placeholder{opacity:.5}.section-container.editable-state:not(.cdk-drag-placeholder):hover .section-toolbar,.section-container.editable-state:not(.cdk-drag-placeholder).show-hover-state .section-toolbar{display:block!important}.section-container.editable-state:not(.cdk-drag-preview) .hide-toolbar{display:none}.section-container.editable-state.main-editor-state .mobile .is-hidden{display:none}.section-container.editable-state .mobile .is-hidden{display:block}.section-container.editable-state .section-toolbar{position:absolute;top:0;height:2.625rem;z-index:11}.section-container.editable-state .section-toolbar ::ng-deep .pep-draggable-item-container{border-radius:0 0 var(--pep-border-radius-md, .25rem) 0}.section-container.editable-state .section-background{position:absolute;width:100%;height:100%;z-index:0;display:grid;grid-template-columns:repeat(12,1fr)}.section-container.editable-state .section-background .back-template{opacity:.1}.section-container.editable-state .section-background .back-template:last-of-type{border-right:0 none}.section-container .columns-wrapper{display:grid;grid-auto-flow:column;height:inherit;max-height:inherit;overflow:inherit}.section-container .columns-wrapper.is-dragging{overflow:unset}.section-container .columns-wrapper.gap-none{gap:0}.section-container .columns-wrapper.gap-sm{gap:var(--pep-spacing-sm, .5rem)}.section-container .columns-wrapper.gap-md{gap:var(--pep-spacing-lg, 1rem)}.section-container .columns-wrapper.gap-lg{gap:var(--pep-spacing-2xl, 2rem)}.section-container .columns-wrapper .section-column{position:relative;height:inherit;max-height:inherit;overflow:inherit}.section-container .columns-wrapper .section-column .section-block{height:inherit;max-height:inherit}\n", ".section-container{background:transparent}.section-container.editable-state.active-section{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:0 0 0 var(--pep-spacing-xs, .25rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}.section-container.editable-state.active-section .columns-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%))}.section-container.editable-state.section-hidden-state:not(.active-section){background:repeating-linear-gradient(45deg,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0),hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .8rem),repeating-linear-gradient(-45deg,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0),hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .8rem)}.section-container.editable-state.main-editor-state.cdk-drag-preview{box-shadow:0 0 0 .125rem hsl(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%))}.section-container.editable-state.main-editor-state.cdk-drag-placeholder{box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}.section-container.editable-state.main-editor-state.cdk-drag-placeholder:hover,.section-container.editable-state.main-editor-state.cdk-drag-placeholder.show-hover-state{box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)!important}.section-container.editable-state.main-editor-state:hover:not(.section-is-dragging),.section-container.editable-state.main-editor-state.show-hover-state:not(.section-is-dragging){box-shadow:0 0 0 .125rem hsl(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%))}.section-container.editable-state.main-editor-state .section-toolbar ::ng-deep .pep-draggable-item-container{box-shadow:0 0 0 .125rem hsl(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%))}.section-container.editable-state .section-background .back-template{background-color:#bec3e5;border-right:.125rem dashed hsl(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%))}.section-container.editable-state .columns-wrapper .section-column{border:.125rem dashed hsl(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%))}.section-container.editable-state .columns-wrapper .section-column.active-column{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%))}.section-container.editable-state .columns-wrapper .section-column.cdk-drop-list-dragging{box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}.section-container.editable-state .columns-wrapper .section-column.already-contains-block:hover{box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsl(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%))}.section-container.editable-state .columns-wrapper.gap-none .section-column:not(.section-container.editable-state .columns-wrapper.gap-none .section-column:first-of-type).horizontal{border-left:unset}.section-container.editable-state .columns-wrapper.gap-none .section-column:not(.section-container.editable-state .columns-wrapper.gap-none .section-column:first-of-type).horizontal.cdk-drop-list-dragging{border-left:.125rem dashed hsl(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%))}.section-container.editable-state .columns-wrapper.gap-none .section-column:not(.section-container.editable-state .columns-wrapper.gap-none .section-column:first-of-type).vertical{border-top:unset}.section-container.editable-state .columns-wrapper.gap-none .section-column:not(.section-container.editable-state .columns-wrapper.gap-none .section-column:first-of-type).vertical.cdk-drop-list-dragging{border-top:.125rem dashed hsl(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%))}\n"] }]
|
|
267
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.LayoutBuilderInternalService }, { type: i2.PepLayoutService }]; }, propDecorators: { sectionContainerRef: [{
|
|
268
|
+
type: ViewChild,
|
|
269
|
+
args: ['sectionContainer']
|
|
270
|
+
}], columnsElementRef: [{
|
|
271
|
+
type: ViewChildren,
|
|
272
|
+
args: ['columnsWrapper']
|
|
273
|
+
}], blockTemplate: [{
|
|
274
|
+
type: Input
|
|
275
|
+
}], key: [{
|
|
276
|
+
type: Input
|
|
277
|
+
}], name: [{
|
|
278
|
+
type: Input
|
|
279
|
+
}], split: [{
|
|
280
|
+
type: Input
|
|
281
|
+
}], height: [{
|
|
282
|
+
type: Input
|
|
283
|
+
}], collapseOnTablet: [{
|
|
284
|
+
type: Input
|
|
285
|
+
}], columns: [{
|
|
286
|
+
type: Input
|
|
287
|
+
}], hideIn: [{
|
|
288
|
+
type: Input
|
|
289
|
+
}], columnsGap: [{
|
|
290
|
+
type: Input
|
|
291
|
+
}], styleMaxHeight: [{
|
|
292
|
+
type: HostBinding,
|
|
293
|
+
args: ['style.max-height']
|
|
294
|
+
}], styleHeight: [{
|
|
295
|
+
type: HostBinding,
|
|
296
|
+
args: ['style.height']
|
|
297
|
+
}] } });
|
|
298
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9sYXlvdXQtYnVpbGRlci9zZWN0aW9uL3NlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvc2VjdGlvbi9zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsV0FBVyxFQUFnQixLQUFLLEVBQXVFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdEwsT0FBTyxFQUFFLHNCQUFzQixFQUFvQixpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7O0FBU3RHLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxzQkFBc0I7SUF5R3hELFlBQ1ksUUFBbUIsRUFDbkIsb0JBQWtELEVBQ2xELGFBQStCO1FBRXZDLEtBQUssRUFBRSxDQUFDO1FBSkEsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQThCO1FBQ2xELGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQXRHbEMsUUFBRyxHQUFXLEVBQUUsQ0FBQztRQUNqQixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBRW5CLFdBQU0sR0FBMEIsU0FBUyxDQUFDO1FBVTFDLFlBQU8sR0FBdUIsU0FBUyxDQUFDO1FBVXhDLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQVduQyxhQUFRLEdBQW1DLEVBQUUsQ0FBQztRQVM5QyxZQUFPLEdBQXlCLEVBQUUsQ0FBQztRQWEzQyxtQkFBYyxHQUFHLE9BQU8sQ0FBQztRQUd6QixnQkFBVyxHQUFHLE9BQU8sQ0FBQztRQUVaLDRCQUF1QixHQUFhLEVBQUUsQ0FBQztRQXFCakQseUNBQXlDO1FBQy9CLDJCQUFz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SSxDQUFDLG9CQUFvQixDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDckYsT0FBTyxHQUFHLENBQUM7UUFDZixDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQW1CO1FBQzNCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWlCO1FBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsS0FBa0I7UUFDdkMsRUFBRTtJQUNOLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxLQUFtQjtRQUN6QyxFQUFFO0lBQ04sQ0FBQzs7NkdBdFRRLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLCtrQkNaN0IsdThHQTBDQTsyRkQ5QmEsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNJLFNBQVM7MEtBS1ksbUJBQW1CO3NCQUFqRCxTQUFTO3VCQUFDLGtCQUFrQjtnQkFDRyxpQkFBaUI7c0JBQWhELFlBQVk7dUJBQUMsZ0JBQWdCO2dCQUVyQixhQUFhO3NCQUFyQixLQUFLO2dCQUVHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSUYsS0FBSztzQkFEUixLQUFLO2dCQVdGLE1BQU07c0JBRFQsS0FBSztnQkFXRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBWUYsT0FBTztzQkFEVixLQUFLO2dCQVVGLE1BQU07c0JBRFQsS0FBSztnQkFTRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdOLGNBQWM7c0JBRGIsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBSS9CLFdBQVc7c0JBRFYsV0FBVzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFF1ZXJ5TGlzdCwgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENka0RyYWcsIENka0RyYWdEcm9wLCBDZGtEcmFnRW5kLCBDZGtEcmFnRW50ZXIsIENka0RyYWdFeGl0LCBDZGtEcmFnU3RhcnQsIENka0Ryb3BMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBEYXRhVmlld1NjcmVlblNpemUsIFNwbGl0VHlwZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9wYXBpLXNkayc7XG5pbXBvcnQgeyBCYXNlRGVzdHJveWVyRGlyZWN0aXZlLCBQZXBMYXlvdXRTZXJ2aWNlLCBQZXBTY3JlZW5TaXplVHlwZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7IExheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UgfSBmcm9tICcuLi9sYXlvdXQtYnVpbGRlci1pbnRlcm5hbC5zZXJ2aWNlJztcbmltcG9ydCB7IElFZGl0b3IsIElQZXBMYXlvdXRTZWN0aW9uQ29sdW1uLCBQZXBMYXlvdXRTaXplVHlwZSB9IGZyb20gJy4uL2xheW91dC1idWlsZGVyLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzZWN0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VjdGlvbi5jb21wb25lbnQuc2NzcycsICcuL3NlY3Rpb24uY29tcG9uZW50LnRoZW1lLnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWN0aW9uQ29tcG9uZW50IGV4dGVuZHMgQmFzZURlc3Ryb3llckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZCgnc2VjdGlvbkNvbnRhaW5lcicpIHNlY3Rpb25Db250YWluZXJSZWYhOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGRyZW4oJ2NvbHVtbnNXcmFwcGVyJykgY29sdW1uc0VsZW1lbnRSZWYhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG5cbiAgICBASW5wdXQoKSBibG9ja1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgQElucHV0KCkga2V5OiBzdHJpbmcgPSAnJztcbiAgICBASW5wdXQoKSBuYW1lOiBzdHJpbmcgPSAnJztcblxuICAgIHByaXZhdGUgX3NwbGl0OiBTcGxpdFR5cGUgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KClcbiAgICBzZXQgc3BsaXQodmFsdWU6IFNwbGl0VHlwZSB8IHVuZGVmaW5lZCApIHtcbiAgICAgICAgdGhpcy5fc3BsaXQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5yZWZyZXNoU3BsaXQoKTtcbiAgICB9XG4gICAgZ2V0IHNwbGl0KCk6IFNwbGl0VHlwZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zcGxpdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9oZWlnaHQ6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKVxuICAgIHNldCBoZWlnaHQodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9oZWlnaHQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRTdHlsZUhlaWdodCgpO1xuICAgIH1cbiAgICBnZXQgaGVpZ2h0KCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oZWlnaHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29sbGFwc2VPblRhYmxldDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGNvbGxhcHNlT25UYWJsZXQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fY29sbGFwc2VPblRhYmxldCA9IHZhbHVlO1xuICAgICAgICB0aGlzLnBlcFNjcmVlblNpemVUb0ZsaXBUb1ZlcnRpY2FsID0gdmFsdWUgPyBQZXBTY3JlZW5TaXplVHlwZS5NRCA6IFBlcFNjcmVlblNpemVUeXBlLlNNO1xuICAgICAgICB0aGlzLnJlZnJlc2hTcGxpdCgpO1xuICAgIH1cbiAgICBnZXQgY29sbGFwc2VPblRhYmxldCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbGxhcHNlT25UYWJsZXQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29sdW1uczogQXJyYXk8SVBlcExheW91dFNlY3Rpb25Db2x1bW4+ID0gW107XG4gICAgQElucHV0KClcbiAgICBzZXQgY29sdW1ucyh2YWx1ZTogQXJyYXk8SVBlcExheW91dFNlY3Rpb25Db2x1bW4+KSB7XG4gICAgICAgIHRoaXMuX2NvbHVtbnMgPSB2YWx1ZSB8fCBbXTtcbiAgICB9XG4gICAgZ2V0IGNvbHVtbnMoKTogQXJyYXk8SVBlcExheW91dFNlY3Rpb25Db2x1bW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbnM7XG4gICAgfVxuICAgIFxuICAgIHByaXZhdGUgX2hpZGVJbjogRGF0YVZpZXdTY3JlZW5TaXplW10gPSBbXTtcbiAgICBASW5wdXQoKVxuICAgIHNldCBoaWRlSW4odmFsdWU6IERhdGFWaWV3U2NyZWVuU2l6ZVtdKSB7XG4gICAgICAgIHRoaXMuX2hpZGVJbiA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldElmSGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlKCk7XG4gICAgfVxuICAgIGdldCBoaWRlSW4oKTogRGF0YVZpZXdTY3JlZW5TaXplW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGlkZUluO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGNvbHVtbnNHYXAhOiBQZXBMYXlvdXRTaXplVHlwZTtcbiAgICAgICAgXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXgtaGVpZ2h0JylcbiAgICBzdHlsZU1heEhlaWdodCA9ICd1bnNldCc7XG4gICAgXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQnKVxuICAgIHN0eWxlSGVpZ2h0ID0gJ3Vuc2V0JztcbiAgICBcbiAgICBwcm90ZWN0ZWQgc2VjdGlvbnNDb2x1bW5zRHJvcExpc3Q6IHN0cmluZ1tdID0gW107XG5cbiAgICAvLyBwcml2YXRlIF9lZGl0YWJsZSA9IGZhbHNlO1xuICAgIC8vIHByb3RlY3RlZCBzZXQgZWRpdGFibGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAvLyAgICAgdGhpcy5fZWRpdGFibGUgPSB2YWx1ZTtcbiAgICAvLyAgICAgdGhpcy5yZWZyZXNoU3BsaXQoKTtcbiAgICAvLyB9XG4gICAgcHJvdGVjdGVkIGdldCBlZGl0YWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UuZWRpdGFibGVTdGF0ZTs7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2NyZWVuU2l6ZSE6IFBlcFNjcmVlblNpemVUeXBlO1xuICAgIHByb3RlY3RlZCBzZXQgc2NyZWVuU2l6ZSh2YWx1ZTogUGVwU2NyZWVuU2l6ZVR5cGUpIHtcbiAgICAgICAgdGhpcy5fc2NyZWVuU2l6ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnJlZnJlc2hTcGxpdCgpO1xuICAgICAgICB0aGlzLnNldFNjcmVlblR5cGUoKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIGdldCBzY3JlZW5TaXplKCk6IFBlcFNjcmVlblNpemVUeXBlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NjcmVlblNpemU7XG4gICAgfVxuXG4gICAgLy8gUGVwU2NyZWVuU2l6ZVR5cGUgPSBQZXBTY3JlZW5TaXplVHlwZTtcbiAgICBwcm90ZWN0ZWQgc2VjdGlvbkNvbHVtbktleVByZWZpeCA9ICcnO1xuICAgIFxuICAgIHByb3RlY3RlZCBpc01haW5FZGl0b3JTdGF0ZSA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBpc0VkaXRpbmcgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgc2VsZWN0ZWRTZWN0aW9uS2V5ID0gJyc7XG4gICAgcHJvdGVjdGVkIHNlbGVjdGVkQmxvY2tLZXkgPSAnJztcbiAgICBcbiAgICBwcm90ZWN0ZWQgY29udGFpbnNCbG9ja3MgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgc2hvdWxkU2V0RGVmYXVsdEhlaWdodCA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBwZXBTY3JlZW5TaXplVG9GbGlwVG9WZXJ0aWNhbCA9IFBlcFNjcmVlblNpemVUeXBlLlNNO1xuICAgIHByb3RlY3RlZCBzY3JlZW5UeXBlITogRGF0YVZpZXdTY3JlZW5TaXplO1xuICAgIHByb3RlY3RlZCBoaWRlRm9yQ3VycmVudFNjcmVlblR5cGUgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgZHJhZ2dpbmdCbG9ja0tleTogc3RyaW5nID0gJyc7XG4gICAgcHJvdGVjdGVkIGRyYWdnaW5nU2VjdGlvbktleTogc3RyaW5nID0gJyc7XG4gICAgcHJvdGVjdGVkIGhvdmVyU3RhdGUgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgbGF5b3V0QnVpbGRlclNlcnZpY2U6IExheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbGF5b3V0U2VydmljZTogUGVwTGF5b3V0U2VydmljZSxcbiAgICApIHsgXG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVJZlNlY3Rpb25Db250YWluc0Jsb2NrcygpIHtcbiAgICAgICAgdGhpcy5jb250YWluc0Jsb2NrcyA9IHRoaXMuY29sdW1ucy5zb21lKGNvbHVtbiA9PiBjb2x1bW4uQmxvY2tDb250YWluZXIpO1xuXG4gICAgICAgIGlmICh0aGlzLmVkaXRhYmxlKSB7XG4gICAgICAgICAgICB0aGlzLnNob3VsZFNldERlZmF1bHRIZWlnaHQgPSAhdGhpcy5jb250YWluc0Jsb2NrcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U2NyZWVuVHlwZSgpIHtcbiAgICAgICAgdGhpcy5zY3JlZW5UeXBlID0gdGhpcy5sYXlvdXRCdWlsZGVyU2VydmljZS5nZXRTY3JlZW5UeXBlKHRoaXMuc2NyZWVuU2l6ZSk7XG4gICAgICAgIHRoaXMuc2V0SWZIaWRlRm9yQ3VycmVudFNjcmVlblR5cGUoKTtcbiAgICAgICAgdGhpcy5zZXRTdHlsZUhlaWdodCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0SWZIaWRlRm9yQ3VycmVudFNjcmVlblR5cGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlID0gdGhpcy5sYXlvdXRCdWlsZGVyU2VydmljZS5nZXRJc0hpZGRlbih0aGlzLmhpZGVJbiwgdGhpcy5zY3JlZW5UeXBlKTtcbiAgICB9XG4gICAgXG4gICAgcHJpdmF0ZSBnZXRDc3NTcGxpdFN0cmluZygpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLnNwbGl0KSB7XG4gICAgICAgICAgICBjYXNlICcxLzIgMS8yJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJzFmciAxZnInO1xuICAgICAgICAgICAgY2FzZSAnMS8yIDEvNCAxLzQnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnMmZyIDFmciAxZnInO1xuICAgICAgICAgICAgY2FzZSAnMS8zIDEvMyAxLzMnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnMWZyIDFmciAxZnInO1xuICAgICAgICAgICAgY2FzZSAnMS8zIDIvMyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICcxZnIgMmZyJztcbiAgICAgICAgICAgIGNhc2UgJzEvNCAxLzIgMS80JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJzFmciAyZnIgMWZyJztcbiAgICAgICAgICAgIGNhc2UgJzEvNCAxLzQgMS8yJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJzFmciAxZnIgMmZyJztcbiAgICAgICAgICAgIGNhc2UgJzEvNCAxLzQgMS80IDEvNCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICcxZnIgMWZyIDFmciAxZnInO1xuICAgICAgICAgICAgY2FzZSAnMS80IDMvNCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICcxZnIgM2ZyJztcbiAgICAgICAgICAgIGNhc2UgJzIvMyAxLzMnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnMmZyIDFmcic7XG4gICAgICAgICAgICBjYXNlICczLzQgMS80JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJzNmciAxZnInO1xuICAgICAgICAgICAgZGVmYXVsdDogLy8gRm9yIG9uZSBjb2x1bW4uXG4gICAgICAgICAgICAgICAgcmV0dXJuICcxZnInO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWZyZXNoU3BsaXQoKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VjdGlvbkNvbnRhaW5lclJlZikge1xuICAgICAgICAgICAgICAgIGxldCBjc3NTcGxpdFN0cmluZyA9IHRoaXMuZ2V0Q3NzU3BsaXRTdHJpbmcoKTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAvLyBHbyBmb3IgYWxsIHRoZSBjb2x1bW5zIGluIHRoZSBjb2x1bW5zV3JhcHBlclxuICAgICAgICAgICAgICAgIHRoaXMuY29sdW1uc0VsZW1lbnRSZWYudG9BcnJheSgpLm1hcCgoc2VjdGlvbiwgc2VjdGlvbkluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEhvcml6b250YWwgKHRydWUpIGZvciBsYXJnZSBzY3JlZW5zLCBmYWxzZSBmb3Igc21hbGwgc2NyZWVucy5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNIb3Jpem9udGFsVmlldyA9IHRoaXMuc2NyZWVuU2l6ZSA8PSB0aGlzLnBlcFNjcmVlblNpemVUb0ZsaXBUb1ZlcnRpY2FsO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0hvcml6b250YWxWaWV3KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHNlY3Rpb24ubmF0aXZlRWxlbWVudCwgJ2dyaWQtYXV0by1mbG93JywgJ2NvbHVtbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzZWN0aW9uLm5hdGl2ZUVsZW1lbnQsICdncmlkLXRlbXBsYXRlLXJvd3MnLCAndW5zZXQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc2VjdGlvbi5uYXRpdmVFbGVtZW50LCAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJywgY3NzU3BsaXRTdHJpbmcpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzZWN0aW9uLm5hdGl2ZUVsZW1lbnQsICdncmlkLWF1dG8tZmxvdycsICdyb3cnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc2VjdGlvbi5uYXRpdmVFbGVtZW50LCAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJywgJ3Vuc2V0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHNlY3Rpb24ubmF0aXZlRWxlbWVudCwgJ2dyaWQtdGVtcGxhdGUtcm93cycsIGNzc1NwbGl0U3RyaW5nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW4gcnVudGltZSAob3IgcHJldmlldyBtb2RlKS5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5lZGl0YWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNzc1NwbGl0QXJyYXkgPSBjc3NTcGxpdFN0cmluZy5zcGxpdCgnICcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBzb21lIGhpZGRlbiBjb2x1bW5zIGNoYW5nZSB0aGUgY29sdW1uIHdpZHRoIHRvIDAgKGZvciBjdXQgdGhlIHNwYWNpbmcgaW4gdGhlIGdyaWQtdGVtcGxhdGUtcm93cykuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2x1bW5zLmZvckVhY2goKGNvbHVtbiwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjb2x1bW4uQmxvY2tDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzc1NwbGl0QXJyYXlbaW5kZXhdID0gJzAnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzZWN0aW9uLm5hdGl2ZUVsZW1lbnQsICdncmlkLXRlbXBsYXRlLXJvd3MnLCAnYXV0bycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzZWN0aW9uLm5hdGl2ZUVsZW1lbnQsICdncmlkLXRlbXBsYXRlLXJvd3MnLCBjc3NTcGxpdEFycmF5LmpvaW4oJyAnKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgMCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTdHlsZUhlaWdodCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaGVpZ2h0ICYmIHRoaXMuaGVpZ2h0ID4gMCAmJiB0aGlzLnNjcmVlblR5cGUgIT09ICdQaGFibGV0Jykge1xuICAgICAgICAgICAgdGhpcy5zdHlsZUhlaWdodCA9IHRoaXMuc3R5bGVNYXhIZWlnaHQgPSBgJHt0aGlzLmhlaWdodH1weGA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0eWxlSGVpZ2h0ID0gdGhpcy5zdHlsZU1heEhlaWdodCA9ICd1bnNldCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRJc0RyYWdnaW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kcmFnZ2luZ0Jsb2NrS2V5Lmxlbmd0aCA+IDAgJiYgdGhpcy5kcmFnZ2luZ1NlY3Rpb25LZXkubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBnZXRJc0hpZGRlbihoaWRlSW46IERhdGFWaWV3U2NyZWVuU2l6ZVtdIHwgdW5kZWZpbmVkLCBjdXJyZW50U2NyZWVuVHlwZTogRGF0YVZpZXdTY3JlZW5TaXplKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLmdldElzSGlkZGVuKGhpZGVJbiwgY3VycmVudFNjcmVlblR5cGUpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLnByZXZpZXdNb2RlQ2hhbmdlJC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZShwcmV2aWV3TW9kZSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hTcGxpdCgpO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBKdXN0IHRvIGNhbGN1bGF0ZSBpZiBzZWN0aW9ucyBjb250YWlucyBibG9ja3NcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVyU2VydmljZS5zZWN0aW9uc0NoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlSWZTZWN0aW9uQ29udGFpbnNCbG9ja3MoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLm9uUmVzaXplJC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgoc2l6ZTogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNjcmVlblNpemUgPSBzaXplO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLnNjcmVlblNpemVDaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChzaXplOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2NyZWVuU2l6ZSA9IHNpemU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmVkaXRhYmxlKSB7XG4gICAgICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLnNlY3Rpb25zQ29sdW1uc0Ryb3BMaXN0Q2hhbmdlJC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgoc2VjdGlvbnNDb2x1bW5zRHJvcExpc3Q6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VjdGlvbnNDb2x1bW5zRHJvcExpc3QgPSBzZWN0aW9uc0NvbHVtbnNEcm9wTGlzdDtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLmVkaXRvckNoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKGVkaXRvcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc01haW5FZGl0b3JTdGF0ZSA9IGVkaXRvciAmJiBlZGl0b3IudHlwZSA9PT0gJ2xheW91dC1idWlsZGVyJztcbiAgICAgICAgICAgICAgICB0aGlzLmlzRWRpdGluZyA9IGVkaXRvciAmJiBlZGl0b3IudHlwZSA9PT0gJ3NlY3Rpb24nICYmIGVkaXRvci5pZCA9PT0gdGhpcy5rZXk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFNlY3Rpb25LZXkgPSBlZGl0b3IgJiYgZWRpdG9yLnR5cGUgPT09ICdzZWN0aW9uJyA/IGVkaXRvci5pZCA6ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRCbG9ja0tleSA9IGVkaXRvciAmJiBlZGl0b3IudHlwZSA9PT0gJ2Jsb2NrJyA/IGVkaXRvci5pZCA6ICcnO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UuZHJhZ2dpbmdCbG9ja0tleS5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgoZHJhZ2dpbmdCbG9ja0tleTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kcmFnZ2luZ0Jsb2NrS2V5ID0gZHJhZ2dpbmdCbG9ja0tleTtcblxuICAgICAgICAgICAgICAgIGlmIChkcmFnZ2luZ0Jsb2NrS2V5ID09PSAnJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZUlmU2VjdGlvbkNvbnRhaW5zQmxvY2tzKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgb25seSBvbmUgYmxvY2sgaW4gdGhlIHNlY3Rpb24gYW5kIG5vdyBpdCdzIHRoaXMgYmxvY2sgdGhhdCB0aGUgdXNlciBpcyBkcmFnZ2luZy5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2tzTGVuZ3RoID0gdGhpcy5jb2x1bW5zLmZpbHRlcihjb2x1bW4gPT4gY29sdW1uLkJsb2NrQ29udGFpbmVyKS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGlmIChibG9ja3NMZW5ndGggPT09IDEgJiYgdGhpcy5jb2x1bW5zLmZpbmQoYyA9PiBjLkJsb2NrQ29udGFpbmVyPy5CbG9ja0tleSA9PT0gdGhpcy5kcmFnZ2luZ0Jsb2NrS2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG91bGRTZXREZWZhdWx0SGVpZ2h0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UuZHJhZ2dpbmdTZWN0aW9uS2V5LnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChkcmFnZ2luZ1NlY3Rpb25LZXk6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ2dpbmdTZWN0aW9uS2V5ID0gZHJhZ2dpbmdTZWN0aW9uS2V5O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlY3Rpb25Db2x1bW5LZXlQcmVmaXggPSB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLmdldFNlY3Rpb25Db2x1bW5LZXkodGhpcy5rZXkpO1xuICAgIH1cblxuICAgIG9uRWRpdFNlY3Rpb25DbGljaygpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVyU2VydmljZS5uYXZpZ2F0ZVRvRWRpdG9yKCdzZWN0aW9uJywgdGhpcy5rZXkpO1xuICAgIH1cblxuICAgIG9uUmVtb3ZlU2VjdGlvbkNsaWNrKCkge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLnJlbW92ZVNlY3Rpb24odGhpcy5rZXkpO1xuICAgIH1cblxuICAgIG9uSGlkZVNlY3Rpb25DaGFuZ2UoaGlkZUluOiBEYXRhVmlld1NjcmVlblNpemVbXSkge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLmhpZGVTZWN0aW9uKHRoaXMua2V5LCBoaWRlSW4pO1xuICAgIH1cblxuICAgIG9uSGlkZUluTWVudU9wZW5lZCgpIHtcbiAgICAgICAgdGhpcy5ob3ZlclN0YXRlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBvbkhpZGVJbk1lbnVDbG9zZWQoKSB7XG4gICAgICAgIHRoaXMuaG92ZXJTdGF0ZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIG9uQmxvY2tEcm9wcGVkKGV2ZW50OiBDZGtEcmFnRHJvcDxJUGVwTGF5b3V0U2VjdGlvbkNvbHVtbiwgYW55LCBhbnk+KSB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2Uub25CbG9ja0Ryb3BwZWQoZXZlbnQsIHRoaXMua2V5KTtcbiAgICB9XG5cbiAgICBjYW5Ecm9wUHJlZGljYXRlKGNvbHVtbkluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIChkcmFnOiBDZGtEcmFnLCBkcm9wOiBDZGtEcm9wTGlzdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzID0gIXRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UuZG9lc0NvbHVtbkNvbnRhaW5CbG9jayh0aGlzLmtleSwgY29sdW1uSW5kZXgpO1xuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBvbkRyYWdTdGFydChldmVudDogQ2RrRHJhZ1N0YXJ0KSB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2Uub25TZWN0aW9uRHJhZ1N0YXJ0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkRyYWdFbmQoZXZlbnQ6IENka0RyYWdFbmQpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVyU2VydmljZS5vblNlY3Rpb25EcmFnRW5kKGV2ZW50KTtcbiAgICB9XG5cbiAgICBvblNlY3Rpb25CbG9ja0RyYWdFeGl0ZWQoZXZlbnQ6IENka0RyYWdFeGl0KSB7XG4gICAgICAgIC8vXG4gICAgfVxuXG4gICAgb25TZWN0aW9uQmxvY2tEcmFnRW50ZXJlZChldmVudDogQ2RrRHJhZ0VudGVyKSB7XG4gICAgICAgIC8vXG4gICAgfVxufVxuIiwiPGRpdiAjc2VjdGlvbkNvbnRhaW5lciAqbmdJZj1cImVkaXRhYmxlIHx8IChjb250YWluc0Jsb2NrcyAmJiAhaGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlKVwiIGNsYXNzPVwic2VjdGlvbi1jb250YWluZXIgXCJcbiAgICBbbmdDbGFzc109XCJ7IFxuICAgICAgICAnbW9iaWxlJzogc2NyZWVuVHlwZSA9PT0gJ1BoYWJsZXQnLFxuICAgICAgICAnZWRpdGFibGUtc3RhdGUnOiBlZGl0YWJsZSwgJ21haW4tZWRpdG9yLXN0YXRlJzogaXNNYWluRWRpdG9yU3RhdGUsICdkZWZhdWx0LWhlaWdodCc6IHNob3VsZFNldERlZmF1bHRIZWlnaHQsICdhY3RpdmUtc2VjdGlvbic6IGlzRWRpdGluZyxcbiAgICAgICAgJ3NlY3Rpb24taGlkZGVuLXN0YXRlJzogaGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlLCAnc2VjdGlvbi1pcy1kcmFnZ2luZyc6IGRyYWdnaW5nU2VjdGlvbktleSAhPT0gJycsICdzaG93LWhvdmVyLXN0YXRlJzogaG92ZXJTdGF0ZSB9XCIgXG4gICAgICAgIGNka0RyYWdCb3VuZGFyeT1cIi5sYXlvdXQtYnVpbGRlci13cmFwcGVyXCIgY2RrRHJhZyBbY2RrRHJhZ0RhdGFdPVwia2V5XCIgW2Nka0RyYWdEaXNhYmxlZF09XCIhZWRpdGFibGUgfHwgc2VsZWN0ZWRTZWN0aW9uS2V5Lmxlbmd0aCA+IDAgfHwgc2VsZWN0ZWRCbG9ja0tleS5sZW5ndGggPiAwXCIgKGNka0RyYWdTdGFydGVkKT1cIm9uRHJhZ1N0YXJ0KCRldmVudClcIiAoY2RrRHJhZ0VuZGVkKT1cIm9uRHJhZ0VuZCgkZXZlbnQpXCIgXG4gICAgPlxuICAgIDxwZXAtZHJhZ2dhYmxlLWl0ZW0gKm5nSWY9XCJlZGl0YWJsZSAmJiBpc01haW5FZGl0b3JTdGF0ZSAmJiBkcmFnZ2luZ1NlY3Rpb25LZXkgPT09ICcnXCIgY2RrRHJhZ0hhbmRsZSBzdHlsZT1cImN1cnNvcjogZ3JhYjtcIlxuICAgICAgICBjbGFzcz1cInNlY3Rpb24tdG9vbGJhclwiIFtuZ0NsYXNzXT1cInsgJ2hpZGUtdG9vbGJhcic6ICFob3ZlclN0YXRlIH1cIiBbdGl0bGVdPVwibmFtZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyIHBlcC1hY3Rpb25zPlxuICAgICAgICAgICAgPHBlcC1idXR0b24gY2xhc3NOYW1lcz1cImNhdXRpb25cIiBzaXplVHlwZT1cInhzXCIgaWNvbk5hbWU9XCJzeXN0ZW1fYmluXCIgKGJ1dHRvbkNsaWNrKT1cIm9uUmVtb3ZlU2VjdGlvbkNsaWNrKCk7XCI+PC9wZXAtYnV0dG9uPlxuICAgICAgICAgICAgPGhpZGUtaW4gW2hpZGVJbl09XCJoaWRlSW5cIiAoaGlkZUluQ2hhbmdlKT1cIm9uSGlkZVNlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiIChtZW51Q2xvc2VkKT1cIm9uSGlkZUluTWVudUNsb3NlZCgpXCIgKG1lbnVPcGVuZWQpPVwib25IaWRlSW5NZW51T3BlbmVkKClcIj48L2hpZGUtaW4+XG4gICAgICAgICAgICA8cGVwLWJ1dHRvbiBzaXplVHlwZT1cInhzXCIgaWNvbk5hbWU9XCJzeXN0ZW1fZWRpdFwiIChidXR0b25DbGljayk9XCJvbkVkaXRTZWN0aW9uQ2xpY2soKTtcIj48L3BlcC1idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvcGVwLWRyYWdnYWJsZS1pdGVtPlxuXG4gICAgPGRpdiAqbmdJZj1cImVkaXRhYmxlXCIgY2xhc3M9XCJzZWN0aW9uLWJhY2tncm91bmRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJhY2stdGVtcGxhdGVcIiAqbmdGb3I9XCJsZXQgbnVtYmVyIG9mIFswLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExXVwiPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgI2NvbHVtbnNXcmFwcGVyIGNsYXNzPVwiY29sdW1ucy13cmFwcGVyIGdhcC17eyBjb2x1bW5zR2FwIH19XCIgXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ21vYmlsZSc6IHNjcmVlblR5cGUgPT09ICdQaGFibGV0JywgJ2lzLWRyYWdnaW5nJzogZWRpdGFibGUgJiYgZ2V0SXNEcmFnZ2luZyB9XCI+XG4gICAgICAgIDxkaXYgW2lkXT1cInNlY3Rpb25Db2x1bW5LZXlQcmVmaXggKyBpXCIgXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IGxldCBpPWluZGV4O1wiXG4gICAgICAgICAgICBjbGFzcz1cInNlY3Rpb24tY29sdW1uIHt7c2NyZWVuU2l6ZSA8PSBwZXBTY3JlZW5TaXplVG9GbGlwVG9WZXJ0aWNhbCA/ICdob3Jpem9udGFsJyA6ICd2ZXJ0aWNhbCd9fVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdhY3RpdmUtY29sdW1uJzogc2VsZWN0ZWRCbG9ja0tleSA9PT0gY29sdW1uLkJsb2NrQ29udGFpbmVyPy5CbG9ja0tleSwgXG4gICAgICAgICAgICAgICAgJ2lzLWhpZGRlbic6IGdldElzSGlkZGVuKGNvbHVtbj8uQmxvY2tDb250YWluZXI/LkhpZGUsIHNjcmVlblR5cGUpLFxuICAgICAgICAgICAgICAgICdhbHJlYWR5LWNvbnRhaW5zLWJsb2NrJzogZWRpdGFibGUgJiYgY29sdW1uLkJsb2NrQ29udGFpbmVyICYmIGNvbHVtbi5CbG9ja0NvbnRhaW5lci5CbG9ja0tleSAmJiBjb2x1bW4uQmxvY2tDb250YWluZXIuQmxvY2tLZXkubGVuZ3RoID4gMCAmJiBcbiAgICAgICAgICAgICAgICAgICAgZHJhZ2dpbmdCbG9ja0tleSAmJiBkcmFnZ2luZ0Jsb2NrS2V5Lmxlbmd0aCA+IDAgJiYgY29sdW1uLkJsb2NrQ29udGFpbmVyLkJsb2NrS2V5ICE9PSBkcmFnZ2luZ0Jsb2NrS2V5IH1cIlxuICAgICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiY29sdW1uXCJcbiAgICAgICAgICAgIFtjZGtEcm9wTGlzdE9yaWVudGF0aW9uXT1cInNjcmVlblNpemUgPD0gcGVwU2NyZWVuU2l6ZVRvRmxpcFRvVmVydGljYWwgPyAnaG9yaXpvbnRhbCcgOiAndmVydGljYWwnXCIgXG4gICAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJzZWN0aW9uc0NvbHVtbnNEcm9wTGlzdFwiXG4gICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cIm9uQmxvY2tEcm9wcGVkKCRldmVudClcIlxuICAgICAgICAgICAgW2Nka0Ryb3BMaXN0RW50ZXJQcmVkaWNhdGVdPVwiY2FuRHJvcFByZWRpY2F0ZShpKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzZWN0aW9uLWJsb2NrICpuZ0lmPVwiY29sdW1uLkJsb2NrQ29udGFpbmVyPy5CbG9ja0tleVwiIGNsYXNzPVwic2VjdGlvbi1ibG9ja1wiIFtzZWN0aW9uS2V5XT1cImtleVwiIFtibG9ja1RlbXBsYXRlXT1cImJsb2NrVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgIFtibG9ja0NvbnRhaW5lcl09XCJjb2x1bW4uQmxvY2tDb250YWluZXJcIiBbZWRpdGFibGVdPVwiZWRpdGFibGVcIiBbaXNNYWluRWRpdG9yU3RhdGVdPVwiaXNNYWluRWRpdG9yU3RhdGVcIiBbc2VjdGlvbkhlaWdodF09XCJzdHlsZUhlaWdodFwiXG4gICAgICAgICAgICAgICAgW2FjdGl2ZV09XCJzZWxlY3RlZEJsb2NrS2V5ID09PSBjb2x1bW4uQmxvY2tDb250YWluZXI/LkJsb2NrS2V5XCIgW3NjcmVlblR5cGVdPVwic2NyZWVuVHlwZVwiXG4gICAgICAgICAgICAgICAgKGRyYWdFeGl0ZWQpPVwib25TZWN0aW9uQmxvY2tEcmFnRXhpdGVkKCRldmVudClcIiAoZHJhZ0VudGVyZWQpPVwib25TZWN0aW9uQmxvY2tEcmFnRW50ZXJlZCgkZXZlbnQpXCI+PC9zZWN0aW9uLWJsb2NrPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { SectionComponent } from './section.component';
|
|
4
|
+
import { SectionBlockModule } from '../section-block/section-block.module';
|
|
5
|
+
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
6
|
+
import { PepButtonModule } from '@pepperi-addons/ngx-lib/button';
|
|
7
|
+
import { PepRemoteLoaderModule } from '@pepperi-addons/ngx-lib/remote-loader';
|
|
8
|
+
import { PepHideInModule } from '../hide-in/hide-in.module';
|
|
9
|
+
import { PepDraggableItemsModule } from '@pepperi-addons/ngx-lib/draggable-items';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
export class SectionModule {
|
|
12
|
+
}
|
|
13
|
+
SectionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
14
|
+
SectionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: SectionModule, declarations: [SectionComponent], imports: [CommonModule,
|
|
15
|
+
DragDropModule,
|
|
16
|
+
PepButtonModule,
|
|
17
|
+
PepRemoteLoaderModule,
|
|
18
|
+
SectionBlockModule,
|
|
19
|
+
PepHideInModule,
|
|
20
|
+
PepDraggableItemsModule], exports: [SectionComponent] });
|
|
21
|
+
SectionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionModule, imports: [CommonModule,
|
|
22
|
+
DragDropModule,
|
|
23
|
+
PepButtonModule,
|
|
24
|
+
PepRemoteLoaderModule,
|
|
25
|
+
SectionBlockModule,
|
|
26
|
+
PepHideInModule,
|
|
27
|
+
PepDraggableItemsModule] });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionModule, decorators: [{
|
|
29
|
+
type: NgModule,
|
|
30
|
+
args: [{
|
|
31
|
+
declarations: [SectionComponent],
|
|
32
|
+
imports: [
|
|
33
|
+
CommonModule,
|
|
34
|
+
DragDropModule,
|
|
35
|
+
PepButtonModule,
|
|
36
|
+
PepRemoteLoaderModule,
|
|
37
|
+
SectionBlockModule,
|
|
38
|
+
PepHideInModule,
|
|
39
|
+
PepDraggableItemsModule,
|
|
40
|
+
// TranslateModule.forChild()
|
|
41
|
+
],
|
|
42
|
+
exports: [SectionComponent]
|
|
43
|
+
}]
|
|
44
|
+
}] });
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9sYXlvdXQtYnVpbGRlci9zZWN0aW9uL3NlY3Rpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQWdCbEYsTUFBTSxPQUFPLGFBQWE7OzBHQUFiLGFBQWE7MkdBQWIsYUFBYSxpQkFiUCxnQkFBZ0IsYUFFM0IsWUFBWTtRQUNaLGNBQWM7UUFDZCxlQUFlO1FBQ2YscUJBQXFCO1FBQ3JCLGtCQUFrQjtRQUNsQixlQUFlO1FBQ2YsdUJBQXVCLGFBR2pCLGdCQUFnQjsyR0FFakIsYUFBYSxZQVhsQixZQUFZO1FBQ1osY0FBYztRQUNkLGVBQWU7UUFDZixxQkFBcUI7UUFDckIsa0JBQWtCO1FBQ2xCLGVBQWU7UUFDZix1QkFBdUI7MkZBS2xCLGFBQWE7a0JBZHpCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQ2hDLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZix1QkFBdUI7d0JBQ3ZCLDZCQUE2QjtxQkFDaEM7b0JBQ0QsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7aUJBQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9zZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWN0aW9uQmxvY2tNb2R1bGUgfSBmcm9tICcuLi9zZWN0aW9uLWJsb2NrL3NlY3Rpb24tYmxvY2subW9kdWxlJztcbmltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBQZXBCdXR0b25Nb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9idXR0b24nO1xuaW1wb3J0IHsgUGVwUmVtb3RlTG9hZGVyTW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvcmVtb3RlLWxvYWRlcic7XG5cbmltcG9ydCB7IFBlcEhpZGVJbk1vZHVsZSB9IGZyb20gJy4uL2hpZGUtaW4vaGlkZS1pbi5tb2R1bGUnO1xuaW1wb3J0IHsgUGVwRHJhZ2dhYmxlSXRlbXNNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9kcmFnZ2FibGUtaXRlbXMnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1NlY3Rpb25Db21wb25lbnRdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBEcmFnRHJvcE1vZHVsZSxcbiAgICAgICAgUGVwQnV0dG9uTW9kdWxlLFxuICAgICAgICBQZXBSZW1vdGVMb2FkZXJNb2R1bGUsXG4gICAgICAgIFNlY3Rpb25CbG9ja01vZHVsZSxcbiAgICAgICAgUGVwSGlkZUluTW9kdWxlLFxuICAgICAgICBQZXBEcmFnZ2FibGVJdGVtc01vZHVsZSxcbiAgICAgICAgLy8gVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKClcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtTZWN0aW9uQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBTZWN0aW9uTW9kdWxlIHsgfVxuIl19
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { BaseDestroyerDirective } from '@pepperi-addons/ngx-lib';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../layout-builder-internal.service";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "@angular/cdk/drag-drop";
|
|
7
|
+
import * as i4 from "@pepperi-addons/ngx-lib/button";
|
|
8
|
+
import * as i5 from "@pepperi-addons/ngx-lib/draggable-items";
|
|
9
|
+
export class SectionBlockComponent extends BaseDestroyerDirective {
|
|
10
|
+
constructor(layoutBuilderService) {
|
|
11
|
+
super();
|
|
12
|
+
this.layoutBuilderService = layoutBuilderService;
|
|
13
|
+
this.sectionKey = '';
|
|
14
|
+
this.sectionHeight = '';
|
|
15
|
+
this.isMainEditorState = false;
|
|
16
|
+
this.editable = false;
|
|
17
|
+
this.active = false;
|
|
18
|
+
this.dragExited = new EventEmitter();
|
|
19
|
+
this.dragEntered = new EventEmitter();
|
|
20
|
+
this.hideForCurrentScreenType = false;
|
|
21
|
+
}
|
|
22
|
+
set blockContainer(value) {
|
|
23
|
+
this._blockContainer = value;
|
|
24
|
+
if (this._blockContainer) {
|
|
25
|
+
this.availableBlock = this.layoutBuilderService.availableBlocksForDragMap?.get(this._blockContainer?.DraggableItemKey);
|
|
26
|
+
}
|
|
27
|
+
this.setIfHideForCurrentScreenType();
|
|
28
|
+
}
|
|
29
|
+
get blockContainer() {
|
|
30
|
+
return this._blockContainer;
|
|
31
|
+
}
|
|
32
|
+
set screenType(value) {
|
|
33
|
+
this._screenType = value;
|
|
34
|
+
this.setIfHideForCurrentScreenType();
|
|
35
|
+
}
|
|
36
|
+
get screenType() {
|
|
37
|
+
return this._screenType;
|
|
38
|
+
}
|
|
39
|
+
setIfHideForCurrentScreenType() {
|
|
40
|
+
this.hideForCurrentScreenType = this.blockContainer ?
|
|
41
|
+
this.layoutBuilderService.getIsHidden(this.blockContainer.Hide, this.screenType) : false;
|
|
42
|
+
}
|
|
43
|
+
ngOnInit() {
|
|
44
|
+
//
|
|
45
|
+
this.layoutBuilderService.availableBlocksForDragMapChange$.pipe(this.getDestroyer()).subscribe((availableBlocksForDragMap) => {
|
|
46
|
+
if (availableBlocksForDragMap && this.blockContainer) {
|
|
47
|
+
this.availableBlock = availableBlocksForDragMap.get(this.blockContainer.DraggableItemKey);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
onEditBlockClick() {
|
|
52
|
+
if (this.blockContainer?.BlockKey) {
|
|
53
|
+
this.layoutBuilderService.navigateToEditor('block', this.blockContainer.BlockKey);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
onRemoveBlockClick() {
|
|
57
|
+
if (this.blockContainer?.BlockKey) {
|
|
58
|
+
this.layoutBuilderService.removeBlockFromSection(this.blockContainer.BlockKey);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
onHideBlockChange(hideIn) {
|
|
62
|
+
if (this.blockContainer?.BlockKey) {
|
|
63
|
+
this.layoutBuilderService.hideBlock(this.sectionKey, this.blockContainer.BlockKey, hideIn);
|
|
64
|
+
this.setIfHideForCurrentScreenType();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// onBlockLoad(event: any) {
|
|
68
|
+
// this.layoutBuilderService.updateBlockLoaded(this.blockContainer.BlockKey);
|
|
69
|
+
// }
|
|
70
|
+
onDragStart(event) {
|
|
71
|
+
this.layoutBuilderService.onBlockDragStart(event);
|
|
72
|
+
}
|
|
73
|
+
onDragEnd(event) {
|
|
74
|
+
this.layoutBuilderService.onBlockDragEnd(event);
|
|
75
|
+
}
|
|
76
|
+
onDragExited(event) {
|
|
77
|
+
this.dragExited.emit(event);
|
|
78
|
+
}
|
|
79
|
+
onDragEntered(event) {
|
|
80
|
+
this.dragEntered.emit(event);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
SectionBlockComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionBlockComponent, deps: [{ token: i1.LayoutBuilderInternalService }], target: i0.ɵɵFactoryTarget.Component });
|
|
84
|
+
SectionBlockComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: SectionBlockComponent, selector: "section-block", inputs: { blockTemplate: "blockTemplate", sectionKey: "sectionKey", sectionHeight: "sectionHeight", isMainEditorState: "isMainEditorState", editable: "editable", active: "active", blockContainer: "blockContainer", screenType: "screenType" }, outputs: { dragExited: "dragExited", dragEntered: "dragEntered" }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"blockContainer?.BlockKey && (editable || !hideForCurrentScreenType)\" \n class=\"section-block-container\"\n [ngClass]=\"{ 'editable-state': editable, 'block-hidden-state': hideForCurrentScreenType, 'active-block': active }\"\n cdkDrag [cdkDragData]=\"blockContainer\" [cdkDragDisabled]=\"!editable || !isMainEditorState\" \n (cdkDragStarted)=\"onDragStart($event)\" (cdkDragEnded)=\"onDragEnd($event)\"\n (cdkDragExited)=\"onDragExited($event)\" (cdkDragEntered)=\"onDragEntered($event)\">\n \n <pep-draggable-item *ngIf=\"editable && isMainEditorState\" cdkDragHandle style=\"cursor: grab;\"\n class=\"block-toolbar\" [title]=\"availableBlock?.title || blockContainer?.BlockKey || ''\" >\n <ng-container pep-actions>\n <pep-button classNames=\"caution\" sizeType=\"xs\" iconName=\"system_bin\" (buttonClick)=\"onRemoveBlockClick();\"></pep-button>\n <!-- <hide-in [hideIn]=\"blockContainer.Hide\" (hideInChange)=\"onHideBlockChange($event)\"></hide-in> -->\n <pep-button sizeType=\"xs\" iconName=\"system_edit\" (buttonClick)=\"onEditBlockClick();\"></pep-button>\n </ng-container>f\n </pep-draggable-item>\n <div class=\"block-template-wrapper\" [ngStyle]=\"{ 'overflow': (sectionHeight === 'unset' ? 'unset' : 'auto') }\">\n <div *ngIf=\"blockTemplate\" class=\"block-template\">\n <ng-container *ngTemplateOutlet=\"blockTemplate; context: { blockKey: blockContainer?.BlockKey, draggableItemKey: blockContainer?.DraggableItemKey }\">\n </ng-container>\n </div>\n <!-- <pep-remote-loader-element *ngIf=\"remoteLoaderOptions\" class=\"remote-loader\"\n [options]=\"remoteLoaderOptions\"\n [props]=\"{ hostObject: hostObject }\"\n [events]=\"{ hostEvents: onBlockHostEventsCallback }\"\n (load)=\"onBlockLoad($event)\">\n </pep-remote-loader-element> -->\n </div>\n</div>\n", styles: [".section-block-container{height:100%;width:100%}.section-block-container.editable-state:not(.active-block) .block-template-wrapper .block-template{pointer-events:none;opacity:.5}.section-block-container.editable-state.cdk-drag-preview .block-template-wrapper,.section-block-container.editable-state.cdk-drag-placeholder .block-toolbar{opacity:0}.section-block-container.editable-state .block-toolbar{position:absolute;top:50%;left:50%;width:95%;max-width:240px;transform:translate(-50%,-50%);z-index:3}.section-block-container.editable-state .block-toolbar:hover{z-index:12!important}.section-block-container .block-template-wrapper{height:100%;position:relative}.section-block-container .block-template-wrapper .block-template{display:block;height:100%;width:100%}\n", ".section-block-container.editable-state.block-hidden-state:not(.active-block){background:repeating-linear-gradient(45deg,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0),hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .8rem),repeating-linear-gradient(-45deg,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0),hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .8rem)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i3.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i4.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i5.DraggableItemComponent, selector: "pep-draggable-item", inputs: ["title", "titlePrefix", "titleClassNames", "data", "disabled", "shadow", "styleType", "toggleContent", "isToggleContentOpen", "actionsMenu", "menuStyleType"], outputs: ["contentToggle", "actionsMenuItemClick"] }] });
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionBlockComponent, decorators: [{
|
|
86
|
+
type: Component,
|
|
87
|
+
args: [{ selector: 'section-block', template: "<div *ngIf=\"blockContainer?.BlockKey && (editable || !hideForCurrentScreenType)\" \n class=\"section-block-container\"\n [ngClass]=\"{ 'editable-state': editable, 'block-hidden-state': hideForCurrentScreenType, 'active-block': active }\"\n cdkDrag [cdkDragData]=\"blockContainer\" [cdkDragDisabled]=\"!editable || !isMainEditorState\" \n (cdkDragStarted)=\"onDragStart($event)\" (cdkDragEnded)=\"onDragEnd($event)\"\n (cdkDragExited)=\"onDragExited($event)\" (cdkDragEntered)=\"onDragEntered($event)\">\n \n <pep-draggable-item *ngIf=\"editable && isMainEditorState\" cdkDragHandle style=\"cursor: grab;\"\n class=\"block-toolbar\" [title]=\"availableBlock?.title || blockContainer?.BlockKey || ''\" >\n <ng-container pep-actions>\n <pep-button classNames=\"caution\" sizeType=\"xs\" iconName=\"system_bin\" (buttonClick)=\"onRemoveBlockClick();\"></pep-button>\n <!-- <hide-in [hideIn]=\"blockContainer.Hide\" (hideInChange)=\"onHideBlockChange($event)\"></hide-in> -->\n <pep-button sizeType=\"xs\" iconName=\"system_edit\" (buttonClick)=\"onEditBlockClick();\"></pep-button>\n </ng-container>f\n </pep-draggable-item>\n <div class=\"block-template-wrapper\" [ngStyle]=\"{ 'overflow': (sectionHeight === 'unset' ? 'unset' : 'auto') }\">\n <div *ngIf=\"blockTemplate\" class=\"block-template\">\n <ng-container *ngTemplateOutlet=\"blockTemplate; context: { blockKey: blockContainer?.BlockKey, draggableItemKey: blockContainer?.DraggableItemKey }\">\n </ng-container>\n </div>\n <!-- <pep-remote-loader-element *ngIf=\"remoteLoaderOptions\" class=\"remote-loader\"\n [options]=\"remoteLoaderOptions\"\n [props]=\"{ hostObject: hostObject }\"\n [events]=\"{ hostEvents: onBlockHostEventsCallback }\"\n (load)=\"onBlockLoad($event)\">\n </pep-remote-loader-element> -->\n </div>\n</div>\n", styles: [".section-block-container{height:100%;width:100%}.section-block-container.editable-state:not(.active-block) .block-template-wrapper .block-template{pointer-events:none;opacity:.5}.section-block-container.editable-state.cdk-drag-preview .block-template-wrapper,.section-block-container.editable-state.cdk-drag-placeholder .block-toolbar{opacity:0}.section-block-container.editable-state .block-toolbar{position:absolute;top:50%;left:50%;width:95%;max-width:240px;transform:translate(-50%,-50%);z-index:3}.section-block-container.editable-state .block-toolbar:hover{z-index:12!important}.section-block-container .block-template-wrapper{height:100%;position:relative}.section-block-container .block-template-wrapper .block-template{display:block;height:100%;width:100%}\n", ".section-block-container.editable-state.block-hidden-state:not(.active-block){background:repeating-linear-gradient(45deg,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0),hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .8rem),repeating-linear-gradient(-45deg,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0),hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .8rem)}\n"] }]
|
|
88
|
+
}], ctorParameters: function () { return [{ type: i1.LayoutBuilderInternalService }]; }, propDecorators: { blockTemplate: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], sectionKey: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], sectionHeight: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}], isMainEditorState: [{
|
|
95
|
+
type: Input
|
|
96
|
+
}], editable: [{
|
|
97
|
+
type: Input
|
|
98
|
+
}], active: [{
|
|
99
|
+
type: Input
|
|
100
|
+
}], blockContainer: [{
|
|
101
|
+
type: Input
|
|
102
|
+
}], screenType: [{
|
|
103
|
+
type: Input
|
|
104
|
+
}], dragExited: [{
|
|
105
|
+
type: Output
|
|
106
|
+
}], dragEntered: [{
|
|
107
|
+
type: Output
|
|
108
|
+
}] } });
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1ibG9jay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9sYXlvdXQtYnVpbGRlci9zZWN0aW9uLWJsb2NrL3NlY3Rpb24tYmxvY2suY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvc2VjdGlvbi1ibG9jay9zZWN0aW9uLWJsb2NrLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBSXZHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7O0FBV2pFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxzQkFBc0I7SUF3QzdELFlBQ1ksb0JBQWtEO1FBRTFELEtBQUssRUFBRSxDQUFDO1FBRkEseUJBQW9CLEdBQXBCLG9CQUFvQixDQUE4QjtRQXRDckQsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUMzQixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBMEJkLGVBQVUsR0FBOEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzRCxnQkFBVyxHQUErQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTdELDZCQUF3QixHQUFHLEtBQUssQ0FBQztJQVEzQyxDQUFDO0lBbENELElBQ0ksY0FBYyxDQUFDLEtBQTJDO1FBQzFELElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLElB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TWhCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFJRixjQUFjO3NCQURqQixLQUFLO2dCQWVGLFVBQVU7c0JBRGIsS0FBSztnQkFTSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZGtEcmFnRW5kLCBDZGtEcmFnRW50ZXIsIENka0RyYWdFeGl0LCBDZGtEcmFnU3RhcnQgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcblxuaW1wb3J0IHsgRGF0YVZpZXdTY3JlZW5TaXplIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL3BhcGktc2RrJztcbmltcG9ydCB7IEJhc2VEZXN0cm95ZXJEaXJlY3RpdmUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5pbXBvcnQgeyBJUGVwRHJhZ2dhYmxlSXRlbSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2RyYWdnYWJsZS1pdGVtcyc7XG5pbXBvcnQgeyBQZXBSZW1vdGVMb2FkZXJPcHRpb25zIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvcmVtb3RlLWxvYWRlcic7XG5pbXBvcnQgeyBMYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlIH0gZnJvbSAnLi4vbGF5b3V0LWJ1aWxkZXItaW50ZXJuYWwuc2VydmljZSc7XG5pbXBvcnQgeyBJUGVwTGF5b3V0QmxvY2tDb250YWluZXIgfSBmcm9tICcuLi9sYXlvdXQtYnVpbGRlci5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2VjdGlvbi1ibG9jaycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlY3Rpb24tYmxvY2suY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlY3Rpb24tYmxvY2suY29tcG9uZW50LnNjc3MnLCAnLi9zZWN0aW9uLWJsb2NrLmNvbXBvbmVudC50aGVtZS5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VjdGlvbkJsb2NrQ29tcG9uZW50IGV4dGVuZHMgQmFzZURlc3Ryb3llckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgXG4gICAgQElucHV0KCkgYmxvY2tUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBzZWN0aW9uS2V5OiBzdHJpbmcgPSAnJztcbiAgICBASW5wdXQoKSBzZWN0aW9uSGVpZ2h0OiBzdHJpbmcgPSAnJztcbiAgICBASW5wdXQoKSBpc01haW5FZGl0b3JTdGF0ZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGVkaXRhYmxlID0gZmFsc2U7XG4gICAgQElucHV0KCkgYWN0aXZlID0gZmFsc2U7XG4gICAgXG4gICAgcHJpdmF0ZSBfYmxvY2tDb250YWluZXI6IElQZXBMYXlvdXRCbG9ja0NvbnRhaW5lciB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKVxuICAgIHNldCBibG9ja0NvbnRhaW5lcih2YWx1ZTogSVBlcExheW91dEJsb2NrQ29udGFpbmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX2Jsb2NrQ29udGFpbmVyID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLl9ibG9ja0NvbnRhaW5lcikge1xuICAgICAgICAgICAgdGhpcy5hdmFpbGFibGVCbG9jayA9IHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UuYXZhaWxhYmxlQmxvY2tzRm9yRHJhZ01hcD8uZ2V0KHRoaXMuX2Jsb2NrQ29udGFpbmVyPy5EcmFnZ2FibGVJdGVtS2V5KTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgdGhpcy5zZXRJZkhpZGVGb3JDdXJyZW50U2NyZWVuVHlwZSgpO1xuICAgIH1cbiAgICBnZXQgYmxvY2tDb250YWluZXIoKTogSVBlcExheW91dEJsb2NrQ29udGFpbmVyIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Jsb2NrQ29udGFpbmVyO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NjcmVlblR5cGUhOiBEYXRhVmlld1NjcmVlblNpemU7XG4gICAgQElucHV0KClcbiAgICBzZXQgc2NyZWVuVHlwZSh2YWx1ZTogRGF0YVZpZXdTY3JlZW5TaXplKSB7XG4gICAgICAgIHRoaXMuX3NjcmVlblR5cGUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRJZkhpZGVGb3JDdXJyZW50U2NyZWVuVHlwZSgpO1xuICAgIH1cbiAgICBnZXQgc2NyZWVuVHlwZSgpOiBEYXRhVmlld1NjcmVlblNpemUge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2NyZWVuVHlwZTtcbiAgICB9XG4gICAgXG4gICAgQE91dHB1dCgpIGRyYWdFeGl0ZWQ6IEV2ZW50RW1pdHRlcjxDZGtEcmFnRXhpdD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGRyYWdFbnRlcmVkOiBFdmVudEVtaXR0ZXI8Q2RrRHJhZ0VudGVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHByb3RlY3RlZCBoaWRlRm9yQ3VycmVudFNjcmVlblR5cGUgPSBmYWxzZTtcbiAgICAvLyBwcm90ZWN0ZWQgcmVtb3RlTG9hZGVyT3B0aW9uczogUGVwUmVtb3RlTG9hZGVyT3B0aW9ucztcbiAgICBwcm90ZWN0ZWQgYXZhaWxhYmxlQmxvY2s6IElQZXBEcmFnZ2FibGVJdGVtIHwgdW5kZWZpbmVkO1xuICAgIFxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGxheW91dEJ1aWxkZXJTZXJ2aWNlOiBMYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbiAgICBcbiAgICBwcml2YXRlIHNldElmSGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhpZGVGb3JDdXJyZW50U2NyZWVuVHlwZSA9IHRoaXMuYmxvY2tDb250YWluZXIgPyBcbiAgICAgICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UuZ2V0SXNIaWRkZW4odGhpcy5ibG9ja0NvbnRhaW5lci5IaWRlLCB0aGlzLnNjcmVlblR5cGUpIDogZmFsc2U7XG4gICAgfVxuICAgIFxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVyU2VydmljZS5hdmFpbGFibGVCbG9ja3NGb3JEcmFnTWFwQ2hhbmdlJC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgoYXZhaWxhYmxlQmxvY2tzRm9yRHJhZ01hcCkgPT4ge1xuICAgICAgICAgICAgaWYgKGF2YWlsYWJsZUJsb2Nrc0ZvckRyYWdNYXAgJiYgdGhpcy5ibG9ja0NvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgIHRoaXMuYXZhaWxhYmxlQmxvY2sgPSAoYXZhaWxhYmxlQmxvY2tzRm9yRHJhZ01hcCBhcyBSZWFkb25seU1hcDxzdHJpbmcsIElQZXBEcmFnZ2FibGVJdGVtPikuZ2V0KHRoaXMuYmxvY2tDb250YWluZXIuRHJhZ2dhYmxlSXRlbUtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uRWRpdEJsb2NrQ2xpY2soKSB7XG4gICAgICAgIGlmICh0aGlzLmJsb2NrQ29udGFpbmVyPy5CbG9ja0tleSkge1xuICAgICAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVyU2VydmljZS5uYXZpZ2F0ZVRvRWRpdG9yKCdibG9jaycsIHRoaXMuYmxvY2tDb250YWluZXIuQmxvY2tLZXkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25SZW1vdmVCbG9ja0NsaWNrKCkge1xuICAgICAgICBpZiAodGhpcy5ibG9ja0NvbnRhaW5lcj8uQmxvY2tLZXkpIHtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UucmVtb3ZlQmxvY2tGcm9tU2VjdGlvbih0aGlzLmJsb2NrQ29udGFpbmVyLkJsb2NrS2V5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSGlkZUJsb2NrQ2hhbmdlKGhpZGVJbjogRGF0YVZpZXdTY3JlZW5TaXplW10pIHtcbiAgICAgICAgaWYgKHRoaXMuYmxvY2tDb250YWluZXI/LkJsb2NrS2V5KSB7XG4gICAgICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLmhpZGVCbG9jayh0aGlzLnNlY3Rpb25LZXksIHRoaXMuYmxvY2tDb250YWluZXIuQmxvY2tLZXksIGhpZGVJbik7XG4gICAgICAgICAgICB0aGlzLnNldElmSGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBvbkJsb2NrTG9hZChldmVudDogYW55KSB7XG4gICAgLy8gICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UudXBkYXRlQmxvY2tMb2FkZWQodGhpcy5ibG9ja0NvbnRhaW5lci5CbG9ja0tleSk7XG4gICAgLy8gfVxuXG4gICAgb25EcmFnU3RhcnQoZXZlbnQ6IENka0RyYWdTdGFydCkge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLm9uQmxvY2tEcmFnU3RhcnQoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uRHJhZ0VuZChldmVudDogQ2RrRHJhZ0VuZCkge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLm9uQmxvY2tEcmFnRW5kKGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkRyYWdFeGl0ZWQoZXZlbnQ6IENka0RyYWdFeGl0KSB7XG4gICAgICAgIHRoaXMuZHJhZ0V4aXRlZC5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkRyYWdFbnRlcmVkKGV2ZW50OiBDZGtEcmFnRW50ZXIpIHtcbiAgICAgICAgdGhpcy5kcmFnRW50ZXJlZC5lbWl0KGV2ZW50KTtcbiAgICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiYmxvY2tDb250YWluZXI/LkJsb2NrS2V5ICYmIChlZGl0YWJsZSB8fCAhaGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlKVwiIFxuICAgIGNsYXNzPVwic2VjdGlvbi1ibG9jay1jb250YWluZXJcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ2VkaXRhYmxlLXN0YXRlJzogZWRpdGFibGUsICdibG9jay1oaWRkZW4tc3RhdGUnOiBoaWRlRm9yQ3VycmVudFNjcmVlblR5cGUsICdhY3RpdmUtYmxvY2snOiBhY3RpdmUgfVwiXG4gICAgY2RrRHJhZyBbY2RrRHJhZ0RhdGFdPVwiYmxvY2tDb250YWluZXJcIiBbY2RrRHJhZ0Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCAhaXNNYWluRWRpdG9yU3RhdGVcIiBcbiAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwib25EcmFnU3RhcnQoJGV2ZW50KVwiIChjZGtEcmFnRW5kZWQpPVwib25EcmFnRW5kKCRldmVudClcIlxuICAgIChjZGtEcmFnRXhpdGVkKT1cIm9uRHJhZ0V4aXRlZCgkZXZlbnQpXCIgKGNka0RyYWdFbnRlcmVkKT1cIm9uRHJhZ0VudGVyZWQoJGV2ZW50KVwiPlxuICAgXG4gICAgPHBlcC1kcmFnZ2FibGUtaXRlbSAqbmdJZj1cImVkaXRhYmxlICYmIGlzTWFpbkVkaXRvclN0YXRlXCIgY2RrRHJhZ0hhbmRsZSBzdHlsZT1cImN1cnNvcjogZ3JhYjtcIlxuICAgICAgICBjbGFzcz1cImJsb2NrLXRvb2xiYXJcIiBbdGl0bGVdPVwiYXZhaWxhYmxlQmxvY2s/LnRpdGxlIHx8IGJsb2NrQ29udGFpbmVyPy5CbG9ja0tleSB8fCAnJ1wiID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBwZXAtYWN0aW9ucz5cbiAgICAgICAgICAgIDxwZXAtYnV0dG9uIGNsYXNzTmFtZXM9XCJjYXV0aW9uXCIgc2l6ZVR5cGU9XCJ4c1wiIGljb25OYW1lPVwic3lzdGVtX2JpblwiIChidXR0b25DbGljayk9XCJvblJlbW92ZUJsb2NrQ2xpY2soKTtcIj48L3BlcC1idXR0b24+XG4gICAgICAgICAgICA8IS0tIDxoaWRlLWluIFtoaWRlSW5dPVwiYmxvY2tDb250YWluZXIuSGlkZVwiIChoaWRlSW5DaGFuZ2UpPVwib25IaWRlQmxvY2tDaGFuZ2UoJGV2ZW50KVwiPjwvaGlkZS1pbj4gLS0+XG4gICAgICAgICAgICA8cGVwLWJ1dHRvbiBzaXplVHlwZT1cInhzXCIgaWNvbk5hbWU9XCJzeXN0ZW1fZWRpdFwiIChidXR0b25DbGljayk9XCJvbkVkaXRCbG9ja0NsaWNrKCk7XCI+PC9wZXAtYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5mXG4gICAgPC9wZXAtZHJhZ2dhYmxlLWl0ZW0+XG4gICAgPGRpdiBjbGFzcz1cImJsb2NrLXRlbXBsYXRlLXdyYXBwZXJcIiBbbmdTdHlsZV09XCJ7ICdvdmVyZmxvdyc6IChzZWN0aW9uSGVpZ2h0ID09PSAndW5zZXQnID8gJ3Vuc2V0JyA6ICdhdXRvJykgfVwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiYmxvY2tUZW1wbGF0ZVwiIGNsYXNzPVwiYmxvY2stdGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJibG9ja1RlbXBsYXRlOyBjb250ZXh0OiB7IGJsb2NrS2V5OiBibG9ja0NvbnRhaW5lcj8uQmxvY2tLZXksIGRyYWdnYWJsZUl0ZW1LZXk6IGJsb2NrQ29udGFpbmVyPy5EcmFnZ2FibGVJdGVtS2V5IH1cIj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSA8cGVwLXJlbW90ZS1sb2FkZXItZWxlbWVudCAqbmdJZj1cInJlbW90ZUxvYWRlck9wdGlvbnNcIiBjbGFzcz1cInJlbW90ZS1sb2FkZXJcIlxuICAgICAgICAgICAgW29wdGlvbnNdPVwicmVtb3RlTG9hZGVyT3B0aW9uc1wiXG4gICAgICAgICAgICBbcHJvcHNdPVwieyBob3N0T2JqZWN0OiBob3N0T2JqZWN0IH1cIlxuICAgICAgICAgICAgW2V2ZW50c109XCJ7IGhvc3RFdmVudHM6IG9uQmxvY2tIb3N0RXZlbnRzQ2FsbGJhY2sgfVwiXG4gICAgICAgICAgICAobG9hZCk9XCJvbkJsb2NrTG9hZCgkZXZlbnQpXCI+XG4gICAgICAgIDwvcGVwLXJlbW90ZS1sb2FkZXItZWxlbWVudD4gLS0+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|