@shival99/z-ui 2.3.9 → 2.3.11

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.
Files changed (29) hide show
  1. package/assets/css/overlay.css +2 -12
  2. package/fesm2022/shival99-z-ui-components-z-audio-player.mjs +210 -0
  3. package/fesm2022/shival99-z-ui-components-z-audio-player.mjs.map +1 -0
  4. package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs +2 -2
  5. package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs.map +1 -1
  6. package/fesm2022/shival99-z-ui-components-z-gallery.mjs +1177 -1091
  7. package/fesm2022/shival99-z-ui-components-z-gallery.mjs.map +1 -1
  8. package/fesm2022/shival99-z-ui-components-z-input.mjs +2 -2
  9. package/fesm2022/shival99-z-ui-components-z-input.mjs.map +1 -1
  10. package/fesm2022/shival99-z-ui-components-z-media-player.mjs +359 -56
  11. package/fesm2022/shival99-z-ui-components-z-media-player.mjs.map +1 -1
  12. package/fesm2022/shival99-z-ui-components-z-overlay.mjs +10 -19
  13. package/fesm2022/shival99-z-ui-components-z-overlay.mjs.map +1 -1
  14. package/fesm2022/shival99-z-ui-components-z-select.mjs +2 -2
  15. package/fesm2022/shival99-z-ui-components-z-select.mjs.map +1 -1
  16. package/fesm2022/shival99-z-ui-components-z-table.mjs +2 -0
  17. package/fesm2022/shival99-z-ui-components-z-table.mjs.map +1 -1
  18. package/fesm2022/shival99-z-ui-components-z-tooltip.mjs +1 -1
  19. package/fesm2022/shival99-z-ui-components-z-tooltip.mjs.map +1 -1
  20. package/fesm2022/shival99-z-ui-i18n.mjs +4 -2
  21. package/fesm2022/shival99-z-ui-i18n.mjs.map +1 -1
  22. package/fesm2022/shival99-z-ui-services.mjs +144 -9
  23. package/fesm2022/shival99-z-ui-services.mjs.map +1 -1
  24. package/package.json +21 -1
  25. package/types/shival99-z-ui-components-z-audio-player.d.ts +46 -0
  26. package/types/shival99-z-ui-components-z-gallery.d.ts +63 -32
  27. package/types/shival99-z-ui-components-z-media-player.d.ts +83 -7
  28. package/types/shival99-z-ui-components-z-overlay.d.ts +5 -10
  29. package/types/shival99-z-ui-services.d.ts +25 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shival99/z-ui",
3
- "version": "2.3.9",
3
+ "version": "2.3.11",
4
4
  "description": "Z-UI: Modern Angular UI Component Library - A comprehensive, high-performance design system built with Angular 22, featuring 40+ customizable components with dark mode, accessibility, and enterprise-ready features.",
5
5
  "keywords": [
6
6
  "angular",
@@ -36,6 +36,7 @@
36
36
  "url": "https://github.com/vuboi/z-ui/issues"
37
37
  },
38
38
  "peerDependencies": {
39
+ "@aiden0z/pptx-renderer": ">=1.2.4",
39
40
  "@angular/cdk": ">=22.0.0 <23.0.0",
40
41
  "@angular/common": ">=22.0.0 <23.0.0",
41
42
  "@angular/core": ">=22.0.0 <23.0.0",
@@ -53,6 +54,8 @@
53
54
  "@ng-icons/phosphor-icons": ">=33.0.0",
54
55
  "@ng-icons/tabler-icons": ">=33.0.0",
55
56
  "@ngx-translate/core": ">=17.0.0",
57
+ "@univerjs/preset-sheets-core": ">=0.25.1",
58
+ "@univerjs/presets": ">=0.25.1",
56
59
  "@tanstack/angular-virtual": ">=6.0.2",
57
60
  "@shival99/ngx-sonner": ">=3.0.0",
58
61
  "@tanstack/angular-table": ">=9.1.0",
@@ -74,6 +77,7 @@
74
77
  "class-variance-authority": ">=0.7.0",
75
78
  "clsx": ">=2.0.0",
76
79
  "dompurify": ">=3.0.0",
80
+ "docx-preview": ">=0.4.0",
77
81
  "echarts": ">=5.0.0",
78
82
  "exceljs": "^4.4.0",
79
83
  "file-saver": "^2.0.5",
@@ -92,9 +96,18 @@
92
96
  "xlsx": "^0.18.5"
93
97
  },
94
98
  "peerDependenciesMeta": {
99
+ "@aiden0z/pptx-renderer": {
100
+ "optional": true
101
+ },
95
102
  "@dayflow/blossom-color-picker-angular": {
96
103
  "optional": true
97
104
  },
105
+ "@univerjs/preset-sheets-core": {
106
+ "optional": true
107
+ },
108
+ "@univerjs/presets": {
109
+ "optional": true
110
+ },
98
111
  "@tanstack/angular-virtual": {
99
112
  "optional": true
100
113
  },
@@ -149,6 +162,9 @@
149
162
  "boneyard-js": {
150
163
  "optional": true
151
164
  },
165
+ "docx-preview": {
166
+ "optional": true
167
+ },
152
168
  "mammoth": {
153
169
  "optional": true
154
170
  },
@@ -183,6 +199,10 @@
183
199
  "types": "./types/shival99-z-ui-components-z-accordion.d.ts",
184
200
  "default": "./fesm2022/shival99-z-ui-components-z-accordion.mjs"
185
201
  },
202
+ "./components/z-audio-player": {
203
+ "types": "./types/shival99-z-ui-components-z-audio-player.d.ts",
204
+ "default": "./fesm2022/shival99-z-ui-components-z-audio-player.mjs"
205
+ },
186
206
  "./components/z-autocomplete": {
187
207
  "types": "./types/shival99-z-ui-components-z-autocomplete.d.ts",
188
208
  "default": "./fesm2022/shival99-z-ui-components-z-autocomplete.mjs"
@@ -0,0 +1,46 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { ElementRef } from '@angular/core';
3
+
4
+ declare class ZAudioPlayerComponent {
5
+ private readonly _destroyRef;
6
+ private _animationFrameId;
7
+ private _isSeeking;
8
+ constructor();
9
+ readonly zSrc: _angular_core.InputSignal<string>;
10
+ readonly zTitle: _angular_core.InputSignal<string>;
11
+ readonly zTags: _angular_core.InputSignal<readonly string[]>;
12
+ readonly zDownload: _angular_core.InputSignal<boolean>;
13
+ readonly zLoaded: _angular_core.OutputEmitterRef<void>;
14
+ readonly zError: _angular_core.OutputEmitterRef<Error>;
15
+ readonly zPlay: _angular_core.OutputEmitterRef<boolean>;
16
+ protected readonly audio: _angular_core.Signal<ElementRef<HTMLAudioElement>>;
17
+ protected readonly isPlaying: _angular_core.WritableSignal<boolean>;
18
+ protected readonly currentTime: _angular_core.WritableSignal<number>;
19
+ protected readonly duration: _angular_core.WritableSignal<number>;
20
+ protected readonly waveform: readonly [28, 42, 34, 56, 38, 66, 45, 32, 52, 72, 46, 58, 36, 78, 48, 64, 40, 30, 54, 70, 44, 60, 35, 50, 76, 42, 58, 38, 68, 46, 34, 56, 74, 40, 62, 36, 52, 70, 44, 30, 48, 64, 38, 58, 76, 42, 54, 34, 66, 46, 72, 40, 56, 32, 68, 48, 60, 36, 74, 44, 52, 30, 64, 42, 78, 46, 58, 34, 70, 40, 54, 32, 66, 48, 62, 38, 72, 44, 56, 30, 68, 42, 60, 36, 76, 46, 54, 34, 64, 40, 70, 48, 58, 32, 66, 44, 74, 38, 52, 30, 62, 46, 68, 36, 56, 78, 42, 60, 34, 72, 48, 54, 38, 66, 44, 76, 40, 58, 32, 70, 46, 62, 36, 74, 48, 56, 30, 64, 42, 68, 38, 52, 72, 44, 60, 34, 76, 46, 54, 32, 66, 40, 58, 74, 36, 62, 48, 70, 42, 56, 30, 68, 44, 60, 38, 74, 46, 54, 32, 66, 40, 58, 72, 36, 62, 48, 70, 42, 56, 34, 76, 44, 60, 38, 68, 46, 52, 30, 64, 42, 74, 36, 58, 48, 70, 40, 54, 32, 66, 44, 60, 38, 76, 46, 56, 34, 68, 42, 72, 48, 58];
21
+ protected readonly title: _angular_core.InputSignal<string>;
22
+ protected readonly tags: _angular_core.InputSignal<readonly string[]>;
23
+ protected readonly progress: _angular_core.Signal<number>;
24
+ protected readonly currentTimeLabel: _angular_core.Signal<string>;
25
+ protected readonly durationLabel: _angular_core.Signal<string>;
26
+ protected togglePlay(): Promise<void>;
27
+ protected onWaveformPointerDown(event: PointerEvent): void;
28
+ protected onWaveformPointerMove(event: PointerEvent): void;
29
+ protected onWaveformPointerUp(event: PointerEvent): void;
30
+ private _seekToPointerPosition;
31
+ protected onWaveformKeydown(event: KeyboardEvent): void;
32
+ protected onLoadedMetadata(): void;
33
+ protected onLoadStart(): void;
34
+ protected onTimeUpdate(): void;
35
+ protected onEnded(): void;
36
+ protected onError(): void;
37
+ protected onPlayStateChange(isPlaying: boolean): void;
38
+ private _seekToTime;
39
+ private _startPlaybackFrame;
40
+ private _stopPlaybackFrame;
41
+ private _formatTime;
42
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZAudioPlayerComponent, never>;
43
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZAudioPlayerComponent, "z-audio-player", never, { "zSrc": { "alias": "zSrc"; "required": true; "isSignal": true; }; "zTitle": { "alias": "zTitle"; "required": false; "isSignal": true; }; "zTags": { "alias": "zTags"; "required": false; "isSignal": true; }; "zDownload": { "alias": "zDownload"; "required": false; "isSignal": true; }; }, { "zLoaded": "zLoaded"; "zError": "zError"; "zPlay": "zPlay"; }, never, never, true, never>;
44
+ }
45
+
46
+ export { ZAudioPlayerComponent };
@@ -4,8 +4,9 @@ import { ZIcon } from '@shival99/z-ui/components/z-icon';
4
4
  import { ClassValue } from 'clsx';
5
5
  import { LayoutConfig, ThemeConfig, ControlVisibilityConfig, GroupVisibilityConfig, AutoActionConfig, ViewerConfig, PdfJsViewerComponent } from 'ng2-pdfjs-viewer';
6
6
  import * as _shival99_z_ui_components_z_gallery from '@shival99/z-ui/components/z-gallery';
7
- import { SafeHtml } from '@angular/platform-browser';
8
- import { ZOverlayRef } from '@shival99/z-ui/components/z-overlay';
7
+ import { BundledLanguage } from 'shiki';
8
+ import { ZDynamicRef } from '@shival99/z-ui/services';
9
+ export { ZGalleryOfficeRenderResult } from '@shival99/z-ui/services';
9
10
  import * as class_variance_authority_types from 'class-variance-authority/types';
10
11
  import { VariantProps } from 'class-variance-authority';
11
12
 
@@ -17,6 +18,7 @@ type ZGalleryPdfViewerCursor = 'select' | 'hand' | 'zoom';
17
18
  type ZGalleryPdfViewerScroll = 'vertical' | 'horizontal' | 'wrapped' | 'page';
18
19
  type ZGalleryPdfViewerSpread = 'none' | 'odd' | 'even';
19
20
  type ZGalleryPdfViewerPageMode = 'none' | 'thumbs' | 'bookmarks' | 'attachments';
21
+ type ZGalleryDocumentPreviewKind = 'word' | 'excel' | 'powerpoint';
20
22
  interface ZGalleryPdfViewerConfig {
21
23
  viewerFolder?: string;
22
24
  locale?: string;
@@ -92,7 +94,6 @@ interface ZFileCategoryStyle {
92
94
  label: string;
93
95
  icon: string;
94
96
  }
95
- declare const FILE_CATEGORY_STYLES: Record<ZFileCategory, ZFileCategoryStyle>;
96
97
  interface ZGalleryControl {
97
98
  setMode: (mode: ZGalleryMode) => void;
98
99
  getMode: () => ZGalleryMode;
@@ -212,6 +213,22 @@ declare class ZGalleryComponent implements AfterViewInit {
212
213
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZGalleryComponent, "z-gallery", ["zGallery"], { "zFiles": { "alias": "zFiles"; "required": false; "isSignal": true; }; "zMode": { "alias": "zMode"; "required": false; "isSignal": true; }; "zSize": { "alias": "zSize"; "required": false; "isSignal": true; }; "zColumns": { "alias": "zColumns"; "required": false; "isSignal": true; }; "zItemWidth": { "alias": "zItemWidth"; "required": false; "isSignal": true; }; "zLoading": { "alias": "zLoading"; "required": false; "isSignal": true; }; "zSkeletonRows": { "alias": "zSkeletonRows"; "required": false; "isSignal": true; }; "zSkeletonItems": { "alias": "zSkeletonItems"; "required": false; "isSignal": true; }; "zShowDownload": { "alias": "zShowDownload"; "required": false; "isSignal": true; }; "zShowPreview": { "alias": "zShowPreview"; "required": false; "isSignal": true; }; "zShowRemove": { "alias": "zShowRemove"; "required": false; "isSignal": true; }; "zPdfViewerConfig": { "alias": "zPdfViewerConfig"; "required": false; "isSignal": true; }; "zTrustedResourceOrigins": { "alias": "zTrustedResourceOrigins"; "required": false; "isSignal": true; }; "zShowModeToggle": { "alias": "zShowModeToggle"; "required": false; "isSignal": true; }; "zShowSearch": { "alias": "zShowSearch"; "required": false; "isSignal": true; }; "zServerSearch": { "alias": "zServerSearch"; "required": false; "isSignal": true; }; "zSearchDebounce": { "alias": "zSearchDebounce"; "required": false; "isSignal": true; }; "zSearchPlaceholder": { "alias": "zSearchPlaceholder"; "required": false; "isSignal": true; }; "zToggleSize": { "alias": "zToggleSize"; "required": false; "isSignal": true; }; "zTitle": { "alias": "zTitle"; "required": false; "isSignal": true; }; "zEmptyText": { "alias": "zEmptyText"; "required": false; "isSignal": true; }; "zEmptyIcon": { "alias": "zEmptyIcon"; "required": false; "isSignal": true; }; "zClass": { "alias": "zClass"; "required": false; "isSignal": true; }; "zSelectable": { "alias": "zSelectable"; "required": false; "isSignal": true; }; "zSelectedFiles": { "alias": "zSelectedFiles"; "required": false; "isSignal": true; }; }, { "zMode": "zModeChange"; "zSelectedFiles": "zSelectedFilesChange"; "zOnDownload": "zOnDownload"; "zOnPreview": "zOnPreview"; "zOnRemove": "zOnRemove"; "zSearchChange": "zSearchChange"; "zControl": "zControl"; "zSelectionChange": "zSelectionChange"; "zOnAction": "zOnAction"; }, never, never, true, never>;
213
214
  }
214
215
 
216
+ declare class ZGalleryFileIconComponent {
217
+ readonly file: _angular_core.InputSignal<ZGalleryFile>;
218
+ readonly zSize: _angular_core.InputSignal<ZGallerySize>;
219
+ readonly zMode: _angular_core.InputSignal<ZGalleryMode>;
220
+ protected readonly imageError: _angular_core.WritableSignal<boolean>;
221
+ protected readonly isLoading: _angular_core.WritableSignal<boolean>;
222
+ protected readonly category: _angular_core.Signal<ZFileCategory>;
223
+ protected readonly style: _angular_core.Signal<_shival99_z_ui_components_z_gallery.ZFileCategoryStyle>;
224
+ protected readonly showThumbnail: _angular_core.Signal<boolean | "" | undefined>;
225
+ protected readonly containerClasses: _angular_core.Signal<string>;
226
+ protected onImageLoad(): void;
227
+ protected onImageError(event: Event): void;
228
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZGalleryFileIconComponent, never>;
229
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZGalleryFileIconComponent, "z-gallery-file-icon", never, { "file": { "alias": "file"; "required": true; "isSignal": true; }; "zSize": { "alias": "zSize"; "required": false; "isSignal": true; }; "zMode": { "alias": "zMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
230
+ }
231
+
215
232
  declare class ZGalleryItemComponent {
216
233
  readonly file: _angular_core.InputSignal<ZGalleryFile>;
217
234
  readonly zMode: _angular_core.InputSignal<ZGalleryMode>;
@@ -251,22 +268,6 @@ declare class ZGalleryItemComponent {
251
268
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZGalleryItemComponent, "z-gallery-item", never, { "file": { "alias": "file"; "required": true; "isSignal": true; }; "zMode": { "alias": "zMode"; "required": false; "isSignal": true; }; "zSize": { "alias": "zSize"; "required": false; "isSignal": true; }; "zShowDownload": { "alias": "zShowDownload"; "required": false; "isSignal": true; }; "zShowPreview": { "alias": "zShowPreview"; "required": false; "isSignal": true; }; "zShowRemove": { "alias": "zShowRemove"; "required": false; "isSignal": true; }; "zSelectable": { "alias": "zSelectable"; "required": false; "isSignal": true; }; "zSelected": { "alias": "zSelected"; "required": false; "isSignal": true; }; }, { "zOnDownload": "zOnDownload"; "zOnPreview": "zOnPreview"; "zOnRemove": "zOnRemove"; "zOnSelect": "zOnSelect"; }, never, never, true, never>;
252
269
  }
253
270
 
254
- declare class ZGalleryFileIconComponent {
255
- readonly file: _angular_core.InputSignal<ZGalleryFile>;
256
- readonly zSize: _angular_core.InputSignal<ZGallerySize>;
257
- readonly zMode: _angular_core.InputSignal<ZGalleryMode>;
258
- protected readonly imageError: _angular_core.WritableSignal<boolean>;
259
- protected readonly isLoading: _angular_core.WritableSignal<boolean>;
260
- protected readonly category: _angular_core.Signal<ZFileCategory>;
261
- protected readonly style: _angular_core.Signal<_shival99_z_ui_components_z_gallery.ZFileCategoryStyle>;
262
- protected readonly showThumbnail: _angular_core.Signal<boolean | "" | undefined>;
263
- protected readonly containerClasses: _angular_core.Signal<string>;
264
- protected onImageLoad(): void;
265
- protected onImageError(event: Event): void;
266
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZGalleryFileIconComponent, never>;
267
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZGalleryFileIconComponent, "z-gallery-file-icon", never, { "file": { "alias": "file"; "required": true; "isSignal": true; }; "zSize": { "alias": "zSize"; "required": false; "isSignal": true; }; "zMode": { "alias": "zMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
268
- }
269
-
270
271
  declare class ZGalleryPreviewItemDirective {
271
272
  readonly zGalleryPreviewItem: _angular_core.InputSignal<ZGalleryFile>;
272
273
  readonly zGalleryPreviewFiles: _angular_core.InputSignal<ZGalleryFile[] | null>;
@@ -286,7 +287,6 @@ declare class ZGalleryPreviewItemDirective {
286
287
 
287
288
  declare class ZGalleryPreviewComponent {
288
289
  private readonly _document;
289
- private readonly _sanitizer;
290
290
  readonly file: _angular_core.InputSignal<ZGalleryFile>;
291
291
  readonly files: _angular_core.InputSignal<ZGalleryFile[]>;
292
292
  readonly zShowRemove: _angular_core.InputSignal<boolean>;
@@ -302,7 +302,7 @@ declare class ZGalleryPreviewComponent {
302
302
  protected readonly isConverting: _angular_core.WritableSignal<boolean>;
303
303
  protected readonly conversionError: _angular_core.WritableSignal<string | null>;
304
304
  protected readonly previewError: _angular_core.WritableSignal<boolean>;
305
- protected readonly docHtmlContent: _angular_core.WritableSignal<SafeHtml | null>;
305
+ protected readonly officeSource: _angular_core.WritableSignal<Blob | null>;
306
306
  protected readonly textContent: _angular_core.WritableSignal<string>;
307
307
  protected readonly pdfViewer: _angular_core.Signal<PdfJsViewerComponent | undefined>;
308
308
  private readonly _mediaLoaded;
@@ -310,8 +310,6 @@ declare class ZGalleryPreviewComponent {
310
310
  private readonly _minLoadingTime;
311
311
  constructor();
312
312
  private _loadFileContent;
313
- private _loadDocx;
314
- private _loadExcel;
315
313
  private _loadText;
316
314
  private _assertSuccessfulResponse;
317
315
  private _completeLoading;
@@ -325,9 +323,16 @@ declare class ZGalleryPreviewComponent {
325
323
  protected readonly pdfViewerConfig: _angular_core.Signal<ZGalleryPdfViewerConfig>;
326
324
  private _mergePdfViewerCss;
327
325
  protected readonly isVideo: _angular_core.Signal<boolean>;
326
+ protected readonly isAudio: _angular_core.Signal<boolean>;
328
327
  protected readonly isWordFile: _angular_core.Signal<boolean>;
329
328
  protected readonly isExcelFile: _angular_core.Signal<boolean>;
329
+ protected readonly isPowerpointFile: _angular_core.Signal<boolean>;
330
+ protected readonly documentPreviewKind: _angular_core.Signal<ZGalleryDocumentPreviewKind>;
331
+ protected readonly mediaUrl: _angular_core.Signal<string | null>;
330
332
  protected readonly isTextFile: _angular_core.Signal<boolean>;
333
+ protected readonly isCodeFile: _angular_core.Signal<boolean>;
334
+ protected readonly fileExtension: _angular_core.Signal<string>;
335
+ protected readonly codeLanguage: _angular_core.Signal<BundledLanguage>;
331
336
  protected readonly canPreview: _angular_core.Signal<boolean>;
332
337
  protected readonly formattedSize: _angular_core.Signal<string>;
333
338
  protected readonly imageTransform: _angular_core.Signal<string>;
@@ -343,6 +348,8 @@ declare class ZGalleryPreviewComponent {
343
348
  protected rotateRight(): void;
344
349
  protected onImageLoad(): void;
345
350
  protected onVideoLoad(): void;
351
+ protected onOfficeLoad(): void;
352
+ protected onOfficeError(message: string): void;
346
353
  protected onPdfLoad(): void;
347
354
  protected onMediaError(): void;
348
355
  protected download(): void;
@@ -354,29 +361,51 @@ declare class ZGalleryPreviewComponent {
354
361
  }
355
362
 
356
363
  declare class ZGalleryPreviewRef {
357
- private readonly _overlayRef;
364
+ private readonly _dynamicRef;
358
365
  private _closed;
359
366
  componentInstance: ZGalleryPreviewComponent | null;
360
367
  readonly zAfterClose: EventEmitter<void>;
361
- constructor(_overlayRef: ZOverlayRef | null);
368
+ constructor(_dynamicRef: ZDynamicRef<ZGalleryPreviewComponent> | null);
362
369
  close(): void;
370
+ markClosed(): void;
363
371
  }
364
372
 
365
373
  declare class ZGalleryPreviewService {
366
374
  private readonly _document;
367
- private readonly _injector;
368
- private readonly _overlayService;
369
- private readonly _platformId;
370
- private readonly _zIndexService;
375
+ private readonly _dynamicService;
371
376
  open(file: ZGalleryFile, options?: Omit<ZGalleryPreviewOptions, 'file'>): ZGalleryPreviewRef;
372
377
  open(options: ZGalleryPreviewOptions): ZGalleryPreviewRef;
373
- private _createOverlay;
374
378
  private _normalizeOptions;
375
379
  private _handleDownload;
376
380
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZGalleryPreviewService, never>;
377
381
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<ZGalleryPreviewService>;
378
382
  }
379
383
 
384
+ declare class ZGalleryOfficePreviewComponent {
385
+ private readonly _destroyRef;
386
+ private readonly _renderService;
387
+ readonly zSource: _angular_core.InputSignal<Blob>;
388
+ readonly zKind: _angular_core.InputSignal<ZGalleryDocumentPreviewKind>;
389
+ readonly zLoaded: _angular_core.OutputEmitterRef<void>;
390
+ readonly zError: _angular_core.OutputEmitterRef<string>;
391
+ private readonly _host;
392
+ private _render;
393
+ private _renderedSource;
394
+ constructor();
395
+ private _render$;
396
+ private _dispose;
397
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZGalleryOfficePreviewComponent, never>;
398
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZGalleryOfficePreviewComponent, "z-gallery-office-preview", never, { "zSource": { "alias": "zSource"; "required": true; "isSignal": true; }; "zKind": { "alias": "zKind"; "required": true; "isSignal": true; }; }, { "zLoaded": "zLoaded"; "zError": "zError"; }, never, never, true, never>;
399
+ }
400
+
401
+ declare class ZGalleryTextPreviewComponent {
402
+ readonly zContent: _angular_core.InputSignal<string>;
403
+ readonly zLanguage: _angular_core.InputSignal<string>;
404
+ protected readonly lines: _angular_core.Signal<string[]>;
405
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZGalleryTextPreviewComponent, never>;
406
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZGalleryTextPreviewComponent, "z-gallery-text-preview", never, { "zContent": { "alias": "zContent"; "required": true; "isSignal": true; }; "zLanguage": { "alias": "zLanguage"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
407
+ }
408
+
380
409
  declare const getFileCategory: (file: ZGalleryFile) => ZFileCategory;
381
410
  declare const formatFileSize: (bytes: number) => string;
382
411
  declare const isPreviewable: (file: ZGalleryFile) => boolean;
@@ -397,5 +426,7 @@ declare const zGalleryFileIconVariants: (props?: ({
397
426
  } & class_variance_authority_types.ClassProp) | undefined) => string;
398
427
  type ZGalleryFileIconVariants = VariantProps<typeof zGalleryFileIconVariants>;
399
428
 
400
- export { FILE_CATEGORY_STYLES, ZGalleryComponent, ZGalleryFileIconComponent, ZGalleryItemComponent, ZGalleryPreviewComponent, ZGalleryPreviewItemDirective, ZGalleryPreviewRef, ZGalleryPreviewService, formatFileSize, getFileCategory, isImage, isPreviewable, zGalleryFileIconVariants, zGalleryItemVariants, zGalleryVariants };
401
- export type { ZFileCategory, ZFileCategoryStyle, ZGalleryActionEvent, ZGalleryActionType, ZGalleryControl, ZGalleryFile, ZGalleryFileIconVariants, ZGalleryItemVariants, ZGalleryMode, ZGalleryPdfViewerConfig, ZGalleryPdfViewerCursor, ZGalleryPdfViewerPageMode, ZGalleryPdfViewerScroll, ZGalleryPdfViewerSpread, ZGalleryPdfViewerZoom, ZGalleryPreviewItemOptions, ZGalleryPreviewOptions, ZGallerySelectionChange, ZGallerySize, ZGalleryToggleSize, ZGalleryVariants };
429
+ declare const FILE_CATEGORY_STYLES: Record<ZFileCategory, ZFileCategoryStyle>;
430
+
431
+ export { FILE_CATEGORY_STYLES, ZGalleryComponent, ZGalleryFileIconComponent, ZGalleryItemComponent, ZGalleryOfficePreviewComponent, ZGalleryPreviewComponent, ZGalleryPreviewItemDirective, ZGalleryPreviewRef, ZGalleryPreviewService, ZGalleryTextPreviewComponent, formatFileSize, getFileCategory, isImage, isPreviewable, zGalleryFileIconVariants, zGalleryItemVariants, zGalleryVariants };
432
+ export type { ZFileCategory, ZFileCategoryStyle, ZGalleryActionEvent, ZGalleryActionType, ZGalleryControl, ZGalleryDocumentPreviewKind, ZGalleryFile, ZGalleryFileIconVariants, ZGalleryItemVariants, ZGalleryMode, ZGalleryPdfViewerConfig, ZGalleryPdfViewerCursor, ZGalleryPdfViewerPageMode, ZGalleryPdfViewerScroll, ZGalleryPdfViewerSpread, ZGalleryPdfViewerZoom, ZGalleryPreviewItemOptions, ZGalleryPreviewOptions, ZGallerySelectionChange, ZGallerySize, ZGalleryToggleSize, ZGalleryVariants };
@@ -1,7 +1,15 @@
1
+ import * as _angular_platform_browser from '@angular/platform-browser';
1
2
  import * as _angular_core from '@angular/core';
2
3
  import { OnDestroy, ElementRef } from '@angular/core';
3
4
  import { ClassValue } from 'clsx';
5
+ import { VariantProps } from 'class-variance-authority';
6
+ import * as class_variance_authority_types from 'class-variance-authority/types';
4
7
 
8
+ declare const zMediaPlayerVariants: (props?: ({
9
+ zLayout?: "default" | "theater" | "fullscreen" | null | undefined;
10
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
11
+
12
+ type ZMediaPlayerVariants = VariantProps<typeof zMediaPlayerVariants>;
5
13
  interface ZMediaPlayerSubtitleTrack {
6
14
  label: string;
7
15
  src: string;
@@ -16,10 +24,45 @@ interface ZMediaPlayerPlaybackSpeed {
16
24
  label: string;
17
25
  value: number;
18
26
  }
19
-
27
+ interface ZWebkitHTMLVideoElement extends HTMLVideoElement {
28
+ webkitSupportsPresentationMode?(mode: 'inline' | 'picture-in-picture'): boolean;
29
+ webkitPresentationMode?: 'inline' | 'picture-in-picture';
30
+ webkitSetPresentationMode?(mode: 'inline' | 'picture-in-picture'): void;
31
+ }
32
+ interface ZDocumentWithPiP extends Document {
33
+ pictureInPictureEnabled: boolean;
34
+ pictureInPictureElement: Element | null;
35
+ exitPictureInPicture(): Promise<void>;
36
+ }
20
37
  type ZMediaPlayerSettingsPanel = 'main' | 'quality' | 'speed';
38
+ /** One cue parsed from a WebVTT storyboard file (`00:00:00.000 --> 00:00:02.000` + `sprite.jpg#xywh=x,y,w,h`). */
39
+ interface ZMediaPlayerThumbnailCue {
40
+ start: number;
41
+ end: number;
42
+ src: string;
43
+ x: number;
44
+ y: number;
45
+ w: number;
46
+ h: number;
47
+ }
48
+ /** Toggles which control bar groups are rendered. All default to `true`. */
49
+ interface ZMediaPlayerControls {
50
+ play: boolean;
51
+ volume: boolean;
52
+ skip: boolean;
53
+ time: boolean;
54
+ timeline: boolean;
55
+ subtitles: boolean;
56
+ settings: boolean;
57
+ pip: boolean;
58
+ theater: boolean;
59
+ fullscreen: boolean;
60
+ }
61
+
21
62
  declare class ZMediaPlayerComponent implements OnDestroy {
22
63
  private readonly _elementRef;
64
+ private readonly _ngZone;
65
+ private readonly _sanitizer;
23
66
  readonly class: _angular_core.InputSignal<ClassValue>;
24
67
  readonly zSrc: _angular_core.InputSignal<string>;
25
68
  readonly zSources: _angular_core.InputSignal<ZMediaPlayerSource[]>;
@@ -29,6 +72,12 @@ declare class ZMediaPlayerComponent implements OnDestroy {
29
72
  readonly zMuted: _angular_core.InputSignal<boolean>;
30
73
  readonly zVolume: _angular_core.InputSignal<number>;
31
74
  readonly zSubtitles: _angular_core.InputSignal<ZMediaPlayerSubtitleTrack[]>;
75
+ /** URL to a WebVTT storyboard file powering the YouTube-style timeline hover preview. */
76
+ readonly zThumbnailsVtt: _angular_core.InputSignal<string>;
77
+ /** Toggles which control bar groups render. Unset groups default to visible. */
78
+ readonly zControls: _angular_core.InputSignal<Partial<ZMediaPlayerControls>>;
79
+ readonly zLoaded: _angular_core.OutputEmitterRef<void>;
80
+ readonly zError: _angular_core.OutputEmitterRef<Error | null>;
32
81
  readonly zPlay: _angular_core.OutputEmitterRef<boolean>;
33
82
  readonly zTimeUpdate: _angular_core.OutputEmitterRef<number>;
34
83
  readonly zVolumeChange: _angular_core.OutputEmitterRef<number>;
@@ -38,6 +87,7 @@ declare class ZMediaPlayerComponent implements OnDestroy {
38
87
  readonly zQualityChange: _angular_core.OutputEmitterRef<ZMediaPlayerSource>;
39
88
  readonly videoElement: _angular_core.Signal<ElementRef<HTMLVideoElement> | undefined>;
40
89
  readonly timelineContainer: _angular_core.Signal<ElementRef<HTMLDivElement> | undefined>;
90
+ private readonly _settingsPopover;
41
91
  protected readonly isPlaying: _angular_core.WritableSignal<boolean>;
42
92
  protected readonly currentTime: _angular_core.WritableSignal<number>;
43
93
  protected readonly duration: _angular_core.WritableSignal<number>;
@@ -45,9 +95,13 @@ declare class ZMediaPlayerComponent implements OnDestroy {
45
95
  protected readonly isMuted: _angular_core.WritableSignal<boolean>;
46
96
  protected readonly playbackSpeed: _angular_core.WritableSignal<number>;
47
97
  protected readonly activeSourceSrc: _angular_core.WritableSignal<string | null>;
98
+ private readonly _activeQualitySourceLabel;
48
99
  protected readonly showControls: _angular_core.WritableSignal<boolean>;
100
+ protected readonly isPointerOver: _angular_core.WritableSignal<boolean>;
49
101
  protected readonly isBuffering: _angular_core.WritableSignal<boolean>;
50
102
  protected readonly captionsEnabled: _angular_core.WritableSignal<boolean>;
103
+ protected readonly subtitleText: _angular_core.WritableSignal<string>;
104
+ protected readonly hasSubtitles: _angular_core.Signal<boolean>;
51
105
  protected readonly isTheaterMode: _angular_core.WritableSignal<boolean>;
52
106
  protected readonly isFullscreen: _angular_core.WritableSignal<boolean>;
53
107
  protected readonly isMiniplayer: _angular_core.WritableSignal<boolean>;
@@ -55,10 +109,13 @@ declare class ZMediaPlayerComponent implements OnDestroy {
55
109
  protected readonly settingsPanel: _angular_core.WritableSignal<ZMediaPlayerSettingsPanel>;
56
110
  protected readonly isDragging: _angular_core.WritableSignal<boolean>;
57
111
  protected readonly bufferedProgress: _angular_core.WritableSignal<number>;
58
- protected readonly progress: _angular_core.Signal<number>;
112
+ protected readonly progress: _angular_core.WritableSignal<number>;
59
113
  protected readonly playPauseFlash: _angular_core.WritableSignal<"play" | "pause" | null>;
60
114
  protected readonly hoverTimeLabel: _angular_core.WritableSignal<string | null>;
115
+ protected readonly hoverTime: _angular_core.WritableSignal<number | null>;
61
116
  protected readonly hoverX: _angular_core.WritableSignal<number>;
117
+ private readonly _thumbnailCues;
118
+ private readonly _positionedSubtitleTracks;
62
119
  protected readonly skipOverlayDirection: _angular_core.WritableSignal<"left" | "right" | null>;
63
120
  protected readonly skipOverlayValue: _angular_core.WritableSignal<number>;
64
121
  protected readonly skipOverlayPulse: _angular_core.WritableSignal<number>;
@@ -67,14 +124,23 @@ declare class ZMediaPlayerComponent implements OnDestroy {
67
124
  private _controlsTimeout;
68
125
  private _flashTimeout;
69
126
  private _skipOverlayTimeout;
70
- private _clickTimeout;
127
+ private _bufferAnimationFrame;
128
+ private _playbackAnimationFrame;
129
+ private _mouseMoveCleanup;
130
+ private _lastMouseMoveAt;
131
+ private _bufferedTarget;
71
132
  private _accumulatedSkip;
72
133
  protected readonly zClasses: _angular_core.Signal<string>;
73
134
  protected readonly currentTimeLabel: _angular_core.Signal<string>;
74
135
  protected readonly durationLabel: _angular_core.Signal<string>;
136
+ protected readonly controls: _angular_core.Signal<ZMediaPlayerControls>;
75
137
  protected readonly effectiveSrc: _angular_core.Signal<string>;
76
138
  protected readonly qualitySources: _angular_core.Signal<ZMediaPlayerSource[]>;
77
139
  protected readonly activeQualityLabel: _angular_core.Signal<string>;
140
+ protected readonly youtubeVideoId: _angular_core.Signal<string | null>;
141
+ protected readonly isYouTube: _angular_core.Signal<boolean>;
142
+ protected readonly youtubeEmbedUrl: _angular_core.Signal<_angular_platform_browser.SafeResourceUrl | null>;
143
+ protected readonly hoverThumbnailCue: _angular_core.Signal<ZMediaPlayerThumbnailCue | null>;
78
144
  constructor();
79
145
  ngOnDestroy(): void;
80
146
  private _initializeVideoState;
@@ -97,28 +163,38 @@ declare class ZMediaPlayerComponent implements OnDestroy {
97
163
  protected onLeavePiP(): void;
98
164
  protected onWebkitPresentationModeChanged(): void;
99
165
  protected toggleSubtitles(): void;
166
+ private _positionSubtitleCues;
167
+ private _updateSubtitleText;
100
168
  protected onPlayStateChange(playing: boolean): void;
101
169
  protected onTimeUpdate(): void;
102
170
  protected onDurationChange(): void;
171
+ protected onLoadedData(): void;
172
+ protected onVideoError(): void;
103
173
  protected onSeeking(seeking: boolean): void;
104
174
  protected updateBufferedProgress(): void;
175
+ private _setBufferedTarget;
176
+ private _startPlaybackProgressLoop;
177
+ private _stopPlaybackProgressLoop;
178
+ private _syncPlaybackProgress;
105
179
  protected onTimelineDragStart(event: MouseEvent): void;
106
180
  protected onTimelineHover(event: MouseEvent): void;
107
181
  protected onTimelineHoverEnd(): void;
182
+ private _loadThumbnailVtt;
183
+ private _parseThumbnailVtt;
184
+ private _parseVttTimestamp;
108
185
  private _updateTimeFromCoords;
109
186
  protected onMouseMove(): void;
110
187
  protected onMouseLeave(): void;
111
188
  private _resetControlsTimer;
112
- protected onVideoClick(event: MouseEvent): void;
113
- private _handleVideoDoubleClick;
189
+ protected onVideoClick(): void;
114
190
  protected triggerSkip(seconds: number, direction: 'left' | 'right'): void;
115
191
  private _triggerSkipOverlay;
116
192
  protected onKeyDown(event: KeyboardEvent): void;
117
193
  protected toggleSettings(): void;
118
194
  private _formatTime;
119
195
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZMediaPlayerComponent, never>;
120
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZMediaPlayerComponent, "z-media-player", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "zSrc": { "alias": "zSrc"; "required": true; "isSignal": true; }; "zSources": { "alias": "zSources"; "required": false; "isSignal": true; }; "zPoster": { "alias": "zPoster"; "required": false; "isSignal": true; }; "zAutoplay": { "alias": "zAutoplay"; "required": false; "isSignal": true; }; "zLoop": { "alias": "zLoop"; "required": false; "isSignal": true; }; "zMuted": { "alias": "zMuted"; "required": false; "isSignal": true; }; "zVolume": { "alias": "zVolume"; "required": false; "isSignal": true; }; "zSubtitles": { "alias": "zSubtitles"; "required": false; "isSignal": true; }; }, { "zPlay": "zPlay"; "zTimeUpdate": "zTimeUpdate"; "zVolumeChange": "zVolumeChange"; "zFullscreenChange": "zFullscreenChange"; "zTheaterModeChange": "zTheaterModeChange"; "zMiniplayerChange": "zMiniplayerChange"; "zQualityChange": "zQualityChange"; }, never, never, true, never>;
196
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZMediaPlayerComponent, "z-media-player", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "zSrc": { "alias": "zSrc"; "required": true; "isSignal": true; }; "zSources": { "alias": "zSources"; "required": false; "isSignal": true; }; "zPoster": { "alias": "zPoster"; "required": false; "isSignal": true; }; "zAutoplay": { "alias": "zAutoplay"; "required": false; "isSignal": true; }; "zLoop": { "alias": "zLoop"; "required": false; "isSignal": true; }; "zMuted": { "alias": "zMuted"; "required": false; "isSignal": true; }; "zVolume": { "alias": "zVolume"; "required": false; "isSignal": true; }; "zSubtitles": { "alias": "zSubtitles"; "required": false; "isSignal": true; }; "zThumbnailsVtt": { "alias": "zThumbnailsVtt"; "required": false; "isSignal": true; }; "zControls": { "alias": "zControls"; "required": false; "isSignal": true; }; }, { "zLoaded": "zLoaded"; "zError": "zError"; "zPlay": "zPlay"; "zTimeUpdate": "zTimeUpdate"; "zVolumeChange": "zVolumeChange"; "zFullscreenChange": "zFullscreenChange"; "zTheaterModeChange": "zTheaterModeChange"; "zMiniplayerChange": "zMiniplayerChange"; "zQualityChange": "zQualityChange"; }, never, never, true, never>;
121
197
  }
122
198
 
123
199
  export { ZMediaPlayerComponent };
124
- export type { ZMediaPlayerPlaybackSpeed, ZMediaPlayerSource, ZMediaPlayerSubtitleTrack };
200
+ export type { ZDocumentWithPiP, ZMediaPlayerControls, ZMediaPlayerPlaybackSpeed, ZMediaPlayerSettingsPanel, ZMediaPlayerSource, ZMediaPlayerSubtitleTrack, ZMediaPlayerThumbnailCue, ZMediaPlayerVariants, ZWebkitHTMLVideoElement };
@@ -172,21 +172,16 @@ declare class ZOverlayService {
172
172
  * Khoá scroll trang khi overlay toàn màn hình (modal/drawer) mở — thay cho
173
173
  * `scrollStrategies.block()` của CDK. Đếm tham chiếu để modal-trong-modal không mở khoá sớm.
174
174
  *
175
- * Chống layout shift theo hai bước:
176
- *
177
- * 1. Nếu trang vốn đã dành chỗ cho scrollbar (`html` hẹp hơn `window.innerWidth`), khoá kèm
178
- * `scrollbar-gutter: stable` để chỗ đó KHÔNG bị nhả ra. Cách này giữ đúng chiều rộng layout
179
- * cho cả nội dung trong flow lẫn element `position: fixed` (backdrop, drawer, toast...),
180
- * nên không cần bù padding và không có gì dịch chuyển.
181
- * 2. Nếu trình duyệt vẫn nhả chỗ đó (không hỗ trợ `scrollbar-gutter`), ĐO đúng hiệu số chiều
182
- * rộng của `<html>` trước/sau khi khoá rồi bù vào `padding-right` của body.
175
+ * Chống layout shift bằng cách đo gutter thật của `<html>` rồi bù vào body trước khi khoá overflow.
176
+ * Không giữ `scrollbar-gutter: stable` trong lúc overlay mở: fixed backdrop/panel khi đó bị giới
177
+ * hạn theo layout viewport và hở một dải scrollbar ở mép phải trên Windows.
183
178
  *
184
179
  * Lưu ý: phải đo bằng `getBoundingClientRect()` của `<html>`, không dùng `documentElement.clientWidth`
185
180
  * — với root element thuộc tính đó trả về kích thước viewport nên luôn cộng thêm chiều rộng scrollbar
186
181
  * khi `overflow: hidden`, dẫn tới bù thừa và làm UI co lại đúng bằng chiều rộng scrollbar.
187
182
  *
188
- * Hiệu số còn được ghi ra biến CSS `--z-scroll-lock-gutter` (0px khi không nhả) để app bù thêm cho
189
- * element `position: fixed` của riêng mình trong trường hợp 2.
183
+ * Hiệu số được ghi ra biến CSS `--z-scroll-lock-gutter` để app bù thêm cho element `position: fixed`
184
+ * của riêng mình nếu cần.
190
185
  *
191
186
  * Vị trí scroll vẫn được lưu để khôi phục nếu ứng dụng thay đổi scroll programmatically trong lúc khoá.
192
187
  */
@@ -60,6 +60,8 @@ interface ZDynamicTemplateContext<TData, TResult> {
60
60
  interface ZDynamicOptions<TData = unknown> {
61
61
  /** Data injected into a component or exposed in a template context. */
62
62
  data?: TData;
63
+ /** Initial signal inputs applied before the first component change detection. */
64
+ inputs?: Record<string, unknown>;
63
65
  /** View container used as the logical parent of the attached portal. */
64
66
  viewContainerRef?: ViewContainerRef;
65
67
  /** Whether the overlay renders a backdrop. Defaults to `true`. */
@@ -70,6 +72,8 @@ interface ZDynamicOptions<TData = unknown> {
70
72
  panelClass?: string;
71
73
  /** Locks page scroll while the overlay is open. Defaults to `true`. */
72
74
  scrollLock?: boolean;
75
+ /** Whether the overlay pane itself can scroll. Defaults to `true`. */
76
+ scrollable?: boolean;
73
77
  /** Close when the backdrop is clicked. Defaults to `true`. */
74
78
  closeOnBackdropClick?: boolean;
75
79
  /** Close when Escape is pressed. Defaults to `true`. */
@@ -115,6 +119,7 @@ declare class ZDynamicRef<T = unknown, TResult = unknown> {
115
119
  isClosed(): boolean;
116
120
  /** Closes the overlay and emits the optional result exactly once. */
117
121
  close(result?: TResult): void;
122
+ private _getContentElements;
118
123
  /**
119
124
  * @deprecated Không còn tác dụng — overlay tự do giờ luôn dùng vị trí toàn cục (global),
120
125
  * tự canh giữa bằng CSS, không còn "chiến lược định vị" nào cần cập nhật lại. Giữ lại method
@@ -123,6 +128,8 @@ declare class ZDynamicRef<T = unknown, TResult = unknown> {
123
128
  updatePosition(): void;
124
129
  /** Updates the overlay pane dimensions. */
125
130
  updateSize(width?: string, height?: string): void;
131
+ /** Applies an input after the component has been attached. */
132
+ setInput(name: string, value: unknown): void;
126
133
  /** @internal Used by the service after attaching a component portal. */
127
134
  attachComponentRef(componentRef: ComponentRef<T>): void;
128
135
  }
@@ -325,6 +332,21 @@ declare class ZExcelService {
325
332
  static ɵprov: i0.ɵɵInjectableDeclaration<ZExcelService>;
326
333
  }
327
334
 
335
+ interface ZGalleryOfficeRenderResult {
336
+ dispose: () => void;
337
+ }
338
+
339
+ declare class ZGalleryOfficeRenderService {
340
+ renderDoc(container: HTMLElement, blob: Blob): Promise<ZGalleryOfficeRenderResult>;
341
+ renderSheet(container: HTMLElement, blob: Blob): Promise<ZGalleryOfficeRenderResult>;
342
+ renderSlide(container: HTMLElement, blob: Blob): Promise<ZGalleryOfficeRenderResult>;
343
+ private _toUniverWorkbook;
344
+ private _toUniverCellData;
345
+ private _observeDocxZoom;
346
+ static ɵfac: i0.ɵɵFactoryDeclaration<ZGalleryOfficeRenderService, never>;
347
+ static ɵprov: i0.ɵɵInjectableDeclaration<ZGalleryOfficeRenderService>;
348
+ }
349
+
328
350
  type ZHttpParamsType<T> = {
329
351
  [K in keyof T]: string | number | boolean | ReadonlyArray<string | number | boolean>;
330
352
  };
@@ -728,6 +750,7 @@ declare function zStripLegacyScopedCacheKey(key: string): string;
728
750
 
729
751
  /** Injection token for data passed to a dynamic component or template. */
730
752
  declare const Z_DYNAMIC_DATA: InjectionToken<unknown>;
753
+ declare const Z_DYNAMIC_ANIMATION_DURATION = 150;
731
754
 
732
755
  declare const Z_EXCEL_COLORS: {
733
756
  readonly 'green-50': "FFF0FDF4";
@@ -807,5 +830,5 @@ interface ZTranslateI18nConfig {
807
830
  }
808
831
  declare const Z_LANG_CACHE_KEY = "Z_LANGUAGE";
809
832
 
810
- export { ZCacheService, ZDynamicRef, ZDynamicService, ZExcelService, ZHttpAbstractService, ZIndexDbService, ZOverlayContainerService, ZOverlayZIndexService, ZSubjectService, ZThemeService, ZTranslateService, Z_CACHE_DEFAULT_PREFIX, Z_CACHE_SCOPE_SEPARATOR, Z_DB_SCOPE_SEPARATOR, Z_DEFAULT_THEME, Z_DYNAMIC_DATA, Z_EXCEL_BORDER_THIN, Z_EXCEL_CHAR_WIDTH_MAP, Z_EXCEL_COLORS, Z_EXCEL_DEFAULT_CONFIG, Z_EXCEL_FONT_MULTIPLIERS, Z_EXCEL_WIDTH_LIMITS, Z_HTTP_DEFAULT_CONFIG, Z_INDEXDB_BATCH_SIZE, Z_INDEXDB_DEFAULT_CONFIG, Z_INDEXDB_MAX_VERSION, Z_LANG_CACHE_KEY, Z_LANG_TO_LOCALE, Z_STORAGE_SCOPE_FALLBACK, Z_THEME_CONFIG, Z_THEME_CSS_MAP, Z_THEME_PREFERENCES_CACHE_KEY, zBuildLegacyScopedCacheKey, zBuildLegacyScopedDbName, zBuildScopedCacheKey, zBuildScopedDbName, zConfigureStorageAppName, zGetStorageAppName, zNormalizeStorageAppName, zStripLegacyScopedCacheKey, zStripScopedCacheKey };
811
- export type { ZCacheConfig, ZCacheEntry, ZDynamicContent, ZDynamicOptions, ZDynamicResult, ZDynamicTemplateContext, ZExcelAlign, ZExcelCell, ZExcelCellContext, ZExcelColumnConfig, ZExcelConfig, ZExcelDefaultConfig, ZExcelExportOptions, ZExcelExportResult, ZExcelFontConfig, ZExcelFromTableConfig, ZExcelHeaderColors, ZExcelHeaderContext, ZExcelSheetSource, ZExcelTableColumnConfig, ZExcelTableHeaderConfig, ZExcelToastHandler, ZHttpBaseOptions, ZHttpCacheEntry, ZHttpConfig, ZHttpContentType, ZHttpError, ZHttpNetworkCheck, ZHttpOptions, ZHttpParamsType, ZIndexDbConfig, ZIndexDbGetOptions, ZIndexDbSetOptions, ZIndexDbStoreConfig, ZTableToExcelColumn, ZThemeConfig, ZThemeName, ZThemePreferences, ZTranslateConfig, ZTranslateI18nConfig };
833
+ export { ZCacheService, ZDynamicRef, ZDynamicService, ZExcelService, ZGalleryOfficeRenderService, ZHttpAbstractService, ZIndexDbService, ZOverlayContainerService, ZOverlayZIndexService, ZSubjectService, ZThemeService, ZTranslateService, Z_CACHE_DEFAULT_PREFIX, Z_CACHE_SCOPE_SEPARATOR, Z_DB_SCOPE_SEPARATOR, Z_DEFAULT_THEME, Z_DYNAMIC_ANIMATION_DURATION, Z_DYNAMIC_DATA, Z_EXCEL_BORDER_THIN, Z_EXCEL_CHAR_WIDTH_MAP, Z_EXCEL_COLORS, Z_EXCEL_DEFAULT_CONFIG, Z_EXCEL_FONT_MULTIPLIERS, Z_EXCEL_WIDTH_LIMITS, Z_HTTP_DEFAULT_CONFIG, Z_INDEXDB_BATCH_SIZE, Z_INDEXDB_DEFAULT_CONFIG, Z_INDEXDB_MAX_VERSION, Z_LANG_CACHE_KEY, Z_LANG_TO_LOCALE, Z_STORAGE_SCOPE_FALLBACK, Z_THEME_CONFIG, Z_THEME_CSS_MAP, Z_THEME_PREFERENCES_CACHE_KEY, zBuildLegacyScopedCacheKey, zBuildLegacyScopedDbName, zBuildScopedCacheKey, zBuildScopedDbName, zConfigureStorageAppName, zGetStorageAppName, zNormalizeStorageAppName, zStripLegacyScopedCacheKey, zStripScopedCacheKey };
834
+ export type { ZCacheConfig, ZCacheEntry, ZDynamicContent, ZDynamicOptions, ZDynamicResult, ZDynamicTemplateContext, ZExcelAlign, ZExcelCell, ZExcelCellContext, ZExcelColumnConfig, ZExcelConfig, ZExcelDefaultConfig, ZExcelExportOptions, ZExcelExportResult, ZExcelFontConfig, ZExcelFromTableConfig, ZExcelHeaderColors, ZExcelHeaderContext, ZExcelSheetSource, ZExcelTableColumnConfig, ZExcelTableHeaderConfig, ZExcelToastHandler, ZGalleryOfficeRenderResult, ZHttpBaseOptions, ZHttpCacheEntry, ZHttpConfig, ZHttpContentType, ZHttpError, ZHttpNetworkCheck, ZHttpOptions, ZHttpParamsType, ZIndexDbConfig, ZIndexDbGetOptions, ZIndexDbSetOptions, ZIndexDbStoreConfig, ZTableToExcelColumn, ZThemeConfig, ZThemeName, ZThemePreferences, ZTranslateConfig, ZTranslateI18nConfig };