@acorex/cdk 21.0.2-next.4 → 21.0.2-next.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-cdk-accordion.mjs +35 -35
- package/fesm2022/acorex-cdk-accordion.mjs.map +1 -1
- package/fesm2022/acorex-cdk-carousel.mjs +4 -4
- package/fesm2022/acorex-cdk-carousel.mjs.map +1 -1
- package/fesm2022/acorex-cdk-clipboard.mjs +7 -7
- package/fesm2022/acorex-cdk-clipboard.mjs.map +1 -1
- package/fesm2022/acorex-cdk-common.mjs +102 -103
- package/fesm2022/acorex-cdk-common.mjs.map +1 -1
- package/fesm2022/acorex-cdk-dom.mjs +3 -3
- package/fesm2022/acorex-cdk-double-click.mjs +5 -5
- package/fesm2022/acorex-cdk-double-click.mjs.map +1 -1
- package/fesm2022/acorex-cdk-drag-drop.mjs +68 -68
- package/fesm2022/acorex-cdk-drag-drop.mjs.map +1 -1
- package/fesm2022/acorex-cdk-drawer.mjs +35 -35
- package/fesm2022/acorex-cdk-drawer.mjs.map +1 -1
- package/fesm2022/acorex-cdk-focus-trap.mjs +19 -19
- package/fesm2022/acorex-cdk-focus-trap.mjs.map +1 -1
- package/fesm2022/acorex-cdk-full-screen.mjs +4 -4
- package/fesm2022/acorex-cdk-full-screen.mjs.map +1 -1
- package/fesm2022/acorex-cdk-input-mask.mjs +19 -13
- package/fesm2022/acorex-cdk-input-mask.mjs.map +1 -1
- package/fesm2022/acorex-cdk-list-navigation.mjs +17 -17
- package/fesm2022/acorex-cdk-list-navigation.mjs.map +1 -1
- package/fesm2022/acorex-cdk-outline.mjs +77 -66
- package/fesm2022/acorex-cdk-outline.mjs.map +1 -1
- package/fesm2022/acorex-cdk-overlay.mjs +16 -3
- package/fesm2022/acorex-cdk-overlay.mjs.map +1 -1
- package/fesm2022/acorex-cdk-pan-view.mjs +67 -49
- package/fesm2022/acorex-cdk-pan-view.mjs.map +1 -1
- package/fesm2022/acorex-cdk-resizable.mjs +46 -22
- package/fesm2022/acorex-cdk-resizable.mjs.map +1 -1
- package/fesm2022/acorex-cdk-selection.mjs +21 -21
- package/fesm2022/acorex-cdk-selection.mjs.map +1 -1
- package/fesm2022/acorex-cdk-sliding-item.mjs +11 -11
- package/fesm2022/acorex-cdk-sliding-item.mjs.map +1 -1
- package/fesm2022/acorex-cdk-sticky.mjs +3 -3
- package/fesm2022/acorex-cdk-uploader.mjs +298 -188
- package/fesm2022/acorex-cdk-uploader.mjs.map +1 -1
- package/fesm2022/acorex-cdk-virtual-scroll.mjs +17 -17
- package/fesm2022/acorex-cdk-virtual-scroll.mjs.map +1 -1
- package/fesm2022/acorex-cdk-wysiwyg.mjs +1 -1
- package/fesm2022/acorex-cdk-wysiwyg.mjs.map +1 -1
- package/fesm2022/acorex-cdk-z-index.mjs +4 -4
- package/fesm2022/acorex-cdk-z-index.mjs.map +1 -1
- package/package.json +3 -2
- package/types/acorex-cdk-common.d.ts +1 -1
- package/types/acorex-cdk-drawer.d.ts +2 -0
- package/types/acorex-cdk-focus-trap.d.ts +2 -3
- package/types/acorex-cdk-input-mask.d.ts +1 -0
- package/types/acorex-cdk-outline.d.ts +1 -0
- package/types/acorex-cdk-overlay.d.ts +1 -0
- package/types/acorex-cdk-pan-view.d.ts +4 -0
- package/types/acorex-cdk-resizable.d.ts +2 -0
- package/types/acorex-cdk-uploader.d.ts +120 -110
|
@@ -1,47 +1,44 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { OnInit, OnDestroy, TemplateRef } from '@angular/core';
|
|
3
3
|
import { AXEvent } from '@acorex/cdk/common';
|
|
4
|
+
import { AXValidationRuleResult } from '@acorex/core/validation';
|
|
4
5
|
import * as rxjs from 'rxjs';
|
|
5
6
|
import { Subject, BehaviorSubject } from 'rxjs';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
9
|
+
* Triggers the nearest {@link AXUploaderZoneDirective} file dialog on click.
|
|
10
|
+
* Resolves the zone via DI when possible, otherwise walks the DOM (supports content projection).
|
|
10
11
|
* @category Directives
|
|
11
12
|
*/
|
|
12
13
|
declare class AXUploaderBrowseDirective implements OnInit, OnDestroy {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
private
|
|
18
|
-
/**
|
|
19
|
-
* The element reference for the directive host.
|
|
20
|
-
* @ignore
|
|
21
|
-
*/
|
|
22
|
-
private elementRef;
|
|
23
|
-
/**
|
|
24
|
-
* Platform ID for browser detection.
|
|
25
|
-
* @ignore
|
|
26
|
-
*/
|
|
27
|
-
private platformID;
|
|
28
|
-
/**
|
|
29
|
-
* Initializes the directive by adding click event listener and data attribute.
|
|
30
|
-
*/
|
|
14
|
+
private readonly elementRef;
|
|
15
|
+
private readonly platformID;
|
|
16
|
+
/** When browse + zone share the same host element. */
|
|
17
|
+
private readonly zoneFromInjector;
|
|
18
|
+
private readonly onClick;
|
|
31
19
|
ngOnInit(): void;
|
|
32
|
-
/**
|
|
33
|
-
* Cleans up the directive by removing event listeners.
|
|
34
|
-
*/
|
|
35
20
|
ngOnDestroy(): void;
|
|
36
|
-
|
|
37
|
-
* Handles the click event to trigger file browser.
|
|
38
|
-
* @private
|
|
39
|
-
*/
|
|
21
|
+
private resolveZone;
|
|
40
22
|
private handleClick;
|
|
41
23
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXUploaderBrowseDirective, never>;
|
|
42
24
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXUploaderBrowseDirective, "[axUploaderBrowseHandle]", never, {}, {}, never, never, true, never>;
|
|
43
25
|
}
|
|
44
26
|
|
|
27
|
+
interface AXUploaderChooseFilesResult {
|
|
28
|
+
accepted: File[];
|
|
29
|
+
rejected: {
|
|
30
|
+
file: File;
|
|
31
|
+
errors: AXValidationRuleResult[];
|
|
32
|
+
}[];
|
|
33
|
+
}
|
|
34
|
+
interface AXUploaderFileChangeEvent {
|
|
35
|
+
event: Event;
|
|
36
|
+
files: File[];
|
|
37
|
+
rejected?: {
|
|
38
|
+
file: File;
|
|
39
|
+
errors: AXValidationRuleResult[];
|
|
40
|
+
}[];
|
|
41
|
+
}
|
|
45
42
|
type AXUploadStatus = 'new' | 'inprogress' | 'completed' | 'failed' | 'canceled';
|
|
46
43
|
interface AXUploaderChangedEvent extends AXEvent {
|
|
47
44
|
requests: AXUploadRequest[];
|
|
@@ -119,6 +116,11 @@ declare class AXUploaderZoneDirective implements OnDestroy {
|
|
|
119
116
|
* @defaultValue null
|
|
120
117
|
*/
|
|
121
118
|
accept: _angular_core.InputSignal<string>;
|
|
119
|
+
/**
|
|
120
|
+
* Logical file type name from {@link AXFileService} (e.g. `conversation-image`).
|
|
121
|
+
* Required for browse handles and validated selection.
|
|
122
|
+
*/
|
|
123
|
+
fileType: _angular_core.InputSignal<string>;
|
|
122
124
|
/**
|
|
123
125
|
* Custom template for the drag overlay. If provided, this will be used instead of the default overlay.
|
|
124
126
|
*/
|
|
@@ -177,10 +179,7 @@ declare class AXUploaderZoneDirective implements OnDestroy {
|
|
|
177
179
|
* Emitted when files are selected or dropped (like HTML file input).
|
|
178
180
|
* Emits an event with files property containing the selected files.
|
|
179
181
|
*/
|
|
180
|
-
fileChange: _angular_core.OutputEmitterRef<
|
|
181
|
-
event: Event;
|
|
182
|
-
files: File[];
|
|
183
|
-
}>;
|
|
182
|
+
fileChange: _angular_core.OutputEmitterRef<AXUploaderFileChangeEvent>;
|
|
184
183
|
/**
|
|
185
184
|
* Emitted when files are changed (added, removed, etc.).
|
|
186
185
|
* @deprecated Use fileChange instead for simpler file input-like behavior
|
|
@@ -276,103 +275,114 @@ declare class AXUploaderZoneDirective implements OnDestroy {
|
|
|
276
275
|
*/
|
|
277
276
|
browser(): Promise<void>;
|
|
278
277
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXUploaderZoneDirective, never>;
|
|
279
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXUploaderZoneDirective, "[axUploaderZone]", never, { "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "overlayTemplate": { "alias": "overlayTemplate"; "required": false; "isSignal": true; }; "disableBrowse": { "alias": "disableBrowse"; "required": false; "isSignal": true; }; "disableDragDrop": { "alias": "disableDragDrop"; "required": false; "isSignal": true; }; }, { "fileChange": "fileChange"; "onChanged": "onChanged"; "dragEnter": "dragEnter"; "dragLeave": "dragLeave"; "dragOver": "dragOver"; "onFileUploadComplete": "onFileUploadComplete"; "onFilesUploadComplete": "onFilesUploadComplete"; }, never, never, true, never>;
|
|
278
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXUploaderZoneDirective, "[axUploaderZone]", never, { "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "fileType": { "alias": "fileType"; "required": false; "isSignal": true; }; "overlayTemplate": { "alias": "overlayTemplate"; "required": false; "isSignal": true; }; "disableBrowse": { "alias": "disableBrowse"; "required": false; "isSignal": true; }; "disableDragDrop": { "alias": "disableDragDrop"; "required": false; "isSignal": true; }; }, { "fileChange": "fileChange"; "onChanged": "onChanged"; "dragEnter": "dragEnter"; "dragLeave": "dragLeave"; "dragOver": "dragOver"; "onFileUploadComplete": "onFileUploadComplete"; "onFilesUploadComplete": "onFilesUploadComplete"; }, never, never, true, never>;
|
|
280
279
|
}
|
|
281
280
|
|
|
281
|
+
/** Reference to stored file/media (url and/or mediaId). */
|
|
282
|
+
interface AXUploadReference {
|
|
283
|
+
url?: string;
|
|
284
|
+
mediaId?: string;
|
|
285
|
+
mimeType?: string;
|
|
286
|
+
size?: number;
|
|
287
|
+
expiresAt?: number;
|
|
288
|
+
metadata?: Record<string, unknown>;
|
|
289
|
+
}
|
|
290
|
+
interface AXFileUploadOptions {
|
|
291
|
+
source: File | Blob;
|
|
292
|
+
fileName?: string;
|
|
293
|
+
mimeType?: string;
|
|
294
|
+
metadata?: Record<string, unknown>;
|
|
295
|
+
onProgress?: (percent: number) => void;
|
|
296
|
+
signal?: AbortSignal;
|
|
297
|
+
}
|
|
298
|
+
interface AXUploadResult {
|
|
299
|
+
url: string;
|
|
300
|
+
thumbnailUrl?: string;
|
|
301
|
+
mediaId?: string;
|
|
302
|
+
size: number;
|
|
303
|
+
mimeType: string;
|
|
304
|
+
metadata?: Record<string, unknown>;
|
|
305
|
+
}
|
|
306
|
+
/** Emitted when {@link AXUploaderService.upload} is called. */
|
|
307
|
+
interface AXUploaderUploadEvent extends AXEvent {
|
|
308
|
+
options: AXFileUploadOptions;
|
|
309
|
+
resolve: (result: AXUploadResult) => void;
|
|
310
|
+
reject: (reason: unknown) => void;
|
|
311
|
+
}
|
|
312
|
+
/** Emitted when {@link AXUploaderService.resolveUrl} is called. */
|
|
313
|
+
interface AXUploaderResolveUrlEvent extends AXEvent {
|
|
314
|
+
reference: AXUploadReference;
|
|
315
|
+
signal?: AbortSignal;
|
|
316
|
+
resolve: (url: string) => void;
|
|
317
|
+
reject: (reason: unknown) => void;
|
|
318
|
+
}
|
|
319
|
+
/** Emitted when {@link AXUploaderService.deleteMedia} is called. */
|
|
320
|
+
interface AXUploaderDeleteMediaEvent extends AXEvent {
|
|
321
|
+
reference: AXUploadReference;
|
|
322
|
+
resolve: () => void;
|
|
323
|
+
reject: (reason: unknown) => void;
|
|
324
|
+
}
|
|
325
|
+
interface AXUploaderBrowseOptions {
|
|
326
|
+
multiple?: boolean;
|
|
327
|
+
accept?: string;
|
|
328
|
+
/** Logical file type name(s) registered in {@link AXFileService}. */
|
|
329
|
+
fileType?: string | string[];
|
|
330
|
+
}
|
|
331
|
+
interface AXUploaderAddOptions {
|
|
332
|
+
fileType?: string | string[];
|
|
333
|
+
}
|
|
282
334
|
/**
|
|
283
|
-
*
|
|
335
|
+
* File upload queue and validation via {@link AXFileService}.
|
|
336
|
+
* Storage is implemented by subscribing to upload/resolve/delete events.
|
|
284
337
|
* @category Services
|
|
285
338
|
*/
|
|
286
339
|
declare class AXUploaderService {
|
|
287
|
-
|
|
288
|
-
* Translation service for localized text.
|
|
289
|
-
* @ignore
|
|
290
|
-
*/
|
|
291
|
-
private translateService;
|
|
292
|
-
/**
|
|
293
|
-
* File service for file operations.
|
|
294
|
-
* @ignore
|
|
295
|
-
*/
|
|
296
|
-
private fileService;
|
|
297
|
-
/**
|
|
298
|
-
* Behavior subject for managing upload requests.
|
|
299
|
-
* @ignore
|
|
300
|
-
*/
|
|
340
|
+
private readonly fileService;
|
|
301
341
|
private readonly _files$;
|
|
302
|
-
/**
|
|
303
|
-
* Gets the files behavior subject for observing upload requests.
|
|
304
|
-
*/
|
|
305
342
|
readonly files: rxjs.Observable<AXUploadRequest[]>;
|
|
306
|
-
/**
|
|
307
|
-
* Subject for file upload start events.
|
|
308
|
-
*/
|
|
309
343
|
readonly onFileUploadStart: Subject<AXUploaderFileStartEvent>;
|
|
310
|
-
/**
|
|
311
|
-
* Subject for file upload complete events.
|
|
312
|
-
*/
|
|
313
344
|
readonly onFileUploadComplete: Subject<AXUploaderFileCompleteEvent>;
|
|
314
|
-
/**
|
|
315
|
-
* Subject for all files upload complete events.
|
|
316
|
-
*/
|
|
317
345
|
readonly onFilesUploadComplete: Subject<AXUploaderFilesCompleteEvent>;
|
|
318
|
-
/**
|
|
319
|
-
* Subject for file upload canceled events.
|
|
320
|
-
*/
|
|
321
346
|
readonly onFileUploadCanceled: Subject<AXUploaderFileCancelEvent>;
|
|
322
|
-
/**
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
readonly
|
|
326
|
-
/**
|
|
327
|
-
|
|
328
|
-
*/
|
|
347
|
+
/** Subscribe to perform uploads (e.g. HTTP, IndexedDB). */
|
|
348
|
+
readonly onUpload: Subject<AXUploaderUploadEvent>;
|
|
349
|
+
/** Subscribe to resolve a stored reference to a playback URL. */
|
|
350
|
+
readonly onResolveUrl: Subject<AXUploaderResolveUrlEvent>;
|
|
351
|
+
/** Subscribe to delete stored media. */
|
|
352
|
+
readonly onDeleteMedia: Subject<AXUploaderDeleteMediaEvent>;
|
|
329
353
|
readonly totalEstimateTime: rxjs.Observable<number>;
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
private
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
*
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
}): Promise<AXUploadRequest[]>;
|
|
354
|
-
/**
|
|
355
|
-
* Adds files to the upload queue and starts the upload process.
|
|
356
|
-
* @param files - Files to add to the upload queue
|
|
357
|
-
* @returns Promise that resolves to an array of upload requests
|
|
358
|
-
*/
|
|
359
|
-
add(files: FileList | File[]): Promise<AXUploadRequest[]>;
|
|
360
|
-
/**
|
|
361
|
-
* Cancels all pending and in-progress uploads.
|
|
362
|
-
*/
|
|
354
|
+
isAnyDetermined(): boolean;
|
|
355
|
+
validateFiles(files: File[], fileType: string): Promise<{
|
|
356
|
+
accepted: File[];
|
|
357
|
+
rejected: {
|
|
358
|
+
file: File;
|
|
359
|
+
errors: AXValidationRuleResult[];
|
|
360
|
+
}[];
|
|
361
|
+
}>;
|
|
362
|
+
getAcceptAttribute(fileType: string | string[]): Promise<string>;
|
|
363
|
+
upload(options: AXFileUploadOptions): Promise<AXUploadResult>;
|
|
364
|
+
resolveUrl(reference: AXUploadReference, signal?: AbortSignal): Promise<string>;
|
|
365
|
+
resolvePlaybackUrl(reference: AXUploadReference, signal?: AbortSignal): Promise<string>;
|
|
366
|
+
deleteMedia(reference: AXUploadReference): Promise<void>;
|
|
367
|
+
private hasUploadHandler;
|
|
368
|
+
private hasResolveUrlHandler;
|
|
369
|
+
private hasDeleteMediaHandler;
|
|
370
|
+
add(files: FileList | File[], options?: AXUploaderAddOptions): Promise<AXUploadRequest[]>;
|
|
371
|
+
/**
|
|
372
|
+
* Opens the file dialog and returns selected files without enqueueing uploads.
|
|
373
|
+
* With `fileType`, applies catalog validation; otherwise uses legacy accept-only selection.
|
|
374
|
+
*/
|
|
375
|
+
chooseFiles(options?: AXUploaderBrowseOptions): Promise<AXUploaderChooseFilesResult>;
|
|
376
|
+
browse(options?: AXUploaderBrowseOptions): Promise<AXUploadRequest[]>;
|
|
363
377
|
cancelAll(): Promise<void>;
|
|
364
|
-
/**
|
|
365
|
-
* Clears all completed uploads from the queue.
|
|
366
|
-
*/
|
|
367
378
|
clearAll(): void;
|
|
368
|
-
/**
|
|
369
|
-
* Removes a specific upload request from the queue.
|
|
370
|
-
* @param item - The upload request to remove
|
|
371
|
-
*/
|
|
372
379
|
remove(item: AXUploadRequest): void;
|
|
380
|
+
private startUpload;
|
|
381
|
+
private bindEvents;
|
|
382
|
+
private applyFileTypeValidation;
|
|
373
383
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXUploaderService, never>;
|
|
374
384
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXUploaderService>;
|
|
375
385
|
}
|
|
376
386
|
|
|
377
387
|
export { AXUploadRequest, AXUploaderBrowseDirective, AXUploaderService, AXUploaderZoneDirective };
|
|
378
|
-
export type { AXUploadStatus, AXUploaderChangedEvent, AXUploaderFileCancelEvent, AXUploaderFileCompleteEvent, AXUploaderFileStartEvent, AXUploaderFilesCompleteEvent };
|
|
388
|
+
export type { AXFileUploadOptions, AXUploadReference, AXUploadResult, AXUploadStatus, AXUploaderAddOptions, AXUploaderBrowseOptions, AXUploaderChangedEvent, AXUploaderChooseFilesResult, AXUploaderDeleteMediaEvent, AXUploaderFileCancelEvent, AXUploaderFileChangeEvent, AXUploaderFileCompleteEvent, AXUploaderFileStartEvent, AXUploaderFilesCompleteEvent, AXUploaderResolveUrlEvent, AXUploaderUploadEvent };
|