@ngneat/helipopper 7.1.0 → 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 +103 -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 -107
- package/fesm2015/ngneat-helipopper.mjs +0 -634
- 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ25lYXQvaGVsaXBvcHBlci9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLElBQUksNEJBQTRCLEdBQUcsS0FBSyxDQUFDO0FBQ3pDLElBQUksc0JBQXNCLEdBQUcsS0FBSyxDQUFDO0FBRW5DLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFO0lBQ2pDLDRCQUE0QixHQUFHLHNCQUFzQixJQUFJLE1BQU0sQ0FBQztJQUNoRSxzQkFBc0IsR0FBRyxnQkFBZ0IsSUFBSSxNQUFNLENBQUM7Q0FDckQ7QUFFRCxNQUFNLFVBQVUsTUFBTSxDQUNwQixJQUFrQixFQUNsQixVQUFvQztJQUNsQyxJQUFJLEVBQUUsSUFBSTtJQUNWLFNBQVMsRUFBRSxHQUFHO0NBQ2Y7SUFFRCxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFcEMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1FBQ25DLElBQUksQ0FBQyw0QkFBNEIsRUFBRTtZQUNqQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEIsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RCLE9BQU87U0FDUjtRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksb0JBQW9CLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNwRCx1RkFBdUY7WUFDdkYsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDMUMsSUFBSSxL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QixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRTtnQkFDekIscUJBQXFCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUUsRUFBRSxDQUFDO2FBQzVDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUNILHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDL0MsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV2QixPQUFPLEdBQUcsRUFBRTtRQUNWLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBhdWRpdFRpbWUsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRpcHB5RWxlbWVudCB9IGZyb20gJy4vdGlwcHkudHlwZXMnO1xuaW1wb3J0IHsgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5kZWNsYXJlIGNvbnN0IFJlc2l6ZU9ic2VydmVyOiBhbnk7XG5cbmxldCBzdXBwb3J0c0ludGVyc2VjdGlvbk9ic2VydmVyID0gZmFsc2U7XG5sZXQgc3VwcG9ydHNSZXNpemVPYnNlcnZlciA9IGZhbHNlO1xuXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgc3VwcG9ydHNJbnRlcnNlY3Rpb25PYnNlcnZlciA9ICdJbnRlcnNlY3Rpb25PYnNlcnZlcicgaW4gd2luZG93O1xuICBzdXBwb3J0c1Jlc2l6ZU9ic2VydmVyID0gJ1Jlc2l6ZU9ic2VydmVyJyBpbiB3aW5kb3c7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpblZpZXcoXG4gIGhvc3Q6IFRpcHB5RWxlbWVudCxcbiAgb3B0aW9uczogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJJbml0ID0ge1xuICAgIHJvb3Q6IG51bGwsXG4gICAgdGhyZXNob2xkOiAwLjMsXG4gIH1cbikge1xuICBjb25zdCBlbGVtZW50ID0gY29lcmNlRWxlbWVudChob3N0KTtcblxuICByZXR1cm4gbmV3IE9ic2VydmFibGUoKHN1YnNjcmliZXIpID0+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();
|
|
@@ -81,10 +81,11 @@ function onlyTippyProps(allProps) {
|
|
|
81
81
|
'injector',
|
|
82
82
|
'preserveView',
|
|
83
83
|
'vcr',
|
|
84
|
-
'popperWidth'
|
|
84
|
+
'popperWidth',
|
|
85
|
+
'zIndexGetter',
|
|
85
86
|
];
|
|
86
87
|
const overriddenMethods = ['onShow', 'onHidden', 'onCreate'];
|
|
87
|
-
Object.keys(allProps).forEach(prop => {
|
|
88
|
+
Object.keys(allProps).forEach((prop) => {
|
|
88
89
|
if (!ownProps.includes(prop) && !overriddenMethods.includes(prop)) {
|
|
89
90
|
tippyProps[prop] = allProps[prop];
|
|
90
91
|
}
|
|
@@ -93,7 +94,7 @@ function onlyTippyProps(allProps) {
|
|
|
93
94
|
}
|
|
94
95
|
function normalizeClassName(className) {
|
|
95
96
|
const classes = isString(className) ? className.split(' ') : className;
|
|
96
|
-
return classes.map(klass => klass?.trim()).filter(Boolean);
|
|
97
|
+
return classes.map((klass) => klass?.trim()).filter(Boolean);
|
|
97
98
|
}
|
|
98
99
|
function coerceCssPixelValue(value) {
|
|
99
100
|
if (isNil(value)) {
|
|
@@ -110,6 +111,23 @@ function isNil(value) {
|
|
|
110
111
|
function coerceElement(element) {
|
|
111
112
|
return element instanceof ElementRef ? element.nativeElement : element;
|
|
112
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
|
+
}
|
|
113
131
|
|
|
114
132
|
const TIPPY_CONFIG = new InjectionToken('Tippy config', {
|
|
115
133
|
providedIn: 'root',
|
|
@@ -119,7 +137,11 @@ const TIPPY_CONFIG = new InjectionToken('Tippy config', {
|
|
|
119
137
|
});
|
|
120
138
|
const TIPPY_REF = new InjectionToken('TIPPY_REF');
|
|
121
139
|
|
|
140
|
+
const defaultAppendTo = document.body;
|
|
122
141
|
class TippyDirective {
|
|
142
|
+
set appendTo(appendTo) {
|
|
143
|
+
this.updateProps({ appendTo });
|
|
144
|
+
}
|
|
123
145
|
constructor(platformId, globalConfig, injector, viewService, vcr, zone, hostRef) {
|
|
124
146
|
this.platformId = platformId;
|
|
125
147
|
this.globalConfig = globalConfig;
|
|
@@ -167,7 +189,7 @@ class TippyDirective {
|
|
|
167
189
|
if (variation) {
|
|
168
190
|
props = {
|
|
169
191
|
...this.globalConfig.variations[variation],
|
|
170
|
-
...props
|
|
192
|
+
...props,
|
|
171
193
|
};
|
|
172
194
|
}
|
|
173
195
|
if (isChanged('isEnabled', changes)) {
|
|
@@ -177,7 +199,7 @@ class TippyDirective {
|
|
|
177
199
|
if (isChanged('isVisible', changes)) {
|
|
178
200
|
this.isVisible ? this.show() : this.hide();
|
|
179
201
|
}
|
|
180
|
-
this.
|
|
202
|
+
this.updateProps(props);
|
|
181
203
|
}
|
|
182
204
|
ngOnInit() {
|
|
183
205
|
if (this.useHostWidth) {
|
|
@@ -192,7 +214,7 @@ class TippyDirective {
|
|
|
192
214
|
if (this.onlyTextOverflow) {
|
|
193
215
|
inView(this.host)
|
|
194
216
|
.pipe(switchMap(() => overflowChanges(this.host)), takeUntil(this.destroyed))
|
|
195
|
-
.subscribe(isElementOverflow => {
|
|
217
|
+
.subscribe((isElementOverflow) => {
|
|
196
218
|
this.checkOverflow(isElementOverflow);
|
|
197
219
|
});
|
|
198
220
|
}
|
|
@@ -207,7 +229,7 @@ class TippyDirective {
|
|
|
207
229
|
else if (this.onlyTextOverflow) {
|
|
208
230
|
overflowChanges(this.host)
|
|
209
231
|
.pipe(takeUntil(this.destroyed))
|
|
210
|
-
.subscribe(isElementOverflow => {
|
|
232
|
+
.subscribe((isElementOverflow) => {
|
|
211
233
|
this.checkOverflow(isElementOverflow);
|
|
212
234
|
});
|
|
213
235
|
}
|
|
@@ -220,12 +242,46 @@ class TippyDirective {
|
|
|
220
242
|
this.destroyed.next();
|
|
221
243
|
this.instance?.destroy();
|
|
222
244
|
this.destroyView();
|
|
245
|
+
this.visibilityObserverCleanup?.();
|
|
223
246
|
}
|
|
224
247
|
destroyView() {
|
|
225
248
|
this.viewOptions$ = null;
|
|
226
249
|
this.viewRef?.destroy();
|
|
227
250
|
this.viewRef = null;
|
|
228
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
|
+
}
|
|
229
285
|
show() {
|
|
230
286
|
this.instance?.show();
|
|
231
287
|
}
|
|
@@ -238,6 +294,9 @@ class TippyDirective {
|
|
|
238
294
|
disable() {
|
|
239
295
|
this.instance?.disable();
|
|
240
296
|
}
|
|
297
|
+
updateProps(props) {
|
|
298
|
+
this.setProps({ ...this.props, ...props });
|
|
299
|
+
}
|
|
241
300
|
setProps(props) {
|
|
242
301
|
this.props = props;
|
|
243
302
|
this.instance?.setProps(onlyTippyProps(props));
|
|
@@ -258,11 +317,11 @@ class TippyDirective {
|
|
|
258
317
|
this.zone.runOutsideAngular(() => {
|
|
259
318
|
this.instance = tippy(this.host, {
|
|
260
319
|
allowHTML: true,
|
|
261
|
-
appendTo:
|
|
320
|
+
appendTo: defaultAppendTo,
|
|
262
321
|
...(this.globalConfig.zIndexGetter ? { zIndex: this.globalConfig.zIndexGetter() } : {}),
|
|
263
322
|
...onlyTippyProps(this.globalConfig),
|
|
264
323
|
...onlyTippyProps(this.props),
|
|
265
|
-
onMount: instance => {
|
|
324
|
+
onMount: (instance) => {
|
|
266
325
|
this.isVisible = true;
|
|
267
326
|
this.visibleInternal.next(this.isVisible);
|
|
268
327
|
if (this.visible.observed) {
|
|
@@ -271,7 +330,7 @@ class TippyDirective {
|
|
|
271
330
|
this.useHostWidth && this.listenToHostResize();
|
|
272
331
|
this.globalConfig.onMount?.(instance);
|
|
273
332
|
},
|
|
274
|
-
onCreate: instance => {
|
|
333
|
+
onCreate: (instance) => {
|
|
275
334
|
instance.popper.classList.add(`tippy-variation-${this.variation || this.globalConfig.defaultVariation}`);
|
|
276
335
|
if (this.className) {
|
|
277
336
|
for (const klass of normalizeClassName(this.className)) {
|
|
@@ -283,7 +342,7 @@ class TippyDirective {
|
|
|
283
342
|
instance.show();
|
|
284
343
|
}
|
|
285
344
|
},
|
|
286
|
-
onShow: instance => {
|
|
345
|
+
onShow: (instance) => {
|
|
287
346
|
instance.reference.setAttribute('data-tippy-open', '');
|
|
288
347
|
this.zone.run(() => {
|
|
289
348
|
const content = this.resolveContent(instance);
|
|
@@ -310,15 +369,9 @@ class TippyDirective {
|
|
|
310
369
|
onHide(instance) {
|
|
311
370
|
instance.reference.removeAttribute('data-tippy-open');
|
|
312
371
|
},
|
|
313
|
-
onHidden: instance => {
|
|
314
|
-
this.
|
|
315
|
-
|
|
316
|
-
this.visibleInternal.next(this.isVisible);
|
|
317
|
-
if (this.visible.observed) {
|
|
318
|
-
this.zone.run(() => this.visible.next(this.isVisible));
|
|
319
|
-
}
|
|
320
|
-
this.globalConfig.onHidden?.(instance);
|
|
321
|
-
}
|
|
372
|
+
onHidden: (instance) => {
|
|
373
|
+
this.onHidden(instance);
|
|
374
|
+
},
|
|
322
375
|
});
|
|
323
376
|
this.setStatus();
|
|
324
377
|
this.setProps(this.props);
|
|
@@ -334,25 +387,25 @@ class TippyDirective {
|
|
|
334
387
|
providers: [
|
|
335
388
|
{
|
|
336
389
|
provide: TIPPY_REF,
|
|
337
|
-
useValue: this.instance
|
|
338
|
-
}
|
|
390
|
+
useValue: this.instance,
|
|
391
|
+
},
|
|
339
392
|
],
|
|
340
|
-
parent: this.injector
|
|
341
|
-
})
|
|
393
|
+
parent: this.injector,
|
|
394
|
+
}),
|
|
342
395
|
};
|
|
343
396
|
}
|
|
344
397
|
else if (isTemplateRef(this.content)) {
|
|
345
398
|
this.viewOptions$ = {
|
|
346
399
|
context: {
|
|
347
400
|
$implicit: this.hide.bind(this),
|
|
348
|
-
data: this.data
|
|
349
|
-
}
|
|
401
|
+
data: this.data,
|
|
402
|
+
},
|
|
350
403
|
};
|
|
351
404
|
}
|
|
352
405
|
}
|
|
353
406
|
this.viewRef = this.viewService.createView(this.content, {
|
|
354
407
|
vcr: this.vcr,
|
|
355
|
-
...this.viewOptions
|
|
408
|
+
...this.viewOptions$,
|
|
356
409
|
});
|
|
357
410
|
// We need to call detectChanges for onPush components to update the content
|
|
358
411
|
if (this.detectChangesComponent && isComponent(this.content)) {
|
|
@@ -379,8 +432,8 @@ class TippyDirective {
|
|
|
379
432
|
top: event.clientY,
|
|
380
433
|
bottom: event.clientY,
|
|
381
434
|
left: event.clientX,
|
|
382
|
-
right: event.clientX
|
|
383
|
-
})
|
|
435
|
+
right: event.clientX,
|
|
436
|
+
}),
|
|
384
437
|
});
|
|
385
438
|
this.instance.show();
|
|
386
439
|
});
|
|
@@ -388,7 +441,7 @@ class TippyDirective {
|
|
|
388
441
|
handleEscapeButton() {
|
|
389
442
|
this.zone.runOutsideAngular(() => {
|
|
390
443
|
fromEvent(document.body, 'keydown')
|
|
391
|
-
.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)))))
|
|
392
445
|
.subscribe(() => this.hide());
|
|
393
446
|
});
|
|
394
447
|
}
|
|
@@ -418,16 +471,25 @@ class TippyDirective {
|
|
|
418
471
|
instance.popper.style.maxWidth = inPixels;
|
|
419
472
|
instance.popper.firstElementChild.style.maxWidth = inPixels;
|
|
420
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 }); }
|
|
421
485
|
}
|
|
422
|
-
|
|
423
|
-
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 });
|
|
424
|
-
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: [{
|
|
425
487
|
type: Directive,
|
|
426
488
|
args: [{
|
|
427
489
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
428
490
|
selector: '[tp]',
|
|
429
491
|
exportAs: 'tippy',
|
|
430
|
-
standalone: true
|
|
492
|
+
standalone: true,
|
|
431
493
|
}]
|
|
432
494
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
433
495
|
type: Inject,
|
|
@@ -621,10 +683,10 @@ class TippyService {
|
|
|
621
683
|
};
|
|
622
684
|
return tippy(host, config);
|
|
623
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' }); }
|
|
624
688
|
}
|
|
625
|
-
|
|
626
|
-
TippyService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: TippyService, providedIn: 'root' });
|
|
627
|
-
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: [{
|
|
628
690
|
type: Injectable,
|
|
629
691
|
args: [{ providedIn: 'root' }]
|
|
630
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;
|