ng-hub-ui-utils 22.3.2 → 22.5.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 +9 -1
- package/fesm2022/ng-hub-ui-utils.mjs +160 -114
- package/fesm2022/ng-hub-ui-utils.mjs.map +1 -1
- package/ng-hub-ui-utils-22.5.0.tgz +0 -0
- package/package.json +1 -1
- package/src/lib/styles/overlay.scss +4 -4
- package/src/lib/styles/tooltip.scss +56 -0
- package/types/ng-hub-ui-utils.d.ts +115 -25
- package/ng-hub-ui-utils-22.3.2.tgz +0 -0
package/README.md
CHANGED
|
@@ -364,6 +364,14 @@ import { TooltipDirective } from 'ng-hub-ui-utils';
|
|
|
364
364
|
export class ExampleComponent {}
|
|
365
365
|
```
|
|
366
366
|
|
|
367
|
+
> **Styles (required since 22.4.0).** The tooltip no longer injects its CSS at
|
|
368
|
+
> runtime — import its stylesheet once in your app (e.g. `styles.scss`), the same
|
|
369
|
+
> way as `overlay`:
|
|
370
|
+
>
|
|
371
|
+
> ```scss
|
|
372
|
+
> @use 'ng-hub-ui-utils/styles/tooltip';
|
|
373
|
+
> ```
|
|
374
|
+
|
|
367
375
|
Inputs: `tooltip` (text), `placement` (`top` | `bottom` | `left` | `right`, default `top`),
|
|
368
376
|
`delay` (fade ms, default `150`), `offset` (px, default `8`).
|
|
369
377
|
|
|
@@ -380,7 +388,7 @@ Theme it from any scope with `--hub-tooltip-*` variables:
|
|
|
380
388
|
|
|
381
389
|
Available tokens: `--hub-tooltip-bg`, `--hub-tooltip-color`, `--hub-tooltip-opacity`,
|
|
382
390
|
`--hub-tooltip-padding-x`, `--hub-tooltip-padding-y`, `--hub-tooltip-border-radius`,
|
|
383
|
-
`--hub-tooltip-font-size`, `--hub-tooltip-max-width`, `--hub-tooltip-
|
|
391
|
+
`--hub-tooltip-font-size`, `--hub-tooltip-max-width`, `--hub-tooltip-zindex`,
|
|
384
392
|
`--hub-tooltip-transition-duration`, `--hub-tooltip-shadow`, `--hub-tooltip-font-family`.
|
|
385
393
|
|
|
386
394
|
## 🚀 Installation
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { signal, computed, Injectable, effect, InjectionToken, inject, makeEnvironmentProviders, ElementRef, TemplateRef, createComponent, ApplicationRef, Pipe, ChangeDetectorRef, Injector, ViewContainerRef, NgZone, input,
|
|
2
|
+
import { signal, computed, Injectable, effect, InjectionToken, inject, makeEnvironmentProviders, ElementRef, TemplateRef, createComponent, ApplicationRef, Pipe, ChangeDetectorRef, Injector, ViewContainerRef, NgZone, input, Directive } from '@angular/core';
|
|
3
3
|
import { fromEvent, Observable, Subject, isObservable, EMPTY, of, timer, race } from 'rxjs';
|
|
4
4
|
import { takeUntil, map, filter, withLatestFrom, endWith, take, mergeMap, tap } from 'rxjs/operators';
|
|
5
5
|
import { DOCUMENT } from '@angular/common';
|
|
@@ -1778,8 +1778,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImpor
|
|
|
1778
1778
|
args: [{ providedIn: 'root' }]
|
|
1779
1779
|
}] });
|
|
1780
1780
|
|
|
1781
|
-
/** Id of the singleton stylesheet injected into the document head. */
|
|
1782
|
-
const TOOLTIP_STYLE_ID = 'hub-tooltip-styles';
|
|
1783
1781
|
/**
|
|
1784
1782
|
* Themeable custom properties forwarded from the host to the tooltip element.
|
|
1785
1783
|
*
|
|
@@ -1799,121 +1797,124 @@ const TOOLTIP_THEME_VARS = [
|
|
|
1799
1797
|
'--hub-tooltip-font-weight',
|
|
1800
1798
|
'--hub-tooltip-line-height',
|
|
1801
1799
|
'--hub-tooltip-max-width',
|
|
1802
|
-
'--hub-tooltip-
|
|
1800
|
+
'--hub-tooltip-zindex',
|
|
1803
1801
|
'--hub-tooltip-transition-duration',
|
|
1804
1802
|
'--hub-tooltip-shadow',
|
|
1805
1803
|
'--hub-tooltip-font-family'
|
|
1806
1804
|
];
|
|
1807
1805
|
/**
|
|
1808
|
-
*
|
|
1806
|
+
* Framework-agnostic tooltip engine.
|
|
1809
1807
|
*
|
|
1810
|
-
*
|
|
1811
|
-
*
|
|
1812
|
-
*
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
.hub-tooltip {
|
|
1816
|
-
position: absolute;
|
|
1817
|
-
z-index: var(--hub-tooltip-z-index, 1070);
|
|
1818
|
-
display: block;
|
|
1819
|
-
margin: 0;
|
|
1820
|
-
max-width: var(--hub-tooltip-max-width, 200px);
|
|
1821
|
-
padding: var(--hub-tooltip-padding-y, 0.25rem) var(--hub-tooltip-padding-x, 0.5rem);
|
|
1822
|
-
font-family: var(--hub-tooltip-font-family, var(--hub-ref-font-family, inherit));
|
|
1823
|
-
font-size: var(--hub-tooltip-font-size, 0.875rem);
|
|
1824
|
-
font-weight: var(--hub-tooltip-font-weight, 400);
|
|
1825
|
-
line-height: var(--hub-tooltip-line-height, 1.5);
|
|
1826
|
-
text-align: center;
|
|
1827
|
-
word-wrap: break-word;
|
|
1828
|
-
white-space: normal;
|
|
1829
|
-
color: var(--hub-tooltip-color, #fff);
|
|
1830
|
-
background-color: var(--hub-tooltip-bg, #000);
|
|
1831
|
-
border-radius: var(--hub-tooltip-border-radius, 0.375rem);
|
|
1832
|
-
box-shadow: var(--hub-tooltip-shadow, none);
|
|
1833
|
-
opacity: 0;
|
|
1834
|
-
pointer-events: none;
|
|
1835
|
-
transition: opacity var(--hub-tooltip-transition-duration, 0.15s) ease-in-out;
|
|
1836
|
-
}
|
|
1837
|
-
.hub-tooltip--show { opacity: var(--hub-tooltip-opacity, 0.9); }
|
|
1838
|
-
`;
|
|
1839
|
-
/**
|
|
1840
|
-
* Lightweight, dependency-free tooltip directive.
|
|
1808
|
+
* Binds hover/focus listeners to a host element and renders a body-portaled,
|
|
1809
|
+
* `--hub-tooltip-*`-themeable label on demand. It owns no Angular dependency, so
|
|
1810
|
+
* it can be reused both by the `[tooltip]` directive and by other primitives
|
|
1811
|
+
* (e.g. a badge overflow tooltip) that want the exact same visual contract
|
|
1812
|
+
* without re-implementing the DOM logic.
|
|
1841
1813
|
*
|
|
1842
|
-
*
|
|
1843
|
-
*
|
|
1844
|
-
* overflow container, and every visual aspect is themeable through
|
|
1845
|
-
* `--hub-tooltip-*` CSS variables.
|
|
1814
|
+
* Styles ship in `styles/tooltip.scss`. Import once in your app:
|
|
1815
|
+
* `@use 'ng-hub-ui-utils/styles/tooltip';`.
|
|
1846
1816
|
*/
|
|
1847
|
-
class
|
|
1848
|
-
|
|
1849
|
-
tooltipTitle = input.required({ ...(ngDevMode ? { debugName: "tooltipTitle" } : /* istanbul ignore next */ {}), alias: 'tooltip' });
|
|
1850
|
-
/** Placement of the tooltip relative to the host. */
|
|
1851
|
-
placement = input('top', /* @ts-ignore */
|
|
1852
|
-
...(ngDevMode ? [{ debugName: "placement" }] : /* istanbul ignore next */ []));
|
|
1853
|
-
/** Fade duration in milliseconds, also used as the removal delay on hide. */
|
|
1854
|
-
delay = input(150, /* @ts-ignore */
|
|
1855
|
-
...(ngDevMode ? [{ debugName: "delay" }] : /* istanbul ignore next */ []));
|
|
1856
|
-
/** Gap in pixels between the host and the tooltip. */
|
|
1857
|
-
offset = input(8, /* @ts-ignore */
|
|
1858
|
-
...(ngDevMode ? [{ debugName: "offset" }] : /* istanbul ignore next */ []));
|
|
1817
|
+
class HubTooltipController {
|
|
1818
|
+
host;
|
|
1859
1819
|
tooltipEl = null;
|
|
1860
1820
|
hideTimeout = null;
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1821
|
+
text = '';
|
|
1822
|
+
placement = 'top';
|
|
1823
|
+
delay = 150;
|
|
1824
|
+
offset = 8;
|
|
1825
|
+
doc;
|
|
1826
|
+
view;
|
|
1827
|
+
onShow = () => this.show();
|
|
1828
|
+
onHide = () => this.hide();
|
|
1829
|
+
/**
|
|
1830
|
+
* @param host Element the tooltip is anchored to and whose pointer/focus
|
|
1831
|
+
* events trigger the tooltip.
|
|
1832
|
+
* @param options Initial placement, delay and offset.
|
|
1833
|
+
*/
|
|
1834
|
+
constructor(host, options) {
|
|
1835
|
+
this.host = host;
|
|
1836
|
+
this.doc = host.ownerDocument;
|
|
1837
|
+
this.view = this.doc.defaultView;
|
|
1838
|
+
this.setOptions(options);
|
|
1839
|
+
this.host.addEventListener('mouseenter', this.onShow);
|
|
1840
|
+
this.host.addEventListener('focus', this.onShow);
|
|
1841
|
+
this.host.addEventListener('mouseleave', this.onHide);
|
|
1842
|
+
this.host.addEventListener('blur', this.onHide);
|
|
1843
|
+
this.host.addEventListener('click', this.onHide);
|
|
1872
1844
|
}
|
|
1873
|
-
|
|
1874
|
-
|
|
1845
|
+
/**
|
|
1846
|
+
* Updates the tooltip label. An empty value disables the tooltip and hides any
|
|
1847
|
+
* currently visible instance.
|
|
1848
|
+
* @param text New tooltip content.
|
|
1849
|
+
*/
|
|
1850
|
+
setText(text) {
|
|
1851
|
+
this.text = text ?? '';
|
|
1852
|
+
if (!this.text) {
|
|
1853
|
+
this.hide();
|
|
1854
|
+
return;
|
|
1855
|
+
}
|
|
1856
|
+
if (this.tooltipEl) {
|
|
1857
|
+
this.tooltipEl.textContent = this.text;
|
|
1858
|
+
this.position();
|
|
1859
|
+
}
|
|
1875
1860
|
}
|
|
1876
|
-
/**
|
|
1877
|
-
|
|
1878
|
-
|
|
1861
|
+
/**
|
|
1862
|
+
* Updates placement/delay/offset. Only provided keys are overwritten.
|
|
1863
|
+
* @param options Partial tooltip options.
|
|
1864
|
+
*/
|
|
1865
|
+
setOptions(options) {
|
|
1866
|
+
if (!options) {
|
|
1879
1867
|
return;
|
|
1880
1868
|
}
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1869
|
+
if (options.placement) {
|
|
1870
|
+
this.placement = options.placement;
|
|
1871
|
+
}
|
|
1872
|
+
if (options.delay != null) {
|
|
1873
|
+
this.delay = options.delay;
|
|
1874
|
+
}
|
|
1875
|
+
if (options.offset != null) {
|
|
1876
|
+
this.offset = options.offset;
|
|
1877
|
+
}
|
|
1878
|
+
}
|
|
1879
|
+
/** Detaches listeners and removes any live tooltip element. */
|
|
1880
|
+
destroy() {
|
|
1881
|
+
this.host.removeEventListener('mouseenter', this.onShow);
|
|
1882
|
+
this.host.removeEventListener('focus', this.onShow);
|
|
1883
|
+
this.host.removeEventListener('mouseleave', this.onHide);
|
|
1884
|
+
this.host.removeEventListener('blur', this.onHide);
|
|
1885
|
+
this.host.removeEventListener('click', this.onHide);
|
|
1886
|
+
this.removeElement();
|
|
1885
1887
|
}
|
|
1886
1888
|
/** Creates, positions and reveals the tooltip element. */
|
|
1887
1889
|
show() {
|
|
1888
|
-
if (this.tooltipEl || !this.
|
|
1890
|
+
if (this.tooltipEl || !this.text) {
|
|
1889
1891
|
return;
|
|
1890
1892
|
}
|
|
1891
1893
|
this.clearHideTimeout();
|
|
1892
|
-
const el = this.
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
this.renderer.setStyle(el, 'transition-duration', `${this.delay()}ms`);
|
|
1894
|
+
const el = this.doc.createElement('span');
|
|
1895
|
+
el.textContent = this.text;
|
|
1896
|
+
el.classList.add('hub-tooltip', `hub-tooltip--${this.placement}`);
|
|
1897
|
+
el.style.transitionDuration = `${this.delay}ms`;
|
|
1897
1898
|
this.forwardThemeVars(el);
|
|
1898
|
-
this.
|
|
1899
|
+
this.doc.body.appendChild(el);
|
|
1899
1900
|
this.tooltipEl = el;
|
|
1900
1901
|
this.position();
|
|
1901
|
-
|
|
1902
|
+
el.classList.add('hub-tooltip--show');
|
|
1902
1903
|
}
|
|
1903
1904
|
/** Fades the tooltip out and removes it after the fade completes. */
|
|
1904
1905
|
hide() {
|
|
1905
1906
|
if (!this.tooltipEl) {
|
|
1906
1907
|
return;
|
|
1907
1908
|
}
|
|
1908
|
-
this.
|
|
1909
|
+
this.tooltipEl.classList.remove('hub-tooltip--show');
|
|
1909
1910
|
this.clearHideTimeout();
|
|
1910
|
-
this.hideTimeout = setTimeout(() => this.
|
|
1911
|
+
this.hideTimeout = setTimeout(() => this.removeElement(), this.delay);
|
|
1911
1912
|
}
|
|
1912
1913
|
/** Removes the tooltip element immediately. */
|
|
1913
|
-
|
|
1914
|
+
removeElement() {
|
|
1914
1915
|
this.clearHideTimeout();
|
|
1915
1916
|
if (this.tooltipEl) {
|
|
1916
|
-
this.
|
|
1917
|
+
this.tooltipEl.remove();
|
|
1917
1918
|
this.tooltipEl = null;
|
|
1918
1919
|
}
|
|
1919
1920
|
}
|
|
@@ -1922,15 +1923,14 @@ class TooltipDirective {
|
|
|
1922
1923
|
* the body-portaled tooltip, so scoped theming applies despite the portal.
|
|
1923
1924
|
*/
|
|
1924
1925
|
forwardThemeVars(el) {
|
|
1925
|
-
|
|
1926
|
-
if (!view) {
|
|
1926
|
+
if (!this.view) {
|
|
1927
1927
|
return;
|
|
1928
1928
|
}
|
|
1929
|
-
const hostStyles = view.getComputedStyle(this.host
|
|
1929
|
+
const hostStyles = this.view.getComputedStyle(this.host);
|
|
1930
1930
|
for (const name of TOOLTIP_THEME_VARS) {
|
|
1931
1931
|
const value = hostStyles.getPropertyValue(name).trim();
|
|
1932
1932
|
if (value) {
|
|
1933
|
-
|
|
1933
|
+
el.style.setProperty(name, value);
|
|
1934
1934
|
}
|
|
1935
1935
|
}
|
|
1936
1936
|
}
|
|
@@ -1940,19 +1940,19 @@ class TooltipDirective {
|
|
|
1940
1940
|
this.hideTimeout = null;
|
|
1941
1941
|
}
|
|
1942
1942
|
}
|
|
1943
|
-
/** Positions the tooltip around the host according to
|
|
1943
|
+
/** Positions the tooltip around the host according to the current placement. */
|
|
1944
1944
|
position() {
|
|
1945
1945
|
if (!this.tooltipEl) {
|
|
1946
1946
|
return;
|
|
1947
1947
|
}
|
|
1948
|
-
const hostRect = this.host.
|
|
1948
|
+
const hostRect = this.host.getBoundingClientRect();
|
|
1949
1949
|
const tipRect = this.tooltipEl.getBoundingClientRect();
|
|
1950
|
-
const scrollY = this.
|
|
1951
|
-
const scrollX = this.
|
|
1952
|
-
const offset = this.offset
|
|
1950
|
+
const scrollY = this.view?.scrollY ?? 0;
|
|
1951
|
+
const scrollX = this.view?.scrollX ?? 0;
|
|
1952
|
+
const offset = this.offset;
|
|
1953
1953
|
let top = 0;
|
|
1954
1954
|
let left = 0;
|
|
1955
|
-
switch (this.placement
|
|
1955
|
+
switch (this.placement) {
|
|
1956
1956
|
case 'bottom':
|
|
1957
1957
|
top = hostRect.bottom + offset;
|
|
1958
1958
|
left = hostRect.left + (hostRect.width - tipRect.width) / 2;
|
|
@@ -1971,33 +1971,79 @@ class TooltipDirective {
|
|
|
1971
1971
|
left = hostRect.left + (hostRect.width - tipRect.width) / 2;
|
|
1972
1972
|
break;
|
|
1973
1973
|
}
|
|
1974
|
-
this.
|
|
1975
|
-
this.
|
|
1974
|
+
this.tooltipEl.style.top = `${top + scrollY}px`;
|
|
1975
|
+
this.tooltipEl.style.left = `${left + scrollX}px`;
|
|
1976
|
+
}
|
|
1977
|
+
}
|
|
1978
|
+
|
|
1979
|
+
/**
|
|
1980
|
+
* Ready-made {@link HubTooltipAdapter} backed by {@link HubTooltipController}.
|
|
1981
|
+
*
|
|
1982
|
+
* Wire it into any ng-hub-ui primitive that exposes an optional tooltip token,
|
|
1983
|
+
* e.g. `provideHubBadgeTooltip(hubTooltipAdapter)`.
|
|
1984
|
+
*/
|
|
1985
|
+
const hubTooltipAdapter = {
|
|
1986
|
+
attach(host, text, options) {
|
|
1987
|
+
const controller = new HubTooltipController(host, options);
|
|
1988
|
+
controller.setText(text);
|
|
1989
|
+
return {
|
|
1990
|
+
update: (next) => controller.setText(next),
|
|
1991
|
+
destroy: () => controller.destroy()
|
|
1992
|
+
};
|
|
1993
|
+
}
|
|
1994
|
+
};
|
|
1995
|
+
|
|
1996
|
+
/**
|
|
1997
|
+
* Lightweight tooltip directive.
|
|
1998
|
+
*
|
|
1999
|
+
* Apply `[tooltip]` to any element to show a positioned label on hover/focus.
|
|
2000
|
+
* The tooltip element is appended to `<body>` so it is never clipped by an
|
|
2001
|
+
* overflow container, and every visual aspect is themeable through
|
|
2002
|
+
* `--hub-tooltip-*` CSS variables.
|
|
2003
|
+
*
|
|
2004
|
+
* All DOM work is delegated to {@link HubTooltipController}, so the directive and
|
|
2005
|
+
* any imperative consumer (e.g. a badge overflow tooltip) share the exact same
|
|
2006
|
+
* behaviour and styling.
|
|
2007
|
+
*
|
|
2008
|
+
* Styles ship in `styles/tooltip.scss` (mirroring `styles/overlay.scss`). Import
|
|
2009
|
+
* it once in your app: `@use 'ng-hub-ui-utils/styles/tooltip';`.
|
|
2010
|
+
*/
|
|
2011
|
+
class TooltipDirective {
|
|
2012
|
+
/** Tooltip text content. */
|
|
2013
|
+
tooltipTitle = input.required({ ...(ngDevMode ? { debugName: "tooltipTitle" } : /* istanbul ignore next */ {}), alias: 'tooltip' });
|
|
2014
|
+
/** Placement of the tooltip relative to the host. */
|
|
2015
|
+
placement = input('top', /* @ts-ignore */
|
|
2016
|
+
...(ngDevMode ? [{ debugName: "placement" }] : /* istanbul ignore next */ []));
|
|
2017
|
+
/** Fade duration in milliseconds, also used as the removal delay on hide. */
|
|
2018
|
+
delay = input(150, /* @ts-ignore */
|
|
2019
|
+
...(ngDevMode ? [{ debugName: "delay" }] : /* istanbul ignore next */ []));
|
|
2020
|
+
/** Gap in pixels between the host and the tooltip. */
|
|
2021
|
+
offset = input(8, /* @ts-ignore */
|
|
2022
|
+
...(ngDevMode ? [{ debugName: "offset" }] : /* istanbul ignore next */ []));
|
|
2023
|
+
host = inject(ElementRef);
|
|
2024
|
+
controller = new HubTooltipController(this.host.nativeElement);
|
|
2025
|
+
constructor() {
|
|
2026
|
+
effect(() => {
|
|
2027
|
+
this.controller.setOptions({
|
|
2028
|
+
placement: this.placement(),
|
|
2029
|
+
delay: this.delay(),
|
|
2030
|
+
offset: this.offset()
|
|
2031
|
+
});
|
|
2032
|
+
this.controller.setText(this.tooltipTitle());
|
|
2033
|
+
});
|
|
2034
|
+
}
|
|
2035
|
+
ngOnDestroy() {
|
|
2036
|
+
this.controller.destroy();
|
|
1976
2037
|
}
|
|
1977
2038
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: TooltipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1978
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.1", type: TooltipDirective, isStandalone: true, selector: "[tooltip]", inputs: { tooltipTitle: { classPropertyName: "tooltipTitle", publicName: "tooltip", isSignal: true, isRequired: true, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, delay: { classPropertyName: "delay", publicName: "delay", isSignal: true, isRequired: false, transformFunction: null }, offset: { classPropertyName: "offset", publicName: "offset", isSignal: true, isRequired: false, transformFunction: null } },
|
|
2039
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.1", type: TooltipDirective, isStandalone: true, selector: "[tooltip]", inputs: { tooltipTitle: { classPropertyName: "tooltipTitle", publicName: "tooltip", isSignal: true, isRequired: true, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, delay: { classPropertyName: "delay", publicName: "delay", isSignal: true, isRequired: false, transformFunction: null }, offset: { classPropertyName: "offset", publicName: "offset", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
1979
2040
|
}
|
|
1980
2041
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: TooltipDirective, decorators: [{
|
|
1981
2042
|
type: Directive,
|
|
1982
2043
|
args: [{
|
|
1983
2044
|
selector: '[tooltip]'
|
|
1984
2045
|
}]
|
|
1985
|
-
}], ctorParameters: () => [], propDecorators: { tooltipTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: true }] }], placement: [{ type: i0.Input, args: [{ isSignal: true, alias: "placement", required: false }] }], delay: [{ type: i0.Input, args: [{ isSignal: true, alias: "delay", required: false }] }], offset: [{ type: i0.Input, args: [{ isSignal: true, alias: "offset", required: false }] }]
|
|
1986
|
-
type: HostListener,
|
|
1987
|
-
args: ['mouseenter']
|
|
1988
|
-
}, {
|
|
1989
|
-
type: HostListener,
|
|
1990
|
-
args: ['focus']
|
|
1991
|
-
}], onHide: [{
|
|
1992
|
-
type: HostListener,
|
|
1993
|
-
args: ['mouseleave']
|
|
1994
|
-
}, {
|
|
1995
|
-
type: HostListener,
|
|
1996
|
-
args: ['blur']
|
|
1997
|
-
}, {
|
|
1998
|
-
type: HostListener,
|
|
1999
|
-
args: ['click']
|
|
2000
|
-
}] } });
|
|
2046
|
+
}], ctorParameters: () => [], propDecorators: { tooltipTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: true }] }], placement: [{ type: i0.Input, args: [{ isSignal: true, alias: "placement", required: false }] }], delay: [{ type: i0.Input, args: [{ isSignal: true, alias: "delay", required: false }] }], offset: [{ type: i0.Input, args: [{ isSignal: true, alias: "offset", required: false }] }] } });
|
|
2001
2047
|
|
|
2002
2048
|
/*
|
|
2003
2049
|
* Public API Surface of utils
|
|
@@ -2007,5 +2053,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImpor
|
|
|
2007
2053
|
* Generated bundle index. Do not edit.
|
|
2008
2054
|
*/
|
|
2009
2055
|
|
|
2010
|
-
export { ContentRef, FOCUSABLE_ELEMENTS_SELECTOR, GetPipe, HUB_TRANSLATION_CONFIG, HubDragDropService, HubTranslationService, IsObjectPipe, IsObservablePipe, IsStringPipe, OverlayPosition, OverlayRef, OverlayService, PopupService, ScrollBar, TooltipDirective, TranslatePipe, UcfirstPipe, UnwrapAsyncPipe, clamp, closest, computeTargetIndex, containsNode, copyArrayItem, createNativeDragImage, createPointerDragSession, debouncedSignal, equals, generateUniqueId, getActiveElement, getFocusableBoundaryElements, getValue, getValueInRange, hubCompleteTransition, hubFocusTrap, hubRunTransition, interpolateString, isDefined, isInteger, isNumber, isObject, isPromise, isString, mergeDeep, moveItemInArray, padNumber, provideHubTranslation, reflow, regExpEscape, removeAccents, resolveDropPosition, runInZone, toAbsoluteIndex, toInteger, toString, transferArrayItem };
|
|
2056
|
+
export { ContentRef, FOCUSABLE_ELEMENTS_SELECTOR, GetPipe, HUB_TRANSLATION_CONFIG, HubDragDropService, HubTooltipController, HubTranslationService, IsObjectPipe, IsObservablePipe, IsStringPipe, OverlayPosition, OverlayRef, OverlayService, PopupService, ScrollBar, TooltipDirective, TranslatePipe, UcfirstPipe, UnwrapAsyncPipe, clamp, closest, computeTargetIndex, containsNode, copyArrayItem, createNativeDragImage, createPointerDragSession, debouncedSignal, equals, generateUniqueId, getActiveElement, getFocusableBoundaryElements, getValue, getValueInRange, hubCompleteTransition, hubFocusTrap, hubRunTransition, hubTooltipAdapter, interpolateString, isDefined, isInteger, isNumber, isObject, isPromise, isString, mergeDeep, moveItemInArray, padNumber, provideHubTranslation, reflow, regExpEscape, removeAccents, resolveDropPosition, runInZone, toAbsoluteIndex, toInteger, toString, transferArrayItem };
|
|
2011
2057
|
//# sourceMappingURL=ng-hub-ui-utils.mjs.map
|