@shival99/z-ui 2.4.12 → 2.5.0
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.
|
@@ -121,12 +121,20 @@ const MEDIA_PLAYER_VI_PLYR_TRANSLATIONS = {
|
|
|
121
121
|
Volume: 'Âm lượng',
|
|
122
122
|
};
|
|
123
123
|
|
|
124
|
+
/**
|
|
125
|
+
* Vidstack infers the real type on its own (blob URLs -> `video/object`, otherwise a HEAD
|
|
126
|
+
* request) whenever it receives a falsy `type`, but only if we don't hand it a guess first —
|
|
127
|
+
* an explicit (even wrong) type always wins over that inference. So a genuinely unknown
|
|
128
|
+
* `video`/`audio` type must stay empty here rather than defaulting to a specific MIME type.
|
|
129
|
+
* The cast is required because Vidstack's own `MediaSrc` union only models the literal MIME
|
|
130
|
+
* types, not the empty-string "please infer" signal its runtime actually accepts.
|
|
131
|
+
*/
|
|
124
132
|
function mapSourceToProviderProps(source) {
|
|
125
133
|
switch (source.kind) {
|
|
126
134
|
case 'video':
|
|
127
|
-
return { src: source.src, type: source.type
|
|
135
|
+
return { src: source.src, type: (source.type ?? '') };
|
|
128
136
|
case 'audio':
|
|
129
|
-
return { src: source.src, type: source.type
|
|
137
|
+
return { src: source.src, type: (source.type ?? '') };
|
|
130
138
|
case 'hls':
|
|
131
139
|
return { src: source.src, type: 'application/x-mpegurl' };
|
|
132
140
|
case 'dash':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shival99-z-ui-components-z-media-player.mjs","sources":["../../../../libs/core-ui/components/z-media-player/z-media-player.define.ts","../../../../libs/core-ui/components/z-media-player/z-media-player.utils.ts","../../../../libs/core-ui/components/z-media-player/z-media-player.variants.ts","../../../../libs/core-ui/components/z-media-player/z-media-player.component.ts","../../../../libs/core-ui/components/z-media-player/z-media-player.component.html","../../../../libs/core-ui/components/z-media-player/shival99-z-ui-components-z-media-player.ts"],"sourcesContent":["import type { DefaultLayoutTranslations, PlyrLayoutTranslations } from 'vidstack';\nimport type { ZMediaPlayerConfig } from './z-media-player.types';\n\nexport const DEFAULT_MEDIA_PLAYER_CONFIG: ZMediaPlayerConfig = {\n autoPlay: false,\n loop: false,\n muted: false,\n volume: 1,\n playbackRate: 1,\n subtitles: [],\n thumbnailsVtt: '',\n chaptersVtt: '',\n playsInline: true,\n};\n\n/** Vietnamese translation of Vidstack's Default Layout UI words, applied when the app language is `vi`. */\nexport const MEDIA_PLAYER_VI_DEFAULT_TRANSLATIONS: Partial<DefaultLayoutTranslations> = {\n Announcements: 'Thông báo',\n Accessibility: 'Trợ năng',\n AirPlay: 'AirPlay',\n Audio: 'Âm thanh',\n Auto: 'Tự động',\n Boost: 'Tăng cường',\n Captions: 'Phụ đề',\n 'Caption Styles': 'Kiểu phụ đề',\n 'Captions look like this': 'Phụ đề trông như thế này',\n Chapters: 'Chương',\n 'Closed-Captions Off': 'Tắt phụ đề',\n 'Closed-Captions On': 'Bật phụ đề',\n Connected: 'Đã kết nối',\n Continue: 'Tiếp tục',\n Connecting: 'Đang kết nối',\n Default: 'Mặc định',\n Disabled: 'Đã tắt',\n Disconnected: 'Đã ngắt kết nối',\n 'Display Background': 'Nền hiển thị',\n Download: 'Tải xuống',\n 'Enter Fullscreen': 'Vào toàn màn hình',\n 'Enter PiP': 'Vào chế độ nổi',\n 'Exit Fullscreen': 'Thoát toàn màn hình',\n 'Exit PiP': 'Thoát chế độ nổi',\n Font: 'Phông chữ',\n Family: 'Kiểu chữ',\n Fullscreen: 'Toàn màn hình',\n 'Google Cast': 'Google Cast',\n 'Keyboard Animations': 'Hiệu ứng phím tắt',\n LIVE: 'TRỰC TIẾP',\n Loop: 'Lặp lại',\n Mute: 'Tắt tiếng',\n Normal: 'Bình thường',\n Off: 'Tắt',\n Pause: 'Tạm dừng',\n Play: 'Phát',\n Playback: 'Phát lại',\n PiP: 'Nổi',\n Quality: 'Chất lượng',\n Replay: 'Phát lại',\n Reset: 'Đặt lại',\n 'Seek Backward': 'Tua lùi',\n 'Seek Forward': 'Tua tới',\n Seek: 'Tua',\n Settings: 'Cài đặt',\n 'Skip To Live': 'Về trực tiếp',\n Speed: 'Tốc độ',\n Size: 'Kích thước',\n Color: 'Màu sắc',\n Opacity: 'Độ mờ',\n Shadow: 'Đổ bóng',\n Text: 'Văn bản',\n 'Text Background': 'Nền văn bản',\n Track: 'Track',\n Unmute: 'Bật tiếng',\n Volume: 'Âm lượng',\n};\n\n/** Vietnamese translation of Vidstack's Plyr Layout UI words, applied when the app language is `vi`. */\nexport const MEDIA_PLAYER_VI_PLYR_TRANSLATIONS: Partial<PlyrLayoutTranslations> = {\n Ad: 'Quảng cáo',\n All: 'Tất cả',\n AirPlay: 'AirPlay',\n Audio: 'Âm thanh',\n Auto: 'Tự động',\n Buffered: 'Đã tải đệm',\n Captions: 'Phụ đề',\n 'Current time': 'Thời gian hiện tại',\n Default: 'Mặc định',\n 'Disable captions': 'Tắt phụ đề',\n Disabled: 'Đã tắt',\n Download: 'Tải xuống',\n Duration: 'Thời lượng',\n 'Enable captions': 'Bật phụ đề',\n Enabled: 'Đã bật',\n End: 'Kết thúc',\n 'Enter Fullscreen': 'Vào toàn màn hình',\n 'Exit Fullscreen': 'Thoát toàn màn hình',\n Forward: 'Tua tới',\n 'Go back to previous menu': 'Quay lại menu trước',\n LIVE: 'TRỰC TIẾP',\n Loop: 'Lặp lại',\n Mute: 'Tắt tiếng',\n Normal: 'Bình thường',\n Pause: 'Tạm dừng',\n 'Enter PiP': 'Vào chế độ nổi',\n 'Exit PiP': 'Thoát chế độ nổi',\n Play: 'Phát',\n Played: 'Đã phát',\n Quality: 'Chất lượng',\n Reset: 'Đặt lại',\n Restart: 'Phát lại từ đầu',\n Rewind: 'Tua lùi',\n Seek: 'Tua',\n Settings: 'Cài đặt',\n Speed: 'Tốc độ',\n Start: 'Bắt đầu',\n Unmute: 'Bật tiếng',\n Volume: 'Âm lượng',\n};\n","import type { MediaSrc } from 'vidstack';\nimport type {\n ZMediaPlayerSource,\n ZMediaPlayerSnapshot,\n ZMediaPlayerStateChange,\n ZMediaPlayerStateEvent,\n ZMediaPlayerVidstackState,\n} from './z-media-player.types';\n\nexport function mapSourceToProviderProps(source: ZMediaPlayerSource): MediaSrc {\n switch (source.kind) {\n case 'video':\n return { src: source.src, type: source.type || 'video/mp4' };\n case 'audio':\n return { src: source.src, type: source.type || 'audio/mpeg' };\n case 'hls':\n return { src: source.src, type: 'application/x-mpegurl' };\n case 'dash':\n return { src: source.src, type: 'application/dash+xml' };\n case 'youtube':\n return { src: source.src, type: 'video/youtube' };\n case 'vimeo':\n return { src: source.src, type: 'video/vimeo' };\n }\n}\n\n/**\n * Vidstack's own thumbnail-storyboard loader only resolves relative sprite paths inside a VTT\n * file against the VTT's own URL when that URL is itself absolute (`^https?:`); a root-relative\n * path like `/assets/foo.vtt` makes it silently fall back to resolving against the current page\n * URL instead, breaking the sprite image path. Resolving to an absolute URL up front avoids that.\n */\nexport function resolveAbsoluteUrl(url: string | null | undefined): string | null {\n if (!url) {\n return null;\n }\n try {\n return new URL(url, document.baseURI).href;\n } catch {\n return url;\n }\n}\n\n/** Assigns non-`undefined` entries of `source` onto `target`, leaving its own defaults for omitted keys. */\nexport function assignDefinedProperties<T extends object>(target: T, source: Record<string, unknown>): void {\n for (const [key, value] of Object.entries(source)) {\n if (value !== undefined) {\n (target as Record<string, unknown>)[key] = value;\n }\n }\n}\n\nexport function buildStateChange(\n event: ZMediaPlayerStateEvent,\n state: ZMediaPlayerVidstackState,\n activeSourceLabel: string | null\n): ZMediaPlayerStateChange {\n const bufferedEnd =\n typeof state.bufferedEnd === 'number'\n ? state.bufferedEnd\n : state.buffered && state.buffered.length > 0\n ? state.buffered.end(state.buffered.length - 1)\n : 0;\n const snapshot: ZMediaPlayerSnapshot = {\n paused: state.paused,\n playing: state.playing,\n ended: state.ended,\n waiting: state.waiting,\n currentTime: state.currentTime,\n duration: state.duration,\n volume: state.volume,\n muted: state.muted,\n playbackRate: state.playbackRate,\n bufferedRatio: state.duration > 0 ? Math.min(1, bufferedEnd / state.duration) : 0,\n fullscreen: state.fullscreen,\n theaterMode: false,\n pictureInPicture: state.pictureInPicture,\n activeSourceLabel,\n activeCaptionsLabel: state.textTrack?.label ?? null,\n };\n\n return { event, state: snapshot };\n}\n","import { cva } from 'class-variance-authority';\n\nexport const zMediaPlayerVariants = cva(\n 'relative overflow-hidden bg-black select-none transition-all duration-300 w-full flex flex-col justify-center items-center group/player outline-none',\n {\n variants: {\n zLayout: {\n default: 'aspect-video rounded-sm shadow-sm border border-border max-w-5xl mx-auto',\n },\n },\n defaultVariants: {\n zLayout: 'default',\n },\n }\n);\n","import {\n ChangeDetectionStrategy,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n computed,\n effect,\n ElementRef,\n inject,\n input,\n output,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ZThemeService, ZTranslateService } from '@shival99/z-ui/services';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport type { DefaultLayoutTranslations, PlyrLayoutTranslations } from 'vidstack';\nimport type { MediaPlayerElement } from 'vidstack/elements';\nimport {\n DEFAULT_MEDIA_PLAYER_CONFIG,\n MEDIA_PLAYER_VI_DEFAULT_TRANSLATIONS,\n MEDIA_PLAYER_VI_PLYR_TRANSLATIONS,\n} from './z-media-player.define';\nimport type {\n ZMediaPlayerConfig,\n ZMediaPlayerDefaultLayoutConfig,\n ZMediaPlayerError,\n ZMediaPlayerPlyrLayoutConfig,\n ZMediaPlayerSkin,\n ZMediaPlayerSnapshot,\n ZMediaPlayerSource,\n ZMediaPlayerStateChange,\n ZMediaPlayerStateEvent,\n} from './z-media-player.types';\nimport {\n assignDefinedProperties,\n buildStateChange,\n mapSourceToProviderProps,\n resolveAbsoluteUrl,\n} from './z-media-player.utils';\nimport { zMediaPlayerVariants } from './z-media-player.variants';\n\nimport 'vidstack/player';\nimport 'vidstack/player/ui';\nimport 'vidstack/player/layouts/default';\nimport 'vidstack/player/layouts/plyr';\n\n/**\n * Video, audio, HLS, DASH, YouTube, and Vimeo use Vidstack's Default or Plyr Layout skin\n * (`zSkin`). `zConfig` mirrors Vidstack's own `<media-player>` props; `zDefaultLayoutConfig` /\n * `zPlyrLayoutConfig` mirror the props of the currently active skin.\n */\n@Component({\n selector: 'z-media-player',\n standalone: true,\n templateUrl: './z-media-player.component.html',\n styleUrl: './z-media-player.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'zClasses()',\n },\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class ZMediaPlayerComponent {\n private readonly _themeService = inject(ZThemeService, { optional: true });\n private readonly _translateService = inject(ZTranslateService, { optional: true });\n\n public readonly class = input<ClassValue>('');\n public readonly zSources = input.required<ZMediaPlayerSource[]>();\n public readonly zConfig = input<Partial<ZMediaPlayerConfig>>({});\n public readonly zSkin = input<ZMediaPlayerSkin>('default');\n public readonly zDefaultLayoutConfig = input<ZMediaPlayerDefaultLayoutConfig>({});\n public readonly zPlyrLayoutConfig = input<ZMediaPlayerPlyrLayoutConfig>({});\n public readonly zStateChange = output<ZMediaPlayerStateChange>();\n public readonly zError = output<ZMediaPlayerError>();\n\n protected readonly playerElement = viewChild<ElementRef<MediaPlayerElement>>('playerElement');\n protected readonly layoutElement = viewChild<ElementRef<HTMLElement>>('layoutElement');\n protected readonly activeSource = computed<ZMediaPlayerSource | null>(() => {\n const sources = this.zSources();\n return sources.find(source => source.default) ?? sources[0] ?? null;\n });\n\n protected readonly isAudioSource = computed(() => this.activeSource()?.kind === 'audio');\n protected readonly isPlyrSkin = computed(() => this.zSkin() === 'plyr');\n protected readonly colorScheme = computed<'light' | 'dark' | 'system'>(() => {\n if (!this._themeService) {\n return 'system';\n }\n return this._themeService.isDark() ? 'dark' : 'light';\n });\n\n private readonly _isVietnamese = computed(() => (this._translateService?.currentLang() ?? 'en') === 'vi');\n protected readonly defaultLayoutTranslations = computed<Partial<DefaultLayoutTranslations> | null>(() => {\n const base = this._isVietnamese() ? MEDIA_PLAYER_VI_DEFAULT_TRANSLATIONS : null;\n const override = this.zDefaultLayoutConfig().translations;\n return base || override ? { ...base, ...override } : null;\n });\n\n protected readonly plyrLayoutTranslations = computed<Partial<PlyrLayoutTranslations> | null>(() => {\n const base = this._isVietnamese() ? MEDIA_PLAYER_VI_PLYR_TRANSLATIONS : null;\n const override = this.zPlyrLayoutConfig().translations;\n return base || override ? { ...base, ...override } : null;\n });\n\n protected readonly state = signal<ZMediaPlayerSnapshot>({\n paused: true,\n playing: false,\n ended: false,\n waiting: false,\n currentTime: 0,\n duration: 0,\n volume: DEFAULT_MEDIA_PLAYER_CONFIG.volume ?? 1,\n muted: DEFAULT_MEDIA_PLAYER_CONFIG.muted ?? false,\n playbackRate: DEFAULT_MEDIA_PLAYER_CONFIG.playbackRate ?? 1,\n bufferedRatio: 0,\n fullscreen: false,\n theaterMode: false,\n pictureInPicture: false,\n activeSourceLabel: null,\n activeCaptionsLabel: null,\n });\n\n protected readonly zClasses = computed(() => zMergeClasses(zMediaPlayerVariants(), this.class()));\n\n constructor() {\n effect(() => {\n const player = this.playerElement()?.nativeElement;\n const sources = this.zSources();\n const source = this.activeSource();\n if (!player || !source || sources.length === 0) {\n return;\n }\n\n const {\n subtitles: _subtitles,\n thumbnailsVtt: _thumbnailsVtt,\n chaptersVtt: _chaptersVtt,\n ...playerProps\n } = {\n ...DEFAULT_MEDIA_PLAYER_CONFIG,\n ...this.zConfig(),\n };\n const orderedSources = [...sources].sort(\n (left, right) => Number(Boolean(right.default)) - Number(Boolean(left.default))\n );\n const providerSources = orderedSources.map(mapSourceToProviderProps);\n player.src = providerSources.length === 1 ? providerSources[0] : providerSources;\n assignDefinedProperties(player, playerProps);\n });\n\n effect(() => {\n const layout = this.layoutElement()?.nativeElement;\n if (!layout) {\n return;\n }\n\n const thumbnails = resolveAbsoluteUrl(this.zConfig().thumbnailsVtt);\n if (this.isPlyrSkin()) {\n assignDefinedProperties(layout, {\n thumbnails,\n translations: this.plyrLayoutTranslations(),\n ...this.zPlyrLayoutConfig(),\n });\n return;\n }\n\n assignDefinedProperties(layout, {\n thumbnails,\n colorScheme: this.colorScheme(),\n translations: this.defaultLayoutTranslations(),\n ...this.zDefaultLayoutConfig(),\n });\n });\n\n effect(onCleanup => {\n const player = this.playerElement()?.nativeElement;\n if (!player) {\n return;\n }\n\n const stateSubscription = player.subscribe(nextState => this._syncState(nextState));\n const eventMap: Readonly<Record<string, ZMediaPlayerStateEvent>> = {\n 'loaded-data': 'loaded',\n play: 'play',\n pause: 'pause',\n ended: 'ended',\n 'time-update': 'time-update',\n 'volume-change': 'volume-change',\n 'rate-change': 'rate-change',\n 'fullscreen-change': 'fullscreen-change',\n 'picture-in-picture-change': 'pip-change',\n 'source-change': 'source-change',\n 'text-track-change': 'subtitle-change',\n waiting: 'waiting',\n 'can-play': 'can-play',\n };\n const listeners = Object.entries(eventMap).map(([eventName, event]) => {\n const listener = () => this._emitStateChange(event);\n player.addEventListener(eventName, listener);\n return () => player.removeEventListener(eventName, listener);\n });\n const onError = (event: Event) => this._emitError(event);\n const onProviderChange = (event: Event) => this._configureStreamingProvider(event);\n player.addEventListener('error', onError);\n player.addEventListener('provider-change', onProviderChange);\n\n onCleanup(() => {\n stateSubscription();\n listeners.forEach(cleanup => cleanup());\n player.removeEventListener('error', onError);\n player.removeEventListener('provider-change', onProviderChange);\n });\n });\n }\n\n private _syncState(nextState: unknown): void {\n const player = this.playerElement()?.nativeElement;\n if (!player) {\n return;\n }\n\n const patch = nextState && typeof nextState === 'object' ? nextState : {};\n const state = { ...player.state, ...patch } as Parameters<typeof buildStateChange>[1];\n this.state.set(buildStateChange('time-update', state, this.activeSource()?.label ?? null).state);\n }\n\n private _emitStateChange(event: ZMediaPlayerStateEvent): void {\n const player = this.playerElement()?.nativeElement;\n if (!player) {\n return;\n }\n\n const change = buildStateChange(\n event,\n player.state as Parameters<typeof buildStateChange>[1],\n this.activeSource()?.label ?? null\n );\n this.state.set(change.state);\n this.zStateChange.emit(change);\n }\n\n private _emitError(event: Event): void {\n const { detail } = event as CustomEvent<unknown>;\n const error = detail && typeof detail === 'object' ? (detail as Record<string, unknown>) : {};\n this.zError.emit({\n message: typeof error['message'] === 'string' ? error['message'] : 'Media playback error',\n code: typeof error['code'] === 'string' || typeof error['code'] === 'number' ? error['code'] : undefined,\n source: 'provider',\n raw: detail,\n });\n }\n\n private _configureStreamingProvider(event: Event): void {\n const source = this.activeSource();\n const { detail } = event as CustomEvent<unknown>;\n if (!source || !detail || typeof detail !== 'object') {\n return;\n }\n\n const provider = detail as { library?: unknown };\n if (source.kind === 'hls') {\n provider.library = () => import('hls.js');\n return;\n }\n if (source.kind === 'dash') {\n provider.library = () => import('dashjs');\n }\n }\n}\n","<media-player #playerElement>\n <media-provider>\n @for (subtitle of zConfig().subtitles ?? []; track subtitle.src) {\n <track\n kind=\"subtitles\"\n [label]=\"subtitle.label\"\n [src]=\"subtitle.src\"\n [srclang]=\"subtitle.srclang\"\n [default]=\"subtitle.default ?? false\" />\n }\n @if (zConfig().chaptersVtt) {\n <track kind=\"chapters\" [src]=\"zConfig().chaptersVtt!\" />\n }\n </media-provider>\n\n @if (isPlyrSkin()) {\n <media-plyr-layout #layoutElement></media-plyr-layout>\n } @else if (isAudioSource()) {\n <media-audio-layout #layoutElement></media-audio-layout>\n } @else {\n <media-video-layout #layoutElement></media-video-layout>\n }\n</media-player>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shival99-z-ui-components-z-media-player.mjs","sources":["../../../../libs/core-ui/components/z-media-player/z-media-player.define.ts","../../../../libs/core-ui/components/z-media-player/z-media-player.utils.ts","../../../../libs/core-ui/components/z-media-player/z-media-player.variants.ts","../../../../libs/core-ui/components/z-media-player/z-media-player.component.ts","../../../../libs/core-ui/components/z-media-player/z-media-player.component.html","../../../../libs/core-ui/components/z-media-player/shival99-z-ui-components-z-media-player.ts"],"sourcesContent":["import type { DefaultLayoutTranslations, PlyrLayoutTranslations } from 'vidstack';\nimport type { ZMediaPlayerConfig } from './z-media-player.types';\n\nexport const DEFAULT_MEDIA_PLAYER_CONFIG: ZMediaPlayerConfig = {\n autoPlay: false,\n loop: false,\n muted: false,\n volume: 1,\n playbackRate: 1,\n subtitles: [],\n thumbnailsVtt: '',\n chaptersVtt: '',\n playsInline: true,\n};\n\n/** Vietnamese translation of Vidstack's Default Layout UI words, applied when the app language is `vi`. */\nexport const MEDIA_PLAYER_VI_DEFAULT_TRANSLATIONS: Partial<DefaultLayoutTranslations> = {\n Announcements: 'Thông báo',\n Accessibility: 'Trợ năng',\n AirPlay: 'AirPlay',\n Audio: 'Âm thanh',\n Auto: 'Tự động',\n Boost: 'Tăng cường',\n Captions: 'Phụ đề',\n 'Caption Styles': 'Kiểu phụ đề',\n 'Captions look like this': 'Phụ đề trông như thế này',\n Chapters: 'Chương',\n 'Closed-Captions Off': 'Tắt phụ đề',\n 'Closed-Captions On': 'Bật phụ đề',\n Connected: 'Đã kết nối',\n Continue: 'Tiếp tục',\n Connecting: 'Đang kết nối',\n Default: 'Mặc định',\n Disabled: 'Đã tắt',\n Disconnected: 'Đã ngắt kết nối',\n 'Display Background': 'Nền hiển thị',\n Download: 'Tải xuống',\n 'Enter Fullscreen': 'Vào toàn màn hình',\n 'Enter PiP': 'Vào chế độ nổi',\n 'Exit Fullscreen': 'Thoát toàn màn hình',\n 'Exit PiP': 'Thoát chế độ nổi',\n Font: 'Phông chữ',\n Family: 'Kiểu chữ',\n Fullscreen: 'Toàn màn hình',\n 'Google Cast': 'Google Cast',\n 'Keyboard Animations': 'Hiệu ứng phím tắt',\n LIVE: 'TRỰC TIẾP',\n Loop: 'Lặp lại',\n Mute: 'Tắt tiếng',\n Normal: 'Bình thường',\n Off: 'Tắt',\n Pause: 'Tạm dừng',\n Play: 'Phát',\n Playback: 'Phát lại',\n PiP: 'Nổi',\n Quality: 'Chất lượng',\n Replay: 'Phát lại',\n Reset: 'Đặt lại',\n 'Seek Backward': 'Tua lùi',\n 'Seek Forward': 'Tua tới',\n Seek: 'Tua',\n Settings: 'Cài đặt',\n 'Skip To Live': 'Về trực tiếp',\n Speed: 'Tốc độ',\n Size: 'Kích thước',\n Color: 'Màu sắc',\n Opacity: 'Độ mờ',\n Shadow: 'Đổ bóng',\n Text: 'Văn bản',\n 'Text Background': 'Nền văn bản',\n Track: 'Track',\n Unmute: 'Bật tiếng',\n Volume: 'Âm lượng',\n};\n\n/** Vietnamese translation of Vidstack's Plyr Layout UI words, applied when the app language is `vi`. */\nexport const MEDIA_PLAYER_VI_PLYR_TRANSLATIONS: Partial<PlyrLayoutTranslations> = {\n Ad: 'Quảng cáo',\n All: 'Tất cả',\n AirPlay: 'AirPlay',\n Audio: 'Âm thanh',\n Auto: 'Tự động',\n Buffered: 'Đã tải đệm',\n Captions: 'Phụ đề',\n 'Current time': 'Thời gian hiện tại',\n Default: 'Mặc định',\n 'Disable captions': 'Tắt phụ đề',\n Disabled: 'Đã tắt',\n Download: 'Tải xuống',\n Duration: 'Thời lượng',\n 'Enable captions': 'Bật phụ đề',\n Enabled: 'Đã bật',\n End: 'Kết thúc',\n 'Enter Fullscreen': 'Vào toàn màn hình',\n 'Exit Fullscreen': 'Thoát toàn màn hình',\n Forward: 'Tua tới',\n 'Go back to previous menu': 'Quay lại menu trước',\n LIVE: 'TRỰC TIẾP',\n Loop: 'Lặp lại',\n Mute: 'Tắt tiếng',\n Normal: 'Bình thường',\n Pause: 'Tạm dừng',\n 'Enter PiP': 'Vào chế độ nổi',\n 'Exit PiP': 'Thoát chế độ nổi',\n Play: 'Phát',\n Played: 'Đã phát',\n Quality: 'Chất lượng',\n Reset: 'Đặt lại',\n Restart: 'Phát lại từ đầu',\n Rewind: 'Tua lùi',\n Seek: 'Tua',\n Settings: 'Cài đặt',\n Speed: 'Tốc độ',\n Start: 'Bắt đầu',\n Unmute: 'Bật tiếng',\n Volume: 'Âm lượng',\n};\n","import type { AudioMimeType, MediaSrc, VideoMimeType } from 'vidstack';\nimport type {\n ZMediaPlayerSource,\n ZMediaPlayerSnapshot,\n ZMediaPlayerStateChange,\n ZMediaPlayerStateEvent,\n ZMediaPlayerVidstackState,\n} from './z-media-player.types';\n\n/**\n * Vidstack infers the real type on its own (blob URLs -> `video/object`, otherwise a HEAD\n * request) whenever it receives a falsy `type`, but only if we don't hand it a guess first —\n * an explicit (even wrong) type always wins over that inference. So a genuinely unknown\n * `video`/`audio` type must stay empty here rather than defaulting to a specific MIME type.\n * The cast is required because Vidstack's own `MediaSrc` union only models the literal MIME\n * types, not the empty-string \"please infer\" signal its runtime actually accepts.\n */\nexport function mapSourceToProviderProps(source: ZMediaPlayerSource): MediaSrc {\n switch (source.kind) {\n case 'video':\n return { src: source.src, type: (source.type ?? '') as VideoMimeType };\n case 'audio':\n return { src: source.src, type: (source.type ?? '') as AudioMimeType };\n case 'hls':\n return { src: source.src, type: 'application/x-mpegurl' };\n case 'dash':\n return { src: source.src, type: 'application/dash+xml' };\n case 'youtube':\n return { src: source.src, type: 'video/youtube' };\n case 'vimeo':\n return { src: source.src, type: 'video/vimeo' };\n }\n}\n\n/**\n * Vidstack's own thumbnail-storyboard loader only resolves relative sprite paths inside a VTT\n * file against the VTT's own URL when that URL is itself absolute (`^https?:`); a root-relative\n * path like `/assets/foo.vtt` makes it silently fall back to resolving against the current page\n * URL instead, breaking the sprite image path. Resolving to an absolute URL up front avoids that.\n */\nexport function resolveAbsoluteUrl(url: string | null | undefined): string | null {\n if (!url) {\n return null;\n }\n try {\n return new URL(url, document.baseURI).href;\n } catch {\n return url;\n }\n}\n\n/** Assigns non-`undefined` entries of `source` onto `target`, leaving its own defaults for omitted keys. */\nexport function assignDefinedProperties<T extends object>(target: T, source: Record<string, unknown>): void {\n for (const [key, value] of Object.entries(source)) {\n if (value !== undefined) {\n (target as Record<string, unknown>)[key] = value;\n }\n }\n}\n\nexport function buildStateChange(\n event: ZMediaPlayerStateEvent,\n state: ZMediaPlayerVidstackState,\n activeSourceLabel: string | null\n): ZMediaPlayerStateChange {\n const bufferedEnd =\n typeof state.bufferedEnd === 'number'\n ? state.bufferedEnd\n : state.buffered && state.buffered.length > 0\n ? state.buffered.end(state.buffered.length - 1)\n : 0;\n const snapshot: ZMediaPlayerSnapshot = {\n paused: state.paused,\n playing: state.playing,\n ended: state.ended,\n waiting: state.waiting,\n currentTime: state.currentTime,\n duration: state.duration,\n volume: state.volume,\n muted: state.muted,\n playbackRate: state.playbackRate,\n bufferedRatio: state.duration > 0 ? Math.min(1, bufferedEnd / state.duration) : 0,\n fullscreen: state.fullscreen,\n theaterMode: false,\n pictureInPicture: state.pictureInPicture,\n activeSourceLabel,\n activeCaptionsLabel: state.textTrack?.label ?? null,\n };\n\n return { event, state: snapshot };\n}\n","import { cva } from 'class-variance-authority';\n\nexport const zMediaPlayerVariants = cva(\n 'relative overflow-hidden bg-black select-none transition-all duration-300 w-full flex flex-col justify-center items-center group/player outline-none',\n {\n variants: {\n zLayout: {\n default: 'aspect-video rounded-sm shadow-sm border border-border max-w-5xl mx-auto',\n },\n },\n defaultVariants: {\n zLayout: 'default',\n },\n }\n);\n","import {\n ChangeDetectionStrategy,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n computed,\n effect,\n ElementRef,\n inject,\n input,\n output,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ZThemeService, ZTranslateService } from '@shival99/z-ui/services';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport type { DefaultLayoutTranslations, PlyrLayoutTranslations } from 'vidstack';\nimport type { MediaPlayerElement } from 'vidstack/elements';\nimport {\n DEFAULT_MEDIA_PLAYER_CONFIG,\n MEDIA_PLAYER_VI_DEFAULT_TRANSLATIONS,\n MEDIA_PLAYER_VI_PLYR_TRANSLATIONS,\n} from './z-media-player.define';\nimport type {\n ZMediaPlayerConfig,\n ZMediaPlayerDefaultLayoutConfig,\n ZMediaPlayerError,\n ZMediaPlayerPlyrLayoutConfig,\n ZMediaPlayerSkin,\n ZMediaPlayerSnapshot,\n ZMediaPlayerSource,\n ZMediaPlayerStateChange,\n ZMediaPlayerStateEvent,\n} from './z-media-player.types';\nimport {\n assignDefinedProperties,\n buildStateChange,\n mapSourceToProviderProps,\n resolveAbsoluteUrl,\n} from './z-media-player.utils';\nimport { zMediaPlayerVariants } from './z-media-player.variants';\n\nimport 'vidstack/player';\nimport 'vidstack/player/ui';\nimport 'vidstack/player/layouts/default';\nimport 'vidstack/player/layouts/plyr';\n\n/**\n * Video, audio, HLS, DASH, YouTube, and Vimeo use Vidstack's Default or Plyr Layout skin\n * (`zSkin`). `zConfig` mirrors Vidstack's own `<media-player>` props; `zDefaultLayoutConfig` /\n * `zPlyrLayoutConfig` mirror the props of the currently active skin.\n */\n@Component({\n selector: 'z-media-player',\n standalone: true,\n templateUrl: './z-media-player.component.html',\n styleUrl: './z-media-player.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'zClasses()',\n },\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class ZMediaPlayerComponent {\n private readonly _themeService = inject(ZThemeService, { optional: true });\n private readonly _translateService = inject(ZTranslateService, { optional: true });\n\n public readonly class = input<ClassValue>('');\n public readonly zSources = input.required<ZMediaPlayerSource[]>();\n public readonly zConfig = input<Partial<ZMediaPlayerConfig>>({});\n public readonly zSkin = input<ZMediaPlayerSkin>('default');\n public readonly zDefaultLayoutConfig = input<ZMediaPlayerDefaultLayoutConfig>({});\n public readonly zPlyrLayoutConfig = input<ZMediaPlayerPlyrLayoutConfig>({});\n public readonly zStateChange = output<ZMediaPlayerStateChange>();\n public readonly zError = output<ZMediaPlayerError>();\n\n protected readonly playerElement = viewChild<ElementRef<MediaPlayerElement>>('playerElement');\n protected readonly layoutElement = viewChild<ElementRef<HTMLElement>>('layoutElement');\n protected readonly activeSource = computed<ZMediaPlayerSource | null>(() => {\n const sources = this.zSources();\n return sources.find(source => source.default) ?? sources[0] ?? null;\n });\n\n protected readonly isAudioSource = computed(() => this.activeSource()?.kind === 'audio');\n protected readonly isPlyrSkin = computed(() => this.zSkin() === 'plyr');\n protected readonly colorScheme = computed<'light' | 'dark' | 'system'>(() => {\n if (!this._themeService) {\n return 'system';\n }\n return this._themeService.isDark() ? 'dark' : 'light';\n });\n\n private readonly _isVietnamese = computed(() => (this._translateService?.currentLang() ?? 'en') === 'vi');\n protected readonly defaultLayoutTranslations = computed<Partial<DefaultLayoutTranslations> | null>(() => {\n const base = this._isVietnamese() ? MEDIA_PLAYER_VI_DEFAULT_TRANSLATIONS : null;\n const override = this.zDefaultLayoutConfig().translations;\n return base || override ? { ...base, ...override } : null;\n });\n\n protected readonly plyrLayoutTranslations = computed<Partial<PlyrLayoutTranslations> | null>(() => {\n const base = this._isVietnamese() ? MEDIA_PLAYER_VI_PLYR_TRANSLATIONS : null;\n const override = this.zPlyrLayoutConfig().translations;\n return base || override ? { ...base, ...override } : null;\n });\n\n protected readonly state = signal<ZMediaPlayerSnapshot>({\n paused: true,\n playing: false,\n ended: false,\n waiting: false,\n currentTime: 0,\n duration: 0,\n volume: DEFAULT_MEDIA_PLAYER_CONFIG.volume ?? 1,\n muted: DEFAULT_MEDIA_PLAYER_CONFIG.muted ?? false,\n playbackRate: DEFAULT_MEDIA_PLAYER_CONFIG.playbackRate ?? 1,\n bufferedRatio: 0,\n fullscreen: false,\n theaterMode: false,\n pictureInPicture: false,\n activeSourceLabel: null,\n activeCaptionsLabel: null,\n });\n\n protected readonly zClasses = computed(() => zMergeClasses(zMediaPlayerVariants(), this.class()));\n\n constructor() {\n effect(() => {\n const player = this.playerElement()?.nativeElement;\n const sources = this.zSources();\n const source = this.activeSource();\n if (!player || !source || sources.length === 0) {\n return;\n }\n\n const {\n subtitles: _subtitles,\n thumbnailsVtt: _thumbnailsVtt,\n chaptersVtt: _chaptersVtt,\n ...playerProps\n } = {\n ...DEFAULT_MEDIA_PLAYER_CONFIG,\n ...this.zConfig(),\n };\n const orderedSources = [...sources].sort(\n (left, right) => Number(Boolean(right.default)) - Number(Boolean(left.default))\n );\n const providerSources = orderedSources.map(mapSourceToProviderProps);\n player.src = providerSources.length === 1 ? providerSources[0] : providerSources;\n assignDefinedProperties(player, playerProps);\n });\n\n effect(() => {\n const layout = this.layoutElement()?.nativeElement;\n if (!layout) {\n return;\n }\n\n const thumbnails = resolveAbsoluteUrl(this.zConfig().thumbnailsVtt);\n if (this.isPlyrSkin()) {\n assignDefinedProperties(layout, {\n thumbnails,\n translations: this.plyrLayoutTranslations(),\n ...this.zPlyrLayoutConfig(),\n });\n return;\n }\n\n assignDefinedProperties(layout, {\n thumbnails,\n colorScheme: this.colorScheme(),\n translations: this.defaultLayoutTranslations(),\n ...this.zDefaultLayoutConfig(),\n });\n });\n\n effect(onCleanup => {\n const player = this.playerElement()?.nativeElement;\n if (!player) {\n return;\n }\n\n const stateSubscription = player.subscribe(nextState => this._syncState(nextState));\n const eventMap: Readonly<Record<string, ZMediaPlayerStateEvent>> = {\n 'loaded-data': 'loaded',\n play: 'play',\n pause: 'pause',\n ended: 'ended',\n 'time-update': 'time-update',\n 'volume-change': 'volume-change',\n 'rate-change': 'rate-change',\n 'fullscreen-change': 'fullscreen-change',\n 'picture-in-picture-change': 'pip-change',\n 'source-change': 'source-change',\n 'text-track-change': 'subtitle-change',\n waiting: 'waiting',\n 'can-play': 'can-play',\n };\n const listeners = Object.entries(eventMap).map(([eventName, event]) => {\n const listener = () => this._emitStateChange(event);\n player.addEventListener(eventName, listener);\n return () => player.removeEventListener(eventName, listener);\n });\n const onError = (event: Event) => this._emitError(event);\n const onProviderChange = (event: Event) => this._configureStreamingProvider(event);\n player.addEventListener('error', onError);\n player.addEventListener('provider-change', onProviderChange);\n\n onCleanup(() => {\n stateSubscription();\n listeners.forEach(cleanup => cleanup());\n player.removeEventListener('error', onError);\n player.removeEventListener('provider-change', onProviderChange);\n });\n });\n }\n\n private _syncState(nextState: unknown): void {\n const player = this.playerElement()?.nativeElement;\n if (!player) {\n return;\n }\n\n const patch = nextState && typeof nextState === 'object' ? nextState : {};\n const state = { ...player.state, ...patch } as Parameters<typeof buildStateChange>[1];\n this.state.set(buildStateChange('time-update', state, this.activeSource()?.label ?? null).state);\n }\n\n private _emitStateChange(event: ZMediaPlayerStateEvent): void {\n const player = this.playerElement()?.nativeElement;\n if (!player) {\n return;\n }\n\n const change = buildStateChange(\n event,\n player.state as Parameters<typeof buildStateChange>[1],\n this.activeSource()?.label ?? null\n );\n this.state.set(change.state);\n this.zStateChange.emit(change);\n }\n\n private _emitError(event: Event): void {\n const { detail } = event as CustomEvent<unknown>;\n const error = detail && typeof detail === 'object' ? (detail as Record<string, unknown>) : {};\n this.zError.emit({\n message: typeof error['message'] === 'string' ? error['message'] : 'Media playback error',\n code: typeof error['code'] === 'string' || typeof error['code'] === 'number' ? error['code'] : undefined,\n source: 'provider',\n raw: detail,\n });\n }\n\n private _configureStreamingProvider(event: Event): void {\n const source = this.activeSource();\n const { detail } = event as CustomEvent<unknown>;\n if (!source || !detail || typeof detail !== 'object') {\n return;\n }\n\n const provider = detail as { library?: unknown };\n if (source.kind === 'hls') {\n provider.library = () => import('hls.js');\n return;\n }\n if (source.kind === 'dash') {\n provider.library = () => import('dashjs');\n }\n }\n}\n","<media-player #playerElement>\n <media-provider>\n @for (subtitle of zConfig().subtitles ?? []; track subtitle.src) {\n <track\n kind=\"subtitles\"\n [label]=\"subtitle.label\"\n [src]=\"subtitle.src\"\n [srclang]=\"subtitle.srclang\"\n [default]=\"subtitle.default ?? false\" />\n }\n @if (zConfig().chaptersVtt) {\n <track kind=\"chapters\" [src]=\"zConfig().chaptersVtt!\" />\n }\n </media-provider>\n\n @if (isPlyrSkin()) {\n <media-plyr-layout #layoutElement></media-plyr-layout>\n } @else if (isAudioSource()) {\n <media-audio-layout #layoutElement></media-audio-layout>\n } @else {\n <media-video-layout #layoutElement></media-video-layout>\n }\n</media-player>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAGO,MAAM,2BAA2B,GAAuB;AAC7D,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,KAAK,EAAE,KAAK;AACZ,IAAA,MAAM,EAAE,CAAC;AACT,IAAA,YAAY,EAAE,CAAC;AACf,IAAA,SAAS,EAAE,EAAE;AACb,IAAA,aAAa,EAAE,EAAE;AACjB,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,WAAW,EAAE,IAAI;CAClB;AAED;AACO,MAAM,oCAAoC,GAAuC;AACtF,IAAA,aAAa,EAAE,WAAW;AAC1B,IAAA,aAAa,EAAE,UAAU;AACzB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,KAAK,EAAE,UAAU;AACjB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,gBAAgB,EAAE,aAAa;AAC/B,IAAA,yBAAyB,EAAE,0BAA0B;AACrD,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,qBAAqB,EAAE,YAAY;AACnC,IAAA,oBAAoB,EAAE,YAAY;AAClC,IAAA,SAAS,EAAE,YAAY;AACvB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,UAAU,EAAE,cAAc;AAC1B,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,YAAY,EAAE,iBAAiB;AAC/B,IAAA,oBAAoB,EAAE,cAAc;AACpC,IAAA,QAAQ,EAAE,WAAW;AACrB,IAAA,kBAAkB,EAAE,mBAAmB;AACvC,IAAA,WAAW,EAAE,gBAAgB;AAC7B,IAAA,iBAAiB,EAAE,qBAAqB;AACxC,IAAA,UAAU,EAAE,kBAAkB;AAC9B,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,MAAM,EAAE,UAAU;AAClB,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,aAAa,EAAE,aAAa;AAC5B,IAAA,qBAAqB,EAAE,mBAAmB;AAC1C,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,KAAK,EAAE,UAAU;AACjB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,MAAM,EAAE,UAAU;AAClB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,cAAc,EAAE,SAAS;AACzB,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,cAAc,EAAE,cAAc;AAC9B,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,iBAAiB,EAAE,aAAa;AAChC,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,MAAM,EAAE,UAAU;CACnB;AAED;AACO,MAAM,iCAAiC,GAAoC;AAChF,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,GAAG,EAAE,QAAQ;AACb,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,KAAK,EAAE,UAAU;AACjB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,cAAc,EAAE,oBAAoB;AACpC,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,kBAAkB,EAAE,YAAY;AAChC,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,QAAQ,EAAE,WAAW;AACrB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,iBAAiB,EAAE,YAAY;AAC/B,IAAA,OAAO,EAAE,QAAQ;AACjB,IAAA,GAAG,EAAE,UAAU;AACf,IAAA,kBAAkB,EAAE,mBAAmB;AACvC,IAAA,iBAAiB,EAAE,qBAAqB;AACxC,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,0BAA0B,EAAE,qBAAqB;AACjD,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,KAAK,EAAE,UAAU;AACjB,IAAA,WAAW,EAAE,gBAAgB;AAC7B,IAAA,UAAU,EAAE,kBAAkB;AAC9B,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,MAAM,EAAE,UAAU;CACnB;;AC3GD;;;;;;;AAOG;AACG,SAAU,wBAAwB,CAAC,MAA0B,EAAA;AACjE,IAAA,QAAQ,MAAM,CAAC,IAAI;AACjB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAkB,EAAE;AACxE,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAkB,EAAE;AACxE,QAAA,KAAK,KAAK;YACR,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,uBAAuB,EAAE;AAC3D,QAAA,KAAK,MAAM;YACT,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,sBAAsB,EAAE;AAC1D,QAAA,KAAK,SAAS;YACZ,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE;AACnD,QAAA,KAAK,OAAO;YACV,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE;;AAErD;AAEA;;;;;AAKG;AACG,SAAU,kBAAkB,CAAC,GAA8B,EAAA;IAC/D,IAAI,CAAC,GAAG,EAAE;AACR,QAAA,OAAO,IAAI;IACb;AACA,IAAA,IAAI;QACF,OAAO,IAAI,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI;IAC5C;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,GAAG;IACZ;AACF;AAEA;AACM,SAAU,uBAAuB,CAAmB,MAAS,EAAE,MAA+B,EAAA;AAClG,IAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACjD,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACtB,YAAA,MAAkC,CAAC,GAAG,CAAC,GAAG,KAAK;QAClD;IACF;AACF;SAEgB,gBAAgB,CAC9B,KAA6B,EAC7B,KAAgC,EAChC,iBAAgC,EAAA;AAEhC,IAAA,MAAM,WAAW,GACf,OAAO,KAAK,CAAC,WAAW,KAAK;UACzB,KAAK,CAAC;UACN,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG;AAC1C,cAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;cAC5C,CAAC;AACT,IAAA,MAAM,QAAQ,GAAyB;QACrC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,aAAa,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QACjF,UAAU,EAAE,KAAK,CAAC,UAAU;AAC5B,QAAA,WAAW,EAAE,KAAK;QAClB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,iBAAiB;AACjB,QAAA,mBAAmB,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,IAAI,IAAI;KACpD;AAED,IAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;AACnC;;ACxFO,MAAM,oBAAoB,GAAG,GAAG,CACrC,sJAAsJ,EACtJ;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,0EAA0E;AACpF,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AACnB,KAAA;AACF,CAAA,CACF;;ACkCD;;;;AAIG;MAaU,qBAAqB,CAAA;IACf,aAAa,GAAG,MAAM,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACzD,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAElE,KAAK,GAAG,KAAK,CAAa,EAAE;8EAAC;IAC7B,QAAQ,GAAG,KAAK,CAAC,QAAQ;iFAAwB;IACjD,OAAO,GAAG,KAAK,CAA8B,EAAE;gFAAC;IAChD,KAAK,GAAG,KAAK,CAAmB,SAAS;8EAAC;IAC1C,oBAAoB,GAAG,KAAK,CAAkC,EAAE;6FAAC;IACjE,iBAAiB,GAAG,KAAK,CAA+B,EAAE;0FAAC;IAC3D,YAAY,GAAG,MAAM,EAA2B;IAChD,MAAM,GAAG,MAAM,EAAqB;IAEjC,aAAa,GAAG,SAAS,CAAiC,eAAe;sFAAC;IAC1E,aAAa,GAAG,SAAS,CAA0B,eAAe;sFAAC;AACnE,IAAA,YAAY,GAAG,QAAQ,CAA4B,MAAK;AACzE,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC/B,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI;IACrE,CAAC;qFAAC;AAEiB,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,KAAK,OAAO;sFAAC;IACrE,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,KAAK,MAAM;mFAAC;AACpD,IAAA,WAAW,GAAG,QAAQ,CAA8B,MAAK;AAC1E,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACvB,YAAA,OAAO,QAAQ;QACjB;AACA,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,MAAM,GAAG,OAAO;IACvD,CAAC;oFAAC;AAEe,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,IAAI,IAAI,MAAM,IAAI;sFAAC;AACtF,IAAA,yBAAyB,GAAG,QAAQ,CAA4C,MAAK;AACtG,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,oCAAoC,GAAG,IAAI;QAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC,YAAY;AACzD,QAAA,OAAO,IAAI,IAAI,QAAQ,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI;IAC3D,CAAC;kGAAC;AAEiB,IAAA,sBAAsB,GAAG,QAAQ,CAAyC,MAAK;AAChG,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,iCAAiC,GAAG,IAAI;QAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,YAAY;AACtD,QAAA,OAAO,IAAI,IAAI,QAAQ,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI;IAC3D,CAAC;+FAAC;IAEiB,KAAK,GAAG,MAAM,CAAuB;AACtD,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,WAAW,EAAE,CAAC;AACd,QAAA,QAAQ,EAAE,CAAC;AACX,QAAA,MAAM,EAAE,2BAA2B,CAAC,MAAM,IAAI,CAAC;AAC/C,QAAA,KAAK,EAAE,2BAA2B,CAAC,KAAK,IAAI,KAAK;AACjD,QAAA,YAAY,EAAE,2BAA2B,CAAC,YAAY,IAAI,CAAC;AAC3D,QAAA,aAAa,EAAE,CAAC;AAChB,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,WAAW,EAAE,KAAK;AAClB,QAAA,gBAAgB,EAAE,KAAK;AACvB,QAAA,iBAAiB,EAAE,IAAI;AACvB,QAAA,mBAAmB,EAAE,IAAI;AAC1B,KAAA;8EAAC;AAEiB,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,aAAa,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;iFAAC;AAEjG,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;YACV,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,aAAa;AAClD,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC/B,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE;AAClC,YAAA,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9C;YACF;AAEA,YAAA,MAAM,EACJ,SAAS,EAAE,UAAU,EACrB,aAAa,EAAE,cAAc,EAC7B,WAAW,EAAE,YAAY,EACzB,GAAG,WAAW,EACf,GAAG;AACF,gBAAA,GAAG,2BAA2B;gBAC9B,GAAG,IAAI,CAAC,OAAO,EAAE;aAClB;AACD,YAAA,MAAM,cAAc,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CACtC,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAChF;YACD,MAAM,eAAe,GAAG,cAAc,CAAC,GAAG,CAAC,wBAAwB,CAAC;AACpE,YAAA,MAAM,CAAC,GAAG,GAAG,eAAe,CAAC,MAAM,KAAK,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe;AAChF,YAAA,uBAAuB,CAAC,MAAM,EAAE,WAAW,CAAC;AAC9C,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;YACV,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,aAAa;YAClD,IAAI,CAAC,MAAM,EAAE;gBACX;YACF;YAEA,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC;AACnE,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;gBACrB,uBAAuB,CAAC,MAAM,EAAE;oBAC9B,UAAU;AACV,oBAAA,YAAY,EAAE,IAAI,CAAC,sBAAsB,EAAE;oBAC3C,GAAG,IAAI,CAAC,iBAAiB,EAAE;AAC5B,iBAAA,CAAC;gBACF;YACF;YAEA,uBAAuB,CAAC,MAAM,EAAE;gBAC9B,UAAU;AACV,gBAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAC/B,gBAAA,YAAY,EAAE,IAAI,CAAC,yBAAyB,EAAE;gBAC9C,GAAG,IAAI,CAAC,oBAAoB,EAAE;AAC/B,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,SAAS,IAAG;YACjB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,aAAa;YAClD,IAAI,CAAC,MAAM,EAAE;gBACX;YACF;AAEA,YAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACnF,YAAA,MAAM,QAAQ,GAAqD;AACjE,gBAAA,aAAa,EAAE,QAAQ;AACvB,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,KAAK,EAAE,OAAO;AACd,gBAAA,KAAK,EAAE,OAAO;AACd,gBAAA,aAAa,EAAE,aAAa;AAC5B,gBAAA,eAAe,EAAE,eAAe;AAChC,gBAAA,aAAa,EAAE,aAAa;AAC5B,gBAAA,mBAAmB,EAAE,mBAAmB;AACxC,gBAAA,2BAA2B,EAAE,YAAY;AACzC,gBAAA,eAAe,EAAE,eAAe;AAChC,gBAAA,mBAAmB,EAAE,iBAAiB;AACtC,gBAAA,OAAO,EAAE,SAAS;AAClB,gBAAA,UAAU,EAAE,UAAU;aACvB;AACD,YAAA,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,KAAI;gBACpE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;AACnD,gBAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC;gBAC5C,OAAO,MAAM,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC;AAC9D,YAAA,CAAC,CAAC;AACF,YAAA,MAAM,OAAO,GAAG,CAAC,KAAY,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACxD,YAAA,MAAM,gBAAgB,GAAG,CAAC,KAAY,KAAK,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC;AAClF,YAAA,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC;AACzC,YAAA,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;YAE5D,SAAS,CAAC,MAAK;AACb,gBAAA,iBAAiB,EAAE;gBACnB,SAAS,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC;AACvC,gBAAA,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC;AAC5C,gBAAA,MAAM,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;AACjE,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,UAAU,CAAC,SAAkB,EAAA;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,aAAa;QAClD,IAAI,CAAC,MAAM,EAAE;YACX;QACF;AAEA,QAAA,MAAM,KAAK,GAAG,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,GAAG,SAAS,GAAG,EAAE;QACzE,MAAM,KAAK,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,KAAK,EAA4C;QACrF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC;IAClG;AAEQ,IAAA,gBAAgB,CAAC,KAA6B,EAAA;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,aAAa;QAClD,IAAI,CAAC,MAAM,EAAE;YACX;QACF;AAEA,QAAA,MAAM,MAAM,GAAG,gBAAgB,CAC7B,KAAK,EACL,MAAM,CAAC,KAA+C,EACtD,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,IAAI,IAAI,CACnC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;IAChC;AAEQ,IAAA,UAAU,CAAC,KAAY,EAAA;AAC7B,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,KAA6B;AAChD,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,GAAI,MAAkC,GAAG,EAAE;AAC7F,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACf,YAAA,OAAO,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,sBAAsB;YACzF,IAAI,EAAE,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS;AACxG,YAAA,MAAM,EAAE,UAAU;AAClB,YAAA,GAAG,EAAE,MAAM;AACZ,SAAA,CAAC;IACJ;AAEQ,IAAA,2BAA2B,CAAC,KAAY,EAAA;AAC9C,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE;AAClC,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,KAA6B;QAChD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YACpD;QACF;QAEA,MAAM,QAAQ,GAAG,MAA+B;AAChD,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE;YACzB,QAAQ,CAAC,OAAO,GAAG,MAAM,OAAO,QAAQ,CAAC;YACzC;QACF;AACA,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;YAC1B,QAAQ,CAAC,OAAO,GAAG,MAAM,OAAO,QAAQ,CAAC;QAC3C;IACF;uGA7MW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,ouCCjElC,wuBAuBA,EAAA,MAAA,EAAA,CAAA,0UAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FD0Ca,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAZjC,SAAS;+BACE,gBAAgB,EAAA,UAAA,EACd,IAAI,EAAA,eAAA,EAGC,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC/B;AACJ,wBAAA,SAAS,EAAE,YAAY;qBACxB,EAAA,OAAA,EACQ,CAAC,sBAAsB,CAAC,EAAA,QAAA,EAAA,wuBAAA,EAAA,MAAA,EAAA,CAAA,0UAAA,CAAA,EAAA;AAe4C,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAAA,eAAe,uEACtB,eAAe,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AE/EvF;;AAEG;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shival99/z-ui",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"description": "Z-UI: Modern Angular UI Component Library - A comprehensive, high-performance design system built with Angular 22, featuring 45+ customizable components with dark mode, accessibility, and enterprise-ready features.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -189,7 +189,7 @@ declare class ZGalleryComponent implements AfterViewInit {
|
|
|
189
189
|
protected readonly headerControlHeight: _angular_core.Signal<"1.75rem" | "2rem" | "2.5rem" | "2.25rem">;
|
|
190
190
|
protected readonly skeletonMediaHeight: _angular_core.Signal<"9rem" | "14rem" | "11rem">;
|
|
191
191
|
protected readonly toggleIconSize: _angular_core.Signal<"14" | "16" | "20" | "18">;
|
|
192
|
-
protected readonly searchInputSize: _angular_core.Signal<"
|
|
192
|
+
protected readonly searchInputSize: _angular_core.Signal<"sm" | "default" | "lg">;
|
|
193
193
|
protected readonly filteredFiles: _angular_core.Signal<ZGalleryFile[]>;
|
|
194
194
|
protected readonly selectedIds: _angular_core.Signal<Set<string>>;
|
|
195
195
|
protected readonly isAllSelected: _angular_core.Signal<boolean>;
|
|
@@ -415,16 +415,16 @@ declare const isPreviewable: (file: ZGalleryFile) => boolean;
|
|
|
415
415
|
declare const isImage: (file: ZGalleryFile) => boolean;
|
|
416
416
|
|
|
417
417
|
declare const zGalleryVariants: (props?: ({
|
|
418
|
-
zSize?: "
|
|
418
|
+
zSize?: "sm" | "default" | "lg" | null | undefined;
|
|
419
419
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
420
420
|
type ZGalleryVariants = VariantProps<typeof zGalleryVariants>;
|
|
421
421
|
declare const zGalleryItemVariants: (props?: ({
|
|
422
422
|
zMode?: "grid" | "list" | null | undefined;
|
|
423
|
-
zSize?: "
|
|
423
|
+
zSize?: "sm" | "default" | "lg" | null | undefined;
|
|
424
424
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
425
425
|
type ZGalleryItemVariants = VariantProps<typeof zGalleryItemVariants>;
|
|
426
426
|
declare const zGalleryFileIconVariants: (props?: ({
|
|
427
|
-
zSize?: "
|
|
427
|
+
zSize?: "sm" | "default" | "lg" | null | undefined;
|
|
428
428
|
zMode?: "grid" | "list" | null | undefined;
|
|
429
429
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
430
430
|
type ZGalleryFileIconVariants = VariantProps<typeof zGalleryFileIconVariants>;
|
|
@@ -2168,7 +2168,7 @@ declare class ZTableFilterComponent<T> {
|
|
|
2168
2168
|
protected readonly filterBadgeCount: _angular_core.Signal<number>;
|
|
2169
2169
|
protected readonly hasFilterValue: _angular_core.Signal<boolean>;
|
|
2170
2170
|
protected readonly isActive: _angular_core.Signal<boolean>;
|
|
2171
|
-
protected readonly draftSortValue: _angular_core.Signal<"
|
|
2171
|
+
protected readonly draftSortValue: _angular_core.Signal<"none" | "asc" | "desc">;
|
|
2172
2172
|
protected readonly rangeMinValue: _angular_core.Signal<any>;
|
|
2173
2173
|
protected readonly rangeMaxValue: _angular_core.Signal<any>;
|
|
2174
2174
|
protected readonly dateValue: _angular_core.Signal<Date | null>;
|