@acorex/components 20.8.33 → 20.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,178 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { Provider, OnDestroy } from '@angular/core';
3
+ import * as _acorex_core_file from '@acorex/core/file';
4
+ import { AXFileTypeExtensionHint, AXFileType, AXFileTypeViewComponent } from '@acorex/core/file';
5
+ import { AXStyleColorType } from '@acorex/cdk/common';
6
+ import { SafeResourceUrl } from '@angular/platform-browser';
7
+
8
+ /** Single item displayed in a file-viewer carousel. */
9
+ interface AXFileViewerItem {
10
+ id: string;
11
+ /** Catalog name (`image`, `video`, `audio`, `document`, `file`). Inferred from mimeType/extension when omitted. */
12
+ fileType?: string;
13
+ name?: string;
14
+ size?: number;
15
+ url: string | (() => Promise<string>);
16
+ thumbnailUrl?: string | (() => Promise<string>);
17
+ mimeType?: string;
18
+ extension?: string;
19
+ tooltip?: string;
20
+ }
21
+ /** Payload passed to each file-type viewer component inside the carousel. */
22
+ interface AXFileViewerViewPayload {
23
+ item: AXFileViewerItem;
24
+ index: number;
25
+ active: boolean;
26
+ }
27
+
28
+ /** Carousel state shared between container, slides and thumbnails. Provided per-container. */
29
+ declare class AXFileViewerService {
30
+ readonly items: _angular_core.WritableSignal<AXFileViewerItem[]>;
31
+ readonly selectedIndex: _angular_core.WritableSignal<number>;
32
+ private readonly urlCache;
33
+ /** Resolve a potentially lazy URL — caches the result. */
34
+ resolveUrl(item: AXFileViewerItem, key: 'url' | 'thumbnailUrl'): Promise<string | undefined>;
35
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXFileViewerService, never>;
36
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXFileViewerService>;
37
+ }
38
+
39
+ /** Registers file-viewer components on standard file-type catalog entries. */
40
+ declare function provideFileViewer(): Provider[];
41
+
42
+ /** Infers a file-type catalog name from the item. */
43
+ declare function resolveFileViewerFileType(item: AXFileViewerItem): string;
44
+ /** Builds an extension hint from item metadata. */
45
+ declare function buildFileViewerExtensionHint(item: AXFileViewerItem): AXFileTypeExtensionHint | undefined;
46
+
47
+ declare function createFileViewerFileTypes(): AXFileType[];
48
+
49
+ declare class AXFileViewerContainerComponent implements OnDestroy {
50
+ #private;
51
+ readonly items: _angular_core.InputSignal<AXFileViewerItem[]>;
52
+ readonly thumbnail: _angular_core.InputSignal<boolean>;
53
+ readonly pagination: _angular_core.InputSignal<boolean>;
54
+ readonly download: _angular_core.InputSignal<boolean>;
55
+ readonly fullscreen: _angular_core.InputSignal<boolean>;
56
+ /** External loading flag — show overlay while parent data is being fetched. */
57
+ readonly loading: _angular_core.InputSignal<boolean>;
58
+ readonly service: AXFileViewerService;
59
+ private readonly host;
60
+ private readonly zIndexService;
61
+ private readonly mainCarouselRef;
62
+ private readonly thumbCarouselRef;
63
+ private readonly fullScreenButton;
64
+ private zToken;
65
+ private initToken;
66
+ /** True while carousels are being (re)initialized. */
67
+ readonly initializing: _angular_core.WritableSignal<boolean>;
68
+ readonly isBusy: _angular_core.Signal<boolean>;
69
+ readonly isFirstSlide: _angular_core.Signal<boolean>;
70
+ readonly isLastSlide: _angular_core.Signal<boolean>;
71
+ readonly currentItem: _angular_core.Signal<AXFileViewerItem>;
72
+ readonly currentFileType: _angular_core.Signal<string>;
73
+ readonly currentTypeLabel: _angular_core.Signal<string>;
74
+ readonly currentTypeColor: _angular_core.Signal<AXStyleColorType>;
75
+ readonly slideCounter: _angular_core.Signal<string>;
76
+ readonly resolveFileType: typeof resolveFileViewerFileType;
77
+ resolveTypeLabel(item: AXFileViewerItem): string;
78
+ formatSize(size?: number): string;
79
+ private readonly mainCarouselOptions;
80
+ private readonly thumbnailCarouselOptions;
81
+ private acquireFullscreenZIndex;
82
+ private releaseFullscreenZIndex;
83
+ private initCarousels;
84
+ private readonly onSlideChange;
85
+ next(): void;
86
+ prev(): void;
87
+ goToIndex(index: number, speed?: number): void;
88
+ downloadCurrent(): Promise<void>;
89
+ ngOnDestroy(): void;
90
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXFileViewerContainerComponent, never>;
91
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXFileViewerContainerComponent, "ax-file-viewer-container", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "thumbnail": { "alias": "thumbnail"; "required": false; "isSignal": true; }; "pagination": { "alias": "pagination"; "required": false; "isSignal": true; }; "download": { "alias": "download"; "required": false; "isSignal": true; }; "fullscreen": { "alias": "fullscreen"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
92
+ }
93
+
94
+ declare class AXFileViewerSlideComponent {
95
+ readonly item: _angular_core.InputSignal<AXFileViewerItem>;
96
+ readonly index: _angular_core.InputSignal<number>;
97
+ private readonly service;
98
+ readonly fileTypeName: _angular_core.Signal<string>;
99
+ readonly extensionHint: _angular_core.Signal<_acorex_core_file.AXFileTypeExtensionHint>;
100
+ readonly viewPayload: _angular_core.Signal<AXFileViewerViewPayload>;
101
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXFileViewerSlideComponent, never>;
102
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXFileViewerSlideComponent, "ax-file-viewer-slide", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; "index": { "alias": "index"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
103
+ }
104
+
105
+ declare class AXFileViewerThumbPreviewComponent {
106
+ #private;
107
+ readonly item: _angular_core.InputSignal<AXFileViewerItem>;
108
+ private readonly service;
109
+ readonly src: _angular_core.WritableSignal<string>;
110
+ readonly icon: _angular_core.Signal<string>;
111
+ private resolvePreview;
112
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXFileViewerThumbPreviewComponent, never>;
113
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXFileViewerThumbPreviewComponent, "ax-file-viewer-thumb-preview", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
114
+ }
115
+
116
+ interface ThumbnailEntry {
117
+ id: string;
118
+ index: number;
119
+ type: string;
120
+ icon: string;
121
+ }
122
+ declare class AXFileViewerThumbnailsComponent {
123
+ readonly service: AXFileViewerService;
124
+ readonly thumbnails: _angular_core.Signal<ThumbnailEntry[]>;
125
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXFileViewerThumbnailsComponent, never>;
126
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXFileViewerThumbnailsComponent, "ax-file-viewer-thumbnails", never, {}, {}, never, never, true, never>;
127
+ }
128
+
129
+ declare class AXFileViewerImageComponent implements AXFileTypeViewComponent<AXFileViewerViewPayload> {
130
+ #private;
131
+ readonly payload: _angular_core.InputSignal<AXFileViewerViewPayload>;
132
+ private readonly service;
133
+ readonly src: _angular_core.WritableSignal<string>;
134
+ readonly loading: _angular_core.WritableSignal<boolean>;
135
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXFileViewerImageComponent, never>;
136
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXFileViewerImageComponent, "ax-file-viewer-image", never, { "payload": { "alias": "payload"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
137
+ }
138
+
139
+ declare class AXFileViewerVideoComponent implements AXFileTypeViewComponent<AXFileViewerViewPayload> {
140
+ #private;
141
+ readonly payload: _angular_core.InputSignal<AXFileViewerViewPayload>;
142
+ private readonly service;
143
+ readonly src: _angular_core.WritableSignal<string>;
144
+ readonly loading: _angular_core.WritableSignal<boolean>;
145
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXFileViewerVideoComponent, never>;
146
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXFileViewerVideoComponent, "ax-file-viewer-video", never, { "payload": { "alias": "payload"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
147
+ }
148
+
149
+ declare class AXFileViewerAudioComponent implements AXFileTypeViewComponent<AXFileViewerViewPayload> {
150
+ #private;
151
+ readonly payload: _angular_core.InputSignal<AXFileViewerViewPayload>;
152
+ private readonly service;
153
+ readonly src: _angular_core.WritableSignal<string>;
154
+ readonly loading: _angular_core.WritableSignal<boolean>;
155
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXFileViewerAudioComponent, never>;
156
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXFileViewerAudioComponent, "ax-file-viewer-audio", never, { "payload": { "alias": "payload"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
157
+ }
158
+
159
+ declare class AXFileViewerPdfComponent implements AXFileTypeViewComponent<AXFileViewerViewPayload> {
160
+ #private;
161
+ readonly payload: _angular_core.InputSignal<AXFileViewerViewPayload>;
162
+ private readonly service;
163
+ private readonly sanitizer;
164
+ readonly safeSrc: _angular_core.WritableSignal<SafeResourceUrl>;
165
+ readonly loading: _angular_core.WritableSignal<boolean>;
166
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXFileViewerPdfComponent, never>;
167
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXFileViewerPdfComponent, "ax-file-viewer-pdf", never, { "payload": { "alias": "payload"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
168
+ }
169
+
170
+ declare class AXFileViewerFileFallbackComponent implements AXFileTypeViewComponent<AXFileViewerViewPayload> {
171
+ readonly payload: _angular_core.InputSignal<AXFileViewerViewPayload>;
172
+ readonly name: _angular_core.Signal<string>;
173
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXFileViewerFileFallbackComponent, never>;
174
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXFileViewerFileFallbackComponent, "ax-file-viewer-fallback", never, { "payload": { "alias": "payload"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
175
+ }
176
+
177
+ export { AXFileViewerAudioComponent, AXFileViewerContainerComponent, AXFileViewerFileFallbackComponent, AXFileViewerImageComponent, AXFileViewerPdfComponent, AXFileViewerService, AXFileViewerSlideComponent, AXFileViewerThumbPreviewComponent, AXFileViewerThumbnailsComponent, AXFileViewerVideoComponent, buildFileViewerExtensionHint, createFileViewerFileTypes, provideFileViewer, resolveFileViewerFileType };
178
+ export type { AXFileViewerItem, AXFileViewerViewPayload };
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@acorex/components",
3
- "version": "20.8.33",
3
+ "version": "20.9.1",
4
4
  "peerDependencies": {
5
- "@acorex/core": "20.8.33",
6
- "@acorex/cdk": "20.8.33",
5
+ "@acorex/core": "20.9.1",
6
+ "@acorex/cdk": "20.9.1",
7
7
  "polytype": ">=0.17.0",
8
8
  "angular-imask": ">=7.6.1",
9
+ "imask": ">=7.6.1",
9
10
  "gridstack": ">=12.0.0",
10
11
  "rrule": ">=2.8.1",
11
12
  "leaflet": ">=1.9.4",
@@ -76,6 +77,10 @@
76
77
  "types": "./audio-wave/index.d.ts",
77
78
  "default": "./fesm2022/acorex-components-audio-wave.mjs"
78
79
  },
80
+ "./autocomplete": {
81
+ "types": "./autocomplete/index.d.ts",
82
+ "default": "./fesm2022/acorex-components-autocomplete.mjs"
83
+ },
79
84
  "./avatar": {
80
85
  "types": "./avatar/index.d.ts",
81
86
  "default": "./fesm2022/acorex-components-avatar.mjs"
@@ -88,10 +93,6 @@
88
93
  "types": "./bottom-navigation/index.d.ts",
89
94
  "default": "./fesm2022/acorex-components-bottom-navigation.mjs"
90
95
  },
91
- "./autocomplete": {
92
- "types": "./autocomplete/index.d.ts",
93
- "default": "./fesm2022/acorex-components-autocomplete.mjs"
94
- },
95
96
  "./breadcrumbs": {
96
97
  "types": "./breadcrumbs/index.d.ts",
97
98
  "default": "./fesm2022/acorex-components-breadcrumbs.mjs"
@@ -140,14 +141,14 @@
140
141
  "types": "./command/index.d.ts",
141
142
  "default": "./fesm2022/acorex-components-command.mjs"
142
143
  },
143
- "./conversation2": {
144
- "types": "./conversation2/index.d.ts",
145
- "default": "./fesm2022/acorex-components-conversation2.mjs"
146
- },
147
144
  "./comment": {
148
145
  "types": "./comment/index.d.ts",
149
146
  "default": "./fesm2022/acorex-components-comment.mjs"
150
147
  },
148
+ "./conversation": {
149
+ "types": "./conversation/index.d.ts",
150
+ "default": "./fesm2022/acorex-components-conversation.mjs"
151
+ },
151
152
  "./cron-job": {
152
153
  "types": "./cron-job/index.d.ts",
153
154
  "default": "./fesm2022/acorex-components-cron-job.mjs"
@@ -212,6 +213,10 @@
212
213
  "types": "./file-explorer/index.d.ts",
213
214
  "default": "./fesm2022/acorex-components-file-explorer.mjs"
214
215
  },
216
+ "./file-viewer": {
217
+ "types": "./file-viewer/index.d.ts",
218
+ "default": "./fesm2022/acorex-components-file-viewer.mjs"
219
+ },
215
220
  "./flow-chart": {
216
221
  "types": "./flow-chart/index.d.ts",
217
222
  "default": "./fesm2022/acorex-components-flow-chart.mjs"
@@ -396,6 +401,10 @@
396
401
  "types": "./selection-list/index.d.ts",
397
402
  "default": "./fesm2022/acorex-components-selection-list.mjs"
398
403
  },
404
+ "./selection-list-2": {
405
+ "types": "./selection-list-2/index.d.ts",
406
+ "default": "./fesm2022/acorex-components-selection-list-2.mjs"
407
+ },
399
408
  "./side-menu": {
400
409
  "types": "./side-menu/index.d.ts",
401
410
  "default": "./fesm2022/acorex-components-side-menu.mjs"
@@ -432,22 +441,22 @@
432
441
  "types": "./tag-box/index.d.ts",
433
442
  "default": "./fesm2022/acorex-components-tag-box.mjs"
434
443
  },
435
- "./text-box": {
436
- "types": "./text-box/index.d.ts",
437
- "default": "./fesm2022/acorex-components-text-box.mjs"
438
- },
439
444
  "./text-area": {
440
445
  "types": "./text-area/index.d.ts",
441
446
  "default": "./fesm2022/acorex-components-text-area.mjs"
442
447
  },
443
- "./time-line": {
444
- "types": "./time-line/index.d.ts",
445
- "default": "./fesm2022/acorex-components-time-line.mjs"
448
+ "./text-box": {
449
+ "types": "./text-box/index.d.ts",
450
+ "default": "./fesm2022/acorex-components-text-box.mjs"
446
451
  },
447
452
  "./time-duration": {
448
453
  "types": "./time-duration/index.d.ts",
449
454
  "default": "./fesm2022/acorex-components-time-duration.mjs"
450
455
  },
456
+ "./time-line": {
457
+ "types": "./time-line/index.d.ts",
458
+ "default": "./fesm2022/acorex-components-time-line.mjs"
459
+ },
451
460
  "./toast": {
452
461
  "types": "./toast/index.d.ts",
453
462
  "default": "./fesm2022/acorex-components-toast.mjs"
@@ -472,17 +481,13 @@
472
481
  "types": "./uploader/index.d.ts",
473
482
  "default": "./fesm2022/acorex-components-uploader.mjs"
474
483
  },
475
- "./wysiwyg": {
476
- "types": "./wysiwyg/index.d.ts",
477
- "default": "./fesm2022/acorex-components-wysiwyg.mjs"
478
- },
479
484
  "./video-player": {
480
485
  "types": "./video-player/index.d.ts",
481
486
  "default": "./fesm2022/acorex-components-video-player.mjs"
482
487
  },
483
- "./selection-list-2": {
484
- "types": "./selection-list-2/index.d.ts",
485
- "default": "./fesm2022/acorex-components-selection-list-2.mjs"
488
+ "./wysiwyg": {
489
+ "types": "./wysiwyg/index.d.ts",
490
+ "default": "./fesm2022/acorex-components-wysiwyg.mjs"
486
491
  }
487
492
  }
488
493
  }
@@ -855,6 +855,8 @@ declare class AXSchedulerPickerService {
855
855
  * Parses standard cron format: minute hour day month weekday
856
856
  */
857
857
  fromCronExpression(cron: string): Promise<AXSchedulerPickerValue | null>;
858
+ /** cron-parser v5 field values may include special chars (L, W, …); keep numbers only. */
859
+ private cronFieldNumericValues;
858
860
  /**
859
861
  * Analyze a cron field to extract interval and values
860
862
  */