ngx-tethys 19.0.8 → 19.0.10
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 +24 -0
- package/date-range/date-range.component.d.ts +16 -28
- package/fesm2022/ngx-tethys-date-range.mjs +60 -63
- package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
- package/fesm2022/ngx-tethys-guider.mjs +11 -10
- package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-i18n.mjs +57 -2
- package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
- package/fesm2022/ngx-tethys-image.mjs +11 -9
- package/fesm2022/ngx-tethys-image.mjs.map +1 -1
- package/fesm2022/ngx-tethys-nav.mjs +5 -2
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/guider/guider.directive.d.ts +2 -2
- package/i18n/i18n.d.ts +14 -1
- package/i18n/locales/de-de.d.ts +11 -0
- package/i18n/locales/en-us.d.ts +11 -0
- package/i18n/locales/ja-jp.d.ts +11 -0
- package/i18n/locales/zh-hans.d.ts +11 -0
- package/i18n/locales/zh-hant.d.ts +11 -0
- package/image/preview/image-preview.component.d.ts +1 -0
- package/nav/styles/nav.scss +4 -1
- package/package.json +1 -1
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-nav.mjs","sources":["../../../src/nav/icon-nav/icon-nav-link.directive.ts","../../../src/nav/icon-nav/icon-nav.component.ts","../../../src/nav/icon-nav/icon-nav.component.html","../../../src/nav/nav-item.directive.ts","../../../src/nav/nav-ink-bar.directive.ts","../../../src/nav/nav.pipe.ts","../../../src/nav/nav.component.ts","../../../src/nav/nav.component.html","../../../src/nav/nav.module.ts","../../../src/nav/ngx-tethys-nav.ts"],"sourcesContent":["import { Component, HostBinding, Input } from '@angular/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * @private\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[thyIconNavLink]',\n template: '<ng-content></ng-content>@if (icon) {<thy-icon [thyIconName]=\"icon\"></thy-icon>}',\n imports: [ThyIcon]\n})\nexport class ThyIconNavLink {\n @HostBinding('class.active') navLinkActive = false;\n\n @HostBinding('class.thy-icon-nav-link') navLinkClass = true;\n\n icon: string;\n\n @Input()\n set thyIconNavLinkIcon(icon: string) {\n this.icon = icon;\n }\n\n @Input({ transform: coerceBooleanProperty })\n set thyIconNavLinkActive(active: boolean) {\n this.navLinkActive = active;\n }\n}\n","import { Component, OnInit, HostBinding, Input, ChangeDetectionStrategy, ChangeDetectorRef, inject } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { warnDeprecation } from 'ngx-tethys/util';\n\ntype IconNavTypes = 'primary' | 'secondary' | 'individual' | '';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-icon-nav',\n templateUrl: './icon-nav.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThyIconNav implements OnInit {\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n private initialized = false;\n\n private hostRenderer = useHostRenderer();\n\n type: IconNavTypes;\n\n @HostBinding(`class.thy-icon-nav`) isIconNav = true;\n\n @Input() set thyType(type: IconNavTypes) {\n this.type = type;\n this.updateClasses();\n this.changeDetectorRef.markForCheck();\n }\n\n private updateClasses(bypassInitialized?: boolean) {\n if (!bypassInitialized && !this.initialized) {\n return;\n }\n this.hostRenderer.updateClass(this.type ? [`thy-icon-nav-${this.type}`] : []);\n }\n\n constructor() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n warnDeprecation('thy-icon-nav has been deprecated, please use thyAction and thy-space components instead of it');\n }\n }\n\n ngOnInit(): void {\n this.initialized = true;\n this.updateClasses(true);\n }\n}\n","<ng-content></ng-content>\n","import { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport {\n AfterViewInit,\n ContentChildren,\n DestroyRef,\n Directive,\n ElementRef,\n forwardRef,\n inject,\n input,\n Input,\n NgZone,\n QueryList\n} from '@angular/core';\nimport { RouterLinkActive } from '@angular/router';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport type ThyNavLink = '' | 'active';\n\n/**\n * 导航项\n * @name thyNavItem\n * @order 20\n */\n@Directive({\n selector: '[thyNavLink],[thyNavItem]',\n host: {\n class: 'thy-nav-item',\n '[class.active]': 'thyNavItemActive || thyNavLinkActive',\n '[class.disabled]': 'thyNavItemDisabled'\n }\n})\nexport class ThyNavItemDirective implements AfterViewInit {\n elementRef = inject(ElementRef);\n private routerLinkActive = inject(RouterLinkActive, { optional: true })!;\n private ngZone = inject(NgZone);\n\n /**\n * 唯一标识\n */\n id = input<string>();\n\n /**\n * 是否激活状态\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n thyNavItemActive: boolean;\n\n /**\n * 已经废弃,请使用 thyNavItemActive\n * @deprecated please use thyNavItemActive\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n thyNavLinkActive: boolean;\n\n /**\n * 是否禁用\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n thyNavItemDisabled: boolean;\n\n /**\n * @private\n */\n @ContentChildren(forwardRef(() => ThyNavItemDirective), { descendants: true })\n links: QueryList<ThyNavItemDirective>;\n\n /**\n * @private\n */\n @ContentChildren(RouterLinkActive, { descendants: true }) routers: QueryList<RouterLinkActive>;\n\n // @HostBinding('attr.href') navLinkHref = 'javascript:;';\n\n public offset: {\n width: number;\n height: number;\n left: number;\n top: number;\n } = {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n };\n\n public content: HTMLElement;\n\n public isActive: boolean;\n\n private hostRenderer = useHostRenderer();\n\n private readonly destroyRef = inject(DestroyRef);\n\n ngAfterViewInit() {\n this.setOffset();\n\n this.content = this.elementRef.nativeElement.outerHTML;\n\n this.ngZone.onStable.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.isActive = this.linkIsActive();\n });\n }\n\n setOffset() {\n this.offset = {\n width: this.elementRef.nativeElement.offsetWidth || this.offset.width,\n height: this.elementRef.nativeElement.offsetHeight || this.offset.height,\n left: this.elementRef.nativeElement.offsetLeft || this.offset.left,\n top: this.elementRef.nativeElement.offsetTop || this.offset.top\n };\n }\n\n linkIsActive() {\n return (\n this.thyNavItemActive ||\n this.thyNavLinkActive ||\n (this.routerLinkActive && this.routerLinkActive.isActive) ||\n this.routers.some(router => router.isActive) ||\n this.links.some(item => item.thyNavItemActive) ||\n this.links.some(item => item.thyNavLinkActive)\n );\n }\n\n setNavLinkHidden(value: boolean) {\n if (value) {\n this.hostRenderer.addClass('thy-nav-item-hidden');\n } else {\n this.hostRenderer.removeClass('thy-nav-item-hidden');\n }\n }\n\n addClass(className: string) {\n this.hostRenderer.addClass(className);\n }\n\n removeClass(className: string) {\n this.hostRenderer.removeClass(className);\n }\n}\n","import { ANIMATION_MODULE_TYPE, Directive, ElementRef, Input, NgZone, inject } from '@angular/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\nimport { take } from 'rxjs/operators';\n\n/**\n * @internal\n */\n@Directive({\n selector: 'thy-nav-ink-bar, [thyNavInkBar]',\n host: {\n class: 'thy-nav-ink-bar',\n '[class.thy-nav-ink-bar-animated]': 'animated'\n }\n})\nexport class ThyNavInkBarDirective {\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private ngZone = inject(NgZone);\n animationMode? = inject(ANIMATION_MODULE_TYPE, { optional: true });\n\n @Input({ transform: coerceBooleanProperty }) isVertical: boolean;\n\n @Input({ transform: coerceBooleanProperty }) showInkBar: boolean;\n\n get animated(): boolean {\n return this.animationMode !== 'NoopAnimations' && this.showInkBar;\n }\n\n public alignToElement(element: HTMLElement): void {\n this.show();\n this.ngZone.run(() => {\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.setStyles(element);\n });\n });\n }\n\n private setStyles(element: HTMLElement): void {\n const inkBar: HTMLElement = this.elementRef.nativeElement;\n if (!this.isVertical) {\n inkBar.style.top = '';\n inkBar.style.bottom = '0px';\n inkBar.style.height = '2px';\n inkBar.style.left = this.getLeftPosition(element);\n inkBar.style.width = this.getElementWidth(element);\n } else {\n inkBar.style.left = '';\n inkBar.style.width = '2px';\n inkBar.style.top = this.getTopPosition(element);\n inkBar.style.height = this.getElementHeight(element);\n }\n }\n\n private getLeftPosition(element: HTMLElement): string {\n return element ? `${element.offsetLeft || 0}px` : '0';\n }\n\n private getElementWidth(element: HTMLElement): string {\n return element ? `${element.offsetWidth || 0}px` : '0';\n }\n\n private getTopPosition(element: HTMLElement): string {\n return element ? `${element.offsetTop || 0}px` : '0';\n }\n\n private getElementHeight(element: HTMLElement): string {\n return element ? `${element.offsetHeight || 0}px` : '0';\n }\n\n private show() {\n this.elementRef.nativeElement.style.visibility = 'visible';\n }\n\n public hide() {\n this.elementRef.nativeElement.style.visibility = 'hidden';\n }\n}\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n/**\n * @private\n */\n@Pipe({\n name: 'bypassSecurityTrustHtml'\n})\nexport class BypassSecurityTrustHtmlPipe implements PipeTransform {\n private sanitizer = inject(DomSanitizer);\n\n transform(format: string): any {\n return this.sanitizer.bypassSecurityTrustHtml(format);\n }\n}\n","import { ThyPopover, ThyPopoverConfig } from 'ngx-tethys/popover';\nimport { merge, Observable, of } from 'rxjs';\nimport { startWith, take, tap } from 'rxjs/operators';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport {\n AfterContentChecked,\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n ElementRef,\n HostBinding,\n inject,\n input,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n QueryList,\n signal,\n Signal,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n WritableSignal\n} from '@angular/core';\n\nimport { RouterLinkActive } from '@angular/router';\nimport { ThyNavInkBarDirective } from './nav-ink-bar.directive';\nimport { ThyNavItemDirective } from './nav-item.directive';\nimport { BypassSecurityTrustHtmlPipe } from './nav.pipe';\nimport { ThyDropdownMenuComponent, ThyDropdownMenuItemDirective, ThyDropdownMenuItemActiveDirective } from 'ngx-tethys/dropdown';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\nimport { injectLocale, ThyNavLocale } from 'ngx-tethys/i18n';\nimport { ThyPlacement } from 'ngx-tethys/core';\n\nexport type ThyNavType = 'pulled' | 'tabs' | 'pills' | 'lite' | 'card' | 'primary' | 'secondary' | 'thirdly' | 'secondary-divider';\nexport type ThyNavSize = 'lg' | 'md' | 'sm';\nexport type ThyNavHorizontal = '' | 'start' | 'center' | 'end';\n\nconst navTypeClassesMap = {\n pulled: ['thy-nav-pulled'],\n tabs: ['thy-nav-tabs'],\n pills: ['thy-nav-pills'],\n lite: ['thy-nav-lite'],\n card: ['thy-nav-card'],\n //如下类型已经废弃\n primary: ['thy-nav-primary'],\n secondary: ['thy-nav-secondary'],\n thirdly: ['thy-nav-thirdly'],\n 'secondary-divider': ['thy-nav-secondary-divider']\n};\n\nconst navSizeClassesMap = {\n lg: 'thy-nav-lg',\n md: 'thy-nav-md',\n sm: 'thy-nav-sm'\n};\n\nconst tabItemRight = 20;\n\n/**\n * 导航组件\n * @name thy-nav\n * @order 10\n */\n@Component({\n selector: 'thy-nav',\n templateUrl: './nav.component.html',\n host: {\n class: 'thy-nav'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgClass,\n NgTemplateOutlet,\n ThyNavItemDirective,\n ThyIcon,\n ThyNavInkBarDirective,\n ThyDropdownMenuComponent,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemActiveDirective,\n BypassSecurityTrustHtmlPipe\n ]\n})\nexport class ThyNav implements OnInit, AfterViewInit, AfterContentInit, AfterContentChecked, OnChanges, OnDestroy {\n private elementRef = inject(ElementRef);\n private ngZone = inject(NgZone);\n private changeDetectorRef = inject(ChangeDetectorRef);\n private popover = inject(ThyPopover);\n\n private readonly destroyRef = inject(DestroyRef);\n\n public type: ThyNavType = 'pulled';\n private size: ThyNavSize = 'md';\n public initialized = false;\n\n public horizontal: ThyNavHorizontal;\n public wrapperOffset: { height: number; width: number; left: number; top: number } = {\n height: 0,\n width: 0,\n left: 0,\n top: 0\n };\n\n public hiddenItems: ThyNavItemDirective[] = [];\n\n public moreActive: boolean;\n\n readonly showMore: WritableSignal<boolean> = signal(false);\n\n private moreBtnOffset: { height: number; width: number } = { height: 0, width: 0 };\n\n private hostRenderer = useHostRenderer();\n\n private innerLinks: QueryList<ThyNavItemDirective>;\n\n locale: Signal<ThyNavLocale> = injectLocale('nav');\n\n /**\n * 导航类型\n * @type pulled | tabs | pills | lite | primary | secondary | thirdly | secondary-divider\n * @default pulled\n */\n @Input()\n set thyType(type: ThyNavType) {\n this.type = type || 'pulled';\n if (this.initialized) {\n this.updateClasses();\n }\n }\n\n /**\n * 导航大小\n * @type lg | md | sm\n * @default md\n */\n @Input()\n set thySize(size: ThyNavSize) {\n this.size = size;\n if (this.initialized) {\n this.updateClasses();\n }\n }\n\n /**\n * 水平排列\n * @type '' | 'start' | 'center' | 'end'\n * @default false\n */\n @Input()\n set thyHorizontal(horizontal: ThyNavHorizontal) {\n this.horizontal = (horizontal as string) === 'right' ? 'end' : horizontal;\n }\n\n /**\n * 是否垂直排列\n * @default false\n */\n @HostBinding('class.thy-nav--vertical')\n @Input({ transform: coerceBooleanProperty })\n thyVertical: boolean;\n\n /**\n * 是否是填充模式\n */\n @HostBinding('class.thy-nav--fill')\n @Input({ transform: coerceBooleanProperty })\n thyFill: boolean = false;\n\n /**\n * 是否响应式,自动计算宽度存放 thyNavItem,并添加更多弹框\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n thyResponsive: boolean;\n\n /**\n * 支持暂停自适应计算\n */\n thyPauseReCalculate = input<boolean>(false);\n\n /**\n * 更多操作的菜单点击内部是否可关闭\n * @deprecated please use thyPopoverOptions\n */\n @Input({ transform: coerceBooleanProperty })\n thyInsideClosable = true;\n\n /**\n * 更多菜单弹出框的参数,底层使用 Popover 组件\n * @type ThyPopoverConfig\n */\n thyPopoverOptions = input<ThyPopoverConfig<unknown>>(null);\n\n /**\n * 右侧额外区域模板\n * @type TemplateRef\n */\n @Input() thyExtra: TemplateRef<unknown>;\n\n /**\n * @private\n */\n @ContentChildren(ThyNavItemDirective, { descendants: true })\n set links(value) {\n this.innerLinks = value;\n this.prevActiveIndex = NaN;\n }\n get links(): QueryList<ThyNavItemDirective> {\n return this.innerLinks;\n }\n\n /**\n * @private\n */\n @ContentChildren(RouterLinkActive, { descendants: true }) routers: QueryList<RouterLinkActive>;\n\n /**\n * 响应式模式下更多操作模板\n * @type TemplateRef\n */\n @ContentChild('more') moreOperation: TemplateRef<unknown>;\n\n /**\n * 响应式模式下更多弹框模板\n * @type TemplateRef\n */\n @ContentChild('morePopover') morePopover: TemplateRef<unknown>;\n\n /**\n * 右侧额外区域模板,支持 thyExtra 传参和 <ng-template #extra></ng-template> 模板\n * @name extra\n * @type TemplateRef\n */\n @ContentChild('extra') extra: TemplateRef<unknown>;\n\n @ViewChild('moreOperationContainer') defaultMoreOperation: ElementRef<HTMLAnchorElement>;\n\n @ViewChild(ThyNavInkBarDirective, { static: true }) inkBar!: ThyNavInkBarDirective;\n\n get showInkBar(): boolean {\n const showTypes: ThyNavType[] = ['pulled', 'tabs'];\n return showTypes.includes(this.type);\n }\n\n private updateClasses() {\n let classNames: string[] = [];\n if (navTypeClassesMap[this.type]) {\n classNames = [...navTypeClassesMap[this.type]];\n }\n if (navSizeClassesMap[this.size]) {\n classNames.push(navSizeClassesMap[this.size]);\n }\n this.hostRenderer.updateClass(classNames);\n }\n\n private curActiveIndex: number;\n\n private prevActiveIndex: number = NaN;\n\n private navSubscription: { unsubscribe: () => void } | null = null;\n\n ngOnInit() {\n if (!this.thyResponsive) {\n this.initialized = true;\n }\n\n this.updateClasses();\n }\n\n ngAfterViewInit() {\n if (this.thyResponsive) {\n this.setMoreBtnOffset();\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.links.toArray().forEach(link => link.setOffset());\n this.setHiddenItems();\n });\n }\n\n this.ngZone.runOutsideAngular(() => {\n this.links.changes.pipe(startWith(this.links), takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n if (this.navSubscription) {\n this.navSubscription.unsubscribe();\n }\n\n this.navSubscription = merge(\n this.createResizeObserver(this.elementRef.nativeElement),\n ...this.links.map(item => this.createResizeObserver(item.elementRef.nativeElement).pipe(tap(() => item.setOffset()))),\n ...(this.routers || []).map(router => router?.isActiveChange)\n )\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n tap(() => {\n if (this.thyPauseReCalculate()) {\n return;\n }\n\n if (this.thyResponsive) {\n this.resetSizes();\n this.setHiddenItems();\n this.calculateMoreIsActive();\n }\n\n if (this.type === 'card') {\n this.setNavItemDivider();\n }\n })\n )\n .subscribe(() => {\n this.alignInkBarToSelectedTab();\n });\n });\n });\n }\n\n ngAfterContentInit(): void {\n if (this.thyResponsive) {\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.resetSizes();\n });\n }\n }\n\n ngAfterContentChecked() {\n this.calculateMoreIsActive();\n\n this.curActiveIndex = this.links && this.links.length ? this.links.toArray().findIndex(item => item.linkIsActive()) : -1;\n if (this.curActiveIndex < 0) {\n this.inkBar.hide();\n } else if (this.curActiveIndex !== this.prevActiveIndex) {\n this.alignInkBarToSelectedTab();\n }\n }\n\n private setMoreBtnOffset() {\n this.moreBtnOffset = {\n height: this.defaultMoreOperation?.nativeElement?.offsetHeight,\n width: this.defaultMoreOperation?.nativeElement?.offsetWidth\n };\n }\n\n private setNavItemDivider() {\n const tabs = this.links.toArray();\n const activeIndex = tabs.findIndex(item => item.linkIsActive());\n\n for (let i = 0; i < tabs.length; i++) {\n if ((i !== activeIndex && i !== activeIndex - 1 && i !== tabs.length - 1) || (i === activeIndex - 1 && this.moreActive)) {\n tabs[i].addClass('has-right-divider');\n } else {\n tabs[i].removeClass('has-right-divider');\n }\n }\n }\n\n createResizeObserver(element: HTMLElement) {\n return typeof ResizeObserver === 'undefined'\n ? of(null)\n : new Observable(observer => {\n const resize = new ResizeObserver(entries => {\n observer.next(entries);\n });\n resize.observe(element);\n return () => {\n resize.disconnect();\n };\n });\n }\n\n private calculateMoreIsActive() {\n this.moreActive = this.hiddenItems.some(item => {\n return item.linkIsActive();\n });\n this.changeDetectorRef.detectChanges();\n }\n\n private setHiddenItems() {\n this.moreActive = false;\n const tabs = this.links.toArray();\n if (!tabs.length) {\n this.hiddenItems = [];\n this.showMore.set(false);\n return;\n }\n\n const endIndex = this.thyVertical ? this.getShowItemsEndIndexWhenVertical(tabs) : this.getShowItemsEndIndexWhenHorizontal(tabs);\n\n const showItems = tabs.slice(0, endIndex + 1);\n (showItems || []).forEach(item => {\n item.setNavLinkHidden(false);\n });\n\n this.hiddenItems = endIndex === tabs.length - 1 ? [] : tabs.slice(endIndex + 1);\n (this.hiddenItems || []).forEach(item => {\n item.setNavLinkHidden(true);\n });\n\n this.showMore.set(this.hiddenItems.length > 0);\n this.initialized = true;\n }\n\n private getShowItemsEndIndexWhenHorizontal(tabs: ThyNavItemDirective[]) {\n const tabsLength = tabs.length;\n let endIndex = tabsLength;\n let totalWidth = 0;\n\n for (let i = 0; i < tabsLength; i += 1) {\n const _totalWidth = i === tabsLength - 1 ? totalWidth + tabs[i].offset.width : totalWidth + tabs[i].offset.width + tabItemRight;\n if (_totalWidth > this.wrapperOffset.width) {\n let moreOperationWidth = this.moreBtnOffset.width;\n if (totalWidth + moreOperationWidth <= this.wrapperOffset.width) {\n endIndex = i - 1;\n } else {\n endIndex = i - 2;\n }\n break;\n } else {\n totalWidth = _totalWidth;\n endIndex = i;\n }\n }\n return endIndex;\n }\n\n private getShowItemsEndIndexWhenVertical(tabs: ThyNavItemDirective[]) {\n const tabsLength = tabs.length;\n let endIndex = tabsLength;\n let totalHeight = 0;\n for (let i = 0; i < tabsLength; i += 1) {\n const _totalHeight = totalHeight + tabs[i].offset.height;\n if (_totalHeight > this.wrapperOffset.height) {\n let moreOperationHeight = this.moreBtnOffset.height;\n if (totalHeight + moreOperationHeight <= this.wrapperOffset.height) {\n endIndex = i - 1;\n } else {\n endIndex = i - 2;\n }\n break;\n } else {\n totalHeight = _totalHeight;\n endIndex = i;\n }\n }\n return endIndex;\n }\n\n private resetSizes() {\n this.wrapperOffset = {\n height: this.elementRef.nativeElement.offsetHeight || 0,\n width: this.elementRef.nativeElement.offsetWidth || 0,\n left: this.elementRef.nativeElement.offsetLeft || 0,\n top: this.elementRef.nativeElement.offsetTop || 0\n };\n }\n\n openMoreMenu(event: Event, template: TemplateRef<any>) {\n this.popover.open(\n template,\n Object.assign(\n {\n origin: event.currentTarget as HTMLElement,\n hasBackdrop: true,\n backdropClosable: true,\n insideClosable: true,\n placement: 'bottom' as ThyPlacement,\n panelClass: 'thy-nav-list-popover',\n originActiveClass: 'thy-nav-origin-active'\n },\n this.thyPopoverOptions() ? this.thyPopoverOptions() : {}\n )\n );\n }\n\n navItemClick(item: ThyNavItemDirective) {\n item.elementRef.nativeElement.click();\n }\n\n private alignInkBarToSelectedTab(): void {\n if (!this.showInkBar) {\n this.inkBar.hide();\n return;\n }\n const tabs = this.links?.toArray() ?? [];\n const selectedItem = tabs.find(item => item.linkIsActive());\n let selectedItemElement: HTMLElement = selectedItem && selectedItem.elementRef.nativeElement;\n\n if (selectedItem && this.moreActive) {\n selectedItemElement = this.defaultMoreOperation.nativeElement;\n }\n if (selectedItemElement) {\n this.prevActiveIndex = this.curActiveIndex;\n this.inkBar.alignToElement(selectedItemElement);\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { thyVertical, thyType } = changes;\n\n if (thyType?.currentValue !== thyType?.previousValue || thyVertical?.currentValue !== thyVertical?.previousValue) {\n this.alignInkBarToSelectedTab();\n }\n }\n\n ngOnDestroy() {\n if (this.navSubscription) {\n this.navSubscription.unsubscribe();\n }\n }\n}\n","<div class=\"thy-nav-list\" [ngClass]=\"horizontal ? 'justify-content-' + horizontal : ''\" #navList>\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n @if (thyResponsive) {\n <a\n href=\"javascript:;\"\n class=\"thy-nav-more-container\"\n [class.d-none]=\"!showMore()\"\n [class.invisible]=\"!initialized\"\n #moreOperationContainer\n thyNavLink\n [thyNavItemActive]=\"moreActive\"\n (click)=\"openMoreMenu($event, navListPopover)\">\n @if (moreOperation) {\n <ng-container [ngTemplateOutlet]=\"moreOperation\"></ng-container>\n } @else {\n {{ locale().more }}\n <thy-icon thyIconName=\"angle-down\" class=\"thy-nav-more-icon\"></thy-icon>\n }\n </a>\n }\n @if (thyExtra || extra) {\n <div class=\"thy-nav-extra\">\n <ng-container [ngTemplateOutlet]=\"thyExtra || extra\"></ng-container>\n </div>\n }\n <thy-nav-ink-bar [showInkBar]=\"showInkBar\" [isVertical]=\"thyVertical\"></thy-nav-ink-bar>\n</div>\n\n<ng-template #navListPopover>\n @if (morePopover) {\n <ng-container [ngTemplateOutlet]=\"morePopover\" [ngTemplateOutletContext]=\"{ $implicit: hiddenItems }\"></ng-container>\n } @else {\n <thy-dropdown-menu thyImmediateRender>\n @for (item of hiddenItems; track $index) {\n <span\n class=\"thy-nav-item-more\"\n thyDropdownMenuItem\n [thyDropdownMenuItemActive]=\"item.isActive\"\n (click)=\"navItemClick(item)\"\n [innerHTML]=\"item.elementRef.nativeElement.innerHTML | bypassSecurityTrustHtml\"></span>\n }\n </thy-dropdown-menu>\n }\n</ng-template>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { ThyDropdownModule } from 'ngx-tethys/dropdown';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { ThyIconNavLink } from './icon-nav/icon-nav-link.directive';\nimport { ThyIconNav } from './icon-nav/icon-nav.component';\nimport { ThyNavInkBarDirective } from './nav-ink-bar.directive';\nimport { ThyNavItemDirective } from './nav-item.directive';\nimport { ThyNav } from './nav.component';\nimport { BypassSecurityTrustHtmlPipe } from './nav.pipe';\n\n@NgModule({\n imports: [\n CommonModule,\n ThyIconModule,\n ThyPopoverModule,\n ThyDropdownModule,\n RouterModule,\n ThyNav,\n ThyNavItemDirective,\n ThyIconNav,\n ThyIconNavLink,\n BypassSecurityTrustHtmlPipe,\n ThyNavInkBarDirective\n ],\n exports: [ThyNav, ThyNavItemDirective, ThyIconNav, ThyIconNavLink, BypassSecurityTrustHtmlPipe]\n})\nexport class ThyNavModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-nav.mjs","sources":["../../../src/nav/icon-nav/icon-nav-link.directive.ts","../../../src/nav/icon-nav/icon-nav.component.ts","../../../src/nav/icon-nav/icon-nav.component.html","../../../src/nav/nav-item.directive.ts","../../../src/nav/nav-ink-bar.directive.ts","../../../src/nav/nav.pipe.ts","../../../src/nav/nav.component.ts","../../../src/nav/nav.component.html","../../../src/nav/nav.module.ts","../../../src/nav/ngx-tethys-nav.ts"],"sourcesContent":["import { Component, HostBinding, Input } from '@angular/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * @private\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[thyIconNavLink]',\n template: '<ng-content></ng-content>@if (icon) {<thy-icon [thyIconName]=\"icon\"></thy-icon>}',\n imports: [ThyIcon]\n})\nexport class ThyIconNavLink {\n @HostBinding('class.active') navLinkActive = false;\n\n @HostBinding('class.thy-icon-nav-link') navLinkClass = true;\n\n icon: string;\n\n @Input()\n set thyIconNavLinkIcon(icon: string) {\n this.icon = icon;\n }\n\n @Input({ transform: coerceBooleanProperty })\n set thyIconNavLinkActive(active: boolean) {\n this.navLinkActive = active;\n }\n}\n","import { Component, OnInit, HostBinding, Input, ChangeDetectionStrategy, ChangeDetectorRef, inject } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { warnDeprecation } from 'ngx-tethys/util';\n\ntype IconNavTypes = 'primary' | 'secondary' | 'individual' | '';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-icon-nav',\n templateUrl: './icon-nav.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThyIconNav implements OnInit {\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n private initialized = false;\n\n private hostRenderer = useHostRenderer();\n\n type: IconNavTypes;\n\n @HostBinding(`class.thy-icon-nav`) isIconNav = true;\n\n @Input() set thyType(type: IconNavTypes) {\n this.type = type;\n this.updateClasses();\n this.changeDetectorRef.markForCheck();\n }\n\n private updateClasses(bypassInitialized?: boolean) {\n if (!bypassInitialized && !this.initialized) {\n return;\n }\n this.hostRenderer.updateClass(this.type ? [`thy-icon-nav-${this.type}`] : []);\n }\n\n constructor() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n warnDeprecation('thy-icon-nav has been deprecated, please use thyAction and thy-space components instead of it');\n }\n }\n\n ngOnInit(): void {\n this.initialized = true;\n this.updateClasses(true);\n }\n}\n","<ng-content></ng-content>\n","import { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport {\n AfterViewInit,\n ContentChildren,\n DestroyRef,\n Directive,\n ElementRef,\n forwardRef,\n inject,\n input,\n Input,\n NgZone,\n QueryList\n} from '@angular/core';\nimport { RouterLinkActive } from '@angular/router';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport type ThyNavLink = '' | 'active';\n\n/**\n * 导航项\n * @name thyNavItem\n * @order 20\n */\n@Directive({\n selector: '[thyNavLink],[thyNavItem]',\n host: {\n class: 'thy-nav-item',\n '[class.active]': 'thyNavItemActive || thyNavLinkActive',\n '[class.disabled]': 'thyNavItemDisabled'\n }\n})\nexport class ThyNavItemDirective implements AfterViewInit {\n elementRef = inject(ElementRef);\n private routerLinkActive = inject(RouterLinkActive, { optional: true })!;\n private ngZone = inject(NgZone);\n\n /**\n * 唯一标识\n */\n id = input<string>();\n\n /**\n * 是否激活状态\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n thyNavItemActive: boolean;\n\n /**\n * 已经废弃,请使用 thyNavItemActive\n * @deprecated please use thyNavItemActive\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n thyNavLinkActive: boolean;\n\n /**\n * 是否禁用\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n thyNavItemDisabled: boolean;\n\n /**\n * @private\n */\n @ContentChildren(forwardRef(() => ThyNavItemDirective), { descendants: true })\n links: QueryList<ThyNavItemDirective>;\n\n /**\n * @private\n */\n @ContentChildren(RouterLinkActive, { descendants: true }) routers: QueryList<RouterLinkActive>;\n\n // @HostBinding('attr.href') navLinkHref = 'javascript:;';\n\n public offset: {\n width: number;\n height: number;\n left: number;\n top: number;\n } = {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n };\n\n public content: HTMLElement;\n\n public isActive: boolean;\n\n private hostRenderer = useHostRenderer();\n\n private readonly destroyRef = inject(DestroyRef);\n\n ngAfterViewInit() {\n this.setOffset();\n\n this.content = this.elementRef.nativeElement.outerHTML;\n\n this.ngZone.onStable.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.isActive = this.linkIsActive();\n });\n }\n\n setOffset() {\n this.offset = {\n width: this.elementRef.nativeElement.offsetWidth || this.offset.width,\n height: this.elementRef.nativeElement.offsetHeight || this.offset.height,\n left: this.elementRef.nativeElement.offsetLeft || this.offset.left,\n top: this.elementRef.nativeElement.offsetTop || this.offset.top\n };\n }\n\n linkIsActive() {\n return (\n this.thyNavItemActive ||\n this.thyNavLinkActive ||\n (this.routerLinkActive && this.routerLinkActive.isActive) ||\n this.routers.some(router => router.isActive) ||\n this.links.some(item => item.thyNavItemActive) ||\n this.links.some(item => item.thyNavLinkActive)\n );\n }\n\n setNavLinkHidden(value: boolean) {\n if (value) {\n this.hostRenderer.addClass('thy-nav-item-hidden');\n } else {\n this.hostRenderer.removeClass('thy-nav-item-hidden');\n }\n }\n\n addClass(className: string) {\n this.hostRenderer.addClass(className);\n }\n\n removeClass(className: string) {\n this.hostRenderer.removeClass(className);\n }\n}\n","import { ANIMATION_MODULE_TYPE, Directive, ElementRef, Input, NgZone, inject } from '@angular/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\nimport { take } from 'rxjs/operators';\n\n/**\n * @internal\n */\n@Directive({\n selector: 'thy-nav-ink-bar, [thyNavInkBar]',\n host: {\n class: 'thy-nav-ink-bar',\n '[class.thy-nav-ink-bar-animated]': 'animated'\n }\n})\nexport class ThyNavInkBarDirective {\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private ngZone = inject(NgZone);\n animationMode? = inject(ANIMATION_MODULE_TYPE, { optional: true });\n\n @Input({ transform: coerceBooleanProperty }) isVertical: boolean;\n\n @Input({ transform: coerceBooleanProperty }) showInkBar: boolean;\n\n get animated(): boolean {\n return this.animationMode !== 'NoopAnimations' && this.showInkBar;\n }\n\n public alignToElement(element: HTMLElement): void {\n this.show();\n this.ngZone.run(() => {\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.setStyles(element);\n });\n });\n }\n\n private setStyles(element: HTMLElement): void {\n const inkBar: HTMLElement = this.elementRef.nativeElement;\n if (!this.isVertical) {\n inkBar.style.top = '';\n inkBar.style.bottom = '0px';\n inkBar.style.height = '2px';\n inkBar.style.left = this.getLeftPosition(element);\n inkBar.style.width = this.getElementWidth(element);\n } else {\n inkBar.style.left = '';\n inkBar.style.width = '2px';\n inkBar.style.top = this.getTopPosition(element);\n inkBar.style.height = this.getElementHeight(element);\n }\n }\n\n private getLeftPosition(element: HTMLElement): string {\n return element ? `${element.offsetLeft || 0}px` : '0';\n }\n\n private getElementWidth(element: HTMLElement): string {\n return element ? `${element.offsetWidth || 0}px` : '0';\n }\n\n private getTopPosition(element: HTMLElement): string {\n return element ? `${element.offsetTop || 0}px` : '0';\n }\n\n private getElementHeight(element: HTMLElement): string {\n return element ? `${element.offsetHeight || 0}px` : '0';\n }\n\n private show() {\n this.elementRef.nativeElement.style.visibility = 'visible';\n }\n\n public hide() {\n this.elementRef.nativeElement.style.visibility = 'hidden';\n }\n}\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n/**\n * @private\n */\n@Pipe({\n name: 'bypassSecurityTrustHtml'\n})\nexport class BypassSecurityTrustHtmlPipe implements PipeTransform {\n private sanitizer = inject(DomSanitizer);\n\n transform(format: string): any {\n return this.sanitizer.bypassSecurityTrustHtml(format);\n }\n}\n","import { ThyPopover, ThyPopoverConfig } from 'ngx-tethys/popover';\nimport { merge, Observable, of } from 'rxjs';\nimport { startWith, take, tap } from 'rxjs/operators';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport {\n AfterContentChecked,\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n ElementRef,\n HostBinding,\n inject,\n input,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n QueryList,\n signal,\n Signal,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n WritableSignal\n} from '@angular/core';\n\nimport { RouterLinkActive } from '@angular/router';\nimport { ThyNavInkBarDirective } from './nav-ink-bar.directive';\nimport { ThyNavItemDirective } from './nav-item.directive';\nimport { BypassSecurityTrustHtmlPipe } from './nav.pipe';\nimport { ThyDropdownMenuComponent, ThyDropdownMenuItemDirective, ThyDropdownMenuItemActiveDirective } from 'ngx-tethys/dropdown';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\nimport { injectLocale, ThyNavLocale } from 'ngx-tethys/i18n';\nimport { ThyPlacement } from 'ngx-tethys/core';\n\nexport type ThyNavType = 'pulled' | 'tabs' | 'pills' | 'lite' | 'card' | 'primary' | 'secondary' | 'thirdly' | 'secondary-divider';\nexport type ThyNavSize = 'lg' | 'md' | 'sm';\nexport type ThyNavHorizontal = '' | 'start' | 'center' | 'end';\n\nconst navTypeClassesMap = {\n pulled: ['thy-nav-pulled'],\n tabs: ['thy-nav-tabs'],\n pills: ['thy-nav-pills'],\n lite: ['thy-nav-lite'],\n card: ['thy-nav-card'],\n //如下类型已经废弃\n primary: ['thy-nav-primary'],\n secondary: ['thy-nav-secondary'],\n thirdly: ['thy-nav-thirdly'],\n 'secondary-divider': ['thy-nav-secondary-divider']\n};\n\nconst navSizeClassesMap = {\n lg: 'thy-nav-lg',\n md: 'thy-nav-md',\n sm: 'thy-nav-sm'\n};\n\nconst tabItemRight = 20;\n\n/**\n * 导航组件\n * @name thy-nav\n * @order 10\n */\n@Component({\n selector: 'thy-nav',\n templateUrl: './nav.component.html',\n host: {\n class: 'thy-nav'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgClass,\n NgTemplateOutlet,\n ThyNavItemDirective,\n ThyIcon,\n ThyNavInkBarDirective,\n ThyDropdownMenuComponent,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemActiveDirective,\n BypassSecurityTrustHtmlPipe\n ]\n})\nexport class ThyNav implements OnInit, AfterViewInit, AfterContentInit, AfterContentChecked, OnChanges, OnDestroy {\n private elementRef = inject(ElementRef);\n private ngZone = inject(NgZone);\n private changeDetectorRef = inject(ChangeDetectorRef);\n private popover = inject(ThyPopover);\n\n private readonly destroyRef = inject(DestroyRef);\n\n public type: ThyNavType = 'pulled';\n private size: ThyNavSize = 'md';\n public initialized = false;\n\n public horizontal: ThyNavHorizontal;\n public wrapperOffset: { height: number; width: number; left: number; top: number } = {\n height: 0,\n width: 0,\n left: 0,\n top: 0\n };\n\n public hiddenItems: ThyNavItemDirective[] = [];\n\n public moreActive: boolean;\n\n readonly showMore: WritableSignal<boolean> = signal(false);\n\n private moreBtnOffset: { height: number; width: number } = { height: 0, width: 0 };\n\n private hostRenderer = useHostRenderer();\n\n private innerLinks: QueryList<ThyNavItemDirective>;\n\n locale: Signal<ThyNavLocale> = injectLocale('nav');\n\n /**\n * 导航类型\n * @type pulled | tabs | pills | lite | primary | secondary | thirdly | secondary-divider\n * @default pulled\n */\n @Input()\n set thyType(type: ThyNavType) {\n this.type = type || 'pulled';\n if (this.initialized) {\n this.updateClasses();\n }\n }\n\n /**\n * 导航大小\n * @type lg | md | sm\n * @default md\n */\n @Input()\n set thySize(size: ThyNavSize) {\n this.size = size;\n if (this.initialized) {\n this.updateClasses();\n }\n }\n\n /**\n * 水平排列\n * @type '' | 'start' | 'center' | 'end'\n * @default false\n */\n @Input()\n set thyHorizontal(horizontal: ThyNavHorizontal) {\n this.horizontal = (horizontal as string) === 'right' ? 'end' : horizontal;\n }\n\n /**\n * 是否垂直排列\n * @default false\n */\n @HostBinding('class.thy-nav--vertical')\n @Input({ transform: coerceBooleanProperty })\n thyVertical: boolean;\n\n /**\n * 是否是填充模式\n */\n @HostBinding('class.thy-nav--fill')\n @Input({ transform: coerceBooleanProperty })\n thyFill: boolean = false;\n\n /**\n * 是否响应式,自动计算宽度存放 thyNavItem,并添加更多弹框\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n thyResponsive: boolean;\n\n /**\n * 支持暂停自适应计算\n */\n thyPauseReCalculate = input<boolean>(false);\n\n /**\n * 更多操作的菜单点击内部是否可关闭\n * @deprecated please use thyPopoverOptions\n */\n @Input({ transform: coerceBooleanProperty })\n thyInsideClosable = true;\n\n /**\n * 更多菜单弹出框的参数,底层使用 Popover 组件\n * @type ThyPopoverConfig\n */\n thyPopoverOptions = input<ThyPopoverConfig<unknown>>(null);\n\n /**\n * 右侧额外区域模板\n * @type TemplateRef\n */\n @Input() thyExtra: TemplateRef<unknown>;\n\n /**\n * @private\n */\n @ContentChildren(ThyNavItemDirective, { descendants: true })\n set links(value) {\n this.innerLinks = value;\n this.prevActiveIndex = NaN;\n }\n get links(): QueryList<ThyNavItemDirective> {\n return this.innerLinks;\n }\n\n /**\n * @private\n */\n @ContentChildren(RouterLinkActive, { descendants: true }) routers: QueryList<RouterLinkActive>;\n\n /**\n * 响应式模式下更多操作模板\n * @type TemplateRef\n */\n @ContentChild('more') moreOperation: TemplateRef<unknown>;\n\n /**\n * 响应式模式下更多弹框模板\n * @type TemplateRef\n */\n @ContentChild('morePopover') morePopover: TemplateRef<unknown>;\n\n /**\n * 右侧额外区域模板,支持 thyExtra 传参和 <ng-template #extra></ng-template> 模板\n * @name extra\n * @type TemplateRef\n */\n @ContentChild('extra') extra: TemplateRef<unknown>;\n\n @ViewChild('moreOperationContainer') defaultMoreOperation: ElementRef<HTMLAnchorElement>;\n\n @ViewChild(ThyNavInkBarDirective, { static: true }) inkBar!: ThyNavInkBarDirective;\n\n get showInkBar(): boolean {\n const showTypes: ThyNavType[] = ['pulled', 'tabs'];\n return showTypes.includes(this.type);\n }\n\n private updateClasses() {\n let classNames: string[] = [];\n if (navTypeClassesMap[this.type]) {\n classNames = [...navTypeClassesMap[this.type]];\n }\n if (navSizeClassesMap[this.size]) {\n classNames.push(navSizeClassesMap[this.size]);\n }\n this.hostRenderer.updateClass(classNames);\n }\n\n private curActiveIndex: number;\n\n private prevActiveIndex: number = NaN;\n\n private navSubscription: { unsubscribe: () => void } | null = null;\n\n ngOnInit() {\n if (!this.thyResponsive) {\n this.initialized = true;\n }\n\n this.updateClasses();\n }\n\n ngAfterViewInit() {\n if (this.thyResponsive) {\n this.setMoreBtnOffset();\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.setMoreBtnOffset();\n this.links.toArray().forEach(link => link.setOffset());\n this.setHiddenItems();\n });\n }\n\n this.ngZone.runOutsideAngular(() => {\n this.links.changes.pipe(startWith(this.links), takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n if (this.navSubscription) {\n this.navSubscription.unsubscribe();\n }\n\n this.navSubscription = merge(\n this.createResizeObserver(this.elementRef.nativeElement),\n ...this.links.map(item => this.createResizeObserver(item.elementRef.nativeElement).pipe(tap(() => item.setOffset()))),\n ...(this.routers || []).map(router => router?.isActiveChange)\n )\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n tap(() => {\n if (this.thyPauseReCalculate()) {\n return;\n }\n\n if (this.thyResponsive) {\n this.setMoreBtnOffset();\n this.resetSizes();\n this.setHiddenItems();\n this.calculateMoreIsActive();\n }\n\n if (this.type === 'card') {\n this.setNavItemDivider();\n }\n })\n )\n .subscribe(() => {\n this.alignInkBarToSelectedTab();\n });\n });\n });\n }\n\n ngAfterContentInit(): void {\n if (this.thyResponsive) {\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.resetSizes();\n });\n }\n }\n\n ngAfterContentChecked() {\n this.calculateMoreIsActive();\n\n this.curActiveIndex = this.links && this.links.length ? this.links.toArray().findIndex(item => item.linkIsActive()) : -1;\n if (this.curActiveIndex < 0) {\n this.inkBar.hide();\n } else if (this.curActiveIndex !== this.prevActiveIndex) {\n this.alignInkBarToSelectedTab();\n }\n }\n\n private setMoreBtnOffset() {\n const computedStyle = window.getComputedStyle(this.defaultMoreOperation?.nativeElement);\n this.moreBtnOffset = {\n height: this.defaultMoreOperation?.nativeElement?.offsetHeight + parseFloat(computedStyle?.marginBottom) || 0,\n width: this.defaultMoreOperation?.nativeElement?.offsetWidth + parseFloat(computedStyle?.marginRight) || 0\n };\n }\n\n private setNavItemDivider() {\n const tabs = this.links.toArray();\n const activeIndex = tabs.findIndex(item => item.linkIsActive());\n\n for (let i = 0; i < tabs.length; i++) {\n if ((i !== activeIndex && i !== activeIndex - 1 && i !== tabs.length - 1) || (i === activeIndex - 1 && this.moreActive)) {\n tabs[i].addClass('has-right-divider');\n } else {\n tabs[i].removeClass('has-right-divider');\n }\n }\n }\n\n createResizeObserver(element: HTMLElement) {\n return typeof ResizeObserver === 'undefined'\n ? of(null)\n : new Observable(observer => {\n const resize = new ResizeObserver(entries => {\n observer.next(entries);\n });\n resize.observe(element);\n return () => {\n resize.disconnect();\n };\n });\n }\n\n private calculateMoreIsActive() {\n this.moreActive = this.hiddenItems.some(item => {\n return item.linkIsActive();\n });\n this.changeDetectorRef.detectChanges();\n }\n\n private setHiddenItems() {\n this.moreActive = false;\n const tabs = this.links.toArray();\n if (!tabs.length) {\n this.hiddenItems = [];\n this.showMore.set(false);\n return;\n }\n\n const endIndex = this.thyVertical ? this.getShowItemsEndIndexWhenVertical(tabs) : this.getShowItemsEndIndexWhenHorizontal(tabs);\n\n const showItems = tabs.slice(0, endIndex + 1);\n (showItems || []).forEach(item => {\n item.setNavLinkHidden(false);\n });\n\n this.hiddenItems = endIndex === tabs.length - 1 ? [] : tabs.slice(endIndex + 1);\n (this.hiddenItems || []).forEach(item => {\n item.setNavLinkHidden(true);\n });\n\n this.showMore.set(this.hiddenItems.length > 0);\n this.initialized = true;\n }\n\n private getShowItemsEndIndexWhenHorizontal(tabs: ThyNavItemDirective[]) {\n const tabsLength = tabs.length;\n let endIndex = tabsLength;\n let totalWidth = 0;\n\n for (let i = 0; i < tabsLength; i += 1) {\n const _totalWidth = i === tabsLength - 1 ? totalWidth + tabs[i].offset.width : totalWidth + tabs[i].offset.width + tabItemRight;\n if (_totalWidth > this.wrapperOffset.width) {\n let moreOperationWidth = this.moreBtnOffset.width;\n if (totalWidth + moreOperationWidth <= this.wrapperOffset.width) {\n endIndex = i - 1;\n } else {\n endIndex = i - 2;\n }\n break;\n } else {\n totalWidth = _totalWidth;\n endIndex = i;\n }\n }\n return endIndex;\n }\n\n private getShowItemsEndIndexWhenVertical(tabs: ThyNavItemDirective[]) {\n const tabsLength = tabs.length;\n let endIndex = tabsLength;\n let totalHeight = 0;\n for (let i = 0; i < tabsLength; i += 1) {\n const _totalHeight = totalHeight + tabs[i].offset.height;\n if (_totalHeight > this.wrapperOffset.height) {\n let moreOperationHeight = this.moreBtnOffset.height;\n if (totalHeight + moreOperationHeight <= this.wrapperOffset.height) {\n endIndex = i - 1;\n } else {\n endIndex = i - 2;\n }\n break;\n } else {\n totalHeight = _totalHeight;\n endIndex = i;\n }\n }\n return endIndex;\n }\n\n private resetSizes() {\n this.wrapperOffset = {\n height: this.elementRef.nativeElement.offsetHeight || 0,\n width: this.elementRef.nativeElement.offsetWidth || 0,\n left: this.elementRef.nativeElement.offsetLeft || 0,\n top: this.elementRef.nativeElement.offsetTop || 0\n };\n }\n\n openMoreMenu(event: Event, template: TemplateRef<any>) {\n this.popover.open(\n template,\n Object.assign(\n {\n origin: event.currentTarget as HTMLElement,\n hasBackdrop: true,\n backdropClosable: true,\n insideClosable: true,\n placement: 'bottom' as ThyPlacement,\n panelClass: 'thy-nav-list-popover',\n originActiveClass: 'thy-nav-origin-active'\n },\n this.thyPopoverOptions() ? this.thyPopoverOptions() : {}\n )\n );\n }\n\n navItemClick(item: ThyNavItemDirective) {\n item.elementRef.nativeElement.click();\n }\n\n private alignInkBarToSelectedTab(): void {\n if (!this.showInkBar) {\n this.inkBar.hide();\n return;\n }\n const tabs = this.links?.toArray() ?? [];\n const selectedItem = tabs.find(item => item.linkIsActive());\n let selectedItemElement: HTMLElement = selectedItem && selectedItem.elementRef.nativeElement;\n\n if (selectedItem && this.moreActive) {\n selectedItemElement = this.defaultMoreOperation.nativeElement;\n }\n if (selectedItemElement) {\n this.prevActiveIndex = this.curActiveIndex;\n this.inkBar.alignToElement(selectedItemElement);\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { thyVertical, thyType } = changes;\n\n if (thyType?.currentValue !== thyType?.previousValue || thyVertical?.currentValue !== thyVertical?.previousValue) {\n this.alignInkBarToSelectedTab();\n }\n }\n\n ngOnDestroy() {\n if (this.navSubscription) {\n this.navSubscription.unsubscribe();\n }\n }\n}\n","<div class=\"thy-nav-list\" [ngClass]=\"horizontal ? 'justify-content-' + horizontal : ''\" #navList>\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n @if (thyResponsive) {\n <a\n href=\"javascript:;\"\n class=\"thy-nav-more-container\"\n [class.d-none]=\"!showMore()\"\n [class.invisible]=\"!initialized\"\n #moreOperationContainer\n thyNavLink\n [thyNavItemActive]=\"moreActive\"\n (click)=\"openMoreMenu($event, navListPopover)\">\n @if (moreOperation) {\n <ng-container [ngTemplateOutlet]=\"moreOperation\"></ng-container>\n } @else {\n {{ locale().more }}\n <thy-icon thyIconName=\"angle-down\" class=\"thy-nav-more-icon\"></thy-icon>\n }\n </a>\n }\n @if (thyExtra || extra) {\n <div class=\"thy-nav-extra\">\n <ng-container [ngTemplateOutlet]=\"thyExtra || extra\"></ng-container>\n </div>\n }\n <thy-nav-ink-bar [showInkBar]=\"showInkBar\" [isVertical]=\"thyVertical\"></thy-nav-ink-bar>\n</div>\n\n<ng-template #navListPopover>\n @if (morePopover) {\n <ng-container [ngTemplateOutlet]=\"morePopover\" [ngTemplateOutletContext]=\"{ $implicit: hiddenItems }\"></ng-container>\n } @else {\n <thy-dropdown-menu thyImmediateRender>\n @for (item of hiddenItems; track $index) {\n <span\n class=\"thy-nav-item-more\"\n thyDropdownMenuItem\n [thyDropdownMenuItemActive]=\"item.isActive\"\n (click)=\"navItemClick(item)\"\n [innerHTML]=\"item.elementRef.nativeElement.innerHTML | bypassSecurityTrustHtml\"></span>\n }\n </thy-dropdown-menu>\n }\n</ng-template>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { ThyDropdownModule } from 'ngx-tethys/dropdown';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { ThyIconNavLink } from './icon-nav/icon-nav-link.directive';\nimport { ThyIconNav } from './icon-nav/icon-nav.component';\nimport { ThyNavInkBarDirective } from './nav-ink-bar.directive';\nimport { ThyNavItemDirective } from './nav-item.directive';\nimport { ThyNav } from './nav.component';\nimport { BypassSecurityTrustHtmlPipe } from './nav.pipe';\n\n@NgModule({\n imports: [\n CommonModule,\n ThyIconModule,\n ThyPopoverModule,\n ThyDropdownModule,\n RouterModule,\n ThyNav,\n ThyNavItemDirective,\n ThyIconNav,\n ThyIconNavLink,\n BypassSecurityTrustHtmlPipe,\n ThyNavInkBarDirective\n ],\n exports: [ThyNav, ThyNavItemDirective, ThyIconNav, ThyIconNavLink, BypassSecurityTrustHtmlPipe]\n})\nexport class ThyNavModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/fesm2022/ngx-tethys.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('19.0.
|
|
1
|
+
{"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('19.0.10');\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;;;;"}
|
|
@@ -12,10 +12,10 @@ export declare class ThyGuiderTargetDirective implements OnInit, OnDestroy, Afte
|
|
|
12
12
|
/**
|
|
13
13
|
* 标记当前元素对应的新手引导中 step 的 key
|
|
14
14
|
*/
|
|
15
|
-
target: string
|
|
15
|
+
readonly target: import("@angular/core").InputSignal<string>;
|
|
16
16
|
ngOnInit(): void;
|
|
17
17
|
ngAfterViewInit(): void;
|
|
18
18
|
ngOnDestroy(): void;
|
|
19
19
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThyGuiderTargetDirective, never>;
|
|
20
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<ThyGuiderTargetDirective, "[thyGuiderTarget]", ["thyGuiderTarget"], { "target": { "alias": "thyGuiderTarget"; "required": false; }; }, {}, never, never, true, never>;
|
|
20
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ThyGuiderTargetDirective, "[thyGuiderTarget]", ["thyGuiderTarget"], { "target": { "alias": "thyGuiderTarget"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
21
21
|
}
|
package/i18n/i18n.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type ThyModuleType = 'datePicker' | 'layout' | 'dateRange' | 'timePicker' | 'calendar' | 'autocomplete' | 'transfer' | 'colorPicker' | 'strength' | 'guider' | 'copy' | 'nav' | 'dialog' | 'select' | 'treeSelect' | 'cascader' | 'pagination' | 'form' | 'empty';
|
|
1
|
+
export type ThyModuleType = 'datePicker' | 'layout' | 'dateRange' | 'timePicker' | 'calendar' | 'autocomplete' | 'transfer' | 'colorPicker' | 'strength' | 'guider' | 'copy' | 'nav' | 'dialog' | 'select' | 'treeSelect' | 'cascader' | 'pagination' | 'form' | 'empty' | 'image';
|
|
2
2
|
export type ThyModuleLocaleType<K extends ThyModuleType> = ThyI18nLocale[K];
|
|
3
3
|
export declare enum ThyLocaleType {
|
|
4
4
|
zhHans = "zh-hans",
|
|
@@ -28,6 +28,7 @@ export interface ThyI18nLocale {
|
|
|
28
28
|
pagination: ThyPaginationLocale;
|
|
29
29
|
form: ThyFormLocale;
|
|
30
30
|
empty: ThyEmptyLocale;
|
|
31
|
+
image: ThyImageLocale;
|
|
31
32
|
}
|
|
32
33
|
export interface ThyLayoutLocale {
|
|
33
34
|
collapse: string;
|
|
@@ -134,6 +135,7 @@ export interface ThyCascaderLocale {
|
|
|
134
135
|
}
|
|
135
136
|
export interface ThyPaginationLocale {
|
|
136
137
|
page: string;
|
|
138
|
+
order: string;
|
|
137
139
|
total: string;
|
|
138
140
|
totalCount: string;
|
|
139
141
|
jumpTo: string;
|
|
@@ -157,3 +159,14 @@ export interface ThyFormLocale {
|
|
|
157
159
|
export interface ThyEmptyLocale {
|
|
158
160
|
noDataText: string;
|
|
159
161
|
}
|
|
162
|
+
export interface ThyImageLocale {
|
|
163
|
+
zoomOut: string;
|
|
164
|
+
zoomIn: string;
|
|
165
|
+
originalSize: string;
|
|
166
|
+
fitToScreen: string;
|
|
167
|
+
fullScreen: string;
|
|
168
|
+
spin: string;
|
|
169
|
+
download: string;
|
|
170
|
+
viewOriginal: string;
|
|
171
|
+
copyLink: string;
|
|
172
|
+
}
|
package/i18n/locales/de-de.d.ts
CHANGED
|
@@ -130,5 +130,16 @@ declare const _default: {
|
|
|
130
130
|
empty: {
|
|
131
131
|
noDataText: string;
|
|
132
132
|
};
|
|
133
|
+
image: {
|
|
134
|
+
zoomOut: string;
|
|
135
|
+
zoomIn: string;
|
|
136
|
+
originalSize: string;
|
|
137
|
+
fitToScreen: string;
|
|
138
|
+
fullScreen: string;
|
|
139
|
+
spin: string;
|
|
140
|
+
download: string;
|
|
141
|
+
viewOriginal: string;
|
|
142
|
+
copyLink: string;
|
|
143
|
+
};
|
|
133
144
|
};
|
|
134
145
|
export default _default;
|
package/i18n/locales/en-us.d.ts
CHANGED
|
@@ -130,6 +130,17 @@ declare const _default: {
|
|
|
130
130
|
empty: {
|
|
131
131
|
noDataText: string;
|
|
132
132
|
};
|
|
133
|
+
image: {
|
|
134
|
+
zoomOut: string;
|
|
135
|
+
zoomIn: string;
|
|
136
|
+
originalSize: string;
|
|
137
|
+
fitToScreen: string;
|
|
138
|
+
fullScreen: string;
|
|
139
|
+
spin: string;
|
|
140
|
+
download: string;
|
|
141
|
+
viewOriginal: string;
|
|
142
|
+
copyLink: string;
|
|
143
|
+
};
|
|
133
144
|
};
|
|
134
145
|
export default _default;
|
|
135
146
|
/**
|
package/i18n/locales/ja-jp.d.ts
CHANGED
|
@@ -130,5 +130,16 @@ declare const _default: {
|
|
|
130
130
|
empty: {
|
|
131
131
|
noDataText: string;
|
|
132
132
|
};
|
|
133
|
+
image: {
|
|
134
|
+
zoomOut: string;
|
|
135
|
+
zoomIn: string;
|
|
136
|
+
originalSize: string;
|
|
137
|
+
fitToScreen: string;
|
|
138
|
+
fullScreen: string;
|
|
139
|
+
spin: string;
|
|
140
|
+
download: string;
|
|
141
|
+
viewOriginal: string;
|
|
142
|
+
copyLink: string;
|
|
143
|
+
};
|
|
133
144
|
};
|
|
134
145
|
export default _default;
|
|
@@ -130,5 +130,16 @@ declare const _default: {
|
|
|
130
130
|
empty: {
|
|
131
131
|
noDataText: string;
|
|
132
132
|
};
|
|
133
|
+
image: {
|
|
134
|
+
zoomOut: string;
|
|
135
|
+
zoomIn: string;
|
|
136
|
+
originalSize: string;
|
|
137
|
+
fitToScreen: string;
|
|
138
|
+
fullScreen: string;
|
|
139
|
+
spin: string;
|
|
140
|
+
download: string;
|
|
141
|
+
viewOriginal: string;
|
|
142
|
+
copyLink: string;
|
|
143
|
+
};
|
|
133
144
|
};
|
|
134
145
|
export default _default;
|
|
@@ -130,5 +130,16 @@ declare const _default: {
|
|
|
130
130
|
empty: {
|
|
131
131
|
noDataText: string;
|
|
132
132
|
};
|
|
133
|
+
image: {
|
|
134
|
+
zoomOut: string;
|
|
135
|
+
zoomIn: string;
|
|
136
|
+
originalSize: string;
|
|
137
|
+
fitToScreen: string;
|
|
138
|
+
fullScreen: string;
|
|
139
|
+
spin: string;
|
|
140
|
+
download: string;
|
|
141
|
+
viewOriginal: string;
|
|
142
|
+
copyLink: string;
|
|
143
|
+
};
|
|
133
144
|
};
|
|
134
145
|
export default _default;
|
package/nav/styles/nav.scss
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
margin-bottom: 0;
|
|
13
13
|
list-style: none;
|
|
14
14
|
position: relative;
|
|
15
|
+
width: 100%;
|
|
15
16
|
|
|
16
17
|
.thy-nav-item {
|
|
17
18
|
display: block;
|
|
@@ -34,7 +35,7 @@
|
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
.thy-nav-more-icon {
|
|
37
|
-
margin-left:
|
|
38
|
+
margin-left: 4px;
|
|
38
39
|
}
|
|
39
40
|
|
|
40
41
|
.thy-nav-origin-active {
|
|
@@ -306,4 +307,6 @@
|
|
|
306
307
|
flex: 1 !important;
|
|
307
308
|
flex-grow: 0 !important;
|
|
308
309
|
white-space: nowrap;
|
|
310
|
+
width: fit-content;
|
|
311
|
+
min-width: fit-content;
|
|
309
312
|
}
|
package/package.json
CHANGED
package/schematics/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "19.0.
|
|
1
|
+
export declare const VERSION = "19.0.10";
|
package/schematics/version.js
CHANGED