ngx-tethys 14.2.21 → 14.2.23
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 +30 -0
- package/avatar/avatar-list/avatar-list.component.d.ts +75 -0
- package/avatar/avatar.component.d.ts +57 -1
- package/avatar/avatar.module.d.ts +5 -4
- package/avatar/index.d.ts +1 -0
- package/avatar/styles/avatar-list.scss +36 -0
- package/avatar/styles/avatar.scss +2 -0
- package/avatar/styles/mixin.scss +10 -0
- package/date-picker/styles/calendar.scss +0 -2
- package/date-picker/styles/picker.scss +1 -1
- package/date-picker/styles/range-picker.scss +1 -1
- package/esm2020/avatar/avatar-list/avatar-list.component.mjs +175 -0
- package/esm2020/avatar/avatar.component.mjs +47 -3
- package/esm2020/avatar/avatar.module.mjs +5 -4
- package/esm2020/avatar/index.mjs +2 -1
- package/esm2020/comment/comment.component.mjs +1 -1
- package/esm2020/date-picker/lib/date/date-table.component.mjs +12 -3
- package/esm2020/date-picker/lib/popups/date-popup.component.mjs +2 -1
- package/esm2020/input-number/input-number.component.mjs +6 -6
- package/esm2020/layout/sidebar.component.mjs +18 -7
- package/esm2020/list/list-item-meta.component.mjs +1 -1
- package/esm2020/popover/header/popover-header.component.mjs +9 -5
- package/esm2020/version.mjs +2 -2
- package/fesm2015/ngx-tethys-avatar.mjs +221 -7
- package/fesm2015/ngx-tethys-avatar.mjs.map +1 -1
- package/fesm2015/ngx-tethys-comment.mjs +1 -1
- package/fesm2015/ngx-tethys-comment.mjs.map +1 -1
- package/fesm2015/ngx-tethys-date-picker.mjs +13 -2
- package/fesm2015/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2015/ngx-tethys-input-number.mjs +5 -5
- package/fesm2015/ngx-tethys-input-number.mjs.map +1 -1
- package/fesm2015/ngx-tethys-layout.mjs +12 -1
- package/fesm2015/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2015/ngx-tethys-list.mjs +1 -1
- package/fesm2015/ngx-tethys-list.mjs.map +1 -1
- package/fesm2015/ngx-tethys-popover.mjs +8 -4
- package/fesm2015/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2015/ngx-tethys.mjs +1 -1
- package/fesm2015/ngx-tethys.mjs.map +1 -1
- package/fesm2020/ngx-tethys-avatar.mjs +221 -7
- package/fesm2020/ngx-tethys-avatar.mjs.map +1 -1
- package/fesm2020/ngx-tethys-comment.mjs +1 -1
- package/fesm2020/ngx-tethys-comment.mjs.map +1 -1
- package/fesm2020/ngx-tethys-date-picker.mjs +12 -2
- package/fesm2020/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2020/ngx-tethys-input-number.mjs +5 -5
- package/fesm2020/ngx-tethys-input-number.mjs.map +1 -1
- package/fesm2020/ngx-tethys-layout.mjs +13 -2
- package/fesm2020/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2020/ngx-tethys-list.mjs +1 -1
- package/fesm2020/ngx-tethys-list.mjs.map +1 -1
- package/fesm2020/ngx-tethys-popover.mjs +8 -4
- package/fesm2020/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2020/ngx-tethys.mjs +1 -1
- package/fesm2020/ngx-tethys.mjs.map +1 -1
- package/layout/sidebar.component.d.ts +6 -4
- package/package.json +1 -1
- package/popover/header/popover-header.component.d.ts +6 -2
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/styles/variables.scss +1 -0
|
@@ -10,12 +10,13 @@ import { Overlay, FlexibleConnectedPositionStrategy, OverlayModule } from '@angu
|
|
|
10
10
|
import * as i2$1 from '@angular/cdk/platform';
|
|
11
11
|
import * as i4 from '@angular/cdk/portal';
|
|
12
12
|
import { CdkPortalOutlet, ComponentPortal, PortalModule } from '@angular/cdk/portal';
|
|
13
|
+
import * as i3$1 from '@angular/common';
|
|
13
14
|
import { DOCUMENT, CommonModule } from '@angular/common';
|
|
14
15
|
import * as i0 from '@angular/core';
|
|
15
|
-
import { InjectionToken, EventEmitter, Component, ViewChild, HostListener, Injector, Injectable, Optional, Inject, ChangeDetectionStrategy, Input, Output, Directive, HostBinding, NgModule } from '@angular/core';
|
|
16
|
+
import { InjectionToken, EventEmitter, Component, ViewChild, HostListener, Injector, Injectable, Optional, Inject, ChangeDetectionStrategy, Input, ContentChild, Output, Directive, HostBinding, NgModule } from '@angular/core';
|
|
16
17
|
import * as i3 from '@angular/cdk/observers';
|
|
17
18
|
import { state, style, trigger } from '@angular/animations';
|
|
18
|
-
import * as
|
|
19
|
+
import * as i4$1 from 'ngx-tethys/icon';
|
|
19
20
|
import { ThyIconModule } from 'ngx-tethys/icon';
|
|
20
21
|
import { __decorate, __metadata } from 'tslib';
|
|
21
22
|
import * as i2$2 from '@angular/cdk/a11y';
|
|
@@ -443,16 +444,19 @@ class ThyPopoverHeaderComponent {
|
|
|
443
444
|
}
|
|
444
445
|
}
|
|
445
446
|
ThyPopoverHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ThyPopoverHeaderComponent, deps: [{ token: i2.ThyTranslate }, { token: ThyPopover }], target: i0.ɵɵFactoryTarget.Component });
|
|
446
|
-
ThyPopoverHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: ThyPopoverHeaderComponent, selector: "thy-popover-header", inputs: { thyTitle: "thyTitle", thyTitleTranslationKey: "thyTitleTranslationKey" }, outputs: { thyClosed: "thyClosed" }, host: { classAttribute: "thy-popover-header" }, exportAs: ["thyPopoverHeader"], ngImport: i0, template: "<h5 class=\"thy-popover-title\">{{ thyTitle }}</h5>\n<button type=\"button\" class=\"close\" (click)=\"close($event)\">\n
|
|
447
|
+
ThyPopoverHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: ThyPopoverHeaderComponent, selector: "thy-popover-header", inputs: { thyTitle: "thyTitle", thyTitleTranslationKey: "thyTitleTranslationKey" }, outputs: { thyClosed: "thyClosed" }, host: { classAttribute: "thy-popover-header" }, queries: [{ propertyName: "headerTemplate", first: true, predicate: ["popoverHeader"], descendants: true }], exportAs: ["thyPopoverHeader"], ngImport: i0, template: "<ng-container *ngIf=\"headerTemplate; else defaultHeader\">\n <template [ngTemplateOutlet]=\"headerTemplate\"></template>\n</ng-container>\n<ng-template #defaultHeader>\n <h5 class=\"thy-popover-title\">{{ thyTitle }}</h5>\n <button type=\"button\" class=\"close\" (click)=\"close($event)\">\n <thy-icon thyIconName=\"close-bold\"></thy-icon>\n </button>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4$1.ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
447
448
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ThyPopoverHeaderComponent, decorators: [{
|
|
448
449
|
type: Component,
|
|
449
450
|
args: [{ selector: 'thy-popover-header', exportAs: 'thyPopoverHeader', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
450
451
|
class: 'thy-popover-header'
|
|
451
|
-
}, template: "<h5 class=\"thy-popover-title\">{{ thyTitle }}</h5>\n<button type=\"button\" class=\"close\" (click)=\"close($event)\">\n
|
|
452
|
+
}, template: "<ng-container *ngIf=\"headerTemplate; else defaultHeader\">\n <template [ngTemplateOutlet]=\"headerTemplate\"></template>\n</ng-container>\n<ng-template #defaultHeader>\n <h5 class=\"thy-popover-title\">{{ thyTitle }}</h5>\n <button type=\"button\" class=\"close\" (click)=\"close($event)\">\n <thy-icon thyIconName=\"close-bold\"></thy-icon>\n </button>\n</ng-template>\n" }]
|
|
452
453
|
}], ctorParameters: function () { return [{ type: i2.ThyTranslate }, { type: ThyPopover }]; }, propDecorators: { thyTitle: [{
|
|
453
454
|
type: Input
|
|
454
455
|
}], thyTitleTranslationKey: [{
|
|
455
456
|
type: Input
|
|
457
|
+
}], headerTemplate: [{
|
|
458
|
+
type: ContentChild,
|
|
459
|
+
args: ['popoverHeader']
|
|
456
460
|
}], thyClosed: [{
|
|
457
461
|
type: Output
|
|
458
462
|
}] } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-popover.mjs","sources":["../../../src/popover/popover-animations.ts","../../../src/popover/popover.config.ts","../../../src/popover/popover.options.ts","../../../src/popover/popover-container.component.ts","../../../src/popover/popover-container.component.html","../../../src/popover/popover-ref.ts","../../../src/popover/popover.service.ts","../../../src/popover/body/popover-body.component.ts","../../../src/popover/header/popover-header.component.ts","../../../src/popover/header/popover-header.component.html","../../../src/popover/popover.directive.ts","../../../src/popover/module.ts","../../../src/popover/ngx-tethys-popover.ts"],"sourcesContent":["import { animate, state, style, transition, trigger, AnimationTriggerMetadata } from '@angular/animations';\n\nconst animationBody = [\n // Note: The `enter` animation transitions to `transform: none`, because for some reason\n // specifying the transform explicitly, causes IE both to blur the dialog content and\n // decimate the animation performance. Leaving it as `none` solves both issues. translate(-300px,-100px)\n state('void, exit', style({ opacity: 0, transform: 'scale(0.1)' })),\n state('enter', style({ transform: 'none' }))\n // transition('* => enter', animate('100ms cubic-bezier(0, 0, 0.57, 1)', style({ transform: 'none', opacity: 1 }))),\n // transition(\n // '* => exit',\n // animate('150ms cubic-bezier(0.24, 0.18, 0.96, 0.52)', style({ transform: 'scale(0.3)', opacity: 0 }))\n // )\n];\n\n/**\n * Animations used by ThyPopover.\n * @docs-private\n */\nexport const thyPopoverAnimations: {\n readonly popoverContainer: AnimationTriggerMetadata;\n} = {\n popoverContainer: trigger('popoverContainer', animationBody)\n};\n\n// export const setAnimationStart\n","import { ThyPlacement, ThyAbstractOverlayConfig } from 'ngx-tethys/core';\n\nimport { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ElementRef, InjectionToken } from '@angular/core';\n\nexport class ThyPopoverConfig<TData = unknown> extends ThyAbstractOverlayConfig<TData> {\n /** Origin Element, for overlay flexible connected to */\n origin: ElementRef<any> | HTMLElement;\n\n /** Origin point, default use origin's boundingClientRect*/\n originPosition?: {\n x: number;\n y: number;\n } & { width?: number; height?: number };\n\n /** Placement be relative to origin, topCenter, topLeft, topRight, bottomCenter, bottomLeft, bottomRight ...*/\n placement?: ThyPlacement;\n\n /** Click inside can been close */\n insideClosable?: boolean;\n\n /** Offset be relative to origin, default is 0*/\n offset?: number;\n\n /** Manually close it, default rules is which auto close last popover when open a new unless set manualClosure as true */\n manualClosure?: boolean;\n\n /** Origin active class when popover is opened */\n originActiveClass?: string | string[];\n\n /**\n * 滚动策略\n */\n scrollStrategy?: ScrollStrategy;\n\n /** Click outside can been close */\n outsideClosable?: boolean;\n\n /** autoAdaptive is true when height change can auto update position */\n autoAdaptive?: boolean;\n}\n\nexport const THY_POPOVER_DEFAULT_CONFIG = new InjectionToken<ThyPopoverConfig>('thy-popover-default-config');\n\nexport const THY_POPOVER_DEFAULT_CONFIG_VALUE = {\n hasBackdrop: true,\n backdropClass: 'thy-popover-backdrop',\n panelClass: '',\n offset: 0,\n backdropClosable: true,\n closeOnNavigation: true,\n placement: 'bottom' as ThyPlacement,\n insideClosable: false,\n manualClosure: false,\n originActiveClass: 'thy-popover-origin-active',\n autoAdaptive: false,\n minWidth: '240px'\n};\n\nexport const THY_POPOVER_DEFAULT_CONFIG_PROVIDER = {\n provide: THY_POPOVER_DEFAULT_CONFIG,\n useValue: THY_POPOVER_DEFAULT_CONFIG_VALUE\n};\n\nexport const THY_POPOVER_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('thy-popover-scroll-strategy');\n\nexport const THY_POPOVER_SCROLL_STRATEGY_FACTORY = (overlay: Overlay) => {\n return () => overlay.scrollStrategies.block();\n};\n\nexport const THY_POPOVER_SCROLL_STRATEGY_PROVIDER = {\n provide: THY_POPOVER_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: THY_POPOVER_SCROLL_STRATEGY_FACTORY\n};\n","import { ThyAbstractOverlayOptions } from 'ngx-tethys/core';\n\nexport const popoverAbstractOverlayOptions: ThyAbstractOverlayOptions = {\n name: 'popover',\n animationEnabled: true,\n disposeWhenClose: true\n};\n","import { ContentObserver } from '@angular/cdk/observers';\nimport { ThyAbstractOverlayContainer, ThyClickDispatcher } from 'ngx-tethys/core';\nimport { from, Observable, Subject, timer } from 'rxjs';\nimport { take, takeUntil, filter } from 'rxjs/operators';\nimport { AnimationEvent } from '@angular/animations';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n NgZone,\n OnDestroy,\n ViewChild\n} from '@angular/core';\n\nimport { thyPopoverAnimations } from './popover-animations';\nimport { ThyPopoverConfig } from './popover.config';\nimport { popoverAbstractOverlayOptions } from './popover.options';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-popover-container',\n templateUrl: './popover-container.component.html',\n animations: [thyPopoverAnimations.popoverContainer],\n host: {\n class: 'thy-popover-container',\n tabindex: '-1',\n '[attr.role]': `'popover'`,\n '[attr.id]': 'id',\n '[@popoverContainer]': 'animationState',\n '(@popoverContainer.start)': 'onAnimationStart($event)',\n '(@popoverContainer.done)': 'onAnimationDone($event)'\n }\n})\nexport class ThyPopoverContainerComponent<TData = unknown> extends ThyAbstractOverlayContainer<TData> implements AfterViewInit, OnDestroy {\n @ViewChild(CdkPortalOutlet, { static: true })\n portalOutlet: CdkPortalOutlet;\n\n /** State of the popover animation. */\n animationState: 'void' | 'enter' | 'exit' = 'enter';\n\n /** Emits when an animation state changes. */\n animationStateChanged = new EventEmitter<AnimationEvent>();\n\n animationOpeningDone: Observable<AnimationEvent>;\n animationClosingDone: Observable<AnimationEvent>;\n\n insideClicked = new EventEmitter();\n\n updatePosition = new EventEmitter();\n\n outsideClicked = new EventEmitter();\n\n beforeAttachPortal(): void {}\n\n constructor(\n private elementRef: ElementRef,\n public config: ThyPopoverConfig<TData>,\n changeDetectorRef: ChangeDetectorRef,\n private thyClickDispatcher: ThyClickDispatcher,\n private contentObserver: ContentObserver,\n private ngZone: NgZone\n ) {\n super(popoverAbstractOverlayOptions, changeDetectorRef);\n\n this.animationOpeningDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'enter';\n })\n );\n this.animationClosingDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'exit';\n })\n );\n }\n\n ngAfterViewInit() {\n if (this.config.outsideClosable && !this.config.hasBackdrop) {\n timer(0).subscribe(() => {\n this.thyClickDispatcher\n .clicked()\n .pipe(takeUntil(this.animationClosingDone))\n .subscribe((event: MouseEvent) => {\n if (!this.elementRef.nativeElement.contains(event.target as HTMLElement)) {\n this.ngZone.run(() => {\n this.outsideClicked.emit();\n });\n }\n });\n });\n }\n\n if (this.config.autoAdaptive) {\n const onStable$ = this.ngZone.isStable ? from(Promise.resolve()) : this.ngZone.onStable.pipe(take(1));\n this.ngZone.runOutsideAngular(() => {\n onStable$.pipe(takeUntil(this.containerDestroy)).subscribe(() => {\n this.contentObserver\n .observe(this.elementRef)\n .pipe(takeUntil(this.containerDestroy))\n .subscribe(() => {\n this.updatePosition.emit();\n });\n });\n });\n }\n }\n\n /** Callback, invoked whenever an animation on the host completes. */\n onAnimationDone(event: AnimationEvent) {\n // if (event.toState === 'void') {\n // this.trapFocus();\n // } else if (event.toState === 'exit') {\n // this.restoreFocus();\n // }\n this.animationStateChanged.emit(event);\n }\n\n /** Callback, invoked when an animation on the host starts. */\n onAnimationStart(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n startExitAnimation(): void {\n this.animationState = 'exit';\n\n // Mark the container for check so it can react if the\n // view container is using OnPush change detection.\n this.changeDetectorRef.markForCheck();\n }\n\n @HostListener('click', [])\n onInsideClick() {\n if (this.config.insideClosable) {\n this.insideClicked.emit();\n }\n }\n\n ngOnDestroy() {\n super.destroy();\n this.insideClicked.complete();\n this.updatePosition.complete();\n this.outsideClicked.complete();\n }\n}\n","<ng-template cdkPortalOutlet></ng-template>\n","import { ThyAbstractInternalOverlayRef, ThyAbstractOverlayRef } from 'ngx-tethys/core';\n\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { merge } from 'rxjs';\n\nimport { ThyPopoverContainerComponent } from './popover-container.component';\nimport { ThyPopoverConfig } from './popover.config';\nimport { popoverAbstractOverlayOptions } from './popover.options';\n\nexport abstract class ThyPopoverRef<T, TResult = unknown, TData = unknown> extends ThyAbstractOverlayRef<\n T,\n ThyPopoverContainerComponent<TData>,\n TResult\n> {}\n\nexport class ThyInternalPopoverRef<T, TResult = unknown> extends ThyAbstractInternalOverlayRef<T, ThyPopoverContainerComponent, TResult>\n implements ThyPopoverRef<T, TResult> {\n constructor(overlayRef: OverlayRef, containerInstance: ThyPopoverContainerComponent, config: ThyPopoverConfig) {\n super(popoverAbstractOverlayOptions, overlayRef, containerInstance, config);\n // Note: doesn't need to unsubscribe, because `insideClicked` and `outsideClicked`\n // get completed by `ThyPopoverContainerComponent` when the view is destroyed.\n merge(containerInstance.insideClicked, containerInstance.outsideClicked).subscribe(() => this.close());\n containerInstance.updatePosition.subscribe(() => {\n this.updatePosition();\n });\n }\n\n /**\n * Updates the popover's position.\n * @param position New popover position.\n */\n updatePosition(): this {\n this.overlayRef.updatePosition();\n return this;\n }\n}\n","import { ComponentTypeOrTemplateRef, getFlexiblePositions, ThyAbstractOverlayRef, ThyAbstractOverlayService } from 'ngx-tethys/core';\nimport { FunctionProp, isFunction } from 'ngx-tethys/util';\nimport { of, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceArray, coerceElement } from '@angular/cdk/coercion';\nimport {\n ComponentType,\n FlexibleConnectedPositionStrategy,\n FlexibleConnectedPositionStrategyOrigin,\n Overlay,\n OverlayConfig,\n OverlayContainer,\n OverlayRef,\n PositionStrategy,\n ScrollStrategy,\n ViewportRuler\n} from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport { ElementRef, Inject, Injectable, Injector, NgZone, OnDestroy, Optional, StaticProvider, TemplateRef } from '@angular/core';\n\nimport { ThyPopoverContainerComponent } from './popover-container.component';\nimport { ThyInternalPopoverRef, ThyPopoverRef } from './popover-ref';\nimport {\n THY_POPOVER_DEFAULT_CONFIG,\n THY_POPOVER_DEFAULT_CONFIG_VALUE,\n THY_POPOVER_SCROLL_STRATEGY,\n ThyPopoverConfig\n} from './popover.config';\nimport { popoverAbstractOverlayOptions } from './popover.options';\nimport { SafeAny } from 'ngx-tethys/types';\n\n@Injectable()\nexport class ThyPopover extends ThyAbstractOverlayService<ThyPopoverConfig, ThyPopoverContainerComponent> implements OnDestroy {\n private readonly ngUnsubscribe$ = new Subject();\n\n private originInstancesMap = new Map<\n ElementRef | HTMLElement,\n {\n config: ThyPopoverConfig;\n popoverRef: ThyPopoverRef<any, any>;\n }\n >();\n\n private buildPositionStrategy<TData>(config: ThyPopoverConfig<TData>): PositionStrategy {\n const origin: FlexibleConnectedPositionStrategyOrigin = config.originPosition ? config.originPosition : config.origin;\n // const positionStrategy = this.overlay.position().flexibleConnectedTo(origin);\n const positionStrategy = new FlexibleConnectedPositionStrategy(\n origin,\n this._viewportRuler,\n this._document,\n this._platform,\n this._overlayContainer\n );\n const positions = getFlexiblePositions(config.placement, config.offset, 'thy-popover');\n positionStrategy.withPositions(positions);\n positionStrategy.withGrowAfterOpen(true);\n positionStrategy.positionChanges.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(change => {\n if (change.scrollableViewProperties.isOverlayClipped) {\n // After position changes occur and the overlay is clipped by\n // a parent scrollable then close the tooltip.\n this.ngZone.run(() => this.close());\n }\n });\n return positionStrategy;\n }\n\n private buildScrollStrategy(config: ThyPopoverConfig): ScrollStrategy {\n if (config.scrollStrategy) {\n return config.scrollStrategy;\n } else if (this.scrollStrategy && isFunction(this.scrollStrategy)) {\n return this.scrollStrategy();\n } else {\n this.overlay.scrollStrategies.block();\n }\n }\n\n protected buildOverlayConfig<TData>(config: ThyPopoverConfig<TData>): OverlayConfig {\n const positionStrategy = this.buildPositionStrategy(config);\n const overlayConfig = this.buildBaseOverlayConfig(config, 'thy-popover-panel');\n overlayConfig.positionStrategy = positionStrategy;\n overlayConfig.scrollStrategy = this.buildScrollStrategy(config);\n return overlayConfig;\n }\n\n protected attachOverlayContainer(overlay: OverlayRef, config: ThyPopoverConfig<any>): ThyPopoverContainerComponent {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this.injector,\n providers: [{ provide: ThyPopoverConfig, useValue: config }]\n });\n const containerPortal = new ComponentPortal(ThyPopoverContainerComponent, config.viewContainerRef, injector);\n const containerRef = overlay.attach<ThyPopoverContainerComponent>(containerPortal);\n return containerRef.instance;\n }\n\n protected createAbstractOverlayRef<T, TResult = unknown>(\n overlayRef: OverlayRef,\n containerInstance: ThyPopoverContainerComponent,\n config: ThyPopoverConfig\n ): ThyAbstractOverlayRef<T, ThyPopoverContainerComponent, TResult> {\n return new ThyInternalPopoverRef(overlayRef, containerInstance, config);\n }\n\n protected createInjector<T>(\n config: ThyPopoverConfig,\n popoverRef: ThyPopoverRef<T>,\n popoverContainer: ThyPopoverContainerComponent\n ): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n\n const injectionTokens: StaticProvider[] = [\n { provide: ThyPopoverContainerComponent, useValue: popoverContainer },\n {\n provide: ThyPopoverRef,\n useValue: popoverRef\n }\n ];\n\n if (config.direction && (!userInjector || !userInjector.get<Directionality | null>(Directionality, null))) {\n injectionTokens.push({\n provide: Directionality,\n useValue: {\n value: config.direction,\n change: of()\n }\n });\n }\n\n return Injector.create({ parent: userInjector || this.injector, providers: injectionTokens });\n }\n\n private originElementAddActiveClass(config: ThyPopoverConfig) {\n if (config.originActiveClass) {\n coerceElement<HTMLElement>(config.origin).classList.add(...coerceArray(config.originActiveClass));\n }\n }\n\n private originElementRemoveActiveClass(config: ThyPopoverConfig) {\n if (config.originActiveClass) {\n coerceElement<HTMLElement>(config.origin).classList.remove(...coerceArray(config.originActiveClass));\n }\n }\n\n constructor(\n overlay: Overlay,\n injector: Injector,\n @Optional()\n @Inject(THY_POPOVER_DEFAULT_CONFIG)\n defaultConfig: ThyPopoverConfig,\n @Inject(THY_POPOVER_SCROLL_STRATEGY)\n scrollStrategy: FunctionProp<ScrollStrategy>,\n private ngZone: NgZone,\n private _viewportRuler: ViewportRuler,\n @Optional() @Inject(DOCUMENT) private _document: any,\n private _platform: Platform,\n private _overlayContainer: OverlayContainer\n ) {\n super(\n popoverAbstractOverlayOptions,\n overlay,\n injector,\n {\n ...THY_POPOVER_DEFAULT_CONFIG_VALUE,\n ...defaultConfig\n },\n scrollStrategy\n );\n }\n\n private ensureCloseClosest(origin: HTMLElement) {\n let closeAndEnd = false;\n this.originInstancesMap.forEach((value, key) => {\n if (value.config.manualClosure) {\n if (key === origin) {\n value.popoverRef.close();\n closeAndEnd = true;\n }\n } else {\n if (key === origin) {\n closeAndEnd = true;\n }\n value.popoverRef.close();\n }\n });\n return closeAndEnd;\n }\n\n /**\n * 打开 Popover\n */\n open<T, TData = unknown, TResult = unknown>(\n componentOrTemplateRef: ComponentTypeOrTemplateRef<T>,\n config?: ThyPopoverConfig<TData>\n ): ThyPopoverRef<T, TResult> {\n const originElement = coerceElement(config.origin);\n // 默认关闭之前的弹出框\n // 1. 当之前的 Popover 设置 manualClosure 为 true 时, 弹出其他 Popover 时不自动关闭 manualClosure 为 true 的 Popover\n // 2. 当前的 Origin 对应的 Popover 已经弹出,不管 manualClosure 设置为何,直接关闭并返回\n if (this.ensureCloseClosest(originElement)) {\n return;\n }\n\n const popoverRef = this.openOverlay<T, TResult>(componentOrTemplateRef, config) as ThyPopoverRef<T, TResult, TData>;\n config = popoverRef.containerInstance.config;\n popoverRef.afterClosed().subscribe(() => {\n this.originElementRemoveActiveClass(config);\n this.originInstancesMap.delete(originElement);\n });\n\n this.originElementAddActiveClass(config);\n this.originInstancesMap.set(originElement, {\n config,\n popoverRef\n });\n\n return popoverRef;\n }\n\n /**\n * 根据Id获取打开的悬浮层\n */\n getPopoverById(id: string): ThyPopoverRef<any> | undefined {\n return this.getAbstractOverlayById(id) as ThyPopoverRef<any> | undefined;\n }\n\n /**\n * 获取已经打开的悬浮层\n */\n getOpenedPopovers(): ThyPopoverRef<SafeAny>[] {\n return this.getAbstractOverlays();\n }\n\n /**\n * 通过 Dom 元素查找最近弹出的悬浮层\n * @description.en-us Finds the closest ThyPopoverRef to an element by looking at the DOM.\n */\n getClosestPopover(element: HTMLElement): ThyPopoverRef<any> | undefined {\n const parent = element.closest('.thy-popover-container');\n\n if (parent && parent.id) {\n return this.getPopoverById(parent.id);\n }\n return null;\n }\n\n /**\n * 关闭悬浮层\n */\n close<T>(result?: T, force?: boolean) {\n super.close(result, force);\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.dispose();\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding } from '@angular/core';\n\n/**\n * 悬浮层内容组件\n * @name thy-popover-body\n */\n@Component({\n selector: 'thy-popover-body',\n template: '<ng-content></ng-content>',\n exportAs: 'thyPopoverBody',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-popover-body'\n }\n})\nexport class ThyPopoverBodyComponent {}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ThyTranslate } from 'ngx-tethys/core';\nimport { ThyPopover } from '../popover.service';\n\n/**\n * 悬浮层头部组件\n * @name thy-popover-header\n */\n@Component({\n selector: 'thy-popover-header',\n templateUrl: './popover-header.component.html',\n exportAs: 'thyPopoverHeader',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-popover-header'\n }\n})\nexport class ThyPopoverHeaderComponent {\n /**\n * 头部标题\n */\n @Input() thyTitle: string;\n\n @Input()\n set thyTitleTranslationKey(key: string) {\n if (key && !this.thyTitle) {\n this.thyTitle = this.translate.instant(key);\n }\n }\n\n /**\n * @internal\n */\n @Output() thyClosed: EventEmitter<Event> = new EventEmitter<Event>();\n\n constructor(private translate: ThyTranslate, private thyPopover: ThyPopover) {}\n\n /**\n * @internal\n */\n close(event: Event) {\n this.thyClosed.emit(event);\n this.thyPopover.close();\n }\n}\n","<h5 class=\"thy-popover-title\">{{ thyTitle }}</h5>\n<button type=\"button\" class=\"close\" (click)=\"close($event)\">\n <thy-icon thyIconName=\"close-bold\"></thy-icon>\n</button>\n","import {\n Directive,\n ElementRef,\n NgZone,\n OnDestroy,\n Input,\n TemplateRef,\n OnInit,\n ViewContainerRef,\n HostBinding,\n ChangeDetectorRef\n} from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { InputBoolean, ThyOverlayDirectiveBase, ThyOverlayTrigger, ThyPlacement } from 'ngx-tethys/core';\nimport { ThyPopover } from './popover.service';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { ThyPopoverRef } from './popover-ref';\nimport { ThyPopoverConfig } from './popover.config';\n\n/**\n * 弹出悬浮层指令\n * @name thyPopover\n */\n@Directive({\n selector: '[thyPopover]'\n})\nexport class ThyPopoverDirective extends ThyOverlayDirectiveBase implements OnInit, OnDestroy {\n @HostBinding(`class.thy-popover-opened`) popoverOpened = false;\n\n /**\n * 悬浮组件或者模板\n */\n @Input('thyPopover') content: ComponentType<any> | TemplateRef<any>;\n\n /**\n * 弹出悬浮层的触发方式\n */\n @Input() set thyTrigger(trigger: ThyOverlayTrigger) {\n this.trigger = trigger;\n }\n\n /**\n * 弹出悬浮层的位置\n */\n @Input() thyPlacement: ThyPlacement = 'bottom';\n\n /**\n * 弹出悬浮层的偏移量\n */\n @Input() thyOffset: number = 0;\n\n /**\n * 弹出悬浮层的配置\n */\n @Input() thyConfig: ThyPopoverConfig;\n\n /**\n * 显示延迟时间\n */\n @Input('thyShowDelay') set thyShowDelay(value: number) {\n this.showDelay = value;\n }\n\n /**\n * 隐藏延迟时间\n */\n @Input('thyHideDelay') set thyHideDelay(value: number) {\n this.hideDelay = value;\n }\n\n /**\n * 自动适配内容变化重新计算位置\n */\n @Input() thyAutoAdaptive = false;\n\n /**\n * 禁用打开悬浮层\n */\n @Input() @InputBoolean() set thyDisabled(value: boolean) {\n this.disabled = value;\n }\n\n private popoverRef: ThyPopoverRef<any>;\n\n constructor(\n public elementRef: ElementRef,\n platform: Platform,\n focusMonitor: FocusMonitor,\n ngZone: NgZone,\n private popover: ThyPopover,\n private viewContainerRef: ViewContainerRef,\n private cdr: ChangeDetectorRef\n ) {\n super(elementRef, platform, focusMonitor, ngZone, true);\n }\n\n ngOnInit(): void {\n this.initialize();\n }\n\n createOverlay(): OverlayRef {\n const config = Object.assign(\n {\n origin: this.elementRef.nativeElement,\n hasBackdrop: this.trigger === 'click' || this.trigger === 'focus',\n viewContainerRef: this.viewContainerRef,\n placement: this.thyPlacement,\n offset: this.thyOffset,\n autoAdaptive: this.thyAutoAdaptive\n },\n this.thyConfig\n );\n this.popoverRef = this.popover.open(this.content, config);\n\n this.popoverRef.afterClosed().subscribe(() => {\n this.popoverOpened = false;\n });\n\n return this.popoverRef.getOverlayRef();\n }\n\n show(delay: number = this.showDelay) {\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n this.hideTimeoutId = null;\n }\n\n if (this.disabled || (this.overlayRef && this.overlayRef.hasAttached())) {\n return;\n }\n if (this.trigger !== 'hover') {\n delay = 0;\n }\n\n this.showTimeoutId = setTimeout(() => {\n if (!this.disabled) {\n const overlayRef = this.createOverlay();\n this.overlayRef = overlayRef;\n this.popoverOpened = true;\n this.cdr.markForCheck();\n }\n this.showTimeoutId = null;\n }, delay);\n }\n\n hide(delay: number = this.hideDelay) {\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n this.showTimeoutId = null;\n }\n\n this.hideTimeoutId = setTimeout(() => {\n if (this.popoverRef) {\n this.popoverRef.close();\n this.cdr.markForCheck();\n }\n this.hideTimeoutId = null;\n }, delay);\n }\n\n ngOnDestroy() {\n this.dispose();\n }\n}\n","import { ThyIconModule } from 'ngx-tethys/icon';\n\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyPopoverBodyComponent } from './body/popover-body.component';\nimport { ThyPopoverHeaderComponent } from './header/popover-header.component';\nimport { ThyPopoverContainerComponent } from './popover-container.component';\nimport { THY_POPOVER_DEFAULT_CONFIG_PROVIDER, THY_POPOVER_SCROLL_STRATEGY_PROVIDER } from './popover.config';\nimport { ThyPopoverDirective } from './popover.directive';\nimport { ThyPopover } from './popover.service';\n\n@NgModule({\n declarations: [ThyPopoverContainerComponent, ThyPopoverDirective, ThyPopoverHeaderComponent, ThyPopoverBodyComponent],\n imports: [CommonModule, OverlayModule, PortalModule, ThyIconModule],\n exports: [ThyPopoverDirective, ThyPopoverHeaderComponent, ThyPopoverBodyComponent],\n providers: [THY_POPOVER_DEFAULT_CONFIG_PROVIDER, THY_POPOVER_SCROLL_STRATEGY_PROVIDER, ThyPopover]\n})\nexport class ThyPopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyPopoverConfig","i2","i1","i2.ThyPopover","i3","i3.ThyPopover"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-popover.mjs","sources":["../../../src/popover/popover-animations.ts","../../../src/popover/popover.config.ts","../../../src/popover/popover.options.ts","../../../src/popover/popover-container.component.ts","../../../src/popover/popover-container.component.html","../../../src/popover/popover-ref.ts","../../../src/popover/popover.service.ts","../../../src/popover/body/popover-body.component.ts","../../../src/popover/header/popover-header.component.ts","../../../src/popover/header/popover-header.component.html","../../../src/popover/popover.directive.ts","../../../src/popover/module.ts","../../../src/popover/ngx-tethys-popover.ts"],"sourcesContent":["import { animate, state, style, transition, trigger, AnimationTriggerMetadata } from '@angular/animations';\n\nconst animationBody = [\n // Note: The `enter` animation transitions to `transform: none`, because for some reason\n // specifying the transform explicitly, causes IE both to blur the dialog content and\n // decimate the animation performance. Leaving it as `none` solves both issues. translate(-300px,-100px)\n state('void, exit', style({ opacity: 0, transform: 'scale(0.1)' })),\n state('enter', style({ transform: 'none' }))\n // transition('* => enter', animate('100ms cubic-bezier(0, 0, 0.57, 1)', style({ transform: 'none', opacity: 1 }))),\n // transition(\n // '* => exit',\n // animate('150ms cubic-bezier(0.24, 0.18, 0.96, 0.52)', style({ transform: 'scale(0.3)', opacity: 0 }))\n // )\n];\n\n/**\n * Animations used by ThyPopover.\n * @docs-private\n */\nexport const thyPopoverAnimations: {\n readonly popoverContainer: AnimationTriggerMetadata;\n} = {\n popoverContainer: trigger('popoverContainer', animationBody)\n};\n\n// export const setAnimationStart\n","import { ThyPlacement, ThyAbstractOverlayConfig } from 'ngx-tethys/core';\n\nimport { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ElementRef, InjectionToken } from '@angular/core';\n\nexport class ThyPopoverConfig<TData = unknown> extends ThyAbstractOverlayConfig<TData> {\n /** Origin Element, for overlay flexible connected to */\n origin: ElementRef<any> | HTMLElement;\n\n /** Origin point, default use origin's boundingClientRect*/\n originPosition?: {\n x: number;\n y: number;\n } & { width?: number; height?: number };\n\n /** Placement be relative to origin, topCenter, topLeft, topRight, bottomCenter, bottomLeft, bottomRight ...*/\n placement?: ThyPlacement;\n\n /** Click inside can been close */\n insideClosable?: boolean;\n\n /** Offset be relative to origin, default is 0*/\n offset?: number;\n\n /** Manually close it, default rules is which auto close last popover when open a new unless set manualClosure as true */\n manualClosure?: boolean;\n\n /** Origin active class when popover is opened */\n originActiveClass?: string | string[];\n\n /**\n * 滚动策略\n */\n scrollStrategy?: ScrollStrategy;\n\n /** Click outside can been close */\n outsideClosable?: boolean;\n\n /** autoAdaptive is true when height change can auto update position */\n autoAdaptive?: boolean;\n}\n\nexport const THY_POPOVER_DEFAULT_CONFIG = new InjectionToken<ThyPopoverConfig>('thy-popover-default-config');\n\nexport const THY_POPOVER_DEFAULT_CONFIG_VALUE = {\n hasBackdrop: true,\n backdropClass: 'thy-popover-backdrop',\n panelClass: '',\n offset: 0,\n backdropClosable: true,\n closeOnNavigation: true,\n placement: 'bottom' as ThyPlacement,\n insideClosable: false,\n manualClosure: false,\n originActiveClass: 'thy-popover-origin-active',\n autoAdaptive: false,\n minWidth: '240px'\n};\n\nexport const THY_POPOVER_DEFAULT_CONFIG_PROVIDER = {\n provide: THY_POPOVER_DEFAULT_CONFIG,\n useValue: THY_POPOVER_DEFAULT_CONFIG_VALUE\n};\n\nexport const THY_POPOVER_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('thy-popover-scroll-strategy');\n\nexport const THY_POPOVER_SCROLL_STRATEGY_FACTORY = (overlay: Overlay) => {\n return () => overlay.scrollStrategies.block();\n};\n\nexport const THY_POPOVER_SCROLL_STRATEGY_PROVIDER = {\n provide: THY_POPOVER_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: THY_POPOVER_SCROLL_STRATEGY_FACTORY\n};\n","import { ThyAbstractOverlayOptions } from 'ngx-tethys/core';\n\nexport const popoverAbstractOverlayOptions: ThyAbstractOverlayOptions = {\n name: 'popover',\n animationEnabled: true,\n disposeWhenClose: true\n};\n","import { ContentObserver } from '@angular/cdk/observers';\nimport { ThyAbstractOverlayContainer, ThyClickDispatcher } from 'ngx-tethys/core';\nimport { from, Observable, Subject, timer } from 'rxjs';\nimport { take, takeUntil, filter } from 'rxjs/operators';\nimport { AnimationEvent } from '@angular/animations';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n NgZone,\n OnDestroy,\n ViewChild\n} from '@angular/core';\n\nimport { thyPopoverAnimations } from './popover-animations';\nimport { ThyPopoverConfig } from './popover.config';\nimport { popoverAbstractOverlayOptions } from './popover.options';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-popover-container',\n templateUrl: './popover-container.component.html',\n animations: [thyPopoverAnimations.popoverContainer],\n host: {\n class: 'thy-popover-container',\n tabindex: '-1',\n '[attr.role]': `'popover'`,\n '[attr.id]': 'id',\n '[@popoverContainer]': 'animationState',\n '(@popoverContainer.start)': 'onAnimationStart($event)',\n '(@popoverContainer.done)': 'onAnimationDone($event)'\n }\n})\nexport class ThyPopoverContainerComponent<TData = unknown> extends ThyAbstractOverlayContainer<TData> implements AfterViewInit, OnDestroy {\n @ViewChild(CdkPortalOutlet, { static: true })\n portalOutlet: CdkPortalOutlet;\n\n /** State of the popover animation. */\n animationState: 'void' | 'enter' | 'exit' = 'enter';\n\n /** Emits when an animation state changes. */\n animationStateChanged = new EventEmitter<AnimationEvent>();\n\n animationOpeningDone: Observable<AnimationEvent>;\n animationClosingDone: Observable<AnimationEvent>;\n\n insideClicked = new EventEmitter();\n\n updatePosition = new EventEmitter();\n\n outsideClicked = new EventEmitter();\n\n beforeAttachPortal(): void {}\n\n constructor(\n private elementRef: ElementRef,\n public config: ThyPopoverConfig<TData>,\n changeDetectorRef: ChangeDetectorRef,\n private thyClickDispatcher: ThyClickDispatcher,\n private contentObserver: ContentObserver,\n private ngZone: NgZone\n ) {\n super(popoverAbstractOverlayOptions, changeDetectorRef);\n\n this.animationOpeningDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'enter';\n })\n );\n this.animationClosingDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'exit';\n })\n );\n }\n\n ngAfterViewInit() {\n if (this.config.outsideClosable && !this.config.hasBackdrop) {\n timer(0).subscribe(() => {\n this.thyClickDispatcher\n .clicked()\n .pipe(takeUntil(this.animationClosingDone))\n .subscribe((event: MouseEvent) => {\n if (!this.elementRef.nativeElement.contains(event.target as HTMLElement)) {\n this.ngZone.run(() => {\n this.outsideClicked.emit();\n });\n }\n });\n });\n }\n\n if (this.config.autoAdaptive) {\n const onStable$ = this.ngZone.isStable ? from(Promise.resolve()) : this.ngZone.onStable.pipe(take(1));\n this.ngZone.runOutsideAngular(() => {\n onStable$.pipe(takeUntil(this.containerDestroy)).subscribe(() => {\n this.contentObserver\n .observe(this.elementRef)\n .pipe(takeUntil(this.containerDestroy))\n .subscribe(() => {\n this.updatePosition.emit();\n });\n });\n });\n }\n }\n\n /** Callback, invoked whenever an animation on the host completes. */\n onAnimationDone(event: AnimationEvent) {\n // if (event.toState === 'void') {\n // this.trapFocus();\n // } else if (event.toState === 'exit') {\n // this.restoreFocus();\n // }\n this.animationStateChanged.emit(event);\n }\n\n /** Callback, invoked when an animation on the host starts. */\n onAnimationStart(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n startExitAnimation(): void {\n this.animationState = 'exit';\n\n // Mark the container for check so it can react if the\n // view container is using OnPush change detection.\n this.changeDetectorRef.markForCheck();\n }\n\n @HostListener('click', [])\n onInsideClick() {\n if (this.config.insideClosable) {\n this.insideClicked.emit();\n }\n }\n\n ngOnDestroy() {\n super.destroy();\n this.insideClicked.complete();\n this.updatePosition.complete();\n this.outsideClicked.complete();\n }\n}\n","<ng-template cdkPortalOutlet></ng-template>\n","import { ThyAbstractInternalOverlayRef, ThyAbstractOverlayRef } from 'ngx-tethys/core';\n\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { merge } from 'rxjs';\n\nimport { ThyPopoverContainerComponent } from './popover-container.component';\nimport { ThyPopoverConfig } from './popover.config';\nimport { popoverAbstractOverlayOptions } from './popover.options';\n\nexport abstract class ThyPopoverRef<T, TResult = unknown, TData = unknown> extends ThyAbstractOverlayRef<\n T,\n ThyPopoverContainerComponent<TData>,\n TResult\n> {}\n\nexport class ThyInternalPopoverRef<T, TResult = unknown> extends ThyAbstractInternalOverlayRef<T, ThyPopoverContainerComponent, TResult>\n implements ThyPopoverRef<T, TResult> {\n constructor(overlayRef: OverlayRef, containerInstance: ThyPopoverContainerComponent, config: ThyPopoverConfig) {\n super(popoverAbstractOverlayOptions, overlayRef, containerInstance, config);\n // Note: doesn't need to unsubscribe, because `insideClicked` and `outsideClicked`\n // get completed by `ThyPopoverContainerComponent` when the view is destroyed.\n merge(containerInstance.insideClicked, containerInstance.outsideClicked).subscribe(() => this.close());\n containerInstance.updatePosition.subscribe(() => {\n this.updatePosition();\n });\n }\n\n /**\n * Updates the popover's position.\n * @param position New popover position.\n */\n updatePosition(): this {\n this.overlayRef.updatePosition();\n return this;\n }\n}\n","import { ComponentTypeOrTemplateRef, getFlexiblePositions, ThyAbstractOverlayRef, ThyAbstractOverlayService } from 'ngx-tethys/core';\nimport { FunctionProp, isFunction } from 'ngx-tethys/util';\nimport { of, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceArray, coerceElement } from '@angular/cdk/coercion';\nimport {\n ComponentType,\n FlexibleConnectedPositionStrategy,\n FlexibleConnectedPositionStrategyOrigin,\n Overlay,\n OverlayConfig,\n OverlayContainer,\n OverlayRef,\n PositionStrategy,\n ScrollStrategy,\n ViewportRuler\n} from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport { ElementRef, Inject, Injectable, Injector, NgZone, OnDestroy, Optional, StaticProvider, TemplateRef } from '@angular/core';\n\nimport { ThyPopoverContainerComponent } from './popover-container.component';\nimport { ThyInternalPopoverRef, ThyPopoverRef } from './popover-ref';\nimport {\n THY_POPOVER_DEFAULT_CONFIG,\n THY_POPOVER_DEFAULT_CONFIG_VALUE,\n THY_POPOVER_SCROLL_STRATEGY,\n ThyPopoverConfig\n} from './popover.config';\nimport { popoverAbstractOverlayOptions } from './popover.options';\nimport { SafeAny } from 'ngx-tethys/types';\n\n@Injectable()\nexport class ThyPopover extends ThyAbstractOverlayService<ThyPopoverConfig, ThyPopoverContainerComponent> implements OnDestroy {\n private readonly ngUnsubscribe$ = new Subject();\n\n private originInstancesMap = new Map<\n ElementRef | HTMLElement,\n {\n config: ThyPopoverConfig;\n popoverRef: ThyPopoverRef<any, any>;\n }\n >();\n\n private buildPositionStrategy<TData>(config: ThyPopoverConfig<TData>): PositionStrategy {\n const origin: FlexibleConnectedPositionStrategyOrigin = config.originPosition ? config.originPosition : config.origin;\n // const positionStrategy = this.overlay.position().flexibleConnectedTo(origin);\n const positionStrategy = new FlexibleConnectedPositionStrategy(\n origin,\n this._viewportRuler,\n this._document,\n this._platform,\n this._overlayContainer\n );\n const positions = getFlexiblePositions(config.placement, config.offset, 'thy-popover');\n positionStrategy.withPositions(positions);\n positionStrategy.withGrowAfterOpen(true);\n positionStrategy.positionChanges.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(change => {\n if (change.scrollableViewProperties.isOverlayClipped) {\n // After position changes occur and the overlay is clipped by\n // a parent scrollable then close the tooltip.\n this.ngZone.run(() => this.close());\n }\n });\n return positionStrategy;\n }\n\n private buildScrollStrategy(config: ThyPopoverConfig): ScrollStrategy {\n if (config.scrollStrategy) {\n return config.scrollStrategy;\n } else if (this.scrollStrategy && isFunction(this.scrollStrategy)) {\n return this.scrollStrategy();\n } else {\n this.overlay.scrollStrategies.block();\n }\n }\n\n protected buildOverlayConfig<TData>(config: ThyPopoverConfig<TData>): OverlayConfig {\n const positionStrategy = this.buildPositionStrategy(config);\n const overlayConfig = this.buildBaseOverlayConfig(config, 'thy-popover-panel');\n overlayConfig.positionStrategy = positionStrategy;\n overlayConfig.scrollStrategy = this.buildScrollStrategy(config);\n return overlayConfig;\n }\n\n protected attachOverlayContainer(overlay: OverlayRef, config: ThyPopoverConfig<any>): ThyPopoverContainerComponent {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this.injector,\n providers: [{ provide: ThyPopoverConfig, useValue: config }]\n });\n const containerPortal = new ComponentPortal(ThyPopoverContainerComponent, config.viewContainerRef, injector);\n const containerRef = overlay.attach<ThyPopoverContainerComponent>(containerPortal);\n return containerRef.instance;\n }\n\n protected createAbstractOverlayRef<T, TResult = unknown>(\n overlayRef: OverlayRef,\n containerInstance: ThyPopoverContainerComponent,\n config: ThyPopoverConfig\n ): ThyAbstractOverlayRef<T, ThyPopoverContainerComponent, TResult> {\n return new ThyInternalPopoverRef(overlayRef, containerInstance, config);\n }\n\n protected createInjector<T>(\n config: ThyPopoverConfig,\n popoverRef: ThyPopoverRef<T>,\n popoverContainer: ThyPopoverContainerComponent\n ): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n\n const injectionTokens: StaticProvider[] = [\n { provide: ThyPopoverContainerComponent, useValue: popoverContainer },\n {\n provide: ThyPopoverRef,\n useValue: popoverRef\n }\n ];\n\n if (config.direction && (!userInjector || !userInjector.get<Directionality | null>(Directionality, null))) {\n injectionTokens.push({\n provide: Directionality,\n useValue: {\n value: config.direction,\n change: of()\n }\n });\n }\n\n return Injector.create({ parent: userInjector || this.injector, providers: injectionTokens });\n }\n\n private originElementAddActiveClass(config: ThyPopoverConfig) {\n if (config.originActiveClass) {\n coerceElement<HTMLElement>(config.origin).classList.add(...coerceArray(config.originActiveClass));\n }\n }\n\n private originElementRemoveActiveClass(config: ThyPopoverConfig) {\n if (config.originActiveClass) {\n coerceElement<HTMLElement>(config.origin).classList.remove(...coerceArray(config.originActiveClass));\n }\n }\n\n constructor(\n overlay: Overlay,\n injector: Injector,\n @Optional()\n @Inject(THY_POPOVER_DEFAULT_CONFIG)\n defaultConfig: ThyPopoverConfig,\n @Inject(THY_POPOVER_SCROLL_STRATEGY)\n scrollStrategy: FunctionProp<ScrollStrategy>,\n private ngZone: NgZone,\n private _viewportRuler: ViewportRuler,\n @Optional() @Inject(DOCUMENT) private _document: any,\n private _platform: Platform,\n private _overlayContainer: OverlayContainer\n ) {\n super(\n popoverAbstractOverlayOptions,\n overlay,\n injector,\n {\n ...THY_POPOVER_DEFAULT_CONFIG_VALUE,\n ...defaultConfig\n },\n scrollStrategy\n );\n }\n\n private ensureCloseClosest(origin: HTMLElement) {\n let closeAndEnd = false;\n this.originInstancesMap.forEach((value, key) => {\n if (value.config.manualClosure) {\n if (key === origin) {\n value.popoverRef.close();\n closeAndEnd = true;\n }\n } else {\n if (key === origin) {\n closeAndEnd = true;\n }\n value.popoverRef.close();\n }\n });\n return closeAndEnd;\n }\n\n /**\n * 打开 Popover\n */\n open<T, TData = unknown, TResult = unknown>(\n componentOrTemplateRef: ComponentTypeOrTemplateRef<T>,\n config?: ThyPopoverConfig<TData>\n ): ThyPopoverRef<T, TResult> {\n const originElement = coerceElement(config.origin);\n // 默认关闭之前的弹出框\n // 1. 当之前的 Popover 设置 manualClosure 为 true 时, 弹出其他 Popover 时不自动关闭 manualClosure 为 true 的 Popover\n // 2. 当前的 Origin 对应的 Popover 已经弹出,不管 manualClosure 设置为何,直接关闭并返回\n if (this.ensureCloseClosest(originElement)) {\n return;\n }\n\n const popoverRef = this.openOverlay<T, TResult>(componentOrTemplateRef, config) as ThyPopoverRef<T, TResult, TData>;\n config = popoverRef.containerInstance.config;\n popoverRef.afterClosed().subscribe(() => {\n this.originElementRemoveActiveClass(config);\n this.originInstancesMap.delete(originElement);\n });\n\n this.originElementAddActiveClass(config);\n this.originInstancesMap.set(originElement, {\n config,\n popoverRef\n });\n\n return popoverRef;\n }\n\n /**\n * 根据Id获取打开的悬浮层\n */\n getPopoverById(id: string): ThyPopoverRef<any> | undefined {\n return this.getAbstractOverlayById(id) as ThyPopoverRef<any> | undefined;\n }\n\n /**\n * 获取已经打开的悬浮层\n */\n getOpenedPopovers(): ThyPopoverRef<SafeAny>[] {\n return this.getAbstractOverlays();\n }\n\n /**\n * 通过 Dom 元素查找最近弹出的悬浮层\n * @description.en-us Finds the closest ThyPopoverRef to an element by looking at the DOM.\n */\n getClosestPopover(element: HTMLElement): ThyPopoverRef<any> | undefined {\n const parent = element.closest('.thy-popover-container');\n\n if (parent && parent.id) {\n return this.getPopoverById(parent.id);\n }\n return null;\n }\n\n /**\n * 关闭悬浮层\n */\n close<T>(result?: T, force?: boolean) {\n super.close(result, force);\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.dispose();\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding } from '@angular/core';\n\n/**\n * 悬浮层内容组件\n * @name thy-popover-body\n */\n@Component({\n selector: 'thy-popover-body',\n template: '<ng-content></ng-content>',\n exportAs: 'thyPopoverBody',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-popover-body'\n }\n})\nexport class ThyPopoverBodyComponent {}\n","import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { ThyTranslate } from 'ngx-tethys/core';\nimport { ThyPopover } from '../popover.service';\n\n/**\n * 悬浮层头部组件\n * @name thy-popover-header\n */\n@Component({\n selector: 'thy-popover-header',\n templateUrl: './popover-header.component.html',\n exportAs: 'thyPopoverHeader',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-popover-header'\n }\n})\nexport class ThyPopoverHeaderComponent {\n /**\n * 头部标题\n */\n @Input() thyTitle: string;\n\n @Input()\n set thyTitleTranslationKey(key: string) {\n if (key && !this.thyTitle) {\n this.thyTitle = this.translate.instant(key);\n }\n }\n\n /**\n * 自定义头部模版\n */\n @ContentChild('popoverHeader')\n public headerTemplate: TemplateRef<any>;\n\n /**\n * @internal\n */\n @Output() thyClosed: EventEmitter<Event> = new EventEmitter<Event>();\n\n constructor(private translate: ThyTranslate, private thyPopover: ThyPopover) {}\n\n /**\n * @internal\n */\n close(event: Event) {\n this.thyClosed.emit(event);\n this.thyPopover.close();\n }\n}\n","<ng-container *ngIf=\"headerTemplate; else defaultHeader\">\n <template [ngTemplateOutlet]=\"headerTemplate\"></template>\n</ng-container>\n<ng-template #defaultHeader>\n <h5 class=\"thy-popover-title\">{{ thyTitle }}</h5>\n <button type=\"button\" class=\"close\" (click)=\"close($event)\">\n <thy-icon thyIconName=\"close-bold\"></thy-icon>\n </button>\n</ng-template>\n","import {\n Directive,\n ElementRef,\n NgZone,\n OnDestroy,\n Input,\n TemplateRef,\n OnInit,\n ViewContainerRef,\n HostBinding,\n ChangeDetectorRef\n} from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { InputBoolean, ThyOverlayDirectiveBase, ThyOverlayTrigger, ThyPlacement } from 'ngx-tethys/core';\nimport { ThyPopover } from './popover.service';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { ThyPopoverRef } from './popover-ref';\nimport { ThyPopoverConfig } from './popover.config';\n\n/**\n * 弹出悬浮层指令\n * @name thyPopover\n */\n@Directive({\n selector: '[thyPopover]'\n})\nexport class ThyPopoverDirective extends ThyOverlayDirectiveBase implements OnInit, OnDestroy {\n @HostBinding(`class.thy-popover-opened`) popoverOpened = false;\n\n /**\n * 悬浮组件或者模板\n */\n @Input('thyPopover') content: ComponentType<any> | TemplateRef<any>;\n\n /**\n * 弹出悬浮层的触发方式\n */\n @Input() set thyTrigger(trigger: ThyOverlayTrigger) {\n this.trigger = trigger;\n }\n\n /**\n * 弹出悬浮层的位置\n */\n @Input() thyPlacement: ThyPlacement = 'bottom';\n\n /**\n * 弹出悬浮层的偏移量\n */\n @Input() thyOffset: number = 0;\n\n /**\n * 弹出悬浮层的配置\n */\n @Input() thyConfig: ThyPopoverConfig;\n\n /**\n * 显示延迟时间\n */\n @Input('thyShowDelay') set thyShowDelay(value: number) {\n this.showDelay = value;\n }\n\n /**\n * 隐藏延迟时间\n */\n @Input('thyHideDelay') set thyHideDelay(value: number) {\n this.hideDelay = value;\n }\n\n /**\n * 自动适配内容变化重新计算位置\n */\n @Input() thyAutoAdaptive = false;\n\n /**\n * 禁用打开悬浮层\n */\n @Input() @InputBoolean() set thyDisabled(value: boolean) {\n this.disabled = value;\n }\n\n private popoverRef: ThyPopoverRef<any>;\n\n constructor(\n public elementRef: ElementRef,\n platform: Platform,\n focusMonitor: FocusMonitor,\n ngZone: NgZone,\n private popover: ThyPopover,\n private viewContainerRef: ViewContainerRef,\n private cdr: ChangeDetectorRef\n ) {\n super(elementRef, platform, focusMonitor, ngZone, true);\n }\n\n ngOnInit(): void {\n this.initialize();\n }\n\n createOverlay(): OverlayRef {\n const config = Object.assign(\n {\n origin: this.elementRef.nativeElement,\n hasBackdrop: this.trigger === 'click' || this.trigger === 'focus',\n viewContainerRef: this.viewContainerRef,\n placement: this.thyPlacement,\n offset: this.thyOffset,\n autoAdaptive: this.thyAutoAdaptive\n },\n this.thyConfig\n );\n this.popoverRef = this.popover.open(this.content, config);\n\n this.popoverRef.afterClosed().subscribe(() => {\n this.popoverOpened = false;\n });\n\n return this.popoverRef.getOverlayRef();\n }\n\n show(delay: number = this.showDelay) {\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n this.hideTimeoutId = null;\n }\n\n if (this.disabled || (this.overlayRef && this.overlayRef.hasAttached())) {\n return;\n }\n if (this.trigger !== 'hover') {\n delay = 0;\n }\n\n this.showTimeoutId = setTimeout(() => {\n if (!this.disabled) {\n const overlayRef = this.createOverlay();\n this.overlayRef = overlayRef;\n this.popoverOpened = true;\n this.cdr.markForCheck();\n }\n this.showTimeoutId = null;\n }, delay);\n }\n\n hide(delay: number = this.hideDelay) {\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n this.showTimeoutId = null;\n }\n\n this.hideTimeoutId = setTimeout(() => {\n if (this.popoverRef) {\n this.popoverRef.close();\n this.cdr.markForCheck();\n }\n this.hideTimeoutId = null;\n }, delay);\n }\n\n ngOnDestroy() {\n this.dispose();\n }\n}\n","import { ThyIconModule } from 'ngx-tethys/icon';\n\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyPopoverBodyComponent } from './body/popover-body.component';\nimport { ThyPopoverHeaderComponent } from './header/popover-header.component';\nimport { ThyPopoverContainerComponent } from './popover-container.component';\nimport { THY_POPOVER_DEFAULT_CONFIG_PROVIDER, THY_POPOVER_SCROLL_STRATEGY_PROVIDER } from './popover.config';\nimport { ThyPopoverDirective } from './popover.directive';\nimport { ThyPopover } from './popover.service';\n\n@NgModule({\n declarations: [ThyPopoverContainerComponent, ThyPopoverDirective, ThyPopoverHeaderComponent, ThyPopoverBodyComponent],\n imports: [CommonModule, OverlayModule, PortalModule, ThyIconModule],\n exports: [ThyPopoverDirective, ThyPopoverHeaderComponent, ThyPopoverBodyComponent],\n providers: [THY_POPOVER_DEFAULT_CONFIG_PROVIDER, THY_POPOVER_SCROLL_STRATEGY_PROVIDER, ThyPopover]\n})\nexport class ThyPopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyPopoverConfig","i2","i1","i2.ThyPopover","i3","i4","i3.ThyPopover"],"mappings":"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"}
|
package/fesm2020/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('14.2.
|
|
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('14.2.23');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAEa,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS;;ACF5C;;AAEG;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ThyLayoutComponent } from './layout.component';
|
|
3
|
-
import { ThyResizeEvent } from 'ngx-tethys/resizable';
|
|
1
|
+
import { ElementRef, EventEmitter, OnDestroy, OnInit, TemplateRef } from '@angular/core';
|
|
4
2
|
import { ThyHotkeyDispatcher } from '@tethys/cdk/hotkey';
|
|
3
|
+
import { ThyResizeEvent } from 'ngx-tethys/resizable';
|
|
4
|
+
import { ThyLayoutComponent } from './layout.component';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export declare type ThySidebarTheme = 'white' | 'light' | 'dark';
|
|
7
7
|
export declare class ThySidebarComponent implements OnInit, OnDestroy {
|
|
@@ -29,6 +29,7 @@ export declare class ThySidebarComponent implements OnInit, OnDestroy {
|
|
|
29
29
|
get thyCollapsed(): boolean;
|
|
30
30
|
thyCollapsedWidth: number;
|
|
31
31
|
set thyTheme(value: ThySidebarTheme);
|
|
32
|
+
thyDefaultWidth: string | number;
|
|
32
33
|
get collapseVisibility(): boolean;
|
|
33
34
|
get removeTransition(): boolean;
|
|
34
35
|
collapseTip: string;
|
|
@@ -48,7 +49,8 @@ export declare class ThySidebarComponent implements OnInit, OnDestroy {
|
|
|
48
49
|
resizeEnd(): void;
|
|
49
50
|
resizeHandleHover(event: MouseEvent, type: 'enter' | 'leave'): void;
|
|
50
51
|
toggleCollapse(event?: MouseEvent): void;
|
|
52
|
+
restoreToDefaultWidth(): void;
|
|
51
53
|
ngOnDestroy(): void;
|
|
52
54
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThySidebarComponent, [{ optional: true; host: true; }, null, null]>;
|
|
53
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ThySidebarComponent, "thy-sidebar", never, { "thyWidth": "thyWidth"; "thyHasBorderRight": "thyHasBorderRight"; "thyIsolated": "thyIsolated"; "thyDraggable": "thyDraggable"; "thyDragMaxWidth": "thyDragMaxWidth"; "thyTrigger": "thyTrigger"; "thyCollapsible": "thyCollapsible"; "thyCollapsed": "thyCollapsed"; "thyCollapsedWidth": "thyCollapsedWidth"; "thyTheme": "thyTheme"; }, { "thyCollapsedChange": "thyCollapsedChange"; "thyDragWidthChange": "thyDragWidthChange"; }, never, ["*"], false>;
|
|
55
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ThySidebarComponent, "thy-sidebar", never, { "thyWidth": "thyWidth"; "thyHasBorderRight": "thyHasBorderRight"; "thyIsolated": "thyIsolated"; "thyDraggable": "thyDraggable"; "thyDragMaxWidth": "thyDragMaxWidth"; "thyTrigger": "thyTrigger"; "thyCollapsible": "thyCollapsible"; "thyCollapsed": "thyCollapsed"; "thyCollapsedWidth": "thyCollapsedWidth"; "thyTheme": "thyTheme"; "thyDefaultWidth": "thyDefaultWidth"; }, { "thyCollapsedChange": "thyCollapsedChange"; "thyDragWidthChange": "thyDragWidthChange"; }, never, ["*"], false>;
|
|
54
56
|
}
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
1
|
+
import { EventEmitter, TemplateRef } from '@angular/core';
|
|
2
2
|
import { ThyTranslate } from 'ngx-tethys/core';
|
|
3
3
|
import { ThyPopover } from '../popover.service';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
@@ -14,6 +14,10 @@ export declare class ThyPopoverHeaderComponent {
|
|
|
14
14
|
*/
|
|
15
15
|
thyTitle: string;
|
|
16
16
|
set thyTitleTranslationKey(key: string);
|
|
17
|
+
/**
|
|
18
|
+
* 自定义头部模版
|
|
19
|
+
*/
|
|
20
|
+
headerTemplate: TemplateRef<any>;
|
|
17
21
|
/**
|
|
18
22
|
* @internal
|
|
19
23
|
*/
|
|
@@ -24,5 +28,5 @@ export declare class ThyPopoverHeaderComponent {
|
|
|
24
28
|
*/
|
|
25
29
|
close(event: Event): void;
|
|
26
30
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThyPopoverHeaderComponent, never>;
|
|
27
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ThyPopoverHeaderComponent, "thy-popover-header", ["thyPopoverHeader"], { "thyTitle": "thyTitle"; "thyTitleTranslationKey": "thyTitleTranslationKey"; }, { "thyClosed": "thyClosed"; },
|
|
31
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ThyPopoverHeaderComponent, "thy-popover-header", ["thyPopoverHeader"], { "thyTitle": "thyTitle"; "thyTitleTranslationKey": "thyTitleTranslationKey"; }, { "thyClosed": "thyClosed"; }, ["headerTemplate"], never, false>;
|
|
28
32
|
}
|
package/schematics/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "14.2.
|
|
1
|
+
export declare const VERSION = "14.2.23";
|
package/schematics/version.js
CHANGED