@ngneat/helipopper 10.2.0-alpha.1 → 10.2.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/README.md +5 -3
- package/config/public-api.d.ts +1 -2
- package/config/tippy.types.d.ts +0 -4
- package/fesm2022/ngneat-helipopper-config.mjs +2 -16
- package/fesm2022/ngneat-helipopper-config.mjs.map +1 -1
- package/fesm2022/ngneat-helipopper.mjs +38 -24
- package/fesm2022/ngneat-helipopper.mjs.map +1 -1
- package/lib/inject-tippy.d.ts +4 -0
- package/lib/tippy.directive.d.ts +3 -2
- package/lib/utils.d.ts +3 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/config/inject-tippy.d.ts +0 -2
package/README.md
CHANGED
|
@@ -49,7 +49,7 @@ $ pnpm i @ngneat/helipopper
|
|
|
49
49
|
Configure it as shown below:
|
|
50
50
|
|
|
51
51
|
```ts
|
|
52
|
-
import { provideTippyLoader provideTippyConfig, tooltipVariation, popperVariation } from '@ngneat/helipopper/config';
|
|
52
|
+
import { provideTippyLoader, provideTippyConfig, tooltipVariation, popperVariation } from '@ngneat/helipopper/config';
|
|
53
53
|
|
|
54
54
|
bootstrapApplication(AppComponent, {
|
|
55
55
|
providers: [
|
|
@@ -129,7 +129,8 @@ export const tooltipVariation = {
|
|
|
129
129
|
### Use `Component` as content
|
|
130
130
|
|
|
131
131
|
```ts
|
|
132
|
-
import {
|
|
132
|
+
import type { TippyInstance } from '@ngneat/helipopper/config';
|
|
133
|
+
import { injectTippyRef } from '@ngneat/helipopper';
|
|
133
134
|
|
|
134
135
|
@Component()
|
|
135
136
|
class MyComponent {
|
|
@@ -315,7 +316,8 @@ tpVisible = new EventEmitter<boolean>();
|
|
|
315
316
|
### Create `tippy` Programmatically
|
|
316
317
|
|
|
317
318
|
```typescript
|
|
318
|
-
import {
|
|
319
|
+
import type { TippyInstance } from '@ngneat/helipopper/config';
|
|
320
|
+
import { TippyService } from '@ngneat/helipopper';
|
|
319
321
|
|
|
320
322
|
class Component {
|
|
321
323
|
@ViewChild('inputName') inputName: ElementRef;
|
package/config/public-api.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
export { tooltipVariation, popperVariation, withContextMenuVariation } from './defaults';
|
|
2
|
-
export { CreateOptions, TippyInstance, TippyProps, ExtendedTippyProps, TippyElement, ExtendedTippyInstance, TippyConfig, TippyLoader, TIPPY_LOADER,
|
|
2
|
+
export { CreateOptions, TippyInstance, TippyProps, ExtendedTippyProps, TippyElement, ExtendedTippyInstance, TippyConfig, TippyLoader, TIPPY_LOADER, TIPPY_CONFIG, } from './tippy.types';
|
|
3
3
|
export { provideTippyLoader, provideTippyConfig } from './providers';
|
|
4
|
-
export { injectTippyRef } from './inject-tippy';
|
package/config/tippy.types.d.ts
CHANGED
|
@@ -2,9 +2,6 @@ import type tippy from 'tippy.js';
|
|
|
2
2
|
import type { Instance, Props } from 'tippy.js';
|
|
3
3
|
import { ElementRef, InjectionToken } from '@angular/core';
|
|
4
4
|
import type { ResolveViewRef, ViewOptions } from '@ngneat/overview';
|
|
5
|
-
export declare const enum TippyErrorCode {
|
|
6
|
-
TippyNotProvided = 1
|
|
7
|
-
}
|
|
8
5
|
export interface CreateOptions extends Partial<TippyProps>, ViewOptions {
|
|
9
6
|
variation: string;
|
|
10
7
|
preserveView: boolean;
|
|
@@ -32,7 +29,6 @@ export type TippyLoader = () => typeof tippy | Promise<{
|
|
|
32
29
|
default: typeof tippy;
|
|
33
30
|
}>;
|
|
34
31
|
export declare const TIPPY_LOADER: InjectionToken<TippyLoader>;
|
|
35
|
-
export declare const TIPPY_REF: InjectionToken<TippyInstance>;
|
|
36
32
|
export declare const TIPPY_CONFIG: InjectionToken<Partial<ExtendedTippyProps>>;
|
|
37
33
|
/** @internal */
|
|
38
34
|
declare global {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InjectionToken, makeEnvironmentProviders
|
|
1
|
+
import { InjectionToken, makeEnvironmentProviders } from '@angular/core';
|
|
2
2
|
|
|
3
3
|
const tooltipVariation = {
|
|
4
4
|
theme: undefined,
|
|
@@ -26,7 +26,6 @@ function withContextMenuVariation(baseVariation) {
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
const TIPPY_LOADER = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'TIPPY_LOADER' : '');
|
|
29
|
-
const TIPPY_REF = /* @__PURE__ */ new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'TIPPY_REF' : '');
|
|
30
29
|
const TIPPY_CONFIG = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'TIPPY_CONFIG' : '');
|
|
31
30
|
|
|
32
31
|
function provideTippyLoader(loader) {
|
|
@@ -36,22 +35,9 @@ function provideTippyConfig(config) {
|
|
|
36
35
|
return { provide: TIPPY_CONFIG, useValue: config };
|
|
37
36
|
}
|
|
38
37
|
|
|
39
|
-
function injectTippyRef() {
|
|
40
|
-
const instance = inject(TIPPY_REF, { optional: true });
|
|
41
|
-
if (!instance) {
|
|
42
|
-
if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
43
|
-
throw new Error('tp is not provided in the current context or on one of its ancestors');
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
throw new Error(`[tp]: ${1 /* TippyErrorCode.TippyNotProvided */}`);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return instance;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
38
|
/**
|
|
53
39
|
* Generated bundle index. Do not edit.
|
|
54
40
|
*/
|
|
55
41
|
|
|
56
|
-
export { TIPPY_CONFIG, TIPPY_LOADER,
|
|
42
|
+
export { TIPPY_CONFIG, TIPPY_LOADER, popperVariation, provideTippyConfig, provideTippyLoader, tooltipVariation, withContextMenuVariation };
|
|
57
43
|
//# sourceMappingURL=ngneat-helipopper-config.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngneat-helipopper-config.mjs","sources":["../../../../projects/ngneat/helipopper/config/src/defaults.ts","../../../../projects/ngneat/helipopper/config/src/tippy.types.ts","../../../../projects/ngneat/helipopper/config/src/providers.ts","../../../../projects/ngneat/helipopper/config/src/
|
|
1
|
+
{"version":3,"file":"ngneat-helipopper-config.mjs","sources":["../../../../projects/ngneat/helipopper/config/src/defaults.ts","../../../../projects/ngneat/helipopper/config/src/tippy.types.ts","../../../../projects/ngneat/helipopper/config/src/providers.ts","../../../../projects/ngneat/helipopper/config/src/ngneat-helipopper-config.ts"],"sourcesContent":["import type { TippyProps } from './tippy.types';\n\n// A variation is a set of predefined tippy properties.\ntype Variation = Partial<TippyProps>;\n\nexport const tooltipVariation: Variation = {\n theme: undefined,\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: undefined,\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 type tippy from 'tippy.js';\nimport type { Instance, Props } from 'tippy.js';\nimport { ElementRef, InjectionToken } from '@angular/core';\nimport type { 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 interface TippyInstance extends Instance {\n data?: any;\n}\n\nexport type TippyProps = Props;\n\nexport interface ExtendedTippyProps extends TippyProps {\n variations: Record<string, Partial<TippyProps>>;\n defaultVariation: keyof ExtendedTippyProps['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> | null;\n $viewOptions: ViewOptions;\n context?: ViewOptions['context'];\n}\n\nexport type TippyConfig = Partial<ExtendedTippyProps>;\n\nexport type TippyLoader = () => typeof tippy | Promise<{ default: typeof tippy }>;\n\nexport const TIPPY_LOADER = new InjectionToken<TippyLoader>(\n typeof ngDevMode !== 'undefined' && ngDevMode ? 'TIPPY_LOADER' : ''\n);\n\nexport const TIPPY_CONFIG = new InjectionToken<TippyConfig>(\n typeof ngDevMode !== 'undefined' && ngDevMode ? 'TIPPY_CONFIG' : ''\n);\n\n/** @internal */\ndeclare global {\n // Indicates whether the application is operating in development mode.\n // `ngDevMode` is a global flag set by Angular CLI.\n // https://github.com/angular/angular-cli/blob/9b883fe28862c96720c7899b431174e9b47ad7e4/packages/angular/build/src/tools/esbuild/application-code-bundle.ts#L604\n const ngDevMode: boolean;\n}\n","import { makeEnvironmentProviders, type Provider } from '@angular/core';\n\nimport {\n TIPPY_CONFIG,\n TIPPY_LOADER,\n type TippyLoader,\n type TippyConfig,\n} from './tippy.types';\n\nexport function provideTippyLoader(loader: TippyLoader) {\n return makeEnvironmentProviders([{ provide: TIPPY_LOADER, useValue: loader }]);\n}\n\nexport function provideTippyConfig(config: TippyConfig): Provider {\n return { provide: TIPPY_CONFIG, useValue: config };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;AAKa,MAAA,gBAAgB,GAAc;AACzC,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,KAAK,EAAE,KAAK;AACZ,IAAA,SAAS,EAAE,OAAO;AAClB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;;AAGH,MAAA,eAAe,GAAc;AACxC,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACf,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,WAAW,EAAE,IAAI;;AAGb,SAAU,wBAAwB,CAAC,aAAwB,EAAA;IAC/D,OAAO;AACL,QAAA,GAAG,aAAa;AAChB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;KACf;AACH;;MCOa,YAAY,GAAG,IAAI,cAAc,CAC5C,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,GAAG,cAAc,GAAG,EAAE;MAGxD,YAAY,GAAG,IAAI,cAAc,CAC5C,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,GAAG,cAAc,GAAG,EAAE;;ACjC/D,SAAU,kBAAkB,CAAC,MAAmB,EAAA;AACpD,IAAA,OAAO,wBAAwB,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;AAChF;AAEM,SAAU,kBAAkB,CAAC,MAAmB,EAAA;IACpD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE;AACpD;;ACfA;;AAEG;;;;"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { ElementRef, inject, NgZone, Injectable, booleanAttribute, input, model, EventEmitter, computed, DestroyRef, PLATFORM_ID, Injector, effect, untracked, Directive, Inject, Output } from '@angular/core';
|
|
2
|
+
import { ElementRef, inject, NgZone, Injectable, booleanAttribute, InjectionToken, input, output, model, EventEmitter, computed, DestroyRef, PLATFORM_ID, Injector, effect, untracked, Directive, Inject, Output } from '@angular/core';
|
|
3
3
|
import { isPlatformServer } from '@angular/common';
|
|
4
4
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
5
5
|
import { Observable, defer, from, map as map$1, of, shareReplay, Subject, fromEvent, merge } from 'rxjs';
|
|
6
6
|
import { auditTime, map, switchMap, filter, takeUntil } from 'rxjs/operators';
|
|
7
7
|
import * as i1 from '@ngneat/overview';
|
|
8
|
-
import { isString
|
|
9
|
-
import { TIPPY_LOADER,
|
|
10
|
-
export { TIPPY_CONFIG, TIPPY_REF, injectTippyRef, popperVariation, provideTippyConfig, tooltipVariation, withContextMenuVariation } from '@ngneat/helipopper/config';
|
|
8
|
+
import { isString, isComponent, isTemplateRef } from '@ngneat/overview';
|
|
9
|
+
import { TIPPY_LOADER, TIPPY_CONFIG } from '@ngneat/helipopper/config';
|
|
11
10
|
|
|
12
11
|
// Let's retrieve the native `IntersectionObserver` implementation hidden by
|
|
13
12
|
// `__zone_symbol__IntersectionObserver`. This would be the unpatched version of
|
|
@@ -59,9 +58,6 @@ function overflowChanges(host) {
|
|
|
59
58
|
return dimensionsChanges(element).pipe(auditTime(150), map(() => isElementOverflow(element)));
|
|
60
59
|
}
|
|
61
60
|
function dimensionsChanges(target) {
|
|
62
|
-
return resizeObserverStrategy(target);
|
|
63
|
-
}
|
|
64
|
-
function resizeObserverStrategy(target) {
|
|
65
61
|
return new Observable((subscriber) => {
|
|
66
62
|
if (!supportsResizeObserver) {
|
|
67
63
|
subscriber.next();
|
|
@@ -107,21 +103,15 @@ function onlyTippyProps(allProps) {
|
|
|
107
103
|
return tippyProps;
|
|
108
104
|
}
|
|
109
105
|
function normalizeClassName(className) {
|
|
110
|
-
const classes =
|
|
106
|
+
const classes = typeof className === 'string' ? className.split(' ') : className;
|
|
111
107
|
return classes.map((klass) => klass?.trim()).filter(Boolean);
|
|
112
108
|
}
|
|
113
109
|
function coerceCssPixelValue(value) {
|
|
114
|
-
if (
|
|
110
|
+
if (value == null) {
|
|
115
111
|
return '';
|
|
116
112
|
}
|
|
117
113
|
return typeof value === 'string' ? value : `${value}px`;
|
|
118
114
|
}
|
|
119
|
-
function isString(value) {
|
|
120
|
-
return typeof value === 'string';
|
|
121
|
-
}
|
|
122
|
-
function isNil(value) {
|
|
123
|
-
return value === undefined || value === null;
|
|
124
|
-
}
|
|
125
115
|
function coerceElement(element) {
|
|
126
116
|
return element instanceof ElementRef ? element.nativeElement : element;
|
|
127
117
|
}
|
|
@@ -192,6 +182,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
|
|
|
192
182
|
*/
|
|
193
183
|
const coerceBooleanAttribute = booleanAttribute;
|
|
194
184
|
|
|
185
|
+
const TIPPY_REF = /* @__PURE__ */ new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'TIPPY_REF' : '');
|
|
186
|
+
function injectTippyRef() {
|
|
187
|
+
const instance = inject(TIPPY_REF, { optional: true });
|
|
188
|
+
if (!instance) {
|
|
189
|
+
if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
190
|
+
throw new Error('tp is not provided in the current context or on one of its ancestors');
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
throw new Error(`[tp]: ${1 /* TippyErrorCode.TippyNotProvided */}`);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return instance;
|
|
197
|
+
}
|
|
198
|
+
|
|
195
199
|
// These are the default values used by `tippy.js`.
|
|
196
200
|
// We are providing them as default input values.
|
|
197
201
|
// The `tippy.js` repository has been archived and is unlikely to
|
|
@@ -296,11 +300,12 @@ class TippyDirective {
|
|
|
296
300
|
transform: coerceBooleanAttribute,
|
|
297
301
|
alias: 'tpHideOnEscape',
|
|
298
302
|
});
|
|
299
|
-
this.detectChangesComponent = input(true, { alias: 'tpDetectChangesComponent' });
|
|
300
303
|
this.popperWidth = input(undefined, {
|
|
301
304
|
alias: 'tpPopperWidth',
|
|
302
305
|
});
|
|
303
306
|
this.customHost = input(undefined, { alias: 'tpHost' });
|
|
307
|
+
this.onShow = output({ alias: 'tpOnShow' });
|
|
308
|
+
this.onHide = output({ alias: 'tpOnHide' });
|
|
304
309
|
this.isVisible = model(false, { alias: 'tpIsVisible' });
|
|
305
310
|
this.visible = new EventEmitter();
|
|
306
311
|
this.viewRef = null;
|
|
@@ -475,7 +480,7 @@ class TippyDirective {
|
|
|
475
480
|
// We're re-entering because we might create an Angular component,
|
|
476
481
|
// which should be done within the zone.
|
|
477
482
|
const content = this.ngZone.run(() => this.resolveContent(instance));
|
|
478
|
-
if (isString
|
|
483
|
+
if (isString(content)) {
|
|
479
484
|
instance.setProps({ allowHTML: false });
|
|
480
485
|
if (!content?.trim()) {
|
|
481
486
|
this.disable();
|
|
@@ -493,6 +498,7 @@ class TippyDirective {
|
|
|
493
498
|
this.setInstanceWidth(instance, this.popperWidth());
|
|
494
499
|
}
|
|
495
500
|
this.globalConfig.onShow?.(instance);
|
|
501
|
+
this.onShow.emit();
|
|
496
502
|
},
|
|
497
503
|
onHide(instance) {
|
|
498
504
|
instance.reference.removeAttribute('data-tippy-open');
|
|
@@ -511,7 +517,7 @@ class TippyDirective {
|
|
|
511
517
|
}
|
|
512
518
|
resolveContent(instance) {
|
|
513
519
|
const content = this.content();
|
|
514
|
-
if (!this.viewOptions$ && !isString
|
|
520
|
+
if (!this.viewOptions$ && !isString(content)) {
|
|
515
521
|
const injector = Injector.create({
|
|
516
522
|
providers: [
|
|
517
523
|
{
|
|
@@ -542,15 +548,22 @@ class TippyDirective {
|
|
|
542
548
|
vcr: this.vcr,
|
|
543
549
|
...this.viewOptions$,
|
|
544
550
|
});
|
|
545
|
-
// We need to call detectChanges for
|
|
546
|
-
if (
|
|
547
|
-
|
|
551
|
+
// We need to call `detectChanges` for OnPush components to update their content.
|
|
552
|
+
if (isComponent(content)) {
|
|
553
|
+
// `ɵcmp` is a component defition set for any component.
|
|
554
|
+
// Checking the `onPush` property of the component definition is a
|
|
555
|
+
// smarter way to determine whether we need to call `detectChanges()`,
|
|
556
|
+
// as users may be unaware of setting the binding.
|
|
557
|
+
const isOnPush = content.ɵcmp?.onPush;
|
|
558
|
+
if (isOnPush) {
|
|
559
|
+
this.viewRef.detectChanges();
|
|
560
|
+
}
|
|
548
561
|
}
|
|
549
562
|
let newContent = this.viewRef.getElement();
|
|
550
563
|
if (this.useTextContent()) {
|
|
551
564
|
newContent = instance.reference.textContent;
|
|
552
565
|
}
|
|
553
|
-
if (isString
|
|
566
|
+
if (isString(newContent) && this.globalConfig.beforeRender) {
|
|
554
567
|
newContent = this.globalConfig.beforeRender(newContent);
|
|
555
568
|
}
|
|
556
569
|
return newContent;
|
|
@@ -618,6 +631,7 @@ class TippyDirective {
|
|
|
618
631
|
this.ngZone.run(() => this.visible.next(isVisible));
|
|
619
632
|
}
|
|
620
633
|
this.globalConfig.onHidden?.(instance);
|
|
634
|
+
this.onHide.emit();
|
|
621
635
|
}
|
|
622
636
|
isOverflowing$() {
|
|
623
637
|
const host = this.host();
|
|
@@ -651,7 +665,7 @@ class TippyDirective {
|
|
|
651
665
|
});
|
|
652
666
|
}
|
|
653
667
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: TippyDirective, deps: [{ token: TIPPY_CONFIG }, { token: i0.Injector }, { token: i1.ViewService }, { token: i0.ViewContainerRef }, { token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
654
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.0", type: TippyDirective, isStandalone: true, selector: "[tp]", inputs: { appendTo: { classPropertyName: "appendTo", publicName: "tpAppendTo", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "tp", isSignal: true, isRequired: false, transformFunction: null }, delay: { classPropertyName: "delay", publicName: "tpDelay", isSignal: true, isRequired: false, transformFunction: null }, duration: { classPropertyName: "duration", publicName: "tpDuration", isSignal: true, isRequired: false, transformFunction: null }, hideOnClick: { classPropertyName: "hideOnClick", publicName: "tpHideOnClick", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "tpInteractive", isSignal: true, isRequired: false, transformFunction: null }, interactiveBorder: { classPropertyName: "interactiveBorder", publicName: "tpInteractiveBorder", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "tpMaxWidth", isSignal: true, isRequired: false, transformFunction: null }, offset: { classPropertyName: "offset", publicName: "tpOffset", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "tpPlacement", isSignal: true, isRequired: false, transformFunction: null }, popperOptions: { classPropertyName: "popperOptions", publicName: "tpPopperOptions", isSignal: true, isRequired: false, transformFunction: null }, showOnCreate: { classPropertyName: "showOnCreate", publicName: "tpShowOnCreate", isSignal: true, isRequired: false, transformFunction: null }, trigger: { classPropertyName: "trigger", publicName: "tpTrigger", isSignal: true, isRequired: false, transformFunction: null }, triggerTarget: { classPropertyName: "triggerTarget", publicName: "tpTriggerTarget", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "tpZIndex", isSignal: true, isRequired: false, transformFunction: null }, animation: { classPropertyName: "animation", publicName: "tpAnimation", isSignal: true, isRequired: false, transformFunction: null }, useTextContent: { classPropertyName: "useTextContent", publicName: "tpUseTextContent", isSignal: true, isRequired: false, transformFunction: null }, isLazy: { classPropertyName: "isLazy", publicName: "tpIsLazy", isSignal: true, isRequired: false, transformFunction: null }, variation: { classPropertyName: "variation", publicName: "tpVariation", isSignal: true, isRequired: false, transformFunction: null }, isEnabled: { classPropertyName: "isEnabled", publicName: "tpIsEnabled", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "tpClassName", isSignal: true, isRequired: false, transformFunction: null }, onlyTextOverflow: { classPropertyName: "onlyTextOverflow", publicName: "tpOnlyTextOverflow", isSignal: true, isRequired: false, transformFunction: null }, staticWidthHost: { classPropertyName: "staticWidthHost", publicName: "tpStaticWidthHost", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "tpData", isSignal: true, isRequired: false, transformFunction: null }, useHostWidth: { classPropertyName: "useHostWidth", publicName: "tpUseHostWidth", isSignal: true, isRequired: false, transformFunction: null }, hideOnEscape: { classPropertyName: "hideOnEscape", publicName: "tpHideOnEscape", isSignal: true, isRequired: false, transformFunction: null },
|
|
668
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.0", type: TippyDirective, isStandalone: true, selector: "[tp]", inputs: { appendTo: { classPropertyName: "appendTo", publicName: "tpAppendTo", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "tp", isSignal: true, isRequired: false, transformFunction: null }, delay: { classPropertyName: "delay", publicName: "tpDelay", isSignal: true, isRequired: false, transformFunction: null }, duration: { classPropertyName: "duration", publicName: "tpDuration", isSignal: true, isRequired: false, transformFunction: null }, hideOnClick: { classPropertyName: "hideOnClick", publicName: "tpHideOnClick", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "tpInteractive", isSignal: true, isRequired: false, transformFunction: null }, interactiveBorder: { classPropertyName: "interactiveBorder", publicName: "tpInteractiveBorder", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "tpMaxWidth", isSignal: true, isRequired: false, transformFunction: null }, offset: { classPropertyName: "offset", publicName: "tpOffset", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "tpPlacement", isSignal: true, isRequired: false, transformFunction: null }, popperOptions: { classPropertyName: "popperOptions", publicName: "tpPopperOptions", isSignal: true, isRequired: false, transformFunction: null }, showOnCreate: { classPropertyName: "showOnCreate", publicName: "tpShowOnCreate", isSignal: true, isRequired: false, transformFunction: null }, trigger: { classPropertyName: "trigger", publicName: "tpTrigger", isSignal: true, isRequired: false, transformFunction: null }, triggerTarget: { classPropertyName: "triggerTarget", publicName: "tpTriggerTarget", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "tpZIndex", isSignal: true, isRequired: false, transformFunction: null }, animation: { classPropertyName: "animation", publicName: "tpAnimation", isSignal: true, isRequired: false, transformFunction: null }, useTextContent: { classPropertyName: "useTextContent", publicName: "tpUseTextContent", isSignal: true, isRequired: false, transformFunction: null }, isLazy: { classPropertyName: "isLazy", publicName: "tpIsLazy", isSignal: true, isRequired: false, transformFunction: null }, variation: { classPropertyName: "variation", publicName: "tpVariation", isSignal: true, isRequired: false, transformFunction: null }, isEnabled: { classPropertyName: "isEnabled", publicName: "tpIsEnabled", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "tpClassName", isSignal: true, isRequired: false, transformFunction: null }, onlyTextOverflow: { classPropertyName: "onlyTextOverflow", publicName: "tpOnlyTextOverflow", isSignal: true, isRequired: false, transformFunction: null }, staticWidthHost: { classPropertyName: "staticWidthHost", publicName: "tpStaticWidthHost", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "tpData", isSignal: true, isRequired: false, transformFunction: null }, useHostWidth: { classPropertyName: "useHostWidth", publicName: "tpUseHostWidth", isSignal: true, isRequired: false, transformFunction: null }, hideOnEscape: { classPropertyName: "hideOnEscape", publicName: "tpHideOnEscape", isSignal: true, isRequired: false, transformFunction: null }, popperWidth: { classPropertyName: "popperWidth", publicName: "tpPopperWidth", isSignal: true, isRequired: false, transformFunction: null }, customHost: { classPropertyName: "customHost", publicName: "tpHost", isSignal: true, isRequired: false, transformFunction: null }, isVisible: { classPropertyName: "isVisible", publicName: "tpIsVisible", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onShow: "tpOnShow", onHide: "tpOnHide", isVisible: "tpIsVisibleChange", visible: "tpVisible" }, exportAs: ["tippy"], usesOnChanges: true, ngImport: i0 }); }
|
|
655
669
|
}
|
|
656
670
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: TippyDirective, decorators: [{
|
|
657
671
|
type: Directive,
|
|
@@ -750,5 +764,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
|
|
|
750
764
|
* Generated bundle index. Do not edit.
|
|
751
765
|
*/
|
|
752
766
|
|
|
753
|
-
export { TippyDirective, TippyService, inView, overflowChanges };
|
|
767
|
+
export { TIPPY_REF, TippyDirective, TippyService, inView, injectTippyRef, overflowChanges };
|
|
754
768
|
//# sourceMappingURL=ngneat-helipopper.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngneat-helipopper.mjs","sources":["../../../../projects/ngneat/helipopper/src/lib/intersection-observer.ts","../../../../projects/ngneat/helipopper/src/lib/utils.ts","../../../../projects/ngneat/helipopper/src/lib/tippy.factory.ts","../../../../projects/ngneat/helipopper/src/lib/coercion.ts","../../../../projects/ngneat/helipopper/src/lib/tippy.directive.ts","../../../../projects/ngneat/helipopper/src/lib/tippy.service.ts","../../../../projects/ngneat/helipopper/src/ngneat-helipopper.ts"],"sourcesContent":["// Let's retrieve the native `IntersectionObserver` implementation hidden by\n// `__zone_symbol__IntersectionObserver`. This would be the unpatched version of\n// the observer present in zone.js environments.\n// Otherwise, if the user is using zoneless change detection (and zone.js is not included),\n// we fall back to the native implementation. Accessing the native implementation\n// allows us to remove `runOutsideAngular` calls and reduce indentation,\n// making the code a bit more readable.\nexport const IntersectionObserver: typeof globalThis.IntersectionObserver =\n (globalThis as any)['__zone_symbol__IntersectionObserver'] ||\n globalThis.IntersectionObserver;\n","import { ElementRef } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { auditTime, map } from 'rxjs/operators';\nimport type { TippyElement } from '@ngneat/helipopper/config';\n\nimport { IntersectionObserver } from './intersection-observer';\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\nexport function isElementOverflow(host: HTMLElement): boolean {\n // Don't access the `offsetWidth` multiple times since it triggers layout updates.\n const hostOffsetWidth = host.offsetWidth;\n\n return (\n hostOffsetWidth > host.parentElement!.offsetWidth ||\n hostOffsetWidth < host.scrollWidth\n );\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: any = {};\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 'staticWidthHost',\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 type tippy from 'tippy.js';\nimport { inject, Injectable, NgZone } from '@angular/core';\nimport { defer, from, map, type Observable, of, shareReplay } from 'rxjs';\nimport { TIPPY_LOADER, type TippyProps } from '@ngneat/helipopper/config';\n\n// We need to use `isPromise` instead of checking whether\n// `value instanceof Promise`. In zone.js patched environments, `global.Promise`\n// is the `ZoneAwarePromise`.\n// `import(...)` returns a native promise (not a `ZoneAwarePromise`), causing\n// `instanceof` check to be falsy.\nfunction isPromise<T>(value: any): value is Promise<T> {\n return typeof value?.then === 'function';\n}\n\n@Injectable({ providedIn: 'root' })\nexport class TippyFactory {\n private readonly _ngZone = inject(NgZone);\n\n private readonly _loader = inject(TIPPY_LOADER);\n\n private _tippyImpl$: Observable<typeof tippy> | null = null;\n\n /**\n * This returns an observable because the user should provide a `loader`\n * function, which may return a promise if the tippy.js library is to be\n * loaded asynchronously.\n */\n create(target: HTMLElement, props?: Partial<TippyProps>) {\n // We use `shareReplay` to ensure that subsequent emissions are\n // synchronous and to avoid triggering the `defer` callback repeatedly\n // when new subscribers arrive.\n this._tippyImpl$ ||= defer(() => {\n const maybeTippy = this._ngZone.runOutsideAngular(() => this._loader());\n return isPromise(maybeTippy)\n ? from(maybeTippy).pipe(map((tippy) => tippy.default))\n : of(maybeTippy);\n }).pipe(shareReplay());\n\n return this._tippyImpl$.pipe(\n map((tippy) => {\n return this._ngZone.runOutsideAngular(() => tippy(target, props));\n })\n );\n }\n}\n","import { booleanAttribute as originalBooleanAttribute } from '@angular/core';\n\ntype BooleanInput = boolean | `${boolean}` | '' | null | undefined;\n\n/**\n * Transforms a value (typically a string) to a boolean.\n * Intended to be used as a transform function of an input.\n *\n * @see https://material.angular.io/cdk/coercion/overview\n */\nconst coerceBooleanAttribute: (value: BooleanInput) => boolean = originalBooleanAttribute;\n\nexport { coerceBooleanAttribute };\n","import {\n AfterViewInit,\n computed,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n EventEmitter,\n inject,\n Inject,\n Injector,\n input,\n InputSignal,\n model,\n NgZone,\n OnChanges,\n OnInit,\n Output,\n PLATFORM_ID,\n SimpleChanges,\n untracked,\n ViewContainerRef,\n} from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport type { Instance } from 'tippy.js';\nimport { fromEvent, merge, Observable, Subject } from 'rxjs';\nimport { filter, map, switchMap, takeUntil } from 'rxjs/operators';\nimport {\n Content,\n isComponent,\n isString,\n isTemplateRef,\n ViewOptions,\n ViewRef,\n ViewService,\n} from '@ngneat/overview';\n\nimport {\n coerceCssPixelValue,\n dimensionsChanges,\n inView,\n isElementOverflow,\n normalizeClassName,\n observeVisibility,\n onlyTippyProps,\n overflowChanges,\n} from './utils';\nimport {\n TIPPY_CONFIG,\n TIPPY_REF,\n TippyConfig,\n TippyInstance,\n TippyProps,\n} from '@ngneat/helipopper/config';\nimport { TippyFactory } from './tippy.factory';\nimport { coerceBooleanAttribute } from './coercion';\n\n// These are the default values used by `tippy.js`.\n// We are providing them as default input values.\n// The `tippy.js` repository has been archived and is unlikely to\n// change in the future, so it is safe to use these values as defaults.\nconst defaultAppendTo: TippyProps['appendTo'] = () => document.body;\nconst defaultDelay: TippyProps['delay'] = 0;\nconst defaultDuration: TippyProps['duration'] = [300, 250];\nconst defaultInteractiveBorder: TippyProps['interactiveBorder'] = 2;\nconst defaultMaxWidth: TippyProps['maxWidth'] = 350;\nconst defaultOffset: TippyProps['offset'] = [0, 10];\nconst defaultPlacement: TippyProps['placement'] = 'top';\nconst defaultTrigger: TippyProps['trigger'] = 'mouseenter focus';\nconst defaultTriggerTarget: TippyProps['triggerTarget'] = null;\nconst defaultZIndex: TippyProps['zIndex'] = 9999;\nconst defaultAnimation: TippyProps['animation'] = 'fade';\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, OnInit {\n readonly appendTo = input(defaultAppendTo, {\n alias: 'tpAppendTo',\n });\n\n readonly content = input<Content | undefined | null>('', { alias: 'tp' });\n\n readonly delay = input(defaultDelay, {\n alias: 'tpDelay',\n });\n\n readonly duration = input(defaultDuration, {\n alias: 'tpDuration',\n });\n\n readonly hideOnClick = input(true, {\n alias: 'tpHideOnClick',\n });\n\n readonly interactive = input(false, {\n alias: 'tpInteractive',\n });\n\n readonly interactiveBorder = input(defaultInteractiveBorder, {\n alias: 'tpInteractiveBorder',\n });\n\n readonly maxWidth = input(defaultMaxWidth, {\n alias: 'tpMaxWidth',\n });\n\n // Note that some of the input signal types are declared explicitly because the compiler\n // also uses types from `@popperjs/core` and requires a type annotation.\n readonly offset: InputSignal<TippyProps['offset']> = input(defaultOffset, {\n alias: 'tpOffset',\n });\n\n readonly placement: InputSignal<TippyProps['placement']> = input(defaultPlacement, {\n alias: 'tpPlacement',\n });\n\n readonly popperOptions: InputSignal<TippyProps['popperOptions']> = input(\n {},\n {\n alias: 'tpPopperOptions',\n }\n );\n\n readonly showOnCreate = input(false, {\n alias: 'tpShowOnCreate',\n });\n\n readonly trigger = input(defaultTrigger, {\n alias: 'tpTrigger',\n });\n\n readonly triggerTarget = input(defaultTriggerTarget, {\n alias: 'tpTriggerTarget',\n });\n\n readonly zIndex = input(defaultZIndex, {\n alias: 'tpZIndex',\n });\n\n readonly animation = input(defaultAnimation, {\n alias: 'tpAnimation',\n });\n\n readonly useTextContent = input(false, {\n transform: coerceBooleanAttribute,\n alias: 'tpUseTextContent',\n });\n\n readonly isLazy = input(false, {\n transform: coerceBooleanAttribute,\n alias: 'tpIsLazy',\n });\n\n readonly variation = input<string | undefined>(undefined, { alias: 'tpVariation' });\n\n readonly isEnabled = input(true, { alias: 'tpIsEnabled' });\n\n readonly className = input<string | string[]>('', { alias: 'tpClassName' });\n\n readonly onlyTextOverflow = input(false, {\n transform: coerceBooleanAttribute,\n alias: 'tpOnlyTextOverflow',\n });\n\n readonly staticWidthHost = input(false, {\n transform: coerceBooleanAttribute,\n alias: 'tpStaticWidthHost',\n });\n\n readonly data = input<any>(undefined, { alias: 'tpData' });\n\n readonly useHostWidth = input(false, {\n transform: coerceBooleanAttribute,\n alias: 'tpUseHostWidth',\n });\n\n readonly hideOnEscape = input(false, {\n transform: coerceBooleanAttribute,\n alias: 'tpHideOnEscape',\n });\n\n readonly detectChangesComponent = input(true, { alias: 'tpDetectChangesComponent' });\n\n readonly popperWidth = input<number | string | undefined>(undefined, {\n alias: 'tpPopperWidth',\n });\n\n readonly customHost = input<HTMLElement | undefined>(undefined, { alias: 'tpHost' });\n\n readonly isVisible = model(false, { alias: 'tpIsVisible' });\n\n @Output('tpVisible') visible = new EventEmitter<boolean>();\n\n protected instance!: TippyInstance;\n protected viewRef: ViewRef | null = null;\n protected props!: Partial<TippyConfig>;\n protected variationDefined = false;\n protected viewOptions$: ViewOptions | null = null;\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: VoidFunction | null = null;\n private contentChanged = new Subject<void>();\n\n private host = computed<HTMLElement>(\n () => this.customHost() || this.hostRef.nativeElement\n );\n\n // It should be a getter because computations are cached until\n // any of the producers change.\n private get hostWidth() {\n return this.host().getBoundingClientRect().width;\n }\n\n private destroyRef = inject(DestroyRef);\n private isServer = isPlatformServer(inject(PLATFORM_ID));\n private tippyFactory = inject(TippyFactory);\n private destroyed = false;\n\n constructor(\n @Inject(TIPPY_CONFIG) protected globalConfig: TippyConfig,\n protected injector: Injector,\n protected viewService: ViewService,\n protected vcr: ViewContainerRef,\n protected ngZone: NgZone,\n protected hostRef: ElementRef\n ) {\n if (this.isServer) return;\n\n this.setupListeners();\n\n this.destroyRef.onDestroy(() => {\n this.destroyed = true;\n this.instance?.destroy();\n this.destroyView();\n this.visibilityObserverCleanup?.();\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.isServer) return;\n\n const variation = this.variation() || this.globalConfig.defaultVariation || '';\n const props = Object.keys(changes)\n // `isVisible` is not required as a prop since we update it manually\n // in an effect-like manner.\n .filter((key) => key !== 'isVisible')\n .reduce(\n (accumulator, key) => ({ ...accumulator, [key]: changes[key].currentValue }),\n { ...this.globalConfig.variations?.[variation] }\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 (this.isServer) return;\n\n if (this.isLazy()) {\n const hostInView$ = inView(this.host());\n\n if (this.onlyTextOverflow()) {\n hostInView$\n .pipe(\n switchMap(() => this.isOverflowing$()),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe((isElementOverflow) => {\n this.checkOverflow(isElementOverflow);\n });\n } else {\n hostInView$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.createInstance();\n });\n }\n } else if (this.onlyTextOverflow()) {\n this.isOverflowing$()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((isElementOverflow) => {\n this.checkOverflow(isElementOverflow);\n });\n } else {\n this.createInstance();\n }\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 if (this.isServer) return;\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 !== document.body) {\n this.visibilityObserverCleanup?.();\n return this.visibleInternal\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((isVisible) => {\n if (isVisible) {\n this.visibilityObserverCleanup = observeVisibility(\n this.instance.reference,\n () => {\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(isEnabled: boolean) {\n isEnabled ? this.instance?.enable() : this.instance?.disable();\n }\n\n protected createInstance() {\n if (!this.content() && !this.useTextContent()) {\n return;\n }\n\n this.tippyFactory\n .create(this.host(), {\n allowHTML: true,\n appendTo: document.body,\n ...(this.globalConfig.zIndexGetter\n ? { zIndex: this.globalConfig.zIndexGetter() }\n : {}),\n ...onlyTippyProps(this.globalConfig),\n ...onlyTippyProps(this.props),\n onMount: (instance) => {\n const isVisible = true;\n this.isVisible.set(isVisible);\n this.visibleInternal.next(isVisible);\n if (this.visible.observed) {\n this.ngZone.run(() => this.visible.next(isVisible));\n }\n this.useHostWidth() && this.listenToHostResize();\n this.globalConfig.onMount?.(instance);\n },\n onCreate: (instance) => {\n instance.popper.classList.add(\n `tippy-variation-${this.variation() || this.globalConfig.defaultVariation}`\n );\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\n // We're re-entering because we might create an Angular component,\n // which should be done within the zone.\n const content = this.ngZone.run(() => this.resolveContent(instance));\n\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 .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((instance) => {\n this.instance = instance;\n\n this.setStatus(this.isEnabled());\n this.setProps(this.props);\n\n this.variation() === 'contextMenu' && this.handleContextMenu();\n });\n }\n\n protected resolveContent(instance: TippyInstance) {\n const content = this.content();\n\n if (!this.viewOptions$ && !isString(content)) {\n const injector = Injector.create({\n providers: [\n {\n provide: TIPPY_REF,\n useValue: this.instance,\n },\n ],\n parent: this.injector,\n });\n\n const data = this.data();\n\n if (isComponent(content)) {\n this.instance.data = data;\n\n this.viewOptions$ = {\n injector,\n };\n } else if (isTemplateRef(content)) {\n this.viewOptions$ = {\n injector,\n context: {\n data,\n $implicit: this.hide.bind(this),\n },\n };\n }\n }\n\n this.viewRef = this.viewService.createView(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(content)) {\n this.viewRef.detectChanges();\n }\n\n let newContent = this.viewRef.getElement();\n\n if (this.useTextContent()) {\n newContent = instance.reference.textContent!;\n }\n\n if (isString(newContent) && this.globalConfig.beforeRender) {\n newContent = this.globalConfig.beforeRender(newContent);\n }\n\n return newContent;\n }\n\n protected handleContextMenu() {\n fromEvent<MouseEvent>(this.host(), 'contextmenu')\n .pipe(takeUntilDestroyed(this.destroyRef))\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 fromEvent<KeyboardEvent>(document.body, 'keydown')\n .pipe(\n filter(({ code }: KeyboardEvent) => code === 'Escape'),\n takeUntil(this.visibleInternal.pipe(filter((v) => !v))),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(() => this.hide());\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(this.visibleInternal), takeUntilDestroyed(this.destroyRef))\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 const isVisible = false;\n // `model()` uses `OutputEmitterRef` internally to emit events when the\n // signal changes. If the directive is destroyed, it will throw an error:\n // \"Unexpected emit for destroyed `OutputRef`\".\n if (!this.destroyed) {\n this.isVisible.set(isVisible);\n }\n this.visibleInternal.next(isVisible);\n if (this.visible.observed) {\n this.ngZone.run(() => this.visible.next(isVisible));\n }\n this.globalConfig.onHidden?.(instance);\n }\n\n private isOverflowing$() {\n const host = this.host();\n const notifiers$ = [overflowChanges(host)];\n\n // We need to handle cases where the host has a static width but the content might change\n if (this.staticWidthHost()) {\n notifiers$.push(\n this.contentChanged.pipe(\n // We need to wait for the content to be rendered before we can check if it's overflowing.\n switchMap(() => {\n return new Observable((subscriber) => {\n const id = window.requestAnimationFrame(() => {\n subscriber.next();\n subscriber.complete();\n });\n\n return () => cancelAnimationFrame(id);\n });\n }),\n map(() => isElementOverflow(host))\n )\n );\n }\n\n return merge(...notifiers$);\n }\n\n private setupListeners(): void {\n effect(() => {\n // Capture signal read to track its changes.\n this.content();\n untracked(() => this.contentChanged.next());\n });\n\n effect(() => this.setStatus(this.isEnabled()));\n\n effect(() => {\n const isVisible = this.isVisible();\n isVisible ? this.show() : this.hide();\n });\n }\n}\n","import { inject, Inject, Injectable, Injector } from '@angular/core';\nimport {\n isComponent,\n isTemplateRef,\n ResolveViewRef,\n ViewService,\n} from '@ngneat/overview';\nimport { Content } from '@ngneat/overview';\nimport type { Observable } from 'rxjs';\n\nimport {\n CreateOptions,\n ExtendedTippyInstance,\n TIPPY_CONFIG,\n TIPPY_REF,\n TippyConfig,\n TippyInstance,\n} from '@ngneat/helipopper/config';\nimport { normalizeClassName, onlyTippyProps } from './utils';\nimport { TippyFactory } from './tippy.factory';\n\n@Injectable({ providedIn: 'root' })\nexport class TippyService {\n private readonly _tippyFactory = inject(TippyFactory);\n\n constructor(\n @Inject(TIPPY_CONFIG) private globalConfig: TippyConfig,\n private view: ViewService,\n private injector: Injector\n ) {}\n\n create<T extends Content>(\n host: HTMLElement,\n content: T,\n options: Partial<CreateOptions> = {}\n ): Observable<ExtendedTippyInstance<T>> {\n const variation = options.variation || this.globalConfig.defaultVariation || '';\n const config = {\n onShow: (instance: ExtendedTippyInstance<T>) => {\n host.setAttribute('data-tippy-open', '');\n if (!instance.$viewOptions) {\n instance.$viewOptions = {\n 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 (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 }\n }\n\n instance.view ||= this.view.createView(content, {\n ...options,\n ...instance.$viewOptions,\n }) as ResolveViewRef<T>;\n\n instance.setContent(instance.view.getElement());\n options?.onShow?.(instance);\n },\n onHidden: (instance: ExtendedTippyInstance<T>) => {\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: TippyInstance) => {\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 this._tippyFactory.create(host, config) as Observable<\n ExtendedTippyInstance<T>\n >;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["map","originalBooleanAttribute","isString"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngneat-helipopper.mjs","sources":["../../../../projects/ngneat/helipopper/src/lib/intersection-observer.ts","../../../../projects/ngneat/helipopper/src/lib/utils.ts","../../../../projects/ngneat/helipopper/src/lib/tippy.factory.ts","../../../../projects/ngneat/helipopper/src/lib/coercion.ts","../../../../projects/ngneat/helipopper/src/lib/inject-tippy.ts","../../../../projects/ngneat/helipopper/src/lib/tippy.directive.ts","../../../../projects/ngneat/helipopper/src/lib/tippy.service.ts","../../../../projects/ngneat/helipopper/src/ngneat-helipopper.ts"],"sourcesContent":["// Let's retrieve the native `IntersectionObserver` implementation hidden by\n// `__zone_symbol__IntersectionObserver`. This would be the unpatched version of\n// the observer present in zone.js environments.\n// Otherwise, if the user is using zoneless change detection (and zone.js is not included),\n// we fall back to the native implementation. Accessing the native implementation\n// allows us to remove `runOutsideAngular` calls and reduce indentation,\n// making the code a bit more readable.\nexport const IntersectionObserver: typeof globalThis.IntersectionObserver =\n (globalThis as any)['__zone_symbol__IntersectionObserver'] ||\n globalThis.IntersectionObserver;\n","import { ElementRef } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { auditTime, map } from 'rxjs/operators';\nimport type { TippyElement } from '@ngneat/helipopper/config';\n\nimport { IntersectionObserver } from './intersection-observer';\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 const enum TippyErrorCode {\n TippyNotProvided = 1,\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\nexport function isElementOverflow(host: HTMLElement): boolean {\n // Don't access the `offsetWidth` multiple times since it triggers layout updates.\n const hostOffsetWidth = host.offsetWidth;\n\n return (\n hostOffsetWidth > host.parentElement!.offsetWidth ||\n hostOffsetWidth < host.scrollWidth\n );\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 new Observable<boolean>((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: any = {};\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 'staticWidthHost',\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 = typeof className === 'string' ? className.split(' ') : className;\n\n return classes.map((klass) => klass?.trim()).filter(Boolean);\n}\n\nexport function coerceCssPixelValue<T>(value: T): string {\n if (value == null) {\n return '';\n }\n\n return typeof value === 'string' ? value : `${value}px`;\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 type tippy from 'tippy.js';\nimport { inject, Injectable, NgZone } from '@angular/core';\nimport { defer, from, map, type Observable, of, shareReplay } from 'rxjs';\nimport { TIPPY_LOADER, type TippyProps } from '@ngneat/helipopper/config';\n\n// We need to use `isPromise` instead of checking whether\n// `value instanceof Promise`. In zone.js patched environments, `global.Promise`\n// is the `ZoneAwarePromise`.\n// `import(...)` returns a native promise (not a `ZoneAwarePromise`), causing\n// `instanceof` check to be falsy.\nfunction isPromise<T>(value: any): value is Promise<T> {\n return typeof value?.then === 'function';\n}\n\n@Injectable({ providedIn: 'root' })\nexport class TippyFactory {\n private readonly _ngZone = inject(NgZone);\n\n private readonly _loader = inject(TIPPY_LOADER);\n\n private _tippyImpl$: Observable<typeof tippy> | null = null;\n\n /**\n * This returns an observable because the user should provide a `loader`\n * function, which may return a promise if the tippy.js library is to be\n * loaded asynchronously.\n */\n create(target: HTMLElement, props?: Partial<TippyProps>) {\n // We use `shareReplay` to ensure that subsequent emissions are\n // synchronous and to avoid triggering the `defer` callback repeatedly\n // when new subscribers arrive.\n this._tippyImpl$ ||= defer(() => {\n const maybeTippy = this._ngZone.runOutsideAngular(() => this._loader());\n return isPromise(maybeTippy)\n ? from(maybeTippy).pipe(map((tippy) => tippy.default))\n : of(maybeTippy);\n }).pipe(shareReplay());\n\n return this._tippyImpl$.pipe(\n map((tippy) => {\n return this._ngZone.runOutsideAngular(() => tippy(target, props));\n })\n );\n }\n}\n","import { booleanAttribute as originalBooleanAttribute } from '@angular/core';\n\ntype BooleanInput = boolean | `${boolean}` | '' | null | undefined;\n\n/**\n * Transforms a value (typically a string) to a boolean.\n * Intended to be used as a transform function of an input.\n *\n * @see https://material.angular.io/cdk/coercion/overview\n */\nconst coerceBooleanAttribute: (value: BooleanInput) => boolean = originalBooleanAttribute;\n\nexport { coerceBooleanAttribute };\n","import { inject, InjectionToken } from '@angular/core';\nimport type { TippyInstance } from '@ngneat/helipopper/config';\n\nimport { TippyErrorCode } from './utils';\n\nexport const TIPPY_REF = /* @__PURE__ */ new InjectionToken<TippyInstance>(\n typeof ngDevMode !== 'undefined' && ngDevMode ? 'TIPPY_REF' : ''\n);\n\nexport function injectTippyRef(): TippyInstance {\n const instance = inject(TIPPY_REF, { optional: true });\n\n if (!instance) {\n if (typeof ngDevMode !== 'undefined' && ngDevMode) {\n throw new Error(\n 'tp is not provided in the current context or on one of its ancestors'\n );\n } else {\n throw new Error(`[tp]: ${TippyErrorCode.TippyNotProvided}`);\n }\n }\n\n return instance;\n}\n","import {\n AfterViewInit,\n computed,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n EventEmitter,\n inject,\n Inject,\n Injector,\n input,\n InputSignal,\n model,\n NgZone,\n OnChanges,\n OnInit,\n output,\n Output,\n PLATFORM_ID,\n SimpleChanges,\n untracked,\n ViewContainerRef,\n} from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport type { Instance } from 'tippy.js';\nimport { fromEvent, merge, Observable, Subject } from 'rxjs';\nimport { filter, map, switchMap, takeUntil } from 'rxjs/operators';\nimport {\n Content,\n isComponent,\n isString,\n isTemplateRef,\n ViewOptions,\n ViewRef,\n ViewService,\n} from '@ngneat/overview';\n\nimport {\n coerceCssPixelValue,\n dimensionsChanges,\n inView,\n isElementOverflow,\n normalizeClassName,\n observeVisibility,\n onlyTippyProps,\n overflowChanges,\n} from './utils';\nimport {\n TIPPY_CONFIG,\n TippyConfig,\n TippyInstance,\n TippyProps,\n} from '@ngneat/helipopper/config';\nimport { TippyFactory } from './tippy.factory';\nimport { coerceBooleanAttribute } from './coercion';\nimport { TIPPY_REF } from './inject-tippy';\n\n// These are the default values used by `tippy.js`.\n// We are providing them as default input values.\n// The `tippy.js` repository has been archived and is unlikely to\n// change in the future, so it is safe to use these values as defaults.\nconst defaultAppendTo: TippyProps['appendTo'] = () => document.body;\nconst defaultDelay: TippyProps['delay'] = 0;\nconst defaultDuration: TippyProps['duration'] = [300, 250];\nconst defaultInteractiveBorder: TippyProps['interactiveBorder'] = 2;\nconst defaultMaxWidth: TippyProps['maxWidth'] = 350;\nconst defaultOffset: TippyProps['offset'] = [0, 10];\nconst defaultPlacement: TippyProps['placement'] = 'top';\nconst defaultTrigger: TippyProps['trigger'] = 'mouseenter focus';\nconst defaultTriggerTarget: TippyProps['triggerTarget'] = null;\nconst defaultZIndex: TippyProps['zIndex'] = 9999;\nconst defaultAnimation: TippyProps['animation'] = 'fade';\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, OnInit {\n readonly appendTo = input(defaultAppendTo, {\n alias: 'tpAppendTo',\n });\n\n readonly content = input<Content | undefined | null>('', { alias: 'tp' });\n\n readonly delay = input(defaultDelay, {\n alias: 'tpDelay',\n });\n\n readonly duration = input(defaultDuration, {\n alias: 'tpDuration',\n });\n\n readonly hideOnClick = input(true, {\n alias: 'tpHideOnClick',\n });\n\n readonly interactive = input(false, {\n alias: 'tpInteractive',\n });\n\n readonly interactiveBorder = input(defaultInteractiveBorder, {\n alias: 'tpInteractiveBorder',\n });\n\n readonly maxWidth = input(defaultMaxWidth, {\n alias: 'tpMaxWidth',\n });\n\n // Note that some of the input signal types are declared explicitly because the compiler\n // also uses types from `@popperjs/core` and requires a type annotation.\n readonly offset: InputSignal<TippyProps['offset']> = input(defaultOffset, {\n alias: 'tpOffset',\n });\n\n readonly placement: InputSignal<TippyProps['placement']> = input(defaultPlacement, {\n alias: 'tpPlacement',\n });\n\n readonly popperOptions: InputSignal<TippyProps['popperOptions']> = input(\n {},\n {\n alias: 'tpPopperOptions',\n }\n );\n\n readonly showOnCreate = input(false, {\n alias: 'tpShowOnCreate',\n });\n\n readonly trigger = input(defaultTrigger, {\n alias: 'tpTrigger',\n });\n\n readonly triggerTarget = input(defaultTriggerTarget, {\n alias: 'tpTriggerTarget',\n });\n\n readonly zIndex = input(defaultZIndex, {\n alias: 'tpZIndex',\n });\n\n readonly animation = input(defaultAnimation, {\n alias: 'tpAnimation',\n });\n\n readonly useTextContent = input(false, {\n transform: coerceBooleanAttribute,\n alias: 'tpUseTextContent',\n });\n\n readonly isLazy = input(false, {\n transform: coerceBooleanAttribute,\n alias: 'tpIsLazy',\n });\n\n readonly variation = input<string | undefined>(undefined, { alias: 'tpVariation' });\n\n readonly isEnabled = input(true, { alias: 'tpIsEnabled' });\n\n readonly className = input<string | string[]>('', { alias: 'tpClassName' });\n\n readonly onlyTextOverflow = input(false, {\n transform: coerceBooleanAttribute,\n alias: 'tpOnlyTextOverflow',\n });\n\n readonly staticWidthHost = input(false, {\n transform: coerceBooleanAttribute,\n alias: 'tpStaticWidthHost',\n });\n\n readonly data = input<any>(undefined, { alias: 'tpData' });\n\n readonly useHostWidth = input(false, {\n transform: coerceBooleanAttribute,\n alias: 'tpUseHostWidth',\n });\n\n readonly hideOnEscape = input(false, {\n transform: coerceBooleanAttribute,\n alias: 'tpHideOnEscape',\n });\n\n readonly popperWidth = input<number | string | undefined>(undefined, {\n alias: 'tpPopperWidth',\n });\n\n readonly customHost = input<HTMLElement | undefined>(undefined, { alias: 'tpHost' });\n\n readonly onShow = output<void>({ alias: 'tpOnShow' });\n\n readonly onHide = output<void>({ alias: 'tpOnHide' });\n\n readonly isVisible = model(false, { alias: 'tpIsVisible' });\n\n @Output('tpVisible') visible = new EventEmitter<boolean>();\n\n protected instance!: TippyInstance;\n protected viewRef: ViewRef | null = null;\n protected props!: Partial<TippyConfig>;\n protected variationDefined = false;\n protected viewOptions$: ViewOptions | null = null;\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: VoidFunction | null = null;\n private contentChanged = new Subject<void>();\n\n private host = computed<HTMLElement>(\n () => this.customHost() || this.hostRef.nativeElement\n );\n\n // It should be a getter because computations are cached until\n // any of the producers change.\n private get hostWidth() {\n return this.host().getBoundingClientRect().width;\n }\n\n private destroyRef = inject(DestroyRef);\n private isServer = isPlatformServer(inject(PLATFORM_ID));\n private tippyFactory = inject(TippyFactory);\n private destroyed = false;\n\n constructor(\n @Inject(TIPPY_CONFIG) protected globalConfig: TippyConfig,\n protected injector: Injector,\n protected viewService: ViewService,\n protected vcr: ViewContainerRef,\n protected ngZone: NgZone,\n protected hostRef: ElementRef\n ) {\n if (this.isServer) return;\n\n this.setupListeners();\n\n this.destroyRef.onDestroy(() => {\n this.destroyed = true;\n this.instance?.destroy();\n this.destroyView();\n this.visibilityObserverCleanup?.();\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.isServer) return;\n\n const variation = this.variation() || this.globalConfig.defaultVariation || '';\n const props = Object.keys(changes)\n // `isVisible` is not required as a prop since we update it manually\n // in an effect-like manner.\n .filter((key) => key !== 'isVisible')\n .reduce(\n (accumulator, key) => ({ ...accumulator, [key]: changes[key].currentValue }),\n { ...this.globalConfig.variations?.[variation] }\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 (this.isServer) return;\n\n if (this.isLazy()) {\n const hostInView$ = inView(this.host());\n\n if (this.onlyTextOverflow()) {\n hostInView$\n .pipe(\n switchMap(() => this.isOverflowing$()),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe((isElementOverflow) => {\n this.checkOverflow(isElementOverflow);\n });\n } else {\n hostInView$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.createInstance();\n });\n }\n } else if (this.onlyTextOverflow()) {\n this.isOverflowing$()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((isElementOverflow) => {\n this.checkOverflow(isElementOverflow);\n });\n } else {\n this.createInstance();\n }\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 if (this.isServer) return;\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 !== document.body) {\n this.visibilityObserverCleanup?.();\n return this.visibleInternal\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((isVisible) => {\n if (isVisible) {\n this.visibilityObserverCleanup = observeVisibility(\n this.instance.reference,\n () => {\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(isEnabled: boolean) {\n isEnabled ? this.instance?.enable() : this.instance?.disable();\n }\n\n protected createInstance() {\n if (!this.content() && !this.useTextContent()) {\n return;\n }\n\n this.tippyFactory\n .create(this.host(), {\n allowHTML: true,\n appendTo: document.body,\n ...(this.globalConfig.zIndexGetter\n ? { zIndex: this.globalConfig.zIndexGetter() }\n : {}),\n ...onlyTippyProps(this.globalConfig),\n ...onlyTippyProps(this.props),\n onMount: (instance) => {\n const isVisible = true;\n this.isVisible.set(isVisible);\n this.visibleInternal.next(isVisible);\n if (this.visible.observed) {\n this.ngZone.run(() => this.visible.next(isVisible));\n }\n this.useHostWidth() && this.listenToHostResize();\n this.globalConfig.onMount?.(instance);\n },\n onCreate: (instance) => {\n instance.popper.classList.add(\n `tippy-variation-${this.variation() || this.globalConfig.defaultVariation}`\n );\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\n // We're re-entering because we might create an Angular component,\n // which should be done within the zone.\n const content = this.ngZone.run(() => this.resolveContent(instance));\n\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 this.onShow.emit();\n },\n onHide(instance) {\n instance.reference.removeAttribute('data-tippy-open');\n },\n onHidden: (instance) => {\n this.onHidden(instance);\n },\n })\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((instance) => {\n this.instance = instance;\n\n this.setStatus(this.isEnabled());\n this.setProps(this.props);\n\n this.variation() === 'contextMenu' && this.handleContextMenu();\n });\n }\n\n protected resolveContent(instance: TippyInstance) {\n const content = this.content();\n\n if (!this.viewOptions$ && !isString(content)) {\n const injector = Injector.create({\n providers: [\n {\n provide: TIPPY_REF,\n useValue: this.instance,\n },\n ],\n parent: this.injector,\n });\n\n const data = this.data();\n\n if (isComponent(content)) {\n this.instance.data = data;\n\n this.viewOptions$ = {\n injector,\n };\n } else if (isTemplateRef(content)) {\n this.viewOptions$ = {\n injector,\n context: {\n data,\n $implicit: this.hide.bind(this),\n },\n };\n }\n }\n\n this.viewRef = this.viewService.createView(content!, {\n vcr: this.vcr,\n ...this.viewOptions$,\n });\n\n // We need to call `detectChanges` for OnPush components to update their content.\n if (isComponent(content)) {\n // `ɵcmp` is a component defition set for any component.\n // Checking the `onPush` property of the component definition is a\n // smarter way to determine whether we need to call `detectChanges()`,\n // as users may be unaware of setting the binding.\n const isOnPush = (content as { ɵcmp?: { onPush: boolean } }).ɵcmp?.onPush;\n if (isOnPush) {\n this.viewRef.detectChanges();\n }\n }\n\n let newContent = this.viewRef.getElement();\n\n if (this.useTextContent()) {\n newContent = instance.reference.textContent!;\n }\n\n if (isString(newContent) && this.globalConfig.beforeRender) {\n newContent = this.globalConfig.beforeRender(newContent);\n }\n\n return newContent;\n }\n\n protected handleContextMenu() {\n fromEvent<MouseEvent>(this.host(), 'contextmenu')\n .pipe(takeUntilDestroyed(this.destroyRef))\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 fromEvent<KeyboardEvent>(document.body, 'keydown')\n .pipe(\n filter(({ code }: KeyboardEvent) => code === 'Escape'),\n takeUntil(this.visibleInternal.pipe(filter((v) => !v))),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(() => this.hide());\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(this.visibleInternal), takeUntilDestroyed(this.destroyRef))\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 const isVisible = false;\n // `model()` uses `OutputEmitterRef` internally to emit events when the\n // signal changes. If the directive is destroyed, it will throw an error:\n // \"Unexpected emit for destroyed `OutputRef`\".\n if (!this.destroyed) {\n this.isVisible.set(isVisible);\n }\n this.visibleInternal.next(isVisible);\n if (this.visible.observed) {\n this.ngZone.run(() => this.visible.next(isVisible));\n }\n this.globalConfig.onHidden?.(instance);\n this.onHide.emit();\n }\n\n private isOverflowing$() {\n const host = this.host();\n const notifiers$ = [overflowChanges(host)];\n\n // We need to handle cases where the host has a static width but the content might change\n if (this.staticWidthHost()) {\n notifiers$.push(\n this.contentChanged.pipe(\n // We need to wait for the content to be rendered before we can check if it's overflowing.\n switchMap(() => {\n return new Observable((subscriber) => {\n const id = window.requestAnimationFrame(() => {\n subscriber.next();\n subscriber.complete();\n });\n\n return () => cancelAnimationFrame(id);\n });\n }),\n map(() => isElementOverflow(host))\n )\n );\n }\n\n return merge(...notifiers$);\n }\n\n private setupListeners(): void {\n effect(() => {\n // Capture signal read to track its changes.\n this.content();\n untracked(() => this.contentChanged.next());\n });\n\n effect(() => this.setStatus(this.isEnabled()));\n\n effect(() => {\n const isVisible = this.isVisible();\n isVisible ? this.show() : this.hide();\n });\n }\n}\n","import { inject, Inject, Injectable, Injector } from '@angular/core';\nimport {\n isComponent,\n isTemplateRef,\n ResolveViewRef,\n ViewService,\n} from '@ngneat/overview';\nimport { Content } from '@ngneat/overview';\nimport type { Observable } from 'rxjs';\n\nimport {\n CreateOptions,\n ExtendedTippyInstance,\n TIPPY_CONFIG,\n TippyConfig,\n TippyInstance,\n} from '@ngneat/helipopper/config';\n\nimport { TIPPY_REF } from './inject-tippy';\nimport { TippyFactory } from './tippy.factory';\nimport { normalizeClassName, onlyTippyProps } from './utils';\n\n@Injectable({ providedIn: 'root' })\nexport class TippyService {\n private readonly _tippyFactory = inject(TippyFactory);\n\n constructor(\n @Inject(TIPPY_CONFIG) private globalConfig: TippyConfig,\n private view: ViewService,\n private injector: Injector\n ) {}\n\n create<T extends Content>(\n host: HTMLElement,\n content: T,\n options: Partial<CreateOptions> = {}\n ): Observable<ExtendedTippyInstance<T>> {\n const variation = options.variation || this.globalConfig.defaultVariation || '';\n const config = {\n onShow: (instance: ExtendedTippyInstance<T>) => {\n host.setAttribute('data-tippy-open', '');\n if (!instance.$viewOptions) {\n instance.$viewOptions = {\n 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 (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 }\n }\n\n instance.view ||= this.view.createView(content, {\n ...options,\n ...instance.$viewOptions,\n }) as ResolveViewRef<T>;\n\n instance.setContent(instance.view.getElement());\n options?.onShow?.(instance);\n },\n onHidden: (instance: ExtendedTippyInstance<T>) => {\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: TippyInstance) => {\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 this._tippyFactory.create(host, config) as Observable<\n ExtendedTippyInstance<T>\n >;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["map","originalBooleanAttribute"],"mappings":"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"}
|
package/lib/tippy.directive.d.ts
CHANGED
|
@@ -37,9 +37,10 @@ export declare class TippyDirective implements OnChanges, AfterViewInit, OnInit
|
|
|
37
37
|
readonly data: InputSignal<any>;
|
|
38
38
|
readonly useHostWidth: import("@angular/core").InputSignalWithTransform<boolean, boolean | "" | "false" | "true" | null | undefined>;
|
|
39
39
|
readonly hideOnEscape: import("@angular/core").InputSignalWithTransform<boolean, boolean | "" | "false" | "true" | null | undefined>;
|
|
40
|
-
readonly detectChangesComponent: InputSignal<boolean>;
|
|
41
40
|
readonly popperWidth: InputSignal<string | number | undefined>;
|
|
42
41
|
readonly customHost: InputSignal<HTMLElement | undefined>;
|
|
42
|
+
readonly onShow: import("@angular/core").OutputEmitterRef<void>;
|
|
43
|
+
readonly onHide: import("@angular/core").OutputEmitterRef<void>;
|
|
43
44
|
readonly isVisible: import("@angular/core").ModelSignal<boolean>;
|
|
44
45
|
visible: EventEmitter<boolean>;
|
|
45
46
|
protected instance: TippyInstance;
|
|
@@ -92,5 +93,5 @@ export declare class TippyDirective implements OnChanges, AfterViewInit, OnInit
|
|
|
92
93
|
private isOverflowing$;
|
|
93
94
|
private setupListeners;
|
|
94
95
|
static ɵfac: i0.ɵɵFactoryDeclaration<TippyDirective, never>;
|
|
95
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<TippyDirective, "[tp]", ["tippy"], { "appendTo": { "alias": "tpAppendTo"; "required": false; "isSignal": true; }; "content": { "alias": "tp"; "required": false; "isSignal": true; }; "delay": { "alias": "tpDelay"; "required": false; "isSignal": true; }; "duration": { "alias": "tpDuration"; "required": false; "isSignal": true; }; "hideOnClick": { "alias": "tpHideOnClick"; "required": false; "isSignal": true; }; "interactive": { "alias": "tpInteractive"; "required": false; "isSignal": true; }; "interactiveBorder": { "alias": "tpInteractiveBorder"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "tpMaxWidth"; "required": false; "isSignal": true; }; "offset": { "alias": "tpOffset"; "required": false; "isSignal": true; }; "placement": { "alias": "tpPlacement"; "required": false; "isSignal": true; }; "popperOptions": { "alias": "tpPopperOptions"; "required": false; "isSignal": true; }; "showOnCreate": { "alias": "tpShowOnCreate"; "required": false; "isSignal": true; }; "trigger": { "alias": "tpTrigger"; "required": false; "isSignal": true; }; "triggerTarget": { "alias": "tpTriggerTarget"; "required": false; "isSignal": true; }; "zIndex": { "alias": "tpZIndex"; "required": false; "isSignal": true; }; "animation": { "alias": "tpAnimation"; "required": false; "isSignal": true; }; "useTextContent": { "alias": "tpUseTextContent"; "required": false; "isSignal": true; }; "isLazy": { "alias": "tpIsLazy"; "required": false; "isSignal": true; }; "variation": { "alias": "tpVariation"; "required": false; "isSignal": true; }; "isEnabled": { "alias": "tpIsEnabled"; "required": false; "isSignal": true; }; "className": { "alias": "tpClassName"; "required": false; "isSignal": true; }; "onlyTextOverflow": { "alias": "tpOnlyTextOverflow"; "required": false; "isSignal": true; }; "staticWidthHost": { "alias": "tpStaticWidthHost"; "required": false; "isSignal": true; }; "data": { "alias": "tpData"; "required": false; "isSignal": true; }; "useHostWidth": { "alias": "tpUseHostWidth"; "required": false; "isSignal": true; }; "hideOnEscape": { "alias": "tpHideOnEscape"; "required": false; "isSignal": true; }; "
|
|
96
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TippyDirective, "[tp]", ["tippy"], { "appendTo": { "alias": "tpAppendTo"; "required": false; "isSignal": true; }; "content": { "alias": "tp"; "required": false; "isSignal": true; }; "delay": { "alias": "tpDelay"; "required": false; "isSignal": true; }; "duration": { "alias": "tpDuration"; "required": false; "isSignal": true; }; "hideOnClick": { "alias": "tpHideOnClick"; "required": false; "isSignal": true; }; "interactive": { "alias": "tpInteractive"; "required": false; "isSignal": true; }; "interactiveBorder": { "alias": "tpInteractiveBorder"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "tpMaxWidth"; "required": false; "isSignal": true; }; "offset": { "alias": "tpOffset"; "required": false; "isSignal": true; }; "placement": { "alias": "tpPlacement"; "required": false; "isSignal": true; }; "popperOptions": { "alias": "tpPopperOptions"; "required": false; "isSignal": true; }; "showOnCreate": { "alias": "tpShowOnCreate"; "required": false; "isSignal": true; }; "trigger": { "alias": "tpTrigger"; "required": false; "isSignal": true; }; "triggerTarget": { "alias": "tpTriggerTarget"; "required": false; "isSignal": true; }; "zIndex": { "alias": "tpZIndex"; "required": false; "isSignal": true; }; "animation": { "alias": "tpAnimation"; "required": false; "isSignal": true; }; "useTextContent": { "alias": "tpUseTextContent"; "required": false; "isSignal": true; }; "isLazy": { "alias": "tpIsLazy"; "required": false; "isSignal": true; }; "variation": { "alias": "tpVariation"; "required": false; "isSignal": true; }; "isEnabled": { "alias": "tpIsEnabled"; "required": false; "isSignal": true; }; "className": { "alias": "tpClassName"; "required": false; "isSignal": true; }; "onlyTextOverflow": { "alias": "tpOnlyTextOverflow"; "required": false; "isSignal": true; }; "staticWidthHost": { "alias": "tpStaticWidthHost"; "required": false; "isSignal": true; }; "data": { "alias": "tpData"; "required": false; "isSignal": true; }; "useHostWidth": { "alias": "tpUseHostWidth"; "required": false; "isSignal": true; }; "hideOnEscape": { "alias": "tpHideOnEscape"; "required": false; "isSignal": true; }; "popperWidth": { "alias": "tpPopperWidth"; "required": false; "isSignal": true; }; "customHost": { "alias": "tpHost"; "required": false; "isSignal": true; }; "isVisible": { "alias": "tpIsVisible"; "required": false; "isSignal": true; }; }, { "onShow": "tpOnShow"; "onHide": "tpOnHide"; "isVisible": "tpIsVisibleChange"; "visible": "tpVisible"; }, never, never, true, never>;
|
|
96
97
|
}
|
package/lib/utils.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
import type { TippyElement } from '@ngneat/helipopper/config';
|
|
3
|
+
export declare const enum TippyErrorCode {
|
|
4
|
+
TippyNotProvided = 1
|
|
5
|
+
}
|
|
3
6
|
export declare function inView(host: TippyElement, options?: IntersectionObserverInit): Observable<unknown>;
|
|
4
7
|
export declare function isElementOverflow(host: HTMLElement): boolean;
|
|
5
8
|
export declare function overflowChanges(host: TippyElement): Observable<boolean>;
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { TippyDirective } from './lib/tippy.directive';
|
|
2
2
|
export { TippyService } from './lib/tippy.service';
|
|
3
3
|
export { inView, overflowChanges } from './lib/utils';
|
|
4
|
-
export {
|
|
4
|
+
export { TIPPY_REF, injectTippyRef } from './lib/inject-tippy';
|
package/config/inject-tippy.d.ts
DELETED