ngx-tethys 20.0.2 → 20.0.3
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/CHANGELOG.md +18 -0
- package/anchor/index.d.ts +9 -3
- package/fesm2022/ngx-tethys-anchor.mjs +55 -18
- package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input.mjs +1 -1
- package/fesm2022/ngx-tethys-input.mjs.map +1 -1
- package/fesm2022/ngx-tethys-native-table.mjs +1119 -0
- package/fesm2022/ngx-tethys-native-table.mjs.map +1 -0
- package/fesm2022/ngx-tethys-pagination.mjs +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +3 -1
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +39 -12
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-shared.mjs +4 -3
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tooltip.mjs +20 -16
- package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/input/index.d.ts +1 -1
- package/native-table/index.d.ts +305 -0
- package/native-table/styles/native-table.scss +174 -0
- package/package.json +5 -1
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/select/index.d.ts +8 -2
- package/shared/index.d.ts +2 -1
- package/shared/option/styles/select-dropdown.scss +5 -2
- package/styles/index.scss +1 -0
|
@@ -2,7 +2,7 @@ import { Overlay, ScrollDispatcher, OverlayModule } from '@angular/cdk/overlay';
|
|
|
2
2
|
import { FocusMonitor, A11yModule } from '@angular/cdk/a11y';
|
|
3
3
|
import { NgTemplateOutlet, CommonModule } from '@angular/common';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
|
-
import { inject, ChangeDetectorRef, TemplateRef, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, Component, InjectionToken, NgZone, Injectable, ElementRef, ViewContainerRef, input, linkedSignal, numberAttribute, effect, Directive, NgModule } from '@angular/core';
|
|
5
|
+
import { inject, ChangeDetectorRef, TemplateRef, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, Component, InjectionToken, NgZone, Injectable, ElementRef, ViewContainerRef, input, linkedSignal, numberAttribute, effect, afterNextRender, Directive, NgModule } from '@angular/core';
|
|
6
6
|
import { Platform } from '@angular/cdk/platform';
|
|
7
7
|
import { AnimationDuration, AnimationCurves, getFlexiblePositions, ThyOverlayDirectiveBase } from 'ngx-tethys/core';
|
|
8
8
|
import { coerceArray, isNumber, isString, coerceBooleanProperty } from 'ngx-tethys/util';
|
|
@@ -406,38 +406,41 @@ class ThyTooltipDirective extends ThyOverlayDirectiveBase {
|
|
|
406
406
|
this.tooltipPin = input(undefined, ...(ngDevMode ? [{ debugName: "tooltipPin", alias: 'thyTooltipPin', transform: coerceBooleanProperty }] : [{ alias: 'thyTooltipPin', transform: coerceBooleanProperty }]));
|
|
407
407
|
effect(() => {
|
|
408
408
|
const value = this.content();
|
|
409
|
-
|
|
409
|
+
const data = this.data();
|
|
410
|
+
const isTooltipVisible = this.tooltipRef?.isTooltipVisible();
|
|
411
|
+
if (!value && isTooltipVisible) {
|
|
410
412
|
this.tooltipRef.hide(0);
|
|
411
413
|
}
|
|
412
|
-
else {
|
|
413
|
-
this.tooltipRef?.updateTooltipContent(value,
|
|
414
|
-
}
|
|
415
|
-
});
|
|
416
|
-
effect(() => {
|
|
417
|
-
const tooltipClass = this.thyTooltipClass();
|
|
418
|
-
if (tooltipClass) {
|
|
419
|
-
this.tooltipRef?.setTooltipClass(tooltipClass);
|
|
414
|
+
else if (value && isTooltipVisible) {
|
|
415
|
+
this.tooltipRef?.updateTooltipContent(value, data);
|
|
420
416
|
}
|
|
421
417
|
});
|
|
422
418
|
effect(() => {
|
|
423
419
|
const trigger = this.thyTooltipTrigger();
|
|
424
420
|
this.trigger = trigger;
|
|
425
421
|
});
|
|
422
|
+
effect(() => {
|
|
423
|
+
const overlayPin = this.tooltipPin();
|
|
424
|
+
this.overlayPin = overlayPin;
|
|
425
|
+
});
|
|
426
426
|
effect(() => {
|
|
427
427
|
const disabled = this.toolTipDisabled();
|
|
428
428
|
this.disabled = !!disabled;
|
|
429
|
-
if (disabled) {
|
|
429
|
+
if (disabled && this.tooltipRef?.isTooltipVisible()) {
|
|
430
430
|
this.hide(0);
|
|
431
431
|
}
|
|
432
432
|
});
|
|
433
433
|
effect(() => {
|
|
434
|
-
const
|
|
435
|
-
this.
|
|
434
|
+
const tooltipClass = this.thyTooltipClass();
|
|
435
|
+
if (this.tooltipRef && tooltipClass) {
|
|
436
|
+
this.tooltipRef.setTooltipClass(tooltipClass);
|
|
437
|
+
}
|
|
438
|
+
});
|
|
439
|
+
afterNextRender(() => {
|
|
440
|
+
this.initialize();
|
|
436
441
|
});
|
|
437
442
|
}
|
|
438
|
-
ngOnInit() {
|
|
439
|
-
this.initialize();
|
|
440
|
-
}
|
|
443
|
+
ngOnInit() { }
|
|
441
444
|
/** Shows the tooltip after the delay in ms, defaults to tooltip-delay-show 200ms */
|
|
442
445
|
show(delay = this.thyTooltipShowDelay()) {
|
|
443
446
|
if (this.disabled) {
|
|
@@ -461,6 +464,7 @@ class ThyTooltipDirective extends ThyOverlayDirectiveBase {
|
|
|
461
464
|
}
|
|
462
465
|
ngOnDestroy() {
|
|
463
466
|
this.tooltipRef?.dispose();
|
|
467
|
+
this.dispose?.();
|
|
464
468
|
}
|
|
465
469
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTooltipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
466
470
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.15", type: ThyTooltipDirective, isStandalone: true, selector: "[thyTooltip],[thy-tooltip]", inputs: { thyTooltipContent: { classPropertyName: "thyTooltipContent", publicName: "thyTooltip", isSignal: true, isRequired: false, transformFunction: null }, thyPlacement: { classPropertyName: "thyPlacement", publicName: "thyTooltipPlacement", isSignal: true, isRequired: false, transformFunction: null }, thyTooltipClass: { classPropertyName: "thyTooltipClass", publicName: "thyTooltipClass", isSignal: true, isRequired: false, transformFunction: null }, thyTooltipShowDelay: { classPropertyName: "thyTooltipShowDelay", publicName: "thyTooltipShowDelay", isSignal: true, isRequired: false, transformFunction: null }, thyTooltipHideDelay: { classPropertyName: "thyTooltipHideDelay", publicName: "thyTooltipHideDelay", isSignal: true, isRequired: false, transformFunction: null }, thyTooltipTrigger: { classPropertyName: "thyTooltipTrigger", publicName: "thyTooltipTrigger", isSignal: true, isRequired: false, transformFunction: null }, thyTooltipDisabled: { classPropertyName: "thyTooltipDisabled", publicName: "thyTooltipDisabled", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "thyTooltipTemplateContext", isSignal: true, isRequired: false, transformFunction: null }, thyTooltipOffset: { classPropertyName: "thyTooltipOffset", publicName: "thyTooltipOffset", isSignal: true, isRequired: false, transformFunction: null }, tooltipPin: { classPropertyName: "tooltipPin", publicName: "thyTooltipPin", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["thyTooltip"], usesInheritance: true, ngImport: i0 }); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-tooltip.mjs","sources":["../../../src/tooltip/tooltip-animations.ts","../../../src/tooltip/tooltip.component.ts","../../../src/tooltip/tooltip.component.html","../../../src/tooltip/tooltip-ref.ts","../../../src/tooltip/tooltip.config.ts","../../../src/tooltip/tooltip.service.ts","../../../src/tooltip/tooltip.directive.ts","../../../src/tooltip/tooltip.module.ts","../../../src/tooltip/ngx-tethys-tooltip.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\nimport { AnimationCurves, AnimationDuration } from 'ngx-tethys/core';\n\nexport const thyTooltipAnimations: {\n readonly tooltipState: AnimationTriggerMetadata;\n} = {\n tooltipState: trigger('state', [\n state('initial, void, hidden', style({ opacity: 0, transform: 'scale(0)' })),\n state('visible', style({ transform: 'scale(1)' })),\n\n transition('* => visible', [\n style({ opacity: 0, transform: 'scale(0.9, 0.9)' }),\n animate(\n `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_STANDARD}`,\n style({\n opacity: 1,\n transform: 'scale(1, 1)'\n })\n )\n ]),\n transition('visible => *', [\n style({ opacity: 1, transform: 'scale(1, 1)' }),\n animate(\n `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_STANDARD}`,\n style({\n opacity: 0,\n transform: 'scale(0.9, 0.9)'\n })\n )\n ])\n ])\n};\n","import {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n HostBinding,\n TemplateRef,\n OnInit,\n inject\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { AnimationEvent } from '@angular/animations';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyTooltipVisibility } from './interface';\nimport { thyTooltipAnimations } from './tooltip-animations';\nimport { coerceArray } from 'ngx-tethys/util';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-tooltip',\n templateUrl: './tooltip.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [thyTooltipAnimations.tooltipState],\n host: {\n '[@state]': 'visibility',\n '(@state.start)': 'animationStart()',\n '(@state.done)': 'animationDone($event)'\n },\n imports: [NgTemplateOutlet]\n})\nexport class ThyTooltip implements OnInit {\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n @HostBinding(`class.thy-tooltip`) addTooltipContainerClass = true;\n\n _content!: string | TemplateRef<HTMLElement>;\n\n data!: any;\n\n private readonly onHide = new Subject<void>();\n\n private closeOnInteraction = false;\n\n private hostRenderer = useHostRenderer();\n\n visibility: ThyTooltipVisibility = 'initial';\n\n showTimeoutId!: number | null | any;\n\n hideTimeoutId!: number | null | any;\n\n tooltipClasses: string[] = [];\n\n isTemplateRef = false;\n\n get content() {\n return this._content;\n }\n\n set content(value: string | TemplateRef<HTMLElement>) {\n this._content = value;\n this.isTemplateRef = value instanceof TemplateRef;\n }\n\n private updateClasses() {\n let classes: string[] = [];\n\n if (this.tooltipClasses) {\n classes = classes.concat(this.tooltipClasses);\n }\n\n this.hostRenderer.updateClass(classes);\n }\n\n ngOnInit() {}\n\n markForCheck(): void {\n this.changeDetectorRef.markForCheck();\n }\n\n isVisible() {\n return this.visibility === 'visible';\n }\n\n show(delay: number): void {\n // Cancel the delayed hide if it is scheduled\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n this.hideTimeoutId = null;\n }\n\n // Body interactions should cancel the tooltip if there is a delay in showing.\n this.closeOnInteraction = true;\n this.showTimeoutId = setTimeout(() => {\n this.visibility = 'visible';\n this.showTimeoutId = null;\n this.markForCheck();\n }, delay);\n }\n\n hide(delay: number): void {\n // Cancel the delayed show if it is scheduled\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n this.showTimeoutId = null;\n }\n\n this.hideTimeoutId = setTimeout(() => {\n this.visibility = 'hidden';\n this.hideTimeoutId = null;\n this.markForCheck();\n }, delay);\n }\n\n animationStart() {\n this.closeOnInteraction = false;\n }\n\n animationDone(event: AnimationEvent): void {\n const toState = event.toState as ThyTooltipVisibility;\n if (toState === 'hidden' && !this.isVisible()) {\n this.onHide.next();\n }\n if (toState === 'visible' || toState === 'hidden') {\n this.closeOnInteraction = true;\n }\n }\n\n afterHidden(): Observable<void> {\n return this.onHide.asObservable();\n }\n\n setTooltipClass(classes: string | string[]) {\n this.tooltipClasses = coerceArray(classes);\n this.updateClasses();\n // this.markForCheck();\n }\n}\n","<div class=\"thy-tooltip-arrow\"></div>\n<div class=\"thy-tooltip-content\">\n @if (isTemplateRef) {\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: data }\"></ng-container>\n } @else {\n {{ content }}\n }\n</div>\n","import { FlexibleConnectedPositionStrategy, Overlay, OverlayRef, ScrollDispatcher, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ElementRef, NgZone, TemplateRef } from '@angular/core';\nimport { isUndefinedOrNull } from '@tethys/cdk/is';\nimport { getFlexiblePositions } from 'ngx-tethys/core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { isNumber } from 'ngx-tethys/util';\nimport { Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\nimport { ThyTooltipContent } from './interface';\nimport { ThyTooltip } from './tooltip.component';\nimport { ThyTooltipConfig } from './tooltip.config';\n\nexport class ThyTooltipRef {\n private overlayRef!: OverlayRef;\n\n private tooltipInstance: ThyTooltip | null = null;\n\n private scrollStrategy: ScrollStrategy;\n\n private portal?: ComponentPortal<ThyTooltip>;\n\n private readonly dispose$ = new Subject<void>();\n\n constructor(\n private host: ElementRef<HTMLElement> | HTMLElement,\n private config: ThyTooltipConfig,\n private overlay: Overlay,\n private scrollDispatcher: ScrollDispatcher,\n private ngZone: NgZone\n ) {\n this.scrollStrategy = overlay.scrollStrategies.reposition({\n scrollThrottle: this.config.scrollThrottleSeconds\n });\n }\n\n /** Create the overlay config and position strategy */\n private createOverlay(): OverlayRef {\n if (this.overlayRef) {\n return this.overlayRef;\n }\n const scrollableAncestors = this.scrollDispatcher.getAncestorScrollContainers(this.host);\n // Create connected position strategy that listens for scroll events to reposition.\n const strategy = this.overlay\n .position()\n .flexibleConnectedTo(this.host)\n .withTransformOriginOn('.thy-tooltip-content')\n .withFlexibleDimensions(false)\n .withViewportMargin(8);\n\n strategy.withScrollableContainers(scrollableAncestors);\n strategy.positionChanges.pipe(takeUntil(this.dispose$)).subscribe(change => {\n if (this.tooltipInstance) {\n if (change.scrollableViewProperties.isOverlayClipped && this.tooltipInstance.isVisible()) {\n // After position changes occur and the overlay is clipped by\n // a parent scrollable then close the tooltip.\n this.ngZone.run(() => this.hide(0));\n }\n }\n });\n this.overlayRef = this.overlay.create({\n positionStrategy: strategy,\n panelClass: this.config.panelClass,\n scrollStrategy: this.scrollStrategy,\n hasBackdrop: this.config.hasBackdrop,\n backdropClass: 'thy-tooltip-backdrop'\n });\n\n this.updatePosition();\n\n this.overlayRef\n .detachments()\n .pipe(takeUntil(this.dispose$))\n .subscribe(() => this.detach());\n\n this.overlayRef\n .backdropClick()\n .pipe(takeUntil(this.dispose$))\n .subscribe(() => {\n this.overlayRef.detachBackdrop();\n this.hide(0);\n });\n\n return this.overlayRef;\n }\n\n /** Updates the position of the current tooltip. */\n private updatePosition() {\n const position = this.overlayRef.getConfig().positionStrategy as FlexibleConnectedPositionStrategy;\n const connectionPositions = getFlexiblePositions(this.config.placement!, this.config.offset, 'thy-tooltip');\n position.withPositions(connectionPositions);\n }\n\n private detach() {\n if (this.overlayRef && this.overlayRef.hasAttached()) {\n this.overlayRef.detach();\n }\n this.tooltipInstance = null;\n }\n\n show(content: ThyTooltipContent, delay?: number): void;\n show<T extends Record<SafeAny, SafeAny>>(content: ThyTooltipContent, data: T, delay?: number): void;\n show<T extends Record<SafeAny, SafeAny>>(content: ThyTooltipContent, dataOrDelay: T | number, delay?: number) {\n if (!content || (this.isTooltipVisible() && !this.tooltipInstance?.showTimeoutId && !this.tooltipInstance?.hideTimeoutId)) {\n return;\n }\n let showDelay = null;\n let initialState = null;\n if (isNumber(dataOrDelay)) {\n showDelay = dataOrDelay as number;\n } else {\n initialState = dataOrDelay;\n showDelay = delay;\n }\n const overlayRef = this.createOverlay();\n this.detach();\n this.portal = this.portal || new ComponentPortal(ThyTooltip, this.config.viewContainerRef);\n this.tooltipInstance = overlayRef.attach(this.portal).instance;\n this.tooltipInstance\n .afterHidden()\n .pipe(takeUntil(this.dispose$))\n .subscribe(() => this.detach());\n this.updateTooltipContent(content, initialState);\n this.setTooltipClass(this.config.contentClass!);\n this.tooltipInstance.show(!isUndefinedOrNull(showDelay) ? showDelay : this.config.showDelay!);\n }\n\n hide(delay: number = 0): void {\n if (this.overlayRef && this.overlayRef['_scrollStrategy']) {\n this.overlayRef['_scrollStrategy'].disable();\n }\n if (this.tooltipInstance) {\n this.tooltipInstance.hide(!isUndefinedOrNull(delay) ? delay : this.config.hideDelay!);\n }\n }\n\n getOverlayRef() {\n return this.overlayRef;\n }\n\n setTooltipClass(tooltipClass: string | string[]) {\n if (this.tooltipInstance) {\n this.tooltipInstance.setTooltipClass(tooltipClass);\n }\n }\n\n updateTooltipContent(content: string | TemplateRef<any>, data?: any) {\n // Must wait for the message to be painted to the tooltip so that the overlay can properly\n // calculate the correct positioning based on the size of the text.\n if (this.tooltipInstance) {\n this.tooltipInstance.content = content;\n this.tooltipInstance.data = data;\n this.tooltipInstance.markForCheck();\n\n this.ngZone.onMicrotaskEmpty\n .asObservable()\n .pipe(take(1), takeUntil(this.dispose$))\n .subscribe(() => {\n if (this.tooltipInstance) {\n this.overlayRef.updatePosition();\n }\n });\n }\n }\n\n isTooltipVisible(): boolean {\n return !!this.tooltipInstance && this.tooltipInstance.isVisible();\n }\n\n dispose(): void {\n this.dispose$.next();\n this.dispose$.complete();\n this.hide(0);\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.tooltipInstance = null;\n }\n }\n}\n","import { InjectionToken, ViewContainerRef } from '@angular/core';\nimport { ThyPlacement } from 'ngx-tethys/core';\n\nexport interface ThyTooltipConfig {\n placement?: ThyPlacement;\n viewContainerRef?: ViewContainerRef;\n showDelay?: number;\n hideDelay?: number;\n touchendHideDelay?: number;\n offset?: number;\n contentClass?: string | string[];\n panelClass?: string | string[];\n hasBackdrop?: boolean;\n tooltipPin?: boolean;\n scrollThrottleSeconds?: number;\n}\n\nexport type ThyGlobalTooltipConfig = Pick<\n ThyTooltipConfig,\n 'placement' | 'offset' | 'scrollThrottleSeconds' | 'tooltipPin' | 'panelClass' | 'showDelay' | 'hideDelay' | 'touchendHideDelay'\n>;\n\nexport const THY_TOOLTIP_DEFAULT_CONFIG_TOKEN = new InjectionToken<ThyGlobalTooltipConfig>('thy-tooltip-default-config');\n\nexport const thyTooltipDefaultConfig: ThyGlobalTooltipConfig = {\n placement: 'top',\n showDelay: 200,\n hideDelay: 100,\n touchendHideDelay: 1500,\n offset: 4,\n panelClass: 'thy-tooltip-panel',\n tooltipPin: false,\n scrollThrottleSeconds: 20\n};\n\nexport const THY_TOOLTIP_DEFAULT_CONFIG_PROVIDER = {\n provide: THY_TOOLTIP_DEFAULT_CONFIG_TOKEN,\n useValue: thyTooltipDefaultConfig\n};\n","import { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';\nimport { Injectable, NgZone, ElementRef, inject } from '@angular/core';\nimport { ThyTooltipRef } from './tooltip-ref';\nimport { ThyGlobalTooltipConfig, ThyTooltipConfig, THY_TOOLTIP_DEFAULT_CONFIG_TOKEN } from './tooltip.config';\n\n@Injectable({ providedIn: 'root' })\nexport class ThyTooltipService {\n private overlay = inject(Overlay);\n private scrollDispatcher = inject(ScrollDispatcher);\n private ngZone = inject(NgZone);\n private defaultTooltipConfig = inject(THY_TOOLTIP_DEFAULT_CONFIG_TOKEN);\n\n /**\n * 创建一个 Tooltip\n */\n create(host: ElementRef<HTMLElement> | HTMLElement, config: ThyTooltipConfig = {}) {\n config = Object.assign({}, this.defaultTooltipConfig, config);\n const tooltipRef = new ThyTooltipRef(host, config, this.overlay, this.scrollDispatcher, this.ngZone);\n return tooltipRef;\n }\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n Directive,\n ElementRef,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n ViewContainerRef,\n numberAttribute,\n inject,\n input,\n effect,\n linkedSignal\n} from '@angular/core';\nimport { ThyOverlayDirectiveBase, ThyOverlayTrigger, ThyPlacement } from 'ngx-tethys/core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { coerceBooleanProperty, isString } from 'ngx-tethys/util';\nimport { ThyTooltipContent } from './interface';\nimport { ThyTooltipRef } from './tooltip-ref';\nimport { ThyTooltipService } from './tooltip.service';\n\n/**\n * @name thyTooltip\n */\n@Directive({ selector: '[thyTooltip],[thy-tooltip]', exportAs: 'thyTooltip' })\nexport class ThyTooltipDirective extends ThyOverlayDirectiveBase implements OnInit, OnDestroy {\n private viewContainerRef = inject(ViewContainerRef);\n private thyTooltipService = inject(ThyTooltipService);\n\n touchendHideDelay = 1500;\n\n protected isAutoCloseOnMobileTouch: boolean = true;\n\n private tooltipRef!: ThyTooltipRef;\n\n /**\n * 提示消息,可以是文本,也可以是一个模板\n * @type string | TemplateRef<T>\n */\n readonly thyTooltipContent = input<ThyTooltipContent>(undefined, { alias: 'thyTooltip' });\n\n getValidContent(value: ThyTooltipContent) {\n // If the content is not a string (e.g. number), convert it to a string and trim it.\n const validValue = value && isString(value) ? `${value}`.trim() : value;\n return validValue;\n }\n\n content = linkedSignal(() => {\n const value = this.thyTooltipContent();\n return this.getValidContent(value!);\n });\n\n /**\n * 指定提示的位置\n * @type ThyPlacement\n */\n readonly thyPlacement = input<ThyPlacement>('top', { alias: 'thyTooltipPlacement' });\n\n placement = linkedSignal(() => {\n return this.thyPlacement();\n });\n\n /**\n * 提示内容自定义样式\n */\n readonly thyTooltipClass = input<string | string[]>();\n\n /**\n * 显示提示内容延迟毫秒\n */\n readonly thyTooltipShowDelay = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 隐藏提示内容延迟毫秒\n */\n readonly thyTooltipHideDelay = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 触发提示方式\n * <br/>`hover` 鼠标移入,显示提示;鼠标移出,隐藏提示;显示提示时,滚动页面,会隐藏提示。\n * <br/>`focus` 元素获取焦点,显示提示;元素失去焦点,隐藏提示;显示元素时,滚动页面,提示会跟随聚焦源一起移动。\n * <br/>`click` 点击元素,显示提示;点击backdrop,隐藏提示;显示提示时,页面的滚动行为会被阻止。\n *\n * @type hover | focus | click\n */\n readonly thyTooltipTrigger = input<ThyOverlayTrigger>('hover');\n\n /**\n * 设置是否禁用提示\n * @default false\n */\n readonly thyTooltipDisabled = input<boolean, unknown>(undefined, { transform: coerceBooleanProperty });\n\n toolTipDisabled = linkedSignal(() => {\n return this.thyTooltipDisabled();\n });\n\n /**\n * 传入 template 时,需要注入给 template 的上下文数据\n */\n readonly data = input<SafeAny>(undefined, { alias: 'thyTooltipTemplateContext' });\n\n /**\n * 偏移量\n */\n readonly thyTooltipOffset = input<number, unknown>(undefined, { alias: 'thyTooltipOffset', transform: numberAttribute });\n\n tooltipOffset = linkedSignal(() => {\n return this.thyTooltipOffset();\n });\n\n /**\n * hover 触发方式下 鼠标移入Tooltip是否固定 Tooltip\n * @default false\n */\n readonly tooltipPin = input<boolean, unknown>(undefined, { alias: 'thyTooltipPin', transform: coerceBooleanProperty });\n\n setDisabled(disabled: boolean) {\n this.toolTipDisabled.set(disabled);\n }\n\n setContent(content: ThyTooltipContent) {\n const validValue = this.getValidContent(content);\n this.content.set(validValue);\n }\n\n setOffset(offset: number) {\n this.tooltipOffset.set(offset);\n }\n\n setPlacement(placement: ThyPlacement) {\n this.placement.set(placement);\n }\n\n constructor() {\n const elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n const ngZone = inject(NgZone);\n const platform = inject(Platform);\n const focusMonitor = inject(FocusMonitor);\n super(elementRef, platform, focusMonitor, ngZone);\n\n effect(() => {\n const value = this.content();\n if (!value && this.tooltipRef?.isTooltipVisible()) {\n this.tooltipRef.hide(0);\n } else {\n this.tooltipRef?.updateTooltipContent(value, this.data());\n }\n });\n\n effect(() => {\n const tooltipClass = this.thyTooltipClass();\n if (tooltipClass) {\n this.tooltipRef?.setTooltipClass(tooltipClass);\n }\n });\n\n effect(() => {\n const trigger = this.thyTooltipTrigger();\n this.trigger = trigger;\n });\n\n effect(() => {\n const disabled = this.toolTipDisabled();\n this.disabled = !!disabled;\n if (disabled) {\n this.hide(0);\n }\n });\n\n effect(() => {\n const overlayPin = this.tooltipPin();\n this.overlayPin = overlayPin;\n });\n }\n\n ngOnInit() {\n this.initialize();\n }\n\n /** Shows the tooltip after the delay in ms, defaults to tooltip-delay-show 200ms */\n show(delay: number | undefined = this.thyTooltipShowDelay()): void {\n if (this.disabled) {\n return;\n }\n if (!this.tooltipRef) {\n this.tooltipRef = this.thyTooltipService.create(this.elementRef, {\n viewContainerRef: this.viewContainerRef,\n placement: this.placement(),\n contentClass: this.thyTooltipClass(),\n offset: this.tooltipOffset(),\n tooltipPin: this.tooltipPin(),\n hasBackdrop: this.trigger === 'click'\n });\n }\n this.tooltipRef.show(this.content(), this.data(), delay);\n }\n\n /** Hides the tooltip after the delay in ms, defaults to tooltip-delay-hide 100ms */\n hide(delay: number | undefined = this.thyTooltipHideDelay()): void {\n this.tooltipRef?.hide(delay);\n }\n\n ngOnDestroy() {\n this.tooltipRef?.dispose();\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ThyTooltipDirective } from './tooltip.directive';\nimport { ThyTooltip } from './tooltip.component';\nimport { THY_TOOLTIP_DEFAULT_CONFIG_PROVIDER } from './tooltip.config';\n\n@NgModule({\n imports: [A11yModule, CommonModule, OverlayModule, ThyTooltipDirective, ThyTooltip],\n exports: [ThyTooltipDirective],\n providers: [THY_TOOLTIP_DEFAULT_CONFIG_PROVIDER]\n})\nexport class ThyTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-tooltip.mjs","sources":["../../../src/tooltip/tooltip-animations.ts","../../../src/tooltip/tooltip.component.ts","../../../src/tooltip/tooltip.component.html","../../../src/tooltip/tooltip-ref.ts","../../../src/tooltip/tooltip.config.ts","../../../src/tooltip/tooltip.service.ts","../../../src/tooltip/tooltip.directive.ts","../../../src/tooltip/tooltip.module.ts","../../../src/tooltip/ngx-tethys-tooltip.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\nimport { AnimationCurves, AnimationDuration } from 'ngx-tethys/core';\n\nexport const thyTooltipAnimations: {\n readonly tooltipState: AnimationTriggerMetadata;\n} = {\n tooltipState: trigger('state', [\n state('initial, void, hidden', style({ opacity: 0, transform: 'scale(0)' })),\n state('visible', style({ transform: 'scale(1)' })),\n\n transition('* => visible', [\n style({ opacity: 0, transform: 'scale(0.9, 0.9)' }),\n animate(\n `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_STANDARD}`,\n style({\n opacity: 1,\n transform: 'scale(1, 1)'\n })\n )\n ]),\n transition('visible => *', [\n style({ opacity: 1, transform: 'scale(1, 1)' }),\n animate(\n `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_STANDARD}`,\n style({\n opacity: 0,\n transform: 'scale(0.9, 0.9)'\n })\n )\n ])\n ])\n};\n","import {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n HostBinding,\n TemplateRef,\n OnInit,\n inject\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { AnimationEvent } from '@angular/animations';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyTooltipVisibility } from './interface';\nimport { thyTooltipAnimations } from './tooltip-animations';\nimport { coerceArray } from 'ngx-tethys/util';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-tooltip',\n templateUrl: './tooltip.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [thyTooltipAnimations.tooltipState],\n host: {\n '[@state]': 'visibility',\n '(@state.start)': 'animationStart()',\n '(@state.done)': 'animationDone($event)'\n },\n imports: [NgTemplateOutlet]\n})\nexport class ThyTooltip implements OnInit {\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n @HostBinding(`class.thy-tooltip`) addTooltipContainerClass = true;\n\n _content!: string | TemplateRef<HTMLElement>;\n\n data!: any;\n\n private readonly onHide = new Subject<void>();\n\n private closeOnInteraction = false;\n\n private hostRenderer = useHostRenderer();\n\n visibility: ThyTooltipVisibility = 'initial';\n\n showTimeoutId!: number | null | any;\n\n hideTimeoutId!: number | null | any;\n\n tooltipClasses: string[] = [];\n\n isTemplateRef = false;\n\n get content() {\n return this._content;\n }\n\n set content(value: string | TemplateRef<HTMLElement>) {\n this._content = value;\n this.isTemplateRef = value instanceof TemplateRef;\n }\n\n private updateClasses() {\n let classes: string[] = [];\n\n if (this.tooltipClasses) {\n classes = classes.concat(this.tooltipClasses);\n }\n\n this.hostRenderer.updateClass(classes);\n }\n\n ngOnInit() {}\n\n markForCheck(): void {\n this.changeDetectorRef.markForCheck();\n }\n\n isVisible() {\n return this.visibility === 'visible';\n }\n\n show(delay: number): void {\n // Cancel the delayed hide if it is scheduled\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n this.hideTimeoutId = null;\n }\n\n // Body interactions should cancel the tooltip if there is a delay in showing.\n this.closeOnInteraction = true;\n this.showTimeoutId = setTimeout(() => {\n this.visibility = 'visible';\n this.showTimeoutId = null;\n this.markForCheck();\n }, delay);\n }\n\n hide(delay: number): void {\n // Cancel the delayed show if it is scheduled\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n this.showTimeoutId = null;\n }\n\n this.hideTimeoutId = setTimeout(() => {\n this.visibility = 'hidden';\n this.hideTimeoutId = null;\n this.markForCheck();\n }, delay);\n }\n\n animationStart() {\n this.closeOnInteraction = false;\n }\n\n animationDone(event: AnimationEvent): void {\n const toState = event.toState as ThyTooltipVisibility;\n if (toState === 'hidden' && !this.isVisible()) {\n this.onHide.next();\n }\n if (toState === 'visible' || toState === 'hidden') {\n this.closeOnInteraction = true;\n }\n }\n\n afterHidden(): Observable<void> {\n return this.onHide.asObservable();\n }\n\n setTooltipClass(classes: string | string[]) {\n this.tooltipClasses = coerceArray(classes);\n this.updateClasses();\n // this.markForCheck();\n }\n}\n","<div class=\"thy-tooltip-arrow\"></div>\n<div class=\"thy-tooltip-content\">\n @if (isTemplateRef) {\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: data }\"></ng-container>\n } @else {\n {{ content }}\n }\n</div>\n","import { FlexibleConnectedPositionStrategy, Overlay, OverlayRef, ScrollDispatcher, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ElementRef, NgZone, TemplateRef } from '@angular/core';\nimport { isUndefinedOrNull } from '@tethys/cdk/is';\nimport { getFlexiblePositions } from 'ngx-tethys/core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { isNumber } from 'ngx-tethys/util';\nimport { Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\nimport { ThyTooltipContent } from './interface';\nimport { ThyTooltip } from './tooltip.component';\nimport { ThyTooltipConfig } from './tooltip.config';\n\nexport class ThyTooltipRef {\n private overlayRef!: OverlayRef;\n\n private tooltipInstance: ThyTooltip | null = null;\n\n private scrollStrategy: ScrollStrategy;\n\n private portal?: ComponentPortal<ThyTooltip>;\n\n private readonly dispose$ = new Subject<void>();\n\n constructor(\n private host: ElementRef<HTMLElement> | HTMLElement,\n private config: ThyTooltipConfig,\n private overlay: Overlay,\n private scrollDispatcher: ScrollDispatcher,\n private ngZone: NgZone\n ) {\n this.scrollStrategy = overlay.scrollStrategies.reposition({\n scrollThrottle: this.config.scrollThrottleSeconds\n });\n }\n\n /** Create the overlay config and position strategy */\n private createOverlay(): OverlayRef {\n if (this.overlayRef) {\n return this.overlayRef;\n }\n const scrollableAncestors = this.scrollDispatcher.getAncestorScrollContainers(this.host);\n // Create connected position strategy that listens for scroll events to reposition.\n const strategy = this.overlay\n .position()\n .flexibleConnectedTo(this.host)\n .withTransformOriginOn('.thy-tooltip-content')\n .withFlexibleDimensions(false)\n .withViewportMargin(8);\n\n strategy.withScrollableContainers(scrollableAncestors);\n strategy.positionChanges.pipe(takeUntil(this.dispose$)).subscribe(change => {\n if (this.tooltipInstance) {\n if (change.scrollableViewProperties.isOverlayClipped && this.tooltipInstance.isVisible()) {\n // After position changes occur and the overlay is clipped by\n // a parent scrollable then close the tooltip.\n this.ngZone.run(() => this.hide(0));\n }\n }\n });\n this.overlayRef = this.overlay.create({\n positionStrategy: strategy,\n panelClass: this.config.panelClass,\n scrollStrategy: this.scrollStrategy,\n hasBackdrop: this.config.hasBackdrop,\n backdropClass: 'thy-tooltip-backdrop'\n });\n\n this.updatePosition();\n\n this.overlayRef\n .detachments()\n .pipe(takeUntil(this.dispose$))\n .subscribe(() => this.detach());\n\n this.overlayRef\n .backdropClick()\n .pipe(takeUntil(this.dispose$))\n .subscribe(() => {\n this.overlayRef.detachBackdrop();\n this.hide(0);\n });\n\n return this.overlayRef;\n }\n\n /** Updates the position of the current tooltip. */\n private updatePosition() {\n const position = this.overlayRef.getConfig().positionStrategy as FlexibleConnectedPositionStrategy;\n const connectionPositions = getFlexiblePositions(this.config.placement!, this.config.offset, 'thy-tooltip');\n position.withPositions(connectionPositions);\n }\n\n private detach() {\n if (this.overlayRef && this.overlayRef.hasAttached()) {\n this.overlayRef.detach();\n }\n this.tooltipInstance = null;\n }\n\n show(content: ThyTooltipContent, delay?: number): void;\n show<T extends Record<SafeAny, SafeAny>>(content: ThyTooltipContent, data: T, delay?: number): void;\n show<T extends Record<SafeAny, SafeAny>>(content: ThyTooltipContent, dataOrDelay: T | number, delay?: number) {\n if (!content || (this.isTooltipVisible() && !this.tooltipInstance?.showTimeoutId && !this.tooltipInstance?.hideTimeoutId)) {\n return;\n }\n let showDelay = null;\n let initialState = null;\n if (isNumber(dataOrDelay)) {\n showDelay = dataOrDelay as number;\n } else {\n initialState = dataOrDelay;\n showDelay = delay;\n }\n const overlayRef = this.createOverlay();\n this.detach();\n this.portal = this.portal || new ComponentPortal(ThyTooltip, this.config.viewContainerRef);\n this.tooltipInstance = overlayRef.attach(this.portal).instance;\n this.tooltipInstance\n .afterHidden()\n .pipe(takeUntil(this.dispose$))\n .subscribe(() => this.detach());\n this.updateTooltipContent(content, initialState);\n this.setTooltipClass(this.config.contentClass!);\n this.tooltipInstance.show(!isUndefinedOrNull(showDelay) ? showDelay : this.config.showDelay!);\n }\n\n hide(delay: number = 0): void {\n if (this.overlayRef && this.overlayRef['_scrollStrategy']) {\n this.overlayRef['_scrollStrategy'].disable();\n }\n if (this.tooltipInstance) {\n this.tooltipInstance.hide(!isUndefinedOrNull(delay) ? delay : this.config.hideDelay!);\n }\n }\n\n getOverlayRef() {\n return this.overlayRef;\n }\n\n setTooltipClass(tooltipClass: string | string[]) {\n if (this.tooltipInstance) {\n this.tooltipInstance.setTooltipClass(tooltipClass);\n }\n }\n\n updateTooltipContent(content: string | TemplateRef<any>, data?: any) {\n // Must wait for the message to be painted to the tooltip so that the overlay can properly\n // calculate the correct positioning based on the size of the text.\n if (this.tooltipInstance) {\n this.tooltipInstance.content = content;\n this.tooltipInstance.data = data;\n this.tooltipInstance.markForCheck();\n\n this.ngZone.onMicrotaskEmpty\n .asObservable()\n .pipe(take(1), takeUntil(this.dispose$))\n .subscribe(() => {\n if (this.tooltipInstance) {\n this.overlayRef.updatePosition();\n }\n });\n }\n }\n\n isTooltipVisible(): boolean {\n return !!this.tooltipInstance && this.tooltipInstance.isVisible();\n }\n\n dispose(): void {\n this.dispose$.next();\n this.dispose$.complete();\n this.hide(0);\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.tooltipInstance = null;\n }\n }\n}\n","import { InjectionToken, ViewContainerRef } from '@angular/core';\nimport { ThyPlacement } from 'ngx-tethys/core';\n\nexport interface ThyTooltipConfig {\n placement?: ThyPlacement;\n viewContainerRef?: ViewContainerRef;\n showDelay?: number;\n hideDelay?: number;\n touchendHideDelay?: number;\n offset?: number;\n contentClass?: string | string[];\n panelClass?: string | string[];\n hasBackdrop?: boolean;\n tooltipPin?: boolean;\n scrollThrottleSeconds?: number;\n}\n\nexport type ThyGlobalTooltipConfig = Pick<\n ThyTooltipConfig,\n 'placement' | 'offset' | 'scrollThrottleSeconds' | 'tooltipPin' | 'panelClass' | 'showDelay' | 'hideDelay' | 'touchendHideDelay'\n>;\n\nexport const THY_TOOLTIP_DEFAULT_CONFIG_TOKEN = new InjectionToken<ThyGlobalTooltipConfig>('thy-tooltip-default-config');\n\nexport const thyTooltipDefaultConfig: ThyGlobalTooltipConfig = {\n placement: 'top',\n showDelay: 200,\n hideDelay: 100,\n touchendHideDelay: 1500,\n offset: 4,\n panelClass: 'thy-tooltip-panel',\n tooltipPin: false,\n scrollThrottleSeconds: 20\n};\n\nexport const THY_TOOLTIP_DEFAULT_CONFIG_PROVIDER = {\n provide: THY_TOOLTIP_DEFAULT_CONFIG_TOKEN,\n useValue: thyTooltipDefaultConfig\n};\n","import { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';\nimport { Injectable, NgZone, ElementRef, inject } from '@angular/core';\nimport { ThyTooltipRef } from './tooltip-ref';\nimport { ThyGlobalTooltipConfig, ThyTooltipConfig, THY_TOOLTIP_DEFAULT_CONFIG_TOKEN } from './tooltip.config';\n\n@Injectable({ providedIn: 'root' })\nexport class ThyTooltipService {\n private overlay = inject(Overlay);\n private scrollDispatcher = inject(ScrollDispatcher);\n private ngZone = inject(NgZone);\n private defaultTooltipConfig = inject(THY_TOOLTIP_DEFAULT_CONFIG_TOKEN);\n\n /**\n * 创建一个 Tooltip\n */\n create(host: ElementRef<HTMLElement> | HTMLElement, config: ThyTooltipConfig = {}) {\n config = Object.assign({}, this.defaultTooltipConfig, config);\n const tooltipRef = new ThyTooltipRef(host, config, this.overlay, this.scrollDispatcher, this.ngZone);\n return tooltipRef;\n }\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n Directive,\n ElementRef,\n NgZone,\n OnDestroy,\n OnInit,\n ViewContainerRef,\n afterNextRender,\n effect,\n inject,\n input,\n linkedSignal,\n numberAttribute\n} from '@angular/core';\nimport { ThyOverlayDirectiveBase, ThyOverlayTrigger, ThyPlacement } from 'ngx-tethys/core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { coerceBooleanProperty, isString } from 'ngx-tethys/util';\nimport { ThyTooltipContent } from './interface';\nimport { ThyTooltipRef } from './tooltip-ref';\nimport { ThyTooltipService } from './tooltip.service';\n\n/**\n * @name thyTooltip\n */\n@Directive({ selector: '[thyTooltip],[thy-tooltip]', exportAs: 'thyTooltip' })\nexport class ThyTooltipDirective extends ThyOverlayDirectiveBase implements OnInit, OnDestroy {\n private viewContainerRef = inject(ViewContainerRef);\n private thyTooltipService = inject(ThyTooltipService);\n\n touchendHideDelay = 1500;\n\n protected isAutoCloseOnMobileTouch: boolean = true;\n\n private tooltipRef!: ThyTooltipRef;\n\n /**\n * 提示消息,可以是文本,也可以是一个模板\n * @type string | TemplateRef<T>\n */\n readonly thyTooltipContent = input<ThyTooltipContent>(undefined, { alias: 'thyTooltip' });\n\n getValidContent(value: ThyTooltipContent) {\n // If the content is not a string (e.g. number), convert it to a string and trim it.\n const validValue = value && isString(value) ? `${value}`.trim() : value;\n return validValue;\n }\n\n content = linkedSignal(() => {\n const value = this.thyTooltipContent();\n return this.getValidContent(value!);\n });\n\n /**\n * 指定提示的位置\n * @type ThyPlacement\n */\n readonly thyPlacement = input<ThyPlacement>('top', { alias: 'thyTooltipPlacement' });\n\n placement = linkedSignal(() => {\n return this.thyPlacement();\n });\n\n /**\n * 提示内容自定义样式\n */\n readonly thyTooltipClass = input<string | string[]>();\n\n /**\n * 显示提示内容延迟毫秒\n */\n readonly thyTooltipShowDelay = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 隐藏提示内容延迟毫秒\n */\n readonly thyTooltipHideDelay = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 触发提示方式\n * <br/>`hover` 鼠标移入,显示提示;鼠标移出,隐藏提示;显示提示时,滚动页面,会隐藏提示。\n * <br/>`focus` 元素获取焦点,显示提示;元素失去焦点,隐藏提示;显示元素时,滚动页面,提示会跟随聚焦源一起移动。\n * <br/>`click` 点击元素,显示提示;点击backdrop,隐藏提示;显示提示时,页面的滚动行为会被阻止。\n *\n * @type hover | focus | click\n */\n readonly thyTooltipTrigger = input<ThyOverlayTrigger>('hover');\n\n /**\n * 设置是否禁用提示\n * @default false\n */\n readonly thyTooltipDisabled = input<boolean, unknown>(undefined, { transform: coerceBooleanProperty });\n\n toolTipDisabled = linkedSignal(() => {\n return this.thyTooltipDisabled();\n });\n\n /**\n * 传入 template 时,需要注入给 template 的上下文数据\n */\n readonly data = input<SafeAny>(undefined, { alias: 'thyTooltipTemplateContext' });\n\n /**\n * 偏移量\n */\n readonly thyTooltipOffset = input<number, unknown>(undefined, { alias: 'thyTooltipOffset', transform: numberAttribute });\n\n tooltipOffset = linkedSignal(() => {\n return this.thyTooltipOffset();\n });\n\n /**\n * hover 触发方式下 鼠标移入Tooltip是否固定 Tooltip\n * @default false\n */\n readonly tooltipPin = input<boolean, unknown>(undefined, { alias: 'thyTooltipPin', transform: coerceBooleanProperty });\n\n setDisabled(disabled: boolean) {\n this.toolTipDisabled.set(disabled);\n }\n\n setContent(content: ThyTooltipContent) {\n const validValue = this.getValidContent(content);\n this.content.set(validValue);\n }\n\n setOffset(offset: number) {\n this.tooltipOffset.set(offset);\n }\n\n setPlacement(placement: ThyPlacement) {\n this.placement.set(placement);\n }\n\n constructor() {\n const elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n const ngZone = inject(NgZone);\n const platform = inject(Platform);\n const focusMonitor = inject(FocusMonitor);\n super(elementRef, platform, focusMonitor, ngZone);\n\n effect(() => {\n const value = this.content();\n const data = this.data();\n const isTooltipVisible = this.tooltipRef?.isTooltipVisible();\n if (!value && isTooltipVisible) {\n this.tooltipRef.hide(0);\n } else if (value && isTooltipVisible) {\n this.tooltipRef?.updateTooltipContent(value, data);\n }\n });\n\n effect(() => {\n const trigger = this.thyTooltipTrigger();\n this.trigger = trigger;\n });\n\n effect(() => {\n const overlayPin = this.tooltipPin();\n this.overlayPin = overlayPin;\n });\n\n effect(() => {\n const disabled = this.toolTipDisabled();\n this.disabled = !!disabled;\n if (disabled && this.tooltipRef?.isTooltipVisible()) {\n this.hide(0);\n }\n });\n\n effect(() => {\n const tooltipClass = this.thyTooltipClass();\n if (this.tooltipRef && tooltipClass) {\n this.tooltipRef.setTooltipClass(tooltipClass);\n }\n });\n\n afterNextRender(() => {\n this.initialize();\n });\n }\n\n ngOnInit() {}\n\n /** Shows the tooltip after the delay in ms, defaults to tooltip-delay-show 200ms */\n show(delay: number | undefined = this.thyTooltipShowDelay()): void {\n if (this.disabled) {\n return;\n }\n if (!this.tooltipRef) {\n this.tooltipRef = this.thyTooltipService.create(this.elementRef, {\n viewContainerRef: this.viewContainerRef,\n placement: this.placement(),\n contentClass: this.thyTooltipClass(),\n offset: this.tooltipOffset(),\n tooltipPin: this.tooltipPin(),\n hasBackdrop: this.trigger === 'click'\n });\n }\n this.tooltipRef.show(this.content(), this.data(), delay);\n }\n\n /** Hides the tooltip after the delay in ms, defaults to tooltip-delay-hide 100ms */\n hide(delay: number | undefined = this.thyTooltipHideDelay()): void {\n this.tooltipRef?.hide(delay);\n }\n\n ngOnDestroy() {\n this.tooltipRef?.dispose();\n this.dispose?.();\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ThyTooltipDirective } from './tooltip.directive';\nimport { ThyTooltip } from './tooltip.component';\nimport { THY_TOOLTIP_DEFAULT_CONFIG_PROVIDER } from './tooltip.config';\n\n@NgModule({\n imports: [A11yModule, CommonModule, OverlayModule, ThyTooltipDirective, ThyTooltip],\n exports: [ThyTooltipDirective],\n providers: [THY_TOOLTIP_DEFAULT_CONFIG_PROVIDER]\n})\nexport class ThyTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/fesm2022/ngx-tethys.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('20.0.
|
|
1
|
+
{"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('20.0.3');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAEa,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ;;ACF3C;;AAEG;;;;"}
|
package/input/index.d.ts
CHANGED
|
@@ -171,7 +171,7 @@ declare class ThyInputGroup implements OnInit, OnDestroy {
|
|
|
171
171
|
/**
|
|
172
172
|
* @private
|
|
173
173
|
*/
|
|
174
|
-
readonly inputDirective: _angular_core.Signal<ThyInputDirective>;
|
|
174
|
+
readonly inputDirective: _angular_core.Signal<ThyInputDirective | undefined>;
|
|
175
175
|
private disabledObservable;
|
|
176
176
|
constructor();
|
|
177
177
|
ngOnInit(): void;
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { OnInit, TemplateRef, ElementRef, InputSignal, AfterContentInit, QueryList, AfterViewInit, OnDestroy } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/common';
|
|
4
|
+
import * as ngx_tethys_table from 'ngx-tethys/table';
|
|
5
|
+
import { ThyTableEmptyOptions, ThyPage } from 'ngx-tethys/table';
|
|
6
|
+
import { SafeAny } from 'ngx-tethys/types';
|
|
7
|
+
import { BehaviorSubject, Subject, Observable } from 'rxjs';
|
|
8
|
+
|
|
9
|
+
type ThyNativeTableLayout = 'fixed' | 'auto';
|
|
10
|
+
type ThyNativeTableSortOrder = 'default' | 'asc' | 'desc';
|
|
11
|
+
type ThyNativeTableTheme = 'default' | 'bordered' | 'boxed';
|
|
12
|
+
type ThyNativeTableSize = 'md' | 'sm' | 'xs' | 'lg' | 'xlg' | 'default';
|
|
13
|
+
interface ThyNativeTableScroll {
|
|
14
|
+
x?: string | null;
|
|
15
|
+
y?: string | null;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
declare class ThyNativeTableComponent<T = any> implements OnInit {
|
|
19
|
+
private tableElementRef;
|
|
20
|
+
private elementRef;
|
|
21
|
+
private cdr;
|
|
22
|
+
private styleService;
|
|
23
|
+
private destroyRef;
|
|
24
|
+
private updateHostClassService;
|
|
25
|
+
readonly thyTableLayout: _angular_core.InputSignal<ThyNativeTableLayout>;
|
|
26
|
+
readonly thySize: _angular_core.InputSignal<ThyNativeTableSize>;
|
|
27
|
+
readonly thyTheme: _angular_core.InputSignal<ThyNativeTableTheme>;
|
|
28
|
+
readonly thyData: _angular_core.InputSignal<readonly T[]>;
|
|
29
|
+
readonly thyShowPagination: _angular_core.InputSignal<boolean>;
|
|
30
|
+
readonly thyPageIndex: _angular_core.InputSignal<number>;
|
|
31
|
+
readonly thyPageSize: _angular_core.InputSignal<number>;
|
|
32
|
+
readonly thyPageTotal: _angular_core.InputSignal<number>;
|
|
33
|
+
readonly thyShowSizeChanger: _angular_core.InputSignal<boolean>;
|
|
34
|
+
readonly thyPageSizeOptions: _angular_core.InputSignal<number[]>;
|
|
35
|
+
readonly thyPageIndexChange: _angular_core.OutputEmitterRef<number>;
|
|
36
|
+
readonly thyPageSizeChange: _angular_core.OutputEmitterRef<number>;
|
|
37
|
+
readonly thyScroll: _angular_core.InputSignal<ThyNativeTableScroll>;
|
|
38
|
+
readonly thyEmptyOptions: _angular_core.InputSignal<ThyTableEmptyOptions>;
|
|
39
|
+
/** data for ngFor tr */
|
|
40
|
+
data: _angular_core.Signal<readonly T[]>;
|
|
41
|
+
theadTemplate: _angular_core.WritableSignal<TemplateRef<any> | null>;
|
|
42
|
+
listOfManualColWidth: _angular_core.WritableSignal<readonly (string | null)[]>;
|
|
43
|
+
pagination: _angular_core.Signal<ThyPage | null>;
|
|
44
|
+
defaultPagination: {
|
|
45
|
+
index: number;
|
|
46
|
+
size: number;
|
|
47
|
+
sizeOptions: number[];
|
|
48
|
+
};
|
|
49
|
+
scrollX: _angular_core.Signal<string | null>;
|
|
50
|
+
scrollY: _angular_core.Signal<string | null>;
|
|
51
|
+
constructor(tableElementRef: ElementRef);
|
|
52
|
+
ngOnInit(): void;
|
|
53
|
+
private setNativeTableClass;
|
|
54
|
+
onPageIndexChange(event: number): void;
|
|
55
|
+
onPageSizeChange(event: number): void;
|
|
56
|
+
private updateTableClass;
|
|
57
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThyNativeTableComponent<any>, never>;
|
|
58
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThyNativeTableComponent<any>, "thy-native-table", ["thyNativeTable"], { "thyTableLayout": { "alias": "thyTableLayout"; "required": false; "isSignal": true; }; "thySize": { "alias": "thySize"; "required": false; "isSignal": true; }; "thyTheme": { "alias": "thyTheme"; "required": false; "isSignal": true; }; "thyData": { "alias": "thyData"; "required": false; "isSignal": true; }; "thyShowPagination": { "alias": "thyShowPagination"; "required": false; "isSignal": true; }; "thyPageIndex": { "alias": "thyPageIndex"; "required": false; "isSignal": true; }; "thyPageSize": { "alias": "thyPageSize"; "required": false; "isSignal": true; }; "thyPageTotal": { "alias": "thyPageTotal"; "required": false; "isSignal": true; }; "thyShowSizeChanger": { "alias": "thyShowSizeChanger"; "required": false; "isSignal": true; }; "thyPageSizeOptions": { "alias": "thyPageSizeOptions"; "required": false; "isSignal": true; }; "thyScroll": { "alias": "thyScroll"; "required": false; "isSignal": true; }; "thyEmptyOptions": { "alias": "thyEmptyOptions"; "required": false; "isSignal": true; }; }, { "thyPageIndexChange": "thyPageIndexChange"; "thyPageSizeChange": "thyPageSizeChange"; }, never, ["*"], true, never>;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
declare class ThyNativeTableInnerScrollComponent<T = SafeAny> {
|
|
62
|
+
readonly data: _angular_core.InputSignal<readonly T[]>;
|
|
63
|
+
readonly scrollX: _angular_core.InputSignal<string | null>;
|
|
64
|
+
readonly scrollY: _angular_core.InputSignal<string | null>;
|
|
65
|
+
readonly contentTemplate: _angular_core.InputSignal<TemplateRef<any> | null>;
|
|
66
|
+
readonly widthConfig: _angular_core.InputSignal<string[]>;
|
|
67
|
+
readonly listOfColWidth: _angular_core.InputSignal<readonly (string | null)[]>;
|
|
68
|
+
readonly theadTemplate: _angular_core.InputSignal<TemplateRef<any> | null>;
|
|
69
|
+
readonly tfootTemplate: _angular_core.InputSignal<TemplateRef<any> | null>;
|
|
70
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThyNativeTableInnerScrollComponent<any>, never>;
|
|
71
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThyNativeTableInnerScrollComponent<any>, "thy-native-table-inner-scroll", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "scrollX": { "alias": "scrollX"; "required": false; "isSignal": true; }; "scrollY": { "alias": "scrollY"; "required": false; "isSignal": true; }; "contentTemplate": { "alias": "contentTemplate"; "required": false; "isSignal": true; }; "widthConfig": { "alias": "widthConfig"; "required": false; "isSignal": true; }; "listOfColWidth": { "alias": "listOfColWidth"; "required": false; "isSignal": true; }; "theadTemplate": { "alias": "theadTemplate"; "required": false; "isSignal": true; }; "tfootTemplate": { "alias": "tfootTemplate"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
declare class ThyNativeTableInnerDefaultComponent implements OnInit {
|
|
75
|
+
readonly tableLayout: _angular_core.InputSignal<ThyNativeTableLayout>;
|
|
76
|
+
readonly listOfColWidth: _angular_core.InputSignal<readonly (string | null)[]>;
|
|
77
|
+
readonly theadTemplate: _angular_core.InputSignal<TemplateRef<any> | null>;
|
|
78
|
+
readonly contentTemplate: _angular_core.InputSignal<TemplateRef<any> | null>;
|
|
79
|
+
readonly tfootTemplate: _angular_core.InputSignal<TemplateRef<any> | null>;
|
|
80
|
+
ngOnInit(): void;
|
|
81
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThyNativeTableInnerDefaultComponent, never>;
|
|
82
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThyNativeTableInnerDefaultComponent, "thy-native-table-inner-default", never, { "tableLayout": { "alias": "tableLayout"; "required": false; "isSignal": true; }; "listOfColWidth": { "alias": "listOfColWidth"; "required": false; "isSignal": true; }; "theadTemplate": { "alias": "theadTemplate"; "required": false; "isSignal": true; }; "contentTemplate": { "alias": "contentTemplate"; "required": false; "isSignal": true; }; "tfootTemplate": { "alias": "tfootTemplate"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
declare class ThyNativeTableBodyComponent {
|
|
86
|
+
private styleService;
|
|
87
|
+
isInsideNativeTable: boolean;
|
|
88
|
+
showEmpty: _angular_core.Signal<boolean>;
|
|
89
|
+
emptyOptions: _angular_core.Signal<ngx_tethys_table.ThyTableEmptyOptions | null>;
|
|
90
|
+
constructor();
|
|
91
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThyNativeTableBodyComponent, never>;
|
|
92
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThyNativeTableBodyComponent, "tbody", never, {}, {}, never, ["*"], true, never>;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
interface ThyNativeTableThInfo {
|
|
96
|
+
thyWidth?: InputSignal<string | number | null>;
|
|
97
|
+
colspan?: number | string | null;
|
|
98
|
+
colSpan?: number | string | null;
|
|
99
|
+
}
|
|
100
|
+
declare class ThyNativeTableStyleService {
|
|
101
|
+
theadTemplate: _angular_core.WritableSignal<TemplateRef<any> | null>;
|
|
102
|
+
columnCount: _angular_core.WritableSignal<number>;
|
|
103
|
+
tableSize: _angular_core.WritableSignal<ThyNativeTableSize>;
|
|
104
|
+
tableTheme: _angular_core.WritableSignal<ThyNativeTableTheme>;
|
|
105
|
+
showEmpty: _angular_core.WritableSignal<boolean>;
|
|
106
|
+
emptyOptions: _angular_core.WritableSignal<ThyTableEmptyOptions | null>;
|
|
107
|
+
listOfThWidthConfigPx$: BehaviorSubject<readonly (string | null)[]>;
|
|
108
|
+
setTheadTemplate(template: TemplateRef<any>): void;
|
|
109
|
+
setTableSize(size: ThyNativeTableSize): void;
|
|
110
|
+
setTableTheme(theme: ThyNativeTableTheme): void;
|
|
111
|
+
setShowEmpty(showEmpty: boolean): void;
|
|
112
|
+
setEmptyOptions(emptyOptions: ThyTableEmptyOptions): void;
|
|
113
|
+
setListOfTh(listOfTh: readonly ThyNativeTableThDirective[]): void;
|
|
114
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThyNativeTableStyleService, never>;
|
|
115
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ThyNativeTableStyleService>;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
declare class ThyNativeTableThDirective implements ThyNativeTableThInfo {
|
|
119
|
+
private renderer;
|
|
120
|
+
private el;
|
|
121
|
+
changes$: Subject<void>;
|
|
122
|
+
readonly thyWidth: _angular_core.InputSignal<string | number | null>;
|
|
123
|
+
readonly thyColspan: _angular_core.InputSignal<string | number | null>;
|
|
124
|
+
readonly thyColSpan: _angular_core.InputSignal<string | number | null>;
|
|
125
|
+
readonly thyRowspan: _angular_core.InputSignal<string | number | null>;
|
|
126
|
+
readonly thyRowSpan: _angular_core.InputSignal<string | number | null>;
|
|
127
|
+
get colspan(): number | string | null;
|
|
128
|
+
get colSpan(): number | string | null;
|
|
129
|
+
constructor();
|
|
130
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThyNativeTableThDirective, never>;
|
|
131
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ThyNativeTableThDirective, "th", never, { "thyWidth": { "alias": "thyWidth"; "required": false; "isSignal": true; }; "thyColspan": { "alias": "thyColspan"; "required": false; "isSignal": true; }; "thyColSpan": { "alias": "thyColSpan"; "required": false; "isSignal": true; }; "thyRowspan": { "alias": "thyRowspan"; "required": false; "isSignal": true; }; "thyRowSpan": { "alias": "thyRowSpan"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
declare class ThyNativeTableTrDirective implements AfterContentInit {
|
|
135
|
+
private destroyRef;
|
|
136
|
+
private styleService;
|
|
137
|
+
listOfThDirective: QueryList<ThyNativeTableThDirective>;
|
|
138
|
+
private listOfColumns$;
|
|
139
|
+
listOfColumnsChanges$: Observable<ThyNativeTableThDirective[]>;
|
|
140
|
+
isInsideNativeTable: boolean;
|
|
141
|
+
ngAfterContentInit(): void;
|
|
142
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThyNativeTableTrDirective, never>;
|
|
143
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ThyNativeTableTrDirective, "tr:not([thyNativeTableMeasureRow]):not([thyNativeTableFixedRow])", never, {}, {}, ["listOfThDirective"], never, true, never>;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
declare class ThyNativeTableHeaderComponent implements AfterContentInit, AfterViewInit, OnInit {
|
|
147
|
+
private styleService;
|
|
148
|
+
private destroyRef;
|
|
149
|
+
private el;
|
|
150
|
+
private renderer;
|
|
151
|
+
isInsideNativeTable: boolean;
|
|
152
|
+
templateRef: TemplateRef<any>;
|
|
153
|
+
listOfTrDirective: QueryList<ThyNativeTableTrDirective>;
|
|
154
|
+
ngOnInit(): void;
|
|
155
|
+
ngAfterContentInit(): void;
|
|
156
|
+
ngAfterViewInit(): void;
|
|
157
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThyNativeTableHeaderComponent, never>;
|
|
158
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThyNativeTableHeaderComponent, "thead:not(.thy-native-table-thead)", never, {}, {}, ["listOfTrDirective"], ["*"], true, never>;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
declare class ThyNativeTableCellDirective {
|
|
162
|
+
isInsideTable: boolean;
|
|
163
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThyNativeTableCellDirective, never>;
|
|
164
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ThyNativeTableCellDirective, "th, td", never, {}, {}, never, never, true, never>;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
declare class ThyNativeTableTdSelectionComponent<T> implements OnInit {
|
|
168
|
+
readonly thyDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
169
|
+
readonly thyCellCheckbox: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
170
|
+
readonly thyCellChecked: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
171
|
+
readonly thyIndeterminate: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
172
|
+
readonly thyCheckedChange: _angular_core.OutputEmitterRef<boolean>;
|
|
173
|
+
ngOnInit(): void;
|
|
174
|
+
onCheckedChange(checked: boolean): void;
|
|
175
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThyNativeTableTdSelectionComponent<any>, never>;
|
|
176
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThyNativeTableTdSelectionComponent<any>, "td[thyCellChecked],td[thyCellCheckbox]", never, { "thyDisabled": { "alias": "thyDisabled"; "required": false; "isSignal": true; }; "thyCellCheckbox": { "alias": "thyCellCheckbox"; "required": false; "isSignal": true; }; "thyCellChecked": { "alias": "thyCellChecked"; "required": false; "isSignal": true; }; "thyIndeterminate": { "alias": "thyIndeterminate"; "required": false; "isSignal": true; }; }, { "thyCheckedChange": "thyCheckedChange"; }, never, ["*"], true, never>;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
declare class ThyNativeTableThSelectionComponent<T> implements OnInit {
|
|
180
|
+
readonly thyHeaderCellCheckbox: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
181
|
+
readonly thyDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
182
|
+
readonly thyHeaderCellChecked: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
183
|
+
readonly thyIndeterminate: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
184
|
+
readonly thyCheckedChange: _angular_core.OutputEmitterRef<boolean>;
|
|
185
|
+
constructor();
|
|
186
|
+
ngOnInit(): void;
|
|
187
|
+
onCheckedChange(checked: boolean): void;
|
|
188
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThyNativeTableThSelectionComponent<any>, never>;
|
|
189
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThyNativeTableThSelectionComponent<any>, "th[thyHeaderCellChecked],th[thyHeaderCellCheckbox]", never, { "thyHeaderCellCheckbox": { "alias": "thyHeaderCellCheckbox"; "required": false; "isSignal": true; }; "thyDisabled": { "alias": "thyDisabled"; "required": false; "isSignal": true; }; "thyHeaderCellChecked": { "alias": "thyHeaderCellChecked"; "required": false; "isSignal": true; }; "thyIndeterminate": { "alias": "thyIndeterminate"; "required": false; "isSignal": true; }; }, { "thyCheckedChange": "thyCheckedChange"; }, never, never, true, never>;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
declare class ThyNativeTableThSortComponent implements OnInit {
|
|
193
|
+
readonly thyHeaderCellSortable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
194
|
+
readonly thySortOrder: _angular_core.InputSignal<ThyNativeTableSortOrder | null>;
|
|
195
|
+
readonly thySortDirections: _angular_core.InputSignal<ThyNativeTableSortOrder[]>;
|
|
196
|
+
readonly sortTriggerTemplate: _angular_core.InputSignal<TemplateRef<any> | null>;
|
|
197
|
+
readonly thySortOrderChange: _angular_core.OutputEmitterRef<string | null>;
|
|
198
|
+
currentSortOrder: _angular_core.WritableSignal<ThyNativeTableSortOrder | null>;
|
|
199
|
+
isUp: _angular_core.Signal<boolean>;
|
|
200
|
+
isDown: _angular_core.Signal<boolean>;
|
|
201
|
+
setSortOrder(order: ThyNativeTableSortOrder): void;
|
|
202
|
+
ngOnInit(): void;
|
|
203
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThyNativeTableThSortComponent, never>;
|
|
204
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThyNativeTableThSortComponent, "th[thyHeaderCellSortable]", never, { "thyHeaderCellSortable": { "alias": "thyHeaderCellSortable"; "required": false; "isSignal": true; }; "thySortOrder": { "alias": "thySortOrder"; "required": false; "isSignal": true; }; "thySortDirections": { "alias": "thySortDirections"; "required": false; "isSignal": true; }; "sortTriggerTemplate": { "alias": "sortTriggerTemplate"; "required": false; "isSignal": true; }; }, { "thySortOrderChange": "thySortOrderChange"; }, never, ["*"], true, never>;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
declare const THY_NATIVE_TABLE_CELL_SELECTOR = ".thy-native-table-cell-edit";
|
|
208
|
+
declare const THY_NATIVE_TABLE_EDIT_PANE_SELECTOR = ".thy-native-table-popover-edit";
|
|
209
|
+
declare const THY_NATIVE_TABLE_EDIT_OPEN_SELECTOR = "[thyEditOpen]";
|
|
210
|
+
declare enum ThyNativeTableEditTrigger {
|
|
211
|
+
CLICK = "click",
|
|
212
|
+
DBLCLICK = "dblclick"
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
declare class ThyNativeTableEditableDirective implements AfterViewInit {
|
|
216
|
+
private elementRef;
|
|
217
|
+
private ngZone;
|
|
218
|
+
private destroyRef;
|
|
219
|
+
private dispatcher;
|
|
220
|
+
thyEditTrigger: _angular_core.InputSignal<ThyNativeTableEditTrigger>;
|
|
221
|
+
ngAfterViewInit(): void;
|
|
222
|
+
private listenForEditEvents;
|
|
223
|
+
private handleClickEdit;
|
|
224
|
+
private handelEnterEvent;
|
|
225
|
+
private handleClickOutside;
|
|
226
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThyNativeTableEditableDirective, never>;
|
|
227
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ThyNativeTableEditableDirective, "thy-native-table[thyEditable]", never, { "thyEditTrigger": { "alias": "thyEditTrigger"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
declare class ThyNativeTableTdEditCloseDirective {
|
|
231
|
+
private editRef;
|
|
232
|
+
private elementRef;
|
|
233
|
+
private destroyRef;
|
|
234
|
+
constructor();
|
|
235
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThyNativeTableTdEditCloseDirective, never>;
|
|
236
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ThyNativeTableTdEditCloseDirective, "[thyEditClose]", never, {}, {}, never, never, true, never>;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
declare class ThyNativeTableTdEditOpenDirective {
|
|
240
|
+
readonly elementRef: ElementRef<any>;
|
|
241
|
+
private dispatcher;
|
|
242
|
+
private destroyRef;
|
|
243
|
+
constructor();
|
|
244
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThyNativeTableTdEditOpenDirective, never>;
|
|
245
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ThyNativeTableTdEditOpenDirective, "[thyEditOpen]", never, {}, {}, never, never, true, never>;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
declare class ThyNativeTableTdPopoverEditDirective implements AfterViewInit, OnDestroy {
|
|
249
|
+
private elementRef;
|
|
250
|
+
private viewContainerRef;
|
|
251
|
+
private popover;
|
|
252
|
+
private dispatcher;
|
|
253
|
+
private destroyRef;
|
|
254
|
+
editTemplate: TemplateRef<any>;
|
|
255
|
+
private popoverRef?;
|
|
256
|
+
private focusoutUnsubscribe?;
|
|
257
|
+
ngAfterViewInit(): void;
|
|
258
|
+
private openPopover;
|
|
259
|
+
private listenFocusout;
|
|
260
|
+
private closePopover;
|
|
261
|
+
ngOnDestroy(): void;
|
|
262
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThyNativeTableTdPopoverEditDirective, never>;
|
|
263
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ThyNativeTableTdPopoverEditDirective, "td[thyCellPopoverEdit]", never, { "editTemplate": { "alias": "thyCellPopoverEdit"; "required": false; }; }, {}, never, never, true, never>;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
declare class ThyNativeTableModule {
|
|
267
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThyNativeTableModule, never>;
|
|
268
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<ThyNativeTableModule, never, [typeof i1.CommonModule, typeof ThyNativeTableComponent, typeof ThyNativeTableInnerScrollComponent, typeof ThyNativeTableInnerDefaultComponent, typeof ThyNativeTableBodyComponent, typeof ThyNativeTableHeaderComponent, typeof ThyNativeTableTrDirective, typeof ThyNativeTableCellDirective, typeof ThyNativeTableThDirective, typeof ThyNativeTableTdSelectionComponent, typeof ThyNativeTableThSelectionComponent, typeof ThyNativeTableThSortComponent, typeof ThyNativeTableEditableDirective, typeof ThyNativeTableTdEditCloseDirective, typeof ThyNativeTableTdEditOpenDirective, typeof ThyNativeTableTdPopoverEditDirective], [typeof ThyNativeTableComponent, typeof ThyNativeTableInnerScrollComponent, typeof ThyNativeTableInnerDefaultComponent, typeof ThyNativeTableBodyComponent, typeof ThyNativeTableHeaderComponent, typeof ThyNativeTableTrDirective, typeof ThyNativeTableCellDirective, typeof ThyNativeTableThDirective, typeof ThyNativeTableTdSelectionComponent, typeof ThyNativeTableThSelectionComponent, typeof ThyNativeTableThSortComponent, typeof ThyNativeTableEditableDirective, typeof ThyNativeTableTdEditCloseDirective, typeof ThyNativeTableTdEditOpenDirective, typeof ThyNativeTableTdPopoverEditDirective]>;
|
|
269
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<ThyNativeTableModule>;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
declare class ThyNativeTableContentComponent {
|
|
273
|
+
readonly tableLayout: _angular_core.InputSignal<ThyNativeTableLayout>;
|
|
274
|
+
readonly theadTemplate: _angular_core.InputSignal<TemplateRef<any> | null>;
|
|
275
|
+
readonly contentTemplate: _angular_core.InputSignal<TemplateRef<any> | null>;
|
|
276
|
+
readonly tfootTemplate: _angular_core.InputSignal<TemplateRef<any> | null>;
|
|
277
|
+
readonly listOfColWidth: _angular_core.InputSignal<readonly (string | null)[]>;
|
|
278
|
+
readonly scrollX: _angular_core.InputSignal<string | null>;
|
|
279
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThyNativeTableContentComponent, never>;
|
|
280
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThyNativeTableContentComponent, "table[thy-native-table-content]", never, { "tableLayout": { "alias": "tableLayout"; "required": false; "isSignal": true; }; "theadTemplate": { "alias": "theadTemplate"; "required": false; "isSignal": true; }; "contentTemplate": { "alias": "contentTemplate"; "required": false; "isSignal": true; }; "tfootTemplate": { "alias": "tfootTemplate"; "required": false; "isSignal": true; }; "listOfColWidth": { "alias": "listOfColWidth"; "required": false; "isSignal": true; }; "scrollX": { "alias": "scrollX"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
declare class ThyNativeTableEditEventDispatcher {
|
|
284
|
+
private editing;
|
|
285
|
+
private currentEditingCell;
|
|
286
|
+
readonly editing$: Observable<HTMLElement | null>;
|
|
287
|
+
editingCell(element: HTMLElement): Observable<boolean>;
|
|
288
|
+
startEditing(cell: HTMLElement): void;
|
|
289
|
+
stopEditing(): void;
|
|
290
|
+
getCurrentEditingCell(): HTMLElement | null;
|
|
291
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThyNativeTableEditEventDispatcher, never>;
|
|
292
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ThyNativeTableEditEventDispatcher>;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
declare class ThyNativeTableEditRef {
|
|
296
|
+
private dispatcher;
|
|
297
|
+
private afterClosedSubject;
|
|
298
|
+
readonly afterClosed: Observable<void>;
|
|
299
|
+
close(): void;
|
|
300
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThyNativeTableEditRef, never>;
|
|
301
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ThyNativeTableEditRef>;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
export { THY_NATIVE_TABLE_CELL_SELECTOR, THY_NATIVE_TABLE_EDIT_OPEN_SELECTOR, THY_NATIVE_TABLE_EDIT_PANE_SELECTOR, ThyNativeTableBodyComponent, ThyNativeTableCellDirective, ThyNativeTableComponent, ThyNativeTableContentComponent, ThyNativeTableEditEventDispatcher, ThyNativeTableEditRef, ThyNativeTableEditTrigger, ThyNativeTableEditableDirective, ThyNativeTableHeaderComponent, ThyNativeTableInnerDefaultComponent, ThyNativeTableInnerScrollComponent, ThyNativeTableModule, ThyNativeTableStyleService, ThyNativeTableTdEditCloseDirective, ThyNativeTableTdEditOpenDirective, ThyNativeTableTdPopoverEditDirective, ThyNativeTableTdSelectionComponent, ThyNativeTableThDirective, ThyNativeTableThSelectionComponent, ThyNativeTableThSortComponent, ThyNativeTableTrDirective };
|
|
305
|
+
export type { ThyNativeTableLayout, ThyNativeTableScroll, ThyNativeTableSize, ThyNativeTableSortOrder, ThyNativeTableThInfo, ThyNativeTableTheme };
|