ngx-tethys 20.0.2 → 20.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngx-tethys-native-table.mjs","sources":["../../../src/native-table/services/table-style.service.ts","../../../src/native-table/table/table-content.component.ts","../../../src/native-table/table/table-inner-default.component.ts","../../../src/native-table/table/table-inner-scroll.component.ts","../../../src/native-table/table/table.component.ts","../../../src/native-table/table/table.component.html","../../../src/native-table/table/tbody.component.ts","../../../src/native-table/cell/th.directive.ts","../../../src/native-table/row/tr.directive.ts","../../../src/native-table/table/thead.component.ts","../../../src/native-table/cell/cell.directive.ts","../../../src/native-table/cell/td-selection.component.ts","../../../src/native-table/cell/th-selection.component.ts","../../../src/native-table/cell/th-sort.component.ts","../../../src/native-table/table-editable/edit-event-dispatcher.service.ts","../../../src/native-table/table-editable/edit-ref.ts","../../../src/native-table/constant.ts","../../../src/native-table/table-editable/table-editable.directive.ts","../../../src/native-table/table-editable/td-popover-edit.directive.ts","../../../src/native-table/table-editable/td-edit-open.directive.ts","../../../src/native-table/table-editable/td-edit-close.directive.ts","../../../src/native-table/native-table.module.ts","../../../src/native-table/ngx-tethys-native-table.ts"],"sourcesContent":["import { Injectable, TemplateRef, signal, computed, InputSignal } from '@angular/core';\nimport { BehaviorSubject, combineLatest, merge, ReplaySubject } from 'rxjs';\n\nimport { ThyNativeTableSize, ThyNativeTableTheme } from '../table.interface';\nimport { ThyTableEmptyOptions } from 'ngx-tethys/table';\nimport { ThyNativeTableThDirective } from '../cell/th.directive';\n\nexport interface ThyNativeTableThInfo {\n thyWidth?: InputSignal<string | number | null>;\n colspan?: number | string | null;\n colSpan?: number | string | null;\n}\n\n@Injectable()\nexport class ThyNativeTableStyleService {\n theadTemplate = signal<TemplateRef<any> | null>(null);\n columnCount = signal<number>(0);\n tableSize = signal<ThyNativeTableSize>('default');\n tableTheme = signal<ThyNativeTableTheme>('default');\n showEmpty = signal<boolean>(false);\n emptyOptions = signal<ThyTableEmptyOptions | null>(null);\n\n listOfThWidthConfigPx$ = new BehaviorSubject<ReadonlyArray<string | null>>([]);\n\n setTheadTemplate(template: TemplateRef<any>): void {\n this.theadTemplate.set(template);\n }\n\n setTableSize(size: ThyNativeTableSize): void {\n this.tableSize.set(size);\n }\n\n setTableTheme(theme: ThyNativeTableTheme): void {\n this.tableTheme.set(theme);\n }\n\n setShowEmpty(showEmpty: boolean): void {\n this.showEmpty.set(showEmpty);\n }\n\n setEmptyOptions(emptyOptions: ThyTableEmptyOptions): void {\n this.emptyOptions.set(emptyOptions);\n }\n\n setListOfTh(listOfTh: readonly ThyNativeTableThDirective[]): void {\n const listOfThPx = listOfTh.map(item => {\n const width = item.thyWidth();\n if (width === null || width === undefined) {\n return null;\n }\n if (typeof width === 'number') {\n return `${width}px`;\n }\n return width.toString();\n });\n this.listOfThWidthConfigPx$.next(listOfThPx);\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { SafeAny } from 'ngx-tethys/types';\n\nimport { ThyNativeTableLayout } from '../table.interface';\n\n@Component({\n selector: 'table[thy-native-table-content]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @if (listOfColWidth().length > 0) {\n <colgroup>\n @for (width of listOfColWidth(); track $index) {\n <col [style.width]=\"width\" [style.minWidth]=\"width\" />\n }\n </colgroup>\n }\n @if (theadTemplate()) {\n <thead class=\"thy-native-table-thead\">\n <ng-template [ngTemplateOutlet]=\"theadTemplate()!\"></ng-template>\n </thead>\n }\n @if (contentTemplate()) {\n <ng-template [ngTemplateOutlet]=\"contentTemplate()!\"></ng-template>\n }\n <ng-content></ng-content>\n @if (tfootTemplate()) {\n <tfoot class=\"thy-native-table-summary\">\n <ng-template [ngTemplateOutlet]=\"tfootTemplate()!\"></ng-template>\n </tfoot>\n }\n `,\n host: {\n '[style.table-layout]': 'tableLayout()',\n '[style.width]': 'scrollX()',\n class: 'thy-native-table-content'\n },\n imports: [NgTemplateOutlet]\n})\nexport class ThyNativeTableContentComponent {\n readonly tableLayout = input<ThyNativeTableLayout>('auto');\n\n readonly theadTemplate = input<TemplateRef<SafeAny> | null>(null);\n\n readonly contentTemplate = input<TemplateRef<SafeAny> | null>(null);\n\n readonly tfootTemplate = input<TemplateRef<SafeAny> | null>(null);\n\n readonly listOfColWidth = input<ReadonlyArray<string | null>>([]);\n\n readonly scrollX = input<string | null>(null);\n}\n","import { ChangeDetectionStrategy, Component, input, OnInit, TemplateRef, ViewEncapsulation } from '@angular/core';\n\nimport { ThyNativeTableLayout } from '../table.interface';\nimport { ThyNativeTableContentComponent } from './table-content.component';\nimport { SafeAny } from 'ngx-tethys/types';\n\n@Component({\n selector: 'thy-native-table-inner-default',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"thy-native-table-content\">\n <table\n thy-native-table-content\n [tableLayout]=\"tableLayout()\"\n [listOfColWidth]=\"listOfColWidth()\"\n [theadTemplate]=\"theadTemplate()\"\n [contentTemplate]=\"contentTemplate()\"\n [tfootTemplate]=\"tfootTemplate()\"></table>\n </div>\n `,\n host: { class: 'thy-native-table-container' },\n imports: [ThyNativeTableContentComponent]\n})\nexport class ThyNativeTableInnerDefaultComponent implements OnInit {\n readonly tableLayout = input<ThyNativeTableLayout>('auto');\n readonly listOfColWidth = input<ReadonlyArray<string | null>>([]);\n readonly theadTemplate = input<TemplateRef<SafeAny> | null>(null);\n readonly contentTemplate = input<TemplateRef<SafeAny> | null>(null);\n readonly tfootTemplate = input<TemplateRef<SafeAny> | null>(null);\n\n ngOnInit(): void {}\n}\n","import { ChangeDetectionStrategy, Component, input, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { SafeAny } from 'ngx-tethys/types';\n\nimport { ThyNativeTableContentComponent } from './table-content.component';\n\n@Component({\n selector: 'thy-native-table-inner-scroll',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @if (scrollY()) {\n <div #tableHeaderElement class=\"thy-native-table-header\">\n <table\n thy-native-table-content\n [tableLayout]=\"'fixed'\"\n [scrollX]=\"scrollX()\"\n [listOfColWidth]=\"listOfColWidth()\"\n [theadTemplate]=\"theadTemplate()\"></table>\n </div>\n <div #tableBodyElement class=\"thy-native-table-body\" [style.max-height]=\"scrollY()\">\n <table\n thy-native-table-content\n [tableLayout]=\"'fixed'\"\n [scrollX]=\"scrollX()\"\n [listOfColWidth]=\"listOfColWidth()\"\n [contentTemplate]=\"contentTemplate()\"></table>\n </div>\n <div #tableFootElement class=\"thy-native-table-summary\">\n <table\n thy-native-table-content\n [tableLayout]=\"'fixed'\"\n [scrollX]=\"scrollX()\"\n [listOfColWidth]=\"listOfColWidth()\"\n [tfootTemplate]=\"tfootTemplate()\"></table>\n </div>\n } @else {\n <div class=\"thy-native-table-content\" [style.overflow-x]=\"scrollX() ? 'auto' : null\">\n <table\n thy-native-table-content\n [tableLayout]=\"'fixed'\"\n [scrollX]=\"scrollX()\"\n [listOfColWidth]=\"listOfColWidth()\"\n [theadTemplate]=\"theadTemplate()\"\n [contentTemplate]=\"contentTemplate()\"\n [tfootTemplate]=\"tfootTemplate()\"></table>\n </div>\n }\n `,\n host: { class: 'thy-native-table-container' },\n imports: [ThyNativeTableContentComponent]\n})\nexport class ThyNativeTableInnerScrollComponent<T = SafeAny> {\n readonly data = input<readonly T[]>([]);\n readonly scrollX = input<string | null>(null);\n readonly scrollY = input<string | null>(null);\n readonly contentTemplate = input<TemplateRef<SafeAny> | null>(null);\n readonly widthConfig = input<string[]>([]);\n readonly listOfColWidth = input<ReadonlyArray<string | null>>([]);\n readonly theadTemplate = input<TemplateRef<SafeAny> | null>(null);\n readonly tfootTemplate = input<TemplateRef<SafeAny> | null>(null);\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n OnInit,\n TemplateRef,\n computed,\n effect,\n inject,\n input,\n output,\n signal,\n DestroyRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { ThyNativeTableStyleService } from '../services/table-style.service';\nimport { ThyNativeTableLayout, ThyNativeTableScroll, ThyNativeTableSize, ThyNativeTableTheme } from '../table.interface';\nimport { ThyNativeTableInnerDefaultComponent } from './table-inner-default.component';\nimport { ThyNativeTableInnerScrollComponent } from './table-inner-scroll.component';\nimport { UpdateHostClassService } from 'ngx-tethys/core';\nimport { ThyPagination } from 'ngx-tethys/pagination';\nimport { ThyPage, ThyTableEmptyOptions } from 'ngx-tethys/table';\n\n@Component({\n selector: 'thy-native-table',\n exportAs: 'thyNativeTable',\n providers: [ThyNativeTableStyleService, UpdateHostClassService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './table.component.html',\n host: {\n class: 'thy-native-table'\n },\n imports: [ThyNativeTableInnerDefaultComponent, ThyNativeTableInnerScrollComponent, ThyPagination]\n})\nexport class ThyNativeTableComponent<T = any> implements OnInit {\n private elementRef = inject(ElementRef);\n private cdr = inject(ChangeDetectorRef);\n private styleService = inject(ThyNativeTableStyleService);\n private destroyRef = inject(DestroyRef);\n private updateHostClassService = inject(UpdateHostClassService);\n\n readonly thyTableLayout = input<ThyNativeTableLayout>('auto');\n readonly thySize = input<ThyNativeTableSize>('md');\n readonly thyTheme = input<ThyNativeTableTheme>('default');\n\n readonly thyData = input<readonly T[]>([]);\n\n readonly thyShowPagination = input<boolean>(false);\n readonly thyPageIndex = input<number>(1);\n readonly thyPageSize = input<number>(20);\n readonly thyPageTotal = input<number>(0);\n readonly thyShowSizeChanger = input<boolean>(false);\n readonly thyPageSizeOptions = input<number[]>([20, 50, 100]);\n\n readonly thyPageIndexChange = output<number>();\n readonly thyPageSizeChange = output<number>();\n\n readonly thyScroll = input<ThyNativeTableScroll>({ x: null, y: null });\n\n readonly thyEmptyOptions = input<ThyTableEmptyOptions>({});\n\n /** data for ngFor tr */\n public data = computed<readonly T[]>(() => this.thyData());\n\n public theadTemplate = signal<TemplateRef<any> | null>(null);\n public listOfManualColWidth = signal<ReadonlyArray<string | null>>([]);\n\n public pagination = computed<ThyPage | null>(() => {\n if (!this.thyShowPagination()) {\n return null;\n }\n return {\n index: this.thyPageIndex() || this.defaultPagination.index,\n size: this.thyPageSize() || this.defaultPagination.size,\n sizeOptions: this.thyPageSizeOptions() || this.defaultPagination.sizeOptions\n };\n });\n\n defaultPagination = { index: 1, size: 20, sizeOptions: [20, 50, 100] };\n\n scrollX = computed(() => this.thyScroll().x || null);\n scrollY = computed(() => this.thyScroll().y || null);\n\n constructor(private tableElementRef: ElementRef) {\n effect(() => {\n this.updateTableClass();\n this.styleService.setEmptyOptions(this.thyEmptyOptions());\n });\n effect(() => {\n const showEmpty = this.thyData()?.length === 0;\n this.styleService.setShowEmpty(showEmpty);\n });\n effect(() => {\n this.theadTemplate.set(this.styleService.theadTemplate());\n });\n }\n\n ngOnInit(): void {\n this.updateHostClassService.initializeElement(this.tableElementRef.nativeElement);\n const { listOfThWidthConfigPx$ } = this.styleService;\n listOfThWidthConfigPx$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(listOfWidth => {\n this.listOfManualColWidth.set(listOfWidth);\n this.cdr.markForCheck();\n });\n }\n\n private setNativeTableClass() {\n const classNames: string[] = [];\n if (this.thySize()) {\n classNames.push(`native-table-${this.thySize()}`);\n }\n if (this.thyTheme()) {\n classNames.push(`native-table-${this.thyTheme()}`);\n }\n if (this.elementRef.nativeElement) {\n this.updateHostClassService.updateClass(classNames);\n }\n }\n\n public onPageIndexChange(event: number) {\n this.thyPageIndexChange.emit(event);\n }\n\n public onPageSizeChange(event: number) {\n this.thyPageSizeChange.emit(event);\n }\n\n private updateTableClass(): void {\n const size = this.thySize();\n const theme = this.thyTheme();\n if (size || theme) {\n this.styleService.setTableSize(size);\n this.styleService.setTableTheme(theme);\n this.setNativeTableClass();\n }\n }\n}\n","<div #tableMainElement class=\"thy-native-table-wrapper\">\n <ng-template #contentTemplate>\n <ng-content></ng-content>\n </ng-template>\n @if (scrollY() || scrollX()) {\n <thy-native-table-inner-scroll\n [scrollX]=\"scrollX()\"\n [scrollY]=\"scrollY()\"\n [contentTemplate]=\"contentTemplate\"\n [listOfColWidth]=\"listOfManualColWidth()\"\n [theadTemplate]=\"theadTemplate()\"></thy-native-table-inner-scroll>\n } @else {\n <thy-native-table-inner-default\n [tableLayout]=\"thyTableLayout()\"\n [listOfColWidth]=\"listOfManualColWidth()\"\n [theadTemplate]=\"theadTemplate()\"\n [contentTemplate]=\"contentTemplate\"></thy-native-table-inner-default>\n }\n @if (thyShowPagination()) {\n <div class=\"thy-table-pagination\">\n <thy-pagination\n [thyPageIndex]=\"pagination().index\"\n [thyTotal]=\"pagination().total\"\n [thyPageSize]=\"pagination().size\"\n [thyPageSizeOptions]=\"pagination().sizeOptions\"\n [thyShowSizeChanger]=\"thyShowSizeChanger()\"\n (thyPageIndexChange)=\"onPageIndexChange($event)\"\n (thyPageSizeChanged)=\"onPageSizeChange($event)\"></thy-pagination>\n </div>\n }\n</div>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject } from '@angular/core';\n\nimport { ThyNativeTableStyleService } from '../services/table-style.service';\nimport { ThyEmpty } from 'ngx-tethys/empty';\n\n/* eslint-disable @angular-eslint/component-selector */\n@Component({\n selector: 'tbody',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <ng-content></ng-content>\n @if (showEmpty()) {\n <tr class=\"thy-table-empty\">\n <td colspan=\"100%\">\n <thy-empty\n [thyMessage]=\"emptyOptions()?.message\"\n [thyIconName]=\"emptyOptions()?.iconName\"\n [thySize]=\"emptyOptions()?.size\"\n [thyMarginTop]=\"emptyOptions()?.marginTop\"\n [thyTopAuto]=\"emptyOptions()?.topAuto\"></thy-empty>\n </td>\n </tr>\n }\n `,\n host: {\n '[class.thy-native-table-tbody]': 'isInsideNativeTable'\n },\n imports: [ThyEmpty]\n})\nexport class ThyNativeTableBodyComponent {\n private styleService = inject(ThyNativeTableStyleService, { optional: true });\n public isInsideNativeTable = !!this.styleService;\n\n public showEmpty = computed(() => this.styleService?.showEmpty() ?? false);\n public emptyOptions = computed(() => this.styleService?.emptyOptions() ?? null);\n\n constructor() {}\n}\n","import { Directive, effect, ElementRef, inject, input, OnChanges, Renderer2, SimpleChanges } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ThyNativeTableThInfo } from '../services/table-style.service';\n\n/* eslint-disable @angular-eslint/directive-selector */\n@Directive({\n selector: 'th'\n})\nexport class ThyNativeTableThDirective implements ThyNativeTableThInfo {\n private renderer = inject(Renderer2);\n private el: HTMLElement = inject(ElementRef<HTMLElement>).nativeElement;\n\n changes$ = new Subject<void>();\n\n readonly thyWidth = input<string | number | null>(null);\n\n readonly thyColspan = input<string | number | null>(null);\n\n readonly thyColSpan = input<string | number | null>(null);\n\n readonly thyRowspan = input<string | number | null>(null);\n\n readonly thyRowSpan = input<string | number | null>(null);\n\n get colspan(): number | string | null {\n return this.thyColspan() || this.thyColSpan() || null;\n }\n\n get colSpan(): number | string | null {\n return this.thyColspan() || this.thyColSpan() || null;\n }\n\n constructor() {\n effect(() => {\n if (this.thyColspan() || this.thyColSpan()) {\n const col = this.colspan;\n if (col !== null && col !== undefined) {\n this.renderer.setAttribute(this.el, 'colspan', `${col}`);\n } else {\n this.renderer.removeAttribute(this.el, 'colspan');\n }\n }\n\n if (this.thyRowspan() || this.thyRowSpan()) {\n const row = this.thyRowspan() || this.thyRowSpan() || null;\n if (row !== null && row !== undefined) {\n this.renderer.setAttribute(this.el, 'rowspan', `${row}`);\n } else {\n this.renderer.removeAttribute(this.el, 'rowspan');\n }\n }\n\n if (this.thyWidth() || this.thyColspan() || this.thyColSpan()) {\n this.changes$.next();\n }\n });\n }\n}\n","import { AfterContentInit, ContentChildren, DestroyRef, Directive, QueryList, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Observable, ReplaySubject, combineLatest, merge } from 'rxjs';\nimport { map, mergeMap, startWith, switchMap } from 'rxjs/operators';\n\nimport { ThyNativeTableThDirective } from '../cell/th.directive';\nimport { ThyNativeTableStyleService } from '../services/table-style.service';\n\n/* eslint-disable @angular-eslint/directive-selector */\n@Directive({\n selector: 'tr:not([thyNativeTableMeasureRow]):not([thyNativeTableFixedRow])',\n host: {\n '[class.thy-native-table-row]': 'isInsideNativeTable'\n }\n})\nexport class ThyNativeTableTrDirective implements AfterContentInit {\n private destroyRef = inject(DestroyRef);\n private styleService = inject(ThyNativeTableStyleService, { optional: true });\n\n @ContentChildren(ThyNativeTableThDirective) listOfThDirective!: QueryList<ThyNativeTableThDirective>;\n\n private listOfColumns$ = new ReplaySubject<ThyNativeTableThDirective[]>(1);\n\n listOfColumnsChanges$: Observable<ThyNativeTableThDirective[]> = this.listOfColumns$.pipe(\n switchMap(list => merge(this.listOfColumns$, ...list.map(c => c.changes$)).pipe(mergeMap(() => this.listOfColumns$))),\n takeUntilDestroyed(this.destroyRef)\n );\n\n isInsideNativeTable = !!this.styleService;\n\n ngAfterContentInit(): void {\n if (this.styleService) {\n this.listOfThDirective.changes\n .pipe(startWith(this.listOfThDirective), takeUntilDestroyed(this.destroyRef))\n .subscribe(thDirectives => {\n const thList = thDirectives.toArray();\n this.listOfColumns$.next(thList);\n });\n }\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n inject,\n DestroyRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { EMPTY, Observable, merge, of } from 'rxjs';\nimport { delay, map, mergeMap, startWith, switchMap } from 'rxjs/operators';\n\nimport { ThyNativeTableStyleService } from '../services/table-style.service';\nimport { ThyNativeTableTrDirective } from '../row/tr.directive';\n\n/* eslint-disable @angular-eslint/component-selector */\n@Component({\n selector: 'thead:not(.thy-native-table-thead)',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <ng-template #contentTemplate>\n <ng-content></ng-content>\n </ng-template>\n @if (!isInsideNativeTable) {\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template>\n }\n `,\n imports: [NgTemplateOutlet]\n})\nexport class ThyNativeTableHeaderComponent implements AfterContentInit, AfterViewInit, OnInit {\n private styleService = inject(ThyNativeTableStyleService, { optional: true });\n private destroyRef = inject(DestroyRef);\n private el: HTMLElement = inject(ElementRef<HTMLElement>).nativeElement;\n private renderer = inject(Renderer2);\n\n public isInsideNativeTable = !!this.styleService;\n\n @ViewChild('contentTemplate', { static: true }) templateRef!: TemplateRef<any>;\n\n @ContentChildren(ThyNativeTableTrDirective, { descendants: true }) listOfTrDirective!: QueryList<ThyNativeTableTrDirective>;\n\n ngOnInit(): void {\n if (this.styleService) {\n this.styleService.setTheadTemplate(this.templateRef);\n }\n }\n\n ngAfterContentInit(): void {\n if (this.styleService) {\n const firstTableRow$ = this.listOfTrDirective.changes.pipe(\n startWith(this.listOfTrDirective),\n map(item => item && item.first),\n takeUntilDestroyed(this.destroyRef)\n ) as Observable<ThyNativeTableTrDirective>;\n\n const listOfColumnsChanges$ = firstTableRow$.pipe(\n switchMap(firstTableRow => {\n if (firstTableRow) {\n return firstTableRow.listOfColumnsChanges$;\n }\n return EMPTY;\n })\n );\n\n listOfColumnsChanges$.subscribe(data => {\n this.styleService!.setListOfTh(data);\n });\n }\n }\n\n ngAfterViewInit(): void {\n if (this.styleService) {\n this.renderer.removeChild(this.renderer.parentNode(this.el), this.el);\n }\n }\n}\n","import { Directive, inject } from '@angular/core';\n\nimport { ThyNativeTableStyleService } from '../services/table-style.service';\n\n/* eslint-disable @angular-eslint/directive-selector */\n@Directive({\n selector: 'th, td',\n host: {\n '[class.thy-native-table-cell]': 'isInsideTable'\n }\n})\nexport class ThyNativeTableCellDirective {\n isInsideTable = !!inject(ThyNativeTableStyleService, { optional: true });\n}\n","import { ChangeDetectionStrategy, Component, booleanAttribute, inject, input, output, OnInit, DestroyRef } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { ThyCheckbox } from 'ngx-tethys/checkbox';\n\n/* eslint-disable @angular-eslint/component-selector */\n@Component({\n selector: 'td[thyCellChecked],td[thyCellCheckbox]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <label\n thyCheckbox\n [ngModel]=\"thyCellChecked()\"\n [disabled]=\"thyDisabled()\"\n [thyIndeterminate]=\"thyIndeterminate()\"\n (ngModelChange)=\"onCheckedChange($event)\"></label>\n <ng-content></ng-content>\n `,\n host: {\n '[class.thy-native-table-selection-column]': 'thyCellCheckbox()'\n },\n imports: [FormsModule, ThyCheckbox]\n})\nexport class ThyNativeTableTdSelectionComponent<T> implements OnInit {\n readonly thyDisabled = input(false, { transform: booleanAttribute });\n readonly thyCellCheckbox = input(false, { transform: booleanAttribute });\n readonly thyCellChecked = input(false, { transform: booleanAttribute });\n readonly thyIndeterminate = input(false, { transform: booleanAttribute });\n\n readonly thyCheckedChange = output<boolean>();\n\n ngOnInit(): void {}\n\n onCheckedChange(checked: boolean): void {\n this.thyCheckedChange.emit(checked);\n }\n}\n","import { ChangeDetectionStrategy, Component, booleanAttribute, inject, input, output, OnInit } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { ThyCheckbox } from 'ngx-tethys/checkbox';\n\n/* eslint-disable @angular-eslint/component-selector */\n@Component({\n selector: 'th[thyHeaderCellChecked],th[thyHeaderCellCheckbox]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <label\n thyCheckbox\n [ngModel]=\"thyHeaderCellChecked()\"\n [thyDisabled]=\"thyDisabled()\"\n [thyIndeterminate]=\"thyIndeterminate()\"\n (ngModelChange)=\"onCheckedChange($event)\"></label>\n `,\n host: {\n '[class.thy-native-table-selection-column]': 'thyHeaderCellCheckbox()'\n },\n imports: [FormsModule, ThyCheckbox]\n})\nexport class ThyNativeTableThSelectionComponent<T> implements OnInit {\n readonly thyHeaderCellCheckbox = input(true, { transform: booleanAttribute });\n\n readonly thyDisabled = input(false, { transform: booleanAttribute });\n\n readonly thyHeaderCellChecked = input(false, { transform: booleanAttribute });\n\n readonly thyIndeterminate = input(false, { transform: booleanAttribute });\n\n readonly thyCheckedChange = output<boolean>();\n\n constructor() {}\n\n ngOnInit(): void {}\n\n onCheckedChange(checked: boolean): void {\n this.thyCheckedChange.emit(checked);\n }\n}\n","import { ChangeDetectionStrategy, Component, TemplateRef, booleanAttribute, input, output, OnInit, signal, computed } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\n\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyNativeTableSortOrder } from '../table.interface';\n\n/* eslint-disable @angular-eslint/component-selector */\n@Component({\n selector: 'th[thyHeaderCellSortable]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <ng-content></ng-content>\n <span class=\"thy-native-table-column-sorter\" [class.thy-native-table-column-sorter-full]=\"isDown() && isUp()\">\n <span class=\"thy-native-table-column-sorter-inner\">\n @if (sortTriggerTemplate()) {\n <ng-template [ngTemplateOutlet]=\"sortTriggerTemplate()!\"></ng-template>\n } @else {\n @if (isUp()) {\n <thy-icon\n thyIconName=\"angle-up\"\n class=\"thy-native-table-column-sorter-up\"\n [class.active]=\"currentSortOrder() === 'asc'\" />\n }\n @if (isDown()) {\n <thy-icon\n thyIconName=\"angle-down\"\n class=\"thy-native-table-column-sorter-down\"\n [class.active]=\"currentSortOrder() === 'desc'\" />\n }\n }\n </span>\n </span>\n `,\n host: {\n '[class.thy-native-table-column-has-sorters]': 'thyHeaderCellSortable()',\n '[class.thy-native-table-column-sort]': 'currentSortOrder() === \"desc\" || currentSortOrder() === \"asc\"'\n },\n imports: [NgTemplateOutlet, ThyIcon]\n})\nexport class ThyNativeTableThSortComponent implements OnInit {\n readonly thyHeaderCellSortable = input(false, { transform: booleanAttribute });\n\n readonly thySortOrder = input<ThyNativeTableSortOrder | null>(null);\n\n readonly thySortDirections = input<ThyNativeTableSortOrder[]>(['asc', 'desc']);\n\n readonly sortTriggerTemplate = input<TemplateRef<any> | null>(null);\n\n readonly thySortOrderChange = output<string | null>();\n\n currentSortOrder = signal<ThyNativeTableSortOrder | null>(null);\n\n isUp = computed(() => {\n const directions = this.thySortDirections();\n return directions.indexOf('asc') !== -1;\n });\n\n isDown = computed(() => {\n const directions = this.thySortDirections();\n return directions.indexOf('desc') !== -1;\n });\n\n setSortOrder(order: ThyNativeTableSortOrder): void {\n this.currentSortOrder.set(order);\n }\n\n ngOnInit(): void {\n if (this.thySortOrder() !== null) {\n this.currentSortOrder.set(this.thySortOrder()!);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { distinctUntilChanged, map, shareReplay } from 'rxjs/operators';\n\n@Injectable()\nexport class ThyNativeTableEditEventDispatcher {\n private editing = new Subject<HTMLElement | null>();\n private currentEditingCell: HTMLElement | null = null;\n\n readonly editing$ = this.editing.asObservable().pipe(distinctUntilChanged(), shareReplay(1));\n\n editingCell(element: HTMLElement): Observable<boolean> {\n return this.editing$.pipe(\n map(cell => cell === element),\n distinctUntilChanged()\n );\n }\n\n startEditing(cell: HTMLElement): void {\n this.currentEditingCell = cell;\n this.editing.next(cell);\n }\n\n stopEditing(): void {\n this.currentEditingCell = null;\n this.editing.next(null);\n }\n\n getCurrentEditingCell(): HTMLElement | null {\n return this.currentEditingCell;\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { ThyNativeTableEditEventDispatcher } from './edit-event-dispatcher.service';\n\n@Injectable()\nexport class ThyNativeTableEditRef {\n private dispatcher = inject(ThyNativeTableEditEventDispatcher);\n private afterClosedSubject = new Subject<void>();\n\n readonly afterClosed: Observable<void> = this.afterClosedSubject.asObservable();\n\n close(): void {\n this.dispatcher.stopEditing();\n this.afterClosedSubject.next();\n }\n}\n","export const THY_NATIVE_TABLE_CELL_SELECTOR = '.thy-native-table-cell-edit';\n\nexport const THY_NATIVE_TABLE_EDIT_PANE_SELECTOR = '.thy-native-table-popover-edit';\n\nexport const THY_NATIVE_TABLE_EDIT_OPEN_SELECTOR = '[thyEditOpen]';\n\nexport enum ThyNativeTableEditTrigger {\n CLICK = 'click',\n DBLCLICK = 'dblclick'\n}\n","import { AfterViewInit, DestroyRef, Directive, ElementRef, NgZone, inject, input } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport {\n THY_NATIVE_TABLE_CELL_SELECTOR,\n THY_NATIVE_TABLE_EDIT_OPEN_SELECTOR,\n THY_NATIVE_TABLE_EDIT_PANE_SELECTOR,\n ThyNativeTableEditTrigger\n} from '../constant';\nimport { ThyNativeTableEditEventDispatcher } from './edit-event-dispatcher.service';\n\n@Directive({\n selector: 'thy-native-table[thyEditable]',\n providers: [ThyNativeTableEditEventDispatcher]\n})\nexport class ThyNativeTableEditableDirective implements AfterViewInit {\n private elementRef = inject(ElementRef<HTMLElement>);\n private ngZone = inject(NgZone);\n private destroyRef = inject(DestroyRef);\n private dispatcher = inject(ThyNativeTableEditEventDispatcher);\n\n thyEditTrigger = input<ThyNativeTableEditTrigger>(ThyNativeTableEditTrigger.CLICK);\n\n ngAfterViewInit(): void {\n this.listenForEditEvents();\n }\n\n private listenForEditEvents(): void {\n const element = this.elementRef.nativeElement;\n this.ngZone.runOutsideAngular(() => {\n const trigger = this.thyEditTrigger();\n\n if (trigger === 'click') {\n fromEvent<MouseEvent>(element, 'click')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(event => this.handleClickEdit(event));\n } else if (trigger === 'dblclick') {\n fromEvent<MouseEvent>(element, 'dblclick')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(event => this.handleClickEdit(event));\n }\n\n fromEvent<KeyboardEvent>(document, 'keydown')\n .pipe(\n filter(event => event.key === 'Enter'),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(event => this.handelEnterEvent(event));\n\n fromEvent<KeyboardEvent>(element, 'keydown')\n .pipe(\n filter(event => event.key === 'Escape'),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(() => {\n this.ngZone.run(() => this.dispatcher.stopEditing());\n });\n\n fromEvent<MouseEvent>(document, 'click')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(event => this.handleClickOutside(event));\n });\n }\n\n private handleClickEdit(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n\n if (target.closest(THY_NATIVE_TABLE_EDIT_OPEN_SELECTOR)) {\n return;\n }\n\n const cell = target.closest(THY_NATIVE_TABLE_CELL_SELECTOR) as HTMLElement;\n if (cell) {\n this.ngZone.run(() => this.dispatcher.startEditing(cell));\n }\n }\n\n private handelEnterEvent(event: KeyboardEvent): void {\n const target = event.target as HTMLElement;\n\n if (target.closest(THY_NATIVE_TABLE_EDIT_PANE_SELECTOR)) {\n if (this.dispatcher.getCurrentEditingCell()) {\n event.preventDefault();\n this.ngZone.run(() => this.dispatcher.stopEditing());\n }\n }\n }\n\n private handleClickOutside(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n const element = this.elementRef.nativeElement;\n\n if (!element.contains(target) && !target.closest(THY_NATIVE_TABLE_EDIT_PANE_SELECTOR)) {\n this.ngZone.run(() => this.dispatcher.stopEditing());\n }\n }\n}\n","import {\n AfterViewInit,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n Injector,\n Input,\n OnDestroy,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { ThyPopover, ThyPopoverRef } from 'ngx-tethys/popover';\n\nimport { ThyNativeTableEditEventDispatcher } from './edit-event-dispatcher.service';\nimport { ThyNativeTableEditRef } from './edit-ref';\n\n@Directive({\n selector: 'td[thyCellPopoverEdit]',\n\n providers: [ThyNativeTableEditRef],\n host: {\n class: 'thy-native-table-cell-edit'\n }\n})\nexport class ThyNativeTableTdPopoverEditDirective implements AfterViewInit, OnDestroy {\n private elementRef = inject(ElementRef<HTMLElement>);\n private viewContainerRef = inject(ViewContainerRef);\n private popover = inject(ThyPopover);\n private dispatcher = inject(ThyNativeTableEditEventDispatcher);\n private destroyRef = inject(DestroyRef);\n\n @Input('thyCellPopoverEdit') editTemplate!: TemplateRef<any>;\n\n private popoverRef?: ThyPopoverRef<any>;\n private focusoutUnsubscribe?: () => void;\n\n ngAfterViewInit(): void {\n this.dispatcher\n .editingCell(this.elementRef.nativeElement)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(isEditing => {\n if (isEditing) {\n this.openPopover();\n } else {\n this.closePopover();\n }\n });\n }\n\n private openPopover(): void {\n if (this.popoverRef) {\n return;\n }\n\n if (!this.editTemplate) {\n return;\n }\n\n const tdElement = this.elementRef.nativeElement;\n const rect = tdElement.getBoundingClientRect();\n\n this.popoverRef = this.popover.open(this.editTemplate, {\n origin: tdElement,\n viewContainerRef: this.viewContainerRef,\n placement: 'bottom',\n offset: -rect.height,\n hasBackdrop: false,\n panelClass: 'thy-native-table-popover-edit',\n originActiveClass: 'thy-native-table-cell-editing',\n animationDisabled: true\n });\n\n this.popoverRef?.afterOpened().subscribe(() => {\n const popoverElement = document.querySelector('.thy-native-table-popover-edit') as HTMLElement;\n if (popoverElement) {\n popoverElement.style.width = `${rect.width}px`;\n popoverElement.style.minWidth = `${rect.width}px`;\n popoverElement.style.height = `${rect.height}px`;\n popoverElement.style.minHeight = `${rect.height}px`;\n this.listenFocusout(popoverElement);\n }\n });\n\n this.popoverRef?.afterClosed().subscribe(() => {\n this.popoverRef = undefined;\n this.focusoutUnsubscribe?.();\n });\n }\n\n private listenFocusout(popoverElement: HTMLElement): void {\n const handler = () => {\n // 延迟 100ms 检查焦点是否还在 popover 内\n // 避免在 popover 内部元素之间切换焦点时误关闭\n setTimeout(() => {\n if (document.activeElement && !popoverElement.contains(document.activeElement)) {\n this.dispatcher.stopEditing();\n }\n }, 100);\n };\n\n popoverElement.addEventListener('focusout', handler);\n this.focusoutUnsubscribe = () => {\n popoverElement.removeEventListener('focusout', handler);\n };\n }\n\n private closePopover(): void {\n this.popoverRef?.close();\n }\n\n ngOnDestroy(): void {\n this.closePopover();\n }\n}\n","import { DestroyRef, Directive, ElementRef, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent } from 'rxjs';\n\nimport { THY_NATIVE_TABLE_CELL_SELECTOR } from '../constant';\nimport { ThyNativeTableEditEventDispatcher } from './edit-event-dispatcher.service';\n\n@Directive({\n selector: '[thyEditOpen]'\n})\nexport class ThyNativeTableTdEditOpenDirective {\n readonly elementRef = inject(ElementRef<HTMLElement>);\n private dispatcher = inject(ThyNativeTableEditEventDispatcher);\n private destroyRef = inject(DestroyRef);\n\n constructor() {\n fromEvent<Event>(this.elementRef.nativeElement, 'click')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event: Event) => {\n event.stopPropagation();\n const cell = this.elementRef.nativeElement.closest(THY_NATIVE_TABLE_CELL_SELECTOR) as HTMLElement;\n if (cell) {\n this.dispatcher.startEditing(cell);\n }\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent } from 'rxjs';\n\nimport { ThyNativeTableEditRef } from './edit-ref';\n\n@Directive({\n selector: '[thyEditClose]'\n})\nexport class ThyNativeTableTdEditCloseDirective {\n private editRef = inject(ThyNativeTableEditRef);\n private elementRef = inject(ElementRef<HTMLElement>);\n private destroyRef = inject(DestroyRef);\n\n constructor() {\n fromEvent(this.elementRef.nativeElement, 'click')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.editRef.close();\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyNativeTableComponent } from './table/table.component';\nimport { ThyNativeTableInnerDefaultComponent } from './table/table-inner-default.component';\nimport { ThyNativeTableInnerScrollComponent } from './table/table-inner-scroll.component';\nimport { ThyNativeTableBodyComponent } from './table/tbody.component';\nimport { ThyNativeTableHeaderComponent } from './table/thead.component';\nimport { ThyNativeTableTrDirective } from './row/tr.directive';\nimport { ThyNativeTableCellDirective } from './cell/cell.directive';\nimport { ThyNativeTableThDirective } from './cell/th.directive';\nimport { ThyNativeTableTdSelectionComponent } from './cell/td-selection.component';\nimport { ThyNativeTableThSelectionComponent } from './cell/th-selection.component';\nimport { ThyNativeTableThSortComponent } from './cell/th-sort.component';\nimport {\n ThyNativeTableEditableDirective,\n ThyNativeTableTdEditCloseDirective,\n ThyNativeTableTdEditOpenDirective,\n ThyNativeTableTdPopoverEditDirective\n} from './table-editable';\n\nconst EDIT_COMPONENTS = [\n ThyNativeTableEditableDirective,\n ThyNativeTableTdEditCloseDirective,\n ThyNativeTableTdEditOpenDirective,\n ThyNativeTableTdPopoverEditDirective\n];\n@NgModule({\n imports: [\n CommonModule,\n ThyNativeTableComponent,\n ThyNativeTableInnerScrollComponent,\n ThyNativeTableInnerDefaultComponent,\n ThyNativeTableBodyComponent,\n ThyNativeTableHeaderComponent,\n ThyNativeTableTrDirective,\n ThyNativeTableCellDirective,\n ThyNativeTableThDirective,\n ThyNativeTableTdSelectionComponent,\n ThyNativeTableThSelectionComponent,\n ThyNativeTableThSortComponent,\n ...EDIT_COMPONENTS\n ],\n exports: [\n ThyNativeTableComponent,\n ThyNativeTableInnerScrollComponent,\n ThyNativeTableInnerDefaultComponent,\n ThyNativeTableBodyComponent,\n ThyNativeTableHeaderComponent,\n ThyNativeTableTrDirective,\n ThyNativeTableCellDirective,\n ThyNativeTableThDirective,\n ThyNativeTableTdSelectionComponent,\n ThyNativeTableThSelectionComponent,\n ThyNativeTableThSortComponent,\n ...EDIT_COMPONENTS\n ]\n})\nexport class ThyNativeTableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -355,7 +355,7 @@ class ThyPagination {
355
355
  this.thyPageSizeChanged.emit(event);
356
356
  }
357
357
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyPagination, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
358
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyPagination, isStandalone: true, selector: "thy-pagination", inputs: { thyPageIndex: { classPropertyName: "thyPageIndex", publicName: "thyPageIndex", isSignal: true, isRequired: false, transformFunction: null }, thyPageSize: { classPropertyName: "thyPageSize", publicName: "thyPageSize", isSignal: true, isRequired: false, transformFunction: null }, thyTotal: { classPropertyName: "thyTotal", publicName: "thyTotal", isSignal: true, isRequired: false, transformFunction: null }, thyCustomPages: { classPropertyName: "thyCustomPages", publicName: "thyCustomPages", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: true, isRequired: false, transformFunction: null }, thyShowQuickJumper: { classPropertyName: "thyShowQuickJumper", publicName: "thyShowQuickJumper", isSignal: true, isRequired: false, transformFunction: null }, thyShowTotalPageCount: { classPropertyName: "thyShowTotalPageCount", publicName: "thyShowTotalPageCount", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyMaxCount: { classPropertyName: "thyMaxCount", publicName: "thyMaxCount", isSignal: true, isRequired: false, transformFunction: null }, thyMarginalCount: { classPropertyName: "thyMarginalCount", publicName: "thyMarginalCount", isSignal: true, isRequired: false, transformFunction: null }, thyRangeCount: { classPropertyName: "thyRangeCount", publicName: "thyRangeCount", isSignal: true, isRequired: false, transformFunction: null }, thyShowSizeChanger: { classPropertyName: "thyShowSizeChanger", publicName: "thyShowSizeChanger", isSignal: true, isRequired: false, transformFunction: null }, thyPageSizeOptions: { classPropertyName: "thyPageSizeOptions", publicName: "thyPageSizeOptions", isSignal: true, isRequired: false, transformFunction: null }, thyHideOnSinglePage: { classPropertyName: "thyHideOnSinglePage", publicName: "thyHideOnSinglePage", isSignal: true, isRequired: false, transformFunction: null }, thyUnit: { classPropertyName: "thyUnit", publicName: "thyUnit", isSignal: true, isRequired: false, transformFunction: null }, thyShowTotal: { classPropertyName: "thyShowTotal", publicName: "thyShowTotal", isSignal: true, isRequired: false, transformFunction: null }, selectedPageSize: { classPropertyName: "selectedPageSize", publicName: "selectedPageSize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyPageIndexChange: "thyPageIndexChange", thyPageChanged: "thyPageChanged", thyPageSizeChanged: "thyPageSizeChanged", selectedPageSize: "selectedPageSizeChange" }, host: { properties: { "class.thy-pagination-sm": "thySize() === \"sm\"", "class.thy-pagination-md": "thySize() === \"md\"", "class.thy-pagination-lg": "thySize() === \"lg\"", "class.thy-pagination-has-total": "thyShowTotal()" }, classAttribute: "thy-pagination" }, ngImport: i0, template: "@let locale = paginationLocale();\n@let hideOnSinglePage = thyHideOnSinglePage();\n@let pageIndex = currentPageIndex();\n@let pageSize = currentPageSize();\n@let total = thyTotal();\n@let range = computedRange();\n@let config = computedConfig();\n@let pages = computedPages();\n@let pageCount = computedPageCount();\n@let disabled = thyDisabled();\n@let size = thySize();\n@let showTotal = thyShowTotal();\n\n@if ((hideOnSinglePage && total! > pageSize!) || !hideOnSinglePage) {\n @if (showTotal) {\n <div\n class=\"thy-pagination-total\"\n [class.thy-pagination-total-sm]=\"size === 'sm'\"\n [class.thy-pagination-total-md]=\"size === 'md'\"\n [class.thy-pagination-total-lg]=\"size === 'lg'\">\n @if (!isTemplateRef(showTotal)) {\n @if (total > 0) {\n <div class=\"mr-3\">\n {{ locale.order }}<span class=\"number\"> {{ range.from }}-{{ range.to }} </span>{{ config.unit }}\n </div>\n <div>\n {{ locale.total }}<span class=\"number\"> {{ total }} </span>{{ config.unit }}\n </div>\n }\n } @else {\n <ng-template [ngTemplateOutlet]=\"showTotal\" [ngTemplateOutletContext]=\"{ $implicit: total, range: range }\"></ng-template>\n }\n </div>\n }\n <div class=\"thy-pagination-content\">\n @if (config.showSizeChanger) {\n <div class=\"thy-pagination-size\">\n <thy-select [(ngModel)]=\"selectedPageSize\" [thySize]=\"size\" [thyDisabled]=\"disabled\" (ngModelChange)=\"onPageSizeChange($event)\">\n @for (option of config.pageSizeOptions; track option) {\n <thy-option\n class=\"page-size-option\"\n [thyValue]=\"option\"\n [thyLabelText]=\"option + (config.unit | paginationPerPageFormat: allLocale())\"></thy-option>\n }\n </thy-select>\n </div>\n }\n <ul class=\"thy-pagination-pages\">\n @if (config.boundaryLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === firstIndex\" (click)=\"selectPage(firstIndex)\">\n <a class=\"thy-page-link thy-page-link-first\" href=\"javascript:;\">\n @if (config.firstText) {\n {{ config.firstText }}\n }\n @if (config.firstIcon) {\n <thy-icon [thyIconName]=\"config.firstIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @if (config.directionLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === firstIndex\" (click)=\"selectPage(pageIndex - 1)\">\n <a class=\"thy-page-link page-link-pre\" href=\"javascript:;\">\n @if (config.previousText) {\n {{ config.previousText }}\n }\n @if (config.previousIcon) {\n <thy-icon [thyIconName]=\"config.previousIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @for (page of pages; track page.index) {\n <li class=\"thy-page-item thy-page-number\" [class.active]=\"page.active\" [class.disabled]=\"disabled\" (click)=\"selectPage(page.index)\">\n <a class=\"thy-page-link\" href=\"javascript:;\">{{ page.text }}</a>\n </li>\n }\n @if (config.directionLinks) {\n <li class=\"thy-page-item page-item-next\" [class.disabled]=\"disabled || pageIndex === pageCount\" (click)=\"selectPage(pageIndex + 1)\">\n <a class=\"thy-page-link thy-page-link-next\" href=\"javascript:;\">\n @if (config.nextText) {\n {{ config.nextText }}\n }\n @if (config.nextIcon) {\n <thy-icon [thyIconName]=\"config.nextIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @if (config.boundaryLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === pageCount\" (click)=\"selectPage(pageCount)\">\n <a class=\"thy-page-link thy-page-link-last\" href=\"javascript:;\">\n @if (config.lastText) {\n {{ config.lastText }}\n }\n @if (config.lastIcon) {\n <thy-icon [thyIconName]=\"config.lastIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n </ul>\n @if (config.showTotalPageCount && config.totalPagesFormat) {\n <div class=\"thy-pagination-count\" [innerHTML]=\"pageCount | paginationTotalPagesFormat: config.totalPagesFormat\"></div>\n }\n @if (config.showQuickJumper) {\n <div class=\"thy-pagination-jumper\">\n <div class=\"thy-pagination-jumper-input\">\n {{ locale.jumpTo }}\n <input type=\"text\" [disabled]=\"disabled\" #jumperInput (thyEnter)=\"jumpPage(jumperInput)\" (blur)=\"jumpPage(jumperInput)\" />\n {{ locale.page }}\n </div>\n </div>\n }\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThySelect, selector: "thy-select,thy-custom-select", inputs: ["thyDropdownWidthMode", "thyItemSize", "thyShowSearch", "thyPlaceHolder", "thyServerSearch", "thyLoadState", "thyAutoActiveFirstItem", "thyMode", "thySize", "thyEmptyStateText", "thyEmptySearchMessageText", "thyEnableScrollLoad", "thyAllowClear", "thyDisabled", "thySortComparator", "thyFooterTemplate", "thyPlacement", "thyOrigin", "thyFooterClass", "thyAutoExpand", "thyHasBackdrop", "thyMaxTagCount", "thyBorderless", "thyOptions", "thyPreset"], outputs: ["thyOnSearch", "thyOnScrollToBottom", "thyOnExpandStatusChange"], exportAs: ["thySelect"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ThyOption, selector: "thy-option", inputs: ["thyValue", "thyRawValue", "thyLabelText", "thyShowOptionCustom", "thySearchKey", "thyDisabled"], outputs: ["selectionChange"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }, { kind: "pipe", type: PaginationTotalCountFormat, name: "paginationTotalPagesFormat" }, { kind: "pipe", type: PaginationPerPageFormat, name: "paginationPerPageFormat" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
358
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyPagination, isStandalone: true, selector: "thy-pagination", inputs: { thyPageIndex: { classPropertyName: "thyPageIndex", publicName: "thyPageIndex", isSignal: true, isRequired: false, transformFunction: null }, thyPageSize: { classPropertyName: "thyPageSize", publicName: "thyPageSize", isSignal: true, isRequired: false, transformFunction: null }, thyTotal: { classPropertyName: "thyTotal", publicName: "thyTotal", isSignal: true, isRequired: false, transformFunction: null }, thyCustomPages: { classPropertyName: "thyCustomPages", publicName: "thyCustomPages", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: true, isRequired: false, transformFunction: null }, thyShowQuickJumper: { classPropertyName: "thyShowQuickJumper", publicName: "thyShowQuickJumper", isSignal: true, isRequired: false, transformFunction: null }, thyShowTotalPageCount: { classPropertyName: "thyShowTotalPageCount", publicName: "thyShowTotalPageCount", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyMaxCount: { classPropertyName: "thyMaxCount", publicName: "thyMaxCount", isSignal: true, isRequired: false, transformFunction: null }, thyMarginalCount: { classPropertyName: "thyMarginalCount", publicName: "thyMarginalCount", isSignal: true, isRequired: false, transformFunction: null }, thyRangeCount: { classPropertyName: "thyRangeCount", publicName: "thyRangeCount", isSignal: true, isRequired: false, transformFunction: null }, thyShowSizeChanger: { classPropertyName: "thyShowSizeChanger", publicName: "thyShowSizeChanger", isSignal: true, isRequired: false, transformFunction: null }, thyPageSizeOptions: { classPropertyName: "thyPageSizeOptions", publicName: "thyPageSizeOptions", isSignal: true, isRequired: false, transformFunction: null }, thyHideOnSinglePage: { classPropertyName: "thyHideOnSinglePage", publicName: "thyHideOnSinglePage", isSignal: true, isRequired: false, transformFunction: null }, thyUnit: { classPropertyName: "thyUnit", publicName: "thyUnit", isSignal: true, isRequired: false, transformFunction: null }, thyShowTotal: { classPropertyName: "thyShowTotal", publicName: "thyShowTotal", isSignal: true, isRequired: false, transformFunction: null }, selectedPageSize: { classPropertyName: "selectedPageSize", publicName: "selectedPageSize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyPageIndexChange: "thyPageIndexChange", thyPageChanged: "thyPageChanged", thyPageSizeChanged: "thyPageSizeChanged", selectedPageSize: "selectedPageSizeChange" }, host: { properties: { "class.thy-pagination-sm": "thySize() === \"sm\"", "class.thy-pagination-md": "thySize() === \"md\"", "class.thy-pagination-lg": "thySize() === \"lg\"", "class.thy-pagination-has-total": "thyShowTotal()" }, classAttribute: "thy-pagination" }, ngImport: i0, template: "@let locale = paginationLocale();\n@let hideOnSinglePage = thyHideOnSinglePage();\n@let pageIndex = currentPageIndex();\n@let pageSize = currentPageSize();\n@let total = thyTotal();\n@let range = computedRange();\n@let config = computedConfig();\n@let pages = computedPages();\n@let pageCount = computedPageCount();\n@let disabled = thyDisabled();\n@let size = thySize();\n@let showTotal = thyShowTotal();\n\n@if ((hideOnSinglePage && total! > pageSize!) || !hideOnSinglePage) {\n @if (showTotal) {\n <div\n class=\"thy-pagination-total\"\n [class.thy-pagination-total-sm]=\"size === 'sm'\"\n [class.thy-pagination-total-md]=\"size === 'md'\"\n [class.thy-pagination-total-lg]=\"size === 'lg'\">\n @if (!isTemplateRef(showTotal)) {\n @if (total > 0) {\n <div class=\"mr-3\">\n {{ locale.order }}<span class=\"number\"> {{ range.from }}-{{ range.to }} </span>{{ config.unit }}\n </div>\n <div>\n {{ locale.total }}<span class=\"number\"> {{ total }} </span>{{ config.unit }}\n </div>\n }\n } @else {\n <ng-template [ngTemplateOutlet]=\"showTotal\" [ngTemplateOutletContext]=\"{ $implicit: total, range: range }\"></ng-template>\n }\n </div>\n }\n <div class=\"thy-pagination-content\">\n @if (config.showSizeChanger) {\n <div class=\"thy-pagination-size\">\n <thy-select [(ngModel)]=\"selectedPageSize\" [thySize]=\"size\" [thyDisabled]=\"disabled\" (ngModelChange)=\"onPageSizeChange($event)\">\n @for (option of config.pageSizeOptions; track option) {\n <thy-option\n class=\"page-size-option\"\n [thyValue]=\"option\"\n [thyLabelText]=\"option + (config.unit | paginationPerPageFormat: allLocale())\"></thy-option>\n }\n </thy-select>\n </div>\n }\n <ul class=\"thy-pagination-pages\">\n @if (config.boundaryLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === firstIndex\" (click)=\"selectPage(firstIndex)\">\n <a class=\"thy-page-link thy-page-link-first\" href=\"javascript:;\">\n @if (config.firstText) {\n {{ config.firstText }}\n }\n @if (config.firstIcon) {\n <thy-icon [thyIconName]=\"config.firstIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @if (config.directionLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === firstIndex\" (click)=\"selectPage(pageIndex - 1)\">\n <a class=\"thy-page-link page-link-pre\" href=\"javascript:;\">\n @if (config.previousText) {\n {{ config.previousText }}\n }\n @if (config.previousIcon) {\n <thy-icon [thyIconName]=\"config.previousIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @for (page of pages; track page.index) {\n <li class=\"thy-page-item thy-page-number\" [class.active]=\"page.active\" [class.disabled]=\"disabled\" (click)=\"selectPage(page.index)\">\n <a class=\"thy-page-link\" href=\"javascript:;\">{{ page.text }}</a>\n </li>\n }\n @if (config.directionLinks) {\n <li class=\"thy-page-item page-item-next\" [class.disabled]=\"disabled || pageIndex === pageCount\" (click)=\"selectPage(pageIndex + 1)\">\n <a class=\"thy-page-link thy-page-link-next\" href=\"javascript:;\">\n @if (config.nextText) {\n {{ config.nextText }}\n }\n @if (config.nextIcon) {\n <thy-icon [thyIconName]=\"config.nextIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @if (config.boundaryLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === pageCount\" (click)=\"selectPage(pageCount)\">\n <a class=\"thy-page-link thy-page-link-last\" href=\"javascript:;\">\n @if (config.lastText) {\n {{ config.lastText }}\n }\n @if (config.lastIcon) {\n <thy-icon [thyIconName]=\"config.lastIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n </ul>\n @if (config.showTotalPageCount && config.totalPagesFormat) {\n <div class=\"thy-pagination-count\" [innerHTML]=\"pageCount | paginationTotalPagesFormat: config.totalPagesFormat\"></div>\n }\n @if (config.showQuickJumper) {\n <div class=\"thy-pagination-jumper\">\n <div class=\"thy-pagination-jumper-input\">\n {{ locale.jumpTo }}\n <input type=\"text\" [disabled]=\"disabled\" #jumperInput (thyEnter)=\"jumpPage(jumperInput)\" (blur)=\"jumpPage(jumperInput)\" />\n {{ locale.page }}\n </div>\n </div>\n }\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThySelect, selector: "thy-select,thy-custom-select", inputs: ["thyDropdownWidthMode", "thyItemSize", "thyShowSearch", "thyPlaceHolder", "thyServerSearch", "thyLoadState", "thyAutoActiveFirstItem", "thyMode", "thySize", "thyEmptyStateText", "thyEmptySearchMessageText", "thyEnableScrollLoad", "thyAllowClear", "thyDisabled", "thySortComparator", "thyFooterTemplate", "thyPlacement", "thyOrigin", "thyFooterClass", "thyAutoExpand", "thyHasBackdrop", "thyMaxTagCount", "thyBorderless", "thyVirtualScroll", "thyOptions", "thyPreset"], outputs: ["thyOnSearch", "thyOnScrollToBottom", "thyOnExpandStatusChange"], exportAs: ["thySelect"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ThyOption, selector: "thy-option", inputs: ["thyValue", "thyRawValue", "thyLabelText", "thyShowOptionCustom", "thySearchKey", "thyDisabled"], outputs: ["selectionChange"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }, { kind: "pipe", type: PaginationTotalCountFormat, name: "paginationTotalPagesFormat" }, { kind: "pipe", type: PaginationPerPageFormat, name: "paginationPerPageFormat" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
359
359
  }
360
360
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyPagination, decorators: [{
361
361
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-pagination.mjs","sources":["../../../src/pagination/pagination.config.ts","../../../src/pagination/pagination.pipe.ts","../../../src/pagination/pagination.component.ts","../../../src/pagination/pagination.component.html","../../../src/pagination/pagination.module.ts","../../../src/pagination/ngx-tethys-pagination.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { ThyPaginationConfigModel } from './pagination.class';\n\nexport const DEFAULT_RANGE_COUNT = 5;\n\nexport const PaginationDefaultConfig: ThyPaginationConfigModel = {\n boundaryLinks: false,\n directionLinks: true,\n pageSize: 20,\n maxCount: 7,\n rangeCount: DEFAULT_RANGE_COUNT,\n showQuickJumper: true,\n showTotalPageCount: true,\n firstText: '第一页',\n lastText: '最后一页',\n previousText: '',\n nextText: '',\n firstIcon: '',\n lastIcon: '',\n previousIcon: 'angle-left',\n nextIcon: 'angle-right',\n totalPagesFormat: '共{total}页',\n showSizeChanger: false,\n pageSizeOptions: [10, 20, 50, 100],\n unit: '条'\n};\nexport interface ThyPaginationConfig {\n main?: ThyPaginationConfigModel;\n}\n\nexport const THY_PAGINATION_CONFIG = new InjectionToken<ThyPaginationConfig>('THY_PAGINATION_CONFIG', {\n providedIn: 'root',\n factory: () => {\n return {};\n }\n});\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ThyI18nLocale } from 'ngx-tethys/i18n';\n\n/**\n * @private\n */\n@Pipe({\n name: 'paginationTotalPagesFormat'\n})\nexport class PaginationTotalCountFormat implements PipeTransform {\n private sanitizer = inject(DomSanitizer);\n\n transform(count: number, format: string): any {\n if (count && format) {\n return this.sanitizer.bypassSecurityTrustHtml(format.replace(/\\{(.+?)\\}/g, `<span>${count}</span>`));\n } else {\n return '';\n }\n }\n}\n\n@Pipe({\n name: 'paginationPerPageFormat'\n})\nexport class PaginationPerPageFormat implements PipeTransform {\n transform(unit: string, locale: ThyI18nLocale): string {\n if (locale.id.includes('en') || locale.id.includes('de')) {\n // eg. 5 / page\n // eg. 5 / Seite\n return ` / ${ locale.pagination.page}`;\n } else {\n // eg. 5 条/页\n // eg. 5 個/頁\n // eg. 5 条/ページ\n return ` ${ unit }/${ locale.pagination.page}`;\n }\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n numberAttribute,\n inject,\n Signal,\n input,\n output,\n effect,\n computed,\n signal,\n model,\n WritableSignal,\n ModelSignal\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThySelect } from 'ngx-tethys/select';\nimport { ThyEnterDirective, ThyOption } from 'ngx-tethys/shared';\nimport { coerceBooleanProperty, isTemplateRef, ThyBooleanInput, isString, isArray, isBoolean } from 'ngx-tethys/util';\nimport { ThyPaginationConfigModel } from './pagination.class';\nimport { PaginationDefaultConfig, THY_PAGINATION_CONFIG, DEFAULT_RANGE_COUNT } from './pagination.config';\nimport { PaginationPerPageFormat, PaginationTotalCountFormat } from './pagination.pipe';\nimport { injectLocale, ThyI18nLocale, ThyPaginationLocale } from 'ngx-tethys/i18n';\n/**\n * 分页组件,当数据量过多时,使用分页分解数据。\n * @name thy-pagination\n * @order 10\n */\n@Component({\n selector: 'thy-pagination',\n templateUrl: './pagination.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgTemplateOutlet,\n ThySelect,\n FormsModule,\n ThyOption,\n ThyIcon,\n ThyEnterDirective,\n PaginationTotalCountFormat,\n PaginationPerPageFormat\n ],\n host: {\n class: 'thy-pagination',\n '[class.thy-pagination-sm]': 'thySize() === \"sm\"',\n '[class.thy-pagination-md]': 'thySize() === \"md\"',\n '[class.thy-pagination-lg]': 'thySize() === \"lg\"',\n '[class.thy-pagination-has-total]': 'thyShowTotal()'\n }\n})\nexport class ThyPagination {\n private paginationConfig = inject(THY_PAGINATION_CONFIG, { optional: true })!;\n\n allLocale: Signal<ThyI18nLocale> = injectLocale();\n\n paginationLocale: Signal<ThyPaginationLocale> = injectLocale('pagination');\n\n isTemplateRef = isTemplateRef;\n\n /**\n * 设置当前页,支持双向绑定\n * @default 1\n */\n readonly thyPageIndex = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 每页条目数量\n * @default 20\n */\n readonly thyPageSize = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 数据总数\n */\n readonly thyTotal = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 自定义分页页码,设置自定义分页页码后将不根据 Total 和 PageSize 来自动计算页码,完全以传入的页码为准\n * @type number[]\n */\n readonly thyCustomPages = input<number[]>();\n\n /**\n * 是否禁用\n */\n readonly thyDisabled = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否显示快速跳转\n * @default false\n */\n readonly thyShowQuickJumper = input<boolean, ThyBooleanInput>(undefined, { transform: coerceBooleanProperty });\n\n /**\n * 设置是否显示总页数信息\n * @default true\n */\n readonly thyShowTotalPageCount = input<boolean, ThyBooleanInput>(undefined, { transform: coerceBooleanProperty });\n\n /**\n * 设置分页组件的大小\n * @type sm | md | lg\n * @default md\n */\n readonly thySize = input<'sm' | 'md' | 'lg'>('md', { alias: 'thySize' });\n\n /**\n * 设置最大显示数量,超出最大显示数后会自动进行分割显示\n * @default 9\n */\n readonly thyMaxCount = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 设置边缘显示数量\n * @default 2\n */\n readonly thyMarginalCount = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 设置中间区域显示数量\n * @default 5\n */\n readonly thyRangeCount = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 是否显示分页大小选择器\n * @default false\n */\n readonly thyShowSizeChanger = input<boolean, ThyBooleanInput>(undefined, { transform: coerceBooleanProperty });\n\n /**\n * @type number[]\n */\n readonly thyPageSizeOptions = input<number[] | undefined>(undefined);\n\n /**\n * 只有一页时是否隐藏分页器\n * @default false\n */\n readonly thyHideOnSinglePage = input<boolean, ThyBooleanInput>(undefined, { transform: coerceBooleanProperty });\n\n /**\n * 分页器单位\n * @default 条\n */\n readonly thyUnit = input<string>();\n\n /**\n * 是否显示范围和total\n * @default false\n */\n\n readonly thyShowTotal = input<boolean | TemplateRef<{ $implicit: number; range: { from: number; to: number } }>>(false);\n\n /**\n * 页码改变的回调\n */\n readonly thyPageIndexChange = output<number>();\n\n /**\n * 与Bootstrap pagination 兼容,后续版本会进行删除,参数保持与 bootstrap 一致\n */\n readonly thyPageChanged = output<{ page: number }>();\n\n readonly thyPageSizeChanged = output<number>();\n\n public currentPageIndex = signal(1);\n\n public currentPageSize: WritableSignal<number | null> = signal(null);\n\n public selectedPageSize: ModelSignal<number | undefined> = model();\n\n public firstIndex = 1;\n\n computedConfig: Signal<ThyPaginationConfigModel> = computed(() => {\n const result: ThyPaginationConfigModel = Object.assign(\n {},\n PaginationDefaultConfig,\n {\n firstText: this.paginationLocale().firstPage,\n lastText: this.paginationLocale().lastPage,\n totalPagesFormat: this.paginationLocale().totalCount,\n unit: this.paginationLocale().defaultUnit\n },\n this.paginationConfig.main\n );\n\n if (isBoolean(this.thyShowQuickJumper())) {\n result.showQuickJumper = this.thyShowQuickJumper();\n }\n\n if (isBoolean(this.thyShowTotalPageCount())) {\n result.showTotalPageCount = this.thyShowTotalPageCount();\n }\n\n if (this.thyCustomPages() && isArray(this.thyCustomPages())) {\n result.showTotalPageCount = false;\n }\n\n if (Number.isInteger(this.thyMaxCount())) {\n result.maxCount = this.thyMaxCount();\n }\n\n if (isString(this.thyUnit()) && this.thyUnit()) {\n result.unit = this.thyUnit();\n }\n\n if (isBoolean(this.thyShowSizeChanger())) {\n result.showSizeChanger = this.thyShowSizeChanger();\n }\n\n if (this.thyPageSizeOptions() && isArray(this.thyPageSizeOptions())) {\n result.pageSizeOptions = this.thyPageSizeOptions();\n }\n\n if (Number.isInteger(this.thyRangeCount())) {\n result.rangeCount = this.thyRangeCount();\n }\n\n return result;\n });\n\n marginalCount = computed(() => {\n if (!this.thyMarginalCount()) {\n return this.computedConfig()!.rangeCount! <= DEFAULT_RANGE_COUNT ? 1 : 2;\n } else {\n return this.thyMarginalCount();\n }\n });\n\n computedPageCount = computed(() => {\n let pageCount = null;\n if (this.thyCustomPages() && this.thyCustomPages()!.length > 0) {\n pageCount = this.thyCustomPages()![this.thyCustomPages()!.length - 1];\n } else {\n pageCount = this.currentPageSize()! < 1 ? 1 : Math.ceil(this.thyTotal()! / this.currentPageSize()!);\n }\n return Math.max(pageCount || 0, 1);\n });\n\n computedPages = computed(() => {\n const pageCount = this.computedPageCount();\n const pageIndex = this.currentPageIndex();\n const config = this.computedConfig();\n\n if (this.thyCustomPages() && this.thyCustomPages()!.length > 0) {\n return this.thyCustomPages()!.map(page => {\n return { index: page, text: page.toString(), active: page === +pageIndex };\n });\n }\n\n let pages = [];\n const marginalCount = this.marginalCount()!;\n const rangeCount = config.rangeCount!;\n const maxCount = config.maxCount!;\n const isMaxSized = pageCount > maxCount;\n if (isMaxSized) {\n const beforePages = [];\n const afterPages = [];\n\n // mainPages\n let start = Math.ceil(Math.max(marginalCount + 1, pageIndex - (rangeCount - 1) / 2));\n let end = Math.ceil(Math.min(pageIndex + (rangeCount - 1) / 2, pageCount - marginalCount));\n if (pageIndex - 1 < marginalCount) {\n end = rangeCount;\n }\n if (pageCount - pageIndex <= marginalCount) {\n start = pageCount - rangeCount + 1;\n }\n\n for (let i = start; i <= end; i++) {\n pages.push({ index: i, text: i.toString(), active: i === +pageIndex });\n }\n\n // beforePages\n for (let i = 1; i <= marginalCount; i++) {\n beforePages.push(this.makePage(i, i.toString(), i === pageIndex));\n }\n\n if (pageIndex - Math.ceil(rangeCount / 2) > this.firstIndex && marginalCount + 1 < start) {\n beforePages.push(this.makePage(Math.ceil((marginalCount + start) / 2), '···', false));\n }\n\n // afterPages\n if (pageIndex + Math.ceil(rangeCount / 2) < pageCount && pageCount - marginalCount > end) {\n afterPages.push(this.makePage(Math.ceil((pageCount - marginalCount + 1 + end) / 2), '···', false));\n }\n for (let i = pageCount - marginalCount + 1; i <= pageCount; i++) {\n afterPages.push(this.makePage(i, i.toString(), i === pageIndex));\n }\n\n pages = [...beforePages, ...pages, ...afterPages];\n } else {\n for (let i = 1; i <= pageCount; i++) {\n pages.push({ index: i, text: i.toString(), active: i === +pageIndex });\n }\n }\n return pages;\n });\n\n computedRange = computed(() => {\n const pageIndex = this.currentPageIndex();\n const pageSize = this.currentPageSize()!;\n const total = this.thyTotal()!;\n const toPageSize = pageIndex * pageSize;\n return { from: (pageIndex - 1) * pageSize + 1, to: toPageSize > total ? total : toPageSize };\n });\n\n constructor() {\n effect(() => {\n const pageIndex = this.thyPageIndex();\n if (Number.isInteger(pageIndex)) {\n this.setPageIndex(pageIndex!);\n }\n });\n\n effect(() => {\n let pageSize = this.thyPageSize();\n\n if (Number.isInteger(pageSize)) {\n this.currentPageSize.set(pageSize!);\n this.selectedPageSize.set(pageSize!);\n } else {\n const config = this.computedConfig();\n if (config.pageSizeOptions && config.pageSizeOptions.length > 0) {\n pageSize = config.pageSizeOptions[0];\n } else {\n pageSize = config.pageSize;\n }\n this.currentPageSize.set(pageSize!);\n this.selectedPageSize.set(pageSize!);\n }\n });\n }\n\n private setPageIndex(pageIndex: number) {\n pageIndex = pageIndex > this.computedPageCount() ? this.computedPageCount() : pageIndex || 1;\n this.currentPageIndex.set(pageIndex);\n }\n\n private makePage(index: number, text: string, active: boolean): { index: number; text: string; active: boolean } {\n return { index, text, active };\n }\n\n private pageChange(pageIndex: number) {\n this.thyPageIndexChange.emit(pageIndex);\n this.thyPageChanged.emit({ page: pageIndex });\n }\n\n selectPage(pageIndex: number) {\n if (this.thyDisabled() || pageIndex === this.firstIndex - 1 || pageIndex === this.computedPageCount() + 1) {\n return;\n }\n this.setPageIndex(pageIndex);\n this.pageChange(this.currentPageIndex());\n }\n\n jumpPage(input: HTMLInputElement) {\n const pageIndex = +input.value;\n if (Number.isInteger(pageIndex)) {\n this.selectPage(pageIndex);\n }\n input.value = '';\n }\n\n onPageSizeChange(event: number) {\n this.currentPageSize.set(event);\n this.setPageIndex(event);\n this.thyPageSizeChanged.emit(event);\n }\n}\n","@let locale = paginationLocale();\n@let hideOnSinglePage = thyHideOnSinglePage();\n@let pageIndex = currentPageIndex();\n@let pageSize = currentPageSize();\n@let total = thyTotal();\n@let range = computedRange();\n@let config = computedConfig();\n@let pages = computedPages();\n@let pageCount = computedPageCount();\n@let disabled = thyDisabled();\n@let size = thySize();\n@let showTotal = thyShowTotal();\n\n@if ((hideOnSinglePage && total! > pageSize!) || !hideOnSinglePage) {\n @if (showTotal) {\n <div\n class=\"thy-pagination-total\"\n [class.thy-pagination-total-sm]=\"size === 'sm'\"\n [class.thy-pagination-total-md]=\"size === 'md'\"\n [class.thy-pagination-total-lg]=\"size === 'lg'\">\n @if (!isTemplateRef(showTotal)) {\n @if (total > 0) {\n <div class=\"mr-3\">\n {{ locale.order }}<span class=\"number\"> {{ range.from }}-{{ range.to }} </span>{{ config.unit }}\n </div>\n <div>\n {{ locale.total }}<span class=\"number\"> {{ total }} </span>{{ config.unit }}\n </div>\n }\n } @else {\n <ng-template [ngTemplateOutlet]=\"showTotal\" [ngTemplateOutletContext]=\"{ $implicit: total, range: range }\"></ng-template>\n }\n </div>\n }\n <div class=\"thy-pagination-content\">\n @if (config.showSizeChanger) {\n <div class=\"thy-pagination-size\">\n <thy-select [(ngModel)]=\"selectedPageSize\" [thySize]=\"size\" [thyDisabled]=\"disabled\" (ngModelChange)=\"onPageSizeChange($event)\">\n @for (option of config.pageSizeOptions; track option) {\n <thy-option\n class=\"page-size-option\"\n [thyValue]=\"option\"\n [thyLabelText]=\"option + (config.unit | paginationPerPageFormat: allLocale())\"></thy-option>\n }\n </thy-select>\n </div>\n }\n <ul class=\"thy-pagination-pages\">\n @if (config.boundaryLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === firstIndex\" (click)=\"selectPage(firstIndex)\">\n <a class=\"thy-page-link thy-page-link-first\" href=\"javascript:;\">\n @if (config.firstText) {\n {{ config.firstText }}\n }\n @if (config.firstIcon) {\n <thy-icon [thyIconName]=\"config.firstIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @if (config.directionLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === firstIndex\" (click)=\"selectPage(pageIndex - 1)\">\n <a class=\"thy-page-link page-link-pre\" href=\"javascript:;\">\n @if (config.previousText) {\n {{ config.previousText }}\n }\n @if (config.previousIcon) {\n <thy-icon [thyIconName]=\"config.previousIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @for (page of pages; track page.index) {\n <li class=\"thy-page-item thy-page-number\" [class.active]=\"page.active\" [class.disabled]=\"disabled\" (click)=\"selectPage(page.index)\">\n <a class=\"thy-page-link\" href=\"javascript:;\">{{ page.text }}</a>\n </li>\n }\n @if (config.directionLinks) {\n <li class=\"thy-page-item page-item-next\" [class.disabled]=\"disabled || pageIndex === pageCount\" (click)=\"selectPage(pageIndex + 1)\">\n <a class=\"thy-page-link thy-page-link-next\" href=\"javascript:;\">\n @if (config.nextText) {\n {{ config.nextText }}\n }\n @if (config.nextIcon) {\n <thy-icon [thyIconName]=\"config.nextIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @if (config.boundaryLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === pageCount\" (click)=\"selectPage(pageCount)\">\n <a class=\"thy-page-link thy-page-link-last\" href=\"javascript:;\">\n @if (config.lastText) {\n {{ config.lastText }}\n }\n @if (config.lastIcon) {\n <thy-icon [thyIconName]=\"config.lastIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n </ul>\n @if (config.showTotalPageCount && config.totalPagesFormat) {\n <div class=\"thy-pagination-count\" [innerHTML]=\"pageCount | paginationTotalPagesFormat: config.totalPagesFormat\"></div>\n }\n @if (config.showQuickJumper) {\n <div class=\"thy-pagination-jumper\">\n <div class=\"thy-pagination-jumper-input\">\n {{ locale.jumpTo }}\n <input type=\"text\" [disabled]=\"disabled\" #jumperInput (thyEnter)=\"jumpPage(jumperInput)\" (blur)=\"jumpPage(jumperInput)\" />\n {{ locale.page }}\n </div>\n </div>\n }\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { ThyPagination } from './pagination.component';\nimport { CommonModule } from '@angular/common';\nimport { PaginationPerPageFormat, PaginationTotalCountFormat } from './pagination.pipe';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThySelectModule } from 'ngx-tethys/select';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ThySharedModule,\n ThyIconModule,\n ThySelectModule,\n ThyPagination,\n PaginationTotalCountFormat,\n PaginationPerPageFormat\n ],\n exports: [ThyPagination]\n})\nexport class ThyPaginationModule {}\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-pagination.mjs","sources":["../../../src/pagination/pagination.config.ts","../../../src/pagination/pagination.pipe.ts","../../../src/pagination/pagination.component.ts","../../../src/pagination/pagination.component.html","../../../src/pagination/pagination.module.ts","../../../src/pagination/ngx-tethys-pagination.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { ThyPaginationConfigModel } from './pagination.class';\n\nexport const DEFAULT_RANGE_COUNT = 5;\n\nexport const PaginationDefaultConfig: ThyPaginationConfigModel = {\n boundaryLinks: false,\n directionLinks: true,\n pageSize: 20,\n maxCount: 7,\n rangeCount: DEFAULT_RANGE_COUNT,\n showQuickJumper: true,\n showTotalPageCount: true,\n firstText: '第一页',\n lastText: '最后一页',\n previousText: '',\n nextText: '',\n firstIcon: '',\n lastIcon: '',\n previousIcon: 'angle-left',\n nextIcon: 'angle-right',\n totalPagesFormat: '共{total}页',\n showSizeChanger: false,\n pageSizeOptions: [10, 20, 50, 100],\n unit: '条'\n};\nexport interface ThyPaginationConfig {\n main?: ThyPaginationConfigModel;\n}\n\nexport const THY_PAGINATION_CONFIG = new InjectionToken<ThyPaginationConfig>('THY_PAGINATION_CONFIG', {\n providedIn: 'root',\n factory: () => {\n return {};\n }\n});\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ThyI18nLocale } from 'ngx-tethys/i18n';\n\n/**\n * @private\n */\n@Pipe({\n name: 'paginationTotalPagesFormat'\n})\nexport class PaginationTotalCountFormat implements PipeTransform {\n private sanitizer = inject(DomSanitizer);\n\n transform(count: number, format: string): any {\n if (count && format) {\n return this.sanitizer.bypassSecurityTrustHtml(format.replace(/\\{(.+?)\\}/g, `<span>${count}</span>`));\n } else {\n return '';\n }\n }\n}\n\n@Pipe({\n name: 'paginationPerPageFormat'\n})\nexport class PaginationPerPageFormat implements PipeTransform {\n transform(unit: string, locale: ThyI18nLocale): string {\n if (locale.id.includes('en') || locale.id.includes('de')) {\n // eg. 5 / page\n // eg. 5 / Seite\n return ` / ${ locale.pagination.page}`;\n } else {\n // eg. 5 条/页\n // eg. 5 個/頁\n // eg. 5 条/ページ\n return ` ${ unit }/${ locale.pagination.page}`;\n }\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n numberAttribute,\n inject,\n Signal,\n input,\n output,\n effect,\n computed,\n signal,\n model,\n WritableSignal,\n ModelSignal\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThySelect } from 'ngx-tethys/select';\nimport { ThyEnterDirective, ThyOption } from 'ngx-tethys/shared';\nimport { coerceBooleanProperty, isTemplateRef, ThyBooleanInput, isString, isArray, isBoolean } from 'ngx-tethys/util';\nimport { ThyPaginationConfigModel } from './pagination.class';\nimport { PaginationDefaultConfig, THY_PAGINATION_CONFIG, DEFAULT_RANGE_COUNT } from './pagination.config';\nimport { PaginationPerPageFormat, PaginationTotalCountFormat } from './pagination.pipe';\nimport { injectLocale, ThyI18nLocale, ThyPaginationLocale } from 'ngx-tethys/i18n';\n/**\n * 分页组件,当数据量过多时,使用分页分解数据。\n * @name thy-pagination\n * @order 10\n */\n@Component({\n selector: 'thy-pagination',\n templateUrl: './pagination.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgTemplateOutlet,\n ThySelect,\n FormsModule,\n ThyOption,\n ThyIcon,\n ThyEnterDirective,\n PaginationTotalCountFormat,\n PaginationPerPageFormat\n ],\n host: {\n class: 'thy-pagination',\n '[class.thy-pagination-sm]': 'thySize() === \"sm\"',\n '[class.thy-pagination-md]': 'thySize() === \"md\"',\n '[class.thy-pagination-lg]': 'thySize() === \"lg\"',\n '[class.thy-pagination-has-total]': 'thyShowTotal()'\n }\n})\nexport class ThyPagination {\n private paginationConfig = inject(THY_PAGINATION_CONFIG, { optional: true })!;\n\n allLocale: Signal<ThyI18nLocale> = injectLocale();\n\n paginationLocale: Signal<ThyPaginationLocale> = injectLocale('pagination');\n\n isTemplateRef = isTemplateRef;\n\n /**\n * 设置当前页,支持双向绑定\n * @default 1\n */\n readonly thyPageIndex = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 每页条目数量\n * @default 20\n */\n readonly thyPageSize = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 数据总数\n */\n readonly thyTotal = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 自定义分页页码,设置自定义分页页码后将不根据 Total 和 PageSize 来自动计算页码,完全以传入的页码为准\n * @type number[]\n */\n readonly thyCustomPages = input<number[]>();\n\n /**\n * 是否禁用\n */\n readonly thyDisabled = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否显示快速跳转\n * @default false\n */\n readonly thyShowQuickJumper = input<boolean, ThyBooleanInput>(undefined, { transform: coerceBooleanProperty });\n\n /**\n * 设置是否显示总页数信息\n * @default true\n */\n readonly thyShowTotalPageCount = input<boolean, ThyBooleanInput>(undefined, { transform: coerceBooleanProperty });\n\n /**\n * 设置分页组件的大小\n * @type sm | md | lg\n * @default md\n */\n readonly thySize = input<'sm' | 'md' | 'lg'>('md', { alias: 'thySize' });\n\n /**\n * 设置最大显示数量,超出最大显示数后会自动进行分割显示\n * @default 9\n */\n readonly thyMaxCount = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 设置边缘显示数量\n * @default 2\n */\n readonly thyMarginalCount = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 设置中间区域显示数量\n * @default 5\n */\n readonly thyRangeCount = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 是否显示分页大小选择器\n * @default false\n */\n readonly thyShowSizeChanger = input<boolean, ThyBooleanInput>(undefined, { transform: coerceBooleanProperty });\n\n /**\n * @type number[]\n */\n readonly thyPageSizeOptions = input<number[] | undefined>(undefined);\n\n /**\n * 只有一页时是否隐藏分页器\n * @default false\n */\n readonly thyHideOnSinglePage = input<boolean, ThyBooleanInput>(undefined, { transform: coerceBooleanProperty });\n\n /**\n * 分页器单位\n * @default 条\n */\n readonly thyUnit = input<string>();\n\n /**\n * 是否显示范围和total\n * @default false\n */\n\n readonly thyShowTotal = input<boolean | TemplateRef<{ $implicit: number; range: { from: number; to: number } }>>(false);\n\n /**\n * 页码改变的回调\n */\n readonly thyPageIndexChange = output<number>();\n\n /**\n * 与Bootstrap pagination 兼容,后续版本会进行删除,参数保持与 bootstrap 一致\n */\n readonly thyPageChanged = output<{ page: number }>();\n\n readonly thyPageSizeChanged = output<number>();\n\n public currentPageIndex = signal(1);\n\n public currentPageSize: WritableSignal<number | null> = signal(null);\n\n public selectedPageSize: ModelSignal<number | undefined> = model();\n\n public firstIndex = 1;\n\n computedConfig: Signal<ThyPaginationConfigModel> = computed(() => {\n const result: ThyPaginationConfigModel = Object.assign(\n {},\n PaginationDefaultConfig,\n {\n firstText: this.paginationLocale().firstPage,\n lastText: this.paginationLocale().lastPage,\n totalPagesFormat: this.paginationLocale().totalCount,\n unit: this.paginationLocale().defaultUnit\n },\n this.paginationConfig.main\n );\n\n if (isBoolean(this.thyShowQuickJumper())) {\n result.showQuickJumper = this.thyShowQuickJumper();\n }\n\n if (isBoolean(this.thyShowTotalPageCount())) {\n result.showTotalPageCount = this.thyShowTotalPageCount();\n }\n\n if (this.thyCustomPages() && isArray(this.thyCustomPages())) {\n result.showTotalPageCount = false;\n }\n\n if (Number.isInteger(this.thyMaxCount())) {\n result.maxCount = this.thyMaxCount();\n }\n\n if (isString(this.thyUnit()) && this.thyUnit()) {\n result.unit = this.thyUnit();\n }\n\n if (isBoolean(this.thyShowSizeChanger())) {\n result.showSizeChanger = this.thyShowSizeChanger();\n }\n\n if (this.thyPageSizeOptions() && isArray(this.thyPageSizeOptions())) {\n result.pageSizeOptions = this.thyPageSizeOptions();\n }\n\n if (Number.isInteger(this.thyRangeCount())) {\n result.rangeCount = this.thyRangeCount();\n }\n\n return result;\n });\n\n marginalCount = computed(() => {\n if (!this.thyMarginalCount()) {\n return this.computedConfig()!.rangeCount! <= DEFAULT_RANGE_COUNT ? 1 : 2;\n } else {\n return this.thyMarginalCount();\n }\n });\n\n computedPageCount = computed(() => {\n let pageCount = null;\n if (this.thyCustomPages() && this.thyCustomPages()!.length > 0) {\n pageCount = this.thyCustomPages()![this.thyCustomPages()!.length - 1];\n } else {\n pageCount = this.currentPageSize()! < 1 ? 1 : Math.ceil(this.thyTotal()! / this.currentPageSize()!);\n }\n return Math.max(pageCount || 0, 1);\n });\n\n computedPages = computed(() => {\n const pageCount = this.computedPageCount();\n const pageIndex = this.currentPageIndex();\n const config = this.computedConfig();\n\n if (this.thyCustomPages() && this.thyCustomPages()!.length > 0) {\n return this.thyCustomPages()!.map(page => {\n return { index: page, text: page.toString(), active: page === +pageIndex };\n });\n }\n\n let pages = [];\n const marginalCount = this.marginalCount()!;\n const rangeCount = config.rangeCount!;\n const maxCount = config.maxCount!;\n const isMaxSized = pageCount > maxCount;\n if (isMaxSized) {\n const beforePages = [];\n const afterPages = [];\n\n // mainPages\n let start = Math.ceil(Math.max(marginalCount + 1, pageIndex - (rangeCount - 1) / 2));\n let end = Math.ceil(Math.min(pageIndex + (rangeCount - 1) / 2, pageCount - marginalCount));\n if (pageIndex - 1 < marginalCount) {\n end = rangeCount;\n }\n if (pageCount - pageIndex <= marginalCount) {\n start = pageCount - rangeCount + 1;\n }\n\n for (let i = start; i <= end; i++) {\n pages.push({ index: i, text: i.toString(), active: i === +pageIndex });\n }\n\n // beforePages\n for (let i = 1; i <= marginalCount; i++) {\n beforePages.push(this.makePage(i, i.toString(), i === pageIndex));\n }\n\n if (pageIndex - Math.ceil(rangeCount / 2) > this.firstIndex && marginalCount + 1 < start) {\n beforePages.push(this.makePage(Math.ceil((marginalCount + start) / 2), '···', false));\n }\n\n // afterPages\n if (pageIndex + Math.ceil(rangeCount / 2) < pageCount && pageCount - marginalCount > end) {\n afterPages.push(this.makePage(Math.ceil((pageCount - marginalCount + 1 + end) / 2), '···', false));\n }\n for (let i = pageCount - marginalCount + 1; i <= pageCount; i++) {\n afterPages.push(this.makePage(i, i.toString(), i === pageIndex));\n }\n\n pages = [...beforePages, ...pages, ...afterPages];\n } else {\n for (let i = 1; i <= pageCount; i++) {\n pages.push({ index: i, text: i.toString(), active: i === +pageIndex });\n }\n }\n return pages;\n });\n\n computedRange = computed(() => {\n const pageIndex = this.currentPageIndex();\n const pageSize = this.currentPageSize()!;\n const total = this.thyTotal()!;\n const toPageSize = pageIndex * pageSize;\n return { from: (pageIndex - 1) * pageSize + 1, to: toPageSize > total ? total : toPageSize };\n });\n\n constructor() {\n effect(() => {\n const pageIndex = this.thyPageIndex();\n if (Number.isInteger(pageIndex)) {\n this.setPageIndex(pageIndex!);\n }\n });\n\n effect(() => {\n let pageSize = this.thyPageSize();\n\n if (Number.isInteger(pageSize)) {\n this.currentPageSize.set(pageSize!);\n this.selectedPageSize.set(pageSize!);\n } else {\n const config = this.computedConfig();\n if (config.pageSizeOptions && config.pageSizeOptions.length > 0) {\n pageSize = config.pageSizeOptions[0];\n } else {\n pageSize = config.pageSize;\n }\n this.currentPageSize.set(pageSize!);\n this.selectedPageSize.set(pageSize!);\n }\n });\n }\n\n private setPageIndex(pageIndex: number) {\n pageIndex = pageIndex > this.computedPageCount() ? this.computedPageCount() : pageIndex || 1;\n this.currentPageIndex.set(pageIndex);\n }\n\n private makePage(index: number, text: string, active: boolean): { index: number; text: string; active: boolean } {\n return { index, text, active };\n }\n\n private pageChange(pageIndex: number) {\n this.thyPageIndexChange.emit(pageIndex);\n this.thyPageChanged.emit({ page: pageIndex });\n }\n\n selectPage(pageIndex: number) {\n if (this.thyDisabled() || pageIndex === this.firstIndex - 1 || pageIndex === this.computedPageCount() + 1) {\n return;\n }\n this.setPageIndex(pageIndex);\n this.pageChange(this.currentPageIndex());\n }\n\n jumpPage(input: HTMLInputElement) {\n const pageIndex = +input.value;\n if (Number.isInteger(pageIndex)) {\n this.selectPage(pageIndex);\n }\n input.value = '';\n }\n\n onPageSizeChange(event: number) {\n this.currentPageSize.set(event);\n this.setPageIndex(event);\n this.thyPageSizeChanged.emit(event);\n }\n}\n","@let locale = paginationLocale();\n@let hideOnSinglePage = thyHideOnSinglePage();\n@let pageIndex = currentPageIndex();\n@let pageSize = currentPageSize();\n@let total = thyTotal();\n@let range = computedRange();\n@let config = computedConfig();\n@let pages = computedPages();\n@let pageCount = computedPageCount();\n@let disabled = thyDisabled();\n@let size = thySize();\n@let showTotal = thyShowTotal();\n\n@if ((hideOnSinglePage && total! > pageSize!) || !hideOnSinglePage) {\n @if (showTotal) {\n <div\n class=\"thy-pagination-total\"\n [class.thy-pagination-total-sm]=\"size === 'sm'\"\n [class.thy-pagination-total-md]=\"size === 'md'\"\n [class.thy-pagination-total-lg]=\"size === 'lg'\">\n @if (!isTemplateRef(showTotal)) {\n @if (total > 0) {\n <div class=\"mr-3\">\n {{ locale.order }}<span class=\"number\"> {{ range.from }}-{{ range.to }} </span>{{ config.unit }}\n </div>\n <div>\n {{ locale.total }}<span class=\"number\"> {{ total }} </span>{{ config.unit }}\n </div>\n }\n } @else {\n <ng-template [ngTemplateOutlet]=\"showTotal\" [ngTemplateOutletContext]=\"{ $implicit: total, range: range }\"></ng-template>\n }\n </div>\n }\n <div class=\"thy-pagination-content\">\n @if (config.showSizeChanger) {\n <div class=\"thy-pagination-size\">\n <thy-select [(ngModel)]=\"selectedPageSize\" [thySize]=\"size\" [thyDisabled]=\"disabled\" (ngModelChange)=\"onPageSizeChange($event)\">\n @for (option of config.pageSizeOptions; track option) {\n <thy-option\n class=\"page-size-option\"\n [thyValue]=\"option\"\n [thyLabelText]=\"option + (config.unit | paginationPerPageFormat: allLocale())\"></thy-option>\n }\n </thy-select>\n </div>\n }\n <ul class=\"thy-pagination-pages\">\n @if (config.boundaryLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === firstIndex\" (click)=\"selectPage(firstIndex)\">\n <a class=\"thy-page-link thy-page-link-first\" href=\"javascript:;\">\n @if (config.firstText) {\n {{ config.firstText }}\n }\n @if (config.firstIcon) {\n <thy-icon [thyIconName]=\"config.firstIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @if (config.directionLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === firstIndex\" (click)=\"selectPage(pageIndex - 1)\">\n <a class=\"thy-page-link page-link-pre\" href=\"javascript:;\">\n @if (config.previousText) {\n {{ config.previousText }}\n }\n @if (config.previousIcon) {\n <thy-icon [thyIconName]=\"config.previousIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @for (page of pages; track page.index) {\n <li class=\"thy-page-item thy-page-number\" [class.active]=\"page.active\" [class.disabled]=\"disabled\" (click)=\"selectPage(page.index)\">\n <a class=\"thy-page-link\" href=\"javascript:;\">{{ page.text }}</a>\n </li>\n }\n @if (config.directionLinks) {\n <li class=\"thy-page-item page-item-next\" [class.disabled]=\"disabled || pageIndex === pageCount\" (click)=\"selectPage(pageIndex + 1)\">\n <a class=\"thy-page-link thy-page-link-next\" href=\"javascript:;\">\n @if (config.nextText) {\n {{ config.nextText }}\n }\n @if (config.nextIcon) {\n <thy-icon [thyIconName]=\"config.nextIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @if (config.boundaryLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === pageCount\" (click)=\"selectPage(pageCount)\">\n <a class=\"thy-page-link thy-page-link-last\" href=\"javascript:;\">\n @if (config.lastText) {\n {{ config.lastText }}\n }\n @if (config.lastIcon) {\n <thy-icon [thyIconName]=\"config.lastIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n </ul>\n @if (config.showTotalPageCount && config.totalPagesFormat) {\n <div class=\"thy-pagination-count\" [innerHTML]=\"pageCount | paginationTotalPagesFormat: config.totalPagesFormat\"></div>\n }\n @if (config.showQuickJumper) {\n <div class=\"thy-pagination-jumper\">\n <div class=\"thy-pagination-jumper-input\">\n {{ locale.jumpTo }}\n <input type=\"text\" [disabled]=\"disabled\" #jumperInput (thyEnter)=\"jumpPage(jumperInput)\" (blur)=\"jumpPage(jumperInput)\" />\n {{ locale.page }}\n </div>\n </div>\n }\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { ThyPagination } from './pagination.component';\nimport { CommonModule } from '@angular/common';\nimport { PaginationPerPageFormat, PaginationTotalCountFormat } from './pagination.pipe';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThySelectModule } from 'ngx-tethys/select';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ThySharedModule,\n ThyIconModule,\n ThySelectModule,\n ThyPagination,\n PaginationTotalCountFormat,\n PaginationPerPageFormat\n ],\n exports: [ThyPagination]\n})\nexport class ThyPaginationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -159,7 +159,9 @@ class ThyPropertyItem {
159
159
  this.clickEventSubscription = fromEvent(itemElement, 'click')
160
160
  .pipe(takeUntil(this.eventDestroy$))
161
161
  .subscribe(() => {
162
- this.originOverlays = [...this.overlayOutsideClickDispatcher._attachedOverlays];
162
+ if (this.thyEditTrigger() === 'click') {
163
+ this.originOverlays = [...this.overlayOutsideClickDispatcher._attachedOverlays];
164
+ }
163
165
  this.setEditing(true);
164
166
  this.bindEditorBlurEvent(itemElement);
165
167
  itemElement.querySelector('input')?.focus();
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-property.mjs","sources":["../../../src/property/properties.component.ts","../../../src/property/properties.component.html","../../../src/property/property-item.component.ts","../../../src/property/property-item.component.html","../../../src/property/module.ts","../../../src/property/ngx-tethys-property.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, numberAttribute, input, computed } from '@angular/core';\n\nexport type ThyPropertiesLayout = 'horizontal' | 'vertical';\n\n/**\n * 属性列表组件\n * @name thy-properties\n */\n@Component({\n selector: 'thy-properties',\n templateUrl: './properties.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-properties',\n '[class.thy-properties-vertical]': 'layout() === \"vertical\"',\n '[class.thy-properties-horizontal]': 'layout() === \"horizontal\"',\n '[class.thy-property-edit-trigger-hover]': 'thyEditTrigger() === \"hover\"',\n '[class.thy-property-edit-trigger-click]': 'thyEditTrigger() === \"click\"',\n '[style.grid-template-columns]': 'gridTemplateColumns()'\n }\n})\nexport class ThyProperties {\n /**\n * 展示布局\n * @type \"horizontal\" | \"vertical\"\n */\n readonly layout = input<ThyPropertiesLayout>('horizontal', { alias: 'thyLayout' });\n\n /**\n * 设置一行的可以 property-item 的数量\n */\n readonly thyColumn = input(1, { transform: numberAttribute });\n\n /**\n * 设置编辑状态触发方法\n * @type 'hover' | 'click'\n */\n readonly thyEditTrigger = input<'hover' | 'click'>('hover');\n\n protected readonly gridTemplateColumns = computed(() => {\n return `repeat(${this.thyColumn()}, 1fr)`;\n });\n}\n","<ng-content></ng-content>\n","import { ThyClickDispatcher } from 'ngx-tethys/core';\nimport { ThyFlexibleText } from 'ngx-tethys/flexible-text';\nimport { combineLatest, fromEvent, Subject, Subscription, timer } from 'rxjs';\nimport { delay, filter, take, takeUntil } from 'rxjs/operators';\nimport { OverlayOutsideClickDispatcher, OverlayRef } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n NgZone,\n numberAttribute,\n OnDestroy,\n TemplateRef,\n inject,\n input,\n computed,\n effect,\n output,\n contentChild,\n viewChild,\n signal,\n DestroyRef\n} from '@angular/core';\nimport { ThyProperties } from './properties.component';\nimport { coerceBooleanProperty, helpers, ThyBooleanInput } from 'ngx-tethys/util';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nexport type ThyPropertyItemOperationTrigger = 'hover' | 'always';\n\n/**\n * 属性组件\n * @name thy-property-item\n */\n@Component({\n selector: 'thy-property-item',\n templateUrl: './property-item.component.html',\n host: {\n class: 'thy-property-item',\n '[class.thy-property-edit-trigger-hover]': 'thyEditTrigger() === \"hover\"',\n '[class.thy-property-edit-trigger-click]': 'thyEditTrigger() === \"click\"',\n '[class.thy-property-item-operational]': '!!operation()',\n '[class.thy-property-item-operational-hover]': \"thyOperationTrigger() === 'hover'\",\n '[style.grid-column]': 'gridColumn()',\n '[class.thy-property-item-single]': '!parent'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ThyFlexibleText, NgTemplateOutlet]\n})\nexport class ThyPropertyItem implements OnDestroy {\n private clickDispatcher = inject(ThyClickDispatcher);\n private ngZone = inject(NgZone);\n private overlayOutsideClickDispatcher = inject(OverlayOutsideClickDispatcher);\n private parent = inject(ThyProperties, { optional: true });\n private destroyRef = inject(DestroyRef);\n\n /**\n * 属性名称\n */\n readonly thyLabelText = input<string>();\n\n /**\n * 设置属性是否是可编辑的\n */\n readonly thyEditable = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 设置跨列的数量\n */\n readonly thySpan = input(1, { transform: numberAttribute });\n\n /**\n * 设置编辑状态触发方法\n * @type 'hover' | 'click'\n */\n readonly thyEditTrigger = input<'hover' | 'click'>();\n\n /**\n * 设置属性操作现实触发方式,默认 always 一直显示\n * @type 'hover' | 'always'\n */\n readonly thyOperationTrigger = input<ThyPropertyItemOperationTrigger>('always');\n\n readonly thyEditingChange = output<boolean>();\n\n /**\n * 属性名称自定义模板\n * @type TemplateRef\n */\n readonly label = contentChild<TemplateRef<void>>('label');\n\n /**\n * 属性内容编辑模板,只有在 thyEditable 为 true 时生效\n * @type TemplateRef\n */\n readonly editor = contentChild<TemplateRef<void>>('editor');\n\n /**\n * 操作区模板\n * @type TemplateRef\n */\n readonly operation = contentChild<TemplateRef<void>>('operation');\n\n /**\n * @private\n */\n readonly content = viewChild<TemplateRef<void>>('contentTemplate');\n\n /**\n * @private\n */\n readonly itemContent = viewChild.required<ElementRef<HTMLElement>>('item');\n\n editing = signal(false);\n\n private eventDestroy$ = new Subject<void>();\n\n private originOverlays: OverlayRef[] = [];\n\n private clickEventSubscription: Subscription | null = null;\n\n protected readonly gridColumn = computed(() => {\n return `span ${Math.min(this.thySpan(), this.parent?.thyColumn() as number)}`;\n });\n\n readonly isVertical = computed(() => {\n return this.parent?.layout() === 'vertical';\n });\n\n constructor() {\n this.originOverlays = [...this.overlayOutsideClickDispatcher._attachedOverlays];\n\n effect(() => {\n if (this.thyEditable()) {\n this.subscribeClick();\n } else {\n this.setEditing(false);\n this.eventDestroy$.next();\n this.eventDestroy$.complete();\n\n if (this.clickEventSubscription) {\n this.clickEventSubscription.unsubscribe();\n this.clickEventSubscription = null;\n }\n }\n });\n }\n\n setEditing(editing: boolean) {\n this.ngZone.run(() => {\n if (!!this.editing() !== !!editing) {\n this.thyEditingChange.emit(editing);\n }\n this.editing.set(editing);\n });\n }\n\n /**\n * @deprecated please use setEditing(editing: boolean)\n */\n setKeepEditing(keep: boolean) {\n this.setEditing(keep);\n }\n\n private hasOverlay() {\n return !!this.overlayOutsideClickDispatcher._attachedOverlays.filter(overlay => !this.originOverlays.includes(overlay)).length;\n }\n\n private subscribeClick() {\n if (this.thyEditable() === true) {\n this.ngZone.runOutsideAngular(() => {\n if (this.clickEventSubscription) {\n return;\n }\n const itemElement = this.itemContent().nativeElement;\n this.clickEventSubscription = fromEvent(itemElement, 'click')\n .pipe(takeUntil(this.eventDestroy$))\n .subscribe(() => {\n this.originOverlays = [...this.overlayOutsideClickDispatcher._attachedOverlays];\n this.setEditing(true);\n this.bindEditorBlurEvent(itemElement);\n itemElement.querySelector('input')?.focus();\n });\n });\n }\n }\n\n private subscribeOverlayDetach() {\n const openedOverlays = this.overlayOutsideClickDispatcher._attachedOverlays.filter(\n overlay => !this.originOverlays.includes(overlay)\n );\n const overlaysDetachments$ = openedOverlays.map(overlay => overlay.detachments());\n if (overlaysDetachments$.length) {\n combineLatest(overlaysDetachments$)\n .pipe(delay(50), take(1), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.setEditing(false);\n });\n }\n }\n\n private subscribeDocumentClick(editorElement: HTMLElement) {\n this.clickDispatcher\n .clicked(0)\n .pipe(\n filter(event => {\n return !editorElement.contains(event.target as HTMLElement);\n }),\n take(1),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(() => {\n this.setEditing(false);\n });\n }\n\n private bindEditorBlurEvent(editorElement: HTMLElement) {\n timer(0).subscribe(() => {\n if (this.hasOverlay()) {\n this.subscribeOverlayDetach();\n } else {\n this.subscribeDocumentClick(editorElement);\n }\n });\n }\n\n ngOnDestroy(): void {\n this.eventDestroy$.next();\n this.eventDestroy$.complete();\n }\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n\n@let labelText = thyLabelText();\n@let labelTemplate = label();\n@let operationTemplate = operation();\n\n@if (labelText || labelTemplate || (operationTemplate && isVertical())) {\n <div class=\"thy-property-item-label\">\n @if (labelText) {\n <span thyFlexibleText [thyTooltipContent]=\"labelText\">{{ labelText }}</span>\n }\n @if (labelTemplate) {\n <span> <ng-template [ngTemplateOutlet]=\"labelTemplate\"></ng-template></span>\n }\n @if (operationTemplate && isVertical()) {\n <div class=\"thy-property-item-operation\">\n <ng-template [ngTemplateOutlet]=\"operationTemplate\"></ng-template>\n </div>\n }\n </div>\n}\n\n<div class=\"thy-property-item-wrapper\">\n <div\n #item\n class=\"thy-property-item-content\"\n [class.thy-property-item-content-editable]=\"thyEditable()\"\n [class.thy-property-item-content-editing]=\"editing()\">\n <div class=\"thy-property-item-content-text\">\n @if (content()) {\n <ng-template [ngTemplateOutlet]=\"content()\"></ng-template>\n }\n </div>\n @if (thyEditable()) {\n <div class=\"thy-property-item-content-editor\">\n @if (editor()) {\n <ng-template [ngTemplateOutlet]=\"editor()\"></ng-template>\n }\n </div>\n }\n </div>\n @if (operation() && !isVertical()) {\n <div class=\"thy-property-item-operation\">\n <ng-template [ngTemplateOutlet]=\"operation()\"></ng-template>\n </div>\n }\n</div>\n","import { ThyFlexibleTextModule } from 'ngx-tethys/flexible-text';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ThyProperties } from './properties.component';\nimport { ThyPropertyItem } from './property-item.component';\nimport { ThyTooltipModule } from 'ngx-tethys/tooltip';\n\n@NgModule({\n imports: [CommonModule, ThyFlexibleTextModule, ThyTooltipModule, ThyProperties, ThyPropertyItem],\n exports: [ThyProperties, ThyPropertyItem]\n})\nexport class ThyPropertyModule {}\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-property.mjs","sources":["../../../src/property/properties.component.ts","../../../src/property/properties.component.html","../../../src/property/property-item.component.ts","../../../src/property/property-item.component.html","../../../src/property/module.ts","../../../src/property/ngx-tethys-property.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, numberAttribute, input, computed } from '@angular/core';\n\nexport type ThyPropertiesLayout = 'horizontal' | 'vertical';\n\n/**\n * 属性列表组件\n * @name thy-properties\n */\n@Component({\n selector: 'thy-properties',\n templateUrl: './properties.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-properties',\n '[class.thy-properties-vertical]': 'layout() === \"vertical\"',\n '[class.thy-properties-horizontal]': 'layout() === \"horizontal\"',\n '[class.thy-property-edit-trigger-hover]': 'thyEditTrigger() === \"hover\"',\n '[class.thy-property-edit-trigger-click]': 'thyEditTrigger() === \"click\"',\n '[style.grid-template-columns]': 'gridTemplateColumns()'\n }\n})\nexport class ThyProperties {\n /**\n * 展示布局\n * @type \"horizontal\" | \"vertical\"\n */\n readonly layout = input<ThyPropertiesLayout>('horizontal', { alias: 'thyLayout' });\n\n /**\n * 设置一行的可以 property-item 的数量\n */\n readonly thyColumn = input(1, { transform: numberAttribute });\n\n /**\n * 设置编辑状态触发方法\n * @type 'hover' | 'click'\n */\n readonly thyEditTrigger = input<'hover' | 'click'>('hover');\n\n protected readonly gridTemplateColumns = computed(() => {\n return `repeat(${this.thyColumn()}, 1fr)`;\n });\n}\n","<ng-content></ng-content>\n","import { ThyClickDispatcher } from 'ngx-tethys/core';\nimport { ThyFlexibleText } from 'ngx-tethys/flexible-text';\nimport { combineLatest, fromEvent, Subject, Subscription, timer } from 'rxjs';\nimport { delay, filter, take, takeUntil } from 'rxjs/operators';\nimport { OverlayOutsideClickDispatcher, OverlayRef } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n NgZone,\n numberAttribute,\n OnDestroy,\n TemplateRef,\n inject,\n input,\n computed,\n effect,\n output,\n contentChild,\n viewChild,\n signal,\n DestroyRef\n} from '@angular/core';\nimport { ThyProperties } from './properties.component';\nimport { coerceBooleanProperty, helpers, ThyBooleanInput } from 'ngx-tethys/util';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nexport type ThyPropertyItemOperationTrigger = 'hover' | 'always';\n\n/**\n * 属性组件\n * @name thy-property-item\n */\n@Component({\n selector: 'thy-property-item',\n templateUrl: './property-item.component.html',\n host: {\n class: 'thy-property-item',\n '[class.thy-property-edit-trigger-hover]': 'thyEditTrigger() === \"hover\"',\n '[class.thy-property-edit-trigger-click]': 'thyEditTrigger() === \"click\"',\n '[class.thy-property-item-operational]': '!!operation()',\n '[class.thy-property-item-operational-hover]': \"thyOperationTrigger() === 'hover'\",\n '[style.grid-column]': 'gridColumn()',\n '[class.thy-property-item-single]': '!parent'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ThyFlexibleText, NgTemplateOutlet]\n})\nexport class ThyPropertyItem implements OnDestroy {\n private clickDispatcher = inject(ThyClickDispatcher);\n private ngZone = inject(NgZone);\n private overlayOutsideClickDispatcher = inject(OverlayOutsideClickDispatcher);\n private parent = inject(ThyProperties, { optional: true });\n private destroyRef = inject(DestroyRef);\n\n /**\n * 属性名称\n */\n readonly thyLabelText = input<string>();\n\n /**\n * 设置属性是否是可编辑的\n */\n readonly thyEditable = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 设置跨列的数量\n */\n readonly thySpan = input(1, { transform: numberAttribute });\n\n /**\n * 设置编辑状态触发方法\n * @type 'hover' | 'click'\n */\n readonly thyEditTrigger = input<'hover' | 'click'>();\n\n /**\n * 设置属性操作现实触发方式,默认 always 一直显示\n * @type 'hover' | 'always'\n */\n readonly thyOperationTrigger = input<ThyPropertyItemOperationTrigger>('always');\n\n readonly thyEditingChange = output<boolean>();\n\n /**\n * 属性名称自定义模板\n * @type TemplateRef\n */\n readonly label = contentChild<TemplateRef<void>>('label');\n\n /**\n * 属性内容编辑模板,只有在 thyEditable 为 true 时生效\n * @type TemplateRef\n */\n readonly editor = contentChild<TemplateRef<void>>('editor');\n\n /**\n * 操作区模板\n * @type TemplateRef\n */\n readonly operation = contentChild<TemplateRef<void>>('operation');\n\n /**\n * @private\n */\n readonly content = viewChild<TemplateRef<void>>('contentTemplate');\n\n /**\n * @private\n */\n readonly itemContent = viewChild.required<ElementRef<HTMLElement>>('item');\n\n editing = signal(false);\n\n private eventDestroy$ = new Subject<void>();\n\n private originOverlays: OverlayRef[] = [];\n\n private clickEventSubscription: Subscription | null = null;\n\n protected readonly gridColumn = computed(() => {\n return `span ${Math.min(this.thySpan(), this.parent?.thyColumn() as number)}`;\n });\n\n readonly isVertical = computed(() => {\n return this.parent?.layout() === 'vertical';\n });\n\n constructor() {\n this.originOverlays = [...this.overlayOutsideClickDispatcher._attachedOverlays];\n\n effect(() => {\n if (this.thyEditable()) {\n this.subscribeClick();\n } else {\n this.setEditing(false);\n this.eventDestroy$.next();\n this.eventDestroy$.complete();\n\n if (this.clickEventSubscription) {\n this.clickEventSubscription.unsubscribe();\n this.clickEventSubscription = null;\n }\n }\n });\n }\n\n setEditing(editing: boolean) {\n this.ngZone.run(() => {\n if (!!this.editing() !== !!editing) {\n this.thyEditingChange.emit(editing);\n }\n this.editing.set(editing);\n });\n }\n\n /**\n * @deprecated please use setEditing(editing: boolean)\n */\n setKeepEditing(keep: boolean) {\n this.setEditing(keep);\n }\n\n private hasOverlay() {\n return !!this.overlayOutsideClickDispatcher._attachedOverlays.filter(overlay => !this.originOverlays.includes(overlay)).length;\n }\n\n private subscribeClick() {\n if (this.thyEditable() === true) {\n this.ngZone.runOutsideAngular(() => {\n if (this.clickEventSubscription) {\n return;\n }\n const itemElement = this.itemContent().nativeElement;\n this.clickEventSubscription = fromEvent(itemElement, 'click')\n .pipe(takeUntil(this.eventDestroy$))\n .subscribe(() => {\n if (this.thyEditTrigger() === 'click') {\n this.originOverlays = [...this.overlayOutsideClickDispatcher._attachedOverlays];\n }\n this.setEditing(true);\n this.bindEditorBlurEvent(itemElement);\n itemElement.querySelector('input')?.focus();\n });\n });\n }\n }\n\n private subscribeOverlayDetach() {\n const openedOverlays = this.overlayOutsideClickDispatcher._attachedOverlays.filter(\n overlay => !this.originOverlays.includes(overlay)\n );\n const overlaysDetachments$ = openedOverlays.map(overlay => overlay.detachments());\n if (overlaysDetachments$.length) {\n combineLatest(overlaysDetachments$)\n .pipe(delay(50), take(1), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.setEditing(false);\n });\n }\n }\n\n private subscribeDocumentClick(editorElement: HTMLElement) {\n this.clickDispatcher\n .clicked(0)\n .pipe(\n filter(event => {\n return !editorElement.contains(event.target as HTMLElement);\n }),\n take(1),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(() => {\n this.setEditing(false);\n });\n }\n\n private bindEditorBlurEvent(editorElement: HTMLElement) {\n timer(0).subscribe(() => {\n if (this.hasOverlay()) {\n this.subscribeOverlayDetach();\n } else {\n this.subscribeDocumentClick(editorElement);\n }\n });\n }\n\n ngOnDestroy(): void {\n this.eventDestroy$.next();\n this.eventDestroy$.complete();\n }\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n\n@let labelText = thyLabelText();\n@let labelTemplate = label();\n@let operationTemplate = operation();\n\n@if (labelText || labelTemplate || (operationTemplate && isVertical())) {\n <div class=\"thy-property-item-label\">\n @if (labelText) {\n <span thyFlexibleText [thyTooltipContent]=\"labelText\">{{ labelText }}</span>\n }\n @if (labelTemplate) {\n <span> <ng-template [ngTemplateOutlet]=\"labelTemplate\"></ng-template></span>\n }\n @if (operationTemplate && isVertical()) {\n <div class=\"thy-property-item-operation\">\n <ng-template [ngTemplateOutlet]=\"operationTemplate\"></ng-template>\n </div>\n }\n </div>\n}\n\n<div class=\"thy-property-item-wrapper\">\n <div\n #item\n class=\"thy-property-item-content\"\n [class.thy-property-item-content-editable]=\"thyEditable()\"\n [class.thy-property-item-content-editing]=\"editing()\">\n <div class=\"thy-property-item-content-text\">\n @if (content()) {\n <ng-template [ngTemplateOutlet]=\"content()\"></ng-template>\n }\n </div>\n @if (thyEditable()) {\n <div class=\"thy-property-item-content-editor\">\n @if (editor()) {\n <ng-template [ngTemplateOutlet]=\"editor()\"></ng-template>\n }\n </div>\n }\n </div>\n @if (operation() && !isVertical()) {\n <div class=\"thy-property-item-operation\">\n <ng-template [ngTemplateOutlet]=\"operation()\"></ng-template>\n </div>\n }\n</div>\n","import { ThyFlexibleTextModule } from 'ngx-tethys/flexible-text';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ThyProperties } from './properties.component';\nimport { ThyPropertyItem } from './property-item.component';\nimport { ThyTooltipModule } from 'ngx-tethys/tooltip';\n\n@NgModule({\n imports: [CommonModule, ThyFlexibleTextModule, ThyTooltipModule, ThyProperties, ThyPropertyItem],\n exports: [ThyProperties, ThyPropertyItem]\n})\nexport class ThyPropertyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}