@ngneat/helipopper 7.1.1 → 8.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.
- package/esm2022/lib/tippy.directive.mjs +468 -0
- package/{esm2020 → esm2022}/lib/tippy.service.mjs +4 -4
- package/esm2022/lib/utils.mjs +125 -0
- package/{fesm2020 → fesm2022}/ngneat-helipopper.mjs +102 -41
- package/fesm2022/ngneat-helipopper.mjs.map +1 -0
- package/lib/defaults.d.ts +1 -1
- package/lib/tippy.directive.d.ts +11 -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,125 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { auditTime, map } from 'rxjs/operators';
|
|
3
|
+
import { ElementRef } from '@angular/core';
|
|
4
|
+
let supportsIntersectionObserver = false;
|
|
5
|
+
let supportsResizeObserver = false;
|
|
6
|
+
if (typeof window !== 'undefined') {
|
|
7
|
+
supportsIntersectionObserver = 'IntersectionObserver' in window;
|
|
8
|
+
supportsResizeObserver = 'ResizeObserver' in window;
|
|
9
|
+
}
|
|
10
|
+
export function inView(host, options = {
|
|
11
|
+
root: null,
|
|
12
|
+
threshold: 0.3,
|
|
13
|
+
}) {
|
|
14
|
+
const element = coerceElement(host);
|
|
15
|
+
return new Observable((subscriber) => {
|
|
16
|
+
if (!supportsIntersectionObserver) {
|
|
17
|
+
subscriber.next();
|
|
18
|
+
subscriber.complete();
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const observer = new IntersectionObserver((entries) => {
|
|
22
|
+
// Several changes may occur in the same tick, we want to check the latest entry state.
|
|
23
|
+
const entry = entries[entries.length - 1];
|
|
24
|
+
if (entry.isIntersecting) {
|
|
25
|
+
subscriber.next();
|
|
26
|
+
subscriber.complete();
|
|
27
|
+
}
|
|
28
|
+
}, options);
|
|
29
|
+
observer.observe(element);
|
|
30
|
+
return () => observer.disconnect();
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
function isElementOverflow(host) {
|
|
34
|
+
// Don't access the `offsetWidth` multipe times since it triggers layout updates.
|
|
35
|
+
const hostOffsetWidth = host.offsetWidth;
|
|
36
|
+
return hostOffsetWidth > host.parentElement.offsetWidth || hostOffsetWidth < host.scrollWidth;
|
|
37
|
+
}
|
|
38
|
+
export function overflowChanges(host) {
|
|
39
|
+
const element = coerceElement(host);
|
|
40
|
+
return dimensionsChanges(element).pipe(auditTime(150), map(() => isElementOverflow(element)));
|
|
41
|
+
}
|
|
42
|
+
export function dimensionsChanges(target) {
|
|
43
|
+
return resizeObserverStrategy(target);
|
|
44
|
+
}
|
|
45
|
+
function resizeObserverStrategy(target) {
|
|
46
|
+
return new Observable((subscriber) => {
|
|
47
|
+
if (!supportsResizeObserver) {
|
|
48
|
+
subscriber.next();
|
|
49
|
+
subscriber.complete();
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const observer = new ResizeObserver(() => subscriber.next(true));
|
|
53
|
+
observer.observe(target);
|
|
54
|
+
return () => observer.disconnect();
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
export function onlyTippyProps(allProps) {
|
|
58
|
+
const tippyProps = {};
|
|
59
|
+
const ownProps = [
|
|
60
|
+
'useTextContent',
|
|
61
|
+
'variations',
|
|
62
|
+
'useHostWidth',
|
|
63
|
+
'defaultVariation',
|
|
64
|
+
'beforeRender',
|
|
65
|
+
'isLazy',
|
|
66
|
+
'variation',
|
|
67
|
+
'isEnabled',
|
|
68
|
+
'className',
|
|
69
|
+
'onlyTextOverflow',
|
|
70
|
+
'data',
|
|
71
|
+
'content',
|
|
72
|
+
'context',
|
|
73
|
+
'hideOnEscape',
|
|
74
|
+
'customHost',
|
|
75
|
+
'injector',
|
|
76
|
+
'preserveView',
|
|
77
|
+
'vcr',
|
|
78
|
+
'popperWidth',
|
|
79
|
+
'zIndexGetter',
|
|
80
|
+
];
|
|
81
|
+
const overriddenMethods = ['onShow', 'onHidden', 'onCreate'];
|
|
82
|
+
Object.keys(allProps).forEach((prop) => {
|
|
83
|
+
if (!ownProps.includes(prop) && !overriddenMethods.includes(prop)) {
|
|
84
|
+
tippyProps[prop] = allProps[prop];
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
return tippyProps;
|
|
88
|
+
}
|
|
89
|
+
export function normalizeClassName(className) {
|
|
90
|
+
const classes = isString(className) ? className.split(' ') : className;
|
|
91
|
+
return classes.map((klass) => klass?.trim()).filter(Boolean);
|
|
92
|
+
}
|
|
93
|
+
export function coerceCssPixelValue(value) {
|
|
94
|
+
if (isNil(value)) {
|
|
95
|
+
return '';
|
|
96
|
+
}
|
|
97
|
+
return typeof value === 'string' ? value : `${value}px`;
|
|
98
|
+
}
|
|
99
|
+
function isString(value) {
|
|
100
|
+
return typeof value === 'string';
|
|
101
|
+
}
|
|
102
|
+
function isNil(value) {
|
|
103
|
+
return value === undefined || value === null;
|
|
104
|
+
}
|
|
105
|
+
function coerceElement(element) {
|
|
106
|
+
return element instanceof ElementRef ? element.nativeElement : element;
|
|
107
|
+
}
|
|
108
|
+
let observer;
|
|
109
|
+
const elementHiddenHandlers = new WeakMap();
|
|
110
|
+
export function observeVisibility(host, hiddenHandler) {
|
|
111
|
+
observer ??= new IntersectionObserver((entries) => {
|
|
112
|
+
entries.forEach((entry) => {
|
|
113
|
+
if (!entry.isIntersecting) {
|
|
114
|
+
elementHiddenHandlers.get(entry.target)();
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
elementHiddenHandlers.set(host, hiddenHandler);
|
|
119
|
+
observer.observe(host);
|
|
120
|
+
return () => {
|
|
121
|
+
elementHiddenHandlers.delete(host);
|
|
122
|
+
observer.unobserve(host);
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ25lYXQvaGVsaXBvcHBlci9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLElBQUksNEJBQTRCLEdBQUcsS0FBSyxDQUFDO0FBQ3pDLElBQUksc0JBQXNCLEdBQUcsS0FBSyxDQUFDO0FBRW5DLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFO0lBQ2pDLDRCQUE0QixHQUFHLHNCQUFzQixJQUFJLE1BQU0sQ0FBQztJQUNoRSxzQkFBc0IsR0FBRyxnQkFBZ0IsSUFBSSxNQUFNLENBQUM7Q0FDckQ7QUFFRCxNQUFNLFVBQVUsTUFBTSxDQUNwQixJQUFrQixFQUNsQixVQUFvQztJQUNsQyxJQUFJLEVBQUUsSUFBSTtJQUNWLFNBQVMsRUFBRSxHQUFHO0NBQ2Y7SUFFRCxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFcEMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1FBQ25DLElBQUksQ0FBQyw0QkFBNEIsRUFBRTtZQUNqQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEIsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RCLE9BQU87U0FDUjtRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksb0JBQW9CLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNwRCx1RkFBdUY7WUFDdkYsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDMUMsSUFBSSxLQUFLLENBQUMsY0FBYyxFQUFFO2dCQUN4QixVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2xCLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUN2QjtRQUNILENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVaLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUIsT0FBTyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDckMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxJQUFpQjtJQUMxQyxpRkFBaUY7SUFDakYsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUN6QyxPQUFPLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztBQUNoRyxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFrQjtJQUNoRCxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFcEMsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3BDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFDZCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FDdEMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsTUFBbUI7SUFDbkQsT0FBTyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsU0FBUyxzQkFBc0IsQ0FBQyxNQUFtQjtJQUNqRCxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7UUFDbkMsSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQzNCLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQixVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEIsT0FBTztTQUNSO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsT0FBTyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDckMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxRQUFhO0lBQzFDLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUV0QixNQUFNLFFBQVEsR0FBRztRQUNmLGdCQUFnQjtRQUNoQixZQUFZO1FBQ1osY0FBYztRQUNkLGtCQUFrQjtRQUNsQixjQUFjO1FBQ2QsUUFBUTtRQUNSLFdBQVc7UUFDWCxXQUFXO1FBQ1gsV0FBVztRQUNYLGtCQUFrQjtRQUNsQixNQUFNO1FBQ04sU0FBUztRQUNULFNBQVM7UUFDVCxjQUFjO1FBQ2QsWUFBWTtRQUNaLFVBQVU7UUFDVixjQUFjO1FBQ2QsS0FBSztRQUNMLGFBQWE7UUFDYixjQUFjO0tBQ2YsQ0FBQztJQUVGLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRTdELE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDckMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDakUsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNuQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxTQUE0QjtJQUM3RCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUV2RSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMvRCxDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUFJLEtBQVE7SUFDN0MsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDaEIsT0FBTyxFQUFFLENBQUM7S0FDWDtJQUVELE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUM7QUFDMUQsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFDLEtBQWM7SUFDOUIsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUM7QUFDbkMsQ0FBQztBQUVELFNBQVMsS0FBSyxDQUFDLEtBQVU7SUFDdkIsT0FBTyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUM7QUFDL0MsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLE9BQXFCO0lBQzFDLE9BQU8sT0FBTyxZQUFZLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0FBQ3pFLENBQUM7QUFFRCxJQUFJLFFBQThCLENBQUM7QUFDbkMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBdUIsQ0FBQztBQUNqRSxNQUFNLFVBQVUsaUJBQWlCLENBQUMsSUFBYSxFQUFFLGFBQXlCO0lBQ3hFLFFBQVEsS0FBSyxJQUFJLG9CQUFvQixDQUFDLENBQUMsT0FBb0MsRUFBRSxFQUFFO1FBQzdFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRTtnQkFDekIscUJBQXFCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUUsRUFBRSxDQUFDO2FBQzVDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUNILHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDL0MsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV2QixPQUFPLEdBQUcsRUFBRTtRQUNWLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBhdWRpdFRpbWUsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRpcHB5RWxlbWVudCB9IGZyb20gJy4vdGlwcHkudHlwZXMnO1xuaW1wb3J0IHsgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5kZWNsYXJlIGNvbnN0IFJlc2l6ZU9ic2VydmVyOiBhbnk7XG5cbmxldCBzdXBwb3J0c0ludGVyc2VjdGlvbk9ic2VydmVyID0gZmFsc2U7XG5sZXQgc3VwcG9ydHNSZXNpemVPYnNlcnZlciA9IGZhbHNlO1xuXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgc3VwcG9ydHNJbnRlcnNlY3Rpb25PYnNlcnZlciA9ICdJbnRlcnNlY3Rpb25PYnNlcnZlcicgaW4gd2luZG93O1xuICBzdXBwb3J0c1Jlc2l6ZU9ic2VydmVyID0gJ1Jlc2l6ZU9ic2VydmVyJyBpbiB3aW5kb3c7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpblZpZXcoXG4gIGhvc3Q6IFRpcHB5RWxlbWVudCxcbiAgb3B0aW9uczogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJJbml0ID0ge1xuICAgIHJvb3Q6IG51bGwsXG4gICAgdGhyZXNob2xkOiAwLjMsXG4gIH1cbikge1xuICBjb25zdCBlbGVtZW50ID0gY29lcmNlRWxlbWVudChob3N0KTtcblxuICByZXR1cm4gbmV3IE9ic2VydmFibGUoKHN1YnNjcmliZXIpID0+IHtcbiAgICBpZiAoIXN1cHBvcnRzSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpIHtcbiAgICAgIHN1YnNjcmliZXIubmV4dCgpO1xuICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChlbnRyaWVzKSA9PiB7XG4gICAgICAvLyBTZXZlcmFsIGNoYW5nZXMgbWF5IG9jY3VyIGluIHRoZSBzYW1lIHRpY2ssIHdlIHdhbnQgdG8gY2hlY2sgdGhlIGxhdGVzdCBlbnRyeSBzdGF0ZS5cbiAgICAgIGNvbnN0IGVudHJ5ID0gZW50cmllc1tlbnRyaWVzLmxlbmd0aCAtIDFdO1xuICAgICAgaWYgKGVudHJ5LmlzSW50ZXJzZWN0aW5nKSB7XG4gICAgICAgIHN1YnNjcmliZXIubmV4dCgpO1xuICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICB9XG4gICAgfSwgb3B0aW9ucyk7XG5cbiAgICBvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQpO1xuXG4gICAgcmV0dXJuICgpID0+IG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGlzRWxlbWVudE92ZXJmbG93KGhvc3Q6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gIC8vIERvbid0IGFjY2VzcyB0aGUgYG9mZnNldFdpZHRoYCBtdWx0aXBlIHRpbWVzIHNpbmNlIGl0IHRyaWdnZXJzIGxheW91dCB1cGRhdGVzLlxuICBjb25zdCBob3N0T2Zmc2V0V2lkdGggPSBob3N0Lm9mZnNldFdpZHRoO1xuICByZXR1cm4gaG9zdE9mZnNldFdpZHRoID4gaG9zdC5wYXJlbnRFbGVtZW50Lm9mZnNldFdpZHRoIHx8IGhvc3RPZmZzZXRXaWR0aCA8IGhvc3Quc2Nyb2xsV2lkdGg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvdmVyZmxvd0NoYW5nZXMoaG9zdDogVGlwcHlFbGVtZW50KSB7XG4gIGNvbnN0IGVsZW1lbnQgPSBjb2VyY2VFbGVtZW50KGhvc3QpO1xuXG4gIHJldHVybiBkaW1lbnNpb25zQ2hhbmdlcyhlbGVtZW50KS5waXBlKFxuICAgIGF1ZGl0VGltZSgxNTApLFxuICAgIG1hcCgoKSA9PiBpc0VsZW1lbnRPdmVyZmxvdyhlbGVtZW50KSlcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpbWVuc2lvbnNDaGFuZ2VzKHRhcmdldDogSFRNTEVsZW1lbnQpIHtcbiAgcmV0dXJuIHJlc2l6ZU9ic2VydmVyU3RyYXRlZ3kodGFyZ2V0KTtcbn1cblxuZnVuY3Rpb24gcmVzaXplT2JzZXJ2ZXJTdHJhdGVneSh0YXJnZXQ6IEhUTUxFbGVtZW50KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoc3Vic2NyaWJlcikgPT4ge1xuICAgIGlmICghc3VwcG9ydHNSZXNpemVPYnNlcnZlcikge1xuICAgICAgc3Vic2NyaWJlci5uZXh0KCk7XG4gICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4gc3Vic2NyaWJlci5uZXh0KHRydWUpKTtcbiAgICBvYnNlcnZlci5vYnNlcnZlKHRhcmdldCk7XG4gICAgcmV0dXJuICgpID0+IG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvbmx5VGlwcHlQcm9wcyhhbGxQcm9wczogYW55KSB7XG4gIGNvbnN0IHRpcHB5UHJvcHMgPSB7fTtcblxuICBjb25zdCBvd25Qcm9wcyA9IFtcbiAgICAndXNlVGV4dENvbnRlbnQnLFxuICAgICd2YXJpYXRpb25zJyxcbiAgICAndXNlSG9zdFdpZHRoJyxcbiAgICAnZGVmYXVsdFZhcmlhdGlvbicsXG4gICAgJ2JlZm9yZVJlbmRlcicsXG4gICAgJ2lzTGF6eScsXG4gICAgJ3ZhcmlhdGlvbicsXG4gICAgJ2lzRW5hYmxlZCcsXG4gICAgJ2NsYXNzTmFtZScsXG4gICAgJ29ubHlUZXh0T3ZlcmZsb3cnLFxuICAgICdkYXRhJyxcbiAgICAnY29udGVudCcsXG4gICAgJ2NvbnRleHQnLFxuICAgICdoaWRlT25Fc2NhcGUnLFxuICAgICdjdXN0b21Ib3N0JyxcbiAgICAnaW5qZWN0b3InLFxuICAgICdwcmVzZXJ2ZVZpZXcnLFxuICAgICd2Y3InLFxuICAgICdwb3BwZXJXaWR0aCcsXG4gICAgJ3pJbmRleEdldHRlcicsXG4gIF07XG5cbiAgY29uc3Qgb3ZlcnJpZGRlbk1ldGhvZHMgPSBbJ29uU2hvdycsICdvbkhpZGRlbicsICdvbkNyZWF0ZSddO1xuXG4gIE9iamVjdC5rZXlzKGFsbFByb3BzKS5mb3JFYWNoKChwcm9wKSA9PiB7XG4gICAgaWYgKCFvd25Qcm9wcy5pbmNsdWRlcyhwcm9wKSAmJiAhb3ZlcnJpZGRlbk1ldGhvZHMuaW5jbHVkZXMocHJvcCkpIHtcbiAgICAgIHRpcHB5UHJvcHNbcHJvcF0gPSBhbGxQcm9wc1twcm9wXTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiB0aXBweVByb3BzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplQ2xhc3NOYW1lKGNsYXNzTmFtZTogc3RyaW5nIHwgc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGNsYXNzZXMgPSBpc1N0cmluZyhjbGFzc05hbWUpID8gY2xhc3NOYW1lLnNwbGl0KCcgJykgOiBjbGFzc05hbWU7XG5cbiAgcmV0dXJuIGNsYXNzZXMubWFwKChrbGFzcykgPT4ga2xhc3M/LnRyaW0oKSkuZmlsdGVyKEJvb2xlYW4pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29lcmNlQ3NzUGl4ZWxWYWx1ZTxUPih2YWx1ZTogVCk6IHN0cmluZyB7XG4gIGlmIChpc05pbCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlIDogYCR7dmFsdWV9cHhgO1xufVxuXG5mdW5jdGlvbiBpc1N0cmluZyh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIHN0cmluZyB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnO1xufVxuXG5mdW5jdGlvbiBpc05pbCh2YWx1ZTogYW55KTogdmFsdWUgaXMgdW5kZWZpbmVkIHwgbnVsbCB7XG4gIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsO1xufVxuXG5mdW5jdGlvbiBjb2VyY2VFbGVtZW50KGVsZW1lbnQ6IFRpcHB5RWxlbWVudCkge1xuICByZXR1cm4gZWxlbWVudCBpbnN0YW5jZW9mIEVsZW1lbnRSZWYgPyBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQgOiBlbGVtZW50O1xufVxuXG5sZXQgb2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyO1xuY29uc3QgZWxlbWVudEhpZGRlbkhhbmRsZXJzID0gbmV3IFdlYWtNYXA8RWxlbWVudCwgKCkgPT4gdm9pZD4oKTtcbmV4cG9ydCBmdW5jdGlvbiBvYnNlcnZlVmlzaWJpbGl0eShob3N0OiBFbGVtZW50LCBoaWRkZW5IYW5kbGVyOiAoKSA9PiB2b2lkKSB7XG4gIG9ic2VydmVyID8/PSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGVudHJpZXM6IEludGVyc2VjdGlvbk9ic2VydmVyRW50cnlbXSkgPT4ge1xuICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIGlmICghZW50cnkuaXNJbnRlcnNlY3RpbmcpIHtcbiAgICAgICAgZWxlbWVudEhpZGRlbkhhbmRsZXJzLmdldChlbnRyeS50YXJnZXQpISgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbiAgZWxlbWVudEhpZGRlbkhhbmRsZXJzLnNldChob3N0LCBoaWRkZW5IYW5kbGVyKTtcbiAgb2JzZXJ2ZXIub2JzZXJ2ZShob3N0KTtcblxuICByZXR1cm4gKCkgPT4ge1xuICAgIGVsZW1lbnRIaWRkZW5IYW5kbGVycy5kZWxldGUoaG9zdCk7XG4gICAgb2JzZXJ2ZXIudW5vYnNlcnZlKGhvc3QpO1xuICB9O1xufVxuIl19
|
|
@@ -15,16 +15,16 @@ if (typeof window !== 'undefined') {
|
|
|
15
15
|
}
|
|
16
16
|
function inView(host, options = {
|
|
17
17
|
root: null,
|
|
18
|
-
threshold: 0.3
|
|
18
|
+
threshold: 0.3,
|
|
19
19
|
}) {
|
|
20
20
|
const element = coerceElement(host);
|
|
21
|
-
return new Observable(subscriber => {
|
|
21
|
+
return new Observable((subscriber) => {
|
|
22
22
|
if (!supportsIntersectionObserver) {
|
|
23
23
|
subscriber.next();
|
|
24
24
|
subscriber.complete();
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
|
-
const observer = new IntersectionObserver(entries => {
|
|
27
|
+
const observer = new IntersectionObserver((entries) => {
|
|
28
28
|
// Several changes may occur in the same tick, we want to check the latest entry state.
|
|
29
29
|
const entry = entries[entries.length - 1];
|
|
30
30
|
if (entry.isIntersecting) {
|
|
@@ -49,7 +49,7 @@ function dimensionsChanges(target) {
|
|
|
49
49
|
return resizeObserverStrategy(target);
|
|
50
50
|
}
|
|
51
51
|
function resizeObserverStrategy(target) {
|
|
52
|
-
return new Observable(subscriber => {
|
|
52
|
+
return new Observable((subscriber) => {
|
|
53
53
|
if (!supportsResizeObserver) {
|
|
54
54
|
subscriber.next();
|
|
55
55
|
subscriber.complete();
|
|
@@ -82,10 +82,10 @@ function onlyTippyProps(allProps) {
|
|
|
82
82
|
'preserveView',
|
|
83
83
|
'vcr',
|
|
84
84
|
'popperWidth',
|
|
85
|
-
'zIndexGetter'
|
|
85
|
+
'zIndexGetter',
|
|
86
86
|
];
|
|
87
87
|
const overriddenMethods = ['onShow', 'onHidden', 'onCreate'];
|
|
88
|
-
Object.keys(allProps).forEach(prop => {
|
|
88
|
+
Object.keys(allProps).forEach((prop) => {
|
|
89
89
|
if (!ownProps.includes(prop) && !overriddenMethods.includes(prop)) {
|
|
90
90
|
tippyProps[prop] = allProps[prop];
|
|
91
91
|
}
|
|
@@ -94,7 +94,7 @@ function onlyTippyProps(allProps) {
|
|
|
94
94
|
}
|
|
95
95
|
function normalizeClassName(className) {
|
|
96
96
|
const classes = isString(className) ? className.split(' ') : className;
|
|
97
|
-
return classes.map(klass => klass?.trim()).filter(Boolean);
|
|
97
|
+
return classes.map((klass) => klass?.trim()).filter(Boolean);
|
|
98
98
|
}
|
|
99
99
|
function coerceCssPixelValue(value) {
|
|
100
100
|
if (isNil(value)) {
|
|
@@ -111,6 +111,23 @@ function isNil(value) {
|
|
|
111
111
|
function coerceElement(element) {
|
|
112
112
|
return element instanceof ElementRef ? element.nativeElement : element;
|
|
113
113
|
}
|
|
114
|
+
let observer;
|
|
115
|
+
const elementHiddenHandlers = new WeakMap();
|
|
116
|
+
function observeVisibility(host, hiddenHandler) {
|
|
117
|
+
observer ??= new IntersectionObserver((entries) => {
|
|
118
|
+
entries.forEach((entry) => {
|
|
119
|
+
if (!entry.isIntersecting) {
|
|
120
|
+
elementHiddenHandlers.get(entry.target)();
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
elementHiddenHandlers.set(host, hiddenHandler);
|
|
125
|
+
observer.observe(host);
|
|
126
|
+
return () => {
|
|
127
|
+
elementHiddenHandlers.delete(host);
|
|
128
|
+
observer.unobserve(host);
|
|
129
|
+
};
|
|
130
|
+
}
|
|
114
131
|
|
|
115
132
|
const TIPPY_CONFIG = new InjectionToken('Tippy config', {
|
|
116
133
|
providedIn: 'root',
|
|
@@ -120,7 +137,11 @@ const TIPPY_CONFIG = new InjectionToken('Tippy config', {
|
|
|
120
137
|
});
|
|
121
138
|
const TIPPY_REF = new InjectionToken('TIPPY_REF');
|
|
122
139
|
|
|
140
|
+
const defaultAppendTo = document.body;
|
|
123
141
|
class TippyDirective {
|
|
142
|
+
set appendTo(appendTo) {
|
|
143
|
+
this.updateProps({ appendTo });
|
|
144
|
+
}
|
|
124
145
|
constructor(platformId, globalConfig, injector, viewService, vcr, zone, hostRef) {
|
|
125
146
|
this.platformId = platformId;
|
|
126
147
|
this.globalConfig = globalConfig;
|
|
@@ -168,7 +189,7 @@ class TippyDirective {
|
|
|
168
189
|
if (variation) {
|
|
169
190
|
props = {
|
|
170
191
|
...this.globalConfig.variations[variation],
|
|
171
|
-
...props
|
|
192
|
+
...props,
|
|
172
193
|
};
|
|
173
194
|
}
|
|
174
195
|
if (isChanged('isEnabled', changes)) {
|
|
@@ -178,7 +199,7 @@ class TippyDirective {
|
|
|
178
199
|
if (isChanged('isVisible', changes)) {
|
|
179
200
|
this.isVisible ? this.show() : this.hide();
|
|
180
201
|
}
|
|
181
|
-
this.
|
|
202
|
+
this.updateProps(props);
|
|
182
203
|
}
|
|
183
204
|
ngOnInit() {
|
|
184
205
|
if (this.useHostWidth) {
|
|
@@ -193,7 +214,7 @@ class TippyDirective {
|
|
|
193
214
|
if (this.onlyTextOverflow) {
|
|
194
215
|
inView(this.host)
|
|
195
216
|
.pipe(switchMap(() => overflowChanges(this.host)), takeUntil(this.destroyed))
|
|
196
|
-
.subscribe(isElementOverflow => {
|
|
217
|
+
.subscribe((isElementOverflow) => {
|
|
197
218
|
this.checkOverflow(isElementOverflow);
|
|
198
219
|
});
|
|
199
220
|
}
|
|
@@ -208,7 +229,7 @@ class TippyDirective {
|
|
|
208
229
|
else if (this.onlyTextOverflow) {
|
|
209
230
|
overflowChanges(this.host)
|
|
210
231
|
.pipe(takeUntil(this.destroyed))
|
|
211
|
-
.subscribe(isElementOverflow => {
|
|
232
|
+
.subscribe((isElementOverflow) => {
|
|
212
233
|
this.checkOverflow(isElementOverflow);
|
|
213
234
|
});
|
|
214
235
|
}
|
|
@@ -221,12 +242,46 @@ class TippyDirective {
|
|
|
221
242
|
this.destroyed.next();
|
|
222
243
|
this.instance?.destroy();
|
|
223
244
|
this.destroyView();
|
|
245
|
+
this.visibilityObserverCleanup?.();
|
|
224
246
|
}
|
|
225
247
|
destroyView() {
|
|
226
248
|
this.viewOptions$ = null;
|
|
227
249
|
this.viewRef?.destroy();
|
|
228
250
|
this.viewRef = null;
|
|
229
251
|
}
|
|
252
|
+
/**
|
|
253
|
+
* This method is useful when you append to an element that you might remove from the DOM.
|
|
254
|
+
* In such cases we want to hide the tooltip and let it go through the destroy lifecycle.
|
|
255
|
+
* For example, if you have a grid row with an element that you toggle using the display CSS property on hover.
|
|
256
|
+
*/
|
|
257
|
+
observeHostVisibility() {
|
|
258
|
+
// We don't want to observe the host visibility if we are appending to the body.
|
|
259
|
+
if (this.props.appendTo && this.props.appendTo !== defaultAppendTo) {
|
|
260
|
+
this.visibilityObserverCleanup?.();
|
|
261
|
+
return this.visibleInternal
|
|
262
|
+
.asObservable()
|
|
263
|
+
.pipe(takeUntil(this.destroyed))
|
|
264
|
+
.subscribe((isVisible) => {
|
|
265
|
+
if (isVisible) {
|
|
266
|
+
this.zone.runOutsideAngular(() => {
|
|
267
|
+
this.visibilityObserverCleanup = observeVisibility(this.instance.reference, () => {
|
|
268
|
+
this.hide();
|
|
269
|
+
// Because we have animation on the popper it doesn't close immediately doesn't trigger the `tpVisible` event.
|
|
270
|
+
// Tippy is relying on the transitionend event to trigger the `onHidden` callback.
|
|
271
|
+
// https://github.com/atomiks/tippyjs/blob/master/src/dom-utils.ts#L117
|
|
272
|
+
// This event never fires because the popper is removed from the DOM before the transition ends.
|
|
273
|
+
if (this.props.animation) {
|
|
274
|
+
this.onHidden();
|
|
275
|
+
}
|
|
276
|
+
});
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
this.visibilityObserverCleanup?.();
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
}
|
|
230
285
|
show() {
|
|
231
286
|
this.instance?.show();
|
|
232
287
|
}
|
|
@@ -239,6 +294,9 @@ class TippyDirective {
|
|
|
239
294
|
disable() {
|
|
240
295
|
this.instance?.disable();
|
|
241
296
|
}
|
|
297
|
+
updateProps(props) {
|
|
298
|
+
this.setProps({ ...this.props, ...props });
|
|
299
|
+
}
|
|
242
300
|
setProps(props) {
|
|
243
301
|
this.props = props;
|
|
244
302
|
this.instance?.setProps(onlyTippyProps(props));
|
|
@@ -259,11 +317,11 @@ class TippyDirective {
|
|
|
259
317
|
this.zone.runOutsideAngular(() => {
|
|
260
318
|
this.instance = tippy(this.host, {
|
|
261
319
|
allowHTML: true,
|
|
262
|
-
appendTo:
|
|
320
|
+
appendTo: defaultAppendTo,
|
|
263
321
|
...(this.globalConfig.zIndexGetter ? { zIndex: this.globalConfig.zIndexGetter() } : {}),
|
|
264
322
|
...onlyTippyProps(this.globalConfig),
|
|
265
323
|
...onlyTippyProps(this.props),
|
|
266
|
-
onMount: instance => {
|
|
324
|
+
onMount: (instance) => {
|
|
267
325
|
this.isVisible = true;
|
|
268
326
|
this.visibleInternal.next(this.isVisible);
|
|
269
327
|
if (this.visible.observed) {
|
|
@@ -272,7 +330,7 @@ class TippyDirective {
|
|
|
272
330
|
this.useHostWidth && this.listenToHostResize();
|
|
273
331
|
this.globalConfig.onMount?.(instance);
|
|
274
332
|
},
|
|
275
|
-
onCreate: instance => {
|
|
333
|
+
onCreate: (instance) => {
|
|
276
334
|
instance.popper.classList.add(`tippy-variation-${this.variation || this.globalConfig.defaultVariation}`);
|
|
277
335
|
if (this.className) {
|
|
278
336
|
for (const klass of normalizeClassName(this.className)) {
|
|
@@ -284,7 +342,7 @@ class TippyDirective {
|
|
|
284
342
|
instance.show();
|
|
285
343
|
}
|
|
286
344
|
},
|
|
287
|
-
onShow: instance => {
|
|
345
|
+
onShow: (instance) => {
|
|
288
346
|
instance.reference.setAttribute('data-tippy-open', '');
|
|
289
347
|
this.zone.run(() => {
|
|
290
348
|
const content = this.resolveContent(instance);
|
|
@@ -311,15 +369,9 @@ class TippyDirective {
|
|
|
311
369
|
onHide(instance) {
|
|
312
370
|
instance.reference.removeAttribute('data-tippy-open');
|
|
313
371
|
},
|
|
314
|
-
onHidden: instance => {
|
|
315
|
-
this.
|
|
316
|
-
|
|
317
|
-
this.visibleInternal.next(this.isVisible);
|
|
318
|
-
if (this.visible.observed) {
|
|
319
|
-
this.zone.run(() => this.visible.next(this.isVisible));
|
|
320
|
-
}
|
|
321
|
-
this.globalConfig.onHidden?.(instance);
|
|
322
|
-
}
|
|
372
|
+
onHidden: (instance) => {
|
|
373
|
+
this.onHidden(instance);
|
|
374
|
+
},
|
|
323
375
|
});
|
|
324
376
|
this.setStatus();
|
|
325
377
|
this.setProps(this.props);
|
|
@@ -335,25 +387,25 @@ class TippyDirective {
|
|
|
335
387
|
providers: [
|
|
336
388
|
{
|
|
337
389
|
provide: TIPPY_REF,
|
|
338
|
-
useValue: this.instance
|
|
339
|
-
}
|
|
390
|
+
useValue: this.instance,
|
|
391
|
+
},
|
|
340
392
|
],
|
|
341
|
-
parent: this.injector
|
|
342
|
-
})
|
|
393
|
+
parent: this.injector,
|
|
394
|
+
}),
|
|
343
395
|
};
|
|
344
396
|
}
|
|
345
397
|
else if (isTemplateRef(this.content)) {
|
|
346
398
|
this.viewOptions$ = {
|
|
347
399
|
context: {
|
|
348
400
|
$implicit: this.hide.bind(this),
|
|
349
|
-
data: this.data
|
|
350
|
-
}
|
|
401
|
+
data: this.data,
|
|
402
|
+
},
|
|
351
403
|
};
|
|
352
404
|
}
|
|
353
405
|
}
|
|
354
406
|
this.viewRef = this.viewService.createView(this.content, {
|
|
355
407
|
vcr: this.vcr,
|
|
356
|
-
...this.viewOptions
|
|
408
|
+
...this.viewOptions$,
|
|
357
409
|
});
|
|
358
410
|
// We need to call detectChanges for onPush components to update the content
|
|
359
411
|
if (this.detectChangesComponent && isComponent(this.content)) {
|
|
@@ -380,8 +432,8 @@ class TippyDirective {
|
|
|
380
432
|
top: event.clientY,
|
|
381
433
|
bottom: event.clientY,
|
|
382
434
|
left: event.clientX,
|
|
383
|
-
right: event.clientX
|
|
384
|
-
})
|
|
435
|
+
right: event.clientX,
|
|
436
|
+
}),
|
|
385
437
|
});
|
|
386
438
|
this.instance.show();
|
|
387
439
|
});
|
|
@@ -389,7 +441,7 @@ class TippyDirective {
|
|
|
389
441
|
handleEscapeButton() {
|
|
390
442
|
this.zone.runOutsideAngular(() => {
|
|
391
443
|
fromEvent(document.body, 'keydown')
|
|
392
|
-
.pipe(filter(({ code }) => code === 'Escape'), takeUntil(merge(this.destroyed, this.visibleInternal.pipe(filter(v => !v)))))
|
|
444
|
+
.pipe(filter(({ code }) => code === 'Escape'), takeUntil(merge(this.destroyed, this.visibleInternal.pipe(filter((v) => !v)))))
|
|
393
445
|
.subscribe(() => this.hide());
|
|
394
446
|
});
|
|
395
447
|
}
|
|
@@ -419,16 +471,25 @@ class TippyDirective {
|
|
|
419
471
|
instance.popper.style.maxWidth = inPixels;
|
|
420
472
|
instance.popper.firstElementChild.style.maxWidth = inPixels;
|
|
421
473
|
}
|
|
474
|
+
onHidden(instance = this.instance) {
|
|
475
|
+
this.destroyView();
|
|
476
|
+
this.isVisible = false;
|
|
477
|
+
this.visibleInternal.next(this.isVisible);
|
|
478
|
+
if (this.visible.observed) {
|
|
479
|
+
this.zone.run(() => this.visible.next(this.isVisible));
|
|
480
|
+
}
|
|
481
|
+
this.globalConfig.onHidden?.(instance);
|
|
482
|
+
}
|
|
483
|
+
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 }); }
|
|
484
|
+
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 }); }
|
|
422
485
|
}
|
|
423
|
-
|
|
424
|
-
TippyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.1", 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 });
|
|
425
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: TippyDirective, decorators: [{
|
|
486
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: TippyDirective, decorators: [{
|
|
426
487
|
type: Directive,
|
|
427
488
|
args: [{
|
|
428
489
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
429
490
|
selector: '[tp]',
|
|
430
491
|
exportAs: 'tippy',
|
|
431
|
-
standalone: true
|
|
492
|
+
standalone: true,
|
|
432
493
|
}]
|
|
433
494
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
434
495
|
type: Inject,
|
|
@@ -622,10 +683,10 @@ class TippyService {
|
|
|
622
683
|
};
|
|
623
684
|
return tippy(host, config);
|
|
624
685
|
}
|
|
686
|
+
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 }); }
|
|
687
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: TippyService, providedIn: 'root' }); }
|
|
625
688
|
}
|
|
626
|
-
|
|
627
|
-
TippyService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: TippyService, providedIn: 'root' });
|
|
628
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: TippyService, decorators: [{
|
|
689
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: TippyService, decorators: [{
|
|
629
690
|
type: Injectable,
|
|
630
691
|
args: [{ providedIn: 'root' }]
|
|
631
692
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngneat-helipopper.mjs","sources":["../../../../projects/ngneat/helipopper/src/lib/utils.ts","../../../../projects/ngneat/helipopper/src/lib/tippy.types.ts","../../../../projects/ngneat/helipopper/src/lib/tippy.directive.ts","../../../../projects/ngneat/helipopper/src/lib/defaults.ts","../../../../projects/ngneat/helipopper/src/lib/tippy.service.ts","../../../../projects/ngneat/helipopper/src/lib/providers.ts","../../../../projects/ngneat/helipopper/src/ngneat-helipopper.ts"],"sourcesContent":["import { Observable } from 'rxjs';\nimport { auditTime, map } from 'rxjs/operators';\nimport { TippyElement } from './tippy.types';\nimport { ElementRef } from '@angular/core';\n\ndeclare const ResizeObserver: any;\n\nlet supportsIntersectionObserver = false;\nlet supportsResizeObserver = false;\n\nif (typeof window !== 'undefined') {\n supportsIntersectionObserver = 'IntersectionObserver' in window;\n supportsResizeObserver = 'ResizeObserver' in window;\n}\n\nexport function inView(\n host: TippyElement,\n options: IntersectionObserverInit = {\n root: null,\n threshold: 0.3,\n }\n) {\n const element = coerceElement(host);\n\n return new Observable((subscriber) => {\n if (!supportsIntersectionObserver) {\n subscriber.next();\n subscriber.complete();\n return;\n }\n\n const observer = new IntersectionObserver((entries) => {\n // Several changes may occur in the same tick, we want to check the latest entry state.\n const entry = entries[entries.length - 1];\n if (entry.isIntersecting) {\n subscriber.next();\n subscriber.complete();\n }\n }, options);\n\n observer.observe(element);\n\n return () => observer.disconnect();\n });\n}\n\nfunction isElementOverflow(host: HTMLElement): boolean {\n // Don't access the `offsetWidth` multipe times since it triggers layout updates.\n const hostOffsetWidth = host.offsetWidth;\n return hostOffsetWidth > host.parentElement.offsetWidth || hostOffsetWidth < host.scrollWidth;\n}\n\nexport function overflowChanges(host: TippyElement) {\n const element = coerceElement(host);\n\n return dimensionsChanges(element).pipe(\n auditTime(150),\n map(() => isElementOverflow(element))\n );\n}\n\nexport function dimensionsChanges(target: HTMLElement) {\n return resizeObserverStrategy(target);\n}\n\nfunction resizeObserverStrategy(target: HTMLElement): Observable<boolean> {\n return new Observable((subscriber) => {\n if (!supportsResizeObserver) {\n subscriber.next();\n subscriber.complete();\n return;\n }\n\n const observer = new ResizeObserver(() => subscriber.next(true));\n observer.observe(target);\n return () => observer.disconnect();\n });\n}\n\nexport function onlyTippyProps(allProps: any) {\n const tippyProps = {};\n\n const ownProps = [\n 'useTextContent',\n 'variations',\n 'useHostWidth',\n 'defaultVariation',\n 'beforeRender',\n 'isLazy',\n 'variation',\n 'isEnabled',\n 'className',\n 'onlyTextOverflow',\n 'data',\n 'content',\n 'context',\n 'hideOnEscape',\n 'customHost',\n 'injector',\n 'preserveView',\n 'vcr',\n 'popperWidth',\n 'zIndexGetter',\n ];\n\n const overriddenMethods = ['onShow', 'onHidden', 'onCreate'];\n\n Object.keys(allProps).forEach((prop) => {\n if (!ownProps.includes(prop) && !overriddenMethods.includes(prop)) {\n tippyProps[prop] = allProps[prop];\n }\n });\n\n return tippyProps;\n}\n\nexport function normalizeClassName(className: string | string[]): string[] {\n const classes = isString(className) ? className.split(' ') : className;\n\n return classes.map((klass) => klass?.trim()).filter(Boolean);\n}\n\nexport function coerceCssPixelValue<T>(value: T): string {\n if (isNil(value)) {\n return '';\n }\n\n return typeof value === 'string' ? value : `${value}px`;\n}\n\nfunction isString(value: unknown): value is string {\n return typeof value === 'string';\n}\n\nfunction isNil(value: any): value is undefined | null {\n return value === undefined || value === null;\n}\n\nfunction coerceElement(element: TippyElement) {\n return element instanceof ElementRef ? element.nativeElement : element;\n}\n\nlet observer: IntersectionObserver;\nconst elementHiddenHandlers = new WeakMap<Element, () => void>();\nexport function observeVisibility(host: Element, hiddenHandler: () => void) {\n observer ??= new IntersectionObserver((entries: IntersectionObserverEntry[]) => {\n entries.forEach((entry) => {\n if (!entry.isIntersecting) {\n elementHiddenHandlers.get(entry.target)!();\n }\n });\n });\n elementHiddenHandlers.set(host, hiddenHandler);\n observer.observe(host);\n\n return () => {\n elementHiddenHandlers.delete(host);\n observer.unobserve(host);\n };\n}\n","import { Instance, Props } from 'tippy.js';\nimport { ElementRef, InjectionToken } from '@angular/core';\nimport { ResolveViewRef, ViewOptions } from '@ngneat/overview';\n\nexport interface CreateOptions extends Partial<TippyProps>, ViewOptions {\n variation: string;\n preserveView: boolean;\n className: string | string[];\n data: any;\n}\n\nexport type NgChanges<Component extends object, Props = ExcludeFunctions<Component>> = {\n [Key in keyof Props]: {\n previousValue: Props[Key];\n currentValue: Props[Key];\n firstChange: boolean;\n isFirstChange(): boolean;\n };\n};\n\ntype MarkFunctionPropertyNames<Component> = {\n [Key in keyof Component]: Component[Key] extends Function ? never : Key;\n}[keyof Component];\n\ntype ExcludeFunctions<T extends object> = Pick<T, MarkFunctionPropertyNames<T>>;\n\nexport const TIPPY_CONFIG = new InjectionToken<Partial<TippyConfig>>('Tippy config', {\n providedIn: 'root',\n factory() {\n return {};\n }\n});\nexport const TIPPY_REF = new InjectionToken<TippyInstance>('TIPPY_REF');\n\nexport interface TippyInstance extends Instance {\n data?: any;\n}\n\nexport type TippyProps = Props;\n\nexport interface TippyConfig extends TippyProps {\n variations: Record<string, Partial<TippyProps>>;\n defaultVariation: keyof TippyConfig['variations'];\n beforeRender?: (text: string) => string;\n zIndexGetter?(): number;\n}\n\nexport type TippyElement = ElementRef | Element;\n\nexport interface ExtendedTippyInstance<T> extends TippyInstance {\n view: ResolveViewRef<T>;\n $viewOptions: ViewOptions;\n context?: ViewOptions['context'];\n}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n Injector,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n PLATFORM_ID,\n ViewContainerRef,\n} from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\nimport tippy, { Instance } from 'tippy.js';\nimport { fromEvent, merge, Subject } from 'rxjs';\nimport { filter, switchMap, takeUntil } from 'rxjs/operators';\nimport { Content, isComponent, isString, isTemplateRef, ViewOptions, ViewRef, ViewService } from '@ngneat/overview';\n\nimport {\n coerceCssPixelValue,\n dimensionsChanges,\n inView,\n normalizeClassName,\n observeVisibility,\n onlyTippyProps,\n overflowChanges,\n} from './utils';\nimport { NgChanges, TIPPY_CONFIG, TIPPY_REF, TippyConfig, TippyInstance, TippyProps } from './tippy.types';\n\nconst defaultAppendTo = document.body;\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[tp]',\n exportAs: 'tippy',\n standalone: true,\n})\nexport class TippyDirective implements OnChanges, AfterViewInit, OnDestroy, OnInit {\n static ngAcceptInputType_useTextContent: boolean | '';\n\n @Input('tp') content: Content | undefined | null;\n\n @Input('tpAppendTo') set appendTo(appendTo: TippyProps['appendTo']) {\n this.updateProps({ appendTo });\n }\n\n @Input('tpDelay') delay: TippyProps['delay'];\n @Input('tpDuration') duration: TippyProps['duration'];\n @Input('tpHideOnClick') hideOnClick: TippyProps['hideOnClick'];\n @Input('tpInteractive') interactive: TippyProps['interactive'];\n @Input('tpInteractiveBorder') interactiveBorder: TippyProps['interactiveBorder'];\n @Input('tpMaxWidth') maxWidth: TippyProps['maxWidth'];\n @Input('tpOffset') offset: TippyProps['offset'];\n @Input('tpPlacement') placement: TippyProps['placement'];\n @Input('tpPopperOptions') popperOptions: TippyProps['popperOptions'];\n @Input('tpShowOnCreate') showOnCreate: TippyProps['showOnCreate'];\n @Input('tpTrigger') trigger: TippyProps['trigger'];\n @Input('tpTriggerTarget') triggerTarget: TippyProps['triggerTarget'];\n @Input('tpZIndex') zIndex: TippyProps['zIndex'];\n @Input('tpAnimation') animation: TippyProps['animation'];\n @Input('tpUseTextContent') useTextContent: boolean;\n @Input('tpIsLazy') isLazy: boolean;\n @Input('tpVariation') variation: string;\n @Input('tpIsEnabled') isEnabled: boolean;\n @Input('tpClassName') className: string | string[];\n @Input('tpOnlyTextOverflow') onlyTextOverflow = false;\n @Input('tpData') data: any;\n @Input('tpUseHostWidth') useHostWidth = false;\n @Input('tpHideOnEscape') hideOnEscape = false;\n @Input('tpDetectChangesComponent') detectChangesComponent = true;\n @Input('tpPopperWidth') popperWidth: number | string;\n @Input('tpHost') customHost: HTMLElement;\n @Input('tpIsVisible') isVisible = false;\n\n @Output('tpVisible') visible = new EventEmitter<boolean>();\n\n protected instance: TippyInstance;\n protected viewRef: ViewRef;\n protected destroyed = new Subject<void>();\n protected props: Partial<TippyConfig>;\n protected enabled = true;\n protected variationDefined = false;\n protected viewOptions$: ViewOptions;\n\n /**\n * We had use `visible` event emitter previously as a `takeUntil` subscriber in multiple places\n * within the directive.\n * This is for internal use only; thus we don't have to deal with the `visible` event emitter\n * and trigger change detections only when the `visible` event is being listened outside\n * in the template (`<button [tippy]=\"...\" (visible)=\"...\"></button>`).\n */\n protected visibleInternal = new Subject<boolean>();\n private visibilityObserverCleanup: () => void | undefined;\n\n constructor(\n @Inject(PLATFORM_ID) protected platformId: string,\n @Inject(TIPPY_CONFIG) protected globalConfig: TippyConfig,\n protected injector: Injector,\n protected viewService: ViewService,\n protected vcr: ViewContainerRef,\n protected zone: NgZone,\n protected hostRef: ElementRef\n ) {}\n\n ngOnChanges(changes: NgChanges<TippyDirective>) {\n if (isPlatformServer(this.platformId)) return;\n\n let props: Partial<TippyConfig> = Object.keys(changes).reduce((acc, change) => {\n if (change === 'isVisible') return acc;\n\n acc[change] = changes[change].currentValue;\n\n return acc;\n }, {});\n\n let variation: string;\n\n if (isChanged<NgChanges<TippyDirective>>('variation', changes)) {\n variation = changes.variation.currentValue;\n this.variationDefined = true;\n } else if (!this.variationDefined) {\n variation = this.globalConfig.defaultVariation;\n this.variationDefined = true;\n }\n\n if (variation) {\n props = {\n ...this.globalConfig.variations[variation],\n ...props,\n };\n }\n\n if (isChanged<NgChanges<TippyDirective>>('isEnabled', changes)) {\n this.enabled = changes.isEnabled.currentValue;\n this.setStatus();\n }\n\n if (isChanged<NgChanges<TippyDirective>>('isVisible', changes)) {\n this.isVisible ? this.show() : this.hide();\n }\n\n this.updateProps(props);\n }\n\n ngOnInit() {\n if (this.useHostWidth) {\n this.props.maxWidth = this.hostWidth;\n }\n }\n\n ngAfterViewInit() {\n if (isPlatformServer(this.platformId)) return;\n\n this.zone.runOutsideAngular(() => {\n if (this.isLazy) {\n if (this.onlyTextOverflow) {\n inView(this.host)\n .pipe(\n switchMap(() => overflowChanges(this.host)),\n takeUntil(this.destroyed)\n )\n .subscribe((isElementOverflow) => {\n this.checkOverflow(isElementOverflow);\n });\n } else {\n inView(this.host)\n .pipe(takeUntil(this.destroyed))\n .subscribe(() => {\n this.createInstance();\n });\n }\n } else if (this.onlyTextOverflow) {\n overflowChanges(this.host)\n .pipe(takeUntil(this.destroyed))\n .subscribe((isElementOverflow) => {\n this.checkOverflow(isElementOverflow);\n });\n } else {\n this.createInstance();\n }\n });\n }\n\n ngOnDestroy() {\n this.destroyed.next();\n this.instance?.destroy();\n this.destroyView();\n this.visibilityObserverCleanup?.();\n }\n\n destroyView() {\n this.viewOptions$ = null;\n this.viewRef?.destroy();\n this.viewRef = null;\n }\n\n /**\n * This method is useful when you append to an element that you might remove from the DOM.\n * In such cases we want to hide the tooltip and let it go through the destroy lifecycle.\n * For example, if you have a grid row with an element that you toggle using the display CSS property on hover.\n */\n observeHostVisibility() {\n // We don't want to observe the host visibility if we are appending to the body.\n if (this.props.appendTo && this.props.appendTo !== defaultAppendTo) {\n this.visibilityObserverCleanup?.();\n return this.visibleInternal\n .asObservable()\n .pipe(takeUntil(this.destroyed))\n .subscribe((isVisible) => {\n if (isVisible) {\n this.zone.runOutsideAngular(() => {\n this.visibilityObserverCleanup = observeVisibility(this.instance.reference, () => {\n this.hide();\n // Because we have animation on the popper it doesn't close immediately doesn't trigger the `tpVisible` event.\n // Tippy is relying on the transitionend event to trigger the `onHidden` callback.\n // https://github.com/atomiks/tippyjs/blob/master/src/dom-utils.ts#L117\n // This event never fires because the popper is removed from the DOM before the transition ends.\n if (this.props.animation) {\n this.onHidden();\n }\n });\n });\n } else {\n this.visibilityObserverCleanup?.();\n }\n });\n }\n }\n\n show() {\n this.instance?.show();\n }\n\n hide() {\n this.instance?.hide();\n }\n\n enable() {\n this.instance?.enable();\n }\n\n disable() {\n this.instance?.disable();\n }\n\n protected updateProps(props: Partial<TippyConfig>) {\n this.setProps({ ...this.props, ...props });\n }\n\n protected setProps(props: Partial<TippyConfig>) {\n this.props = props;\n this.instance?.setProps(onlyTippyProps(props));\n }\n\n protected setStatus() {\n this.enabled ? this.instance?.enable() : this.instance?.disable();\n }\n\n protected get host(): HTMLElement {\n return this.customHost || this.hostRef.nativeElement;\n }\n\n protected get hostWidth(): number {\n return this.host.getBoundingClientRect().width;\n }\n\n protected createInstance() {\n if (!this.content && !coerceBooleanInput(this.useTextContent)) {\n return;\n }\n\n this.zone.runOutsideAngular(() => {\n this.instance = tippy(this.host, {\n allowHTML: true,\n appendTo: defaultAppendTo,\n ...(this.globalConfig.zIndexGetter ? { zIndex: this.globalConfig.zIndexGetter() } : {}),\n ...onlyTippyProps(this.globalConfig),\n ...onlyTippyProps(this.props),\n onMount: (instance) => {\n this.isVisible = true;\n this.visibleInternal.next(this.isVisible);\n if (this.visible.observed) {\n this.zone.run(() => this.visible.next(this.isVisible));\n }\n this.useHostWidth && this.listenToHostResize();\n this.globalConfig.onMount?.(instance);\n },\n onCreate: (instance) => {\n instance.popper.classList.add(`tippy-variation-${this.variation || this.globalConfig.defaultVariation}`);\n if (this.className) {\n for (const klass of normalizeClassName(this.className)) {\n instance.popper.classList.add(klass);\n }\n }\n this.globalConfig.onCreate?.(instance);\n if (this.isVisible === true) {\n instance.show();\n }\n },\n onShow: (instance) => {\n instance.reference.setAttribute('data-tippy-open', '');\n this.zone.run(() => {\n const content = this.resolveContent(instance);\n if (isString(content)) {\n instance.setProps({ allowHTML: false });\n\n if (!content?.trim()) {\n this.disable();\n } else {\n this.enable();\n }\n }\n\n instance.setContent(content);\n this.hideOnEscape && this.handleEscapeButton();\n });\n if (this.useHostWidth) {\n this.setInstanceWidth(instance, this.hostWidth);\n } else if (this.popperWidth) {\n this.setInstanceWidth(instance, this.popperWidth);\n }\n this.globalConfig.onShow?.(instance);\n },\n onHide(instance) {\n instance.reference.removeAttribute('data-tippy-open');\n },\n onHidden: (instance) => {\n this.onHidden(instance);\n },\n });\n\n this.setStatus();\n this.setProps(this.props);\n\n this.variation === 'contextMenu' && this.handleContextMenu();\n });\n }\n\n protected resolveContent(instance: TippyInstance) {\n if (!this.viewOptions$ && !isString(this.content)) {\n if (isComponent(this.content)) {\n this.instance.data = this.data;\n this.viewOptions$ = {\n injector: Injector.create({\n providers: [\n {\n provide: TIPPY_REF,\n useValue: this.instance,\n },\n ],\n parent: this.injector,\n }),\n };\n } else if (isTemplateRef(this.content)) {\n this.viewOptions$ = {\n context: {\n $implicit: this.hide.bind(this),\n data: this.data,\n },\n };\n }\n }\n\n this.viewRef = this.viewService.createView(this.content, {\n vcr: this.vcr,\n ...this.viewOptions$,\n });\n\n // We need to call detectChanges for onPush components to update the content\n if (this.detectChangesComponent && isComponent(this.content)) {\n this.viewRef.detectChanges();\n }\n\n let content = this.viewRef.getElement();\n\n if (coerceBooleanInput(this.useTextContent)) {\n content = instance.reference.textContent;\n }\n\n if (isString(content) && this.globalConfig.beforeRender) {\n content = this.globalConfig.beforeRender(content);\n }\n\n return content;\n }\n\n protected handleContextMenu() {\n fromEvent(this.host, 'contextmenu')\n .pipe(takeUntil(this.destroyed))\n .subscribe((event: MouseEvent) => {\n event.preventDefault();\n\n this.instance.setProps({\n getReferenceClientRect: () =>\n ({\n width: 0,\n height: 0,\n top: event.clientY,\n bottom: event.clientY,\n left: event.clientX,\n right: event.clientX,\n } as DOMRectReadOnly),\n });\n\n this.instance.show();\n });\n }\n\n protected handleEscapeButton(): void {\n this.zone.runOutsideAngular(() => {\n fromEvent(document.body, 'keydown')\n .pipe(\n filter(({ code }: KeyboardEvent) => code === 'Escape'),\n takeUntil(merge(this.destroyed, this.visibleInternal.pipe(filter((v) => !v))))\n )\n .subscribe(() => this.hide());\n });\n }\n\n protected checkOverflow(isElementOverflow: boolean) {\n if (isElementOverflow) {\n if (!this.instance) {\n this.createInstance();\n } else {\n this.instance.enable();\n }\n } else {\n this.instance?.disable();\n }\n }\n\n protected listenToHostResize() {\n dimensionsChanges(this.host)\n .pipe(takeUntil(merge(this.destroyed, this.visibleInternal)))\n .subscribe(() => {\n this.setInstanceWidth(this.instance, this.hostWidth);\n });\n }\n\n protected setInstanceWidth(instance: Instance, width: string | number) {\n const inPixels = coerceCssPixelValue(width);\n instance.popper.style.width = inPixels;\n instance.popper.style.maxWidth = inPixels;\n (instance.popper.firstElementChild as HTMLElement).style.maxWidth = inPixels;\n }\n\n private onHidden(instance: TippyInstance = this.instance) {\n this.destroyView();\n this.isVisible = false;\n this.visibleInternal.next(this.isVisible);\n if (this.visible.observed) {\n this.zone.run(() => this.visible.next(this.isVisible));\n }\n this.globalConfig.onHidden?.(instance);\n }\n}\n\nfunction isChanged<T extends object>(key: keyof T, changes: T) {\n return key in changes;\n}\n\nexport function coerceBooleanInput(value: any): boolean {\n return value != null && `${value}` !== 'false';\n}\n","import { TippyConfig } from './tippy.types';\n\ntype Variation = TippyConfig['variations'][0];\n\nexport const tooltipVariation: Variation = {\n theme: null,\n arrow: false,\n animation: 'scale',\n trigger: 'mouseenter',\n offset: [0, 5]\n};\n\nexport const popperVariation: Variation = {\n theme: 'light',\n arrow: true,\n offset: [0, 10],\n animation: null,\n trigger: 'click',\n interactive: true\n};\n\nexport function withContextMenuVariation(baseVariation: Variation): Variation {\n return {\n ...baseVariation,\n placement: 'right-start',\n trigger: 'manual',\n arrow: false,\n offset: [0, 0]\n };\n}\n","import { Inject, Injectable, Injector } from '@angular/core';\nimport tippy from 'tippy.js';\nimport { isComponent, isTemplateRef, ViewService } from '@ngneat/overview';\nimport { Content } from '@ngneat/overview';\nimport { CreateOptions, ExtendedTippyInstance, TIPPY_CONFIG, TIPPY_REF, TippyConfig } from './tippy.types';\nimport { normalizeClassName, onlyTippyProps } from './utils';\n\n@Injectable({ providedIn: 'root' })\nexport class TippyService {\n constructor(\n @Inject(TIPPY_CONFIG) private globalConfig: TippyConfig,\n private view: ViewService,\n private injector: Injector\n ) {}\n\n create<T extends Content>(host: Element, content: T, options: Partial<CreateOptions> = {}): ExtendedTippyInstance<T> {\n const variation = options.variation || this.globalConfig.defaultVariation;\n const config = {\n onShow: instance => {\n host.setAttribute('data-tippy-open', '');\n if (!instance.$viewOptions) {\n instance.$viewOptions = {};\n\n if (isTemplateRef(content)) {\n instance.$viewOptions.context = {\n $implicit: instance.hide.bind(instance),\n ...options.context\n };\n } else if (isComponent(content)) {\n instance.context = options.context;\n instance.data = options.data;\n instance.$viewOptions.injector = Injector.create({\n providers: [\n {\n provide: TIPPY_REF,\n useValue: instance\n }\n ],\n parent: options.injector || this.injector\n });\n }\n }\n if (!instance.view) {\n instance.view = this.view.createView(content, { ...options, ...instance.$viewOptions });\n }\n instance.setContent(instance.view.getElement());\n options?.onShow?.(instance);\n },\n onHidden: instance => {\n host.removeAttribute('data-tippy-open');\n\n if (!options.preserveView) {\n instance.view.destroy();\n instance.view = null;\n }\n options?.onHidden?.(instance);\n },\n ...onlyTippyProps(this.globalConfig),\n ...this.globalConfig.variations[variation],\n ...onlyTippyProps(options),\n onCreate: instance => {\n instance.popper.classList.add(`tippy-variation-${variation}`);\n if (options.className) {\n for (const klass of normalizeClassName(options.className)) {\n instance.popper.classList.add(klass);\n }\n }\n this.globalConfig.onCreate?.(instance);\n options.onCreate?.(instance);\n }\n };\n\n return tippy(host, config) as ExtendedTippyInstance<T>;\n }\n}\n","import { TippyConfig, TIPPY_CONFIG } from './tippy.types';\n\nexport function provideTippyConfig(config: Partial<TippyConfig> = {}) {\n return {\n provide: TIPPY_CONFIG,\n useValue: config\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["isString"],"mappings":"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"}
|
package/lib/defaults.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TippyConfig } from './tippy.types';
|
|
2
|
-
|
|
2
|
+
type Variation = TippyConfig['variations'][0];
|
|
3
3
|
export declare const tooltipVariation: Variation;
|
|
4
4
|
export declare const popperVariation: Variation;
|
|
5
5
|
export declare function withContextMenuVariation(baseVariation: Variation): Variation;
|