@uploadcare/file-uploader 1.11.0-alpha.3 → 1.11.0-alpha.5

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 (55) hide show
  1. package/abstract/UploaderPublicApi.js +1 -1
  2. package/blocks/CameraSource/CameraSource.d.ts +169 -22
  3. package/blocks/CameraSource/CameraSource.d.ts.map +1 -1
  4. package/blocks/CameraSource/CameraSource.js +792 -126
  5. package/blocks/CameraSource/camera-source.css +89 -3
  6. package/blocks/Config/Config.d.ts +4 -2
  7. package/blocks/Config/Config.d.ts.map +1 -1
  8. package/blocks/Config/Config.js +2 -0
  9. package/blocks/Config/initialConfig.d.ts.map +1 -1
  10. package/blocks/Config/initialConfig.js +6 -0
  11. package/blocks/Config/normalizeConfigValue.d.ts.map +1 -1
  12. package/blocks/Config/normalizeConfigValue.js +17 -1
  13. package/blocks/themes/uc-basic/common.css +5 -0
  14. package/blocks/themes/uc-basic/svg-sprite.d.ts +1 -1
  15. package/blocks/themes/uc-basic/svg-sprite.js +1 -1
  16. package/index.ssr.d.ts +14 -0
  17. package/index.ssr.d.ts.map +1 -1
  18. package/index.ssr.js +71 -2
  19. package/locales/file-uploader/ar.js +1 -1
  20. package/locales/file-uploader/az.js +1 -1
  21. package/locales/file-uploader/ca.js +1 -1
  22. package/locales/file-uploader/cs.js +1 -1
  23. package/locales/file-uploader/da.js +1 -1
  24. package/locales/file-uploader/el.js +1 -1
  25. package/locales/file-uploader/et.js +1 -1
  26. package/locales/file-uploader/fi.d.ts +2 -0
  27. package/locales/file-uploader/fi.js +120 -118
  28. package/locales/file-uploader/hy.js +1 -1
  29. package/locales/file-uploader/is.js +1 -1
  30. package/locales/file-uploader/ja.js +1 -1
  31. package/locales/file-uploader/ka.js +1 -1
  32. package/locales/file-uploader/kk.js +1 -1
  33. package/locales/file-uploader/ko.js +1 -1
  34. package/locales/file-uploader/lv.js +1 -1
  35. package/locales/file-uploader/nb.js +1 -1
  36. package/locales/file-uploader/nl.js +1 -1
  37. package/locales/file-uploader/pl.js +1 -1
  38. package/locales/file-uploader/pt.js +1 -1
  39. package/locales/file-uploader/ro.js +1 -1
  40. package/locales/file-uploader/sk.js +1 -1
  41. package/locales/file-uploader/sr.js +1 -1
  42. package/locales/file-uploader/sv.js +1 -1
  43. package/locales/file-uploader/vi.js +1 -1
  44. package/package.json +1 -1
  45. package/types/exported.d.ts +21 -0
  46. package/web/file-uploader.iife.min.js +4 -4
  47. package/web/file-uploader.min.js +4 -4
  48. package/web/uc-basic.min.css +1 -1
  49. package/web/uc-cloud-image-editor.min.js +4 -4
  50. package/web/uc-file-uploader-inline.min.css +1 -1
  51. package/web/uc-file-uploader-inline.min.js +4 -4
  52. package/web/uc-file-uploader-minimal.min.css +1 -1
  53. package/web/uc-file-uploader-minimal.min.js +3 -3
  54. package/web/uc-file-uploader-regular.min.css +1 -1
  55. package/web/uc-file-uploader-regular.min.js +4 -4
@@ -163,7 +163,7 @@ export class UploaderPublicApi {
163
163
  fileInput.multiple = this.cfg.multiple;
164
164
  if (options.captureCamera) {
165
165
  fileInput.capture = this.cfg.cameraCapture;
166
- fileInput.accept = 'image/*';
166
+ fileInput.accept = this.cfg.enableVideoRecording ? ['image/*', 'video/*'].join(',') : 'image/*';
167
167
  } else {
168
168
  fileInput.accept = accept;
169
169
  }
@@ -1,39 +1,186 @@
1
+ /** @typedef {'photo' | 'video'} CameraTabId */
2
+ /** @typedef {'shot' | 'retake' | 'accept' | 'play' | 'stop' | 'pause' | 'resume'} CameraStatus */
1
3
  export class CameraSource extends UploaderBlock {
2
4
  activityType: "camera";
3
5
  /** @private */
4
6
  private _unsubPermissions;
5
- init$: any;
6
- /** @type {String} */
7
- _selectedCameraId: string | undefined;
7
+ /** @type {BlobPart[]} */
8
+ _chunks: BlobPart[];
9
+ /** @type {MediaRecorder | null} */
10
+ _mediaRecorder: MediaRecorder | null;
11
+ /** @type {MediaStream | null} */
12
+ _stream: MediaStream | null;
13
+ /** @type {string | null} */
14
+ _selectedAudioId: string | null;
15
+ /** @type {string | null} */
16
+ _selectedCameraId: string | null;
17
+ init$: {
18
+ video: null;
19
+ videoTransformCss: null;
20
+ videoHidden: boolean;
21
+ messageHidden: boolean;
22
+ requestBtnHidden: boolean;
23
+ cameraSelectOptions: null;
24
+ cameraSelectHidden: boolean;
25
+ l10nMessage: string;
26
+ switcher: null;
27
+ panels: null;
28
+ timer: null;
29
+ timerHidden: boolean;
30
+ cameraHidden: boolean;
31
+ cameraActionsHidden: boolean;
32
+ audioSelectOptions: null;
33
+ audioSelectHidden: boolean;
34
+ audioSelectDisabled: boolean;
35
+ audioToggleMicorphoneHidden: boolean;
36
+ tabCameraHidden: boolean;
37
+ tabVideoHidden: boolean;
38
+ currentIcon: string;
39
+ currentTimelineIcon: string;
40
+ toggleMicorphoneIcon: string;
41
+ /** @type {Number} */
42
+ _startTime: number;
43
+ /** @type {Number} */
44
+ _elapsedTime: number;
45
+ _animationFrameId: null;
46
+ mutableClassButton: string;
47
+ /** @param {Event} e */
48
+ onCameraSelectChange: (e: Event) => void;
49
+ /** @param {Event} e */
50
+ onAudioSelectChange: (e: Event) => void;
51
+ onCancel: () => void;
52
+ onShot: () => void;
53
+ onRequestPermissions: () => Promise<void>;
54
+ /** General method for photo and video capture */
55
+ onStartCamera: () => void;
56
+ onStartRecording: () => void;
57
+ onStopRecording: () => void;
58
+ onToggleRecording: () => void;
59
+ onToggleAudio: () => void;
60
+ onRetake: () => void;
61
+ onAccept: () => void;
62
+ /** @param {MouseEvent} e */
63
+ onClickTab: (e: MouseEvent) => void;
64
+ '*commonProgress': number;
65
+ '*uploadList': never[];
66
+ '*uploadQueue': import("@uploadcare/upload-client").Queue;
67
+ '*collectionErrors': any[];
68
+ '*collectionState': import("../../index.js").OutputCollectionState<import("../../index.js").OutputCollectionStatus, "maybe-has-group"> | null;
69
+ '*groupInfo': import("@uploadcare/upload-client").UploadcareGroup | null;
70
+ '*uploadTrigger': Set<string>;
71
+ '*secureUploadsManager': import("../../abstract/SecureUploadsManager.js").SecureUploadsManager | null;
72
+ '*currentActivity': null;
73
+ '*currentActivityParams': {};
74
+ '*history': never[];
75
+ '*historyBack': null;
76
+ '*closeModal': () => void;
77
+ };
78
+ _chooseActionWithCamera: () => void;
79
+ _updateTimer: () => void;
80
+ _animationFrameId: number | undefined;
81
+ _startTimer: () => void;
82
+ _stopTimer: () => void;
83
+ _startTimeline: () => void;
84
+ _stopTimeline: () => void;
85
+ _startRecording: () => void;
86
+ _options: {
87
+ audioBitsPerSecond?: number | undefined;
88
+ bitsPerSecond?: number | undefined;
89
+ mimeType?: string | undefined;
90
+ videoBitsPerSecond?: number | undefined;
91
+ } | undefined;
8
92
  /** @private */
9
- private _onActivate;
10
- /** @private */
11
- private _onDeactivate;
93
+ private _stopRecording;
94
+ /** This method is used to toggle recording pause/resume */
95
+ _toggleRecording: () => void;
96
+ _toggleEnableAudio: () => void;
97
+ /**
98
+ * Previewing the video that was recorded on the camera
99
+ *
100
+ * @private
101
+ */
102
+ private _previewVideo;
103
+ _retake: () => void;
104
+ _accept: () => void;
105
+ /** @param {CameraStatus} status */
106
+ _handlePhoto: (status: CameraStatus) => void;
107
+ /** @param {CameraStatus} status */
108
+ _handleVideo: (status: CameraStatus) => void;
109
+ /**
110
+ * @private
111
+ * @param {CameraStatus} status
112
+ */
113
+ private _setCameraState;
12
114
  /** @private */
13
- private _handlePermissionsChange;
115
+ private _shot;
116
+ _canvas: HTMLCanvasElement | undefined;
117
+ _ctx: CanvasRenderingContext2D | null | undefined;
118
+ /**
119
+ * @private
120
+ * @param {CameraTabId} tabId
121
+ */
122
+ private _handleActiveTab;
123
+ _activeTab: CameraTabId | undefined;
124
+ /**
125
+ * @param {'camera' | 'video'} type
126
+ * @param {'jpeg' | 'webm'} ext
127
+ * @param {String} format
128
+ * @param {Blob} blob
129
+ */
130
+ _createFile: (type: 'camera' | 'video', ext: 'jpeg' | 'webm', format: string, blob: Blob) => File;
131
+ /** @param {String | undefined} mime */
132
+ _guessExtensionByMime(mime: string | undefined): any;
133
+ /**
134
+ * The send file to the server
135
+ *
136
+ * @param {File} file
137
+ */
138
+ _toSend: (file: File) => void;
14
139
  /**
15
140
  * @private
16
141
  * @param {'granted' | 'denied' | 'prompt'} state
17
142
  */
18
143
  private _setPermissionsState;
19
- /** @private */
20
- private _subscribePermissions;
21
- /** @private */
22
- private _capture;
23
- /** @private */
24
- private _canvas;
25
- /** @private */
26
- private _ctx;
27
- /** @private */
28
- private _capturing;
29
- /** @private */
30
- private _stopCapture;
31
- /** @private */
32
- private _shot;
33
- initCallback(): Promise<void>;
144
+ _makeStreamInactive: () => false | undefined;
145
+ _stopCapture: () => void;
146
+ _capturing: boolean | undefined;
147
+ _capture: () => Promise<void>;
148
+ _handlePermissionsChange: () => void;
149
+ _permissionAccess: () => Promise<void>;
150
+ _getPermission: () => void;
151
+ _requestDeviceAccess: () => Promise<void>;
152
+ _getDevices: () => Promise<void>;
153
+ cameraDevices: {
154
+ text: string;
155
+ value: string;
156
+ }[] | undefined;
157
+ audioDevices: false | {
158
+ text: string;
159
+ value: string;
160
+ }[] | undefined;
161
+ _onActivate: () => Promise<void>;
162
+ _onDeactivate: () => Promise<void>;
163
+ _destroy(): void;
164
+ destroyCallback(): Promise<void>;
34
165
  }
35
166
  export namespace CameraSource {
167
+ let types: Readonly<{
168
+ PHOTO: "photo";
169
+ VIDEO: "video";
170
+ }>;
171
+ let events: Readonly<{
172
+ IDLE: "idle";
173
+ SHOT: "shot";
174
+ PLAY: "play";
175
+ PAUSE: "pause";
176
+ RESUME: "resume";
177
+ STOP: "stop";
178
+ RETAKE: "retake";
179
+ ACCEPT: "accept";
180
+ }>;
36
181
  let template: string;
37
182
  }
183
+ export type CameraTabId = 'photo' | 'video';
184
+ export type CameraStatus = 'shot' | 'retake' | 'accept' | 'play' | 'stop' | 'pause' | 'resume';
38
185
  import { UploaderBlock } from '../../abstract/UploaderBlock.js';
39
186
  //# sourceMappingURL=CameraSource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CameraSource.d.ts","sourceRoot":"","sources":["CameraSource.js"],"names":[],"mappings":"AAMA;IAEE,uBAA+C;IAE/C,eAAe;IACf,0BAAyB;IAEzB,WA0BE;IAbE,qBAAqB;IACrB,sCAAuC;IAc3C,eAAe;IACf,oBAKE;IAEF,eAAe;IACf,sBAME;IAEF,eAAe;IACf,iCAEE;IAEF;;;OAGG;IACH,6BAyBQ;IAER,eAAe;IACf,8BASC;IAED,eAAe;IACf,iBAuCC;IAnBC,eAAe;IACf,gBAA+C;IAC/C,eAAe;IACf,aAAyC;IASvC,eAAe;IACf,mBAAsB;IAQ1B,eAAe;IACf,qBAMC;IAED,eAAe;IACf,cAkBC;IAED,8BAgCC;CACF;;;;8BAnN6B,iCAAiC"}
1
+ {"version":3,"file":"CameraSource.d.ts","sourceRoot":"","sources":["CameraSource.js"],"names":[],"mappings":"AAsCA,+CAA+C;AAE/C,kGAAkG;AAElG;IAEE,uBAA+C;IAE/C,eAAe;IACf,0BAAyB;IAEzB,yBAAyB;IACzB,SADW,QAAQ,EAAE,CACR;IAEb,mCAAmC;IACnC,gBADW,aAAa,GAAG,IAAI,CACT;IAEtB,iCAAiC;IACjC,SADW,WAAW,GAAG,IAAI,CACd;IAEf,4BAA4B;IAC5B,kBADW,MAAM,GAAG,IAAI,CACA;IAExB,4BAA4B;IAC5B,mBADW,MAAM,GAAG,IAAI,CACC;IAKvB;;;;;;;;;;;;;;;;;;;;;;;;QAiCE,qBAAqB;;QAErB,qBAAqB;;;;QAMrB,uBAAuB;kCAAX,KAAK;QAMjB,uBAAuB;iCAAX,KAAK;;;;QAcjB,iDAAiD;;;;;;;;QAejD,4BAA4B;wBAAhB,UAAU;;;;;;;;;;;;;;MAKvB;IAGH,oCAaE;IAEF,yBAkBE;IADA,sCAAiE;IAGnE,wBAKE;IAEF,uBAEE;IAEF,2BAOE;IAEF,0BAEE;IAEF,4BAgCE;IA7BE;;;;;kBAEC;IA6BL,eAAe;IACf,uBAWE;IAEF,2DAA2D;IAC3D,6BAQE;IAEF,+BAOE;IAEF;;;;OAIG;IACH,sBA6BE;IAEF,oBAUE;IAEF,oBAoBE;IAEF,mCAAmC;IACnC,uBADY,YAAY,UAqBtB;IAEF,mCAAmC;IACnC,uBADY,YAAY,UAuCtB;IAEF;;;OAGG;IACH,wBAmBE;IAEF,eAAe;IACf,cAoBC;IAjBC,uCAA+C;IAC/C,kDAAyC;IAkB3C;;;OAGG;IACH,yBAwBE;IADA,oCAAuB;IAGzB;;;;;OAKG;IACH,oBALW,QAAQ,GAAG,OAAO,OAClB,MAAM,GAAG,MAAM,wBAEf,IAAI,UAYb;IAEF,uCAAuC;IACvC,4BADY,SAAS,SAAS,OAmC7B;IAED;;;;OAIG;IACH,gBAFW,IAAI,UAOb;IAEF;;;OAGG;IACH,6BA8CQ;IAER,6CAQE;IAEF,yBAWE;IAFE,gCAAuB;IAI3B,8BAyCE;IAEF,qCAEE;IAEF,uCAYE;IAEF,2BAA0B;IAE1B,0CASE;IAEF,iCAsCE;IAlCE;;;oBAKK;IAEL;;;oBAOO;IAsBX,iCAIE;IAEF,mCAYE;IAgCF,iBAMC;IAED,iCAIC;CACF;;;;;;;;;;;;;;;;;;0BAnwBa,OAAO,GAAG,OAAO;2BAEjB,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ;8BAtCnD,iCAAiC"}