nath-angular-ui 0.0.3 → 0.1.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.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, ElementRef, model, input, output, contentChild, TemplateRef, viewChild, signal, computed, effect, ViewEncapsulation, ChangeDetectionStrategy, Component, Injectable, InjectionToken, Injector, EnvironmentInjector, ApplicationRef, createEnvironmentInjector, createComponent, Service, Renderer2, viewChildren, SecurityContext, untracked, HostListener, ViewChild, booleanAttribute, Directive, contentChildren } from '@angular/core';
|
|
2
|
+
import { inject, ElementRef, model, input, output, contentChild, TemplateRef, viewChild, signal, computed, effect, ViewEncapsulation, ChangeDetectionStrategy, Component, Injectable, InjectionToken, Injector, EnvironmentInjector, ApplicationRef, createEnvironmentInjector, createComponent, Service, Renderer2, viewChildren, SecurityContext, untracked, HostListener, ViewChild, booleanAttribute, Directive, contentChildren, ViewContainerRef } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
4
|
import { CommonModule, NgTemplateOutlet, DOCUMENT, NgStyle, NgClass, KeyValuePipe } from '@angular/common';
|
|
5
5
|
import * as i2 from '@angular/cdk/overlay';
|
|
@@ -5245,6 +5245,230 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
5245
5245
|
args: [{ selector: 'nath-toc', imports: [], encapsulation: ViewEncapsulation.None, template: "<aside class=\"nath-toc-aside\">\n <nav class=\"nath-toc-nav\">\n <h3 class=\"nath-toc-title\">Table of Contents</h3>\n <ul class=\"nath-toc-list\">\n @for (section of tocSections(); track section.id) {\n <li>\n <button type=\"button\" (click)=\"scrollToSection(section.id)\" class=\"nath-toc-button\">\n {{ section.label }}\n </button>\n </li>\n }\n </ul>\n </nav>\n</aside>\n", styles: ["nath-toc{display:block}nath-toc,.nath-toc-theme{--nath-toc-width: 16rem;--nath-toc-sticky-top: 1rem;--nath-toc-nav-bg: var(--color-white, #ffffff);--nath-toc-nav-padding: 1rem;--nath-toc-nav-radius: .5rem;--nath-toc-nav-shadow: 0 1px 2px 0 rgba(0, 0, 0, .05);--nath-toc-title-font-weight: 700;--nath-toc-title-margin-bottom: .75rem;--nath-toc-title-font-size: 1.125rem;--nath-toc-title-color: var(--color-gray-900, oklch(21% .006 285.885));--nath-toc-list-gap: .5rem;--nath-toc-button-text-align: left;--nath-toc-button-width: 100%;--nath-toc-button-text: var(--color-gray-700, oklch(37.3% .045 262.531));--nath-toc-button-hover-text: var(--color-primary-500, #8e9ba5);--nath-toc-button-transition: color .2s}.dark nath-toc,.dark .nath-toc-theme{--nath-toc-nav-bg: var(--color-zinc-900, oklch(14.1% .005 285.823));--nath-toc-title-color: var(--color-zinc-100, oklch(96.7% .001 286.375));--nath-toc-button-text: var(--color-zinc-300, oklch(87.1% .006 286.286));--nath-toc-button-hover-text: var(--color-primary-400, oklch(68% .01 286.3))}.nath-toc-aside{width:var(--nath-toc-width);flex-shrink:0;position:sticky;top:var(--nath-toc-sticky-top);height:fit-content}.nath-toc-nav{background-color:var(--nath-toc-nav-bg);padding:var(--nath-toc-nav-padding);border-radius:var(--nath-toc-nav-radius);box-shadow:var(--nath-toc-nav-shadow)}.nath-toc-title{font-weight:var(--nath-toc-title-font-weight);margin-bottom:var(--nath-toc-title-margin-bottom);font-size:var(--nath-toc-title-font-size);color:var(--nath-toc-title-color)}.nath-toc-list{display:flex;flex-direction:column;gap:var(--nath-toc-list-gap);list-style:none;padding:0;margin:0}.nath-toc-button{text-align:var(--nath-toc-button-text-align);width:var(--nath-toc-button-width);color:var(--nath-toc-button-text);transition:var(--nath-toc-button-transition);cursor:pointer;border:none;background:transparent;padding:0;font-size:1rem}.nath-toc-button:hover{color:var(--nath-toc-button-hover-text)}\n"] }]
|
|
5246
5246
|
}], ctorParameters: () => [], propDecorators: { level: [{ type: i0.Input, args: [{ isSignal: true, alias: "level", required: false }] }], container: [{ type: i0.Input, args: [{ isSignal: true, alias: "container", required: false }] }], containerSelector: [{ type: i0.Input, args: [{ isSignal: true, alias: "containerSelector", required: false }] }], scrollContainerSelector: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollContainerSelector", required: false }] }], offset: [{ type: i0.Input, args: [{ isSignal: true, alias: "offset", required: false }] }] } });
|
|
5247
5247
|
|
|
5248
|
+
class NathTooltipContainer {
|
|
5249
|
+
sanitizer = inject(DomSanitizer);
|
|
5250
|
+
hostRef = inject((ElementRef)); // Inject host reference directly
|
|
5251
|
+
content = input(null, /* @ts-ignore */
|
|
5252
|
+
...(ngDevMode ? [{ debugName: "content" }] : /* istanbul ignore next */ []));
|
|
5253
|
+
positionStyles = signal({ opacity: '0' }, /* @ts-ignore */
|
|
5254
|
+
...(ngDevMode ? [{ debugName: "positionStyles" }] : /* istanbul ignore next */ []));
|
|
5255
|
+
arrowClass = signal('arrow-top', /* @ts-ignore */
|
|
5256
|
+
...(ngDevMode ? [{ debugName: "arrowClass" }] : /* istanbul ignore next */ []));
|
|
5257
|
+
sanitizedHtml() {
|
|
5258
|
+
const raw = this.content();
|
|
5259
|
+
if (typeof raw === 'string') {
|
|
5260
|
+
return this.sanitizer.sanitize(SecurityContext.HTML, raw) || '';
|
|
5261
|
+
}
|
|
5262
|
+
return '';
|
|
5263
|
+
}
|
|
5264
|
+
isTemplate(value) {
|
|
5265
|
+
return value && typeof value !== 'string';
|
|
5266
|
+
}
|
|
5267
|
+
updatePosition(hostRect, preferredPosition) {
|
|
5268
|
+
const tooltipContainer = this.hostRef.nativeElement.querySelector('.nath-tooltip-container');
|
|
5269
|
+
if (!tooltipContainer) {
|
|
5270
|
+
console.error('Tooltip container not found');
|
|
5271
|
+
return;
|
|
5272
|
+
}
|
|
5273
|
+
const tooltipWidth = tooltipContainer.offsetWidth;
|
|
5274
|
+
const tooltipHeight = tooltipContainer.offsetHeight;
|
|
5275
|
+
const spacing = 12;
|
|
5276
|
+
console.log(`hostRect`, hostRect);
|
|
5277
|
+
console.log(`preferredPosition`, preferredPosition);
|
|
5278
|
+
console.log(`tooltipWidth`, tooltipWidth);
|
|
5279
|
+
console.log(`tooltipHeight`, tooltipHeight);
|
|
5280
|
+
// Determine baseline coordinates and potential flip strategy
|
|
5281
|
+
const coords = this.calculateInitialPosition(hostRect, tooltipWidth, tooltipHeight, preferredPosition, spacing);
|
|
5282
|
+
// Prevent edge bleeding along the cross-axis bounds
|
|
5283
|
+
const cleanCoords = this.constrainToViewport(coords.left, coords.top, tooltipWidth, tooltipHeight, preferredPosition);
|
|
5284
|
+
this.arrowClass.set(`arrow-${coords.finalPosition}`);
|
|
5285
|
+
this.positionStyles.set({
|
|
5286
|
+
transform: `translate3d(${cleanCoords.left}px, ${cleanCoords.top}px, 0)`,
|
|
5287
|
+
opacity: '1',
|
|
5288
|
+
});
|
|
5289
|
+
}
|
|
5290
|
+
/**
|
|
5291
|
+
* Calculates structural baseline layout alignments and performs flipping checks.
|
|
5292
|
+
*/
|
|
5293
|
+
calculateInitialPosition(hostRect, w, h, pos, space) {
|
|
5294
|
+
if (pos === 'top')
|
|
5295
|
+
return this.getTopCoords(hostRect, w, h, space);
|
|
5296
|
+
if (pos === 'bottom')
|
|
5297
|
+
return this.getBottomCoords(hostRect, w, h, space);
|
|
5298
|
+
if (pos === 'left')
|
|
5299
|
+
return this.getLeftCoords(hostRect, w, h, space);
|
|
5300
|
+
return this.getRightCoords(hostRect, w, h, space);
|
|
5301
|
+
}
|
|
5302
|
+
getTopCoords(hostRect, w, h, space) {
|
|
5303
|
+
const top = hostRect.top - h - space;
|
|
5304
|
+
const isOverflow = top < 0;
|
|
5305
|
+
return {
|
|
5306
|
+
top: isOverflow ? hostRect.bottom + space : top,
|
|
5307
|
+
left: hostRect.left + (hostRect.width - w) / 2,
|
|
5308
|
+
finalPosition: isOverflow ? 'bottom' : 'top',
|
|
5309
|
+
};
|
|
5310
|
+
}
|
|
5311
|
+
getBottomCoords(hostRect, w, h, space) {
|
|
5312
|
+
const top = hostRect.bottom + space;
|
|
5313
|
+
const isOverflow = top + h > window.innerHeight;
|
|
5314
|
+
return {
|
|
5315
|
+
top: isOverflow ? hostRect.top - h - space : top,
|
|
5316
|
+
left: hostRect.left + (hostRect.width - w) / 2,
|
|
5317
|
+
finalPosition: isOverflow ? 'top' : 'bottom',
|
|
5318
|
+
};
|
|
5319
|
+
}
|
|
5320
|
+
getLeftCoords(hostRect, w, h, space) {
|
|
5321
|
+
const left = hostRect.left - w - space;
|
|
5322
|
+
const isOverflow = left < 0;
|
|
5323
|
+
return {
|
|
5324
|
+
top: hostRect.top + (hostRect.height - h) / 2,
|
|
5325
|
+
left: isOverflow ? hostRect.right + space : left,
|
|
5326
|
+
finalPosition: isOverflow ? 'right' : 'left',
|
|
5327
|
+
};
|
|
5328
|
+
}
|
|
5329
|
+
getRightCoords(hostRect, w, h, space) {
|
|
5330
|
+
const left = hostRect.right + space;
|
|
5331
|
+
const isOverflow = left + w > window.innerWidth;
|
|
5332
|
+
return {
|
|
5333
|
+
top: hostRect.top + (hostRect.height - h) / 2,
|
|
5334
|
+
left: isOverflow ? hostRect.left - w - space : left,
|
|
5335
|
+
finalPosition: isOverflow ? 'left' : 'right',
|
|
5336
|
+
};
|
|
5337
|
+
}
|
|
5338
|
+
/**
|
|
5339
|
+
* Adjusts calculated coordinates to keep them confined within visible screen padding bounds.
|
|
5340
|
+
*/
|
|
5341
|
+
constrainToViewport(left, top, w, h, pos) {
|
|
5342
|
+
let cleanLeft = left;
|
|
5343
|
+
let cleanTop = top;
|
|
5344
|
+
const boundaryPadding = 8;
|
|
5345
|
+
if (pos === 'top' || pos === 'bottom') {
|
|
5346
|
+
if (cleanLeft < 0)
|
|
5347
|
+
cleanLeft = boundaryPadding;
|
|
5348
|
+
if (cleanLeft + w > window.innerWidth) {
|
|
5349
|
+
cleanLeft = window.innerWidth - w - boundaryPadding;
|
|
5350
|
+
}
|
|
5351
|
+
}
|
|
5352
|
+
else {
|
|
5353
|
+
if (cleanTop < 0)
|
|
5354
|
+
cleanTop = boundaryPadding;
|
|
5355
|
+
if (cleanTop + h > window.innerHeight) {
|
|
5356
|
+
cleanTop = window.innerHeight - h - boundaryPadding;
|
|
5357
|
+
}
|
|
5358
|
+
}
|
|
5359
|
+
return { left: cleanLeft, top: cleanTop };
|
|
5360
|
+
}
|
|
5361
|
+
hide() {
|
|
5362
|
+
this.positionStyles.update((styles) => ({ ...styles, opacity: '0' }));
|
|
5363
|
+
}
|
|
5364
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: NathTooltipContainer, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5365
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: NathTooltipContainer, isStandalone: true, selector: "ng-component", inputs: { content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
5366
|
+
<div
|
|
5367
|
+
class="nath-tooltip-container nath-tooltip-container-theme"
|
|
5368
|
+
[class]="arrowClass()"
|
|
5369
|
+
[style]="positionStyles()"
|
|
5370
|
+
>
|
|
5371
|
+
<div class="nath-tooltip-content">
|
|
5372
|
+
@if (isTemplate(content())) {
|
|
5373
|
+
<ng-container [ngTemplateOutlet]="$any(content())"></ng-container>
|
|
5374
|
+
} @else {
|
|
5375
|
+
<div [innerHTML]="sanitizedHtml()"></div>
|
|
5376
|
+
}
|
|
5377
|
+
</div>
|
|
5378
|
+
</div>
|
|
5379
|
+
`, isInline: true, styles: ["nath-tooltip-container,.nath-tooltip-container-theme{--nath-tooltip-container-text-color: #fff;--nath-tooltip-container-bg-color: var(--color-slate-900, oklch(.208 .042 265.755));--nath-tooltip-container-border-color: var(--color-slate-900, oklch(.208 .042 265.755));--nath-tooltip-container-border-bottom-color: var(--color-slate-100, oklch(.967 .011 264.536))}.dark nath-tooltip-container,.dark .nath-tooltip-container-theme{--nath-tooltip-container-bg-color: var(--color-slate-900, oklch(.208 .042 265.755))}.nath-tooltip-container{position:fixed;left:0;top:0;display:block;z-index:50;transition-property:opacity;transition-duration:.2s;pointer-events:none;padding:.375rem .75rem;font-size:.875rem;line-height:1.25rem;border-radius:.375rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;max-width:20rem;background-color:var(--nath-tooltip-container-bg-color);color:var(--nath-tooltip-container-text-color);border-bottom:1px solid var(--nath-tooltip-container-border-bottom-color)}.nath-tooltip-container:after{content:\"\";position:absolute;width:0;height:0;border-style:solid;border-width:6px;border-color:transparent}.nath-tooltip-container.arrow-top:after{border-top-color:var(--nath-tooltip-container-border-color);top:100%;left:calc(50% - 6px)}.nath-tooltip-container.arrow-bottom:after{border-bottom-color:var(--nath-tooltip-container-border-color);bottom:100%;left:calc(50% - 6px)}.nath-tooltip-container.arrow-left:after{border-left-color:var(--nath-tooltip-container-border-color);left:100%;top:calc(50% - 6px)}.nath-tooltip-container.arrow-right:after{border-right-color:var(--nath-tooltip-container-border-color);right:100%;top:calc(50% - 6px)}.nath-tooltip-content{white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
5380
|
+
}
|
|
5381
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: NathTooltipContainer, decorators: [{
|
|
5382
|
+
type: Component,
|
|
5383
|
+
args: [{ imports: [NgTemplateOutlet], template: `
|
|
5384
|
+
<div
|
|
5385
|
+
class="nath-tooltip-container nath-tooltip-container-theme"
|
|
5386
|
+
[class]="arrowClass()"
|
|
5387
|
+
[style]="positionStyles()"
|
|
5388
|
+
>
|
|
5389
|
+
<div class="nath-tooltip-content">
|
|
5390
|
+
@if (isTemplate(content())) {
|
|
5391
|
+
<ng-container [ngTemplateOutlet]="$any(content())"></ng-container>
|
|
5392
|
+
} @else {
|
|
5393
|
+
<div [innerHTML]="sanitizedHtml()"></div>
|
|
5394
|
+
}
|
|
5395
|
+
</div>
|
|
5396
|
+
</div>
|
|
5397
|
+
`, encapsulation: ViewEncapsulation.None, styles: ["nath-tooltip-container,.nath-tooltip-container-theme{--nath-tooltip-container-text-color: #fff;--nath-tooltip-container-bg-color: var(--color-slate-900, oklch(.208 .042 265.755));--nath-tooltip-container-border-color: var(--color-slate-900, oklch(.208 .042 265.755));--nath-tooltip-container-border-bottom-color: var(--color-slate-100, oklch(.967 .011 264.536))}.dark nath-tooltip-container,.dark .nath-tooltip-container-theme{--nath-tooltip-container-bg-color: var(--color-slate-900, oklch(.208 .042 265.755))}.nath-tooltip-container{position:fixed;left:0;top:0;display:block;z-index:50;transition-property:opacity;transition-duration:.2s;pointer-events:none;padding:.375rem .75rem;font-size:.875rem;line-height:1.25rem;border-radius:.375rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;max-width:20rem;background-color:var(--nath-tooltip-container-bg-color);color:var(--nath-tooltip-container-text-color);border-bottom:1px solid var(--nath-tooltip-container-border-bottom-color)}.nath-tooltip-container:after{content:\"\";position:absolute;width:0;height:0;border-style:solid;border-width:6px;border-color:transparent}.nath-tooltip-container.arrow-top:after{border-top-color:var(--nath-tooltip-container-border-color);top:100%;left:calc(50% - 6px)}.nath-tooltip-container.arrow-bottom:after{border-bottom-color:var(--nath-tooltip-container-border-color);bottom:100%;left:calc(50% - 6px)}.nath-tooltip-container.arrow-left:after{border-left-color:var(--nath-tooltip-container-border-color);left:100%;top:calc(50% - 6px)}.nath-tooltip-container.arrow-right:after{border-right-color:var(--nath-tooltip-container-border-color);right:100%;top:calc(50% - 6px)}.nath-tooltip-content{white-space:nowrap}\n"] }]
|
|
5398
|
+
}], propDecorators: { content: [{ type: i0.Input, args: [{ isSignal: true, alias: "content", required: false }] }] } });
|
|
5399
|
+
|
|
5400
|
+
class NathTooltipDirective {
|
|
5401
|
+
tooltipContent = input(null, { ...(ngDevMode ? { debugName: "tooltipContent" } : /* istanbul ignore next */ {}), alias: 'nathTooltip' });
|
|
5402
|
+
tooltipPosition = input('top', /* @ts-ignore */
|
|
5403
|
+
...(ngDevMode ? [{ debugName: "tooltipPosition" }] : /* istanbul ignore next */ []));
|
|
5404
|
+
showDelay = input(200, /* @ts-ignore */
|
|
5405
|
+
...(ngDevMode ? [{ debugName: "showDelay" }] : /* istanbul ignore next */ []));
|
|
5406
|
+
hideDelay = input(100, /* @ts-ignore */
|
|
5407
|
+
...(ngDevMode ? [{ debugName: "hideDelay" }] : /* istanbul ignore next */ []));
|
|
5408
|
+
elementRef = inject(ElementRef);
|
|
5409
|
+
viewContainerRef = inject(ViewContainerRef);
|
|
5410
|
+
document = inject(DOCUMENT);
|
|
5411
|
+
componentRef = null;
|
|
5412
|
+
showTimeout;
|
|
5413
|
+
hideTimeout;
|
|
5414
|
+
onMouseEnter() {
|
|
5415
|
+
clearTimeout(this.hideTimeout);
|
|
5416
|
+
if (!this.componentRef) {
|
|
5417
|
+
this.showTimeout = setTimeout(() => this.showTooltip(), this.showDelay());
|
|
5418
|
+
}
|
|
5419
|
+
}
|
|
5420
|
+
onMouseLeave() {
|
|
5421
|
+
clearTimeout(this.showTimeout);
|
|
5422
|
+
if (this.componentRef) {
|
|
5423
|
+
this.hideTimeout = setTimeout(() => this.destroyTooltip(), this.hideDelay());
|
|
5424
|
+
}
|
|
5425
|
+
}
|
|
5426
|
+
showTooltip() {
|
|
5427
|
+
if (this.componentRef || !this.tooltipContent())
|
|
5428
|
+
return;
|
|
5429
|
+
this.componentRef = this.viewContainerRef.createComponent(NathTooltipContainer);
|
|
5430
|
+
this.componentRef.setInput('content', this.tooltipContent());
|
|
5431
|
+
const domElem = this.componentRef.hostView.rootNodes[0];
|
|
5432
|
+
this.document.body.appendChild(domElem);
|
|
5433
|
+
this.componentRef.changeDetectorRef.detectChanges();
|
|
5434
|
+
const hostRect = this.elementRef.nativeElement.getBoundingClientRect();
|
|
5435
|
+
this.componentRef.instance.updatePosition(hostRect, this.tooltipPosition());
|
|
5436
|
+
this.componentRef.changeDetectorRef.detectChanges();
|
|
5437
|
+
}
|
|
5438
|
+
destroyTooltip() {
|
|
5439
|
+
if (this.componentRef) {
|
|
5440
|
+
this.componentRef.instance.hide();
|
|
5441
|
+
const refToDestroy = this.componentRef;
|
|
5442
|
+
this.componentRef = null;
|
|
5443
|
+
// Keep this at a fixed 200ms to allow the Tailwind opacity transition to complete
|
|
5444
|
+
setTimeout(() => {
|
|
5445
|
+
refToDestroy.destroy();
|
|
5446
|
+
}, 200);
|
|
5447
|
+
}
|
|
5448
|
+
}
|
|
5449
|
+
ngOnDestroy() {
|
|
5450
|
+
clearTimeout(this.showTimeout);
|
|
5451
|
+
clearTimeout(this.hideTimeout);
|
|
5452
|
+
if (this.componentRef) {
|
|
5453
|
+
this.componentRef.destroy();
|
|
5454
|
+
}
|
|
5455
|
+
}
|
|
5456
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: NathTooltipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
5457
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.5", type: NathTooltipDirective, isStandalone: true, selector: "[nathTooltip]", inputs: { tooltipContent: { classPropertyName: "tooltipContent", publicName: "nathTooltip", isSignal: true, isRequired: false, transformFunction: null }, tooltipPosition: { classPropertyName: "tooltipPosition", publicName: "tooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, showDelay: { classPropertyName: "showDelay", publicName: "showDelay", isSignal: true, isRequired: false, transformFunction: null }, hideDelay: { classPropertyName: "hideDelay", publicName: "hideDelay", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mouseenter": "onMouseEnter()", "focusin": "onMouseEnter()", "mouseleave": "onMouseLeave()", "focusout": "onMouseLeave()" } }, ngImport: i0 });
|
|
5458
|
+
}
|
|
5459
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: NathTooltipDirective, decorators: [{
|
|
5460
|
+
type: Directive,
|
|
5461
|
+
args: [{
|
|
5462
|
+
selector: '[nathTooltip]',
|
|
5463
|
+
host: {
|
|
5464
|
+
'(mouseenter)': 'onMouseEnter()',
|
|
5465
|
+
'(focusin)': 'onMouseEnter()',
|
|
5466
|
+
'(mouseleave)': 'onMouseLeave()',
|
|
5467
|
+
'(focusout)': 'onMouseLeave()',
|
|
5468
|
+
},
|
|
5469
|
+
}]
|
|
5470
|
+
}], propDecorators: { tooltipContent: [{ type: i0.Input, args: [{ isSignal: true, alias: "nathTooltip", required: false }] }], tooltipPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipPosition", required: false }] }], showDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "showDelay", required: false }] }], hideDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideDelay", required: false }] }] } });
|
|
5471
|
+
|
|
5248
5472
|
function next(el, selector) {
|
|
5249
5473
|
const nextEl = el.nextElementSibling;
|
|
5250
5474
|
if (!selector || (nextEl && nextEl.matches(selector))) {
|
|
@@ -5278,5 +5502,5 @@ function isSortOrderValid(order) {
|
|
|
5278
5502
|
* Generated bundle index. Do not edit.
|
|
5279
5503
|
*/
|
|
5280
5504
|
|
|
5281
|
-
export { BreadcrumbService, ConfirmationService, DARK_THEME_CLASS, DIALOG_DATA, DialogRef, DialogService, NathAutocomplete, NathBooleanControl, NathBreadcrumbs, NathConfirmationDialog, NathDatepicker, NathDialogContainer, NathDrawer, NathFileUpload, NathFloatingLabel, NathFormField, NathImagePreview, NathMenu, NathMenuList, NathMultiselect, NathPaginatedView, NathPaginator, NathPanel, NathPickList, NathProgressBar, NathProgressCircle, NathRadioButtonGroup, NathRatingHeart, NathRatingInput, NathSelect, NathSkeleton, NathSlider, NathSortIcon, NathSplitButton, NathTabs, NathThemeSwitch, NathToastContainer, NathToc, ORDER, RATING_MAP, THEME_CONFIG, TabDirective, TabPanelDirective, ThemeService, ToastService, getRatingColor, hasRequiredValidator, isRequired, isSortOrderValid, isTruthy, next, provideThemeConfig, rangeMinMax, rangeNotMinMax, validateAllFormFields };
|
|
5505
|
+
export { BreadcrumbService, ConfirmationService, DARK_THEME_CLASS, DIALOG_DATA, DialogRef, DialogService, NathAutocomplete, NathBooleanControl, NathBreadcrumbs, NathConfirmationDialog, NathDatepicker, NathDialogContainer, NathDrawer, NathFileUpload, NathFloatingLabel, NathFormField, NathImagePreview, NathMenu, NathMenuList, NathMultiselect, NathPaginatedView, NathPaginator, NathPanel, NathPickList, NathProgressBar, NathProgressCircle, NathRadioButtonGroup, NathRatingHeart, NathRatingInput, NathSelect, NathSkeleton, NathSlider, NathSortIcon, NathSplitButton, NathTabs, NathThemeSwitch, NathToastContainer, NathToc, NathTooltipContainer, NathTooltipDirective, ORDER, RATING_MAP, THEME_CONFIG, TabDirective, TabPanelDirective, ThemeService, ToastService, getRatingColor, hasRequiredValidator, isRequired, isSortOrderValid, isTruthy, next, provideThemeConfig, rangeMinMax, rangeNotMinMax, validateAllFormFields };
|
|
5282
5506
|
//# sourceMappingURL=nath-angular-ui.mjs.map
|