@ng-nest/ui 18.0.0 → 18.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-portal.mjs","sources":["../../../../lib/ng-nest/ui/portal/portal.module.ts","../../../../lib/ng-nest/ui/portal/portal.property.ts","../../../../lib/ng-nest/ui/portal/portal.service.ts","../../../../lib/ng-nest/ui/portal/ng-nest-ui-portal.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n imports: [],\r\n exports: [],\r\n providers: []\r\n})\r\nexport class XPortalModule {}\r\n","import { TemplateRef, ViewContainerRef, ComponentFactoryResolver, ComponentRef, EmbeddedViewRef } from '@angular/core';\r\nimport { ComponentType, TemplatePortal, ComponentPortal } from '@angular/cdk/portal';\r\nimport { OverlayRef, OverlayConfig, ConnectedPosition } from '@angular/cdk/overlay';\r\nimport { XInvertKeyValues } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Portal\r\n * @selector x-portal\r\n * @decorator component\r\n */\r\nexport const PortalPrefix = 'x-portal';\r\nexport const PortalResizablePrefix = 'x-portal-resizable';\r\n\r\nexport const XPortalPlacement: { [proptery: string]: ConnectedPosition } = {\r\n bottom: { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top' },\r\n left: { originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center' },\r\n right: { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center' },\r\n top: { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom' },\r\n 'bottom-end': { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },\r\n 'bottom-start': { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\r\n 'left-end': { originX: 'start', originY: 'bottom', overlayX: 'end', overlayY: 'bottom' },\r\n 'left-start': { originX: 'start', originY: 'top', overlayX: 'end', overlayY: 'top' },\r\n 'right-end': { originX: 'end', originY: 'bottom', overlayX: 'start', overlayY: 'bottom' },\r\n 'right-start': { originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top' },\r\n 'top-end': { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom' },\r\n 'top-start': { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' }\r\n};\r\n\r\nexport const XPortalConnectedPosition: Map<ConnectedPosition, string> = XInvertKeyValues(XPortalPlacement);\r\n\r\n/**\r\n * Portal Property\r\n */\r\nexport interface XPortalProperty<T> {\r\n /**\r\n * @zh_CN 内容,模板/组件\r\n * @en_US Content, template/component\r\n */\r\n content?: TemplateRef<any> | ComponentType<T>;\r\n /**\r\n * @zh_CN 视图容器\r\n * @en_US View container\r\n */\r\n viewContainerRef?: ViewContainerRef;\r\n /**\r\n * @zh_CN 上下文\r\n * @en_US Context\r\n */\r\n context?: any;\r\n /**\r\n * @zh_CN 注入器\r\n * @en_US Injector\r\n */\r\n injector?: any;\r\n /**\r\n * @zh_CN 组件解析器\r\n * @en_US Component parser\r\n */\r\n componentFactoryResolver?: ComponentFactoryResolver;\r\n /**\r\n * @zh_CN 覆盖视图层配置\r\n * @en_US Overlay view layer configuration\r\n */\r\n overlayConfig?: OverlayConfig;\r\n}\r\n\r\nexport interface XPortalOverlayRef<T> {\r\n /**\r\n * @zh_CN cdk 创建的覆盖视图层\r\n * @en_US Overlay view layer created by cdk\r\n */\r\n overlayRef?: OverlayRef;\r\n /**\r\n * @zh_CN cdk 模板视图\r\n * @en_US Cdk template view\r\n */\r\n templatePortal?: TemplatePortal<any>;\r\n /**\r\n * @zh_CN cdk 组件视图\r\n * @en_US Cdk component view\r\n */\r\n componentPortal?: ComponentPortal<T>;\r\n /**\r\n * @zh_CN 组件视图\r\n * @en_US Component view\r\n */\r\n componentRef?: ComponentRef<T>;\r\n /**\r\n * @zh_CN 模板视图\r\n * @en_US Template view\r\n */\r\n embeddedViewRef?: EmbeddedViewRef<any>;\r\n}\r\n","import {\r\n Injectable,\r\n TemplateRef,\r\n Injector,\r\n ElementRef,\r\n ViewContainerRef,\r\n StaticProvider,\r\n RendererFactory2,\r\n inject\r\n} from '@angular/core';\r\nimport { Overlay, OverlayRef, PositionStrategy, ConnectedPosition, ComponentType } from '@angular/cdk/overlay';\r\nimport { TemplatePortal, ComponentPortal } from '@angular/cdk/portal';\r\nimport { XPortalProperty, XPortalOverlayRef, XPortalPlacement } from './portal.property';\r\nimport { XPlacement, XPosition, XPlace, XComputed } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * 动态创建视图服务\r\n */\r\n@Injectable({ providedIn: 'root' })\r\nexport class XPortalService {\r\n overlay = inject(Overlay);\r\n injector = inject(Injector);\r\n private rendererFactory = inject(RendererFactory2);\r\n renderer = this.rendererFactory.createRenderer(null, null);\r\n\r\n attach<T>(option: XPortalProperty<T>): XPortalOverlayRef<T> {\r\n let portal: XPortalOverlayRef<T> = {};\r\n if (typeof option.content === 'undefined') return portal;\r\n portal.overlayRef = this.createOverlayRef(option);\r\n if (option.content instanceof TemplateRef && option.viewContainerRef) {\r\n portal.templatePortal = new TemplatePortal(option.content, option.viewContainerRef, option.context);\r\n portal.embeddedViewRef = portal.overlayRef.attach(portal.templatePortal);\r\n } else {\r\n portal.componentPortal = new ComponentPortal(\r\n option.content as ComponentType<T>,\r\n option.viewContainerRef,\r\n option.injector,\r\n option.componentFactoryResolver\r\n );\r\n portal.componentRef = portal.overlayRef.attach(portal.componentPortal);\r\n }\r\n\r\n return portal;\r\n }\r\n\r\n createInjector(providers: StaticProvider[], viewContainerRef?: ViewContainerRef) {\r\n const injector = viewContainerRef && viewContainerRef.injector;\r\n return Injector.create({ parent: injector || this.injector, providers });\r\n }\r\n\r\n setPlacement(param?: {\r\n elementRef?: ElementRef;\r\n placement?: XPlace[] | XPlacement[];\r\n transformOriginOn?: string;\r\n }): PositionStrategy {\r\n if (!param) {\r\n return this.overlay.position().global().centerHorizontally().centerVertically();\r\n } else {\r\n return (\r\n this.overlay\r\n .position()\r\n .flexibleConnectedTo(param.elementRef!)\r\n // .withLockedPosition(true)\r\n .withFlexibleDimensions(false)\r\n .withPush(false)\r\n .withPositions(this.setConnectedPosition(...param.placement!))\r\n .withTransformOriginOn(param.transformOriginOn!)\r\n );\r\n }\r\n }\r\n\r\n setPosition(position?: XPosition, width?: string, height?: string): PositionStrategy {\r\n let result = this.overlay.position().global().width(width).height(height);\r\n switch (position) {\r\n case 'left':\r\n return result.left();\r\n case 'right':\r\n return result.right();\r\n case 'top':\r\n return result.top();\r\n case 'bottom':\r\n default:\r\n return result.bottom();\r\n }\r\n }\r\n\r\n setPlace(place?: XPlace, ...offset: string[]): PositionStrategy {\r\n let result = this.overlay.position().global();\r\n let [top, right, bottom, left] = this.getOffset(offset);\r\n switch (place) {\r\n case 'top-start':\r\n return result.top(top).left(left);\r\n case 'top':\r\n return result.centerHorizontally().top(top);\r\n case 'top-end':\r\n return result.top(top).right(right);\r\n case 'left':\r\n return result.centerVertically().left(left);\r\n case 'center':\r\n return result.centerVertically().centerHorizontally();\r\n case 'right':\r\n return result.centerVertically().right(right);\r\n case 'bottom-start':\r\n return result.bottom(bottom).left(left);\r\n case 'bottom':\r\n return result.centerHorizontally().bottom(bottom);\r\n case 'bottom-end':\r\n return result.bottom(bottom).right(right);\r\n default:\r\n return result.centerVertically().centerHorizontally();\r\n }\r\n }\r\n\r\n setResizable(ele: HTMLElement, place?: XPlace) {\r\n const { clientWidth, clientHeight } = ele;\r\n const computedStyle = XComputed(ele);\r\n const marginRight = parseFloat(computedStyle.marginRight);\r\n const marginBottom = parseFloat(computedStyle.marginBottom);\r\n let marginLeft = null;\r\n let marginTop = null;\r\n switch (place) {\r\n case 'top-start':\r\n break;\r\n case 'top':\r\n marginLeft = `calc(50vw - ${clientWidth / 2}px)`;\r\n break;\r\n case 'top-end':\r\n marginLeft = `calc(100vw - ${clientWidth + marginRight}px)`;\r\n break;\r\n case 'left':\r\n marginTop = `calc(50vh - ${clientHeight / 2}px)`;\r\n break;\r\n case 'center':\r\n marginLeft = `calc(50vw - ${clientWidth / 2}px)`;\r\n marginTop = `calc(50vh - ${clientHeight / 2}px)`;\r\n break;\r\n case 'right':\r\n marginLeft = `calc(100vw - ${clientWidth + marginRight}px)`;\r\n marginTop = `calc(50vh - ${clientHeight / 2}px)`;\r\n break;\r\n case 'bottom-start':\r\n marginTop = `calc(100vh - ${clientHeight + marginBottom}px)`;\r\n break;\r\n case 'bottom':\r\n marginLeft = `calc(50vw - ${clientWidth / 2}px)`;\r\n marginTop = `calc(100vh - ${clientHeight + marginBottom}px)`;\r\n break;\r\n case 'bottom-end':\r\n marginLeft = `calc(100vw - ${clientWidth + marginRight}px)`;\r\n marginTop = `calc(100vh - ${clientHeight + marginBottom}px)`;\r\n break;\r\n default:\r\n marginLeft = `calc(50vw - ${clientWidth / 2}px)`;\r\n marginTop = `calc(100vh - ${clientHeight / 2}px)`;\r\n break;\r\n }\r\n marginLeft && this.renderer.setStyle(ele, 'margin-left', marginLeft);\r\n marginTop && this.renderer.setStyle(ele, 'margin-top', marginTop);\r\n\r\n return {\r\n marginLeft: marginLeft || computedStyle.marginLeft,\r\n marginTop: marginTop || computedStyle.marginTop,\r\n marginBottom: computedStyle.marginBottom,\r\n marginRight: computedStyle.marginRight\r\n };\r\n }\r\n\r\n setContainerStyle(place?: XPlace, ...offset: string[]) {\r\n let [top, right, bottom, left] = this.getOffset(offset);\r\n switch (place) {\r\n case 'top-start':\r\n return { top, left };\r\n case 'top':\r\n return { top };\r\n case 'top-end':\r\n return { top, right };\r\n case 'left':\r\n return { left };\r\n case 'center':\r\n return {};\r\n case 'right':\r\n return { right };\r\n case 'bottom-start':\r\n return { bottom, left };\r\n case 'bottom':\r\n return { bottom };\r\n case 'bottom-end':\r\n return { bottom, right };\r\n }\r\n return {};\r\n }\r\n\r\n getOffset(offset: string[]) {\r\n if (offset.length === 0) offset = Array.from({ length: 4 }).map(() => `0`);\r\n else if (offset.length < 4) {\r\n Array.from({ length: 4 - offset.length }).map(() => (offset = [...offset, offset[offset.length - 1]]));\r\n }\r\n return offset;\r\n }\r\n\r\n createOverlayRef<T>(option: XPortalProperty<T>): OverlayRef {\r\n return this.overlay.create(option.overlayConfig);\r\n }\r\n\r\n setConnectedPosition(...placement: XPlace[] | XPlacement[]): ConnectedPosition[] {\r\n let result: ConnectedPosition[] = [];\r\n placement.forEach((place: XPlace | XPlacement) => result.push(XPortalPlacement[place]));\r\n return result;\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-portal.mjs","sources":["../../../../lib/ng-nest/ui/portal/portal.module.ts","../../../../lib/ng-nest/ui/portal/portal.property.ts","../../../../lib/ng-nest/ui/portal/portal.service.ts","../../../../lib/ng-nest/ui/portal/ng-nest-ui-portal.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n imports: [],\r\n exports: [],\r\n providers: []\r\n})\r\nexport class XPortalModule {}\r\n","import { TemplateRef, ViewContainerRef, ComponentFactoryResolver, ComponentRef, EmbeddedViewRef } from '@angular/core';\r\nimport { ComponentType, TemplatePortal, ComponentPortal } from '@angular/cdk/portal';\r\nimport { OverlayRef, OverlayConfig, ConnectedPosition } from '@angular/cdk/overlay';\r\nimport { XInvertKeyValues } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Portal\r\n * @selector x-portal\r\n * @decorator component\r\n */\r\nexport const XPortalPrefix = 'x-portal';\r\nexport const XPortalResizablePrefix = 'x-portal-resizable';\r\n\r\nexport const XPortalPlacement: { [proptery: string]: ConnectedPosition } = {\r\n bottom: { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top' },\r\n left: { originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center' },\r\n right: { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center' },\r\n top: { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom' },\r\n 'bottom-end': { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },\r\n 'bottom-start': { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\r\n 'left-end': { originX: 'start', originY: 'bottom', overlayX: 'end', overlayY: 'bottom' },\r\n 'left-start': { originX: 'start', originY: 'top', overlayX: 'end', overlayY: 'top' },\r\n 'right-end': { originX: 'end', originY: 'bottom', overlayX: 'start', overlayY: 'bottom' },\r\n 'right-start': { originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top' },\r\n 'top-end': { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom' },\r\n 'top-start': { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' }\r\n};\r\n\r\nexport const XPortalConnectedPosition: Map<ConnectedPosition, string> = XInvertKeyValues(XPortalPlacement);\r\n\r\n/**\r\n * Portal Property\r\n */\r\nexport interface XPortalProperty<T> {\r\n /**\r\n * @zh_CN 内容,模板/组件\r\n * @en_US Content, template/component\r\n */\r\n content?: TemplateRef<any> | ComponentType<T>;\r\n /**\r\n * @zh_CN 视图容器\r\n * @en_US View container\r\n */\r\n viewContainerRef?: ViewContainerRef;\r\n /**\r\n * @zh_CN 上下文\r\n * @en_US Context\r\n */\r\n context?: any;\r\n /**\r\n * @zh_CN 注入器\r\n * @en_US Injector\r\n */\r\n injector?: any;\r\n /**\r\n * @zh_CN 组件解析器\r\n * @en_US Component parser\r\n */\r\n componentFactoryResolver?: ComponentFactoryResolver;\r\n /**\r\n * @zh_CN 覆盖视图层配置\r\n * @en_US Overlay view layer configuration\r\n */\r\n overlayConfig?: OverlayConfig;\r\n}\r\n\r\nexport interface XPortalOverlayRef<T> {\r\n /**\r\n * @zh_CN cdk 创建的覆盖视图层\r\n * @en_US Overlay view layer created by cdk\r\n */\r\n overlayRef?: OverlayRef;\r\n /**\r\n * @zh_CN cdk 模板视图\r\n * @en_US Cdk template view\r\n */\r\n templatePortal?: TemplatePortal<any>;\r\n /**\r\n * @zh_CN cdk 组件视图\r\n * @en_US Cdk component view\r\n */\r\n componentPortal?: ComponentPortal<T>;\r\n /**\r\n * @zh_CN 组件视图\r\n * @en_US Component view\r\n */\r\n componentRef?: ComponentRef<T>;\r\n /**\r\n * @zh_CN 模板视图\r\n * @en_US Template view\r\n */\r\n embeddedViewRef?: EmbeddedViewRef<any>;\r\n}\r\n","import {\r\n Injectable,\r\n TemplateRef,\r\n Injector,\r\n ElementRef,\r\n ViewContainerRef,\r\n StaticProvider,\r\n RendererFactory2,\r\n inject\r\n} from '@angular/core';\r\nimport { Overlay, OverlayRef, PositionStrategy, ConnectedPosition, ComponentType } from '@angular/cdk/overlay';\r\nimport { TemplatePortal, ComponentPortal } from '@angular/cdk/portal';\r\nimport { XPortalProperty, XPortalOverlayRef, XPortalPlacement } from './portal.property';\r\nimport { XPlacement, XPosition, XPlace, XComputed } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * 动态创建视图服务\r\n */\r\n@Injectable({ providedIn: 'root' })\r\nexport class XPortalService {\r\n overlay = inject(Overlay);\r\n injector = inject(Injector);\r\n private rendererFactory = inject(RendererFactory2);\r\n renderer = this.rendererFactory.createRenderer(null, null);\r\n\r\n attach<T>(option: XPortalProperty<T>): XPortalOverlayRef<T> {\r\n let portal: XPortalOverlayRef<T> = {};\r\n if (typeof option.content === 'undefined') return portal;\r\n portal.overlayRef = this.createOverlayRef(option);\r\n if (option.content instanceof TemplateRef && option.viewContainerRef) {\r\n portal.templatePortal = new TemplatePortal(option.content, option.viewContainerRef, option.context);\r\n portal.embeddedViewRef = portal.overlayRef.attach(portal.templatePortal);\r\n } else {\r\n portal.componentPortal = new ComponentPortal(\r\n option.content as ComponentType<T>,\r\n option.viewContainerRef,\r\n option.injector,\r\n option.componentFactoryResolver\r\n );\r\n portal.componentRef = portal.overlayRef.attach(portal.componentPortal);\r\n }\r\n\r\n return portal;\r\n }\r\n\r\n createInjector(providers: StaticProvider[], viewContainerRef?: ViewContainerRef) {\r\n const injector = viewContainerRef && viewContainerRef.injector;\r\n return Injector.create({ parent: injector || this.injector, providers });\r\n }\r\n\r\n setPlacement(param?: {\r\n elementRef?: ElementRef;\r\n placement?: XPlace[] | XPlacement[];\r\n transformOriginOn?: string;\r\n }): PositionStrategy {\r\n if (!param) {\r\n return this.overlay.position().global().centerHorizontally().centerVertically();\r\n } else {\r\n return (\r\n this.overlay\r\n .position()\r\n .flexibleConnectedTo(param.elementRef!)\r\n // .withLockedPosition(true)\r\n .withFlexibleDimensions(false)\r\n .withPush(false)\r\n .withPositions(this.setConnectedPosition(...param.placement!))\r\n .withTransformOriginOn(param.transformOriginOn!)\r\n );\r\n }\r\n }\r\n\r\n setPosition(position?: XPosition, width?: string, height?: string): PositionStrategy {\r\n let result = this.overlay.position().global().width(width).height(height);\r\n switch (position) {\r\n case 'left':\r\n return result.left();\r\n case 'right':\r\n return result.right();\r\n case 'top':\r\n return result.top();\r\n case 'bottom':\r\n default:\r\n return result.bottom();\r\n }\r\n }\r\n\r\n setPlace(place?: XPlace, ...offset: string[]): PositionStrategy {\r\n let result = this.overlay.position().global();\r\n let [top, right, bottom, left] = this.getOffset(offset);\r\n switch (place) {\r\n case 'top-start':\r\n return result.top(top).left(left);\r\n case 'top':\r\n return result.centerHorizontally().top(top);\r\n case 'top-end':\r\n return result.top(top).right(right);\r\n case 'left':\r\n return result.centerVertically().left(left);\r\n case 'center':\r\n return result.centerVertically().centerHorizontally();\r\n case 'right':\r\n return result.centerVertically().right(right);\r\n case 'bottom-start':\r\n return result.bottom(bottom).left(left);\r\n case 'bottom':\r\n return result.centerHorizontally().bottom(bottom);\r\n case 'bottom-end':\r\n return result.bottom(bottom).right(right);\r\n default:\r\n return result.centerVertically().centerHorizontally();\r\n }\r\n }\r\n\r\n setResizable(ele: HTMLElement, place?: XPlace) {\r\n const { clientWidth, clientHeight } = ele;\r\n const computedStyle = XComputed(ele);\r\n const marginRight = parseFloat(computedStyle.marginRight);\r\n const marginBottom = parseFloat(computedStyle.marginBottom);\r\n let marginLeft = null;\r\n let marginTop = null;\r\n switch (place) {\r\n case 'top-start':\r\n break;\r\n case 'top':\r\n marginLeft = `calc(50vw - ${clientWidth / 2}px)`;\r\n break;\r\n case 'top-end':\r\n marginLeft = `calc(100vw - ${clientWidth + marginRight}px)`;\r\n break;\r\n case 'left':\r\n marginTop = `calc(50vh - ${clientHeight / 2}px)`;\r\n break;\r\n case 'center':\r\n marginLeft = `calc(50vw - ${clientWidth / 2}px)`;\r\n marginTop = `calc(50vh - ${clientHeight / 2}px)`;\r\n break;\r\n case 'right':\r\n marginLeft = `calc(100vw - ${clientWidth + marginRight}px)`;\r\n marginTop = `calc(50vh - ${clientHeight / 2}px)`;\r\n break;\r\n case 'bottom-start':\r\n marginTop = `calc(100vh - ${clientHeight + marginBottom}px)`;\r\n break;\r\n case 'bottom':\r\n marginLeft = `calc(50vw - ${clientWidth / 2}px)`;\r\n marginTop = `calc(100vh - ${clientHeight + marginBottom}px)`;\r\n break;\r\n case 'bottom-end':\r\n marginLeft = `calc(100vw - ${clientWidth + marginRight}px)`;\r\n marginTop = `calc(100vh - ${clientHeight + marginBottom}px)`;\r\n break;\r\n default:\r\n marginLeft = `calc(50vw - ${clientWidth / 2}px)`;\r\n marginTop = `calc(100vh - ${clientHeight / 2}px)`;\r\n break;\r\n }\r\n marginLeft && this.renderer.setStyle(ele, 'margin-left', marginLeft);\r\n marginTop && this.renderer.setStyle(ele, 'margin-top', marginTop);\r\n\r\n return {\r\n marginLeft: marginLeft || computedStyle.marginLeft,\r\n marginTop: marginTop || computedStyle.marginTop,\r\n marginBottom: computedStyle.marginBottom,\r\n marginRight: computedStyle.marginRight\r\n };\r\n }\r\n\r\n setContainerStyle(place?: XPlace, ...offset: string[]) {\r\n let [top, right, bottom, left] = this.getOffset(offset);\r\n switch (place) {\r\n case 'top-start':\r\n return { top, left };\r\n case 'top':\r\n return { top };\r\n case 'top-end':\r\n return { top, right };\r\n case 'left':\r\n return { left };\r\n case 'center':\r\n return {};\r\n case 'right':\r\n return { right };\r\n case 'bottom-start':\r\n return { bottom, left };\r\n case 'bottom':\r\n return { bottom };\r\n case 'bottom-end':\r\n return { bottom, right };\r\n }\r\n return {};\r\n }\r\n\r\n getOffset(offset: string[]) {\r\n if (offset.length === 0) offset = Array.from({ length: 4 }).map(() => `0`);\r\n else if (offset.length < 4) {\r\n Array.from({ length: 4 - offset.length }).map(() => (offset = [...offset, offset[offset.length - 1]]));\r\n }\r\n return offset;\r\n }\r\n\r\n createOverlayRef<T>(option: XPortalProperty<T>): OverlayRef {\r\n return this.overlay.create(option.overlayConfig);\r\n }\r\n\r\n setConnectedPosition(...placement: XPlace[] | XPlacement[]): ConnectedPosition[] {\r\n let result: ConnectedPosition[] = [];\r\n placement.forEach((place: XPlace | XPlacement) => result.push(XPortalPlacement[place]));\r\n return result;\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -44,13 +44,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
44
44
  class XRippleDirective extends XRippleProperty {
45
45
  constructor() {
46
46
  super(...arguments);
47
- this.className = `${XRipplePrefix} ${XRipplePrefix}-${this.type()}`;
48
47
  this.unsub = new Subject();
49
48
  this.renderer = inject(Renderer2);
50
49
  this.elementRef = inject(ElementRef);
51
50
  this.cdr = inject(ChangeDetectorRef);
52
51
  this.document = inject(DOCUMENT);
53
52
  }
53
+ get className() {
54
+ return `${XRipplePrefix} ${XRipplePrefix}-${this.type()}`;
55
+ }
54
56
  ngOnInit() {
55
57
  if (this.disabled())
56
58
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-ripple.mjs","sources":["../../../../lib/ng-nest/ui/ripple/ripple.property.ts","../../../../lib/ng-nest/ui/ripple/ripple.directive.ts","../../../../lib/ng-nest/ui/ripple/ripple.module.ts","../../../../lib/ng-nest/ui/ripple/ng-nest-ui-ripple.ts"],"sourcesContent":["import { XPropertyFunction, XToBoolean, XToNumber } from '@ng-nest/ui/core';\r\nimport { Directive, input } from '@angular/core';\r\nimport type { XBoolean, XNumber, XType } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Ripple\r\n * @selector x-ripple\r\n * @decorator directive\r\n */\r\nexport const XRipplePrefix = 'x-ripple';\r\nconst X_RIPPLE_CONFIG_NAME = 'ripple';\r\n\r\n/**\r\n * Ripple Property\r\n */\r\n@Directive({ selector: '[x-ripple]' })\r\nexport class XRippleProperty extends XPropertyFunction(X_RIPPLE_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n */\r\n readonly type = input<XRippleType>(this.config?.type ?? 'initial');\r\n /**\r\n * @zh_CN 执行时间\r\n * @en_US The execution time\r\n */\r\n readonly duration = input<number, XNumber>(500, {transform: XToNumber});\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disable\r\n */\r\n readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n}\r\n\r\n/**\r\n * @zh_CN 波纹类型\r\n * @en_US Ripple type\r\n */\r\nexport type XRippleType = XType;\r\n","import {\r\n OnInit,\r\n Renderer2,\r\n ElementRef,\r\n Directive,\r\n OnDestroy,\r\n inject,\r\n HostBinding,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { delay, fromEvent, of, Subject, takeUntil, tap } from 'rxjs';\r\nimport { XRipplePrefix, XRippleProperty } from './ripple.property';\r\nimport { XComputed } from '@ng-nest/ui/core';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Directive({\r\n selector: `[${XRipplePrefix}]`,\r\n standalone: true\r\n})\r\nexport class XRippleDirective extends XRippleProperty implements OnInit, OnDestroy {\r\n @HostBinding('class') className = `${XRipplePrefix} ${XRipplePrefix}-${this.type()}`;\r\n\r\n private unsub = new Subject<void>();\r\n private renderer = inject(Renderer2);\r\n private elementRef = inject(ElementRef);\r\n private cdr = inject(ChangeDetectorRef);\r\n private document = inject(DOCUMENT);\r\n\r\n ngOnInit() {\r\n if (this.disabled()) return;\r\n\r\n fromEvent<MouseEvent>(this.elementRef.nativeElement, 'mousedown')\r\n .pipe(takeUntil(this.unsub))\r\n .subscribe((event) => {\r\n const eleRect = this.elementRef.nativeElement.getBoundingClientRect();\r\n const radius = this.distanceToFurthestCorner(event.x, event.y, eleRect);\r\n const offsetX = event.x - eleRect.left;\r\n const offsetY = event.y - eleRect.top;\r\n const ripple = this.renderer.createElement('div');\r\n this.renderer.addClass(ripple, 'x-ripple-element');\r\n ripple.style.left = `${offsetX - radius}px`;\r\n ripple.style.top = `${offsetY - radius}px`;\r\n ripple.style.height = `${radius * 2}px`;\r\n ripple.style.width = `${radius * 2}px`;\r\n ripple.style.transitionDuration = `${this.duration()}ms`;\r\n this.renderer.appendChild(this.elementRef.nativeElement, ripple);\r\n this.enforceStyleRecalculation(ripple);\r\n ripple.style.transform = 'scale(1)';\r\n ripple.style.opacity = '0.3';\r\n const downTime = new Date().getTime();\r\n\r\n const upEvent = fromEvent<MouseEvent>(this.document.documentElement, 'mouseup')\r\n .pipe(takeUntil(this.unsub))\r\n .subscribe(() => {\r\n const upTime = new Date().getTime();\r\n of(true)\r\n .pipe(\r\n delay(upTime - downTime > this.duration() ? 0 : this.duration() - (upTime - downTime)),\r\n tap(() => {\r\n if (this.renderer.parentNode(ripple)) {\r\n this.renderer.removeChild(this.elementRef.nativeElement, ripple);\r\n }\r\n // TODO: use zoneless, renderer removeChild will not take effect immediately\r\n this.cdr.markForCheck();\r\n upEvent.unsubscribe();\r\n }),\r\n takeUntil(this.unsub)\r\n )\r\n .subscribe();\r\n });\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsub.next();\r\n this.unsub.complete();\r\n }\r\n\r\n distanceToFurthestCorner(x: number, y: number, rect: DOMRect) {\r\n const distX = Math.max(Math.abs(x - rect.left), Math.abs(x - rect.right));\r\n const distY = Math.max(Math.abs(y - rect.top), Math.abs(y - rect.bottom));\r\n return Math.sqrt(distX * distX + distY * distY);\r\n }\r\n\r\n enforceStyleRecalculation(element: HTMLElement) {\r\n XComputed(element).getPropertyValue('opacity');\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { XRippleDirective } from './ripple.directive';\r\n\r\n@NgModule({\r\n imports: [XRippleDirective],\r\n exports: [XRippleDirective]\r\n})\r\nexport class XRippleModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;AAIA;;;;AAIG;AACI,MAAM,aAAa,GAAG,WAAW;AACxC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAEtC;;AAEG;MAEU,eAAgB,SAAQ,iBAAiB,CAAC,oBAAoB,CAAC,CAAA;AAD5E,IAAA,WAAA,GAAA;;AAEE;;;AAGG;QACM,IAAI,CAAA,IAAA,GAAG,KAAK,CAAc,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,SAAS,CAAC,CAAC;AACnE;;;AAGG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAkB,GAAG,EAAE,EAAC,SAAS,EAAE,SAAS,EAAC,CAAC,CAAC;AACxE;;;AAGG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAoB,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;AAChF,KAAA;iIAhBY,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;qHAAf,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,SAAS;mBAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAA;;;ACI/B,MAAO,gBAAiB,SAAQ,eAAe,CAAA;AAJrD,IAAA,WAAA,GAAA;;QAKwB,IAAS,CAAA,SAAA,GAAG,CAAG,EAAA,aAAa,CAAI,CAAA,EAAA,aAAa,CAAI,CAAA,EAAA,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE,CAAC;AAE7E,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,OAAO,EAAQ,CAAC;AAC5B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAC7B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAChC,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAChC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AA6DrC,KAAA;IA3DC,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO;QAE5B,SAAS,CAAa,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,WAAW,CAAC;AAC9D,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;YACnB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;AACtE,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACxE,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YACvC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAClD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,OAAO,GAAG,MAAM,CAAA,EAAA,CAAI,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,OAAO,GAAG,MAAM,CAAA,EAAA,CAAI,CAAC;YAC3C,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,CAAA,EAAA,CAAI,CAAC;YACxC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,MAAM,GAAG,CAAC,CAAA,EAAA,CAAI,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,kBAAkB,GAAG,CAAG,EAAA,IAAI,CAAC,QAAQ,EAAE,CAAA,EAAA,CAAI,CAAC;AACzD,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AACjE,YAAA,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;AACvC,YAAA,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC;AACpC,YAAA,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;YAC7B,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YAEtC,MAAM,OAAO,GAAG,SAAS,CAAa,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC;AAC5E,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC3B,SAAS,CAAC,MAAK;gBACd,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBACpC,EAAE,CAAC,IAAI,CAAC;AACL,qBAAA,IAAI,CACH,KAAK,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,MAAM,GAAG,QAAQ,CAAC,CAAC,EACtF,GAAG,CAAC,MAAK;oBACP,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AACpC,wBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;qBAClE;;AAED,oBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;oBACxB,OAAO,CAAC,WAAW,EAAE,CAAC;iBACvB,CAAC,EACF,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CACtB;AACA,qBAAA,SAAS,EAAE,CAAC;AACjB,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACN;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;KACvB;AAED,IAAA,wBAAwB,CAAC,CAAS,EAAE,CAAS,EAAE,IAAa,EAAA;AAC1D,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1E,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1E,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC;KACjD;AAED,IAAA,yBAAyB,CAAC,OAAoB,EAAA;QAC5C,SAAS,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;KAChD;iIAnEU,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;qHAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,QAAQ,EAAE,CAAI,CAAA,EAAA,aAAa,CAAG,CAAA,CAAA;AAC9B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;8BAEuB,SAAS,EAAA,CAAA;sBAA9B,WAAW;uBAAC,OAAO,CAAA;;;MCbT,aAAa,CAAA;iIAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;kIAAb,aAAa,EAAA,OAAA,EAAA,CAHd,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAChB,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;kIAEf,aAAa,EAAA,CAAA,CAAA,EAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC5B,iBAAA,CAAA;;;ACND;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-nest-ui-ripple.mjs","sources":["../../../../lib/ng-nest/ui/ripple/ripple.property.ts","../../../../lib/ng-nest/ui/ripple/ripple.directive.ts","../../../../lib/ng-nest/ui/ripple/ripple.module.ts","../../../../lib/ng-nest/ui/ripple/ng-nest-ui-ripple.ts"],"sourcesContent":["import { XPropertyFunction, XToBoolean, XToNumber } from '@ng-nest/ui/core';\r\nimport { Directive, input } from '@angular/core';\r\nimport type { XBoolean, XNumber, XType } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Ripple\r\n * @selector x-ripple\r\n * @decorator directive\r\n */\r\nexport const XRipplePrefix = 'x-ripple';\r\nconst X_RIPPLE_CONFIG_NAME = 'ripple';\r\n\r\n/**\r\n * Ripple Property\r\n */\r\n@Directive({ selector: '[x-ripple]' })\r\nexport class XRippleProperty extends XPropertyFunction(X_RIPPLE_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n */\r\n readonly type = input<XRippleType>(this.config?.type ?? 'initial');\r\n /**\r\n * @zh_CN 执行时间\r\n * @en_US The execution time\r\n */\r\n readonly duration = input<number, XNumber>(500, {transform: XToNumber});\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disable\r\n */\r\n readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n}\r\n\r\n/**\r\n * @zh_CN 波纹类型\r\n * @en_US Ripple type\r\n */\r\nexport type XRippleType = XType;\r\n","import {\r\n OnInit,\r\n Renderer2,\r\n ElementRef,\r\n Directive,\r\n OnDestroy,\r\n inject,\r\n HostBinding,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { delay, fromEvent, of, Subject, takeUntil, tap } from 'rxjs';\r\nimport { XRipplePrefix, XRippleProperty } from './ripple.property';\r\nimport { XComputed } from '@ng-nest/ui/core';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Directive({\r\n selector: `[${XRipplePrefix}]`,\r\n standalone: true\r\n})\r\nexport class XRippleDirective extends XRippleProperty implements OnInit, OnDestroy {\r\n @HostBinding('class') get className() {\r\n return `${XRipplePrefix} ${XRipplePrefix}-${this.type()}`;\r\n }\r\n\r\n private unsub = new Subject<void>();\r\n private renderer = inject(Renderer2);\r\n private elementRef = inject(ElementRef);\r\n private cdr = inject(ChangeDetectorRef);\r\n private document = inject(DOCUMENT);\r\n\r\n ngOnInit() {\r\n if (this.disabled()) return;\r\n\r\n fromEvent<MouseEvent>(this.elementRef.nativeElement, 'mousedown')\r\n .pipe(takeUntil(this.unsub))\r\n .subscribe((event) => {\r\n const eleRect = this.elementRef.nativeElement.getBoundingClientRect();\r\n const radius = this.distanceToFurthestCorner(event.x, event.y, eleRect);\r\n const offsetX = event.x - eleRect.left;\r\n const offsetY = event.y - eleRect.top;\r\n const ripple = this.renderer.createElement('div');\r\n this.renderer.addClass(ripple, 'x-ripple-element');\r\n ripple.style.left = `${offsetX - radius}px`;\r\n ripple.style.top = `${offsetY - radius}px`;\r\n ripple.style.height = `${radius * 2}px`;\r\n ripple.style.width = `${radius * 2}px`;\r\n ripple.style.transitionDuration = `${this.duration()}ms`;\r\n this.renderer.appendChild(this.elementRef.nativeElement, ripple);\r\n this.enforceStyleRecalculation(ripple);\r\n ripple.style.transform = 'scale(1)';\r\n ripple.style.opacity = '0.3';\r\n const downTime = new Date().getTime();\r\n\r\n const upEvent = fromEvent<MouseEvent>(this.document.documentElement, 'mouseup')\r\n .pipe(takeUntil(this.unsub))\r\n .subscribe(() => {\r\n const upTime = new Date().getTime();\r\n of(true)\r\n .pipe(\r\n delay(upTime - downTime > this.duration() ? 0 : this.duration() - (upTime - downTime)),\r\n tap(() => {\r\n if (this.renderer.parentNode(ripple)) {\r\n this.renderer.removeChild(this.elementRef.nativeElement, ripple);\r\n }\r\n // TODO: use zoneless, renderer removeChild will not take effect immediately\r\n this.cdr.markForCheck();\r\n upEvent.unsubscribe();\r\n }),\r\n takeUntil(this.unsub)\r\n )\r\n .subscribe();\r\n });\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsub.next();\r\n this.unsub.complete();\r\n }\r\n\r\n distanceToFurthestCorner(x: number, y: number, rect: DOMRect) {\r\n const distX = Math.max(Math.abs(x - rect.left), Math.abs(x - rect.right));\r\n const distY = Math.max(Math.abs(y - rect.top), Math.abs(y - rect.bottom));\r\n return Math.sqrt(distX * distX + distY * distY);\r\n }\r\n\r\n enforceStyleRecalculation(element: HTMLElement) {\r\n XComputed(element).getPropertyValue('opacity');\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { XRippleDirective } from './ripple.directive';\r\n\r\n@NgModule({\r\n imports: [XRippleDirective],\r\n exports: [XRippleDirective]\r\n})\r\nexport class XRippleModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;AAIA;;;;AAIG;AACI,MAAM,aAAa,GAAG,WAAW;AACxC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAEtC;;AAEG;MAEU,eAAgB,SAAQ,iBAAiB,CAAC,oBAAoB,CAAC,CAAA;AAD5E,IAAA,WAAA,GAAA;;AAEE;;;AAGG;QACM,IAAI,CAAA,IAAA,GAAG,KAAK,CAAc,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,SAAS,CAAC,CAAC;AACnE;;;AAGG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAkB,GAAG,EAAE,EAAC,SAAS,EAAE,SAAS,EAAC,CAAC,CAAC;AACxE;;;AAGG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAoB,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;AAChF,KAAA;iIAhBY,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;qHAAf,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,SAAS;mBAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAA;;;ACI/B,MAAO,gBAAiB,SAAQ,eAAe,CAAA;AAJrD,IAAA,WAAA,GAAA;;AASU,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,OAAO,EAAQ,CAAC;AAC5B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAC7B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAChC,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAChC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AA6DrC,KAAA;AArEC,IAAA,IAA0B,SAAS,GAAA;QACjC,OAAO,CAAA,EAAG,aAAa,CAAA,CAAA,EAAI,aAAa,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE,CAAC;KAC3D;IAQD,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO;QAE5B,SAAS,CAAa,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,WAAW,CAAC;AAC9D,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;YACnB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;AACtE,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACxE,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YACvC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAClD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,OAAO,GAAG,MAAM,CAAA,EAAA,CAAI,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,OAAO,GAAG,MAAM,CAAA,EAAA,CAAI,CAAC;YAC3C,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,CAAA,EAAA,CAAI,CAAC;YACxC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,MAAM,GAAG,CAAC,CAAA,EAAA,CAAI,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,kBAAkB,GAAG,CAAG,EAAA,IAAI,CAAC,QAAQ,EAAE,CAAA,EAAA,CAAI,CAAC;AACzD,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AACjE,YAAA,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;AACvC,YAAA,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC;AACpC,YAAA,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;YAC7B,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YAEtC,MAAM,OAAO,GAAG,SAAS,CAAa,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC;AAC5E,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC3B,SAAS,CAAC,MAAK;gBACd,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBACpC,EAAE,CAAC,IAAI,CAAC;AACL,qBAAA,IAAI,CACH,KAAK,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,MAAM,GAAG,QAAQ,CAAC,CAAC,EACtF,GAAG,CAAC,MAAK;oBACP,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AACpC,wBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;qBAClE;;AAED,oBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;oBACxB,OAAO,CAAC,WAAW,EAAE,CAAC;iBACvB,CAAC,EACF,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CACtB;AACA,qBAAA,SAAS,EAAE,CAAC;AACjB,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACN;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;KACvB;AAED,IAAA,wBAAwB,CAAC,CAAS,EAAE,CAAS,EAAE,IAAa,EAAA;AAC1D,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1E,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1E,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC;KACjD;AAED,IAAA,yBAAyB,CAAC,OAAoB,EAAA;QAC5C,SAAS,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;KAChD;iIArEU,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;qHAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,QAAQ,EAAE,CAAI,CAAA,EAAA,aAAa,CAAG,CAAA,CAAA;AAC9B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;8BAE2B,SAAS,EAAA,CAAA;sBAAlC,WAAW;uBAAC,OAAO,CAAA;;;MCbT,aAAa,CAAA;iIAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;kIAAb,aAAa,EAAA,OAAA,EAAA,CAHd,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAChB,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;kIAEf,aAAa,EAAA,CAAA,CAAA,EAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC5B,iBAAA,CAAA;;;ACND;;AAEG;;;;"}
@@ -5,7 +5,7 @@ export declare const XSouceUrl: {
5
5
  };
6
6
  export declare const XViewBox: never[];
7
7
  export declare class XIconComponent extends XIconProperty {
8
- className: string;
8
+ get className(): string;
9
9
  private svgElement;
10
10
  private document;
11
11
  private elementRef;
@@ -16,16 +16,43 @@ export declare class XRowProperty extends XRowProperty_base {
16
16
  /**
17
17
  * @zh_CN 列间隔
18
18
  * @en_US Column interval
19
+ * @example
20
+ *
21
+ * ```html
22
+ * <x-row space="1rem">
23
+ * <x-col span="6">col-1</x-col>
24
+ * <x-col span="6">col-2</x-col>
25
+ * </x-row>
26
+ * ```
27
+ *
19
28
  */
20
29
  readonly space: import("@angular/core").InputSignalWithTransform<string, XNumber>;
21
30
  /**
22
31
  * @zh_CN flex 布局下的水平排列方式
23
32
  * @en_US Horizontal arrangement under flex layout
33
+ * @example
34
+ *
35
+ * ```html
36
+ * <x-row justify="end">
37
+ * <x-col span="6">col-1</x-col>
38
+ * <x-col span="6">col-2</x-col>
39
+ * </x-row>
40
+ * ```
41
+ *
24
42
  */
25
43
  readonly justify: import("@angular/core").InputSignal<XJustify | undefined>;
26
44
  /**
27
45
  * @zh_CN flex 布局下的垂直排列方式
28
46
  * @en_US Vertical arrangement under flex layout
47
+ * @example
48
+ *
49
+ * ```html
50
+ * <x-row align="end">
51
+ * <x-col span="6">col-1</x-col>
52
+ * <x-col span="6">col-2</x-col>
53
+ * </x-row>
54
+ * ```
55
+ *
29
56
  */
30
57
  readonly align: import("@angular/core").InputSignal<XAlign | undefined>;
31
58
  static ɵfac: i0.ɵɵFactoryDeclaration<XRowProperty, never>;
@@ -47,11 +74,29 @@ export declare class XColProperty extends XColProperty_base {
47
74
  /**
48
75
  * @zh_CN 24栅格布局,列占的宽度
49
76
  * @en_US 24 grid layout, column width
77
+ * @example
78
+ *
79
+ * ```html
80
+ * <x-row>
81
+ * <x-col span="6">col-1</x-col>
82
+ * <x-col span="18">col-2</x-col>
83
+ * </x-row>
84
+ * ```
85
+ *
50
86
  */
51
87
  readonly span: import("@angular/core").InputSignalWithTransform<number, XNumber>;
52
88
  /**
53
89
  * @zh_CN 栅格左侧的间隔格数
54
90
  * @en_US The number of intervals on the left side of the grid
91
+ * @example
92
+ *
93
+ * ```html
94
+ * <x-row>
95
+ * <x-col span="6">col-1</x-col>
96
+ * <x-col span="12" offset="6">col-2</x-col>
97
+ * </x-row>
98
+ * ```
99
+ *
55
100
  */
56
101
  readonly offset: import("@angular/core").InputSignalWithTransform<number, XNumber>;
57
102
  /**
@@ -77,6 +122,15 @@ export declare class XColProperty extends XColProperty_base {
77
122
  /**
78
123
  * @zh_CN 默认样式
79
124
  * @en_US Default style
125
+ * @example
126
+ *
127
+ * ```html
128
+ * <x-row>
129
+ * <x-col span="6" inherit>col-1</x-col>
130
+ * <x-col span="12" offset="6" inherit>col-2</x-col>
131
+ * </x-row>
132
+ * ```
133
+ *
80
134
  */
81
135
  readonly inherit: import("@angular/core").InputSignalWithTransform<boolean, XBoolean>;
82
136
  static ɵfac: i0.ɵɵFactoryDeclaration<XColProperty, never>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-nest/ui",
3
- "version": "18.0.0",
3
+ "version": "18.0.1",
4
4
  "license": "MIT",
5
5
  "homepage": "https://www.ngnest.com",
6
6
  "author": "ng-nest",
@@ -59,17 +59,11 @@
59
59
  "esm": "./esm2022/api/ng-nest-ui-api.mjs",
60
60
  "default": "./fesm2022/ng-nest-ui-api.mjs"
61
61
  },
62
- "./avatar": {
63
- "types": "./avatar/index.d.ts",
64
- "esm2022": "./esm2022/avatar/ng-nest-ui-avatar.mjs",
65
- "esm": "./esm2022/avatar/ng-nest-ui-avatar.mjs",
66
- "default": "./fesm2022/ng-nest-ui-avatar.mjs"
67
- },
68
- "./base-form": {
69
- "types": "./base-form/index.d.ts",
70
- "esm2022": "./esm2022/base-form/ng-nest-ui-base-form.mjs",
71
- "esm": "./esm2022/base-form/ng-nest-ui-base-form.mjs",
72
- "default": "./fesm2022/ng-nest-ui-base-form.mjs"
62
+ "./auto-complete": {
63
+ "types": "./auto-complete/index.d.ts",
64
+ "esm2022": "./esm2022/auto-complete/ng-nest-ui-auto-complete.mjs",
65
+ "esm": "./esm2022/auto-complete/ng-nest-ui-auto-complete.mjs",
66
+ "default": "./fesm2022/ng-nest-ui-auto-complete.mjs"
73
67
  },
74
68
  "./badge": {
75
69
  "types": "./badge/index.d.ts",
@@ -77,11 +71,11 @@
77
71
  "esm": "./esm2022/badge/ng-nest-ui-badge.mjs",
78
72
  "default": "./fesm2022/ng-nest-ui-badge.mjs"
79
73
  },
80
- "./auto-complete": {
81
- "types": "./auto-complete/index.d.ts",
82
- "esm2022": "./esm2022/auto-complete/ng-nest-ui-auto-complete.mjs",
83
- "esm": "./esm2022/auto-complete/ng-nest-ui-auto-complete.mjs",
84
- "default": "./fesm2022/ng-nest-ui-auto-complete.mjs"
74
+ "./base-form": {
75
+ "types": "./base-form/index.d.ts",
76
+ "esm2022": "./esm2022/base-form/ng-nest-ui-base-form.mjs",
77
+ "esm": "./esm2022/base-form/ng-nest-ui-base-form.mjs",
78
+ "default": "./fesm2022/ng-nest-ui-base-form.mjs"
85
79
  },
86
80
  "./back-top": {
87
81
  "types": "./back-top/index.d.ts",
@@ -89,6 +83,12 @@
89
83
  "esm": "./esm2022/back-top/ng-nest-ui-back-top.mjs",
90
84
  "default": "./fesm2022/ng-nest-ui-back-top.mjs"
91
85
  },
86
+ "./avatar": {
87
+ "types": "./avatar/index.d.ts",
88
+ "esm2022": "./esm2022/avatar/ng-nest-ui-avatar.mjs",
89
+ "esm": "./esm2022/avatar/ng-nest-ui-avatar.mjs",
90
+ "default": "./fesm2022/ng-nest-ui-avatar.mjs"
91
+ },
92
92
  "./button": {
93
93
  "types": "./button/index.d.ts",
94
94
  "esm2022": "./esm2022/button/ng-nest-ui-button.mjs",
@@ -113,42 +113,36 @@
113
113
  "esm": "./esm2022/card/ng-nest-ui-card.mjs",
114
114
  "default": "./fesm2022/ng-nest-ui-card.mjs"
115
115
  },
116
- "./cascade": {
117
- "types": "./cascade/index.d.ts",
118
- "esm2022": "./esm2022/cascade/ng-nest-ui-cascade.mjs",
119
- "esm": "./esm2022/cascade/ng-nest-ui-cascade.mjs",
120
- "default": "./fesm2022/ng-nest-ui-cascade.mjs"
121
- },
122
- "./checkbox": {
123
- "types": "./checkbox/index.d.ts",
124
- "esm2022": "./esm2022/checkbox/ng-nest-ui-checkbox.mjs",
125
- "esm": "./esm2022/checkbox/ng-nest-ui-checkbox.mjs",
126
- "default": "./fesm2022/ng-nest-ui-checkbox.mjs"
127
- },
128
116
  "./collapse": {
129
117
  "types": "./collapse/index.d.ts",
130
118
  "esm2022": "./esm2022/collapse/ng-nest-ui-collapse.mjs",
131
119
  "esm": "./esm2022/collapse/ng-nest-ui-collapse.mjs",
132
120
  "default": "./fesm2022/ng-nest-ui-collapse.mjs"
133
121
  },
122
+ "./cascade": {
123
+ "types": "./cascade/index.d.ts",
124
+ "esm2022": "./esm2022/cascade/ng-nest-ui-cascade.mjs",
125
+ "esm": "./esm2022/cascade/ng-nest-ui-cascade.mjs",
126
+ "default": "./fesm2022/ng-nest-ui-cascade.mjs"
127
+ },
134
128
  "./color": {
135
129
  "types": "./color/index.d.ts",
136
130
  "esm2022": "./esm2022/color/ng-nest-ui-color.mjs",
137
131
  "esm": "./esm2022/color/ng-nest-ui-color.mjs",
138
132
  "default": "./fesm2022/ng-nest-ui-color.mjs"
139
133
  },
140
- "./comment": {
141
- "types": "./comment/index.d.ts",
142
- "esm2022": "./esm2022/comment/ng-nest-ui-comment.mjs",
143
- "esm": "./esm2022/comment/ng-nest-ui-comment.mjs",
144
- "default": "./fesm2022/ng-nest-ui-comment.mjs"
145
- },
146
134
  "./color-picker": {
147
135
  "types": "./color-picker/index.d.ts",
148
136
  "esm2022": "./esm2022/color-picker/ng-nest-ui-color-picker.mjs",
149
137
  "esm": "./esm2022/color-picker/ng-nest-ui-color-picker.mjs",
150
138
  "default": "./fesm2022/ng-nest-ui-color-picker.mjs"
151
139
  },
140
+ "./checkbox": {
141
+ "types": "./checkbox/index.d.ts",
142
+ "esm2022": "./esm2022/checkbox/ng-nest-ui-checkbox.mjs",
143
+ "esm": "./esm2022/checkbox/ng-nest-ui-checkbox.mjs",
144
+ "default": "./fesm2022/ng-nest-ui-checkbox.mjs"
145
+ },
152
146
  "./container": {
153
147
  "types": "./container/index.d.ts",
154
148
  "esm2022": "./esm2022/container/ng-nest-ui-container.mjs",
@@ -161,11 +155,11 @@
161
155
  "esm": "./esm2022/core/ng-nest-ui-core.mjs",
162
156
  "default": "./fesm2022/ng-nest-ui-core.mjs"
163
157
  },
164
- "./crumb": {
165
- "types": "./crumb/index.d.ts",
166
- "esm2022": "./esm2022/crumb/ng-nest-ui-crumb.mjs",
167
- "esm": "./esm2022/crumb/ng-nest-ui-crumb.mjs",
168
- "default": "./fesm2022/ng-nest-ui-crumb.mjs"
158
+ "./comment": {
159
+ "types": "./comment/index.d.ts",
160
+ "esm2022": "./esm2022/comment/ng-nest-ui-comment.mjs",
161
+ "esm": "./esm2022/comment/ng-nest-ui-comment.mjs",
162
+ "default": "./fesm2022/ng-nest-ui-comment.mjs"
169
163
  },
170
164
  "./date-picker": {
171
165
  "types": "./date-picker/index.d.ts",
@@ -173,6 +167,12 @@
173
167
  "esm": "./esm2022/date-picker/ng-nest-ui-date-picker.mjs",
174
168
  "default": "./fesm2022/ng-nest-ui-date-picker.mjs"
175
169
  },
170
+ "./crumb": {
171
+ "types": "./crumb/index.d.ts",
172
+ "esm2022": "./esm2022/crumb/ng-nest-ui-crumb.mjs",
173
+ "esm": "./esm2022/crumb/ng-nest-ui-crumb.mjs",
174
+ "default": "./fesm2022/ng-nest-ui-crumb.mjs"
175
+ },
176
176
  "./description": {
177
177
  "types": "./description/index.d.ts",
178
178
  "esm2022": "./esm2022/description/ng-nest-ui-description.mjs",
@@ -245,18 +245,18 @@
245
245
  "esm": "./esm2022/i18n/ng-nest-ui-i18n.mjs",
246
246
  "default": "./fesm2022/ng-nest-ui-i18n.mjs"
247
247
  },
248
- "./icon": {
249
- "types": "./icon/index.d.ts",
250
- "esm2022": "./esm2022/icon/ng-nest-ui-icon.mjs",
251
- "esm": "./esm2022/icon/ng-nest-ui-icon.mjs",
252
- "default": "./fesm2022/ng-nest-ui-icon.mjs"
253
- },
254
248
  "./image": {
255
249
  "types": "./image/index.d.ts",
256
250
  "esm2022": "./esm2022/image/ng-nest-ui-image.mjs",
257
251
  "esm": "./esm2022/image/ng-nest-ui-image.mjs",
258
252
  "default": "./fesm2022/ng-nest-ui-image.mjs"
259
253
  },
254
+ "./icon": {
255
+ "types": "./icon/index.d.ts",
256
+ "esm2022": "./esm2022/icon/ng-nest-ui-icon.mjs",
257
+ "esm": "./esm2022/icon/ng-nest-ui-icon.mjs",
258
+ "default": "./fesm2022/ng-nest-ui-icon.mjs"
259
+ },
260
260
  "./inner": {
261
261
  "types": "./inner/index.d.ts",
262
262
  "esm2022": "./esm2022/inner/ng-nest-ui-inner.mjs",
@@ -395,18 +395,6 @@
395
395
  "esm": "./esm2022/resizable/ng-nest-ui-resizable.mjs",
396
396
  "default": "./fesm2022/ng-nest-ui-resizable.mjs"
397
397
  },
398
- "./result": {
399
- "types": "./result/index.d.ts",
400
- "esm2022": "./esm2022/result/ng-nest-ui-result.mjs",
401
- "esm": "./esm2022/result/ng-nest-ui-result.mjs",
402
- "default": "./fesm2022/ng-nest-ui-result.mjs"
403
- },
404
- "./ripple": {
405
- "types": "./ripple/index.d.ts",
406
- "esm2022": "./esm2022/ripple/ng-nest-ui-ripple.mjs",
407
- "esm": "./esm2022/ripple/ng-nest-ui-ripple.mjs",
408
- "default": "./fesm2022/ng-nest-ui-ripple.mjs"
409
- },
410
398
  "./select": {
411
399
  "types": "./select/index.d.ts",
412
400
  "esm2022": "./esm2022/select/ng-nest-ui-select.mjs",
@@ -419,6 +407,18 @@
419
407
  "esm": "./esm2022/skeleton/ng-nest-ui-skeleton.mjs",
420
408
  "default": "./fesm2022/ng-nest-ui-skeleton.mjs"
421
409
  },
410
+ "./result": {
411
+ "types": "./result/index.d.ts",
412
+ "esm2022": "./esm2022/result/ng-nest-ui-result.mjs",
413
+ "esm": "./esm2022/result/ng-nest-ui-result.mjs",
414
+ "default": "./fesm2022/ng-nest-ui-result.mjs"
415
+ },
416
+ "./ripple": {
417
+ "types": "./ripple/index.d.ts",
418
+ "esm2022": "./esm2022/ripple/ng-nest-ui-ripple.mjs",
419
+ "esm": "./esm2022/ripple/ng-nest-ui-ripple.mjs",
420
+ "default": "./fesm2022/ng-nest-ui-ripple.mjs"
421
+ },
422
422
  "./slider": {
423
423
  "types": "./slider/index.d.ts",
424
424
  "esm2022": "./esm2022/slider/ng-nest-ui-slider.mjs",
@@ -455,41 +455,35 @@
455
455
  "esm": "./esm2022/table/ng-nest-ui-table.mjs",
456
456
  "default": "./fesm2022/ng-nest-ui-table.mjs"
457
457
  },
458
- "./tabs": {
459
- "types": "./tabs/index.d.ts",
460
- "esm2022": "./esm2022/tabs/ng-nest-ui-tabs.mjs",
461
- "esm": "./esm2022/tabs/ng-nest-ui-tabs.mjs",
462
- "default": "./fesm2022/ng-nest-ui-tabs.mjs"
463
- },
464
458
  "./tag": {
465
459
  "types": "./tag/index.d.ts",
466
460
  "esm2022": "./esm2022/tag/ng-nest-ui-tag.mjs",
467
461
  "esm": "./esm2022/tag/ng-nest-ui-tag.mjs",
468
462
  "default": "./fesm2022/ng-nest-ui-tag.mjs"
469
463
  },
464
+ "./tabs": {
465
+ "types": "./tabs/index.d.ts",
466
+ "esm2022": "./esm2022/tabs/ng-nest-ui-tabs.mjs",
467
+ "esm": "./esm2022/tabs/ng-nest-ui-tabs.mjs",
468
+ "default": "./fesm2022/ng-nest-ui-tabs.mjs"
469
+ },
470
470
  "./text-retract": {
471
471
  "types": "./text-retract/index.d.ts",
472
472
  "esm2022": "./esm2022/text-retract/ng-nest-ui-text-retract.mjs",
473
473
  "esm": "./esm2022/text-retract/ng-nest-ui-text-retract.mjs",
474
474
  "default": "./fesm2022/ng-nest-ui-text-retract.mjs"
475
475
  },
476
- "./textarea": {
477
- "types": "./textarea/index.d.ts",
478
- "esm2022": "./esm2022/textarea/ng-nest-ui-textarea.mjs",
479
- "esm": "./esm2022/textarea/ng-nest-ui-textarea.mjs",
480
- "default": "./fesm2022/ng-nest-ui-textarea.mjs"
481
- },
482
476
  "./theme": {
483
477
  "types": "./theme/index.d.ts",
484
478
  "esm2022": "./esm2022/theme/ng-nest-ui-theme.mjs",
485
479
  "esm": "./esm2022/theme/ng-nest-ui-theme.mjs",
486
480
  "default": "./fesm2022/ng-nest-ui-theme.mjs"
487
481
  },
488
- "./time-picker": {
489
- "types": "./time-picker/index.d.ts",
490
- "esm2022": "./esm2022/time-picker/ng-nest-ui-time-picker.mjs",
491
- "esm": "./esm2022/time-picker/ng-nest-ui-time-picker.mjs",
492
- "default": "./fesm2022/ng-nest-ui-time-picker.mjs"
482
+ "./textarea": {
483
+ "types": "./textarea/index.d.ts",
484
+ "esm2022": "./esm2022/textarea/ng-nest-ui-textarea.mjs",
485
+ "esm": "./esm2022/textarea/ng-nest-ui-textarea.mjs",
486
+ "default": "./fesm2022/ng-nest-ui-textarea.mjs"
493
487
  },
494
488
  "./time-ago": {
495
489
  "types": "./time-ago/index.d.ts",
@@ -497,23 +491,23 @@
497
491
  "esm": "./esm2022/time-ago/ng-nest-ui-time-ago.mjs",
498
492
  "default": "./fesm2022/ng-nest-ui-time-ago.mjs"
499
493
  },
500
- "./timeline": {
501
- "types": "./timeline/index.d.ts",
502
- "esm2022": "./esm2022/timeline/ng-nest-ui-timeline.mjs",
503
- "esm": "./esm2022/timeline/ng-nest-ui-timeline.mjs",
504
- "default": "./fesm2022/ng-nest-ui-timeline.mjs"
505
- },
506
494
  "./time-range": {
507
495
  "types": "./time-range/index.d.ts",
508
496
  "esm2022": "./esm2022/time-range/ng-nest-ui-time-range.mjs",
509
497
  "esm": "./esm2022/time-range/ng-nest-ui-time-range.mjs",
510
498
  "default": "./fesm2022/ng-nest-ui-time-range.mjs"
511
499
  },
512
- "./tooltip": {
513
- "types": "./tooltip/index.d.ts",
514
- "esm2022": "./esm2022/tooltip/ng-nest-ui-tooltip.mjs",
515
- "esm": "./esm2022/tooltip/ng-nest-ui-tooltip.mjs",
516
- "default": "./fesm2022/ng-nest-ui-tooltip.mjs"
500
+ "./time-picker": {
501
+ "types": "./time-picker/index.d.ts",
502
+ "esm2022": "./esm2022/time-picker/ng-nest-ui-time-picker.mjs",
503
+ "esm": "./esm2022/time-picker/ng-nest-ui-time-picker.mjs",
504
+ "default": "./fesm2022/ng-nest-ui-time-picker.mjs"
505
+ },
506
+ "./timeline": {
507
+ "types": "./timeline/index.d.ts",
508
+ "esm2022": "./esm2022/timeline/ng-nest-ui-timeline.mjs",
509
+ "esm": "./esm2022/timeline/ng-nest-ui-timeline.mjs",
510
+ "default": "./fesm2022/ng-nest-ui-timeline.mjs"
517
511
  },
518
512
  "./transfer": {
519
513
  "types": "./transfer/index.d.ts",
@@ -533,6 +527,12 @@
533
527
  "esm": "./esm2022/tree-select/ng-nest-ui-tree-select.mjs",
534
528
  "default": "./fesm2022/ng-nest-ui-tree-select.mjs"
535
529
  },
530
+ "./tooltip": {
531
+ "types": "./tooltip/index.d.ts",
532
+ "esm2022": "./esm2022/tooltip/ng-nest-ui-tooltip.mjs",
533
+ "esm": "./esm2022/tooltip/ng-nest-ui-tooltip.mjs",
534
+ "default": "./fesm2022/ng-nest-ui-tooltip.mjs"
535
+ },
536
536
  "./tree-file": {
537
537
  "types": "./tree-file/index.d.ts",
538
538
  "esm2022": "./esm2022/tree-file/ng-nest-ui-tree-file.mjs",
@@ -6,8 +6,8 @@ import { OverlayRef, OverlayConfig, ConnectedPosition } from '@angular/cdk/overl
6
6
  * @selector x-portal
7
7
  * @decorator component
8
8
  */
9
- export declare const PortalPrefix = "x-portal";
10
- export declare const PortalResizablePrefix = "x-portal-resizable";
9
+ export declare const XPortalPrefix = "x-portal";
10
+ export declare const XPortalResizablePrefix = "x-portal-resizable";
11
11
  export declare const XPortalPlacement: {
12
12
  [proptery: string]: ConnectedPosition;
13
13
  };
@@ -2,7 +2,7 @@ import { OnInit, OnDestroy } from '@angular/core';
2
2
  import { XRippleProperty } from './ripple.property';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class XRippleDirective extends XRippleProperty implements OnInit, OnDestroy {
5
- className: string;
5
+ get className(): string;
6
6
  private unsub;
7
7
  private renderer;
8
8
  private elementRef;