@tft/interact 12.5.3 → 13.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/esm2020/index.mjs +6 -0
  2. package/esm2020/lib/directives/account-for-scale.directive.mjs +26 -0
  3. package/esm2020/lib/directives/apply-scale.directive.mjs +28 -0
  4. package/esm2020/lib/directives/auto-scroll.directive.mjs +56 -0
  5. package/esm2020/lib/directives/drag-preview.directive.mjs +20 -0
  6. package/esm2020/lib/directives/drag-root.directive.mjs +32 -0
  7. package/esm2020/lib/directives/draggable.directive.mjs +320 -0
  8. package/esm2020/lib/directives/dropzone.directive.mjs +114 -0
  9. package/esm2020/lib/directives/gesturable.directive.mjs +82 -0
  10. package/esm2020/lib/directives/index.mjs +10 -0
  11. package/esm2020/lib/directives/resizable.directive.mjs +228 -0
  12. package/esm2020/lib/interact.module.mjs +66 -0
  13. package/esm2020/lib/models/index.mjs +2 -0
  14. package/esm2020/lib/models/interact.mjs +28 -0
  15. package/esm2020/lib/pipes/array-of-n.pipe.mjs +22 -0
  16. package/esm2020/lib/pipes/index.mjs +2 -0
  17. package/esm2020/lib/services/interact.service.mjs +197 -0
  18. package/esm2020/lib/utils/helpers.mjs +35 -0
  19. package/esm2020/lib/utils/index.mjs +2 -0
  20. package/esm2020/tft-interact.mjs +5 -0
  21. package/fesm2015/{tft-interact.js → tft-interact.mjs} +355 -257
  22. package/fesm2015/tft-interact.mjs.map +1 -0
  23. package/fesm2020/tft-interact.mjs +1192 -0
  24. package/fesm2020/tft-interact.mjs.map +1 -0
  25. package/lib/directives/account-for-scale.directive.d.ts +3 -0
  26. package/lib/directives/apply-scale.directive.d.ts +3 -0
  27. package/lib/directives/auto-scroll.directive.d.ts +3 -0
  28. package/lib/directives/drag-preview.directive.d.ts +3 -0
  29. package/lib/directives/drag-root.directive.d.ts +3 -0
  30. package/lib/directives/draggable.directive.d.ts +3 -0
  31. package/lib/directives/dropzone.directive.d.ts +3 -0
  32. package/lib/directives/gesturable.directive.d.ts +3 -0
  33. package/lib/directives/resizable.directive.d.ts +3 -0
  34. package/lib/interact.module.d.ts +15 -0
  35. package/lib/pipes/array-of-n.pipe.d.ts +3 -0
  36. package/lib/services/interact.service.d.ts +3 -0
  37. package/package.json +23 -10
  38. package/tft-interact-13.0.0.tgz +0 -0
  39. package/tft-interact.d.ts +1 -2
  40. package/bundles/tft-interact.umd.js +0 -1526
  41. package/bundles/tft-interact.umd.js.map +0 -1
  42. package/esm2015/index.js +0 -6
  43. package/esm2015/index.js.map +0 -1
  44. package/esm2015/index.metadata.json +0 -1
  45. package/esm2015/lib/directives/account-for-scale.directive.js +0 -26
  46. package/esm2015/lib/directives/account-for-scale.directive.js.map +0 -1
  47. package/esm2015/lib/directives/account-for-scale.directive.metadata.json +0 -1
  48. package/esm2015/lib/directives/account-for-scale.directive.ngfactory.js.map +0 -1
  49. package/esm2015/lib/directives/apply-scale.directive.js +0 -26
  50. package/esm2015/lib/directives/apply-scale.directive.js.map +0 -1
  51. package/esm2015/lib/directives/apply-scale.directive.metadata.json +0 -1
  52. package/esm2015/lib/directives/apply-scale.directive.ngfactory.js.map +0 -1
  53. package/esm2015/lib/directives/auto-scroll.directive.js +0 -54
  54. package/esm2015/lib/directives/auto-scroll.directive.js.map +0 -1
  55. package/esm2015/lib/directives/auto-scroll.directive.metadata.json +0 -1
  56. package/esm2015/lib/directives/auto-scroll.directive.ngfactory.js.map +0 -1
  57. package/esm2015/lib/directives/drag-preview.directive.js +0 -20
  58. package/esm2015/lib/directives/drag-preview.directive.js.map +0 -1
  59. package/esm2015/lib/directives/drag-preview.directive.metadata.json +0 -1
  60. package/esm2015/lib/directives/drag-preview.directive.ngfactory.js.map +0 -1
  61. package/esm2015/lib/directives/drag-root.directive.js +0 -27
  62. package/esm2015/lib/directives/drag-root.directive.js.map +0 -1
  63. package/esm2015/lib/directives/drag-root.directive.metadata.json +0 -1
  64. package/esm2015/lib/directives/drag-root.directive.ngfactory.js.map +0 -1
  65. package/esm2015/lib/directives/draggable.directive.js +0 -286
  66. package/esm2015/lib/directives/draggable.directive.js.map +0 -1
  67. package/esm2015/lib/directives/draggable.directive.metadata.json +0 -1
  68. package/esm2015/lib/directives/draggable.directive.ngfactory.js.map +0 -1
  69. package/esm2015/lib/directives/dropzone.directive.js +0 -105
  70. package/esm2015/lib/directives/dropzone.directive.js.map +0 -1
  71. package/esm2015/lib/directives/dropzone.directive.metadata.json +0 -1
  72. package/esm2015/lib/directives/dropzone.directive.ngfactory.js.map +0 -1
  73. package/esm2015/lib/directives/gesturable.directive.js +0 -77
  74. package/esm2015/lib/directives/gesturable.directive.js.map +0 -1
  75. package/esm2015/lib/directives/gesturable.directive.metadata.json +0 -1
  76. package/esm2015/lib/directives/gesturable.directive.ngfactory.js.map +0 -1
  77. package/esm2015/lib/directives/index.js +0 -10
  78. package/esm2015/lib/directives/index.js.map +0 -1
  79. package/esm2015/lib/directives/index.metadata.json +0 -1
  80. package/esm2015/lib/directives/resizable.directive.js +0 -201
  81. package/esm2015/lib/directives/resizable.directive.js.map +0 -1
  82. package/esm2015/lib/directives/resizable.directive.metadata.json +0 -1
  83. package/esm2015/lib/directives/resizable.directive.ngfactory.js.map +0 -1
  84. package/esm2015/lib/interact.module.js +0 -43
  85. package/esm2015/lib/interact.module.js.map +0 -1
  86. package/esm2015/lib/interact.module.metadata.json +0 -1
  87. package/esm2015/lib/interact.module.ngfactory.js.map +0 -1
  88. package/esm2015/lib/models/index.js +0 -2
  89. package/esm2015/lib/models/index.js.map +0 -1
  90. package/esm2015/lib/models/index.metadata.json +0 -1
  91. package/esm2015/lib/models/interact.js +0 -28
  92. package/esm2015/lib/models/interact.js.map +0 -1
  93. package/esm2015/lib/models/interact.metadata.json +0 -1
  94. package/esm2015/lib/pipes/array-of-n.pipe.js +0 -18
  95. package/esm2015/lib/pipes/array-of-n.pipe.js.map +0 -1
  96. package/esm2015/lib/pipes/array-of-n.pipe.metadata.json +0 -1
  97. package/esm2015/lib/pipes/array-of-n.pipe.ngfactory.js.map +0 -1
  98. package/esm2015/lib/pipes/index.js +0 -2
  99. package/esm2015/lib/pipes/index.js.map +0 -1
  100. package/esm2015/lib/pipes/index.metadata.json +0 -1
  101. package/esm2015/lib/services/interact.service.js +0 -196
  102. package/esm2015/lib/services/interact.service.js.map +0 -1
  103. package/esm2015/lib/services/interact.service.metadata.json +0 -1
  104. package/esm2015/lib/services/interact.service.ngfactory.js.map +0 -1
  105. package/esm2015/lib/utils/helpers.js +0 -35
  106. package/esm2015/lib/utils/helpers.js.map +0 -1
  107. package/esm2015/lib/utils/helpers.metadata.json +0 -1
  108. package/esm2015/lib/utils/index.js +0 -2
  109. package/esm2015/lib/utils/index.js.map +0 -1
  110. package/esm2015/lib/utils/index.metadata.json +0 -1
  111. package/esm2015/tft-interact.js +0 -7
  112. package/esm2015/tft-interact.js.map +0 -1
  113. package/esm2015/tft-interact.metadata.json +0 -1
  114. package/fesm2015/tft-interact.js.map +0 -1
  115. package/tft-interact-12.5.3.tgz +0 -0
  116. package/tft-interact.metadata.json +0 -1
@@ -0,0 +1,22 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ArrayOfNPipe {
4
+ /**
5
+ *
6
+ * @param n the number to make an array of
7
+ * @param max the max length of the array (useful for limiting rendering in ngFor loop)
8
+ */
9
+ transform(n, max) {
10
+ const length = ((max && max < n) || n === Infinity) ? max : n;
11
+ return new Array(length).fill(length).map((x, i) => i);
12
+ }
13
+ }
14
+ ArrayOfNPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: ArrayOfNPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
15
+ ArrayOfNPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: ArrayOfNPipe, name: "arrayOfN" });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: ArrayOfNPipe, decorators: [{
17
+ type: Pipe,
18
+ args: [{
19
+ name: 'arrayOfN'
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktb2Ytbi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9pbnRlcmFjdC9zcmMvbGliL3BpcGVzL2FycmF5LW9mLW4ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFLcEQsTUFBTSxPQUFPLFlBQVk7SUFFdkI7Ozs7T0FJRztJQUNILFNBQVMsQ0FBQyxDQUFTLEVBQUUsR0FBVztRQUM5QixNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlELE9BQU8sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7O3lHQVZVLFlBQVk7dUdBQVosWUFBWTsyRkFBWixZQUFZO2tCQUh4QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxVQUFVO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe1xuICBuYW1lOiAnYXJyYXlPZk4nXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5T2ZOUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIC8qKlxuICAgKiBcbiAgICogQHBhcmFtIG4gdGhlIG51bWJlciB0byBtYWtlIGFuIGFycmF5IG9mIFxuICAgKiBAcGFyYW0gbWF4IHRoZSBtYXggbGVuZ3RoIG9mIHRoZSBhcnJheSAodXNlZnVsIGZvciBsaW1pdGluZyByZW5kZXJpbmcgaW4gbmdGb3IgbG9vcClcbiAgICovXG4gIHRyYW5zZm9ybShuOiBudW1iZXIsIG1heDogbnVtYmVyKTogYW55IHtcbiAgICBjb25zdCBsZW5ndGggPSAoKG1heCAmJiBtYXggPCBuKSB8fCBuID09PSBJbmZpbml0eSkgPyBtYXggOiBuO1xuICAgIHJldHVybiBuZXcgQXJyYXkobGVuZ3RoKS5maWxsKGxlbmd0aCkubWFwKCh4LGkpPT4gaSk7IFxuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './array-of-n.pipe';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ludGVyYWN0L3NyYy9saWIvcGlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXJyYXktb2Ytbi5waXBlJzsiXX0=
@@ -0,0 +1,197 @@
1
+ import { Injectable, RendererFactory2, NgZone, Inject, Optional } from '@angular/core';
2
+ import { BehaviorSubject, combineLatest } from 'rxjs';
3
+ import { tap, map, shareReplay } from 'rxjs/operators';
4
+ import { defaultPosition, defaultSize, defaultDelta, DEFAULT_REGISTRY_ID, INTERACT_ROOT_CONFIG } from '../models';
5
+ import * as i0 from "@angular/core";
6
+ export class InteractService {
7
+ constructor(rendererFactory, ngZone, rootConfig) {
8
+ this.rendererFactory = rendererFactory;
9
+ this.ngZone = ngZone;
10
+ this.rootConfig = rootConfig;
11
+ this._interactableIndex = 0;
12
+ this._dropzoneIndex = 0;
13
+ // TODO: consider using Map here
14
+ this.dragRegistrySystem = {};
15
+ this.cssUnit = 'px';
16
+ this.renderer = this.rendererFactory.createRenderer(null, null);
17
+ this.cssUnit = rootConfig?.cssDimensionUnit || 'px';
18
+ }
19
+ addDeltaToPosition(delta, position) {
20
+ return {
21
+ x: delta.deltaX + position.x,
22
+ y: delta.deltaY + position.y,
23
+ targetElement: position.targetElement || delta.targetElement
24
+ };
25
+ }
26
+ addRegistryToSystem(customRegistryId = null) {
27
+ const registryId = customRegistryId || this.createDropzoneId(this._dropzoneIndex++);
28
+ this.dragRegistrySystem[registryId] = {};
29
+ return registryId;
30
+ }
31
+ addDraggableToRegistry(customRegistryId = null, interactableId = null) {
32
+ const registryId = customRegistryId || DEFAULT_REGISTRY_ID;
33
+ // if we pass an id to createInteractableId then it is used when creating the interactable
34
+ // and returned, otherwise a new id is created for the draggable.
35
+ const key = this.createInteractableId(interactableId);
36
+ if (!Object.prototype.hasOwnProperty.call(this.dragRegistrySystem, registryId)) {
37
+ this.dragRegistrySystem[registryId] = {};
38
+ }
39
+ this.dragRegistrySystem[registryId][key] = this.createInteractableState(defaultPosition, defaultSize, defaultDelta);
40
+ return key;
41
+ }
42
+ destroyInteractable(interactableId, registryId = DEFAULT_REGISTRY_ID) {
43
+ const interactableSystem = this.dragRegistrySystem[registryId][interactableId];
44
+ if (interactableSystem) {
45
+ // unsubscribe from all the subscriptions if they're subscriptions
46
+ for (const propName in interactableSystem) {
47
+ const prop = interactableSystem[propName];
48
+ if (prop.unsubscribe && typeof prop.unsubscribe === 'function') {
49
+ prop.unsubscribe();
50
+ }
51
+ ;
52
+ }
53
+ delete this.dragRegistrySystem[registryId][interactableId];
54
+ }
55
+ }
56
+ subscribeToInteractable(interactableId, registryId = DEFAULT_REGISTRY_ID) {
57
+ return this.dragRegistrySystem[registryId][interactableId];
58
+ }
59
+ createInteractableState(initialPosition, initialSize, initialDelta) {
60
+ const deltas$ = new BehaviorSubject(initialDelta);
61
+ // tracks the size of the element
62
+ const size$ = new BehaviorSubject({ ...initialSize, ...initialDelta });
63
+ // Stream of positions as they change
64
+ const position$ = new BehaviorSubject(initialPosition);
65
+ // All draggable data mapped together
66
+ const interactable$ = combineLatest([
67
+ size$.pipe(
68
+ // startWith({...initialSize, ...initialDelta}),
69
+ shareReplay(1),
70
+ // filter(resizeEvent => !!resizeEvent.targetElement),
71
+ tap(({ deltaX, deltaY, width, height, targetElement }) => {
72
+ this.ngZone.runOutsideAngular(() => {
73
+ this.setElementSize(width, height, targetElement);
74
+ });
75
+ // only reposition if necessary i.e when resizing left or up
76
+ if (deltaX || deltaY) {
77
+ deltas$.next({ deltaX, deltaY, targetElement });
78
+ }
79
+ })),
80
+ deltas$.pipe(shareReplay(1), tap((delta) => {
81
+ const position = position$.value;
82
+ const newPosition = this.addDeltaToPosition(delta, position);
83
+ position$.next(newPosition);
84
+ })),
85
+ position$.pipe(shareReplay(1), tap(position => {
86
+ this.ngZone.runOutsideAngular(() => {
87
+ this.setElementTransform(position.x, position.y, position);
88
+ });
89
+ }))
90
+ ]).pipe(shareReplay(1), map(([size, deltas, position]) => {
91
+ return {
92
+ x: position.x,
93
+ y: position.y,
94
+ deltaX: deltas.deltaX,
95
+ deltaY: deltas.deltaY,
96
+ width: size.width,
97
+ height: size.height,
98
+ targetElement: size.targetElement || position.targetElement || deltas.targetElement
99
+ };
100
+ }));
101
+ // TODO: update system to handle only returning interactable$
102
+ return {
103
+ deltas$,
104
+ position$,
105
+ size$,
106
+ interactable$
107
+ };
108
+ }
109
+ createInteractableId(customInteractableId = null) {
110
+ return customInteractableId || `interactable${this._interactableIndex++}`;
111
+ }
112
+ createDropzoneId(index) {
113
+ return `dropzone${index}`;
114
+ }
115
+ getInteractableState(interactableId, registryId = DEFAULT_REGISTRY_ID) {
116
+ return this.dragRegistrySystem[registryId][interactableId].interactable$;
117
+ }
118
+ updateDeltas(interactId, registryId, { deltaX, deltaY }, targetElement) {
119
+ if (!this.interactableExistOnRegistry(interactId, registryId))
120
+ return;
121
+ this.dragRegistrySystem[registryId][interactId].deltas$.next({ deltaX, deltaY, targetElement });
122
+ }
123
+ updatePosition(interactId, registryId, { x, y }, targetElement) {
124
+ if (!this.interactableExistOnRegistry(interactId, registryId))
125
+ return;
126
+ this.dragRegistrySystem[registryId][interactId].position$.next({ x, y, targetElement });
127
+ }
128
+ updateSize(interactId, registryId, { deltaX, deltaY, width, height }, targetElement) {
129
+ if (!this.interactableExistOnRegistry(interactId, registryId))
130
+ return;
131
+ this.dragRegistrySystem[registryId][interactId].size$.next({ deltaX, deltaY, width, height, targetElement });
132
+ }
133
+ interactableExistOnRegistry(interactId, registryId = DEFAULT_REGISTRY_ID) {
134
+ // eslint-disable-next-line no-prototype-builtins
135
+ return this.dragRegistrySystem.hasOwnProperty(registryId) && this.dragRegistrySystem[registryId].hasOwnProperty(interactId);
136
+ }
137
+ /**
138
+ * Uses renderer to set width and height of angular component
139
+ * @param width the desired width of component
140
+ * @param height the desired height of component
141
+ * @param target the element to transform
142
+ */
143
+ setElementSize(width, height, target) {
144
+ if (!target)
145
+ return;
146
+ this.renderer.setStyle(target, 'width', `${width}${this.cssUnit}`);
147
+ this.renderer.setStyle(target, 'height', `${height}${this.cssUnit}`);
148
+ }
149
+ /**
150
+ * Uses renderer to set position of angular component
151
+ * @param x position on x axis
152
+ * @param y position on y axis
153
+ * @param target the element to transform
154
+ */
155
+ setElementTransform(x, y, position) {
156
+ if (!position?.targetElement)
157
+ return;
158
+ this.renderer.setStyle(position.targetElement, 'left', `${x}${this.cssUnit}`);
159
+ this.renderer.setStyle(position.targetElement, 'top', `${y}${this.cssUnit}`);
160
+ }
161
+ /**
162
+ * Generates a translate string for the x and y arguments passed to
163
+ * be passed to css transform
164
+ * @param x the position along the x axis
165
+ * @param y the position along the y axis
166
+ */
167
+ createTransformString(x, y) {
168
+ return `translate3d(${x}${this.cssUnit}, ${y}${this.cssUnit}, 0)`;
169
+ }
170
+ calculatePositionInElement(zoneElement, dragElement, scale) {
171
+ // TODO: this calculation may not cover a lot of scenarios, keep an eye out for possible improvements
172
+ const zoneRect = zoneElement.getBoundingClientRect();
173
+ const dragRect = dragElement.getBoundingClientRect();
174
+ const position = scale
175
+ ? {
176
+ x: (dragRect.left - zoneRect.left) / scale || 1,
177
+ y: (dragRect.top - zoneRect.top) / scale || 1
178
+ } : {
179
+ x: dragRect.left - zoneRect.left,
180
+ y: dragRect.top - zoneRect.top
181
+ };
182
+ // console.log({ y:position.y, drt:dragRect.top, zrt: zoneRect.top})
183
+ return position;
184
+ }
185
+ }
186
+ InteractService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: InteractService, deps: [{ token: i0.RendererFactory2 }, { token: i0.NgZone }, { token: INTERACT_ROOT_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
187
+ InteractService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: InteractService, providedIn: 'root' });
188
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: InteractService, decorators: [{
189
+ type: Injectable,
190
+ args: [{ providedIn: 'root' }]
191
+ }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }, { type: i0.NgZone }, { type: undefined, decorators: [{
192
+ type: Optional
193
+ }, {
194
+ type: Inject,
195
+ args: [INTERACT_ROOT_CONFIG]
196
+ }] }]; } });
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvaW50ZXJhY3Qvc3JjL2xpYi9zZXJ2aWNlcy9pbnRlcmFjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQWEsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLGVBQWUsRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUVMLGVBQWUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFvQyxvQkFBb0IsRUFDeEgsTUFBTSxXQUFXLENBQUM7O0FBS25CLE1BQU0sT0FBTyxlQUFlO0lBUzFCLFlBQ1UsZUFBaUMsRUFDakMsTUFBYyxFQUMyQixVQUFVO1FBRm5ELG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQUNqQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQzJCLGVBQVUsR0FBVixVQUFVLENBQUE7UUFWckQsdUJBQWtCLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBRzNCLGdDQUFnQztRQUN2Qix1QkFBa0IsR0FBNEMsRUFBRyxDQUFDO1FBQ25FLFlBQU8sR0FBRyxJQUFJLENBQUE7UUFNcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLEVBQUUsZ0JBQWdCLElBQUksSUFBSSxDQUFDO0lBQ3RELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFZLEVBQUUsUUFBa0I7UUFDakQs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LHFCQUFxQixFQUFFLENBQUM7UUFDckQsTUFBTSxRQUFRLEdBQUcsS0FBSztZQUNwQixDQUFDLENBQUM7Z0JBQ0YsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxJQUFLLENBQUM7Z0JBQ2hELENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDO2FBQzVDLENBQUMsQ0FBQyxDQUFDO1lBQ0YsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUk7WUFDaEMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUc7U0FDakMsQ0FBQztRQUNGLG9FQUFvRTtRQUNwRSxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOzs0R0ExTVUsZUFBZSx3RUFZSixvQkFBb0I7Z0hBWi9CLGVBQWUsY0FESCxNQUFNOzJGQUNsQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7MEJBYTNCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBSZW5kZXJlcjIsIFJlbmRlcmVyRmFjdG9yeTIsIE5nWm9uZSwgSW5qZWN0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YXAsIG1hcCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBUZnRDb29yZHMsIERlbHRhLCBTaXplLCBQb3NpdGlvbiwgSW50ZXJhY3RhYmxlUmVnaXN0cnksXG4gIGRlZmF1bHRQb3NpdGlvbiwgZGVmYXVsdFNpemUsIGRlZmF1bHREZWx0YSwgREVGQVVMVF9SRUdJU1RSWV9JRCwgVGZ0RHJhZ0VsZW1lbnQsIFRmdFJlc2l6ZUVsZW1lbnQsIElOVEVSQUNUX1JPT1RfQ09ORklHLCBJbnRlcmFjdFJvb3RDb25maWdcbn0gZnJvbSAnLi4vbW9kZWxzJztcblxuXG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIEludGVyYWN0U2VydmljZSB7XG5cbiAgcHJpdmF0ZSBfaW50ZXJhY3RhYmxlSW5kZXggPSAwO1xuICBwcml2YXRlIF9kcm9wem9uZUluZGV4ID0gMDtcbiAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyO1xuXG4gIC8vIFRPRE86IGNvbnNpZGVyIHVzaW5nIE1hcCBoZXJlXG4gIHJlYWRvbmx5IGRyYWdSZWdpc3RyeVN5c3RlbTogeyBba2V5OiBzdHJpbmddOiBJbnRlcmFjdGFibGVSZWdpc3RyeSB9ID0geyB9O1xuICBwcml2YXRlIGNzc1VuaXQgPSAncHgnXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyLFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChJTlRFUkFDVF9ST09UX0NPTkZJRykgcHVibGljIHJvb3RDb25maWdcbiAgKSB7XG4gICAgdGhpcy5yZW5kZXJlciA9IHRoaXMucmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKG51bGwsIG51bGwpO1xuICAgIHRoaXMuY3NzVW5pdCA9IHJvb3RDb25maWc/LmNzc0RpbWVuc2lvblVuaXQgfHwgJ3B4JztcbiAgfVxuXG4gIGFkZERlbHRhVG9Qb3NpdGlvbihkZWx0YTogRGVsdGEsIHBvc2l0aW9uOiBQb3NpdGlvbikge1xuICAgIHJldHVybiB7XG4gICAgICB4OiBkZWx0YS5kZWx0YVggKyBwb3NpdGlvbi54LFxuICAgICAgeTogZGVsdGEuZGVsdGFZICsgcG9zaXRpb24ueSxcbiAgICAgIHRhcmdldEVsZW1lbnQ6IHBvc2l0aW9uLnRhcmdldEVsZW1lbnQgfHwgZGVsdGEudGFyZ2V0RWxlbWVudFxuICAgIH1cbiAgfVxuXG4gIGFkZFJlZ2lzdHJ5VG9TeXN0ZW0oY3VzdG9tUmVnaXN0cnlJZDogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcbiAgICBjb25zdCByZWdpc3RyeUlkID0gY3VzdG9tUmVnaXN0cnlJZCB8fCB0aGlzLmNyZWF0ZURyb3B6b25lSWQodGhpcy5fZHJvcHpvbmVJbmRleCsrKTtcbiAgICB0aGlzLmRyYWdSZWdpc3RyeVN5c3RlbVtyZWdpc3RyeUlkXSA9IHt9O1xuICAgIHJldHVybiByZWdpc3RyeUlkO1xuICB9XG5cbiAgYWRkRHJhZ2dhYmxlVG9SZWdpc3RyeShjdXN0b21SZWdpc3RyeUlkID0gbnVsbCwgaW50ZXJhY3RhYmxlSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsICkge1xuICAgIGNvbnN0IHJlZ2lzdHJ5SWQgPSBjdXN0b21SZWdpc3RyeUlkIHx8IERFRkFVTFRfUkVHSVNUUllfSUQ7XG4gICAgLy8gaWYgd2UgcGFzcyBhbiBpZCB0byBjcmVhdGVJbnRlcmFjdGFibGVJZCB0aGVuIGl0IGlzIHVzZWQgd2hlbiBjcmVhdGluZyB0aGUgaW50ZXJhY3RhYmxlXG4gICAgLy8gYW5kIHJldHVybmVkLCBvdGhlcndpc2UgYSBuZXcgaWQgaXMgY3JlYXRlZCBmb3IgdGhlIGRyYWdnYWJsZS5cbiAgICBjb25zdCBrZXkgPSB0aGlzLmNyZWF0ZUludGVyYWN0YWJsZUlkKGludGVyYWN0YWJsZUlkICk7XG4gICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5kcmFnUmVnaXN0cnlTeXN0ZW0sIHJlZ2lzdHJ5SWQpKSB7XG4gICAgICB0aGlzLmRyYWdSZWdpc3RyeVN5c3RlbVtyZWdpc3RyeUlkXSA9IHt9O1xuICAgIH1cbiAgICB0aGlzLmRyYWdSZWdpc3RyeVN5c3RlbVtyZWdpc3RyeUlkXVtrZXldID0gdGhpcy5jcmVhdGVJbnRlcmFjdGFibGVTdGF0ZShkZWZhdWx0UG9zaXRpb24sIGRlZmF1bHRTaXplLCBkZWZhdWx0RGVsdGEpO1xuICAgIHJldHVybiBrZXlcbiAgfVxuXG4gIGRlc3Ryb3lJbnRlcmFjdGFibGUoaW50ZXJhY3RhYmxlSWQ6IHN0cmluZywgcmVnaXN0cnlJZCA9IERFRkFVTFRfUkVHSVNUUllfSUQpIHtcbiAgICBjb25zdCBpbnRlcmFjdGFibGVTeXN0ZW0gPXRoaXMuZHJhZ1JlZ2lzdHJ5U3lzdGVtW3JlZ2lzdHJ5SWRdW2ludGVyYWN0YWJsZUlkXTtcbiAgICBpZihpbnRlcmFjdGFibGVTeXN0ZW0pIHtcbiAgICAgIC8vIHVuc3Vic2NyaWJlIGZyb20gYWxsIHRoZSBzdWJzY3JpcHRpb25zIGlmIHRoZXkncmUgc3Vic2NyaXB0aW9uc1xuICAgICAgZm9yIChjb25zdCBwcm9wTmFtZSBpbiBpbnRlcmFjdGFibGVTeXN0ZW0pICB7XG4gICAgICAgIGNvbnN0IHByb3AgPSBpbnRlcmFjdGFibGVTeXN0ZW1bcHJvcE5hbWVdO1xuICAgICAgICBpZiAocHJvcC51bnN1YnNjcmliZSAmJiB0eXBlb2YgcHJvcC51bnN1YnNjcmliZSA9PT0gJ2Z1bmN0aW9uJyApIHtcbiAgICAgICAgICBwcm9wLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBkZWxldGUgdGhpcy5kcmFnUmVnaXN0cnlTeXN0ZW1bcmVnaXN0cnlJZF1baW50ZXJhY3RhYmxlSWRdO1xuICAgIH1cbiAgfVxuXG4gIHN1YnNjcmliZVRvSW50ZXJhY3RhYmxlKGludGVyYWN0YWJsZUlkOiBzdHJpbmcsIHJlZ2lzdHJ5SWQgPSBERUZBVUxUX1JFR0lTVFJZX0lEKSB7XG4gICAgcmV0dXJuIHRoaXMuZHJhZ1JlZ2lzdHJ5U3lzdGVtW3JlZ2lzdHJ5SWRdW2ludGVyYWN0YWJsZUlkXTtcbiAgfVxuXG4gIGNyZWF0ZUludGVyYWN0YWJsZVN0YXRlKGluaXRpYWxQb3NpdGlvbjogUG9zaXRpb24sIGluaXRpYWxTaXplOiBTaXplLCBpbml0aWFsRGVsdGE6IERlbHRhICkge1xuXG4gICAgY29uc3QgZGVsdGFzJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoaW5pdGlhbERlbHRhKTtcbiAgICAvLyB0cmFja3MgdGhlIHNpemUgb2YgdGhlIGVsZW1lbnRcbiAgICBjb25zdCBzaXplJCA9IG5ldyBCZWhhdmlvclN1YmplY3Qoey4uLmluaXRpYWxTaXplLCAuLi5pbml0aWFsRGVsdGF9KTtcbiAgICAvLyBTdHJlYW0gb2YgcG9zaXRpb25zIGFzIHRoZXkgY2hhbmdlXG4gICAgY29uc3QgcG9zaXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdChpbml0aWFsUG9zaXRpb24pO1xuXG4gICAgLy8gQWxsIGRyYWdnYWJsZSBkYXRhIG1hcHBlZCB0b2dldGhlclxuICAgIGNvbnN0IGludGVyYWN0YWJsZSQ6IE9ic2VydmFibGU8VGZ0Q29vcmRzPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgc2l6ZSQucGlwZShcbiAgICAgICAgLy8gc3RhcnRXaXRoKHsuLi5pbml0aWFsU2l6ZSwgLi4uaW5pdGlhbERlbHRhfSksXG4gICAgICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgICAgICAvLyBmaWx0ZXIocmVzaXplRXZlbnQgPT4gISFyZXNpemVFdmVudC50YXJnZXRFbGVtZW50KSxcbiAgICAgICAgdGFwKCh7ZGVsdGFYLCBkZWx0YVksIHdpZHRoLCBoZWlnaHQsIHRhcmdldEVsZW1lbnR9KSA9PiB7XG4gICAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRFbGVtZW50U2l6ZSh3aWR0aCwgaGVpZ2h0LCB0YXJnZXRFbGVtZW50KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICAvLyBvbmx5IHJlcG9zaXRpb24gaWYgbmVjZXNzYXJ5IGkuZSB3aGVuIHJlc2l6aW5nIGxlZnQgb3IgdXBcbiAgICAgICAgICBpZihkZWx0YVggfHwgZGVsdGFZKSB7XG4gICAgICAgICAgICBkZWx0YXMkLm5leHQoe2RlbHRhWCwgZGVsdGFZLCB0YXJnZXRFbGVtZW50fSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKSxcbiAgICAgIGRlbHRhcyQucGlwZShcbiAgICAgICAgc2hhcmVSZXBsYXkoMSksXG4gICAgICAgIHRhcCgoZGVsdGEpID0+IHtcbiAgICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHBvc2l0aW9uJC52YWx1ZTtcbiAgICAgICAgICBjb25zdCBuZXdQb3NpdGlvbiA9IHRoaXMuYWRkRGVsdGFUb1Bvc2l0aW9uKGRlbHRhLCBwb3NpdGlvbik7XG4gICAgICAgICAgcG9zaXRpb24kLm5leHQobmV3UG9zaXRpb24pO1xuICAgICAgICB9KVxuICAgICAgKSxcbiAgICAgIHBvc2l0aW9uJC5waXBlKFxuICAgICAgICBzaGFyZVJlcGxheSgxKSxcbiAgICAgICAgdGFwKCBwb3NpdGlvbiA9PiB7XG4gICAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRFbGVtZW50VHJhbnNmb3JtKHBvc2l0aW9uLngsIHBvc2l0aW9uLnksIHBvc2l0aW9uKTtcbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgXSkucGlwZShcbiAgICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgICAgbWFwKCAoW3NpemUsIGRlbHRhcywgcG9zaXRpb25dKTogVGZ0Q29vcmRzPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHg6IHBvc2l0aW9uLngsXG4gICAgICAgICAgeTogcG9zaXRpb24ueSxcbiAgICAgICAgICBkZWx0YVg6IGRlbHRhcy5kZWx0YVgsXG4gICAgICAgICAgZGVsdGFZOiBkZWx0YXMuZGVsdGFZLFxuICAgICAgICAgIHdpZHRoOiBzaXplLndpZHRoLFxuICAgICAgICAgIGhlaWdodDogc2l6ZS5oZWlnaHQsXG4gICAgICAgICAgdGFyZ2V0RWxlbWVudDogc2l6ZS50YXJnZXRFbGVtZW50IHx8IHBvc2l0aW9uLnRhcmdldEVsZW1lbnQgfHwgZGVsdGFzLnRhcmdldEVsZW1lbnRcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKVxuICAgIC8vIFRPRE86IHVwZGF0ZSBzeXN0ZW0gdG8gaGFuZGxlIG9ubHkgcmV0dXJuaW5nIGludGVyYWN0YWJsZSRcbiAgICByZXR1cm4ge1xuICAgICAgZGVsdGFzJCxcbiAgICAgIHBvc2l0aW9uJCxcbiAgICAgIHNpemUkLFxuICAgICAgaW50ZXJhY3RhYmxlJFxuICAgIH1cbiAgfVxuXG4gIGNyZWF0ZUludGVyYWN0YWJsZUlkKGN1c3RvbUludGVyYWN0YWJsZUlkOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgIHJldHVybiBjdXN0b21JbnRlcmFjdGFibGVJZCB8fCBgaW50ZXJhY3RhYmxlJHt0aGlzLl9pbnRlcmFjdGFibGVJbmRleCsrfWBcbiAgfVxuXG4gIGNyZWF0ZURyb3B6b25lSWQoaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBgZHJvcHpvbmUke2luZGV4fWBcbiAgfVxuXG4gIGdldEludGVyYWN0YWJsZVN0YXRlKCBpbnRlcmFjdGFibGVJZDogc3RyaW5nLCByZWdpc3RyeUlkID0gREVGQVVMVF9SRUdJU1RSWV9JRCkge1xuICAgIHJldHVybiB0aGlzLmRyYWdSZWdpc3RyeVN5c3RlbVtyZWdpc3RyeUlkXVtpbnRlcmFjdGFibGVJZF0uaW50ZXJhY3RhYmxlJDtcbiAgfVxuXG4gIHVwZGF0ZURlbHRhcyhpbnRlcmFjdElkOiBzdHJpbmcsIHJlZ2lzdHJ5SWQ6IHN0cmluZywgeyBkZWx0YVgsIGRlbHRhWSB9LCB0YXJnZXRFbGVtZW50KSB7XG4gICAgaWYgKCF0aGlzLmludGVyYWN0YWJsZUV4aXN0T25SZWdpc3RyeShpbnRlcmFjdElkLCByZWdpc3RyeUlkKSkgcmV0dXJuO1xuICAgIHRoaXMuZHJhZ1JlZ2lzdHJ5U3lzdGVtW3JlZ2lzdHJ5SWRdW2ludGVyYWN0SWRdLmRlbHRhcyQubmV4dCh7IGRlbHRhWCwgZGVsdGFZLCB0YXJnZXRFbGVtZW50IH0pXG4gIH1cblxuICB1cGRhdGVQb3NpdGlvbihpbnRlcmFjdElkOiBzdHJpbmcsIHJlZ2lzdHJ5SWQ6IHN0cmluZywgeyB4LCB5IH06IHt4OiBudW1iZXI7IHk6IG51bWJlcjt9LCB0YXJnZXRFbGVtZW50KSB7XG4gICAgaWYgKCF0aGlzLmludGVyYWN0YWJsZUV4aXN0T25SZWdpc3RyeShpbnRlcmFjdElkLCByZWdpc3RyeUlkKSkgcmV0dXJuO1xuICAgIHRoaXMuZHJhZ1JlZ2lzdHJ5U3lzdGVtW3JlZ2lzdHJ5SWRdW2ludGVyYWN0SWRdLnBvc2l0aW9uJC5uZXh0KHsgeCwgeSwgdGFyZ2V0RWxlbWVudCB9KVxuICB9XG5cbiAgdXBkYXRlU2l6ZShpbnRlcmFjdElkOiBzdHJpbmcsIHJlZ2lzdHJ5SWQ6IHN0cmluZywgeyBkZWx0YVgsIGRlbHRhWSwgd2lkdGgsIGhlaWdodCB9LCB0YXJnZXRFbGVtZW50KSB7XG4gICAgaWYgKCF0aGlzLmludGVyYWN0YWJsZUV4aXN0T25SZWdpc3RyeShpbnRlcmFjdElkLCByZWdpc3RyeUlkKSkgcmV0dXJuXG4gICAgdGhpcy5kcmFnUmVnaXN0cnlTeXN0ZW1bcmVnaXN0cnlJZF1baW50ZXJhY3RJZF0uc2l6ZSQubmV4dCh7ZGVsdGFYLCBkZWx0YVksIHdpZHRoLCBoZWlnaHQsIHRhcmdldEVsZW1lbnR9KTtcbiAgfVxuXG4gIGludGVyYWN0YWJsZUV4aXN0T25SZWdpc3RyeShpbnRlcmFjdElkOiBzdHJpbmcsIHJlZ2lzdHJ5SWQgPSBERUZBVUxUX1JFR0lTVFJZX0lEKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xuICAgIHJldHVybiB0aGlzLmRyYWdSZWdpc3RyeVN5c3RlbS5oYXNPd25Qcm9wZXJ0eShyZWdpc3RyeUlkKSAmJiB0aGlzLmRyYWdSZWdpc3RyeVN5c3RlbVtyZWdpc3RyeUlkXS5oYXNPd25Qcm9wZXJ0eShpbnRlcmFjdElkKTtcbiAgfVxuICAvKipcbiAgICogVXNlcyByZW5kZXJlciB0byBzZXQgd2lkdGggYW5kIGhlaWdodCBvZiBhbmd1bGFyIGNvbXBvbmVudFxuICAgKiBAcGFyYW0gd2lkdGggdGhlIGRlc2lyZWQgd2lkdGggb2YgY29tcG9uZW50XG4gICAqIEBwYXJhbSBoZWlnaHQgdGhlIGRlc2lyZWQgaGVpZ2h0IG9mIGNvbXBvbmVudFxuICAgKiBAcGFyYW0gdGFyZ2V0IHRoZSBlbGVtZW50IHRvIHRyYW5zZm9ybVxuICAgKi9cbiAgc2V0RWxlbWVudFNpemUod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIHRhcmdldDogVGZ0UmVzaXplRWxlbWVudCkge1xuICAgIGlmKCF0YXJnZXQpIHJldHVybjtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRhcmdldCwgJ3dpZHRoJywgYCR7d2lkdGh9JHt0aGlzLmNzc1VuaXR9YCk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0YXJnZXQsICdoZWlnaHQnLCBgJHtoZWlnaHR9JHt0aGlzLmNzc1VuaXR9YCk7XG4gIH1cbiAgLyoqXG4gICAqIFVzZXMgcmVuZGVyZXIgdG8gc2V0IHBvc2l0aW9uIG9mIGFuZ3VsYXIgY29tcG9uZW50XG4gICAqIEBwYXJhbSB4IHBvc2l0aW9uIG9uIHggYXhpc1xuICAgKiBAcGFyYW0geSBwb3NpdGlvbiBvbiB5IGF4aXNcbiAgICogQHBhcmFtIHRhcmdldCB0aGUgZWxlbWVudCB0byB0cmFuc2Zvcm1cbiAgICovXG4gIHNldEVsZW1lbnRUcmFuc2Zvcm0oeDogbnVtYmVyLCB5OiBudW1iZXIsIHBvc2l0aW9uOiBQb3NpdGlvbiApIHtcbiAgICBpZighcG9zaXRpb24/LnRhcmdldEVsZW1lbnQpIHJldHVybjtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHBvc2l0aW9uLnRhcmdldEVsZW1lbnQsICdsZWZ0JywgYCR7eH0ke3RoaXMuY3NzVW5pdH1gKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHBvc2l0aW9uLnRhcmdldEVsZW1lbnQsICd0b3AnLCBgJHt5fSR7dGhpcy5jc3NVbml0fWApO1xuICB9XG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSB0cmFuc2xhdGUgc3RyaW5nIGZvciB0aGUgeCBhbmQgeSBhcmd1bWVudHMgcGFzc2VkIHRvXG4gICAqIGJlIHBhc3NlZCB0byBjc3MgdHJhbnNmb3JtXG4gICAqIEBwYXJhbSB4IHRoZSBwb3NpdGlvbiBhbG9uZyB0aGUgeCBheGlzXG4gICAqIEBwYXJhbSB5IHRoZSBwb3NpdGlvbiBhbG9uZyB0aGUgeSBheGlzXG4gICAqL1xuICBjcmVhdGVUcmFuc2Zvcm1TdHJpbmcoeDogbnVtYmVyLCB5OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYHRyYW5zbGF0ZTNkKCR7eH0ke3RoaXMuY3NzVW5pdH0sICR7eX0ke3RoaXMuY3NzVW5pdH0sIDApYFxuICB9XG5cbiAgY2FsY3VsYXRlUG9zaXRpb25JbkVsZW1lbnQoem9uZUVsZW1lbnQ6IEludGVyYWN0LkVsZW1lbnQsIGRyYWdFbGVtZW50OiBUZnREcmFnRWxlbWVudCwgc2NhbGU/OiBudW1iZXIpIHtcbiAgICAvLyBUT0RPOiB0aGlzIGNhbGN1bGF0aW9uIG1heSBub3QgY292ZXIgYSBsb3Qgb2Ygc2NlbmFyaW9zLCBrZWVwIGFuIGV5ZSBvdXQgZm9yIHBvc3NpYmxlIGltcHJvdmVtZW50c1xuICAgIGNvbnN0IHpvbmVSZWN0ID0gem9uZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgZHJhZ1JlY3QgPSBkcmFnRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBwb3NpdGlvbiA9IHNjYWxlXG4gICAgICA/IHtcbiAgICAgIHg6IChkcmFnUmVjdC5sZWZ0IC0gem9uZVJlY3QubGVmdCkgLyBzY2FsZSAgfHwgMSxcbiAgICAgIHk6IChkcmFnUmVjdC50b3AgLSB6b25lUmVjdC50b3ApIC8gc2NhbGUgfHwgMVxuICAgICAgfSA6IHtcbiAgICAgICAgeDogZHJhZ1JlY3QubGVmdCAtIHpvbmVSZWN0LmxlZnQsXG4gICAgICAgIHk6IGRyYWdSZWN0LnRvcCAtIHpvbmVSZWN0LnRvcFxuICAgIH07XG4gICAgLy8gY29uc29sZS5sb2coeyB5OnBvc2l0aW9uLnksIGRydDpkcmFnUmVjdC50b3AsIHpydDogem9uZVJlY3QudG9wfSlcbiAgICByZXR1cm4gcG9zaXRpb247XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,35 @@
1
+ /** Gets the closest ancestor of an element that matches a selector. */
2
+ export function getClosestMatchingAncestor(element, selector) {
3
+ let currentElement = element.parentElement;
4
+ while (currentElement) {
5
+ // IE doesn't support `matches` so we have to fall back to `msMatchesSelector`.
6
+ if (currentElement.matches ? currentElement.matches(selector) :
7
+ currentElement.msMatchesSelector(selector)) {
8
+ return currentElement;
9
+ }
10
+ currentElement = currentElement.parentElement;
11
+ }
12
+ return null;
13
+ }
14
+ /**
15
+ * Create a copy of the HTML Element
16
+ */
17
+ export function cloneElement(element) {
18
+ const clone = element.cloneNode(true);
19
+ clone.removeAttribute('id');
20
+ return clone;
21
+ }
22
+ /**
23
+ * Gets the root HTML element of an embedded view.
24
+ * If the root is not an HTML element it gets wrapped in one.
25
+ */
26
+ export function getRootNode(viewRef, _document) {
27
+ const rootNodes = viewRef.rootNodes;
28
+ if (rootNodes.length === 1 && rootNodes[0].nodeType === _document.ELEMENT_NODE) {
29
+ return rootNodes[0];
30
+ }
31
+ const wrapper = _document.createElement('div');
32
+ rootNodes.forEach(node => wrapper.appendChild(node));
33
+ return wrapper;
34
+ }
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvaW50ZXJhY3Qvc3JjL2xpYi91dGlscy9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLHVFQUF1RTtBQUN2RSxNQUFNLFVBQVUsMEJBQTBCLENBQUMsT0FBb0IsRUFBRSxRQUFnQjtJQUMvRSxJQUFJLGNBQWMsR0FBRyxPQUFPLENBQUMsYUFBbUMsQ0FBQztJQUVqRSxPQUFPLGNBQWMsRUFBRTtRQUNyQiwrRUFBK0U7UUFDL0UsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDMUQsY0FBNEIsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM3RCxPQUFPLGNBQWMsQ0FBQztTQUN2QjtRQUVELGNBQWMsR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDO0tBQy9DO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBR0Q7O0dBRUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLE9BQW9CO0lBRS9DLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFnQixDQUFDO0lBQ3JELEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxPQUE2QixFQUFFLFNBQW1CO0lBQzVFLE1BQU0sU0FBUyxHQUFXLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFFNUMsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxZQUFZLEVBQUU7UUFDOUUsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFnQixDQUFDO0tBQ3BDO0lBRUQsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3JELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbWJlZGRlZFZpZXdSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW50ZXJmYWNlIElFRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHtcbiAgbXNNYXRjaGVzU2VsZWN0b3I6IChzZWxlY3Rvcjogc3RyaW5nKSA9PiBib29sZWFuOyAvL1xufVxuXG4vKiogR2V0cyB0aGUgY2xvc2VzdCBhbmNlc3RvciBvZiBhbiBlbGVtZW50IHRoYXQgbWF0Y2hlcyBhIHNlbGVjdG9yLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENsb3Nlc3RNYXRjaGluZ0FuY2VzdG9yKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzZWxlY3Rvcjogc3RyaW5nKSB7XG4gIGxldCBjdXJyZW50RWxlbWVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgd2hpbGUgKGN1cnJlbnRFbGVtZW50KSB7XG4gICAgLy8gSUUgZG9lc24ndCBzdXBwb3J0IGBtYXRjaGVzYCBzbyB3ZSBoYXZlIHRvIGZhbGwgYmFjayB0byBgbXNNYXRjaGVzU2VsZWN0b3JgLlxuICAgIGlmIChjdXJyZW50RWxlbWVudC5tYXRjaGVzID8gY3VycmVudEVsZW1lbnQubWF0Y2hlcyhzZWxlY3RvcikgOlxuICAgICAgICAoY3VycmVudEVsZW1lbnQgYXMgSUVFbGVtZW50KS5tc01hdGNoZXNTZWxlY3RvcihzZWxlY3RvcikpIHtcbiAgICAgIHJldHVybiBjdXJyZW50RWxlbWVudDtcbiAgICB9XG5cbiAgICBjdXJyZW50RWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuXG4vKipcbiAqIENyZWF0ZSBhIGNvcHkgb2YgdGhlIEhUTUwgRWxlbWVudFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xvbmVFbGVtZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG5cbiAgY29uc3QgY2xvbmUgPSBlbGVtZW50LmNsb25lTm9kZSh0cnVlKSBhcyBIVE1MRWxlbWVudDtcbiAgY2xvbmUucmVtb3ZlQXR0cmlidXRlKCdpZCcpO1xuICByZXR1cm4gY2xvbmU7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgcm9vdCBIVE1MIGVsZW1lbnQgb2YgYW4gZW1iZWRkZWQgdmlldy5cbiAqIElmIHRoZSByb290IGlzIG5vdCBhbiBIVE1MIGVsZW1lbnQgaXQgZ2V0cyB3cmFwcGVkIGluIG9uZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJvb3ROb2RlKHZpZXdSZWY6IEVtYmVkZGVkVmlld1JlZjxhbnk+LCBfZG9jdW1lbnQ6IERvY3VtZW50KTogSFRNTEVsZW1lbnQge1xuICBjb25zdCByb290Tm9kZXM6IE5vZGVbXSA9IHZpZXdSZWYucm9vdE5vZGVzO1xuXG4gIGlmIChyb290Tm9kZXMubGVuZ3RoID09PSAxICYmIHJvb3ROb2Rlc1swXS5ub2RlVHlwZSA9PT0gX2RvY3VtZW50LkVMRU1FTlRfTk9ERSkge1xuICAgIHJldHVybiByb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gIH1cblxuICBjb25zdCB3cmFwcGVyID0gX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICByb290Tm9kZXMuZm9yRWFjaChub2RlID0+IHdyYXBwZXIuYXBwZW5kQ2hpbGQobm9kZSkpO1xuICByZXR1cm4gd3JhcHBlcjtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './helpers';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ludGVyYWN0L3NyYy9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2hlbHBlcnMnO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGZ0LWludGVyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9pbnRlcmFjdC9zcmMvdGZ0LWludGVyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19