@alauda-fe/dynamic-plugin-shared 0.0.1-alpha.12 → 0.0.1-alpha.14
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/assets/images/overview-banner.svg +1 -0
- package/components/deleting-tag/component.d.ts +7 -0
- package/components/index.d.ts +6 -1
- package/components/list-display/component.d.ts +15 -0
- package/components/multi-search/action-input/component.d.ts +122 -0
- package/components/multi-search/form/component.d.ts +66 -0
- package/components/multi-search/index.d.ts +4 -0
- package/components/multi-search/multi-search-tags/component.d.ts +27 -0
- package/components/multi-search/types.d.ts +33 -0
- package/components/multi-search/utils.d.ts +24 -0
- package/components/mutable/directive.d.ts +83 -0
- package/components/mutable/element.d.ts +10 -0
- package/components/mutable/index.d.ts +8 -0
- package/components/mutable/mosaic/component.d.ts +32 -0
- package/components/mutable/mosaic/directive.d.ts +9 -0
- package/components/mutable/util.d.ts +18 -0
- package/components/overview-banner/component.d.ts +11 -0
- package/components/table/component.d.ts +88 -0
- package/components/table/constants.d.ts +3 -0
- package/components/table/helper.d.ts +2 -0
- package/components/table/helpers.directive.d.ts +21 -0
- package/components/table/index.d.ts +5 -0
- package/components/table/types.d.ts +71 -0
- package/components/table/util.service.d.ts +13 -0
- package/esm2022/components/deleting-tag/component.mjs +16 -0
- package/esm2022/components/index.mjs +7 -2
- package/esm2022/components/list-display/component.mjs +46 -0
- package/esm2022/components/multi-search/action-input/component.mjs +675 -0
- package/esm2022/components/multi-search/form/component.mjs +322 -0
- package/esm2022/components/multi-search/index.mjs +5 -0
- package/esm2022/components/multi-search/multi-search-tags/component.mjs +67 -0
- package/esm2022/components/multi-search/types.mjs +2 -0
- package/esm2022/components/multi-search/utils.mjs +46 -0
- package/esm2022/components/mutable/directive.mjs +351 -0
- package/esm2022/components/mutable/element.mjs +23 -0
- package/esm2022/components/mutable/index.mjs +15 -0
- package/esm2022/components/mutable/mosaic/component.mjs +76 -0
- package/esm2022/components/mutable/mosaic/directive.mjs +24 -0
- package/esm2022/components/mutable/util.mjs +16 -0
- package/esm2022/components/overview-banner/component.mjs +17 -0
- package/esm2022/components/table/component.mjs +321 -0
- package/esm2022/components/table/constants.mjs +4 -0
- package/esm2022/components/table/helper.mjs +16 -0
- package/esm2022/components/table/helpers.directive.mjs +19 -0
- package/esm2022/components/table/index.mjs +6 -0
- package/esm2022/components/table/types.mjs +2 -0
- package/esm2022/components/table/util.service.mjs +81 -0
- package/esm2022/form/base-form-container.mjs +2 -2
- package/esm2022/k8s-resource-list/footer/component.mjs +3 -3
- package/esm2022/page-deactivate/deactivate.directive.mjs +2 -2
- package/esm2022/page-deactivate/deactivate.guard.mjs +2 -3
- package/esm2022/page-deactivate/deactivate.service.mjs +4 -14
- package/fesm2022/alauda-fe-dynamic-plugin-shared.mjs +2228 -222
- package/fesm2022/alauda-fe-dynamic-plugin-shared.mjs.map +1 -1
- package/package.json +1 -1
- package/page-deactivate/deactivate.guard.d.ts +0 -2
- package/page-deactivate/deactivate.service.d.ts +1 -1
- package/styles/lib.scss +1 -1
- package/components/terminating-tag/component.d.ts +0 -7
- package/esm2022/components/terminating-tag/component.mjs +0 -16
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
import { ContentChildren, Directive, ElementRef, EventEmitter, HostListener, Input, Output, QueryList, } from '@angular/core';
|
|
2
|
+
import { coerceElement, isSelfOrParent } from './element';
|
|
3
|
+
import { isL, isT, toNumber, toPx } from './util';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export const MUTABLE_BASIC_OPTIONS = {
|
|
6
|
+
directions: [true, true, true, true],
|
|
7
|
+
resizeThreshold: 5,
|
|
8
|
+
cursors: {
|
|
9
|
+
move: 'move',
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
export class DragHandleDirective {
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: DragHandleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
14
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: DragHandleDirective, isStandalone: true, selector: "[aclDragHandle]", ngImport: i0 }); }
|
|
15
|
+
}
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: DragHandleDirective, decorators: [{
|
|
17
|
+
type: Directive,
|
|
18
|
+
args: [{
|
|
19
|
+
selector: '[aclDragHandle]',
|
|
20
|
+
standalone: true,
|
|
21
|
+
}]
|
|
22
|
+
}] });
|
|
23
|
+
export class MutableDirective {
|
|
24
|
+
set aclMutableOptions(options) {
|
|
25
|
+
this.computedOptions = {
|
|
26
|
+
...MUTABLE_BASIC_OPTIONS,
|
|
27
|
+
...options,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
onMouseDown(event) {
|
|
31
|
+
if (!isSelfOrParent(event.target, this.element)) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const cursor = this.getMutableCursor(event);
|
|
35
|
+
if (cursor === this.computedOptions.cursors.move) {
|
|
36
|
+
this.setDragging(cursor, event);
|
|
37
|
+
this.aclDragStarted.emit(this.element);
|
|
38
|
+
}
|
|
39
|
+
else if (this.aclResizable && cursor.includes('-resize')) {
|
|
40
|
+
this.setResizing(cursor, event);
|
|
41
|
+
this.aclResizeStarted.emit(this.element);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
onMouseMove(event) {
|
|
45
|
+
this.element.style.cursor = this.getMutableCursor(event);
|
|
46
|
+
if (this.isDragging) {
|
|
47
|
+
this.dragElement(event);
|
|
48
|
+
this.aclOnDrag.emit(this.element);
|
|
49
|
+
}
|
|
50
|
+
if (this.isResizingX || this.isResizingY) {
|
|
51
|
+
this.isResizingX && this.resizeElementX(event);
|
|
52
|
+
this.isResizingY && this.resizeElementY(event);
|
|
53
|
+
this.aclOnResize.emit(this.element);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
onMouseUp() {
|
|
57
|
+
if (this.aclDraggable) {
|
|
58
|
+
this.setDragging(null, null);
|
|
59
|
+
this.aclDragEnded.emit(this.element);
|
|
60
|
+
}
|
|
61
|
+
if (this.aclResizable) {
|
|
62
|
+
this.setResizing(null, null);
|
|
63
|
+
this.aclResizeEnded.emit(this.element);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
constructor(el) {
|
|
67
|
+
this.el = el;
|
|
68
|
+
this.computedOptions = MUTABLE_BASIC_OPTIONS;
|
|
69
|
+
/** Allow for stretch shrink, the default is open */
|
|
70
|
+
this.aclResizable = true;
|
|
71
|
+
/** Allow for drag and drop, the default is open */
|
|
72
|
+
this.aclDraggable = true;
|
|
73
|
+
/** In the process of the resize triggering events */
|
|
74
|
+
this.aclOnResize = new EventEmitter();
|
|
75
|
+
/** Drag in the process of the triggering event */
|
|
76
|
+
this.aclOnDrag = new EventEmitter();
|
|
77
|
+
/** Emits when the user start drag. */
|
|
78
|
+
this.aclDragStarted = new EventEmitter();
|
|
79
|
+
this.aclDragEnded = new EventEmitter();
|
|
80
|
+
/** Emits when the user start resize */
|
|
81
|
+
this.aclResizeStarted = new EventEmitter();
|
|
82
|
+
this.aclResizeEnded = new EventEmitter();
|
|
83
|
+
this.isDragging = false;
|
|
84
|
+
this.isResizingX = false;
|
|
85
|
+
this.isResizingY = false;
|
|
86
|
+
this.mousePoint = { x: 0, y: 0 };
|
|
87
|
+
this.element = null;
|
|
88
|
+
this.resizeInitXRight = 0;
|
|
89
|
+
this.resizeInitYBottom = 0;
|
|
90
|
+
this.element = this.el.nativeElement;
|
|
91
|
+
this._initCursor = this.element.style.cursor;
|
|
92
|
+
}
|
|
93
|
+
/** Gets the boundary element, based on the `boundaryElement` value. */
|
|
94
|
+
getBoundaryElement() {
|
|
95
|
+
const boundary = this.aclDragBoundary;
|
|
96
|
+
if (!boundary) {
|
|
97
|
+
return this.element.parentNode;
|
|
98
|
+
}
|
|
99
|
+
if (typeof boundary === 'string') {
|
|
100
|
+
return this.element.closest(boundary);
|
|
101
|
+
}
|
|
102
|
+
return coerceElement(boundary);
|
|
103
|
+
}
|
|
104
|
+
ensureInParent(point) {
|
|
105
|
+
const parent = this.getBoundaryElement();
|
|
106
|
+
const elementRect = this.element.getBoundingClientRect();
|
|
107
|
+
if (point.x < 0) {
|
|
108
|
+
point.x = 0;
|
|
109
|
+
}
|
|
110
|
+
else if (point.x >= parent.clientWidth - elementRect.width) {
|
|
111
|
+
point.x = parent.clientWidth - elementRect.width;
|
|
112
|
+
}
|
|
113
|
+
if (point.y < 0) {
|
|
114
|
+
point.y = 0;
|
|
115
|
+
}
|
|
116
|
+
else if (point.y >= parent.clientHeight - elementRect.height) {
|
|
117
|
+
point.y = parent.clientHeight - elementRect.height;
|
|
118
|
+
}
|
|
119
|
+
return point;
|
|
120
|
+
}
|
|
121
|
+
dragElement(event) {
|
|
122
|
+
const parentElement = this.getBoundaryElement();
|
|
123
|
+
const parentRect = {
|
|
124
|
+
left: parentElement.getBoundingClientRect().left + parentElement.scrollLeft,
|
|
125
|
+
top: parentElement.getBoundingClientRect().top + parentElement.scrollTop,
|
|
126
|
+
};
|
|
127
|
+
const { x, y } = this.ensureInParent({
|
|
128
|
+
x: event.clientX -
|
|
129
|
+
parentRect.left -
|
|
130
|
+
this.parentBorder.left -
|
|
131
|
+
this.mousePoint.x,
|
|
132
|
+
y: event.clientY -
|
|
133
|
+
parentRect.top -
|
|
134
|
+
this.parentBorder.top -
|
|
135
|
+
this.mousePoint.y,
|
|
136
|
+
});
|
|
137
|
+
if (this.computedOptions.dragRange) {
|
|
138
|
+
const [t, r, b, l] = this.computedOptions.dragRange.map((key, index) => {
|
|
139
|
+
if (typeof key === 'number') {
|
|
140
|
+
return ((key / 100) *
|
|
141
|
+
([1, 3].includes(index)
|
|
142
|
+
? parentElement.clientWidth
|
|
143
|
+
: parentElement.clientHeight));
|
|
144
|
+
}
|
|
145
|
+
if (typeof key === 'string' && key.includes('px')) {
|
|
146
|
+
return toNumber(key);
|
|
147
|
+
}
|
|
148
|
+
console.error('DragRange in mutableOptions is invalid!');
|
|
149
|
+
return 0;
|
|
150
|
+
});
|
|
151
|
+
this.element.style.left = toPx(Math.max(l, Math.min(x, parentElement.clientWidth - r)));
|
|
152
|
+
this.element.style.top = toPx(Math.max(t, Math.min(y, parentElement.clientHeight - b)));
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
this.element.style.left = toPx(x);
|
|
156
|
+
this.element.style.top = toPx(y);
|
|
157
|
+
}
|
|
158
|
+
initDragging(event) {
|
|
159
|
+
const rect = this.element.getBoundingClientRect();
|
|
160
|
+
this.mousePoint.x = event.clientX - rect.left;
|
|
161
|
+
this.mousePoint.y = event.clientY - rect.top;
|
|
162
|
+
const { borderLeft, borderTop } = getComputedStyle(this.getBoundaryElement());
|
|
163
|
+
this.parentBorder = {
|
|
164
|
+
left: toNumber(borderLeft),
|
|
165
|
+
top: toNumber(borderTop),
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
setDragging(cursor, event) {
|
|
169
|
+
this.isDragging = cursor === this.computedOptions.cursors.move;
|
|
170
|
+
if (this.isDragging) {
|
|
171
|
+
this.initDragging(event);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
resizeElementX(event) {
|
|
175
|
+
if (this.isResizeOutOfBoundary(event, 'horizontal')) {
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
const elementRect = this.element.getBoundingClientRect();
|
|
179
|
+
let width;
|
|
180
|
+
const { minWidth, maxWidth, left } = getComputedStyle(this.element);
|
|
181
|
+
const computedMinWidth = Math.max(toNumber(minWidth), this.elementBorder.left + this.elementBorder.right);
|
|
182
|
+
if (isL(this.resizeCursor)) {
|
|
183
|
+
const targetLeft = event.clientX - this.mousePoint.x;
|
|
184
|
+
const computedWidth = this.resizeInitXRight - targetLeft;
|
|
185
|
+
width = Math.max(toNumber(maxWidth)
|
|
186
|
+
? Math.min(computedWidth, toNumber(maxWidth))
|
|
187
|
+
: computedWidth, computedMinWidth);
|
|
188
|
+
this.element.style.left = toPx(toNumber(left) + elementRect.width - width);
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
const targetRight = event.clientX + this.mousePoint.x;
|
|
192
|
+
const computedWidth = targetRight - elementRect.left;
|
|
193
|
+
width = Math.max(toNumber(maxWidth)
|
|
194
|
+
? Math.min(computedWidth, toNumber(maxWidth))
|
|
195
|
+
: computedWidth, computedMinWidth);
|
|
196
|
+
}
|
|
197
|
+
if (width < this.elementBorder.left + this.elementBorder.right) {
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
this.element.style.width = toPx(width);
|
|
201
|
+
}
|
|
202
|
+
resizeElementY(event) {
|
|
203
|
+
if (this.isResizeOutOfBoundary(event, 'vertical')) {
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
const elementRect = this.element.getBoundingClientRect();
|
|
207
|
+
const { minHeight, maxHeight, top } = getComputedStyle(this.element);
|
|
208
|
+
const computedMinHeight = Math.max(toNumber(minHeight), this.elementBorder.top + this.elementBorder.bottom);
|
|
209
|
+
let height;
|
|
210
|
+
if (isT(this.resizeCursor)) {
|
|
211
|
+
const targetTop = event.clientY - this.mousePoint.y;
|
|
212
|
+
const computedHeight = this.resizeInitYBottom - targetTop;
|
|
213
|
+
height = Math.max(toNumber(maxHeight)
|
|
214
|
+
? Math.min(computedHeight, toNumber(maxHeight))
|
|
215
|
+
: computedHeight, computedMinHeight);
|
|
216
|
+
this.element.style.top = toPx(toNumber(top) + elementRect.height - height);
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
const targetBottom = event.clientY + this.mousePoint.y;
|
|
220
|
+
const computedHeight = targetBottom - elementRect.top;
|
|
221
|
+
height = Math.max(toNumber(maxHeight)
|
|
222
|
+
? Math.min(computedHeight, toNumber(maxHeight))
|
|
223
|
+
: computedHeight, computedMinHeight);
|
|
224
|
+
}
|
|
225
|
+
if (height < this.elementBorder.top + this.elementBorder.bottom) {
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
this.element.style.height = toPx(height);
|
|
229
|
+
}
|
|
230
|
+
initResizing(event) {
|
|
231
|
+
const elementRect = this.element.getBoundingClientRect();
|
|
232
|
+
this.resizeInitXRight = elementRect.right;
|
|
233
|
+
this.resizeInitYBottom = elementRect.bottom;
|
|
234
|
+
this.mousePoint.x = isL(this.resizeCursor)
|
|
235
|
+
? event.clientX - elementRect.left
|
|
236
|
+
: elementRect.right - event.clientX;
|
|
237
|
+
this.mousePoint.y = isT(this.resizeCursor)
|
|
238
|
+
? event.clientY - elementRect.top
|
|
239
|
+
: elementRect.bottom - event.clientY;
|
|
240
|
+
const { borderLeft, borderTop, borderBottom, borderRight } = getComputedStyle(this.element);
|
|
241
|
+
this.elementBorder = {
|
|
242
|
+
left: toNumber(borderLeft),
|
|
243
|
+
top: toNumber(borderTop),
|
|
244
|
+
bottom: toNumber(borderBottom),
|
|
245
|
+
right: toNumber(borderRight),
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
setResizing(cursor, event) {
|
|
249
|
+
if (cursor == null || !cursor.includes('-resize')) {
|
|
250
|
+
this.isResizingX = false;
|
|
251
|
+
this.isResizingY = false;
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
cursor = cursor.replace('-resize', '');
|
|
255
|
+
this.isResizingX = cursor.includes('e') || cursor.includes('w');
|
|
256
|
+
this.isResizingY = cursor.includes('s') || cursor.includes('n');
|
|
257
|
+
this.initResizing(event);
|
|
258
|
+
}
|
|
259
|
+
// eslint-disable-next-line sonarjs/cognitive-complexity
|
|
260
|
+
getMutableCursor(event) {
|
|
261
|
+
if (this.isResizingX || this.isResizingY) {
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
const elementRect = this.element.getBoundingClientRect();
|
|
265
|
+
const resizeThreshold = this.computedOptions.resizeThreshold;
|
|
266
|
+
const pt = {
|
|
267
|
+
x: event.clientX,
|
|
268
|
+
y: event.clientY,
|
|
269
|
+
};
|
|
270
|
+
let cursor = '';
|
|
271
|
+
const dragThreshold = this.aclResizable ? resizeThreshold : 0;
|
|
272
|
+
if (this.aclDraggable &&
|
|
273
|
+
pt.x < elementRect.right - dragThreshold &&
|
|
274
|
+
pt.x > elementRect.left + dragThreshold &&
|
|
275
|
+
pt.y < elementRect.bottom - dragThreshold &&
|
|
276
|
+
pt.y > elementRect.top + dragThreshold &&
|
|
277
|
+
(!this.handles?.length ||
|
|
278
|
+
this.handles?.some(h => isSelfOrParent(event.target, h.nativeElement)))) {
|
|
279
|
+
cursor = this.computedOptions.cursors.move;
|
|
280
|
+
}
|
|
281
|
+
if (this.aclResizable && !cursor) {
|
|
282
|
+
if (pt.y >= elementRect.top &&
|
|
283
|
+
pt.y <= elementRect.top + resizeThreshold) {
|
|
284
|
+
cursor += 'n';
|
|
285
|
+
}
|
|
286
|
+
else if (pt.y >= elementRect.bottom - resizeThreshold &&
|
|
287
|
+
pt.y <= elementRect.bottom) {
|
|
288
|
+
cursor += 's';
|
|
289
|
+
}
|
|
290
|
+
if (pt.x >= elementRect.left &&
|
|
291
|
+
pt.x <= elementRect.left + resizeThreshold) {
|
|
292
|
+
cursor += 'w';
|
|
293
|
+
}
|
|
294
|
+
else if (pt.x >= elementRect.right - resizeThreshold &&
|
|
295
|
+
pt.x <= elementRect.right) {
|
|
296
|
+
cursor += 'e';
|
|
297
|
+
}
|
|
298
|
+
cursor = cursor ? cursor + '-resize' : '';
|
|
299
|
+
}
|
|
300
|
+
this.resizeCursor = cursor;
|
|
301
|
+
return cursor || this._initCursor;
|
|
302
|
+
}
|
|
303
|
+
isResizeOutOfBoundary(event, direction) {
|
|
304
|
+
const parentElement = this.getBoundaryElement();
|
|
305
|
+
const eventProp = direction === 'horizontal' ? 'clientX' : 'clientY';
|
|
306
|
+
const parentProp = direction === 'horizontal' ? 'clientWidth' : 'clientHeight';
|
|
307
|
+
return event[eventProp] < 0 || event[eventProp] > parentElement[parentProp];
|
|
308
|
+
}
|
|
309
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: MutableDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
310
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: MutableDirective, isStandalone: true, selector: "[aclMutable]", inputs: { aclResizable: "aclResizable", aclDraggable: "aclDraggable", aclDragBoundary: "aclDragBoundary", aclMutableOptions: "aclMutableOptions" }, outputs: { aclOnResize: "aclOnResize", aclOnDrag: "aclOnDrag", aclDragStarted: "aclDragStarted", aclDragEnded: "aclDragEnded", aclResizeStarted: "aclResizeStarted", aclResizeEnded: "aclResizeEnded" }, host: { listeners: { "document:mousedown": "onMouseDown($event)", "document:mousemove": "onMouseMove($event)", "document:mouseup": "onMouseUp()" } }, queries: [{ propertyName: "handles", predicate: DragHandleDirective, descendants: true, read: ElementRef }], ngImport: i0 }); }
|
|
311
|
+
}
|
|
312
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: MutableDirective, decorators: [{
|
|
313
|
+
type: Directive,
|
|
314
|
+
args: [{
|
|
315
|
+
selector: '[aclMutable]',
|
|
316
|
+
standalone: true,
|
|
317
|
+
}]
|
|
318
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { aclResizable: [{
|
|
319
|
+
type: Input
|
|
320
|
+
}], aclDraggable: [{
|
|
321
|
+
type: Input
|
|
322
|
+
}], aclDragBoundary: [{
|
|
323
|
+
type: Input
|
|
324
|
+
}], aclMutableOptions: [{
|
|
325
|
+
type: Input
|
|
326
|
+
}], aclOnResize: [{
|
|
327
|
+
type: Output
|
|
328
|
+
}], aclOnDrag: [{
|
|
329
|
+
type: Output
|
|
330
|
+
}], aclDragStarted: [{
|
|
331
|
+
type: Output
|
|
332
|
+
}], aclDragEnded: [{
|
|
333
|
+
type: Output
|
|
334
|
+
}], aclResizeStarted: [{
|
|
335
|
+
type: Output
|
|
336
|
+
}], aclResizeEnded: [{
|
|
337
|
+
type: Output
|
|
338
|
+
}], handles: [{
|
|
339
|
+
type: ContentChildren,
|
|
340
|
+
args: [DragHandleDirective, { read: ElementRef, descendants: true }]
|
|
341
|
+
}], onMouseDown: [{
|
|
342
|
+
type: HostListener,
|
|
343
|
+
args: ['document:mousedown', ['$event']]
|
|
344
|
+
}], onMouseMove: [{
|
|
345
|
+
type: HostListener,
|
|
346
|
+
args: ['document:mousemove', ['$event']]
|
|
347
|
+
}], onMouseUp: [{
|
|
348
|
+
type: HostListener,
|
|
349
|
+
args: ['document:mouseup']
|
|
350
|
+
}] } });
|
|
351
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2NvbXBvbmVudHMvbXV0YWJsZS9kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUQsT0FBTyxFQUFnQixHQUFHLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7O0FBWWhFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFtQjtJQUNuRCxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7SUFDcEMsZUFBZSxFQUFFLENBQUM7SUFDbEIsT0FBTyxFQUFFO1FBQ1AsSUFBSSxFQUFFLE1BQU07S0FDYjtDQUNGLENBQUM7QUFXRixNQUFNLE9BQU8sbUJBQW1COzhHQUFuQixtQkFBbUI7a0dBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7O0FBT0QsTUFBTSxPQUFPLGdCQUFnQjtJQVUzQixJQUNJLGlCQUFpQixDQUFDLE9BQXVCO1FBQzNDLElBQUksQ0FBQyxlQUFlLEdBQUc7WUFDckIsR0FBRyxxQkFBcUI7WUFDeEIsR0FBRyxPQUFPO1NBQ1gsQ0FBQztJQUNKLENBQUM7SUF1Q0QsV0FBVyxDQUFDLEtBQWlCO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE1BQXFC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c0JBQXBCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFHRixpQkFBaUI7c0JBRHBCLEtBQUs7Z0JBVUcsV0FBVztzQkFEbkIsTUFBTTtnQkFJWSxTQUFTO3NCQUEzQixNQUFNO2dCQUVZLGNBQWM7c0JBQWhDLE1BQU07Z0JBQ1ksWUFBWTtzQkFBOUIsTUFBTTtnQkFFWSxnQkFBZ0I7c0JBQWxDLE1BQU07Z0JBQ1ksY0FBYztzQkFBaEMsTUFBTTtnQkFHUCxPQUFPO3NCQUROLGVBQWU7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBd0I3RSxXQUFXO3NCQURWLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBaUI5QyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBaUI5QyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29udGVudENoaWxkcmVuLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBjb2VyY2VFbGVtZW50LCBpc1NlbGZPclBhcmVudCB9IGZyb20gJy4vZWxlbWVudCc7XG5pbXBvcnQgeyBSZXNpemVDdXJzb3IsIGlzTCwgaXNULCB0b051bWJlciwgdG9QeCB9IGZyb20gJy4vdXRpbCc7XG5cbmV4cG9ydCB0eXBlIERyYWdSYW5nZSA9IG51bWJlciB8IHN0cmluZztcbmV4cG9ydCBpbnRlcmZhY2UgTXV0YWJsZU9wdGlvbnMge1xuICBkaXJlY3Rpb25zPzogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dOyAvLyB0b3AgcmlnaHQgYm90dG9tIGxlZnQ7XG4gIHJlc2l6ZVRocmVzaG9sZD86IG51bWJlcjtcbiAgY3Vyc29ycz86IHtcbiAgICBtb3ZlOiBzdHJpbmc7XG4gIH07XG4gIGRyYWdSYW5nZT86IFtEcmFnUmFuZ2UsIERyYWdSYW5nZSwgRHJhZ1JhbmdlLCBEcmFnUmFuZ2VdO1xufVxuXG5leHBvcnQgY29uc3QgTVVUQUJMRV9CQVNJQ19PUFRJT05TOiBNdXRhYmxlT3B0aW9ucyA9IHtcbiAgZGlyZWN0aW9uczogW3RydWUsIHRydWUsIHRydWUsIHRydWVdLFxuICByZXNpemVUaHJlc2hvbGQ6IDUsXG4gIGN1cnNvcnM6IHtcbiAgICBtb3ZlOiAnbW92ZScsXG4gIH0sXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFBvaW50IHtcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thY2xEcmFnSGFuZGxlXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIERyYWdIYW5kbGVEaXJlY3RpdmUge31cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FjbE11dGFibGVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTXV0YWJsZURpcmVjdGl2ZSB7XG4gIHByaXZhdGUgY29tcHV0ZWRPcHRpb25zOiBNdXRhYmxlT3B0aW9ucyA9IE1VVEFCTEVfQkFTSUNfT1BUSU9OUztcblxuICAvKiogQWxsb3cgZm9yIHN0cmV0Y2ggc2hyaW5rLCB0aGUgZGVmYXVsdCBpcyBvcGVuICovXG4gIEBJbnB1dCgpIGFjbFJlc2l6YWJsZSA9IHRydWU7XG4gIC8qKiBBbGxvdyBmb3IgZHJhZyBhbmQgZHJvcCwgdGhlIGRlZmF1bHQgaXMgb3BlbiAqL1xuICBASW5wdXQoKSBhY2xEcmFnZ2FibGUgPSB0cnVlO1xuICAvKiogRGVmaW5lIGRyYWcgYm91bmRhcnksIGFzIGJvZHkgKi9cbiAgQElucHV0KCkgYWNsRHJhZ0JvdW5kYXJ5OiBzdHJpbmcgfCBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IEhUTUxFbGVtZW50O1xuXG4gIEBJbnB1dCgpXG4gIHNldCBhY2xNdXRhYmxlT3B0aW9ucyhvcHRpb25zOiBNdXRhYmxlT3B0aW9ucykge1xuICAgIHRoaXMuY29tcHV0ZWRPcHRpb25zID0ge1xuICAgICAgLi4uTVVUQUJMRV9CQVNJQ19PUFRJT05TLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEluIHRoZSBwcm9jZXNzIG9mIHRoZSByZXNpemUgdHJpZ2dlcmluZyBldmVudHMgKi9cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGFjbE9uUmVzaXplID0gbmV3IEV2ZW50RW1pdHRlcjxIVE1MRWxlbWVudD4oKTtcblxuICAvKiogRHJhZyBpbiB0aGUgcHJvY2VzcyBvZiB0aGUgdHJpZ2dlcmluZyBldmVudCAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgYWNsT25EcmFnID0gbmV3IEV2ZW50RW1pdHRlcjxIVE1MRWxlbWVudD4oKTtcbiAgLyoqIEVtaXRzIHdoZW4gdGhlIHVzZXIgc3RhcnQgZHJhZy4gKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGFjbERyYWdTdGFydGVkID0gbmV3IEV2ZW50RW1pdHRlcjxIVE1MRWxlbWVudD4oKTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGFjbERyYWdFbmRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SFRNTEVsZW1lbnQ+KCk7XG4gIC8qKiBFbWl0cyB3aGVuIHRoZSB1c2VyIHN0YXJ0IHJlc2l6ZSAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgYWNsUmVzaXplU3RhcnRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SFRNTEVsZW1lbnQ+KCk7XG4gIEBPdXRwdXQoKSByZWFkb25seSBhY2xSZXNpemVFbmRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SFRNTEVsZW1lbnQ+KCk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihEcmFnSGFuZGxlRGlyZWN0aXZlLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIGhhbmRsZXM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcblxuICBpc0RyYWdnaW5nID0gZmFsc2U7XG5cbiAgaXNSZXNpemluZ1ggPSBmYWxzZTtcblxuICBpc1Jlc2l6aW5nWSA9IGZhbHNlO1xuXG4gIG1vdXNlUG9pbnQgPSB7IHg6IDAsIHk6IDAgfTtcblxuICBwYXJlbnRCb3JkZXI6IHsgbGVmdDogbnVtYmVyOyB0b3A6IG51bWJlciB9O1xuXG4gIGVsZW1lbnRCb3JkZXI6IHsgbGVmdDogbnVtYmVyOyB0b3A6IG51bWJlcjsgcmlnaHQ6IG51bWJlcjsgYm90dG9tOiBudW1iZXIgfTtcblxuICBlbGVtZW50OiBIVE1MRWxlbWVudCA9IG51bGw7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfaW5pdEN1cnNvcjogc3RyaW5nO1xuXG4gIHJlc2l6ZUN1cnNvcjogUmVzaXplQ3Vyc29yO1xuICByZXNpemVJbml0WFJpZ2h0ID0gMDtcbiAgcmVzaXplSW5pdFlCb3R0b20gPSAwO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gIG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKCFpc1NlbGZPclBhcmVudChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQsIHRoaXMuZWxlbWVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY3Vyc29yID0gdGhpcy5nZXRNdXRhYmxlQ3Vyc29yKGV2ZW50KTtcblxuICAgIGlmIChjdXJzb3IgPT09IHRoaXMuY29tcHV0ZWRPcHRpb25zLmN1cnNvcnMubW92ZSkge1xuICAgICAgdGhpcy5zZXREcmFnZ2luZyhjdXJzb3IsIGV2ZW50KTtcbiAgICAgIHRoaXMuYWNsRHJhZ1N0YXJ0ZWQuZW1pdCh0aGlzLmVsZW1lbnQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hY2xSZXNpemFibGUgJiYgY3Vyc29yLmluY2x1ZGVzKCctcmVzaXplJykpIHtcbiAgICAgIHRoaXMuc2V0UmVzaXppbmcoY3Vyc29yLCBldmVudCk7XG4gICAgICB0aGlzLmFjbFJlc2l6ZVN0YXJ0ZWQuZW1pdCh0aGlzLmVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNlbW92ZScsIFsnJGV2ZW50J10pXG4gIG9uTW91c2VNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5lbGVtZW50LnN0eWxlLmN1cnNvciA9IHRoaXMuZ2V0TXV0YWJsZUN1cnNvcihldmVudCk7XG5cbiAgICBpZiAodGhpcy5pc0RyYWdnaW5nKSB7XG4gICAgICB0aGlzLmRyYWdFbGVtZW50KGV2ZW50KTtcbiAgICAgIHRoaXMuYWNsT25EcmFnLmVtaXQodGhpcy5lbGVtZW50KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc1Jlc2l6aW5nWCB8fCB0aGlzLmlzUmVzaXppbmdZKSB7XG4gICAgICB0aGlzLmlzUmVzaXppbmdYICYmIHRoaXMucmVzaXplRWxlbWVudFgoZXZlbnQpO1xuICAgICAgdGhpcy5pc1Jlc2l6aW5nWSAmJiB0aGlzLnJlc2l6ZUVsZW1lbnRZKGV2ZW50KTtcbiAgICAgIHRoaXMuYWNsT25SZXNpemUuZW1pdCh0aGlzLmVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNldXAnKVxuICBvbk1vdXNlVXAoKSB7XG4gICAgaWYgKHRoaXMuYWNsRHJhZ2dhYmxlKSB7XG4gICAgICB0aGlzLnNldERyYWdnaW5nKG51bGwsIG51bGwpO1xuICAgICAgdGhpcy5hY2xEcmFnRW5kZWQuZW1pdCh0aGlzLmVsZW1lbnQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFjbFJlc2l6YWJsZSkge1xuICAgICAgdGhpcy5zZXRSZXNpemluZyhudWxsLCBudWxsKTtcbiAgICAgIHRoaXMuYWNsUmVzaXplRW5kZWQuZW1pdCh0aGlzLmVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7XG4gICAgdGhpcy5lbGVtZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMuX2luaXRDdXJzb3IgPSB0aGlzLmVsZW1lbnQuc3R5bGUuY3Vyc29yO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGJvdW5kYXJ5IGVsZW1lbnQsIGJhc2VkIG9uIHRoZSBgYm91bmRhcnlFbGVtZW50YCB2YWx1ZS4gKi9cbiAgcHJpdmF0ZSBnZXRCb3VuZGFyeUVsZW1lbnQoKSB7XG4gICAgY29uc3QgYm91bmRhcnkgPSB0aGlzLmFjbERyYWdCb3VuZGFyeTtcblxuICAgIGlmICghYm91bmRhcnkpIHtcbiAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQucGFyZW50Tm9kZSBhcyBIVE1MRWxlbWVudDtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGJvdW5kYXJ5ID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5jbG9zZXN0KGJvdW5kYXJ5KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29lcmNlRWxlbWVudChib3VuZGFyeSk7XG4gIH1cblxuICBwcml2YXRlIGVuc3VyZUluUGFyZW50KHBvaW50OiBQb2ludCkge1xuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZ2V0Qm91bmRhcnlFbGVtZW50KCk7XG4gICAgY29uc3QgZWxlbWVudFJlY3QgPSB0aGlzLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgaWYgKHBvaW50LnggPCAwKSB7XG4gICAgICBwb2ludC54ID0gMDtcbiAgICB9IGVsc2UgaWYgKHBvaW50LnggPj0gcGFyZW50LmNsaWVudFdpZHRoIC0gZWxlbWVudFJlY3Qud2lkdGgpIHtcbiAgICAgIHBvaW50LnggPSBwYXJlbnQuY2xpZW50V2lkdGggLSBlbGVtZW50UmVjdC53aWR0aDtcbiAgICB9XG5cbiAgICBpZiAocG9pbnQueSA8IDApIHtcbiAgICAgIHBvaW50LnkgPSAwO1xuICAgIH0gZWxzZSBpZiAocG9pbnQueSA+PSBwYXJlbnQuY2xpZW50SGVpZ2h0IC0gZWxlbWVudFJlY3QuaGVpZ2h0KSB7XG4gICAgICBwb2ludC55ID0gcGFyZW50LmNsaWVudEhlaWdodCAtIGVsZW1lbnRSZWN0LmhlaWdodDtcbiAgICB9XG4gICAgcmV0dXJuIHBvaW50O1xuICB9XG5cbiAgZHJhZ0VsZW1lbnQoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gdGhpcy5nZXRCb3VuZGFyeUVsZW1lbnQoKTtcbiAgICBjb25zdCBwYXJlbnRSZWN0ID0ge1xuICAgICAgbGVmdDpcbiAgICAgICAgcGFyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0ICsgcGFyZW50RWxlbWVudC5zY3JvbGxMZWZ0LFxuICAgICAgdG9wOiBwYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHBhcmVudEVsZW1lbnQuc2Nyb2xsVG9wLFxuICAgIH07XG5cbiAgICBjb25zdCB7IHgsIHkgfSA9IHRoaXMuZW5zdXJlSW5QYXJlbnQoe1xuICAgICAgeDpcbiAgICAgICAgZXZlbnQuY2xpZW50WCAtXG4gICAgICAgIHBhcmVudFJlY3QubGVmdCAtXG4gICAgICAgIHRoaXMucGFyZW50Qm9yZGVyLmxlZnQgLVxuICAgICAgICB0aGlzLm1vdXNlUG9pbnQueCxcbiAgICAgIHk6XG4gICAgICAgIGV2ZW50LmNsaWVudFkgLVxuICAgICAgICBwYXJlbnRSZWN0LnRvcCAtXG4gICAgICAgIHRoaXMucGFyZW50Qm9yZGVyLnRvcCAtXG4gICAgICAgIHRoaXMubW91c2VQb2ludC55LFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuY29tcHV0ZWRPcHRpb25zLmRyYWdSYW5nZSkge1xuICAgICAgY29uc3QgW3QsIHIsIGIsIGxdID0gdGhpcy5jb21wdXRlZE9wdGlvbnMuZHJhZ1JhbmdlLm1hcCgoa2V5LCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGtleSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKGtleSAvIDEwMCkgKlxuICAgICAgICAgICAgKFsxLCAzXS5pbmNsdWRlcyhpbmRleClcbiAgICAgICAgICAgICAgPyBwYXJlbnRFbGVtZW50LmNsaWVudFdpZHRoXG4gICAgICAgICAgICAgIDogcGFyZW50RWxlbWVudC5jbGllbnRIZWlnaHQpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGtleSA9PT0gJ3N0cmluZycgJiYga2V5LmluY2x1ZGVzKCdweCcpKSB7XG4gICAgICAgICAgcmV0dXJuIHRvTnVtYmVyKGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5lcnJvcignRHJhZ1JhbmdlIGluIG11dGFibGVPcHRpb25zIGlzIGludmFsaWQhJyk7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmVsZW1lbnQuc3R5bGUubGVmdCA9IHRvUHgoXG4gICAgICAgIE1hdGgubWF4KGwsIE1hdGgubWluKHgsIHBhcmVudEVsZW1lbnQuY2xpZW50V2lkdGggLSByKSksXG4gICAgICApO1xuICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLnRvcCA9IHRvUHgoXG4gICAgICAgIE1hdGgubWF4KHQsIE1hdGgubWluKHksIHBhcmVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gYikpLFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmVsZW1lbnQuc3R5bGUubGVmdCA9IHRvUHgoeCk7XG4gICAgdGhpcy5lbGVtZW50LnN0eWxlLnRvcCA9IHRvUHgoeSk7XG4gIH1cblxuICBpbml0RHJhZ2dpbmcoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBjb25zdCByZWN0ID0gdGhpcy5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgdGhpcy5tb3VzZVBvaW50LnggPSBldmVudC5jbGllbnRYIC0gcmVjdC5sZWZ0O1xuXG4gICAgdGhpcy5tb3VzZVBvaW50LnkgPSBldmVudC5jbGllbnRZIC0gcmVjdC50b3A7XG5cbiAgICBjb25zdCB7IGJvcmRlckxlZnQsIGJvcmRlclRvcCB9ID0gZ2V0Q29tcHV0ZWRTdHlsZShcbiAgICAgIHRoaXMuZ2V0Qm91bmRhcnlFbGVtZW50KCksXG4gICAgKTtcblxuICAgIHRoaXMucGFyZW50Qm9yZGVyID0ge1xuICAgICAgbGVmdDogdG9OdW1iZXIoYm9yZGVyTGVmdCksXG4gICAgICB0b3A6IHRvTnVtYmVyKGJvcmRlclRvcCksXG4gICAgfTtcbiAgfVxuXG4gIHNldERyYWdnaW5nKGN1cnNvcjogc3RyaW5nLCBldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMuaXNEcmFnZ2luZyA9IGN1cnNvciA9PT0gdGhpcy5jb21wdXRlZE9wdGlvbnMuY3Vyc29ycy5tb3ZlO1xuXG4gICAgaWYgKHRoaXMuaXNEcmFnZ2luZykge1xuICAgICAgdGhpcy5pbml0RHJhZ2dpbmcoZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHJlc2l6ZUVsZW1lbnRYKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuaXNSZXNpemVPdXRPZkJvdW5kYXJ5KGV2ZW50LCAnaG9yaXpvbnRhbCcpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudFJlY3QgPSB0aGlzLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgbGV0IHdpZHRoO1xuICAgIGNvbnN0IHsgbWluV2lkdGgsIG1heFdpZHRoLCBsZWZ0IH0gPSBnZXRDb21wdXRlZFN0eWxlKHRoaXMuZWxlbWVudCk7XG4gICAgY29uc3QgY29tcHV0ZWRNaW5XaWR0aCA9IE1hdGgubWF4KFxuICAgICAgdG9OdW1iZXIobWluV2lkdGgpLFxuICAgICAgdGhpcy5lbGVtZW50Qm9yZGVyLmxlZnQgKyB0aGlzLmVsZW1lbnRCb3JkZXIucmlnaHQsXG4gICAgKTtcblxuICAgIGlmIChpc0wodGhpcy5yZXNpemVDdXJzb3IpKSB7XG4gICAgICBjb25zdCB0YXJnZXRMZWZ0ID0gZXZlbnQuY2xpZW50WCAtIHRoaXMubW91c2VQb2ludC54O1xuICAgICAgY29uc3QgY29tcHV0ZWRXaWR0aCA9IHRoaXMucmVzaXplSW5pdFhSaWdodCAtIHRhcmdldExlZnQ7XG5cbiAgICAgIHdpZHRoID0gTWF0aC5tYXgoXG4gICAgICAgIHRvTnVtYmVyKG1heFdpZHRoKVxuICAgICAgICAgID8gTWF0aC5taW4oY29tcHV0ZWRXaWR0aCwgdG9OdW1iZXIobWF4V2lkdGgpKVxuICAgICAgICAgIDogY29tcHV0ZWRXaWR0aCxcbiAgICAgICAgY29tcHV0ZWRNaW5XaWR0aCxcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5sZWZ0ID0gdG9QeChcbiAgICAgICAgdG9OdW1iZXIobGVmdCkgKyBlbGVtZW50UmVjdC53aWR0aCAtIHdpZHRoLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdGFyZ2V0UmlnaHQgPSBldmVudC5jbGllbnRYICsgdGhpcy5tb3VzZVBvaW50Lng7XG5cbiAgICAgIGNvbnN0IGNvbXB1dGVkV2lkdGggPSB0YXJnZXRSaWdodCAtIGVsZW1lbnRSZWN0LmxlZnQ7XG4gICAgICB3aWR0aCA9IE1hdGgubWF4KFxuICAgICAgICB0b051bWJlcihtYXhXaWR0aClcbiAgICAgICAgICA/IE1hdGgubWluKGNvbXB1dGVkV2lkdGgsIHRvTnVtYmVyKG1heFdpZHRoKSlcbiAgICAgICAgICA6IGNvbXB1dGVkV2lkdGgsXG4gICAgICAgIGNvbXB1dGVkTWluV2lkdGgsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh3aWR0aCA8IHRoaXMuZWxlbWVudEJvcmRlci5sZWZ0ICsgdGhpcy5lbGVtZW50Qm9yZGVyLnJpZ2h0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5lbGVtZW50LnN0eWxlLndpZHRoID0gdG9QeCh3aWR0aCk7XG4gIH1cblxuICByZXNpemVFbGVtZW50WShldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmICh0aGlzLmlzUmVzaXplT3V0T2ZCb3VuZGFyeShldmVudCwgJ3ZlcnRpY2FsJykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50UmVjdCA9IHRoaXMuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB7IG1pbkhlaWdodCwgbWF4SGVpZ2h0LCB0b3AgfSA9IGdldENvbXB1dGVkU3R5bGUodGhpcy5lbGVtZW50KTtcbiAgICBjb25zdCBjb21wdXRlZE1pbkhlaWdodCA9IE1hdGgubWF4KFxuICAgICAgdG9OdW1iZXIobWluSGVpZ2h0KSxcbiAgICAgIHRoaXMuZWxlbWVudEJvcmRlci50b3AgKyB0aGlzLmVsZW1lbnRCb3JkZXIuYm90dG9tLFxuICAgICk7XG5cbiAgICBsZXQgaGVpZ2h0O1xuXG4gICAgaWYgKGlzVCh0aGlzLnJlc2l6ZUN1cnNvcikpIHtcbiAgICAgIGNvbnN0IHRhcmdldFRvcCA9IGV2ZW50LmNsaWVudFkgLSB0aGlzLm1vdXNlUG9pbnQueTtcblxuICAgICAgY29uc3QgY29tcHV0ZWRIZWlnaHQgPSB0aGlzLnJlc2l6ZUluaXRZQm90dG9tIC0gdGFyZ2V0VG9wO1xuXG4gICAgICBoZWlnaHQgPSBNYXRoLm1heChcbiAgICAgICAgdG9OdW1iZXIobWF4SGVpZ2h0KVxuICAgICAgICAgID8gTWF0aC5taW4oY29tcHV0ZWRIZWlnaHQsIHRvTnVtYmVyKG1heEhlaWdodCkpXG4gICAgICAgICAgOiBjb21wdXRlZEhlaWdodCxcbiAgICAgICAgY29tcHV0ZWRNaW5IZWlnaHQsXG4gICAgICApO1xuXG4gICAgICB0aGlzLmVsZW1lbnQuc3R5bGUudG9wID0gdG9QeChcbiAgICAgICAgdG9OdW1iZXIodG9wKSArIGVsZW1lbnRSZWN0LmhlaWdodCAtIGhlaWdodCxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRhcmdldEJvdHRvbSA9IGV2ZW50LmNsaWVudFkgKyB0aGlzLm1vdXNlUG9pbnQueTtcblxuICAgICAgY29uc3QgY29tcHV0ZWRIZWlnaHQgPSB0YXJnZXRCb3R0b20gLSBlbGVtZW50UmVjdC50b3A7XG5cbiAgICAgIGhlaWdodCA9IE1hdGgubWF4KFxuICAgICAgICB0b051bWJlcihtYXhIZWlnaHQpXG4gICAgICAgICAgPyBNYXRoLm1pbihjb21wdXRlZEhlaWdodCwgdG9OdW1iZXIobWF4SGVpZ2h0KSlcbiAgICAgICAgICA6IGNvbXB1dGVkSGVpZ2h0LFxuICAgICAgICBjb21wdXRlZE1pbkhlaWdodCxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChoZWlnaHQgPCB0aGlzLmVsZW1lbnRCb3JkZXIudG9wICsgdGhpcy5lbGVtZW50Qm9yZGVyLmJvdHRvbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gdG9QeChoZWlnaHQpO1xuICB9XG5cbiAgaW5pdFJlc2l6aW5nKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgY29uc3QgZWxlbWVudFJlY3QgPSB0aGlzLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICB0aGlzLnJlc2l6ZUluaXRYUmlnaHQgPSBlbGVtZW50UmVjdC5yaWdodDtcbiAgICB0aGlzLnJlc2l6ZUluaXRZQm90dG9tID0gZWxlbWVudFJlY3QuYm90dG9tO1xuXG4gICAgdGhpcy5tb3VzZVBvaW50LnggPSBpc0wodGhpcy5yZXNpemVDdXJzb3IpXG4gICAgICA/IGV2ZW50LmNsaWVudFggLSBlbGVtZW50UmVjdC5sZWZ0XG4gICAgICA6IGVsZW1lbnRSZWN0LnJpZ2h0IC0gZXZlbnQuY2xpZW50WDtcblxuICAgIHRoaXMubW91c2VQb2ludC55ID0gaXNUKHRoaXMucmVzaXplQ3Vyc29yKVxuICAgICAgPyBldmVudC5jbGllbnRZIC0gZWxlbWVudFJlY3QudG9wXG4gICAgICA6IGVsZW1lbnRSZWN0LmJvdHRvbSAtIGV2ZW50LmNsaWVudFk7XG5cbiAgICBjb25zdCB7IGJvcmRlckxlZnQsIGJvcmRlclRvcCwgYm9yZGVyQm90dG9tLCBib3JkZXJSaWdodCB9ID1cbiAgICAgIGdldENvbXB1dGVkU3R5bGUodGhpcy5lbGVtZW50KTtcbiAgICB0aGlzLmVsZW1lbnRCb3JkZXIgPSB7XG4gICAgICBsZWZ0OiB0b051bWJlcihib3JkZXJMZWZ0KSxcbiAgICAgIHRvcDogdG9OdW1iZXIoYm9yZGVyVG9wKSxcbiAgICAgIGJvdHRvbTogdG9OdW1iZXIoYm9yZGVyQm90dG9tKSxcbiAgICAgIHJpZ2h0OiB0b051bWJlcihib3JkZXJSaWdodCksXG4gICAgfTtcbiAgfVxuXG4gIHNldFJlc2l6aW5nKGN1cnNvcjogc3RyaW5nLCBldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmIChjdXJzb3IgPT0gbnVsbCB8fCAhY3Vyc29yLmluY2x1ZGVzKCctcmVzaXplJykpIHtcbiAgICAgIHRoaXMuaXNSZXNpemluZ1ggPSBmYWxzZTtcblxuICAgICAgdGhpcy5pc1Jlc2l6aW5nWSA9IGZhbHNlO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY3Vyc29yID0gY3Vyc29yLnJlcGxhY2UoJy1yZXNpemUnLCAnJyk7XG5cbiAgICB0aGlzLmlzUmVzaXppbmdYID0gY3Vyc29yLmluY2x1ZGVzKCdlJykgfHwgY3Vyc29yLmluY2x1ZGVzKCd3Jyk7XG5cbiAgICB0aGlzLmlzUmVzaXppbmdZID0gY3Vyc29yLmluY2x1ZGVzKCdzJykgfHwgY3Vyc29yLmluY2x1ZGVzKCduJyk7XG5cbiAgICB0aGlzLmluaXRSZXNpemluZyhldmVudCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXJqcy9jb2duaXRpdmUtY29tcGxleGl0eVxuICBnZXRNdXRhYmxlQ3Vyc29yKGV2ZW50OiBNb3VzZUV2ZW50KTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5pc1Jlc2l6aW5nWCB8fCB0aGlzLmlzUmVzaXppbmdZKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGVsZW1lbnRSZWN0ID0gdGhpcy5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgY29uc3QgcmVzaXplVGhyZXNob2xkID0gdGhpcy5jb21wdXRlZE9wdGlvbnMucmVzaXplVGhyZXNob2xkO1xuXG4gICAgY29uc3QgcHQgPSB7XG4gICAgICB4OiBldmVudC5jbGllbnRYLFxuICAgICAgeTogZXZlbnQuY2xpZW50WSxcbiAgICB9O1xuXG4gICAgbGV0IGN1cnNvciA9ICcnO1xuICAgIGNvbnN0IGRyYWdUaHJlc2hvbGQgPSB0aGlzLmFjbFJlc2l6YWJsZSA/IHJlc2l6ZVRocmVzaG9sZCA6IDA7XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLmFjbERyYWdnYWJsZSAmJlxuICAgICAgcHQueCA8IGVsZW1lbnRSZWN0LnJpZ2h0IC0gZHJhZ1RocmVzaG9sZCAmJlxuICAgICAgcHQueCA+IGVsZW1lbnRSZWN0LmxlZnQgKyBkcmFnVGhyZXNob2xkICYmXG4gICAgICBwdC55IDwgZWxlbWVudFJlY3QuYm90dG9tIC0gZHJhZ1RocmVzaG9sZCAmJlxuICAgICAgcHQueSA+IGVsZW1lbnRSZWN0LnRvcCArIGRyYWdUaHJlc2hvbGQgJiZcbiAgICAgICghdGhpcy5oYW5kbGVzPy5sZW5ndGggfHxcbiAgICAgICAgdGhpcy5oYW5kbGVzPy5zb21lKGggPT5cbiAgICAgICAgICBpc1NlbGZPclBhcmVudChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQsIGgubmF0aXZlRWxlbWVudCksXG4gICAgICAgICkpXG4gICAgKSB7XG4gICAgICBjdXJzb3IgPSB0aGlzLmNvbXB1dGVkT3B0aW9ucy5jdXJzb3JzLm1vdmU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYWNsUmVzaXphYmxlICYmICFjdXJzb3IpIHtcbiAgICAgIGlmIChcbiAgICAgICAgcHQueSA+PSBlbGVtZW50UmVjdC50b3AgJiZcbiAgICAgICAgcHQueSA8PSBlbGVtZW50UmVjdC50b3AgKyByZXNpemVUaHJlc2hvbGRcbiAgICAgICkge1xuICAgICAgICBjdXJzb3IgKz0gJ24nO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgcHQueSA+PSBlbGVtZW50UmVjdC5ib3R0b20gLSByZXNpemVUaHJlc2hvbGQgJiZcbiAgICAgICAgcHQueSA8PSBlbGVtZW50UmVjdC5ib3R0b21cbiAgICAgICkge1xuICAgICAgICBjdXJzb3IgKz0gJ3MnO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIHB0LnggPj0gZWxlbWVudFJlY3QubGVmdCAmJlxuICAgICAgICBwdC54IDw9IGVsZW1lbnRSZWN0LmxlZnQgKyByZXNpemVUaHJlc2hvbGRcbiAgICAgICkge1xuICAgICAgICBjdXJzb3IgKz0gJ3cnO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgcHQueCA+PSBlbGVtZW50UmVjdC5yaWdodCAtIHJlc2l6ZVRocmVzaG9sZCAmJlxuICAgICAgICBwdC54IDw9IGVsZW1lbnRSZWN0LnJpZ2h0XG4gICAgICApIHtcbiAgICAgICAgY3Vyc29yICs9ICdlJztcbiAgICAgIH1cblxuICAgICAgY3Vyc29yID0gY3Vyc29yID8gY3Vyc29yICsgJy1yZXNpemUnIDogJyc7XG4gICAgfVxuXG4gICAgdGhpcy5yZXNpemVDdXJzb3IgPSBjdXJzb3IgYXMgUmVzaXplQ3Vyc29yO1xuXG4gICAgcmV0dXJuIGN1cnNvciB8fCB0aGlzLl9pbml0Q3Vyc29yO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1Jlc2l6ZU91dE9mQm91bmRhcnkoXG4gICAgZXZlbnQ6IE1vdXNlRXZlbnQsXG4gICAgZGlyZWN0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnLFxuICApIHtcbiAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gdGhpcy5nZXRCb3VuZGFyeUVsZW1lbnQoKTtcblxuICAgIGNvbnN0IGV2ZW50UHJvcCA9IGRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnID8gJ2NsaWVudFgnIDogJ2NsaWVudFknO1xuICAgIGNvbnN0IHBhcmVudFByb3AgPVxuICAgICAgZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCcgPyAnY2xpZW50V2lkdGgnIDogJ2NsaWVudEhlaWdodCc7XG5cbiAgICByZXR1cm4gZXZlbnRbZXZlbnRQcm9wXSA8IDAgfHwgZXZlbnRbZXZlbnRQcm9wXSA+IHBhcmVudEVsZW1lbnRbcGFyZW50UHJvcF07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ElementRef } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* To judge whether the parent element
|
|
4
|
+
*/
|
|
5
|
+
export const isSelfOrParent = (element, target) => {
|
|
6
|
+
while (element) {
|
|
7
|
+
if (element === target) {
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
element = element.parentNode;
|
|
11
|
+
}
|
|
12
|
+
return false;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Coerces an ElementRef or an Element into an element.
|
|
16
|
+
* Useful for APIs that can accept either a ref or the native element itself.
|
|
17
|
+
*/
|
|
18
|
+
export function coerceElement(elementOrRef) {
|
|
19
|
+
return elementOrRef instanceof ElementRef
|
|
20
|
+
? elementOrRef.nativeElement
|
|
21
|
+
: elementOrRef;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZHluYW1pYy1wbHVnaW4tc2hhcmVkL3NyYy9jb21wb25lbnRzL211dGFibGUvZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsT0FBb0IsRUFBRSxNQUFtQixFQUFFLEVBQUU7SUFDMUUsT0FBTyxPQUFPLEVBQUUsQ0FBQztRQUNmLElBQUksT0FBTyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE9BQU8sR0FBRyxPQUFPLENBQUMsVUFBeUIsQ0FBQztJQUM5QyxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFJLFlBQStCO0lBQzlELE9BQU8sWUFBWSxZQUFZLFVBQVU7UUFDdkMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxhQUFhO1FBQzVCLENBQUMsQ0FBQyxZQUFZLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBUbyBqdWRnZSB3aGV0aGVyIHRoZSBwYXJlbnQgZWxlbWVudFxuICovXG5leHBvcnQgY29uc3QgaXNTZWxmT3JQYXJlbnQgPSAoZWxlbWVudDogSFRNTEVsZW1lbnQsIHRhcmdldDogSFRNTEVsZW1lbnQpID0+IHtcbiAgd2hpbGUgKGVsZW1lbnQpIHtcbiAgICBpZiAoZWxlbWVudCA9PT0gdGFyZ2V0KSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBlbGVtZW50ID0gZWxlbWVudC5wYXJlbnROb2RlIGFzIEhUTUxFbGVtZW50O1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufTtcblxuLyoqXG4gKiBDb2VyY2VzIGFuIEVsZW1lbnRSZWYgb3IgYW4gRWxlbWVudCBpbnRvIGFuIGVsZW1lbnQuXG4gKiBVc2VmdWwgZm9yIEFQSXMgdGhhdCBjYW4gYWNjZXB0IGVpdGhlciBhIHJlZiBvciB0aGUgbmF0aXZlIGVsZW1lbnQgaXRzZWxmLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29lcmNlRWxlbWVudDxUPihlbGVtZW50T3JSZWY6IEVsZW1lbnRSZWY8VD4gfCBUKTogVCB7XG4gIHJldHVybiBlbGVtZW50T3JSZWYgaW5zdGFuY2VvZiBFbGVtZW50UmVmXG4gICAgPyBlbGVtZW50T3JSZWYubmF0aXZlRWxlbWVudFxuICAgIDogZWxlbWVudE9yUmVmO1xufVxuIl19
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { MosaicComponent } from './mosaic/component';
|
|
2
|
+
import { MosaicLeftDirective, MosaicRightDirective } from './mosaic/directive';
|
|
3
|
+
import { DragHandleDirective, MutableDirective } from './directive';
|
|
4
|
+
export * from './mosaic/component';
|
|
5
|
+
export * from './mosaic/directive';
|
|
6
|
+
export * from './directive';
|
|
7
|
+
export * from './util';
|
|
8
|
+
export const MUTABLE_MODULE = [
|
|
9
|
+
MutableDirective,
|
|
10
|
+
MosaicRightDirective,
|
|
11
|
+
MosaicLeftDirective,
|
|
12
|
+
MosaicComponent,
|
|
13
|
+
DragHandleDirective,
|
|
14
|
+
];
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2R5bmFtaWMtcGx1Z2luLXNoYXJlZC9zcmMvY29tcG9uZW50cy9tdXRhYmxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFcEUsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixnQkFBZ0I7SUFDaEIsb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQixlQUFlO0lBQ2YsbUJBQW1CO0NBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vc2FpY0NvbXBvbmVudCB9IGZyb20gJy4vbW9zYWljL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBNb3NhaWNMZWZ0RGlyZWN0aXZlLCBNb3NhaWNSaWdodERpcmVjdGl2ZSB9IGZyb20gJy4vbW9zYWljL2RpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEcmFnSGFuZGxlRGlyZWN0aXZlLCBNdXRhYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL21vc2FpYy9jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9tb3NhaWMvZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbCc7XG5leHBvcnQgY29uc3QgTVVUQUJMRV9NT0RVTEUgPSBbXG4gIE11dGFibGVEaXJlY3RpdmUsXG4gIE1vc2FpY1JpZ2h0RGlyZWN0aXZlLFxuICBNb3NhaWNMZWZ0RGlyZWN0aXZlLFxuICBNb3NhaWNDb21wb25lbnQsXG4gIERyYWdIYW5kbGVEaXJlY3RpdmUsXG5dIGFzIGNvbnN0O1xuIl19
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
3
|
+
import { MonacoEditorConfig } from 'ng-monaco-editor';
|
|
4
|
+
import { Observable, combineLatest, map } from 'rxjs';
|
|
5
|
+
import { toNumber, toPercent } from '../util';
|
|
6
|
+
import { ObservableInput, publishRef } from '../../../utils';
|
|
7
|
+
import { MutableDirective } from '../directive';
|
|
8
|
+
import { AsyncPipe, NgStyle } from '@angular/common';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export class MosaicComponent {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.left = 0;
|
|
13
|
+
this.right = 0;
|
|
14
|
+
this.splitLocation = 50;
|
|
15
|
+
this.mutableOptions$ = combineLatest([this.left$, this.right$]).pipe(map(([left, right]) => ({
|
|
16
|
+
dragRange: [0, right, 100, left],
|
|
17
|
+
cursors: {
|
|
18
|
+
move: 'col-resize',
|
|
19
|
+
},
|
|
20
|
+
})), publishRef());
|
|
21
|
+
this.leftInset = {
|
|
22
|
+
top: '0',
|
|
23
|
+
right: toPercent(this.splitLocation),
|
|
24
|
+
bottom: '0',
|
|
25
|
+
left: '0',
|
|
26
|
+
};
|
|
27
|
+
this.rightInset = {
|
|
28
|
+
top: '0',
|
|
29
|
+
right: '0',
|
|
30
|
+
bottom: '0',
|
|
31
|
+
left: toPercent(100 - this.splitLocation),
|
|
32
|
+
};
|
|
33
|
+
this.splitInset = this.rightInset;
|
|
34
|
+
}
|
|
35
|
+
drag(element, root) {
|
|
36
|
+
requestAnimationFrame(() => {
|
|
37
|
+
this.leftInset = {
|
|
38
|
+
top: '0',
|
|
39
|
+
right: toPercent(1 - toNumber(element.style.left) / root.clientWidth, 100),
|
|
40
|
+
bottom: '0',
|
|
41
|
+
left: '0',
|
|
42
|
+
};
|
|
43
|
+
this.rightInset = {
|
|
44
|
+
top: '0',
|
|
45
|
+
right: '0',
|
|
46
|
+
bottom: '0',
|
|
47
|
+
left: toPercent(toNumber(element.style.left) / root.clientWidth, 100),
|
|
48
|
+
};
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: MosaicComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
52
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: MosaicComponent, isStandalone: true, selector: "acl-mosaic", inputs: { left: "left", right: "right", splitLocation: "splitLocation" }, providers: [
|
|
53
|
+
{ provide: MonacoEditorConfig, useValue: { autoLayoutInterval: 1 } },
|
|
54
|
+
], ngImport: i0, template: "<div\n class=\"mosaic-root\"\n #root\n>\n <div\n class=\"mosaic-left\"\n [ngStyle]=\"leftInset\"\n >\n <ng-content select=\"[aclMosaicLeft]\"></ng-content>\n </div>\n <div\n class=\"mosaic-split\"\n [ngStyle]=\"splitInset\"\n aclMutable\n (aclOnDrag)=\"drag($event, root)\"\n [aclMutableOptions]=\"mutableOptions$ | async\"\n [aclResizable]=\"false\"\n ></div>\n <div\n class=\"mosaic-right\"\n [ngStyle]=\"rightInset\"\n >\n <ng-content select=\"[aclMosaicRight]\"></ng-content>\n </div>\n</div>\n", styles: [".mosaic-root{position:relative;width:100%;min-height:400px;overflow:hidden}.mosaic-split{position:absolute;margin-left:-1px;width:2px;z-index:1;background-color:rgb(var(--aui-color-n-10))}.mosaic-split:hover{width:4px;margin-left:-2px}.mosaic-left,.mosaic-right{height:100%;position:absolute}.mutable-box{width:50px;height:50px;position:absolute;background-color:#444}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: MutableDirective, selector: "[aclMutable]", inputs: ["aclResizable", "aclDraggable", "aclDragBoundary", "aclMutableOptions"], outputs: ["aclOnResize", "aclOnDrag", "aclDragStarted", "aclDragEnded", "aclResizeStarted", "aclResizeEnded"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
55
|
+
}
|
|
56
|
+
__decorate([
|
|
57
|
+
ObservableInput(),
|
|
58
|
+
__metadata("design:type", Observable)
|
|
59
|
+
], MosaicComponent.prototype, "left$", void 0);
|
|
60
|
+
__decorate([
|
|
61
|
+
ObservableInput(),
|
|
62
|
+
__metadata("design:type", Observable)
|
|
63
|
+
], MosaicComponent.prototype, "right$", void 0);
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: MosaicComponent, decorators: [{
|
|
65
|
+
type: Component,
|
|
66
|
+
args: [{ selector: 'acl-mosaic', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgStyle, AsyncPipe, MutableDirective], providers: [
|
|
67
|
+
{ provide: MonacoEditorConfig, useValue: { autoLayoutInterval: 1 } },
|
|
68
|
+
], template: "<div\n class=\"mosaic-root\"\n #root\n>\n <div\n class=\"mosaic-left\"\n [ngStyle]=\"leftInset\"\n >\n <ng-content select=\"[aclMosaicLeft]\"></ng-content>\n </div>\n <div\n class=\"mosaic-split\"\n [ngStyle]=\"splitInset\"\n aclMutable\n (aclOnDrag)=\"drag($event, root)\"\n [aclMutableOptions]=\"mutableOptions$ | async\"\n [aclResizable]=\"false\"\n ></div>\n <div\n class=\"mosaic-right\"\n [ngStyle]=\"rightInset\"\n >\n <ng-content select=\"[aclMosaicRight]\"></ng-content>\n </div>\n</div>\n", styles: [".mosaic-root{position:relative;width:100%;min-height:400px;overflow:hidden}.mosaic-split{position:absolute;margin-left:-1px;width:2px;z-index:1;background-color:rgb(var(--aui-color-n-10))}.mosaic-split:hover{width:4px;margin-left:-2px}.mosaic-left,.mosaic-right{height:100%;position:absolute}.mutable-box{width:50px;height:50px;position:absolute;background-color:#444}\n"] }]
|
|
69
|
+
}], propDecorators: { left: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], left$: [], right: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], right$: [], splitLocation: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}] } });
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2NvbXBvbmVudHMvbXV0YWJsZS9tb3NhaWMvY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2NvbXBvbmVudHMvbXV0YWJsZS9tb3NhaWMvdGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRELE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0QsT0FBTyxFQUFhLGdCQUFnQixFQUFrQixNQUFNLGNBQWMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQWFyRCxNQUFNLE9BQU8sZUFBZTtJQVg1QjtRQVlXLFNBQUksR0FBYyxDQUFDLENBQUM7UUFJcEIsVUFBSyxHQUFjLENBQUMsQ0FBQztRQUs5QixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUVuQixvQkFBZSxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM3RCxHQUFHLENBQ0QsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQ2hCLENBQUM7WUFDQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUM7WUFDaEMsT0FBTyxFQUFFO2dCQUNQLElBQUksRUFBRSxZQUFZO2FBQ25CO1NBQ0YsQ0FBbUIsQ0FDdkIsRUFDRCxVQUFVLEVBQUUsQ0FDYixDQUFDO1FBRUYsY0FBUyxHQUFHO1lBQ1YsR0FBRyxFQUFFLEdBQUc7WUFDUixLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDcEMsTUFBTSxFQUFFLEdBQUc7WUFDWCxJQUFJLEVBQUUsR0FBRztTQUNWLENBQUM7UUFFRixlQUFVLEdBQUc7WUFDWCxHQUFHLEVBQUUsR0FBRztZQUNSLEtBQUssRUFBRSxHQUFHO1lBQ1YsTUFBTSxFQUFFLEdBQUc7WUFDWCxJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1NBQzFDLENBQUM7UUFFRixlQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztLQXFCOUI7SUFuQkMsSUFBSSxDQUFDLE9BQW9CLEVBQUUsSUFBb0I7UUFDN0MscUJBQXFCLENBQUMsR0FBRyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUc7Z0JBQ2YsR0FBRyxFQUFFLEdBQUc7Z0JBQ1IsS0FBSyxFQUFFLFNBQVMsQ0FDZCxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFDbkQsR0FBRyxDQUNKO2dCQUNELE1BQU0sRUFBRSxHQUFHO2dCQUNYLElBQUksRUFBRSxHQUFHO2FBQ1YsQ0FBQztZQUNGLElBQUksQ0FBQyxVQUFVLEdBQUc7Z0JBQ2hCLEdBQUcsRUFBRSxHQUFHO2dCQUNSLEtBQUssRUFBRSxHQUFHO2dCQUNWLE1BQU0sRUFBRSxHQUFHO2dCQUNYLElBQUksRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUM7YUFDdEUsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0EzRFUsZUFBZTtrR0FBZixlQUFlLG1JQUpmO1lBQ1QsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxFQUFFLEVBQUU7U0FDckUsMEJDbEJILGtpQkF5QkEsNGFEVlksT0FBTyxzRUFBRSxTQUFTLDhDQUFFLGdCQUFnQjs7QUFROUM7SUFEQyxlQUFlLEVBQUU7OEJBQ1YsVUFBVTs4Q0FBWTtBQUk5QjtJQURDLGVBQWUsRUFBRTs4QkFDVCxVQUFVOytDQUFZOzJGQVBwQixlQUFlO2tCQVgzQixTQUFTOytCQUNFLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixDQUFDLGFBQ3BDO3dCQUNULEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxFQUFFLGtCQUFrQixFQUFFLENBQUMsRUFBRSxFQUFFO3FCQUNyRTs4QkFHUSxJQUFJO3NCQUFaLEtBQUs7Z0JBRU4sS0FBSyxNQUVJLEtBQUs7c0JBQWIsS0FBSztnQkFFTixNQUFNLE1BR04sYUFBYTtzQkFEWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vbmFjb0VkaXRvckNvbmZpZyB9IGZyb20gJ25nLW1vbmFjby1lZGl0b3InO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgbWFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IHRvTnVtYmVyLCB0b1BlcmNlbnQgfSBmcm9tICcuLi91dGlsJztcbmltcG9ydCB7IE9ic2VydmFibGVJbnB1dCwgcHVibGlzaFJlZiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IERyYWdSYW5nZSwgTXV0YWJsZURpcmVjdGl2ZSwgTXV0YWJsZU9wdGlvbnMgfSBmcm9tICcuLi9kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLW1vc2FpYycsXG4gIHRlbXBsYXRlVXJsOiAndGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWydzdHlsZXMuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nU3R5bGUsIEFzeW5jUGlwZSwgTXV0YWJsZURpcmVjdGl2ZV0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogTW9uYWNvRWRpdG9yQ29uZmlnLCB1c2VWYWx1ZTogeyBhdXRvTGF5b3V0SW50ZXJ2YWw6IDEgfSB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBNb3NhaWNDb21wb25lbnQge1xuICBASW5wdXQoKSBsZWZ0OiBEcmFnUmFuZ2UgPSAwO1xuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgbGVmdCQhOiBPYnNlcnZhYmxlPERyYWdSYW5nZT47XG5cbiAgQElucHV0KCkgcmlnaHQ6IERyYWdSYW5nZSA9IDA7XG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICByaWdodCQhOiBPYnNlcnZhYmxlPERyYWdSYW5nZT47XG5cbiAgQElucHV0KClcbiAgc3BsaXRMb2NhdGlvbiA9IDUwO1xuXG4gIG11dGFibGVPcHRpb25zJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMubGVmdCQsIHRoaXMucmlnaHQkXSkucGlwZShcbiAgICBtYXAoXG4gICAgICAoW2xlZnQsIHJpZ2h0XSkgPT5cbiAgICAgICAgKHtcbiAgICAgICAgICBkcmFnUmFuZ2U6IFswLCByaWdodCwgMTAwLCBsZWZ0XSxcbiAgICAgICAgICBjdXJzb3JzOiB7XG4gICAgICAgICAgICBtb3ZlOiAnY29sLXJlc2l6ZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSkgYXMgTXV0YWJsZU9wdGlvbnMsXG4gICAgKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgbGVmdEluc2V0ID0ge1xuICAgIHRvcDogJzAnLFxuICAgIHJpZ2h0OiB0b1BlcmNlbnQodGhpcy5zcGxpdExvY2F0aW9uKSxcbiAgICBib3R0b206ICcwJyxcbiAgICBsZWZ0OiAnMCcsXG4gIH07XG5cbiAgcmlnaHRJbnNldCA9IHtcbiAgICB0b3A6ICcwJyxcbiAgICByaWdodDogJzAnLFxuICAgIGJvdHRvbTogJzAnLFxuICAgIGxlZnQ6IHRvUGVyY2VudCgxMDAgLSB0aGlzLnNwbGl0TG9jYXRpb24pLFxuICB9O1xuXG4gIHNwbGl0SW5zZXQgPSB0aGlzLnJpZ2h0SW5zZXQ7XG5cbiAgZHJhZyhlbGVtZW50OiBIVE1MRWxlbWVudCwgcm9vdDogSFRNTERpdkVsZW1lbnQpIHtcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgdGhpcy5sZWZ0SW5zZXQgPSB7XG4gICAgICAgIHRvcDogJzAnLFxuICAgICAgICByaWdodDogdG9QZXJjZW50KFxuICAgICAgICAgIDEgLSB0b051bWJlcihlbGVtZW50LnN0eWxlLmxlZnQpIC8gcm9vdC5jbGllbnRXaWR0aCxcbiAgICAgICAgICAxMDAsXG4gICAgICAgICksXG4gICAgICAgIGJvdHRvbTogJzAnLFxuICAgICAgICBsZWZ0OiAnMCcsXG4gICAgICB9O1xuICAgICAgdGhpcy5yaWdodEluc2V0ID0ge1xuICAgICAgICB0b3A6ICcwJyxcbiAgICAgICAgcmlnaHQ6ICcwJyxcbiAgICAgICAgYm90dG9tOiAnMCcsXG4gICAgICAgIGxlZnQ6IHRvUGVyY2VudCh0b051bWJlcihlbGVtZW50LnN0eWxlLmxlZnQpIC8gcm9vdC5jbGllbnRXaWR0aCwgMTAwKSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJtb3NhaWMtcm9vdFwiXG4gICNyb290XG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cIm1vc2FpYy1sZWZ0XCJcbiAgICBbbmdTdHlsZV09XCJsZWZ0SW5zZXRcIlxuICA+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2FjbE1vc2FpY0xlZnRdXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwibW9zYWljLXNwbGl0XCJcbiAgICBbbmdTdHlsZV09XCJzcGxpdEluc2V0XCJcbiAgICBhY2xNdXRhYmxlXG4gICAgKGFjbE9uRHJhZyk9XCJkcmFnKCRldmVudCwgcm9vdClcIlxuICAgIFthY2xNdXRhYmxlT3B0aW9uc109XCJtdXRhYmxlT3B0aW9ucyQgfCBhc3luY1wiXG4gICAgW2FjbFJlc2l6YWJsZV09XCJmYWxzZVwiXG4gID48L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwibW9zYWljLXJpZ2h0XCJcbiAgICBbbmdTdHlsZV09XCJyaWdodEluc2V0XCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlthY2xNb3NhaWNSaWdodF1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class MosaicLeftDirective {
|
|
4
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: MosaicLeftDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: MosaicLeftDirective, selector: "acl-mosaic[aclMosaicLeft]", ngImport: i0 }); }
|
|
6
|
+
}
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: MosaicLeftDirective, decorators: [{
|
|
8
|
+
type: Directive,
|
|
9
|
+
args: [{
|
|
10
|
+
selector: 'acl-mosaic[aclMosaicLeft]',
|
|
11
|
+
}]
|
|
12
|
+
}] });
|
|
13
|
+
export class MosaicRightDirective {
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: MosaicRightDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
15
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: MosaicRightDirective, isStandalone: true, selector: "acl-mosaic[aclMosaicRight]", ngImport: i0 }); }
|
|
16
|
+
}
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: MosaicRightDirective, decorators: [{
|
|
18
|
+
type: Directive,
|
|
19
|
+
args: [{
|
|
20
|
+
selector: 'acl-mosaic[aclMosaicRight]',
|
|
21
|
+
standalone: true,
|
|
22
|
+
}]
|
|
23
|
+
}] });
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2NvbXBvbmVudHMvbXV0YWJsZS9tb3NhaWMvZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzFDLE1BQU0sT0FBTyxtQkFBbUI7OEdBQW5CLG1CQUFtQjtrR0FBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUgvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7aUJBQ3RDOztBQU9ELE1BQU0sT0FBTyxvQkFBb0I7OEdBQXBCLG9CQUFvQjtrR0FBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQUpoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdhY2wtbW9zYWljW2FjbE1vc2FpY0xlZnRdJyxcbn0pXG5leHBvcnQgY2xhc3MgTW9zYWljTGVmdERpcmVjdGl2ZSB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdhY2wtbW9zYWljW2FjbE1vc2FpY1JpZ2h0XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE1vc2FpY1JpZ2h0RGlyZWN0aXZlIHt9XG4iXX0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const removeSuffix = (str) => str.replace('-resize', '');
|
|
2
|
+
/** 如果cursor存在类似 n-resize、ne-resize,都代表是top 方向 */
|
|
3
|
+
export const isT = (cursor) => removeSuffix(cursor).includes('n');
|
|
4
|
+
/** 是否是right */
|
|
5
|
+
export const isR = (cursor) => removeSuffix(cursor).includes('e');
|
|
6
|
+
/** 是否是bottom */
|
|
7
|
+
export const isB = (cursor) => removeSuffix(cursor).includes('s');
|
|
8
|
+
/** 是否是left */
|
|
9
|
+
export const isL = (cursor) => removeSuffix(cursor).includes('w');
|
|
10
|
+
export const toPx = (num) => num + 'px';
|
|
11
|
+
export const toPercent = (num, base = 1) => num * base + '%';
|
|
12
|
+
export const toNumber = (str) => {
|
|
13
|
+
const p = parseFloat(str);
|
|
14
|
+
return isNaN(p) ? 0 : p;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZHluYW1pYy1wbHVnaW4tc2hhcmVkL3NyYy9jb21wb25lbnRzL211dGFibGUvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQWlCLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3ZFLGlEQUFpRDtBQUNqRCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFvQixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2hGLGVBQWU7QUFDZixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFvQixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2hGLGdCQUFnQjtBQUNoQixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFvQixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2hGLGNBQWM7QUFDZCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFvQixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRWhGLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztBQUNoRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFXLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLENBQUM7QUFDckUsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUU7SUFDdEMsTUFBTSxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGN1cnNvciBzdHlsZSBsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL3poLUNOL2RvY3MvV2ViL0NTUy9jdXJzb3JcbiAqL1xuZXhwb3J0IHR5cGUgQ3Vyc29yWCA9ICdlJyB8ICd3JztcbmV4cG9ydCB0eXBlIEN1cnNvclkgPSAnbicgfCAncyc7XG5cbmV4cG9ydCB0eXBlIEN1cnNvciA9IEN1cnNvclggfCBDdXJzb3JZIHwgYCR7Q3Vyc29yWX0ke0N1cnNvclh9YDtcbmV4cG9ydCB0eXBlIFJlc2l6ZUN1cnNvciA9IGAke0N1cnNvcn0tcmVzaXplYDtcblxuY29uc3QgcmVtb3ZlU3VmZml4ID0gKHN0cjogUmVzaXplQ3Vyc29yKSA9PiBzdHIucmVwbGFjZSgnLXJlc2l6ZScsICcnKTtcbi8qKiDlpoLmnpxjdXJzb3LlrZjlnKjnsbvkvLwgbi1yZXNpemXjgIFuZS1yZXNpemXvvIzpg73ku6PooajmmK90b3Ag5pa55ZCRICovXG5leHBvcnQgY29uc3QgaXNUID0gKGN1cnNvcjogUmVzaXplQ3Vyc29yKSA9PiByZW1vdmVTdWZmaXgoY3Vyc29yKS5pbmNsdWRlcygnbicpO1xuLyoqIOaYr+WQpuaYr3JpZ2h0ICovXG5leHBvcnQgY29uc3QgaXNSID0gKGN1cnNvcjogUmVzaXplQ3Vyc29yKSA9PiByZW1vdmVTdWZmaXgoY3Vyc29yKS5pbmNsdWRlcygnZScpO1xuLyoqIOaYr+WQpuaYr2JvdHRvbSAqL1xuZXhwb3J0IGNvbnN0IGlzQiA9IChjdXJzb3I6IFJlc2l6ZUN1cnNvcikgPT4gcmVtb3ZlU3VmZml4KGN1cnNvcikuaW5jbHVkZXMoJ3MnKTtcbi8qKiDmmK/lkKbmmK9sZWZ0ICovXG5leHBvcnQgY29uc3QgaXNMID0gKGN1cnNvcjogUmVzaXplQ3Vyc29yKSA9PiByZW1vdmVTdWZmaXgoY3Vyc29yKS5pbmNsdWRlcygndycpO1xuXG5leHBvcnQgY29uc3QgdG9QeCA9IChudW06IG51bWJlcikgPT4gbnVtICsgJ3B4JztcbmV4cG9ydCBjb25zdCB0b1BlcmNlbnQgPSAobnVtOiBudW1iZXIsIGJhc2UgPSAxKSA9PiBudW0gKiBiYXNlICsgJyUnO1xuZXhwb3J0IGNvbnN0IHRvTnVtYmVyID0gKHN0cjogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IHAgPSBwYXJzZUZsb2F0KHN0cik7XG4gIHJldHVybiBpc05hTihwKSA/IDAgOiBwO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { IconComponent } from '@alauda/ui';
|
|
2
|
+
import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class OverviewBannerComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.option = {};
|
|
7
|
+
}
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: OverviewBannerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: OverviewBannerComponent, isStandalone: true, selector: "acl-overview-banner", inputs: { option: "option" }, ngImport: i0, template: "<div class=\"overview-banner--wrapper\">\n <div class=\"overview-banner\">\n <div class=\"overview-banner__icon\">\n <aui-icon\n class=\"acl-colorful-icon highlight\"\n [icon]=\"'bicolor:' + option?.icon\"\n ></aui-icon>\n </div>\n <div class=\"overview-banner__content\">\n <div class=\"overview-banner__title\">\n {{ option?.title }}\n </div>\n <div class=\"overview-banner__description\">\n {{ option?.description }}\n </div>\n </div>\n </div>\n</div>\n", styles: [".overview-banner{display:flex;align-items:center;padding:24px}.overview-banner--wrapper{border-radius:var(--aui-border-radius-l);margin-bottom:var(--aui-spacing-xl);background-color:rgb(var(--aui-color-primary));background-image:url(/assets/images/overview-banner.svg);background-size:cover;background-position:center}.overview-banner__icon{margin-right:20px}.overview-banner__icon aui-icon{display:flex;font-size:56px;width:1em;height:1em}.overview-banner__content{color:#fff}.overview-banner__title{font-size:24px;line-height:36px;font-weight:var(--aui-font-weight-bolder)}.overview-banner__description{margin-top:4px;font-size:var(--aui-font-size-m)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10
|
+
}
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: OverviewBannerComponent, decorators: [{
|
|
12
|
+
type: Component,
|
|
13
|
+
args: [{ selector: 'acl-overview-banner', preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent], template: "<div class=\"overview-banner--wrapper\">\n <div class=\"overview-banner\">\n <div class=\"overview-banner__icon\">\n <aui-icon\n class=\"acl-colorful-icon highlight\"\n [icon]=\"'bicolor:' + option?.icon\"\n ></aui-icon>\n </div>\n <div class=\"overview-banner__content\">\n <div class=\"overview-banner__title\">\n {{ option?.title }}\n </div>\n <div class=\"overview-banner__description\">\n {{ option?.description }}\n </div>\n </div>\n </div>\n</div>\n", styles: [".overview-banner{display:flex;align-items:center;padding:24px}.overview-banner--wrapper{border-radius:var(--aui-border-radius-l);margin-bottom:var(--aui-spacing-xl);background-color:rgb(var(--aui-color-primary));background-image:url(/assets/images/overview-banner.svg);background-size:cover;background-position:center}.overview-banner__icon{margin-right:20px}.overview-banner__icon aui-icon{display:flex;font-size:56px;width:1em;height:1em}.overview-banner__content{color:#fff}.overview-banner__title{font-size:24px;line-height:36px;font-weight:var(--aui-font-weight-bolder)}.overview-banner__description{margin-top:4px;font-size:var(--aui-font-size-m)}\n"] }]
|
|
14
|
+
}], propDecorators: { option: [{
|
|
15
|
+
type: Input
|
|
16
|
+
}] } });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9keW5hbWljLXBsdWdpbi1zaGFyZWQvc3JjL2NvbXBvbmVudHMvb3ZlcnZpZXctYmFubmVyL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZHluYW1pYy1wbHVnaW4tc2hhcmVkL3NyYy9jb21wb25lbnRzL292ZXJ2aWV3LWJhbm5lci90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBaUIxRSxNQUFNLE9BQU8sdUJBQXVCO0lBVHBDO1FBV0UsV0FBTSxHQUFHLEVBQTBCLENBQUM7S0FDckM7OEdBSFksdUJBQXVCO2tHQUF2Qix1QkFBdUIsNkdDbEJwQyxraEJBa0JBLHlzQkRGWSxhQUFhOzsyRkFFWix1QkFBdUI7a0JBVG5DLFNBQVM7K0JBQ0UscUJBQXFCLHVCQUdWLEtBQUssbUJBQ1QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxhQUFhLENBQUM7OEJBSXhCLE1BQU07c0JBREwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3ZlcnZpZXdCYW5uZXJPcHRpb24ge1xuICBpY29uOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1vdmVydmlldy1iYW5uZXInLFxuICB0ZW1wbGF0ZVVybDogJ3RlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnc3R5bGVzLnNjc3MnXSxcbiAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbSWNvbkNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIE92ZXJ2aWV3QmFubmVyQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgb3B0aW9uID0ge30gYXMgT3ZlcnZpZXdCYW5uZXJPcHRpb247XG59XG4iLCI8ZGl2IGNsYXNzPVwib3ZlcnZpZXctYmFubmVyLS13cmFwcGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJvdmVydmlldy1iYW5uZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctYmFubmVyX19pY29uXCI+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgY2xhc3M9XCJhY2wtY29sb3JmdWwtaWNvbiBoaWdobGlnaHRcIlxuICAgICAgICBbaWNvbl09XCInYmljb2xvcjonICsgb3B0aW9uPy5pY29uXCJcbiAgICAgID48L2F1aS1pY29uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy1iYW5uZXJfX2NvbnRlbnRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy1iYW5uZXJfX3RpdGxlXCI+XG4gICAgICAgIHt7IG9wdGlvbj8udGl0bGUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWJhbm5lcl9fZGVzY3JpcHRpb25cIj5cbiAgICAgICAge3sgb3B0aW9uPy5kZXNjcmlwdGlvbiB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|