@shival99/z-ui 2.6.6 → 2.6.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/css/base.css +16 -16
- package/fesm2022/shival99-z-ui-components-z-button-group.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-button-group.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-calendar.mjs +13 -13
- package/fesm2022/shival99-z-ui-components-z-calendar.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-editor.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-editor.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-menu.mjs +5 -3
- package/fesm2022/shival99-z-ui-components-z-menu.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-modal.mjs +6 -7
- package/fesm2022/shival99-z-ui-components-z-modal.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-popover.mjs +2 -2
- package/fesm2022/shival99-z-ui-components-z-popover.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-select.mjs +3 -2
- package/fesm2022/shival99-z-ui-components-z-select.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-toast.mjs +4 -4
- package/fesm2022/shival99-z-ui-components-z-toast.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-tooltip.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-tooltip.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-upload.mjs +3 -2
- package/fesm2022/shival99-z-ui-components-z-upload.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-utils.mjs +27 -1
- package/fesm2022/shival99-z-ui-utils.mjs.map +1 -1
- package/package.json +1 -1
- package/types/shival99-z-ui-components-z-button-group.d.ts +1 -1
- package/types/shival99-z-ui-components-z-menu.d.ts +2 -0
- package/types/shival99-z-ui-components-z-modal.d.ts +1 -1
- package/types/shival99-z-ui-components-z-select.d.ts +1 -0
- package/types/shival99-z-ui-components-z-upload.d.ts +1 -0
- package/types/shival99-z-ui-utils.d.ts +8 -2
- package/.npmignore +0 -58
- package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs +0 -1215
- package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs.map +0 -1
- package/fesm2022/shival99-z-ui-components-z-drawer.mjs +0 -994
- package/fesm2022/shival99-z-ui-components-z-drawer.mjs.map +0 -1
- package/fesm2022/shival99-z-ui-components-z-dropdown-menu.mjs +0 -99
- package/fesm2022/shival99-z-ui-components-z-dropdown-menu.mjs.map +0 -1
- package/fesm2022/shival99-z-ui-components-z-filter.mjs +0 -962
- package/fesm2022/shival99-z-ui-components-z-filter.mjs.map +0 -1
- package/fesm2022/shival99-z-ui-components-z-number-ticker.mjs +0 -352
- package/fesm2022/shival99-z-ui-components-z-number-ticker.mjs.map +0 -1
- package/fesm2022/shival99-z-ui-components-z-pagination.mjs +0 -179
- package/fesm2022/shival99-z-ui-components-z-pagination.mjs.map +0 -1
- package/fesm2022/shival99-z-ui-components-z-qrcode.mjs +0 -429
- package/fesm2022/shival99-z-ui-components-z-qrcode.mjs.map +0 -1
- package/fesm2022/shival99-z-ui-components-z-radio.mjs +0 -183
- package/fesm2022/shival99-z-ui-components-z-radio.mjs.map +0 -1
- package/fesm2022/shival99-z-ui-components-z-scrollarea.mjs +0 -143
- package/fesm2022/shival99-z-ui-components-z-scrollarea.mjs.map +0 -1
- package/fesm2022/shival99-z-ui-components-z-show-more.mjs +0 -138
- package/fesm2022/shival99-z-ui-components-z-show-more.mjs.map +0 -1
- package/fesm2022/shival99-z-ui-components-z-skeleton-auto.mjs +0 -80
- package/fesm2022/shival99-z-ui-components-z-skeleton-auto.mjs.map +0 -1
- package/fesm2022/shival99-z-ui-components-z-steps.mjs +0 -420
- package/fesm2022/shival99-z-ui-components-z-steps.mjs.map +0 -1
- package/fesm2022/shival99-z-ui-components-z-table.mjs +0 -11471
- package/fesm2022/shival99-z-ui-components-z-table.mjs.map +0 -1
- package/fesm2022/shival99-z-ui-components-z-tabs.mjs +0 -1102
- package/fesm2022/shival99-z-ui-components-z-tabs.mjs.map +0 -1
- package/fesm2022/shival99-z-ui-components-z-tags.mjs +0 -364
- package/fesm2022/shival99-z-ui-components-z-tags.mjs.map +0 -1
- package/fesm2022/shival99-z-ui-components-z-timeline.mjs +0 -254
- package/fesm2022/shival99-z-ui-components-z-timeline.mjs.map +0 -1
- package/fesm2022/shival99-z-ui-services-excel.mjs +0 -672
- package/fesm2022/shival99-z-ui-services-excel.mjs.map +0 -1
- package/types/shival99-z-ui-components-z-autocomplete.d.ts +0 -299
- package/types/shival99-z-ui-components-z-drawer.d.ts +0 -301
- package/types/shival99-z-ui-components-z-dropdown-menu.d.ts +0 -52
- package/types/shival99-z-ui-components-z-filter.d.ts +0 -285
- package/types/shival99-z-ui-components-z-number-ticker.d.ts +0 -110
- package/types/shival99-z-ui-components-z-pagination.d.ts +0 -55
- package/types/shival99-z-ui-components-z-qrcode.d.ts +0 -79
- package/types/shival99-z-ui-components-z-radio.d.ts +0 -69
- package/types/shival99-z-ui-components-z-scrollarea.d.ts +0 -46
- package/types/shival99-z-ui-components-z-show-more.d.ts +0 -36
- package/types/shival99-z-ui-components-z-skeleton-auto.d.ts +0 -35
- package/types/shival99-z-ui-components-z-steps.d.ts +0 -106
- package/types/shival99-z-ui-components-z-table.d.ts +0 -2413
- package/types/shival99-z-ui-components-z-tabs.d.ts +0 -196
- package/types/shival99-z-ui-components-z-tags.d.ts +0 -127
- package/types/shival99-z-ui-components-z-timeline.d.ts +0 -71
- package/types/shival99-z-ui-services-excel.d.ts +0 -36
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shival99-z-ui-components-z-number-ticker.mjs","sources":["../../../../libs/core-ui/components/z-number-ticker/z-number-ticker.util.ts","../../../../libs/core-ui/components/z-number-ticker/z-number-ticker.component.ts","../../../../libs/core-ui/components/z-number-ticker/z-number-ticker.component.html","../../../../libs/core-ui/components/z-number-ticker/shival99-z-ui-components-z-number-ticker.ts"],"sourcesContent":["import type { ZNumberTickerCell, ZNumberTickerEasing } from './z-number-ticker.types';\n\n/**\n * Every curve returns exactly `1` at `progress === 1`, which is what lets the wheels land on the\n * target's real digits however dramatic the easing is on the way there.\n */\nexport function zNumberTickerEase(progress: number, easing: ZNumberTickerEasing): number {\n if (easing === 'linear') {\n return progress;\n }\n\n if (easing === 'spring') {\n // easeOutBack: overshoots by ~10% and settles.\n const overshoot = 1.70158;\n return 1 + (overshoot + 1) * Math.pow(progress - 1, 3) + overshoot * Math.pow(progress - 1, 2);\n }\n\n if (easing === 'bounce') {\n return zNumberTickerBounce(progress);\n }\n\n return 1 - Math.pow(1 - progress, 3);\n}\n\nfunction zNumberTickerBounce(progress: number): number {\n const n = 7.5625;\n const d = 2.75;\n\n if (progress < 1 / d) {\n return n * progress * progress;\n }\n\n if (progress < 2 / d) {\n const shifted = progress - 1.5 / d;\n return n * shifted * shifted + 0.75;\n }\n\n if (progress < 2.5 / d) {\n const shifted = progress - 2.25 / d;\n return n * shifted * shifted + 0.9375;\n }\n\n const shifted = progress - 2.625 / d;\n return n * shifted * shifted + 0.984375;\n}\n\n/**\n * Builds the layout from `Intl`'s own breakdown of the value, so grouping separators, decimal marks,\n * currency symbols and signs land where the locale puts them and are rendered as fixed text between\n * the wheels. It is laid out against the wider of the two values, which keeps the wheel count — and\n * therefore the width — stable for the whole count.\n *\n * Digits before the decimal mark are numbered right-to-left from `0`; digits after it run `-1`, `-2`.\n */\nexport function zNumberTickerCells(formatter: Intl.NumberFormat, from: number, to: number): ZNumberTickerCell[] {\n const widest = Math.abs(to) >= Math.abs(from) ? to : from;\n const cells: ZNumberTickerCell[] = [];\n const integerWheels: ZNumberTickerCell[] = [];\n let fractionPlace = -1;\n let passedDecimal = false;\n\n for (const part of formatter.formatToParts(widest)) {\n if (part.type === 'integer' || part.type === 'fraction') {\n for (const digit of part.value) {\n // Integer places are only known once the whole run has been seen, so they are filled in below.\n const cell: ZNumberTickerCell = { place: passedDecimal ? fractionPlace : 0, isSign: false, text: digit };\n if (passedDecimal) {\n fractionPlace -= 1;\n } else {\n integerWheels.push(cell);\n }\n cells.push(cell);\n }\n continue;\n }\n\n if (part.type === 'decimal') {\n passedDecimal = true;\n }\n cells.push({ place: null, isSign: part.type === 'plusSign' || part.type === 'minusSign', text: part.value });\n }\n\n for (let index = 0; index < integerWheels.length; index += 1) {\n integerWheels[integerWheels.length - 1 - index].place = index;\n }\n\n return cells;\n}\n\n/**\n * Where a wheel sits, in digits, at a given eased progress. Each wheel interpolates between the digit\n * its own place holds at `from` and at `to`, so the units wheel travels the whole change while the\n * tens wheel travels a tenth of it — the pace difference that reads as an odometer. Both ends are\n * exact, because each end is that place's real digit.\n */\nexport function zNumberTickerWheelOffset(place: number, from: number, to: number, eased: number): number {\n const scale = Math.pow(10, -place);\n const fromDigit = Math.floor(Math.abs(from) * scale);\n const toDigit = Math.floor(Math.abs(to) * scale);\n const position = fromDigit + (toDigit - fromDigit) * eased;\n\n // Modulo that stays positive when counting down, so a 0→9 wrap rolls backwards instead of jumping.\n return ((position % 10) + 10) % 10;\n}\n\n/**\n * The magnitude `Intl` actually prints, read back out of its own parts. Needed because the wheels are\n * driven by decimal places: `percent` scales by 100 and `compact` divides by a power of ten, so the\n * raw value's digits are not the digits on screen — a value of `0.184` renders as `18.4%`, whose\n * wheels are `1`, `8` and `4`.\n */\nexport function zNumberTickerMagnitude(formatter: Intl.NumberFormat, value: number): number {\n let integer = '';\n let fraction = '';\n\n for (const part of formatter.formatToParts(value)) {\n if (part.type === 'integer') {\n integer += part.value;\n } else if (part.type === 'fraction') {\n fraction += part.value;\n }\n }\n\n return Number(`${integer || '0'}.${fraction || '0'}`);\n}\n\n/** Which sign glyph a value carries, so a sign cell knows what to crossfade between. */\nexport function zNumberTickerSign(value: number): string {\n return value < 0 ? '-' : '+';\n}\n","import { isPlatformServer } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n inject,\n input,\n NgZone,\n OnDestroy,\n PLATFORM_ID,\n signal,\n untracked,\n} from '@angular/core';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport type { ZNumberTickerCell, ZNumberTickerEasing, ZNumberTickerFormat } from './z-number-ticker.types';\nimport {\n zNumberTickerCells,\n zNumberTickerEase,\n zNumberTickerMagnitude,\n zNumberTickerSign,\n zNumberTickerWheelOffset,\n} from './z-number-ticker.util';\n\n@Component({\n selector: 'z-number-ticker',\n imports: [],\n standalone: true,\n templateUrl: './z-number-ticker.component.html',\n styleUrl: './z-number-ticker.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'tickerClasses()',\n '[class.z-number-ticker-rolling]': 'isRolling()',\n '[attr.aria-live]': \"'polite'\",\n },\n})\nexport class ZNumberTickerComponent implements OnDestroy {\n private readonly _zone = inject(NgZone);\n private readonly _isServer = isPlatformServer(inject(PLATFORM_ID));\n\n public readonly class = input<ClassValue>('');\n /** The value to count towards. Changing it re-runs the count from wherever the ticker currently is. */\n public readonly zValue = input<number>(0);\n /** Where the first count starts. Later changes count from the displayed value, not from here. */\n public readonly zStart = input<number>(0);\n /** How long the roll takes, in milliseconds. */\n public readonly zDuration = input<number>(1800);\n public readonly zEasing = input<ZNumberTickerEasing>('smooth');\n public readonly zFormat = input<ZNumberTickerFormat>('decimal');\n /** Locale for grouping separators and decimal marks; defaults to the browser's. */\n public readonly zLocale = input<string | undefined>(undefined);\n /** Only read when `zFormat` is `'currency'`. */\n public readonly zCurrency = input<string>('USD');\n /** Zero-pads the integer part, e.g. `2` renders `07` — what a clock segment needs. */\n public readonly zMinimumIntegerDigits = input<number | undefined>(undefined);\n /** Passed to `Intl`; `'always'` keeps a `+` on positive values, as a delta figure wants. */\n public readonly zSignDisplay = input<Intl.NumberFormatOptions['signDisplay']>(undefined);\n public readonly zMinimumFractionDigits = input<number | undefined>(undefined);\n public readonly zMaximumFractionDigits = input<number | undefined>(undefined);\n\n /** Digits to roll through, plus a repeated `0` so a 9→0 wrap rolls on rather than snapping back. */\n protected readonly wheelDigits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0];\n\n private readonly _progress = signal(1);\n private readonly _from = signal(0);\n private readonly _to = signal(0);\n private readonly _rolling = signal(false);\n private _frame?: number;\n private _started = false;\n\n /**\n * Only what the roll needs structurally: an inline box, and tabular figures so a digit swap cannot\n * change the width. Type scale, weight and colour are the consumer's — a ticker has no business\n * deciding how big a number on someone's page should be.\n */\n protected readonly tickerClasses = computed(() =>\n zMergeClasses('z-number-ticker inline-block tabular-nums', this.class())\n );\n\n /** Decimal places in the target value, which is what the count should render to. */\n private readonly _targetDecimals = computed(() => {\n const value = this.zValue();\n if (!Number.isFinite(value)) {\n return 0;\n }\n\n const text = String(value);\n const dot = text.indexOf('.');\n return dot === -1 ? 0 : Math.min(text.length - dot - 1, 20);\n });\n\n /**\n * Kept as one memoised formatter rather than calling `toLocaleString` per frame: constructing an\n * `Intl.NumberFormat` is the expensive part, and the ticker formats on every animation frame.\n */\n private readonly _formatter = computed(() => {\n const format = this.zFormat();\n const options: Intl.NumberFormatOptions = {\n style: format === 'currency' ? 'currency' : format === 'percent' ? 'percent' : 'decimal',\n notation: format === 'compact' ? 'compact' : 'standard',\n };\n\n if (format === 'currency') {\n // Left on Intl's own currency default (2 places), which is the convention and already rounds the\n // mid-count value sensibly.\n options.currency = this.zCurrency();\n } else if (this.zMaximumFractionDigits() === undefined) {\n // Every frame of the count is a float, and Intl would render up to 3 decimals of it — a count\n // towards a whole number flashed values like `4,185.899`. Following the target's own precision\n // keeps the count reading the way its destination does. `percent` scales by 100, so two of the\n // target's decimals move to the left of the point.\n options.maximumFractionDigits =\n format === 'percent' ? Math.max(0, this._targetDecimals() - 2) : this._targetDecimals();\n }\n\n const minimumIntegerDigits = this.zMinimumIntegerDigits();\n if (minimumIntegerDigits !== undefined) {\n options.minimumIntegerDigits = minimumIntegerDigits;\n }\n\n const signDisplay = this.zSignDisplay();\n if (signDisplay !== undefined) {\n options.signDisplay = signDisplay;\n }\n\n const minimumFractionDigits = this.zMinimumFractionDigits();\n if (minimumFractionDigits !== undefined) {\n options.minimumFractionDigits = minimumFractionDigits;\n }\n\n const maximumFractionDigits = this.zMaximumFractionDigits();\n if (maximumFractionDigits !== undefined) {\n options.maximumFractionDigits = maximumFractionDigits;\n }\n\n return new Intl.NumberFormat(this.zLocale(), options);\n });\n\n /**\n * The wheels stay mounted for the whole life of the component. Swapping to plain text between rolls\n * changed the box width every time one finished, which read as the number twitching on the page.\n * Static text is only for the cases where there is no roll at all: the server, and reduced motion.\n */\n protected readonly isRolling = computed(() => this._rolling());\n\n protected readonly usesWheels = computed(() => !this._isServer && !this._prefersReducedMotion());\n\n /** Layout is pinned to the endpoints, so wheels are neither added nor removed mid-count. */\n protected readonly cells = computed<ZNumberTickerCell[]>(() =>\n zNumberTickerCells(this._formatter(), this._from(), this._to())\n );\n\n private readonly _magnitudes = computed(() => {\n const formatter = this._formatter();\n return {\n from: zNumberTickerMagnitude(formatter, this._from()),\n to: zNumberTickerMagnitude(formatter, this._to()),\n };\n });\n\n protected readonly wheelOffsets = computed(() => {\n const eased = zNumberTickerEase(this._progress(), this.zEasing());\n const { from, to } = this._magnitudes();\n\n return this.cells().map(cell => (cell.place === null ? 0 : zNumberTickerWheelOffset(cell.place, from, to, eased)));\n });\n\n /** A sign cell holds both glyphs and crossfades between them across the roll. */\n protected readonly signFrom = computed(() => zNumberTickerSign(this._from()));\n protected readonly signTo = computed(() => zNumberTickerSign(this._to()));\n protected readonly signProgress = computed(() => zNumberTickerEase(this._progress(), this.zEasing()));\n\n /**\n * The outgoing glyph leaves to the left and the incoming one arrives from the right, both riding the\n * roll's own easing. Distance is a custom property so a consumer can dial the travel down to a pure\n * crossfade (`0`) or open it up.\n */\n protected signTransform(direction: 1 | -1): string {\n const offset = direction === 1 ? this.signProgress() - 1 : this.signProgress();\n return `translateX(calc(${offset} * var(--z-number-ticker-sign-shift)))`;\n }\n\n /** The plain formatted number, used before the first roll and whenever motion is off. */\n protected readonly formattedValue = computed(() => {\n const eased = zNumberTickerEase(this._progress(), this.zEasing());\n const from = this._from();\n return this._formatter().format(from + (this._to() - from) * eased);\n });\n\n constructor() {\n effect(() => {\n const target = this.zValue();\n untracked(() => {\n const from = this._started ? this._currentValue() : this.zStart();\n this._started = true;\n this._animate(from, target);\n });\n });\n }\n\n /** Where the count has actually reached, so a new target continues from there. */\n private _currentValue(): number {\n const from = this._from();\n return from + (this._to() - from) * zNumberTickerEase(this._progress(), this.zEasing());\n }\n\n protected wheelTransform(index: number): string {\n return `translateY(calc(${-this.wheelOffsets()[index]} * var(--z-number-ticker-line)))`;\n }\n\n ngOnDestroy(): void {\n this._cancel();\n }\n\n /**\n * Runs the tween outside Angular: a per-frame `requestAnimationFrame` inside the zone would schedule\n * a change-detection pass of its own on every frame. The signal write still schedules one, so the\n * text updates — this only drops the duplicate.\n */\n private _animate(from: number, to: number): void {\n this._cancel();\n this._from.set(from);\n this._to.set(to);\n\n const duration = this.zDuration();\n if (duration <= 0 || from === to || this._prefersReducedMotion() || typeof requestAnimationFrame === 'undefined') {\n this._rolling.set(false);\n this._progress.set(1);\n return;\n }\n\n this._rolling.set(true);\n this._progress.set(0);\n const startedAt = performance.now();\n const step = (now: number): void => {\n const progress = Math.min(1, (now - startedAt) / duration);\n this._progress.set(progress);\n\n if (progress < 1) {\n this._frame = requestAnimationFrame(step);\n return;\n }\n\n // The wheels already land on the exact digits at progress 1; dropping out of rolling mode also\n // lifts the depth mask, which has no business dimming a number that has come to rest.\n this._frame = undefined;\n this._rolling.set(false);\n };\n\n this._frame = this._zone.runOutsideAngular(() => requestAnimationFrame(step));\n }\n\n private _cancel(): void {\n if (this._frame !== undefined) {\n cancelAnimationFrame(this._frame);\n this._frame = undefined;\n }\n }\n\n private _prefersReducedMotion(): boolean {\n return typeof window !== 'undefined' && Boolean(window.matchMedia?.('(prefers-reduced-motion: reduce)').matches);\n }\n}\n","@if (usesWheels()) {\n @for (cell of cells(); track $index) {\n @if (cell.isSign) {\n <span class=\"z-number-ticker-sign\">\n <span\n class=\"z-number-ticker-sign-glyph\"\n [style.opacity]=\"1 - signProgress()\"\n [style.transform]=\"signTransform(-1)\">\n {{ signFrom() }}\n </span>\n <span class=\"z-number-ticker-sign-glyph\" [style.opacity]=\"signProgress()\" [style.transform]=\"signTransform(1)\">\n {{ signTo() }}\n </span>\n </span>\n } @else if (cell.place === null) {\n <span class=\"z-number-ticker-static\">{{ cell.text }}</span>\n } @else {\n <span class=\"z-number-ticker-wheel\">\n <span class=\"z-number-ticker-strip\" [style.transform]=\"wheelTransform($index)\">\n @for (digit of wheelDigits; track $index) {\n <span class=\"z-number-ticker-digit\">{{ digit }}</span>\n }\n </span>\n </span>\n }\n }\n} @else {\n {{ formattedValue() }}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, output, model, input, computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
-
import * as i1 from '@angular/forms';
|
|
4
|
-
import { FormsModule } from '@angular/forms';
|
|
5
|
-
import { TranslatePipe } from '@ngx-translate/core';
|
|
6
|
-
import { ZButtonComponent } from '@shival99/z-ui/components/z-button';
|
|
7
|
-
import { ZButtonGroupComponent } from '@shival99/z-ui/components/z-button-group';
|
|
8
|
-
import { ZIconComponent } from '@shival99/z-ui/components/z-icon';
|
|
9
|
-
import { ZInputComponent } from '@shival99/z-ui/components/z-input';
|
|
10
|
-
import { ZSelectComponent } from '@shival99/z-ui/components/z-select';
|
|
11
|
-
import { ZTranslateService } from '@shival99/z-ui/services';
|
|
12
|
-
|
|
13
|
-
class ZPaginationComponent {
|
|
14
|
-
_zTranslate = inject(ZTranslateService);
|
|
15
|
-
zOnPageChange = output();
|
|
16
|
-
zPageIndex = model(1, /* @ts-ignore */
|
|
17
|
-
...(ngDevMode ? [{ debugName: "zPageIndex" }] : /* istanbul ignore next */ []));
|
|
18
|
-
zPageSize = model(10, /* @ts-ignore */
|
|
19
|
-
...(ngDevMode ? [{ debugName: "zPageSize" }] : /* istanbul ignore next */ []));
|
|
20
|
-
zTotal = input.required(/* @ts-ignore */
|
|
21
|
-
...(ngDevMode ? [{ debugName: "zTotal" }] : /* istanbul ignore next */ []));
|
|
22
|
-
zPageSizeOptions = input([10, 20, 50, 100], /* @ts-ignore */
|
|
23
|
-
...(ngDevMode ? [{ debugName: "zPageSizeOptions" }] : /* istanbul ignore next */ []));
|
|
24
|
-
zShowSizeChanger = input(true, /* @ts-ignore */
|
|
25
|
-
...(ngDevMode ? [{ debugName: "zShowSizeChanger" }] : /* istanbul ignore next */ []));
|
|
26
|
-
zShowQuickJumper = input(false, /* @ts-ignore */
|
|
27
|
-
...(ngDevMode ? [{ debugName: "zShowQuickJumper" }] : /* istanbul ignore next */ []));
|
|
28
|
-
zShowTotal = input(true, /* @ts-ignore */
|
|
29
|
-
...(ngDevMode ? [{ debugName: "zShowTotal" }] : /* istanbul ignore next */ []));
|
|
30
|
-
zSimple = input(false, /* @ts-ignore */
|
|
31
|
-
...(ngDevMode ? [{ debugName: "zSimple" }] : /* istanbul ignore next */ []));
|
|
32
|
-
zSize = input('default', /* @ts-ignore */
|
|
33
|
-
...(ngDevMode ? [{ debugName: "zSize" }] : /* istanbul ignore next */ []));
|
|
34
|
-
zDisabled = input(false, /* @ts-ignore */
|
|
35
|
-
...(ngDevMode ? [{ debugName: "zDisabled" }] : /* istanbul ignore next */ []));
|
|
36
|
-
zTotalLabel = input(null, /* @ts-ignore */
|
|
37
|
-
...(ngDevMode ? [{ debugName: "zTotalLabel" }] : /* istanbul ignore next */ []));
|
|
38
|
-
zPerPageLabel = input(null, /* @ts-ignore */
|
|
39
|
-
...(ngDevMode ? [{ debugName: "zPerPageLabel" }] : /* istanbul ignore next */ []));
|
|
40
|
-
zGoToLabel = input(null, /* @ts-ignore */
|
|
41
|
-
...(ngDevMode ? [{ debugName: "zGoToLabel" }] : /* istanbul ignore next */ []));
|
|
42
|
-
totalLabelText = computed(() => {
|
|
43
|
-
this._zTranslate.currentLang();
|
|
44
|
-
if (this.zTotalLabel()) {
|
|
45
|
-
return this.zTotalLabel().replace('{{total}}', String(this.zTotal()));
|
|
46
|
-
}
|
|
47
|
-
return this._zTranslate.instant('i18n_z_ui_pagination_total_label', { total: this.zTotal() });
|
|
48
|
-
}, /* @ts-ignore */
|
|
49
|
-
...(ngDevMode ? [{ debugName: "totalLabelText" }] : /* istanbul ignore next */ []));
|
|
50
|
-
perPageLabelText = computed(() => {
|
|
51
|
-
this._zTranslate.currentLang();
|
|
52
|
-
return this.zPerPageLabel() ?? this._zTranslate.instant('i18n_z_ui_pagination_per_page');
|
|
53
|
-
}, /* @ts-ignore */
|
|
54
|
-
...(ngDevMode ? [{ debugName: "perPageLabelText" }] : /* istanbul ignore next */ []));
|
|
55
|
-
goToLabelText = computed(() => {
|
|
56
|
-
this._zTranslate.currentLang();
|
|
57
|
-
return this.zGoToLabel() ?? this._zTranslate.instant('i18n_z_ui_pagination_go_to');
|
|
58
|
-
}, /* @ts-ignore */
|
|
59
|
-
...(ngDevMode ? [{ debugName: "goToLabelText" }] : /* istanbul ignore next */ []));
|
|
60
|
-
totalPages = computed(() => {
|
|
61
|
-
const total = this.zTotal();
|
|
62
|
-
const pageSize = this.zPageSize();
|
|
63
|
-
return Math.max(1, Math.ceil(total / pageSize));
|
|
64
|
-
}, /* @ts-ignore */
|
|
65
|
-
...(ngDevMode ? [{ debugName: "totalPages" }] : /* istanbul ignore next */ []));
|
|
66
|
-
pageSizeOptions = computed(() => this.zPageSizeOptions().map(size => ({
|
|
67
|
-
label: `${size} ${this.perPageLabelText()}`,
|
|
68
|
-
value: size,
|
|
69
|
-
})), /* @ts-ignore */
|
|
70
|
-
...(ngDevMode ? [{ debugName: "pageSizeOptions" }] : /* istanbul ignore next */ []));
|
|
71
|
-
visiblePages = computed(() => {
|
|
72
|
-
const current = this.zPageIndex();
|
|
73
|
-
const total = this.totalPages();
|
|
74
|
-
const pages = [];
|
|
75
|
-
const maxVisible = 5;
|
|
76
|
-
if (total <= maxVisible) {
|
|
77
|
-
for (let i = 1; i <= total; i++) {
|
|
78
|
-
pages.push(i);
|
|
79
|
-
}
|
|
80
|
-
return pages;
|
|
81
|
-
}
|
|
82
|
-
pages.push(1);
|
|
83
|
-
let startPage = Math.max(2, current - 1);
|
|
84
|
-
let endPage = Math.min(total - 1, current + 1);
|
|
85
|
-
if (current <= 3) {
|
|
86
|
-
endPage = Math.min(total - 1, 3);
|
|
87
|
-
}
|
|
88
|
-
else if (current >= total - 2) {
|
|
89
|
-
startPage = Math.max(2, total - 2);
|
|
90
|
-
}
|
|
91
|
-
if (startPage > 2) {
|
|
92
|
-
pages.push('ellipsis');
|
|
93
|
-
}
|
|
94
|
-
for (let i = startPage; i <= endPage; i++) {
|
|
95
|
-
pages.push(i);
|
|
96
|
-
}
|
|
97
|
-
if (endPage < total - 1) {
|
|
98
|
-
pages.push('ellipsis');
|
|
99
|
-
}
|
|
100
|
-
pages.push(total);
|
|
101
|
-
return pages;
|
|
102
|
-
}, /* @ts-ignore */
|
|
103
|
-
...(ngDevMode ? [{ debugName: "visiblePages" }] : /* istanbul ignore next */ []));
|
|
104
|
-
canGoPrev = computed(() => this.zPageIndex() > 1, /* @ts-ignore */
|
|
105
|
-
...(ngDevMode ? [{ debugName: "canGoPrev" }] : /* istanbul ignore next */ []));
|
|
106
|
-
canGoNext = computed(() => this.zPageIndex() < this.totalPages(), /* @ts-ignore */
|
|
107
|
-
...(ngDevMode ? [{ debugName: "canGoNext" }] : /* istanbul ignore next */ []));
|
|
108
|
-
goToPage(page) {
|
|
109
|
-
if (page < 1 || page > this.totalPages()) {
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
if (page === this.zPageIndex()) {
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
this.zPageIndex.set(page);
|
|
116
|
-
this._emitChange();
|
|
117
|
-
}
|
|
118
|
-
goToPrev() {
|
|
119
|
-
if (!this.canGoPrev()) {
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
this.goToPage(this.zPageIndex() - 1);
|
|
123
|
-
}
|
|
124
|
-
goToNext() {
|
|
125
|
-
if (!this.canGoNext()) {
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
this.goToPage(this.zPageIndex() + 1);
|
|
129
|
-
}
|
|
130
|
-
onPageSizeChange(size) {
|
|
131
|
-
const sizeValue = typeof size === 'object' && size !== null && 'value' in size
|
|
132
|
-
? size.value
|
|
133
|
-
: size;
|
|
134
|
-
if (!Number.isFinite(sizeValue) || sizeValue <= 0) {
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
this.zPageSize.set(sizeValue);
|
|
138
|
-
this.zPageIndex.set(1);
|
|
139
|
-
this._emitChange();
|
|
140
|
-
}
|
|
141
|
-
onQuickJump(event) {
|
|
142
|
-
const input = event.target;
|
|
143
|
-
const page = parseInt(input.value, 10);
|
|
144
|
-
if (isNaN(page) || page < 1 || page > this.totalPages()) {
|
|
145
|
-
input.value = String(this.zPageIndex());
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
this.goToPage(page);
|
|
149
|
-
}
|
|
150
|
-
_emitChange() {
|
|
151
|
-
this.zOnPageChange.emit({
|
|
152
|
-
pageIndex: this.zPageIndex(),
|
|
153
|
-
pageSize: this.zPageSize(),
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ZPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
157
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: ZPaginationComponent, isStandalone: true, selector: "z-pagination", inputs: { zPageIndex: { classPropertyName: "zPageIndex", publicName: "zPageIndex", isSignal: true, isRequired: false, transformFunction: null }, zPageSize: { classPropertyName: "zPageSize", publicName: "zPageSize", isSignal: true, isRequired: false, transformFunction: null }, zTotal: { classPropertyName: "zTotal", publicName: "zTotal", isSignal: true, isRequired: true, transformFunction: null }, zPageSizeOptions: { classPropertyName: "zPageSizeOptions", publicName: "zPageSizeOptions", isSignal: true, isRequired: false, transformFunction: null }, zShowSizeChanger: { classPropertyName: "zShowSizeChanger", publicName: "zShowSizeChanger", isSignal: true, isRequired: false, transformFunction: null }, zShowQuickJumper: { classPropertyName: "zShowQuickJumper", publicName: "zShowQuickJumper", isSignal: true, isRequired: false, transformFunction: null }, zShowTotal: { classPropertyName: "zShowTotal", publicName: "zShowTotal", isSignal: true, isRequired: false, transformFunction: null }, zSimple: { classPropertyName: "zSimple", publicName: "zSimple", isSignal: true, isRequired: false, transformFunction: null }, zSize: { classPropertyName: "zSize", publicName: "zSize", isSignal: true, isRequired: false, transformFunction: null }, zDisabled: { classPropertyName: "zDisabled", publicName: "zDisabled", isSignal: true, isRequired: false, transformFunction: null }, zTotalLabel: { classPropertyName: "zTotalLabel", publicName: "zTotalLabel", isSignal: true, isRequired: false, transformFunction: null }, zPerPageLabel: { classPropertyName: "zPerPageLabel", publicName: "zPerPageLabel", isSignal: true, isRequired: false, transformFunction: null }, zGoToLabel: { classPropertyName: "zGoToLabel", publicName: "zGoToLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { zOnPageChange: "zOnPageChange", zPageIndex: "zPageIndexChange", zPageSize: "zPageSizeChange" }, host: { classAttribute: "z-pagination flex items-center gap-2" }, ngImport: i0, template: "@if (zShowTotal()) {\n <span class=\"text-muted-foreground text-sm whitespace-nowrap\">{{ totalLabelText() }}</span>\n}\n\n@if (!zSimple()) {\n <!-- Page Size Selector -->\n @if (zShowSizeChanger()) {\n <z-select\n class=\"w-fit\"\n zSize=\"sm\"\n [zOptions]=\"pageSizeOptions()\"\n [ngModel]=\"zPageSize()\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"onPageSizeChange($event)\"\n [zDisabled]=\"zDisabled()\"\n [zShowSearch]=\"false\" />\n }\n\n <z-button-group class=\"z-pagination-pages\">\n <!-- Prev Button -->\n <z-button zType=\"outline\" zSize=\"sm\" [zDisabled]=\"!canGoPrev() || zDisabled()\" (click)=\"goToPrev()\">\n <z-icon zType=\"lucideChevronLeft\" zSize=\"16\" />\n </z-button>\n\n <!-- Page Numbers -->\n @for (page of visiblePages(); track $index) {\n @if (page === 'ellipsis') {\n <span\n class=\"z-pagination-ellipsis text-muted-foreground border-input flex h-8 w-8 items-center justify-center border-y border-r bg-transparent text-sm\">\n ...\n </span>\n } @else {\n <z-button\n zType=\"outline\"\n [zWave]=\"false\"\n zSize=\"sm\"\n [class]=\"\n page === zPageIndex() ? 'relative min-w-8 overflow-hidden !bg-transparent hover:!bg-transparent' : 'min-w-8'\n \"\n [zDisabled]=\"zDisabled()\"\n (click)=\"goToPage(page)\">\n @if (page === zPageIndex()) {\n <span class=\"bg-primary pointer-events-none absolute inset-[1px] rounded-sm\"></span>\n }\n <span [class]=\"page === zPageIndex() ? 'text-primary-foreground relative z-[1]' : ''\">{{ page }}</span>\n </z-button>\n }\n }\n\n <!-- Next Button -->\n <z-button zType=\"outline\" zSize=\"sm\" [zDisabled]=\"!canGoNext() || zDisabled()\" (click)=\"goToNext()\">\n <z-icon zType=\"lucideChevronRight\" zSize=\"16\" />\n </z-button>\n </z-button-group>\n\n <!-- Quick Jumper -->\n @if (zShowQuickJumper()) {\n <div class=\"flex items-center gap-2 text-sm\">\n <span class=\"text-muted-foreground whitespace-nowrap\">{{ goToLabelText() }}</span>\n <z-input\n zType=\"number\"\n zSize=\"sm\"\n class=\"w-14\"\n [ngModel]=\"zPageIndex()\"\n [ngModelOptions]=\"{ standalone: true }\"\n [zMin]=\"1\"\n [zMax]=\"totalPages()\"\n [zDisabled]=\"zDisabled()\"\n (keydown.enter)=\"onQuickJump($event)\"\n (blur)=\"onQuickJump($event)\" />\n </div>\n }\n} @else {\n <!-- Simple Mode -->\n <z-button-group>\n <z-button zType=\"outline\" zSize=\"sm\" [zDisabled]=\"!canGoPrev() || zDisabled()\" (click)=\"goToPrev()\">\n <z-icon zType=\"lucideChevronLeft\" zSize=\"16\" />\n <span class=\"ml-1\">{{ 'i18n_z_ui_pagination_previous' | translate }}</span>\n </z-button>\n\n <span class=\"text-muted-foreground border-input flex h-8 items-center border-y bg-transparent px-3 text-sm\">\n {{ zPageIndex() }} / {{ totalPages() }}\n </span>\n\n <z-button zType=\"outline\" zSize=\"sm\" [zDisabled]=\"!canGoNext() || zDisabled()\" (click)=\"goToNext()\">\n <span class=\"mr-1\">{{ 'i18n_z_ui_pagination_next' | translate }}</span>\n <z-icon zType=\"lucideChevronRight\" zSize=\"16\" />\n </z-button>\n </z-button-group>\n}\n", dependencies: [{ 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: ZButtonComponent, selector: "z-button, button[z-button], a[z-button]", inputs: ["class", "zType", "zSize", "zShape", "zLabel", "zLoading", "zDisabled", "zTypeIcon", "zAnimatedTypeIcon", "zAnimateIcon", "zAnimationTriggerIcon", "zSizeIcon", "zStrokeWidthIcon", "zWave"], exportAs: ["zButton"] }, { kind: "component", type: ZButtonGroupComponent, selector: "z-button-group", inputs: ["zClass", "zOrientation", "zActive"], outputs: ["zActiveChange", "zActiveIndexChange", "zActiveValueChange"], exportAs: ["zButtonGroup"] }, { kind: "component", type: ZIconComponent, selector: "z-icon, [z-icon]", inputs: ["class", "zType", "zAnimatedType", "zAnimate", "zAnimationTrigger", "zSize", "zStrokeWidth", "zSvg"] }, { kind: "component", type: ZInputComponent, selector: "z-input", inputs: ["class", "zType", "zSize", "zAlign", "zLabel", "zLabelClass", "zPlaceholder", "zRequired", "zDisabled", "zReadonly", "zLoading", "zLoadingOutline", "zPrefix", "zSuffix", "zMin", "zMax", "zStep", "zShowArrows", "zMask", "zDecimalPlaces", "zAllowNegative", "zThousandSeparator", "zDecimalMarker", "zValidators", "zAsyncValidators", "zAsyncDebounce", "zAsyncValidateOn", "zShowPasswordToggle", "zSearch", "zDebounce", "zAutofocus", "zAutoComplete", "zAllowClear", "zAutoSizeContent", "zRows", "zResize", "zMaxLength", "zAutoSuggest", "zColorConfig"], outputs: ["zOnSearch", "zOnChange", "zOnBlur", "zOnFocus", "zOnKeydown", "zOnEnter", "zOnColorCollapse", "zControl", "zEvent"], exportAs: ["zInput"] }, { kind: "component", type: ZSelectComponent, selector: "z-select", inputs: ["class", "zClassSelect", "zMode", "zSize", "zVariant", "zLabel", "zLabelClass", "zPlaceholder", "zRequired", "zDisabled", "zReadonly", "zLoading", "zLoadingOutline", "zPrefix", "zAllowClear", "zShowCheck", "zWrap", "zShowSearch", "zPlaceholderSearch", "zDebounce", "zNotFoundText", "zEmptyText", "zEmptyIcon", "zMaxTagCount", "zTagWidth", "zDropdownMaxHeight", "zDropdownWidth", "zOptionHeight", "zVirtualScroll", "zDynamicSize", "zShowAction", "zOptions", "zConfig", "zTranslateLabels", "zKey", "zSearchServer", "zLoadingMore", "zEnableLoadMore", "zScrollDistance", "zMaxVisible", "zScrollClose", "zSticky", "zPosition", "zTree", "zTreeRootLabel", "zSelectedTemplate", "zOptionTemplate", "zActionTemplate", "zAsyncValidators", "zAsyncDebounce", "zAsyncValidateOn", "zValidators"], outputs: ["zOnSearch", "zOnLoadMore", "zOnBlur", "zOnFocus", "zControl", "zEvent"], exportAs: ["zSelect"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
158
|
-
}
|
|
159
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ZPaginationComponent, decorators: [{
|
|
160
|
-
type: Component,
|
|
161
|
-
args: [{ selector: 'z-pagination', imports: [
|
|
162
|
-
FormsModule,
|
|
163
|
-
ZButtonComponent,
|
|
164
|
-
ZButtonGroupComponent,
|
|
165
|
-
ZIconComponent,
|
|
166
|
-
ZInputComponent,
|
|
167
|
-
ZSelectComponent,
|
|
168
|
-
TranslatePipe,
|
|
169
|
-
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
170
|
-
class: 'z-pagination flex items-center gap-2',
|
|
171
|
-
}, template: "@if (zShowTotal()) {\n <span class=\"text-muted-foreground text-sm whitespace-nowrap\">{{ totalLabelText() }}</span>\n}\n\n@if (!zSimple()) {\n <!-- Page Size Selector -->\n @if (zShowSizeChanger()) {\n <z-select\n class=\"w-fit\"\n zSize=\"sm\"\n [zOptions]=\"pageSizeOptions()\"\n [ngModel]=\"zPageSize()\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"onPageSizeChange($event)\"\n [zDisabled]=\"zDisabled()\"\n [zShowSearch]=\"false\" />\n }\n\n <z-button-group class=\"z-pagination-pages\">\n <!-- Prev Button -->\n <z-button zType=\"outline\" zSize=\"sm\" [zDisabled]=\"!canGoPrev() || zDisabled()\" (click)=\"goToPrev()\">\n <z-icon zType=\"lucideChevronLeft\" zSize=\"16\" />\n </z-button>\n\n <!-- Page Numbers -->\n @for (page of visiblePages(); track $index) {\n @if (page === 'ellipsis') {\n <span\n class=\"z-pagination-ellipsis text-muted-foreground border-input flex h-8 w-8 items-center justify-center border-y border-r bg-transparent text-sm\">\n ...\n </span>\n } @else {\n <z-button\n zType=\"outline\"\n [zWave]=\"false\"\n zSize=\"sm\"\n [class]=\"\n page === zPageIndex() ? 'relative min-w-8 overflow-hidden !bg-transparent hover:!bg-transparent' : 'min-w-8'\n \"\n [zDisabled]=\"zDisabled()\"\n (click)=\"goToPage(page)\">\n @if (page === zPageIndex()) {\n <span class=\"bg-primary pointer-events-none absolute inset-[1px] rounded-sm\"></span>\n }\n <span [class]=\"page === zPageIndex() ? 'text-primary-foreground relative z-[1]' : ''\">{{ page }}</span>\n </z-button>\n }\n }\n\n <!-- Next Button -->\n <z-button zType=\"outline\" zSize=\"sm\" [zDisabled]=\"!canGoNext() || zDisabled()\" (click)=\"goToNext()\">\n <z-icon zType=\"lucideChevronRight\" zSize=\"16\" />\n </z-button>\n </z-button-group>\n\n <!-- Quick Jumper -->\n @if (zShowQuickJumper()) {\n <div class=\"flex items-center gap-2 text-sm\">\n <span class=\"text-muted-foreground whitespace-nowrap\">{{ goToLabelText() }}</span>\n <z-input\n zType=\"number\"\n zSize=\"sm\"\n class=\"w-14\"\n [ngModel]=\"zPageIndex()\"\n [ngModelOptions]=\"{ standalone: true }\"\n [zMin]=\"1\"\n [zMax]=\"totalPages()\"\n [zDisabled]=\"zDisabled()\"\n (keydown.enter)=\"onQuickJump($event)\"\n (blur)=\"onQuickJump($event)\" />\n </div>\n }\n} @else {\n <!-- Simple Mode -->\n <z-button-group>\n <z-button zType=\"outline\" zSize=\"sm\" [zDisabled]=\"!canGoPrev() || zDisabled()\" (click)=\"goToPrev()\">\n <z-icon zType=\"lucideChevronLeft\" zSize=\"16\" />\n <span class=\"ml-1\">{{ 'i18n_z_ui_pagination_previous' | translate }}</span>\n </z-button>\n\n <span class=\"text-muted-foreground border-input flex h-8 items-center border-y bg-transparent px-3 text-sm\">\n {{ zPageIndex() }} / {{ totalPages() }}\n </span>\n\n <z-button zType=\"outline\" zSize=\"sm\" [zDisabled]=\"!canGoNext() || zDisabled()\" (click)=\"goToNext()\">\n <span class=\"mr-1\">{{ 'i18n_z_ui_pagination_next' | translate }}</span>\n <z-icon zType=\"lucideChevronRight\" zSize=\"16\" />\n </z-button>\n </z-button-group>\n}\n" }]
|
|
172
|
-
}], propDecorators: { zOnPageChange: [{ type: i0.Output, args: ["zOnPageChange"] }], zPageIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "zPageIndex", required: false }] }, { type: i0.Output, args: ["zPageIndexChange"] }], zPageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "zPageSize", required: false }] }, { type: i0.Output, args: ["zPageSizeChange"] }], zTotal: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTotal", required: true }] }], zPageSizeOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "zPageSizeOptions", required: false }] }], zShowSizeChanger: [{ type: i0.Input, args: [{ isSignal: true, alias: "zShowSizeChanger", required: false }] }], zShowQuickJumper: [{ type: i0.Input, args: [{ isSignal: true, alias: "zShowQuickJumper", required: false }] }], zShowTotal: [{ type: i0.Input, args: [{ isSignal: true, alias: "zShowTotal", required: false }] }], zSimple: [{ type: i0.Input, args: [{ isSignal: true, alias: "zSimple", required: false }] }], zSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "zSize", required: false }] }], zDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "zDisabled", required: false }] }], zTotalLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTotalLabel", required: false }] }], zPerPageLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "zPerPageLabel", required: false }] }], zGoToLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "zGoToLabel", required: false }] }] } });
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* Generated bundle index. Do not edit.
|
|
176
|
-
*/
|
|
177
|
-
|
|
178
|
-
export { ZPaginationComponent };
|
|
179
|
-
//# sourceMappingURL=shival99-z-ui-components-z-pagination.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shival99-z-ui-components-z-pagination.mjs","sources":["../../../../libs/core-ui/components/z-pagination/z-pagination.component.ts","../../../../libs/core-ui/components/z-pagination/z-pagination.component.html","../../../../libs/core-ui/components/z-pagination/shival99-z-ui-components-z-pagination.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, inject, input, model, output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ZButtonComponent } from '@shival99/z-ui/components/z-button';\nimport { ZButtonGroupComponent } from '@shival99/z-ui/components/z-button-group';\nimport { ZIconComponent } from '@shival99/z-ui/components/z-icon';\nimport { ZInputComponent } from '@shival99/z-ui/components/z-input';\nimport { ZSelectComponent } from '@shival99/z-ui/components/z-select';\nimport { ZTranslateService } from '@shival99/z-ui/services';\nimport type { ZPageChangeEvent, ZPaginationSize } from './z-pagination.types';\n\n@Component({\n selector: 'z-pagination',\n imports: [\n FormsModule,\n ZButtonComponent,\n ZButtonGroupComponent,\n ZIconComponent,\n ZInputComponent,\n ZSelectComponent,\n TranslatePipe,\n ],\n standalone: true,\n templateUrl: './z-pagination.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'z-pagination flex items-center gap-2',\n },\n})\nexport class ZPaginationComponent {\n private readonly _zTranslate = inject(ZTranslateService);\n\n public readonly zOnPageChange = output<ZPageChangeEvent>();\n\n public readonly zPageIndex = model<number>(1);\n public readonly zPageSize = model<number>(10);\n public readonly zTotal = input.required<number>();\n public readonly zPageSizeOptions = input<number[]>([10, 20, 50, 100]);\n public readonly zShowSizeChanger = input<boolean>(true);\n public readonly zShowQuickJumper = input<boolean>(false);\n public readonly zShowTotal = input<boolean>(true);\n public readonly zSimple = input<boolean>(false);\n public readonly zSize = input<ZPaginationSize>('default');\n public readonly zDisabled = input<boolean>(false);\n\n public readonly zTotalLabel = input<string | null>(null);\n public readonly zPerPageLabel = input<string | null>(null);\n public readonly zGoToLabel = input<string | null>(null);\n\n protected readonly totalLabelText = computed(() => {\n this._zTranslate.currentLang();\n if (this.zTotalLabel()) {\n return this.zTotalLabel()!.replace('{{total}}', String(this.zTotal()));\n }\n return this._zTranslate.instant('i18n_z_ui_pagination_total_label', { total: this.zTotal() });\n });\n\n protected readonly perPageLabelText = computed(() => {\n this._zTranslate.currentLang();\n return this.zPerPageLabel() ?? this._zTranslate.instant('i18n_z_ui_pagination_per_page');\n });\n\n protected readonly goToLabelText = computed(() => {\n this._zTranslate.currentLang();\n return this.zGoToLabel() ?? this._zTranslate.instant('i18n_z_ui_pagination_go_to');\n });\n\n protected readonly totalPages = computed(() => {\n const total = this.zTotal();\n const pageSize = this.zPageSize();\n return Math.max(1, Math.ceil(total / pageSize));\n });\n\n protected readonly pageSizeOptions = computed(() =>\n this.zPageSizeOptions().map(size => ({\n label: `${size} ${this.perPageLabelText()}`,\n value: size,\n }))\n );\n\n protected readonly visiblePages = computed(() => {\n const current = this.zPageIndex();\n const total = this.totalPages();\n const pages: (number | 'ellipsis')[] = [];\n const maxVisible = 5;\n\n if (total <= maxVisible) {\n for (let i = 1; i <= total; i++) {\n pages.push(i);\n }\n return pages;\n }\n\n pages.push(1);\n\n let startPage = Math.max(2, current - 1);\n let endPage = Math.min(total - 1, current + 1);\n\n if (current <= 3) {\n endPage = Math.min(total - 1, 3);\n } else if (current >= total - 2) {\n startPage = Math.max(2, total - 2);\n }\n\n if (startPage > 2) {\n pages.push('ellipsis');\n }\n\n for (let i = startPage; i <= endPage; i++) {\n pages.push(i);\n }\n\n if (endPage < total - 1) {\n pages.push('ellipsis');\n }\n\n pages.push(total);\n\n return pages;\n });\n\n protected readonly canGoPrev = computed(() => this.zPageIndex() > 1);\n protected readonly canGoNext = computed(() => this.zPageIndex() < this.totalPages());\n\n protected goToPage(page: number): void {\n if (page < 1 || page > this.totalPages()) {\n return;\n }\n if (page === this.zPageIndex()) {\n return;\n }\n\n this.zPageIndex.set(page);\n this._emitChange();\n }\n\n protected goToPrev(): void {\n if (!this.canGoPrev()) {\n return;\n }\n this.goToPage(this.zPageIndex() - 1);\n }\n\n protected goToNext(): void {\n if (!this.canGoNext()) {\n return;\n }\n this.goToPage(this.zPageIndex() + 1);\n }\n\n protected onPageSizeChange(size: unknown): void {\n const sizeValue =\n typeof size === 'object' && size !== null && 'value' in size\n ? (size as { value: number }).value\n : (size as number);\n if (!Number.isFinite(sizeValue) || sizeValue <= 0) {\n return;\n }\n\n this.zPageSize.set(sizeValue);\n this.zPageIndex.set(1);\n this._emitChange();\n }\n\n protected onQuickJump(event: Event): void {\n const input = event.target as HTMLInputElement;\n const page = parseInt(input.value, 10);\n\n if (isNaN(page) || page < 1 || page > this.totalPages()) {\n input.value = String(this.zPageIndex());\n return;\n }\n\n this.goToPage(page);\n }\n\n private _emitChange(): void {\n this.zOnPageChange.emit({\n pageIndex: this.zPageIndex(),\n pageSize: this.zPageSize(),\n });\n }\n}\n","@if (zShowTotal()) {\n <span class=\"text-muted-foreground text-sm whitespace-nowrap\">{{ totalLabelText() }}</span>\n}\n\n@if (!zSimple()) {\n <!-- Page Size Selector -->\n @if (zShowSizeChanger()) {\n <z-select\n class=\"w-fit\"\n zSize=\"sm\"\n [zOptions]=\"pageSizeOptions()\"\n [ngModel]=\"zPageSize()\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"onPageSizeChange($event)\"\n [zDisabled]=\"zDisabled()\"\n [zShowSearch]=\"false\" />\n }\n\n <z-button-group class=\"z-pagination-pages\">\n <!-- Prev Button -->\n <z-button zType=\"outline\" zSize=\"sm\" [zDisabled]=\"!canGoPrev() || zDisabled()\" (click)=\"goToPrev()\">\n <z-icon zType=\"lucideChevronLeft\" zSize=\"16\" />\n </z-button>\n\n <!-- Page Numbers -->\n @for (page of visiblePages(); track $index) {\n @if (page === 'ellipsis') {\n <span\n class=\"z-pagination-ellipsis text-muted-foreground border-input flex h-8 w-8 items-center justify-center border-y border-r bg-transparent text-sm\">\n ...\n </span>\n } @else {\n <z-button\n zType=\"outline\"\n [zWave]=\"false\"\n zSize=\"sm\"\n [class]=\"\n page === zPageIndex() ? 'relative min-w-8 overflow-hidden !bg-transparent hover:!bg-transparent' : 'min-w-8'\n \"\n [zDisabled]=\"zDisabled()\"\n (click)=\"goToPage(page)\">\n @if (page === zPageIndex()) {\n <span class=\"bg-primary pointer-events-none absolute inset-[1px] rounded-sm\"></span>\n }\n <span [class]=\"page === zPageIndex() ? 'text-primary-foreground relative z-[1]' : ''\">{{ page }}</span>\n </z-button>\n }\n }\n\n <!-- Next Button -->\n <z-button zType=\"outline\" zSize=\"sm\" [zDisabled]=\"!canGoNext() || zDisabled()\" (click)=\"goToNext()\">\n <z-icon zType=\"lucideChevronRight\" zSize=\"16\" />\n </z-button>\n </z-button-group>\n\n <!-- Quick Jumper -->\n @if (zShowQuickJumper()) {\n <div class=\"flex items-center gap-2 text-sm\">\n <span class=\"text-muted-foreground whitespace-nowrap\">{{ goToLabelText() }}</span>\n <z-input\n zType=\"number\"\n zSize=\"sm\"\n class=\"w-14\"\n [ngModel]=\"zPageIndex()\"\n [ngModelOptions]=\"{ standalone: true }\"\n [zMin]=\"1\"\n [zMax]=\"totalPages()\"\n [zDisabled]=\"zDisabled()\"\n (keydown.enter)=\"onQuickJump($event)\"\n (blur)=\"onQuickJump($event)\" />\n </div>\n }\n} @else {\n <!-- Simple Mode -->\n <z-button-group>\n <z-button zType=\"outline\" zSize=\"sm\" [zDisabled]=\"!canGoPrev() || zDisabled()\" (click)=\"goToPrev()\">\n <z-icon zType=\"lucideChevronLeft\" zSize=\"16\" />\n <span class=\"ml-1\">{{ 'i18n_z_ui_pagination_previous' | translate }}</span>\n </z-button>\n\n <span class=\"text-muted-foreground border-input flex h-8 items-center border-y bg-transparent px-3 text-sm\">\n {{ zPageIndex() }} / {{ totalPages() }}\n </span>\n\n <z-button zType=\"outline\" zSize=\"sm\" [zDisabled]=\"!canGoNext() || zDisabled()\" (click)=\"goToNext()\">\n <span class=\"mr-1\">{{ 'i18n_z_ui_pagination_next' | translate }}</span>\n <z-icon zType=\"lucideChevronRight\" zSize=\"16\" />\n </z-button>\n </z-button-group>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|