@useupup/angular 3.3.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.
- package/LICENSE +21 -0
- package/README.md +71 -0
- package/dist/README.md +71 -0
- package/dist/assets/logos.d.ts +4 -0
- package/dist/components/audio-uploader.component.d.ts +48 -0
- package/dist/components/audio-waveform.component.d.ts +24 -0
- package/dist/components/box-uploader.component.d.ts +22 -0
- package/dist/components/camera-uploader.component.d.ts +44 -0
- package/dist/components/client-box-uploader.component.d.ts +23 -0
- package/dist/components/client-dropbox-uploader.component.d.ts +23 -0
- package/dist/components/client-google-drive-uploader.component.d.ts +28 -0
- package/dist/components/client-one-drive-uploader.component.d.ts +23 -0
- package/dist/components/default-add-more-icon.component.d.ts +12 -0
- package/dist/components/dropbox-uploader.component.d.ts +22 -0
- package/dist/components/file-hero.component.d.ts +36 -0
- package/dist/components/file-icon.component.d.ts +12 -0
- package/dist/components/file-item.component.d.ts +28 -0
- package/dist/components/file-list.component.d.ts +71 -0
- package/dist/components/file-preview-portal.component.d.ts +52 -0
- package/dist/components/file-preview-thumbnail.component.d.ts +40 -0
- package/dist/components/file-preview.component.d.ts +55 -0
- package/dist/components/file-row.component.d.ts +43 -0
- package/dist/components/google-drive-uploader.component.d.ts +22 -0
- package/dist/components/icon.component.d.ts +17 -0
- package/dist/components/icons/audio-icon.component.d.ts +6 -0
- package/dist/components/icons/box-icon.component.d.ts +6 -0
- package/dist/components/icons/camera-icon.component.d.ts +6 -0
- package/dist/components/icons/chevron-left-icon.component.d.ts +6 -0
- package/dist/components/icons/default-loader-icon.component.d.ts +5 -0
- package/dist/components/icons/dropbox-icon.component.d.ts +6 -0
- package/dist/components/icons/empty-icon.component.d.ts +6 -0
- package/dist/components/icons/file-icon-svg.component.d.ts +8 -0
- package/dist/components/icons/folder-filled-icon.component.d.ts +6 -0
- package/dist/components/icons/google-drive-icon.component.d.ts +6 -0
- package/dist/components/icons/index.d.ts +25 -0
- package/dist/components/icons/layout-grid-icon.component.d.ts +6 -0
- package/dist/components/icons/layout-list-icon.component.d.ts +6 -0
- package/dist/components/icons/link-icon.component.d.ts +6 -0
- package/dist/components/icons/loader-icon.component.d.ts +6 -0
- package/dist/components/icons/my-device-icon.component.d.ts +6 -0
- package/dist/components/icons/one-drive-icon.component.d.ts +6 -0
- package/dist/components/icons/player-pause-filled-icon.component.d.ts +6 -0
- package/dist/components/icons/player-play-filled-icon.component.d.ts +6 -0
- package/dist/components/icons/screen-capture-icon.component.d.ts +6 -0
- package/dist/components/icons/search-icon.component.d.ts +6 -0
- package/dist/components/icons/trash-icon.component.d.ts +14 -0
- package/dist/components/icons/upload-icon.component.d.ts +7 -0
- package/dist/components/icons/user-icon.component.d.ts +6 -0
- package/dist/components/icons/x-icon.component.d.ts +6 -0
- package/dist/components/image-editor-stub.component.d.ts +13 -0
- package/dist/components/one-drive-uploader.component.d.ts +22 -0
- package/dist/components/progress-bar.component.d.ts +30 -0
- package/dist/components/screen-capture-uploader.component.d.ts +47 -0
- package/dist/components/server-mode-drive-uploader.component.d.ts +49 -0
- package/dist/components/shared/drive-auth-fallback.component.d.ts +27 -0
- package/dist/components/shared/drive-browser-header.component.d.ts +64 -0
- package/dist/components/shared/drive-browser-icon.component.d.ts +16 -0
- package/dist/components/shared/drive-browser-item.component.d.ts +21 -0
- package/dist/components/shared/drive-browser.component.d.ts +52 -0
- package/dist/components/shared/file-success-check.component.d.ts +21 -0
- package/dist/components/source-selector.component.d.ts +35 -0
- package/dist/components/source-view-container.component.d.ts +29 -0
- package/dist/components/source-view.component.d.ts +46 -0
- package/dist/components/uploader-header.component.d.ts +36 -0
- package/dist/components/uploader-panel.component.d.ts +59 -0
- package/dist/components/url-uploader.component.d.ts +30 -0
- package/dist/context/source-view-header-extra.service.d.ts +21 -0
- package/dist/fesm2022/useupup-angular.mjs +9561 -0
- package/dist/fesm2022/useupup-angular.mjs.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/lib/to-signal-store.d.ts +20 -0
- package/dist/lib/use-sse-processing.d.ts +19 -0
- package/dist/lib/use-tiles-per-row.d.ts +18 -0
- package/dist/lib/use-upup-upload.d.ts +40 -0
- package/dist/lib/view-mode.d.ts +23 -0
- package/dist/public-api.d.ts +9 -0
- package/dist/services/box.service.d.ts +40 -0
- package/dist/services/camera-uploader.service.d.ts +32 -0
- package/dist/services/dropbox.service.d.ts +40 -0
- package/dist/services/fetch-file-by-url.service.d.ts +17 -0
- package/dist/services/google-drive.service.d.ts +47 -0
- package/dist/services/one-drive.service.d.ts +39 -0
- package/dist/services/server-mode-drive.service.d.ts +30 -0
- package/dist/shared/types.d.ts +14 -0
- package/dist/styles.d.ts +4 -0
- package/dist/tailwind-prefixed.css +2499 -0
- package/dist/upup-store.service.d.ts +131 -0
- package/dist/upup-uploader.component.d.ts +36 -0
- package/package.json +109 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { type Signal } from '@angular/core';
|
|
2
|
+
import { FileSource, UploadStatus, type CloudDrivesConfig, type UploadFile, type UiTranslations, type Translator, type ResolvedImageEditorOptions } from '@useupup/core';
|
|
3
|
+
import { UploaderOrchestrator, ThemeStore, type MotionMode } from '@useupup/core/internal';
|
|
4
|
+
import { type UpupUploadHandle } from './lib/use-upup-upload';
|
|
5
|
+
import type { UploaderProps } from './shared/types';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
type OrchSnapshot = ReturnType<UploaderOrchestrator['getSnapshot']>;
|
|
8
|
+
type ThemeSnapshot = ReturnType<ThemeStore['getSnapshot']>;
|
|
9
|
+
export declare class UpupStore {
|
|
10
|
+
private props?;
|
|
11
|
+
private upload;
|
|
12
|
+
private controller;
|
|
13
|
+
core: UpupUploadHandle['core'];
|
|
14
|
+
private orchState;
|
|
15
|
+
/** The orchestrator instance, exposed for the dropzone DragDropController. Set during init(). */
|
|
16
|
+
get orchestrator(): UploaderOrchestrator;
|
|
17
|
+
private themeState;
|
|
18
|
+
private transientState;
|
|
19
|
+
private motionState;
|
|
20
|
+
private started;
|
|
21
|
+
private destroyed;
|
|
22
|
+
private cleanups;
|
|
23
|
+
/** Set during init(); undefined before init() is called. */
|
|
24
|
+
mode: 'client' | 'server';
|
|
25
|
+
serverUrl?: string | undefined;
|
|
26
|
+
translations: Signal<UiTranslations>;
|
|
27
|
+
translator: Translator;
|
|
28
|
+
lang: string;
|
|
29
|
+
dir: string;
|
|
30
|
+
cloudDrives?: CloudDrivesConfig | undefined;
|
|
31
|
+
uiProps: {
|
|
32
|
+
mini: boolean;
|
|
33
|
+
maxRetries?: number | undefined;
|
|
34
|
+
resumable?: UploaderProps['resumable'] | undefined;
|
|
35
|
+
onError: (message: string) => void;
|
|
36
|
+
onIntegrationClick: (integrationType: string) => void;
|
|
37
|
+
onFileClick: (file: UploadFile) => void;
|
|
38
|
+
onFilesDragOver: (files: File[]) => void;
|
|
39
|
+
onFilesDragLeave: (files: File[]) => void;
|
|
40
|
+
onFilesDrop: (files: File[]) => void;
|
|
41
|
+
onWarn: (message: string) => void;
|
|
42
|
+
enablePaste: boolean;
|
|
43
|
+
sources: FileSource[];
|
|
44
|
+
allowedFileTypes: string;
|
|
45
|
+
maxFileSize?: UploaderProps['maxFileSize'] | undefined;
|
|
46
|
+
limit: number;
|
|
47
|
+
isProcessing: boolean;
|
|
48
|
+
allowPreview: boolean;
|
|
49
|
+
folderUploadAllowDrop: boolean;
|
|
50
|
+
folderPickerButtonVisible: boolean;
|
|
51
|
+
showBranding: boolean;
|
|
52
|
+
quietCompletion: boolean;
|
|
53
|
+
disableDragDrop: boolean;
|
|
54
|
+
className: string;
|
|
55
|
+
style: Record<string, string>;
|
|
56
|
+
multiple: boolean;
|
|
57
|
+
icons: {
|
|
58
|
+
ContainerAddMoreIcon: unknown;
|
|
59
|
+
FileDeleteIcon: unknown;
|
|
60
|
+
CameraCaptureIcon: unknown;
|
|
61
|
+
CameraRotateIcon: unknown;
|
|
62
|
+
CameraDeleteIcon: unknown;
|
|
63
|
+
LoaderIcon: unknown;
|
|
64
|
+
};
|
|
65
|
+
imageEditor: ResolvedImageEditorOptions;
|
|
66
|
+
};
|
|
67
|
+
files: Signal<OrchSnapshot['files']>;
|
|
68
|
+
activeSource: Signal<FileSource | undefined>;
|
|
69
|
+
isAddingMore: Signal<boolean>;
|
|
70
|
+
viewMode: Signal<'grid' | 'list'>;
|
|
71
|
+
isOnline: Signal<boolean>;
|
|
72
|
+
editingFile: Signal<UploadFile | null>;
|
|
73
|
+
totalProgress: Signal<number>;
|
|
74
|
+
filesProgressMap: Signal<OrchSnapshot['filesProgressMap']>;
|
|
75
|
+
uploadStatus: Signal<UploadStatus>;
|
|
76
|
+
uploadError: Signal<string | undefined>;
|
|
77
|
+
uploadErrorCode: Signal<string | undefined>;
|
|
78
|
+
uploadSpeed: Signal<number>;
|
|
79
|
+
uploadEta: Signal<number>;
|
|
80
|
+
uploadedBytes: Signal<number>;
|
|
81
|
+
totalBytes: Signal<number>;
|
|
82
|
+
editorQueue: Signal<OrchSnapshot['editorQueue']>;
|
|
83
|
+
leavingFileIds: Signal<ReadonlySet<string>>;
|
|
84
|
+
sourceOverlayOpen: Signal<boolean>;
|
|
85
|
+
sourceOverlayClosing: Signal<boolean>;
|
|
86
|
+
dropRejected: Signal<string | null>;
|
|
87
|
+
motionMode: Signal<MotionMode>;
|
|
88
|
+
themeMode: Signal<ThemeSnapshot['themeMode']>;
|
|
89
|
+
isDark: Signal<boolean>;
|
|
90
|
+
tokens: Signal<ThemeSnapshot['tokens']>;
|
|
91
|
+
resolved: Signal<ThemeSnapshot['resolved']>;
|
|
92
|
+
slotOverrides: Signal<ThemeSnapshot['slotOverrides']>;
|
|
93
|
+
slots: Signal<ThemeSnapshot['slots']>;
|
|
94
|
+
/** Call before init() to provide props. */
|
|
95
|
+
setConfig(props: UploaderProps): void;
|
|
96
|
+
private onError;
|
|
97
|
+
private onWarn;
|
|
98
|
+
init(): void;
|
|
99
|
+
/** Current orchestrator snapshot (synchronous). */
|
|
100
|
+
snapshot(): OrchSnapshot;
|
|
101
|
+
registerFileInput: (el: HTMLInputElement | null) => void;
|
|
102
|
+
getFileInput: () => HTMLInputElement | null;
|
|
103
|
+
openFilePicker: () => void;
|
|
104
|
+
setActiveSource(a: FileSource | undefined): void;
|
|
105
|
+
setIsAddingMore(v: boolean): void;
|
|
106
|
+
setViewMode(m: 'grid' | 'list'): void;
|
|
107
|
+
openSourceOverlay(): void;
|
|
108
|
+
closeSourceOverlay(): void;
|
|
109
|
+
/** Core's DragDropController fires this with the read-only drive FileSource;
|
|
110
|
+
* resolve its human provider label, then raise the 3s-auto-clear toast. */
|
|
111
|
+
flagDriveDropRejected(source: FileSource): void;
|
|
112
|
+
handleSetSelectedFiles(newFiles: File[]): Promise<void>;
|
|
113
|
+
handleFileRemove(fileId: string): void;
|
|
114
|
+
uploadFiles(newFiles: File[] | UploadFile[]): Promise<UploadFile[] | undefined>;
|
|
115
|
+
replaceFiles(newFiles: File[] | UploadFile[]): void;
|
|
116
|
+
startUpload(): Promise<UploadFile[] | undefined>;
|
|
117
|
+
retryUpload(fileId?: string): Promise<UploadFile[] | undefined>;
|
|
118
|
+
handleCancel(): void;
|
|
119
|
+
handlePause(): void;
|
|
120
|
+
handleResume(): void;
|
|
121
|
+
handleDone(): void;
|
|
122
|
+
resetState(): void;
|
|
123
|
+
openImageEditor(file: UploadFile): void;
|
|
124
|
+
closeImageEditor(): void;
|
|
125
|
+
saveImageEdit(editedImageData: string, mimeType?: string): void;
|
|
126
|
+
replaceFile(fileId: string, newFile: UploadFile): void;
|
|
127
|
+
destroy(): void;
|
|
128
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UpupStore, never>;
|
|
129
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<UpupStore>;
|
|
130
|
+
}
|
|
131
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { AfterViewInit, ElementRef, EventEmitter, OnInit } from '@angular/core';
|
|
2
|
+
import { UpupStore } from './upup-store.service';
|
|
3
|
+
import type { UploaderProps } from './shared/types';
|
|
4
|
+
import type { UploadFile } from '@useupup/core';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class UpupUploaderComponent implements OnInit, AfterViewInit {
|
|
7
|
+
readonly store: UpupStore;
|
|
8
|
+
private readonly destroyRef;
|
|
9
|
+
private readonly platformId;
|
|
10
|
+
private started;
|
|
11
|
+
private forwardUnsubs;
|
|
12
|
+
/** True only after the store has been initialized (browser only). Gate for template rendering. */
|
|
13
|
+
storeReady: boolean;
|
|
14
|
+
fileInputRef?: ElementRef<HTMLInputElement>;
|
|
15
|
+
set config(value: UploaderProps);
|
|
16
|
+
filesAdded: EventEmitter<UploadFile[]>;
|
|
17
|
+
fileRemoved: EventEmitter<UploadFile>;
|
|
18
|
+
uploadProgress: EventEmitter<{
|
|
19
|
+
fileId: string;
|
|
20
|
+
loaded: number;
|
|
21
|
+
total: number;
|
|
22
|
+
}>;
|
|
23
|
+
uploadAllComplete: EventEmitter<UploadFile[]>;
|
|
24
|
+
error: EventEmitter<{
|
|
25
|
+
error: Error;
|
|
26
|
+
file?: UploadFile;
|
|
27
|
+
}>;
|
|
28
|
+
ngOnInit(): void;
|
|
29
|
+
ngAfterViewInit(): void;
|
|
30
|
+
onInputChange(e: Event): void;
|
|
31
|
+
sizingClass(): string;
|
|
32
|
+
containerClass(): string;
|
|
33
|
+
private wireOutputs;
|
|
34
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UpupUploaderComponent, never>;
|
|
35
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UpupUploaderComponent, "upup-uploader", never, { "config": { "alias": "config"; "required": false; }; }, { "filesAdded": "filesAdded"; "fileRemoved": "fileRemoved"; "uploadProgress": "uploadProgress"; "uploadAllComplete": "uploadAllComplete"; "error": "error"; }, never, never, true, never>;
|
|
36
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@useupup/angular",
|
|
3
|
+
"version": "3.3.0",
|
|
4
|
+
"description": "Angular 19+ standalone file uploader with cloud-drive sources, resumable uploads, theming, and ICU i18n.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"file-upload",
|
|
7
|
+
"file-uploader",
|
|
8
|
+
"upload",
|
|
9
|
+
"uploader",
|
|
10
|
+
"angular",
|
|
11
|
+
"angular-component",
|
|
12
|
+
"drag-and-drop",
|
|
13
|
+
"dropzone",
|
|
14
|
+
"s3",
|
|
15
|
+
"presigned-url",
|
|
16
|
+
"google-drive",
|
|
17
|
+
"one-drive",
|
|
18
|
+
"dropbox",
|
|
19
|
+
"camera",
|
|
20
|
+
"typescript"
|
|
21
|
+
],
|
|
22
|
+
"homepage": "https://useupup.com",
|
|
23
|
+
"bugs": {
|
|
24
|
+
"url": "https://github.com/DevinoSolutions/upup/issues"
|
|
25
|
+
},
|
|
26
|
+
"repository": {
|
|
27
|
+
"type": "git",
|
|
28
|
+
"url": "git+https://github.com/DevinoSolutions/upup.git",
|
|
29
|
+
"directory": "packages/angular"
|
|
30
|
+
},
|
|
31
|
+
"license": "MIT",
|
|
32
|
+
"publishConfig": {
|
|
33
|
+
"access": "public"
|
|
34
|
+
},
|
|
35
|
+
"type": "module",
|
|
36
|
+
"sideEffects": [
|
|
37
|
+
"*.css"
|
|
38
|
+
],
|
|
39
|
+
"engines": {
|
|
40
|
+
"node": ">=20"
|
|
41
|
+
},
|
|
42
|
+
"main": "./dist/fesm2022/useupup-angular.mjs",
|
|
43
|
+
"module": "./dist/fesm2022/useupup-angular.mjs",
|
|
44
|
+
"types": "./dist/index.d.ts",
|
|
45
|
+
"typesVersions": {
|
|
46
|
+
"*": {
|
|
47
|
+
"styles": [
|
|
48
|
+
"dist/styles.d.ts"
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"exports": {
|
|
53
|
+
".": {
|
|
54
|
+
"types": "./dist/index.d.ts",
|
|
55
|
+
"default": "./dist/fesm2022/useupup-angular.mjs"
|
|
56
|
+
},
|
|
57
|
+
"./styles": {
|
|
58
|
+
"types": "./dist/styles.d.ts",
|
|
59
|
+
"default": "./dist/tailwind-prefixed.css"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"files": [
|
|
63
|
+
"dist"
|
|
64
|
+
],
|
|
65
|
+
"dependencies": {
|
|
66
|
+
"@tanstack/virtual-core": "^3.13.0",
|
|
67
|
+
"tslib": "^2.6.0",
|
|
68
|
+
"@useupup/core": "3.3.0"
|
|
69
|
+
},
|
|
70
|
+
"peerDependencies": {
|
|
71
|
+
"@angular/common": "^19.0.0",
|
|
72
|
+
"@angular/core": "^19.0.0",
|
|
73
|
+
"rxjs": "^7.8.0"
|
|
74
|
+
},
|
|
75
|
+
"devDependencies": {
|
|
76
|
+
"@analogjs/vite-plugin-angular": "^1.10.0",
|
|
77
|
+
"@analogjs/vitest-angular": "^1.10.0",
|
|
78
|
+
"@angular/build": "^19.0.0",
|
|
79
|
+
"@angular/common": "^19.0.0",
|
|
80
|
+
"@angular/compiler": "^19.0.0",
|
|
81
|
+
"@angular/compiler-cli": "^19.0.0",
|
|
82
|
+
"@angular/core": "^19.0.0",
|
|
83
|
+
"@angular/platform-browser": "^19.0.0",
|
|
84
|
+
"@angular/platform-browser-dynamic": "^19.0.0",
|
|
85
|
+
"@vitest/coverage-v8": "^4.1.2",
|
|
86
|
+
"eslint": "^10.6.0",
|
|
87
|
+
"jsdom": "22.1.0",
|
|
88
|
+
"ng-packagr": "^19.0.0",
|
|
89
|
+
"postcss": "^8.5.2",
|
|
90
|
+
"postcss-cli": "^11.0.1",
|
|
91
|
+
"rxjs": "^7.8.0",
|
|
92
|
+
"typescript": "~5.6.0",
|
|
93
|
+
"vite": "^7",
|
|
94
|
+
"vitest": "^4.1.2",
|
|
95
|
+
"zone.js": "^0.14.0",
|
|
96
|
+
"@useupup/eslint-config": "0.1.0",
|
|
97
|
+
"@useupup/tailwind-config": "0.1.0"
|
|
98
|
+
},
|
|
99
|
+
"scripts": {
|
|
100
|
+
"build": "ng-packagr -p ng-package.json && pnpm run build:css",
|
|
101
|
+
"build:css": "postcss src/tailwind.css -o ./dist/tailwind-prefixed.css && node ../../scripts/emit-styles-dts.mjs",
|
|
102
|
+
"dev": "ng-packagr -p ng-package.json --watch",
|
|
103
|
+
"lint": "eslint . --max-warnings 0",
|
|
104
|
+
"test": "vitest run",
|
|
105
|
+
"test:coverage": "vitest run --coverage",
|
|
106
|
+
"test:watch": "vitest",
|
|
107
|
+
"typecheck": "tsc -p tsconfig.lib.json --noEmit && tsc -p tsconfig.spec.json --noEmit"
|
|
108
|
+
}
|
|
109
|
+
}
|