@ngneat/helipopper 7.1.1 → 8.0.1
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/esm2022/lib/tippy.directive.mjs +472 -0
- package/{esm2020 → esm2022}/lib/tippy.service.mjs +4 -4
- package/esm2022/lib/utils.mjs +125 -0
- package/{fesm2020 → fesm2022}/ngneat-helipopper.mjs +107 -42
- package/fesm2022/ngneat-helipopper.mjs.map +1 -0
- package/lib/defaults.d.ts +1 -1
- package/lib/tippy.directive.d.ts +12 -2
- package/lib/tippy.types.d.ts +5 -5
- package/lib/utils.d.ts +1 -0
- package/package.json +9 -15
- package/esm2020/lib/tippy.directive.mjs +0 -424
- package/esm2020/lib/utils.mjs +0 -108
- package/fesm2015/ngneat-helipopper.mjs +0 -635
- package/fesm2015/ngneat-helipopper.mjs.map +0 -1
- package/fesm2020/ngneat-helipopper.mjs.map +0 -1
- /package/{esm2020 → esm2022}/lib/defaults.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/providers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/tippy.types.mjs +0 -0
- /package/{esm2020 → esm2022}/ngneat-helipopper.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
|
@@ -0,0 +1,472 @@
|
|
|
1
|
+
import { Directive, EventEmitter, Inject, Injector, Input, Output, PLATFORM_ID, } from '@angular/core';
|
|
2
|
+
import { isPlatformServer } from '@angular/common';
|
|
3
|
+
import tippy from 'tippy.js';
|
|
4
|
+
import { fromEvent, merge, Subject } from 'rxjs';
|
|
5
|
+
import { filter, switchMap, takeUntil } from 'rxjs/operators';
|
|
6
|
+
import { isComponent, isString, isTemplateRef } from '@ngneat/overview';
|
|
7
|
+
import { coerceCssPixelValue, dimensionsChanges, inView, normalizeClassName, observeVisibility, onlyTippyProps, overflowChanges, } from './utils';
|
|
8
|
+
import { TIPPY_CONFIG, TIPPY_REF } from './tippy.types';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@ngneat/overview";
|
|
11
|
+
export class TippyDirective {
|
|
12
|
+
set appendTo(appendTo) {
|
|
13
|
+
this.updateProps({ appendTo });
|
|
14
|
+
}
|
|
15
|
+
constructor(platformId, globalConfig, injector, viewService, vcr, zone, hostRef) {
|
|
16
|
+
this.platformId = platformId;
|
|
17
|
+
this.globalConfig = globalConfig;
|
|
18
|
+
this.injector = injector;
|
|
19
|
+
this.viewService = viewService;
|
|
20
|
+
this.vcr = vcr;
|
|
21
|
+
this.zone = zone;
|
|
22
|
+
this.hostRef = hostRef;
|
|
23
|
+
this.onlyTextOverflow = false;
|
|
24
|
+
this.useHostWidth = false;
|
|
25
|
+
this.hideOnEscape = false;
|
|
26
|
+
this.detectChangesComponent = true;
|
|
27
|
+
this.isVisible = false;
|
|
28
|
+
this.visible = new EventEmitter();
|
|
29
|
+
this.destroyed = new Subject();
|
|
30
|
+
this.enabled = true;
|
|
31
|
+
this.variationDefined = false;
|
|
32
|
+
/**
|
|
33
|
+
* We had use `visible` event emitter previously as a `takeUntil` subscriber in multiple places
|
|
34
|
+
* within the directive.
|
|
35
|
+
* This is for internal use only; thus we don't have to deal with the `visible` event emitter
|
|
36
|
+
* and trigger change detections only when the `visible` event is being listened outside
|
|
37
|
+
* in the template (`<button [tippy]="..." (visible)="..."></button>`).
|
|
38
|
+
*/
|
|
39
|
+
this.visibleInternal = new Subject();
|
|
40
|
+
}
|
|
41
|
+
ngOnChanges(changes) {
|
|
42
|
+
if (this.isServerSide)
|
|
43
|
+
return;
|
|
44
|
+
let props = Object.keys(changes).reduce((acc, change) => {
|
|
45
|
+
if (change === 'isVisible')
|
|
46
|
+
return acc;
|
|
47
|
+
acc[change] = changes[change].currentValue;
|
|
48
|
+
return acc;
|
|
49
|
+
}, {});
|
|
50
|
+
let variation;
|
|
51
|
+
if (isChanged('variation', changes)) {
|
|
52
|
+
variation = changes.variation.currentValue;
|
|
53
|
+
this.variationDefined = true;
|
|
54
|
+
}
|
|
55
|
+
else if (!this.variationDefined) {
|
|
56
|
+
variation = this.globalConfig.defaultVariation;
|
|
57
|
+
this.variationDefined = true;
|
|
58
|
+
}
|
|
59
|
+
if (variation) {
|
|
60
|
+
props = {
|
|
61
|
+
...this.globalConfig.variations[variation],
|
|
62
|
+
...props,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
if (isChanged('isEnabled', changes)) {
|
|
66
|
+
this.enabled = changes.isEnabled.currentValue;
|
|
67
|
+
this.setStatus();
|
|
68
|
+
}
|
|
69
|
+
if (isChanged('isVisible', changes)) {
|
|
70
|
+
this.isVisible ? this.show() : this.hide();
|
|
71
|
+
}
|
|
72
|
+
this.updateProps(props);
|
|
73
|
+
}
|
|
74
|
+
ngOnInit() {
|
|
75
|
+
if (this.useHostWidth) {
|
|
76
|
+
this.props.maxWidth = this.hostWidth;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
ngAfterViewInit() {
|
|
80
|
+
if (this.isServerSide)
|
|
81
|
+
return;
|
|
82
|
+
this.zone.runOutsideAngular(() => {
|
|
83
|
+
if (this.isLazy) {
|
|
84
|
+
if (this.onlyTextOverflow) {
|
|
85
|
+
inView(this.host)
|
|
86
|
+
.pipe(switchMap(() => overflowChanges(this.host)), takeUntil(this.destroyed))
|
|
87
|
+
.subscribe((isElementOverflow) => {
|
|
88
|
+
this.checkOverflow(isElementOverflow);
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
inView(this.host)
|
|
93
|
+
.pipe(takeUntil(this.destroyed))
|
|
94
|
+
.subscribe(() => {
|
|
95
|
+
this.createInstance();
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else if (this.onlyTextOverflow) {
|
|
100
|
+
overflowChanges(this.host)
|
|
101
|
+
.pipe(takeUntil(this.destroyed))
|
|
102
|
+
.subscribe((isElementOverflow) => {
|
|
103
|
+
this.checkOverflow(isElementOverflow);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
this.createInstance();
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
ngOnDestroy() {
|
|
112
|
+
this.destroyed.next();
|
|
113
|
+
this.instance?.destroy();
|
|
114
|
+
this.destroyView();
|
|
115
|
+
this.visibilityObserverCleanup?.();
|
|
116
|
+
}
|
|
117
|
+
destroyView() {
|
|
118
|
+
this.viewOptions$ = null;
|
|
119
|
+
this.viewRef?.destroy();
|
|
120
|
+
this.viewRef = null;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* This method is useful when you append to an element that you might remove from the DOM.
|
|
124
|
+
* In such cases we want to hide the tooltip and let it go through the destroy lifecycle.
|
|
125
|
+
* For example, if you have a grid row with an element that you toggle using the display CSS property on hover.
|
|
126
|
+
*/
|
|
127
|
+
observeHostVisibility() {
|
|
128
|
+
if (this.isServerSide)
|
|
129
|
+
return;
|
|
130
|
+
// We don't want to observe the host visibility if we are appending to the body.
|
|
131
|
+
if (this.props.appendTo && this.props.appendTo !== document.body) {
|
|
132
|
+
this.visibilityObserverCleanup?.();
|
|
133
|
+
return this.visibleInternal
|
|
134
|
+
.asObservable()
|
|
135
|
+
.pipe(takeUntil(this.destroyed))
|
|
136
|
+
.subscribe((isVisible) => {
|
|
137
|
+
if (isVisible) {
|
|
138
|
+
this.zone.runOutsideAngular(() => {
|
|
139
|
+
this.visibilityObserverCleanup = observeVisibility(this.instance.reference, () => {
|
|
140
|
+
this.hide();
|
|
141
|
+
// Because we have animation on the popper it doesn't close immediately doesn't trigger the `tpVisible` event.
|
|
142
|
+
// Tippy is relying on the transitionend event to trigger the `onHidden` callback.
|
|
143
|
+
// https://github.com/atomiks/tippyjs/blob/master/src/dom-utils.ts#L117
|
|
144
|
+
// This event never fires because the popper is removed from the DOM before the transition ends.
|
|
145
|
+
if (this.props.animation) {
|
|
146
|
+
this.onHidden();
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
this.visibilityObserverCleanup?.();
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
show() {
|
|
158
|
+
this.instance?.show();
|
|
159
|
+
}
|
|
160
|
+
hide() {
|
|
161
|
+
this.instance?.hide();
|
|
162
|
+
}
|
|
163
|
+
enable() {
|
|
164
|
+
this.instance?.enable();
|
|
165
|
+
}
|
|
166
|
+
disable() {
|
|
167
|
+
this.instance?.disable();
|
|
168
|
+
}
|
|
169
|
+
updateProps(props) {
|
|
170
|
+
this.setProps({ ...this.props, ...props });
|
|
171
|
+
}
|
|
172
|
+
setProps(props) {
|
|
173
|
+
this.props = props;
|
|
174
|
+
this.instance?.setProps(onlyTippyProps(props));
|
|
175
|
+
}
|
|
176
|
+
setStatus() {
|
|
177
|
+
this.enabled ? this.instance?.enable() : this.instance?.disable();
|
|
178
|
+
}
|
|
179
|
+
get host() {
|
|
180
|
+
return this.customHost || this.hostRef.nativeElement;
|
|
181
|
+
}
|
|
182
|
+
get hostWidth() {
|
|
183
|
+
return this.host.getBoundingClientRect().width;
|
|
184
|
+
}
|
|
185
|
+
createInstance() {
|
|
186
|
+
if (!this.content && !coerceBooleanInput(this.useTextContent)) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
this.zone.runOutsideAngular(() => {
|
|
190
|
+
this.instance = tippy(this.host, {
|
|
191
|
+
allowHTML: true,
|
|
192
|
+
appendTo: document.body,
|
|
193
|
+
...(this.globalConfig.zIndexGetter ? { zIndex: this.globalConfig.zIndexGetter() } : {}),
|
|
194
|
+
...onlyTippyProps(this.globalConfig),
|
|
195
|
+
...onlyTippyProps(this.props),
|
|
196
|
+
onMount: (instance) => {
|
|
197
|
+
this.isVisible = true;
|
|
198
|
+
this.visibleInternal.next(this.isVisible);
|
|
199
|
+
if (this.visible.observed) {
|
|
200
|
+
this.zone.run(() => this.visible.next(this.isVisible));
|
|
201
|
+
}
|
|
202
|
+
this.useHostWidth && this.listenToHostResize();
|
|
203
|
+
this.globalConfig.onMount?.(instance);
|
|
204
|
+
},
|
|
205
|
+
onCreate: (instance) => {
|
|
206
|
+
instance.popper.classList.add(`tippy-variation-${this.variation || this.globalConfig.defaultVariation}`);
|
|
207
|
+
if (this.className) {
|
|
208
|
+
for (const klass of normalizeClassName(this.className)) {
|
|
209
|
+
instance.popper.classList.add(klass);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
this.globalConfig.onCreate?.(instance);
|
|
213
|
+
if (this.isVisible === true) {
|
|
214
|
+
instance.show();
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
onShow: (instance) => {
|
|
218
|
+
instance.reference.setAttribute('data-tippy-open', '');
|
|
219
|
+
this.zone.run(() => {
|
|
220
|
+
const content = this.resolveContent(instance);
|
|
221
|
+
if (isString(content)) {
|
|
222
|
+
instance.setProps({ allowHTML: false });
|
|
223
|
+
if (!content?.trim()) {
|
|
224
|
+
this.disable();
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
this.enable();
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
instance.setContent(content);
|
|
231
|
+
this.hideOnEscape && this.handleEscapeButton();
|
|
232
|
+
});
|
|
233
|
+
if (this.useHostWidth) {
|
|
234
|
+
this.setInstanceWidth(instance, this.hostWidth);
|
|
235
|
+
}
|
|
236
|
+
else if (this.popperWidth) {
|
|
237
|
+
this.setInstanceWidth(instance, this.popperWidth);
|
|
238
|
+
}
|
|
239
|
+
this.globalConfig.onShow?.(instance);
|
|
240
|
+
},
|
|
241
|
+
onHide(instance) {
|
|
242
|
+
instance.reference.removeAttribute('data-tippy-open');
|
|
243
|
+
},
|
|
244
|
+
onHidden: (instance) => {
|
|
245
|
+
this.onHidden(instance);
|
|
246
|
+
},
|
|
247
|
+
});
|
|
248
|
+
this.setStatus();
|
|
249
|
+
this.setProps(this.props);
|
|
250
|
+
this.variation === 'contextMenu' && this.handleContextMenu();
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
resolveContent(instance) {
|
|
254
|
+
if (!this.viewOptions$ && !isString(this.content)) {
|
|
255
|
+
if (isComponent(this.content)) {
|
|
256
|
+
this.instance.data = this.data;
|
|
257
|
+
this.viewOptions$ = {
|
|
258
|
+
injector: Injector.create({
|
|
259
|
+
providers: [
|
|
260
|
+
{
|
|
261
|
+
provide: TIPPY_REF,
|
|
262
|
+
useValue: this.instance,
|
|
263
|
+
},
|
|
264
|
+
],
|
|
265
|
+
parent: this.injector,
|
|
266
|
+
}),
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
else if (isTemplateRef(this.content)) {
|
|
270
|
+
this.viewOptions$ = {
|
|
271
|
+
context: {
|
|
272
|
+
$implicit: this.hide.bind(this),
|
|
273
|
+
data: this.data,
|
|
274
|
+
},
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
this.viewRef = this.viewService.createView(this.content, {
|
|
279
|
+
vcr: this.vcr,
|
|
280
|
+
...this.viewOptions$,
|
|
281
|
+
});
|
|
282
|
+
// We need to call detectChanges for onPush components to update the content
|
|
283
|
+
if (this.detectChangesComponent && isComponent(this.content)) {
|
|
284
|
+
this.viewRef.detectChanges();
|
|
285
|
+
}
|
|
286
|
+
let content = this.viewRef.getElement();
|
|
287
|
+
if (coerceBooleanInput(this.useTextContent)) {
|
|
288
|
+
content = instance.reference.textContent;
|
|
289
|
+
}
|
|
290
|
+
if (isString(content) && this.globalConfig.beforeRender) {
|
|
291
|
+
content = this.globalConfig.beforeRender(content);
|
|
292
|
+
}
|
|
293
|
+
return content;
|
|
294
|
+
}
|
|
295
|
+
handleContextMenu() {
|
|
296
|
+
fromEvent(this.host, 'contextmenu')
|
|
297
|
+
.pipe(takeUntil(this.destroyed))
|
|
298
|
+
.subscribe((event) => {
|
|
299
|
+
event.preventDefault();
|
|
300
|
+
this.instance.setProps({
|
|
301
|
+
getReferenceClientRect: () => ({
|
|
302
|
+
width: 0,
|
|
303
|
+
height: 0,
|
|
304
|
+
top: event.clientY,
|
|
305
|
+
bottom: event.clientY,
|
|
306
|
+
left: event.clientX,
|
|
307
|
+
right: event.clientX,
|
|
308
|
+
}),
|
|
309
|
+
});
|
|
310
|
+
this.instance.show();
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
handleEscapeButton() {
|
|
314
|
+
this.zone.runOutsideAngular(() => {
|
|
315
|
+
fromEvent(document.body, 'keydown')
|
|
316
|
+
.pipe(filter(({ code }) => code === 'Escape'), takeUntil(merge(this.destroyed, this.visibleInternal.pipe(filter((v) => !v)))))
|
|
317
|
+
.subscribe(() => this.hide());
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
checkOverflow(isElementOverflow) {
|
|
321
|
+
if (isElementOverflow) {
|
|
322
|
+
if (!this.instance) {
|
|
323
|
+
this.createInstance();
|
|
324
|
+
}
|
|
325
|
+
else {
|
|
326
|
+
this.instance.enable();
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
else {
|
|
330
|
+
this.instance?.disable();
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
listenToHostResize() {
|
|
334
|
+
dimensionsChanges(this.host)
|
|
335
|
+
.pipe(takeUntil(merge(this.destroyed, this.visibleInternal)))
|
|
336
|
+
.subscribe(() => {
|
|
337
|
+
this.setInstanceWidth(this.instance, this.hostWidth);
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
setInstanceWidth(instance, width) {
|
|
341
|
+
const inPixels = coerceCssPixelValue(width);
|
|
342
|
+
instance.popper.style.width = inPixels;
|
|
343
|
+
instance.popper.style.maxWidth = inPixels;
|
|
344
|
+
instance.popper.firstElementChild.style.maxWidth = inPixels;
|
|
345
|
+
}
|
|
346
|
+
get isServerSide() {
|
|
347
|
+
return isPlatformServer(this.platformId);
|
|
348
|
+
}
|
|
349
|
+
onHidden(instance = this.instance) {
|
|
350
|
+
this.destroyView();
|
|
351
|
+
this.isVisible = false;
|
|
352
|
+
this.visibleInternal.next(this.isVisible);
|
|
353
|
+
if (this.visible.observed) {
|
|
354
|
+
this.zone.run(() => this.visible.next(this.isVisible));
|
|
355
|
+
}
|
|
356
|
+
this.globalConfig.onHidden?.(instance);
|
|
357
|
+
}
|
|
358
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: TippyDirective, deps: [{ token: PLATFORM_ID }, { token: TIPPY_CONFIG }, { token: i0.Injector }, { token: i1.ViewService }, { token: i0.ViewContainerRef }, { token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
359
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.3", type: TippyDirective, isStandalone: true, selector: "[tp]", inputs: { content: ["tp", "content"], appendTo: ["tpAppendTo", "appendTo"], delay: ["tpDelay", "delay"], duration: ["tpDuration", "duration"], hideOnClick: ["tpHideOnClick", "hideOnClick"], interactive: ["tpInteractive", "interactive"], interactiveBorder: ["tpInteractiveBorder", "interactiveBorder"], maxWidth: ["tpMaxWidth", "maxWidth"], offset: ["tpOffset", "offset"], placement: ["tpPlacement", "placement"], popperOptions: ["tpPopperOptions", "popperOptions"], showOnCreate: ["tpShowOnCreate", "showOnCreate"], trigger: ["tpTrigger", "trigger"], triggerTarget: ["tpTriggerTarget", "triggerTarget"], zIndex: ["tpZIndex", "zIndex"], animation: ["tpAnimation", "animation"], useTextContent: ["tpUseTextContent", "useTextContent"], isLazy: ["tpIsLazy", "isLazy"], variation: ["tpVariation", "variation"], isEnabled: ["tpIsEnabled", "isEnabled"], className: ["tpClassName", "className"], onlyTextOverflow: ["tpOnlyTextOverflow", "onlyTextOverflow"], data: ["tpData", "data"], useHostWidth: ["tpUseHostWidth", "useHostWidth"], hideOnEscape: ["tpHideOnEscape", "hideOnEscape"], detectChangesComponent: ["tpDetectChangesComponent", "detectChangesComponent"], popperWidth: ["tpPopperWidth", "popperWidth"], customHost: ["tpHost", "customHost"], isVisible: ["tpIsVisible", "isVisible"] }, outputs: { visible: "tpVisible" }, exportAs: ["tippy"], usesOnChanges: true, ngImport: i0 }); }
|
|
360
|
+
}
|
|
361
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: TippyDirective, decorators: [{
|
|
362
|
+
type: Directive,
|
|
363
|
+
args: [{
|
|
364
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
365
|
+
selector: '[tp]',
|
|
366
|
+
exportAs: 'tippy',
|
|
367
|
+
standalone: true,
|
|
368
|
+
}]
|
|
369
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
370
|
+
type: Inject,
|
|
371
|
+
args: [PLATFORM_ID]
|
|
372
|
+
}] }, { type: undefined, decorators: [{
|
|
373
|
+
type: Inject,
|
|
374
|
+
args: [TIPPY_CONFIG]
|
|
375
|
+
}] }, { type: i0.Injector }, { type: i1.ViewService }, { type: i0.ViewContainerRef }, { type: i0.NgZone }, { type: i0.ElementRef }]; }, propDecorators: { content: [{
|
|
376
|
+
type: Input,
|
|
377
|
+
args: ['tp']
|
|
378
|
+
}], appendTo: [{
|
|
379
|
+
type: Input,
|
|
380
|
+
args: ['tpAppendTo']
|
|
381
|
+
}], delay: [{
|
|
382
|
+
type: Input,
|
|
383
|
+
args: ['tpDelay']
|
|
384
|
+
}], duration: [{
|
|
385
|
+
type: Input,
|
|
386
|
+
args: ['tpDuration']
|
|
387
|
+
}], hideOnClick: [{
|
|
388
|
+
type: Input,
|
|
389
|
+
args: ['tpHideOnClick']
|
|
390
|
+
}], interactive: [{
|
|
391
|
+
type: Input,
|
|
392
|
+
args: ['tpInteractive']
|
|
393
|
+
}], interactiveBorder: [{
|
|
394
|
+
type: Input,
|
|
395
|
+
args: ['tpInteractiveBorder']
|
|
396
|
+
}], maxWidth: [{
|
|
397
|
+
type: Input,
|
|
398
|
+
args: ['tpMaxWidth']
|
|
399
|
+
}], offset: [{
|
|
400
|
+
type: Input,
|
|
401
|
+
args: ['tpOffset']
|
|
402
|
+
}], placement: [{
|
|
403
|
+
type: Input,
|
|
404
|
+
args: ['tpPlacement']
|
|
405
|
+
}], popperOptions: [{
|
|
406
|
+
type: Input,
|
|
407
|
+
args: ['tpPopperOptions']
|
|
408
|
+
}], showOnCreate: [{
|
|
409
|
+
type: Input,
|
|
410
|
+
args: ['tpShowOnCreate']
|
|
411
|
+
}], trigger: [{
|
|
412
|
+
type: Input,
|
|
413
|
+
args: ['tpTrigger']
|
|
414
|
+
}], triggerTarget: [{
|
|
415
|
+
type: Input,
|
|
416
|
+
args: ['tpTriggerTarget']
|
|
417
|
+
}], zIndex: [{
|
|
418
|
+
type: Input,
|
|
419
|
+
args: ['tpZIndex']
|
|
420
|
+
}], animation: [{
|
|
421
|
+
type: Input,
|
|
422
|
+
args: ['tpAnimation']
|
|
423
|
+
}], useTextContent: [{
|
|
424
|
+
type: Input,
|
|
425
|
+
args: ['tpUseTextContent']
|
|
426
|
+
}], isLazy: [{
|
|
427
|
+
type: Input,
|
|
428
|
+
args: ['tpIsLazy']
|
|
429
|
+
}], variation: [{
|
|
430
|
+
type: Input,
|
|
431
|
+
args: ['tpVariation']
|
|
432
|
+
}], isEnabled: [{
|
|
433
|
+
type: Input,
|
|
434
|
+
args: ['tpIsEnabled']
|
|
435
|
+
}], className: [{
|
|
436
|
+
type: Input,
|
|
437
|
+
args: ['tpClassName']
|
|
438
|
+
}], onlyTextOverflow: [{
|
|
439
|
+
type: Input,
|
|
440
|
+
args: ['tpOnlyTextOverflow']
|
|
441
|
+
}], data: [{
|
|
442
|
+
type: Input,
|
|
443
|
+
args: ['tpData']
|
|
444
|
+
}], useHostWidth: [{
|
|
445
|
+
type: Input,
|
|
446
|
+
args: ['tpUseHostWidth']
|
|
447
|
+
}], hideOnEscape: [{
|
|
448
|
+
type: Input,
|
|
449
|
+
args: ['tpHideOnEscape']
|
|
450
|
+
}], detectChangesComponent: [{
|
|
451
|
+
type: Input,
|
|
452
|
+
args: ['tpDetectChangesComponent']
|
|
453
|
+
}], popperWidth: [{
|
|
454
|
+
type: Input,
|
|
455
|
+
args: ['tpPopperWidth']
|
|
456
|
+
}], customHost: [{
|
|
457
|
+
type: Input,
|
|
458
|
+
args: ['tpHost']
|
|
459
|
+
}], isVisible: [{
|
|
460
|
+
type: Input,
|
|
461
|
+
args: ['tpIsVisible']
|
|
462
|
+
}], visible: [{
|
|
463
|
+
type: Output,
|
|
464
|
+
args: ['tpVisible']
|
|
465
|
+
}] } });
|
|
466
|
+
function isChanged(key, changes) {
|
|
467
|
+
return key in changes;
|
|
468
|
+
}
|
|
469
|
+
export function coerceBooleanInput(value) {
|
|
470
|
+
return value != null && `${value}` !== 'false';
|
|
471
|
+
}
|
|
472
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwcHkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmduZWF0L2hlbGlwb3BwZXIvc3JjL2xpYi90aXBweS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBS0wsTUFBTSxFQUNOLFdBQVcsR0FFWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEtBQW1CLE1BQU0sVUFBVSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQVcsV0FBVyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQXFDLE1BQU0sa0JBQWtCLENBQUM7QUFFcEgsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsTUFBTSxFQUNOLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGVBQWUsR0FDaEIsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFhLFlBQVksRUFBRSxTQUFTLEVBQTBDLE1BQU0sZUFBZSxDQUFDOzs7QUFRM0csTUFBTSxPQUFPLGNBQWM7SUFLekIsSUFBeUIsUUFBUSxDQUFDLFFBQWdDO1FBQ2hFLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFrREQsWUFDaUMsVUFBa0IsRUFDakIsWUFBeUIsRUFDL0MsUUFBa0IsRUFDbEIsV0FBd0IsRUFDeEIsR0FBcUIsRUFDckIsSUFBWSxFQUNaLE9BQW1CO1FBTkUs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QW1CLEdBQVksRUFBRSxPQUFVO0lBQzNELE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQVU7SUFDM0MsT0FBTyxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsS0FBSyxFQUFFLEtBQUssT0FBTyxDQUFDO0FBQ2pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBQTEFURk9STV9JRCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB0aXBweSwgeyBJbnN0YW5jZSB9IGZyb20gJ3RpcHB5LmpzJztcbmltcG9ydCB7IGZyb21FdmVudCwgbWVyZ2UsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb250ZW50LCBpc0NvbXBvbmVudCwgaXNTdHJpbmcsIGlzVGVtcGxhdGVSZWYsIFZpZXdPcHRpb25zLCBWaWV3UmVmLCBWaWV3U2VydmljZSB9IGZyb20gJ0BuZ25lYXQvb3ZlcnZpZXcnO1xuXG5pbXBvcnQge1xuICBjb2VyY2VDc3NQaXhlbFZhbHVlLFxuICBkaW1lbnNpb25zQ2hhbmdlcyxcbiAgaW5WaWV3LFxuICBub3JtYWxpemVDbGFzc05hbWUsXG4gIG9ic2VydmVWaXNpYmlsaXR5LFxuICBvbmx5VGlwcHlQcm9wcyxcbiAgb3ZlcmZsb3dDaGFuZ2VzLFxufSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IE5nQ2hhbmdlcywgVElQUFlfQ09ORklHLCBUSVBQWV9SRUYsIFRpcHB5Q29uZmlnLCBUaXBweUluc3RhbmNlLCBUaXBweVByb3BzIH0gZnJvbSAnLi90aXBweS50eXBlcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1t0cF0nLFxuICBleHBvcnRBczogJ3RpcHB5JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgVGlwcHlEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3VzZVRleHRDb250ZW50OiBib29sZWFuIHwgJyc7XG5cbiAgQElucHV0KCd0cCcpIGNvbnRlbnQ6IENvbnRlbnQgfCB1bmRlZmluZWQgfCBudWxsO1xuXG4gIEBJbnB1dCgndHBBcHBlbmRUbycpIHNldCBhcHBlbmRUbyhhcHBlbmRUbzogVGlwcHlQcm9wc1snYXBwZW5kVG8nXSkge1xuICAgIHRoaXMudXBkYXRlUHJvcHMoeyBhcHBlbmRUbyB9KTtcbiAgfVxuXG4gIEBJbnB1dCgndHBEZWxheScpIGRlbGF5OiBUaXBweVByb3BzWydkZWxheSddO1xuICBASW5wdXQoJ3RwRHVyYXRpb24nKSBkdXJhdGlvbjogVGlwcHlQcm9wc1snZHVyYXRpb24nXTtcbiAgQElucHV0KCd0cEhpZGVPbkNsaWNrJykgaGlkZU9uQ2xpY2s6IFRpcHB5UHJvcHNbJ2hpZGVPbkNsaWNrJ107XG4gIEBJbnB1dCgndHBJbnRlcmFjdGl2ZScpIGludGVyYWN0aXZlOiBUaXBweVByb3BzWydpbnRlcmFjdGl2ZSddO1xuICBASW5wdXQoJ3RwSW50ZXJhY3RpdmVCb3JkZXInKSBpbnRlcmFjdGl2ZUJvcmRlcjogVGlwcHlQcm9wc1snaW50ZXJhY3RpdmVCb3JkZXInXTtcbiAgQElucHV0KCd0cE1heFdpZHRoJykgbWF4V2lkdGg6IFRpcHB5UHJvcHNbJ21heFdpZHRoJ107XG4gIEBJbnB1dCgndHBPZmZzZXQnKSBvZmZzZXQ6IFRpcHB5UHJvcHNbJ29mZnNldCddO1xuICBASW5wdXQoJ3RwUGxhY2VtZW50JykgcGxhY2VtZW50OiBUaXBweVByb3BzWydwbGFjZW1lbnQnXTtcbiAgQElucHV0KCd0cFBvcHBlck9wdGlvbnMnKSBwb3BwZXJPcHRpb25zOiBUaXBweVByb3BzWydwb3BwZXJPcHRpb25zJ107XG4gIEBJbnB1dCgndHBTaG93T25DcmVhdGUnKSBzaG93T25DcmVhdGU6IFRpcHB5UHJvcHNbJ3Nob3dPbkNyZWF0ZSddO1xuICBASW5wdXQoJ3RwVHJpZ2dlcicpIHRyaWdnZXI6IFRpcHB5UHJvcHNbJ3RyaWdnZXInXTtcbiAgQElucHV0KCd0cFRyaWdnZXJUYXJnZXQnKSB0cmlnZ2VyVGFyZ2V0OiBUaXBweVByb3BzWyd0cmlnZ2VyVGFyZ2V0J107XG4gIEBJbnB1dCgndHBaSW5kZXgnKSB6SW5kZXg6IFRpcHB5UHJvcHNbJ3pJbmRleCddO1xuICBASW5wdXQoJ3RwQW5pbWF0aW9uJykgYW5pbWF0aW9uOiBUaXBweVByb3BzWydhbmltYXRpb24nXTtcbiAgQElucHV0KCd0cFVzZVRleHRDb250ZW50JykgdXNlVGV4dENvbnRlbnQ6IGJvb2xlYW47XG4gIEBJbnB1dCgndHBJc0xhenknKSBpc0xhenk6IGJvb2xlYW47XG4gIEBJbnB1dCgndHBWYXJpYXRpb24nKSB2YXJpYXRpb246IHN0cmluZztcbiAgQElucHV0KCd0cElzRW5hYmxlZCcpIGlzRW5hYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCd0cENsYXNzTmFtZScpIGNsYXNzTmFtZTogc3RyaW5nIHwgc3RyaW5nW107XG4gIEBJbnB1dCgndHBPbmx5VGV4dE92ZXJmbG93Jykgb25seVRleHRPdmVyZmxvdyA9IGZhbHNlO1xuICBASW5wdXQoJ3RwRGF0YScpIGRhdGE6IGFueTtcbiAgQElucHV0KCd0cFVzZUhvc3RXaWR0aCcpIHVzZUhvc3RXaWR0aCA9IGZhbHNlO1xuICBASW5wdXQoJ3RwSGlkZU9uRXNjYXBlJykgaGlkZU9uRXNjYXBlID0gZmFsc2U7XG4gIEBJbnB1dCgndHBEZXRlY3RDaGFuZ2VzQ29tcG9uZW50JykgZGV0ZWN0Q2hhbmdlc0NvbXBvbmVudCA9IHRydWU7XG4gIEBJbnB1dCgndHBQb3BwZXJXaWR0aCcpIHBvcHBlcldpZHRoOiBudW1iZXIgfCBzdHJpbmc7XG4gIEBJbnB1dCgndHBIb3N0JykgY3VzdG9tSG9zdDogSFRNTEVsZW1lbnQ7XG4gIEBJbnB1dCgndHBJc1Zpc2libGUnKSBpc1Zpc2libGUgPSBmYWxzZTtcblxuICBAT3V0cHV0KCd0cFZpc2libGUnKSB2aXNpYmxlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHByb3RlY3RlZCBpbnN0YW5jZTogVGlwcHlJbnN0YW5jZTtcbiAgcHJvdGVjdGVkIHZpZXdSZWY6IFZpZXdSZWY7XG4gIHByb3RlY3RlZCBkZXN0cm95ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcm90ZWN0ZWQgcHJvcHM6IFBhcnRpYWw8VGlwcHlDb25maWc+O1xuICBwcm90ZWN0ZWQgZW5hYmxlZCA9IHRydWU7XG4gIHByb3RlY3RlZCB2YXJpYXRpb25EZWZpbmVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCB2aWV3T3B0aW9ucyQ6IFZpZXdPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBXZSBoYWQgdXNlIGB2aXNpYmxlYCBldmVudCBlbWl0dGVyIHByZXZpb3VzbHkgYXMgYSBgdGFrZVVudGlsYCBzdWJzY3JpYmVyIGluIG11bHRpcGxlIHBsYWNlc1xuICAgKiB3aXRoaW4gdGhlIGRpcmVjdGl2ZS5cbiAgICogVGhpcyBpcyBmb3IgaW50ZXJuYWwgdXNlIG9ubHk7IHRodXMgd2UgZG9uJ3QgaGF2ZSB0byBkZWFsIHdpdGggdGhlIGB2aXNpYmxlYCBldmVudCBlbWl0dGVyXG4gICAqIGFuZCB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb25zIG9ubHkgd2hlbiB0aGUgYHZpc2libGVgIGV2ZW50IGlzIGJlaW5nIGxpc3RlbmVkIG91dHNpZGVcbiAgICogaW4gdGhlIHRlbXBsYXRlIChgPGJ1dHRvbiBbdGlwcHldPVwiLi4uXCIgKHZpc2libGUpPVwiLi4uXCI+PC9idXR0b24+YCkuXG4gICAqL1xuICBwcm90ZWN0ZWQgdmlzaWJsZUludGVybmFsID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJpdmF0ZSB2aXNpYmlsaXR5T2JzZXJ2ZXJDbGVhbnVwOiAoKSA9PiB2b2lkIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByb3RlY3RlZCBwbGF0Zm9ybUlkOiBzdHJpbmcsXG4gICAgQEluamVjdChUSVBQWV9DT05GSUcpIHByb3RlY3RlZCBnbG9iYWxDb25maWc6IFRpcHB5Q29uZmlnLFxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJvdGVjdGVkIHZpZXdTZXJ2aWNlOiBWaWV3U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByb3RlY3RlZCB6b25lOiBOZ1pvbmUsXG4gICAgcHJvdGVjdGVkIGhvc3RSZWY6IEVsZW1lbnRSZWZcbiAgKSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IE5nQ2hhbmdlczxUaXBweURpcmVjdGl2ZT4pIHtcbiAgICBpZiAodGhpcy5pc1NlcnZlclNpZGUpIHJldHVybjtcblxuICAgIGxldCBwcm9wczogUGFydGlhbDxUaXBweUNvbmZpZz4gPSBPYmplY3Qua2V5cyhjaGFuZ2VzKS5yZWR1Y2UoKGFjYywgY2hhbmdlKSA9PiB7XG4gICAgICBpZiAoY2hhbmdlID09PSAnaXNWaXNpYmxlJykgcmV0dXJuIGFjYztcblxuICAgICAgYWNjW2NoYW5nZV0gPSBjaGFuZ2VzW2NoYW5nZV0uY3VycmVudFZhbHVlO1xuXG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KTtcblxuICAgIGxldCB2YXJpYXRpb246IHN0cmluZztcblxuICAgIGlmIChpc0NoYW5nZWQ8TmdDaGFuZ2VzPFRpcHB5RGlyZWN0aXZlPj4oJ3ZhcmlhdGlvbicsIGNoYW5nZXMpKSB7XG4gICAgICB2YXJpYXRpb24gPSBjaGFuZ2VzLnZhcmlhdGlvbi5jdXJyZW50VmFsdWU7XG4gICAgICB0aGlzLnZhcmlhdGlvbkRlZmluZWQgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMudmFyaWF0aW9uRGVmaW5lZCkge1xuICAgICAgdmFyaWF0aW9uID0gdGhpcy5nbG9iYWxDb25maWcuZGVmYXVsdFZhcmlhdGlvbjtcbiAgICAgIHRoaXMudmFyaWF0aW9uRGVmaW5lZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHZhcmlhdGlvbikge1xuICAgICAgcHJvcHMgPSB7XG4gICAgICAgIC4uLnRoaXMuZ2xvYmFsQ29uZmlnLnZhcmlhdGlvbnNbdmFyaWF0aW9uXSxcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChpc0NoYW5nZWQ8TmdDaGFuZ2VzPFRpcHB5RGlyZWN0aXZlPj4oJ2lzRW5hYmxlZCcsIGNoYW5nZXMpKSB7XG4gICAgICB0aGlzLmVuYWJsZWQgPSBjaGFuZ2VzLmlzRW5hYmxlZC5jdXJyZW50VmFsdWU7XG4gICAgICB0aGlzLnNldFN0YXR1cygpO1xuICAgIH1cblxuICAgIGlmIChpc0NoYW5nZWQ8TmdDaGFuZ2VzPFRpcHB5RGlyZWN0aXZlPj4oJ2lzVmlzaWJsZScsIGNoYW5nZXMpKSB7XG4gICAgICB0aGlzLmlzVmlzaWJsZSA/IHRoaXMuc2hvdygpIDogdGhpcy5oaWRlKCk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVQcm9wcyhwcm9wcyk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy51c2VIb3N0V2lkdGgpIHtcbiAgICAgIHRoaXMucHJvcHMubWF4V2lkdGggPSB0aGlzLmhvc3RXaWR0aDtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMuaXNTZXJ2ZXJTaWRlKSByZXR1cm47XG5cbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNMYXp5KSB7XG4gICAgICAgIGlmICh0aGlzLm9ubHlUZXh0T3ZlcmZsb3cpIHtcbiAgICAgICAgICBpblZpZXcodGhpcy5ob3N0KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiBvdmVyZmxvd0NoYW5nZXModGhpcy5ob3N0KSksXG4gICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGlzRWxlbWVudE92ZXJmbG93KSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tPdmVyZmxvdyhpc0VsZW1lbnRPdmVyZmxvdyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpblZpZXcodGhpcy5ob3N0KVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUluc3RhbmNlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0aGlzLm9ubHlUZXh0T3ZlcmZsb3cpIHtcbiAgICAgICAgb3ZlcmZsb3dDaGFuZ2VzKHRoaXMuaG9zdClcbiAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKGlzRWxlbWVudE92ZXJmbG93KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrT3ZlcmZsb3coaXNFbGVtZW50T3ZlcmZsb3cpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jcmVhdGVJbnN0YW5jZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xuICAgIHRoaXMuaW5zdGFuY2U/LmRlc3Ryb3koKTtcbiAgICB0aGlzLmRlc3Ryb3lWaWV3KCk7XG4gICAgdGhpcy52aXNpYmlsaXR5T2JzZXJ2ZXJDbGVhbnVwPy4oKTtcbiAgfVxuXG4gIGRlc3Ryb3lWaWV3KCkge1xuICAgIHRoaXMudmlld09wdGlvbnMkID0gbnVsbDtcbiAgICB0aGlzLnZpZXdSZWY/LmRlc3Ryb3koKTtcbiAgICB0aGlzLnZpZXdSZWYgPSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bCB3aGVuIHlvdSBhcHBlbmQgdG8gYW4gZWxlbWVudCB0aGF0IHlvdSBtaWdodCByZW1vdmUgZnJvbSB0aGUgRE9NLlxuICAgKiBJbiBzdWNoIGNhc2VzIHdlIHdhbnQgdG8gaGlkZSB0aGUgdG9vbHRpcCBhbmQgbGV0IGl0IGdvIHRocm91Z2ggdGhlIGRlc3Ryb3kgbGlmZWN5Y2xlLlxuICAgKiBGb3IgZXhhbXBsZSwgaWYgeW91IGhhdmUgYSBncmlkIHJvdyB3aXRoIGFuIGVsZW1lbnQgdGhhdCB5b3UgdG9nZ2xlIHVzaW5nIHRoZSBkaXNwbGF5IENTUyBwcm9wZXJ0eSBvbiBob3Zlci5cbiAgICovXG4gIG9ic2VydmVIb3N0VmlzaWJpbGl0eSgpIHtcbiAgICBpZiAodGhpcy5pc1NlcnZlclNpZGUpIHJldHVybjtcbiAgICAvLyBXZSBkb24ndCB3YW50IHRvIG9ic2VydmUgdGhlIGhvc3QgdmlzaWJpbGl0eSBpZiB3ZSBhcmUgYXBwZW5kaW5nIHRvIHRoZSBib2R5LlxuICAgIGlmICh0aGlzLnByb3BzLmFwcGVuZFRvICYmIHRoaXMucHJvcHMuYXBwZW5kVG8gIT09IGRvY3VtZW50LmJvZHkpIHtcbiAgICAgIHRoaXMudmlzaWJpbGl0eU9ic2VydmVyQ2xlYW51cD8uKCk7XG4gICAgICByZXR1cm4gdGhpcy52aXNpYmxlSW50ZXJuYWxcbiAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGlzVmlzaWJsZSkgPT4ge1xuICAgICAgICAgIGlmIChpc1Zpc2libGUpIHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eU9ic2VydmVyQ2xlYW51cCA9IG9ic2VydmVWaXNpYmlsaXR5KHRoaXMuaW5zdGFuY2UucmVmZXJlbmNlLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgLy8gQmVjYXVzZSB3ZSBoYXZlIGFuaW1hdGlvbiBvbiB0aGUgcG9wcGVyIGl0IGRvZXNuJ3QgY2xvc2UgaW1tZWRpYXRlbHkgZG9lc24ndCB0cmlnZ2VyIHRoZSBgdHBWaXNpYmxlYCBldmVudC5cbiAgICAgICAgICAgICAgICAvLyBUaXBweSBpcyByZWx5aW5nIG9uIHRoZSB0cmFuc2l0aW9uZW5kIGV2ZW50IHRvIHRyaWdnZXIgdGhlIGBvbkhpZGRlbmAgY2FsbGJhY2suXG4gICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2F0b21pa3MvdGlwcHlqcy9ibG9iL21hc3Rlci9zcmMvZG9tLXV0aWxzLnRzI0wxMTdcbiAgICAgICAgICAgICAgICAvLyBUaGlzIGV2ZW50IG5ldmVyIGZpcmVzIGJlY2F1c2UgdGhlIHBvcHBlciBpcyByZW1vdmVkIGZyb20gdGhlIERPTSBiZWZvcmUgdGhlIHRyYW5zaXRpb24gZW5kcy5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5hbmltYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMub25IaWRkZW4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eU9ic2VydmVyQ2xlYW51cD8uKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBzaG93KCkge1xuICAgIHRoaXMuaW5zdGFuY2U/LnNob3coKTtcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgdGhpcy5pbnN0YW5jZT8uaGlkZSgpO1xuICB9XG5cbiAgZW5hYmxlKCkge1xuICAgIHRoaXMuaW5zdGFuY2U/LmVuYWJsZSgpO1xuICB9XG5cbiAgZGlzYWJsZSgpIHtcbiAgICB0aGlzLmluc3RhbmNlPy5kaXNhYmxlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlUHJvcHMocHJvcHM6IFBhcnRpYWw8VGlwcHlDb25maWc+KSB7XG4gICAgdGhpcy5zZXRQcm9wcyh7IC4uLnRoaXMucHJvcHMsIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldFByb3BzKHByb3BzOiBQYXJ0aWFsPFRpcHB5Q29uZmlnPikge1xuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgICB0aGlzLmluc3RhbmNlPy5zZXRQcm9wcyhvbmx5VGlwcHlQcm9wcyhwcm9wcykpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldFN0YXR1cygpIHtcbiAgICB0aGlzLmVuYWJsZWQgPyB0aGlzLmluc3RhbmNlPy5lbmFibGUoKSA6IHRoaXMuaW5zdGFuY2U/LmRpc2FibGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgaG9zdCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuY3VzdG9tSG9zdCB8fCB0aGlzLmhvc3RSZWYubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgaG9zdFdpZHRoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVJbnN0YW5jZSgpIHtcbiAgICBpZiAoIXRoaXMuY29udGVudCAmJiAhY29lcmNlQm9vbGVhbklucHV0KHRoaXMudXNlVGV4dENvbnRlbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuaW5zdGFuY2UgPSB0aXBweSh0aGlzLmhvc3QsIHtcbiAgICAgICAgYWxsb3dIVE1MOiB0cnVlLFxuICAgICAgICBhcHBlbmRUbzogZG9jdW1lbnQuYm9keSxcbiAgICAgICAgLi4uKHRoaXMuZ2xvYmFsQ29uZmlnLnpJbmRleEdldHRlciA/IHsgekluZGV4OiB0aGlzLmdsb2JhbENvbmZpZy56SW5kZXhHZXR0ZXIoKSB9IDoge30pLFxuICAgICAgICAuLi5vbmx5VGlwcHlQcm9wcyh0aGlzLmdsb2JhbENvbmZpZyksXG4gICAgICAgIC4uLm9ubHlUaXBweVByb3BzKHRoaXMucHJvcHMpLFxuICAgICAgICBvbk1vdW50OiAoaW5zdGFuY2UpID0+IHtcbiAgICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IHRydWU7XG4gICAgICAgICAgdGhpcy52aXNpYmxlSW50ZXJuYWwubmV4dCh0aGlzLmlzVmlzaWJsZSk7XG4gICAgICAgICAgaWYgKHRoaXMudmlzaWJsZS5vYnNlcnZlZCkge1xuICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLnZpc2libGUubmV4dCh0aGlzLmlzVmlzaWJsZSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnVzZUhvc3RXaWR0aCAmJiB0aGlzLmxpc3RlblRvSG9zdFJlc2l6ZSgpO1xuICAgICAgICAgIHRoaXMuZ2xvYmFsQ29uZmlnLm9uTW91bnQ/LihpbnN0YW5jZSk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uQ3JlYXRlOiAoaW5zdGFuY2UpID0+IHtcbiAgICAgICAgICBpbnN0YW5jZS5wb3BwZXIuY2xhc3NMaXN0LmFkZChgdGlwcHktdmFyaWF0aW9uLSR7dGhpcy52YXJpYXRpb24gfHwgdGhpcy5nbG9iYWxDb25maWcuZGVmYXVsdFZhcmlhdGlvbn1gKTtcbiAgICAgICAgICBpZiAodGhpcy5jbGFzc05hbWUpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2xhc3Mgb2Ygbm9ybWFsaXplQ2xhc3NOYW1lKHRoaXMuY2xhc3NOYW1lKSkge1xuICAgICAgICAgICAgICBpbnN0YW5jZS5wb3BwZXIuY2xhc3NMaXN0LmFkZChrbGFzcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuZ2xvYmFsQ29uZmlnLm9uQ3JlYXRlPy4oaW5zdGFuY2UpO1xuICAgICAgICAgIGlmICh0aGlzLmlzVmlzaWJsZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgaW5zdGFuY2Uuc2hvdygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgb25TaG93OiAoaW5zdGFuY2UpID0+IHtcbiAgICAgICAgICBpbnN0YW5jZS5yZWZlcmVuY2Uuc2V0QXR0cmlidXRlKCdkYXRhLXRpcHB5LW9wZW4nLCAnJyk7XG4gICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb250ZW50ID0gdGhpcy5yZXNvbHZlQ29udGVudChpbnN0YW5jZSk7XG4gICAgICAgICAgICBpZiAoaXNTdHJpbmcoY29udGVudCkpIHtcbiAgICAgICAgICAgICAgaW5zdGFuY2Uuc2V0UHJvcHMoeyBhbGxvd0hUTUw6IGZhbHNlIH0pO1xuXG4gICAgICAgICAgICAgIGlmICghY29udGVudD8udHJpbSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlKCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbmFibGUoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbnN0YW5jZS5zZXRDb250ZW50KGNvbnRlbnQpO1xuICAgICAgICAgICAgdGhpcy5oaWRlT25Fc2NhcGUgJiYgdGhpcy5oYW5kbGVFc2NhcGVCdXR0b24oKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAodGhpcy51c2VIb3N0V2lkdGgpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0SW5zdGFuY2VXaWR0aChpbnN0YW5jZSwgdGhpcy5ob3N0V2lkdGgpO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5wb3BwZXJXaWR0aCkge1xuICAgICAgICAgICAgdGhpcy5zZXRJbnN0YW5jZVdpZHRoKGluc3RhbmNlLCB0aGlzLnBvcHBlcldpZHRoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5nbG9iYWxDb25maWcub25TaG93Py4oaW5zdGFuY2UpO1xuICAgICAgICB9LFxuICAgICAgICBvbkhpZGUoaW5zdGFuY2UpIHtcbiAgICAgICAgICBpbnN0YW5jZS5yZWZlcmVuY2UucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXRpcHB5LW9wZW4nKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25IaWRkZW46IChpbnN0YW5jZSkgPT4ge1xuICAgICAgICAgIHRoaXMub25IaWRkZW4oaW5zdGFuY2UpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuc2V0U3RhdHVzKCk7XG4gICAgICB0aGlzLnNldFByb3BzKHRoaXMucHJvcHMpO1xuXG4gICAgICB0aGlzLnZhcmlhdGlvbiA9PT0gJ2NvbnRleHRNZW51JyAmJiB0aGlzLmhhbmRsZUNvbnRleHRNZW51KCk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVzb2x2ZUNvbnRlbnQoaW5zdGFuY2U6IFRpcHB5SW5zdGFuY2UpIHtcbiAgICBpZiAoIXRoaXMudmlld09wdGlvbnMkICYmICFpc1N0cmluZyh0aGlzLmNvbnRlbnQpKSB7XG4gICAgICBpZiAoaXNDb21wb25lbnQodGhpcy5jb250ZW50KSkge1xuICAgICAgICB0aGlzLmluc3RhbmNlLmRhdGEgPSB0aGlzLmRhdGE7XG4gICAgICAgIHRoaXMudmlld09wdGlvbnMkID0ge1xuICAgICAgICAgIGluamVjdG9yOiBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBUSVBQWV9SRUYsXG4gICAgICAgICAgICAgICAgdXNlVmFsdWU6IHRoaXMuaW5zdGFuY2UsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIGlmIChpc1RlbXBsYXRlUmVmKHRoaXMuY29udGVudCkpIHtcbiAgICAgICAgdGhpcy52aWV3T3B0aW9ucyQgPSB7XG4gICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgJGltcGxpY2l0OiB0aGlzLmhpZGUuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGRhdGE6IHRoaXMuZGF0YSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMudmlld1JlZiA9IHRoaXMudmlld1NlcnZpY2UuY3JlYXRlVmlldyh0aGlzLmNvbnRlbnQsIHtcbiAgICAgIHZjcjogdGhpcy52Y3IsXG4gICAgICAuLi50aGlzLnZpZXdPcHRpb25zJCxcbiAgICB9KTtcblxuICAgIC8vIFdlIG5lZWQgdG8gY2FsbCBkZXRlY3RDaGFuZ2VzIGZvciBvblB1c2ggY29tcG9uZW50cyB0byB1cGRhdGUgdGhlIGNvbnRlbnRcbiAgICBpZiAodGhpcy5kZXRlY3RDaGFuZ2VzQ29tcG9uZW50ICYmIGlzQ29tcG9uZW50KHRoaXMuY29udGVudCkpIHtcbiAgICAgIHRoaXMudmlld1JlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgbGV0IGNvbnRlbnQgPSB0aGlzLnZpZXdSZWYuZ2V0RWxlbWVudCgpO1xuXG4gICAgaWYgKGNvZXJjZUJvb2xlYW5JbnB1dCh0aGlzLnVzZVRleHRDb250ZW50KSkge1xuICAgICAgY29udGVudCA9IGluc3RhbmNlLnJlZmVyZW5jZS50ZXh0Q29udGVudDtcbiAgICB9XG5cbiAgICBpZiAoaXNTdHJpbmcoY29udGVudCkgJiYgdGhpcy5nbG9iYWxDb25maWcuYmVmb3JlUmVuZGVyKSB7XG4gICAgICBjb250ZW50ID0gdGhpcy5nbG9iYWxDb25maWcuYmVmb3JlUmVuZGVyKGNvbnRlbnQpO1xuICAgIH1cblxuICAgIHJldHVybiBjb250ZW50O1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNvbnRleHRNZW51KCkge1xuICAgIGZyb21FdmVudCh0aGlzLmhvc3QsICdjb250ZXh0bWVudScpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICB0aGlzLmluc3RhbmNlLnNldFByb3BzKHtcbiAgICAgICAgICBnZXRSZWZlcmVuY2VDbGllbnRSZWN0OiAoKSA9PlxuICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgd2lkdGg6IDAsXG4gICAgICAgICAgICAgIGhlaWdodDogMCxcbiAgICAgICAgICAgICAgdG9wOiBldmVudC5jbGllbnRZLFxuICAgICAgICAgICAgICBib3R0b206IGV2ZW50LmNsaWVudFksXG4gICAgICAgICAgICAgIGxlZnQ6IGV2ZW50LmNsaWVudFgsXG4gICAgICAgICAgICAgIHJpZ2h0OiBldmVudC5jbGllbnRYLFxuICAgICAgICAgICAgfSBhcyBET01SZWN0UmVhZE9ubHkpLFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmluc3RhbmNlLnNob3coKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUVzY2FwZUJ1dHRvbigpOiB2b2lkIHtcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgZnJvbUV2ZW50KGRvY3VtZW50LmJvZHksICdrZXlkb3duJylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKCh7IGNvZGUgfTogS2V5Ym9hcmRFdmVudCkgPT4gY29kZSA9PT0gJ0VzY2FwZScpLFxuICAgICAgICAgIHRha2VVbnRpbChtZXJnZSh0aGlzLmRlc3Ryb3llZCwgdGhpcy52aXNpYmxlSW50ZXJuYWwucGlwZShmaWx0ZXIoKHYpID0+ICF2KSkpKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5oaWRlKCkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNoZWNrT3ZlcmZsb3coaXNFbGVtZW50T3ZlcmZsb3c6IGJvb2xlYW4pIHtcbiAgICBpZiAoaXNFbGVtZW50T3ZlcmZsb3cpIHtcbiAgICAgIGlmICghdGhpcy5pbnN0YW5jZSkge1xuICAgICAgICB0aGlzLmNyZWF0ZUluc3RhbmNlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmluc3RhbmNlLmVuYWJsZSgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmluc3RhbmNlPy5kaXNhYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGxpc3RlblRvSG9zdFJlc2l6ZSgpIHtcbiAgICBkaW1lbnNpb25zQ2hhbmdlcyh0aGlzLmhvc3QpXG4gICAgICAucGlwZSh0YWtlVW50aWwobWVyZ2UodGhpcy5kZXN0cm95ZWQsIHRoaXMudmlzaWJsZUludGVybmFsKSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRJbnN0YW5jZVdpZHRoKHRoaXMuaW5zdGFuY2UsIHRoaXMuaG9zdFdpZHRoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldEluc3RhbmNlV2lkdGgoaW5zdGFuY2U6IEluc3RhbmNlLCB3aWR0aDogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgY29uc3QgaW5QaXhlbHMgPSBjb2VyY2VDc3NQaXhlbFZhbHVlKHdpZHRoKTtcbiAgICBpbnN0YW5jZS5wb3BwZXIuc3R5bGUud2lkdGggPSBpblBpeGVscztcbiAgICBpbnN0YW5jZS5wb3BwZXIuc3R5bGUubWF4V2lkdGggPSBpblBpeGVscztcbiAgICAoaW5zdGFuY2UucG9wcGVyLmZpcnN0RWxlbWVudENoaWxkIGFzIEhUTUxFbGVtZW50KS5zdHlsZS5tYXhXaWR0aCA9IGluUGl4ZWxzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaXNTZXJ2ZXJTaWRlKCkge1xuICAgIHJldHVybiBpc1BsYXRmb3JtU2VydmVyKHRoaXMucGxhdGZvcm1JZCk7XG4gIH1cblxuICBwcml2YXRlIG9uSGlkZGVuKGluc3RhbmNlOiBUaXBweUluc3RhbmNlID0gdGhpcy5pbnN0YW5jZSkge1xuICAgIHRoaXMuZGVzdHJveVZpZXcoKTtcbiAgICB0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMudmlzaWJsZUludGVybmFsLm5leHQodGhpcy5pc1Zpc2libGUpO1xuICAgIGlmICh0aGlzLnZpc2libGUub2JzZXJ2ZWQpIHtcbiAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4gdGhpcy52aXNpYmxlLm5leHQodGhpcy5pc1Zpc2libGUpKTtcbiAgICB9XG4gICAgdGhpcy5nbG9iYWxDb25maWcub25IaWRkZW4/LihpbnN0YW5jZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNDaGFuZ2VkPFQgZXh0ZW5kcyBvYmplY3Q+KGtleToga2V5b2YgVCwgY2hhbmdlczogVCkge1xuICByZXR1cm4ga2V5IGluIGNoYW5nZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb2VyY2VCb29sZWFuSW5wdXQodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiBgJHt2YWx1ZX1gICE9PSAnZmFsc2UnO1xufVxuIl19
|
|
@@ -68,14 +68,14 @@ export class TippyService {
|
|
|
68
68
|
};
|
|
69
69
|
return tippy(host, config);
|
|
70
70
|
}
|
|
71
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: TippyService, deps: [{ token: TIPPY_CONFIG }, { token: i1.ViewService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
72
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: TippyService, providedIn: 'root' }); }
|
|
71
73
|
}
|
|
72
|
-
|
|
73
|
-
TippyService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: TippyService, providedIn: 'root' });
|
|
74
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: TippyService, decorators: [{
|
|
74
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: TippyService, decorators: [{
|
|
75
75
|
type: Injectable,
|
|
76
76
|
args: [{ providedIn: 'root' }]
|
|
77
77
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
78
78
|
type: Inject,
|
|
79
79
|
args: [TIPPY_CONFIG]
|
|
80
80
|
}] }, { type: i1.ViewService }, { type: i0.Injector }]; } });
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwcHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nbmVhdC9oZWxpcG9wcGVyL3NyYy9saWIvdGlwcHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxLQUFLLE1BQU0sVUFBVSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFlLE1BQU0sa0JBQWtCLENBQUM7QUFFM0UsT0FBTyxFQUF3QyxZQUFZLEVBQUUsU0FBUyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7OztBQUc3RCxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUNnQyxZQUF5QixFQUMvQyxJQUFpQixFQUNqQixRQUFrQjtRQUZJLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQy9DLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUN6QixDQUFDO0lBRUosTUFBTSxDQUFvQixJQUFhLEVBQUUsT0FBVSxFQUFFLFVBQWtDLEVBQUU7UUFDdkYsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDO1FBQzFFLE1BQU0sTUFBTSxHQUFHO1lBQ2IsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFO2dCQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRTtvQkFDMUIsUUFBUSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7b0JBRTNCLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFO3dC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bGFyL2NvcmUnO1xuaW1wb3J0IHRpcHB5IGZyb20gJ3RpcHB5LmpzJztcbmltcG9ydCB7IGlzQ29tcG9uZW50LCBpc1RlbXBsYXRlUmVmLCBWaWV3U2VydmljZSB9IGZyb20gJ0BuZ25lYXQvb3ZlcnZpZXcnO1xuaW1wb3J0IHsgQ29udGVudCB9IGZyb20gJ0BuZ25lYXQvb3ZlcnZpZXcnO1xuaW1wb3J0IHsgQ3JlYXRlT3B0aW9ucywgRXh0ZW5kZWRUaXBweUluc3RhbmNlLCBUSVBQWV9DT05GSUcsIFRJUFBZX1JFRiwgVGlwcHlDb25maWcgfSBmcm9tICcuL3RpcHB5LnR5cGVzJztcbmltcG9ydCB7IG5vcm1hbGl6ZUNsYXNzTmFtZSwgb25seVRpcHB5UHJvcHMgfSBmcm9tICcuL3V0aWxzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBUaXBweVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFRJUFBZX0NPTkZJRykgcHJpdmF0ZSBnbG9iYWxDb25maWc6IFRpcHB5Q29uZmlnLFxuICAgIHByaXZhdGUgdmlldzogVmlld1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7fVxuXG4gIGNyZWF0ZTxUIGV4dGVuZHMgQ29udGVudD4oaG9zdDogRWxlbWVudCwgY29udGVudDogVCwgb3B0aW9uczogUGFydGlhbDxDcmVhdGVPcHRpb25zPiA9IHt9KTogRXh0ZW5kZWRUaXBweUluc3RhbmNlPFQ+IHtcbiAgICBjb25zdCB2YXJpYXRpb24gPSBvcHRpb25zLnZhcmlhdGlvbiB8fCB0aGlzLmdsb2JhbENvbmZpZy5kZWZhdWx0VmFyaWF0aW9uO1xuICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgIG9uU2hvdzogaW5zdGFuY2UgPT4ge1xuICAgICAgICBob3N0LnNldEF0dHJpYnV0ZSgnZGF0YS10aXBweS1vcGVuJywgJycpO1xuICAgICAgICBpZiAoIWluc3RhbmNlLiR2aWV3T3B0aW9ucykge1xuICAgICAgICAgIGluc3RhbmNlLiR2aWV3T3B0aW9ucyA9IHt9O1xuXG4gICAgICAgICAgaWYgKGlzVGVtcGxhdGVSZWYoY29udGVudCkpIHtcbiAgICAgICAgICAgIGluc3RhbmNlLiR2aWV3T3B0aW9ucy5jb250ZXh0ID0ge1xuICAgICAgICAgICAgICAkaW1wbGljaXQ6IGluc3RhbmNlLmhpZGUuYmluZChpbnN0YW5jZSksXG4gICAgICAgICAgICAgIC4uLm9wdGlvbnMuY29udGV4dFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGlzQ29tcG9uZW50KGNvbnRlbnQpKSB7XG4gICAgICAgICAgICBpbnN0YW5jZS5jb250ZXh0ID0gb3B0aW9ucy5jb250ZXh0O1xuICAgICAgICAgICAgaW5zdGFuY2UuZGF0YSA9IG9wdGlvbnMuZGF0YTtcbiAgICAgICAgICAgIGluc3RhbmNlLiR2aWV3T3B0aW9ucy5pbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IFRJUFBZX1JFRixcbiAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiBpbnN0YW5jZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcGFyZW50OiBvcHRpb25zLmluamVjdG9yIHx8IHRoaXMuaW5qZWN0b3JcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWluc3RhbmNlLnZpZXcpIHtcbiAgICAgICAgICBpbnN0YW5jZS52aWV3ID0gdGhpcy52aWV3LmNyZWF0ZVZpZXcoY29udGVudCwgeyAuLi5vcHRpb25zLCAuLi5pbnN0YW5jZS4kdmlld09wdGlvbnMgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaW5zdGFuY2Uuc2V0Q29udGVudChpbnN0YW5jZS52aWV3LmdldEVsZW1lbnQoKSk7XG4gICAgICAgIG9wdGlvbnM/Lm9uU2hvdz8uKGluc3RhbmNlKTtcbiAgICAgIH0sXG4gICAgICBvbkhpZGRlbjogaW5zdGFuY2UgPT4ge1xuICAgICAgICBob3N0LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS10aXBweS1vcGVuJyk7XG5cbiAgICAgICAgaWYgKCFvcHRpb25zLnByZXNlcnZlVmlldykge1xuICAgICAgICAgIGluc3RhbmNlLnZpZXcuZGVzdHJveSgpO1xuICAgICAgICAgIGluc3RhbmNlLnZpZXcgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIG9wdGlvbnM/Lm9uSGlkZGVuPy4oaW5zdGFuY2UpO1xuICAgICAgfSxcbiAgICAgIC4uLm9ubHlUaXBweVByb3BzKHRoaXMuZ2xvYmFsQ29uZmlnKSxcbiAgICAgIC4uLnRoaXMuZ2xvYmFsQ29uZmlnLnZhcmlhdGlvbnNbdmFyaWF0aW9uXSxcbiAgICAgIC4uLm9ubHlUaXBweVByb3BzKG9wdGlvbnMpLFxuICAgICAgb25DcmVhdGU6IGluc3RhbmNlID0+IHtcbiAgICAgICAgaW5zdGFuY2UucG9wcGVyLmNsYXNzTGlzdC5hZGQoYHRpcHB5LXZhcmlhdGlvbi0ke3ZhcmlhdGlvbn1gKTtcbiAgICAgICAgaWYgKG9wdGlvbnMuY2xhc3NOYW1lKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBrbGFzcyBvZiBub3JtYWxpemVDbGFzc05hbWUob3B0aW9ucy5jbGFzc05hbWUpKSB7XG4gICAgICAgICAgICBpbnN0YW5jZS5wb3BwZXIuY2xhc3NMaXN0LmFkZChrbGFzcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ2xvYmFsQ29uZmlnLm9uQ3JlYXRlPy4oaW5zdGFuY2UpO1xuICAgICAgICBvcHRpb25zLm9uQ3JlYXRlPy4oaW5zdGFuY2UpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gdGlwcHkoaG9zdCwgY29uZmlnKSBhcyBFeHRlbmRlZFRpcHB5SW5zdGFuY2U8VD47XG4gIH1cbn1cbiJdfQ==
|