@uploadcare/file-uploader 1.13.2 → 1.13.3-alpha.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.
Files changed (34) hide show
  1. package/abstract/UploaderBlock.d.ts +1 -0
  2. package/abstract/UploaderBlock.d.ts.map +1 -1
  3. package/abstract/UploaderPublicApi.d.ts +2 -1
  4. package/abstract/UploaderPublicApi.d.ts.map +1 -1
  5. package/abstract/UploaderPublicApi.js +12 -4
  6. package/blocks/CameraSource/calcCameraModes.d.ts +5 -0
  7. package/blocks/CameraSource/calcCameraModes.d.ts.map +1 -0
  8. package/blocks/CameraSource/calcCameraModes.js +11 -0
  9. package/blocks/CameraSource/constants.d.ts +1 -0
  10. package/blocks/CameraSource/constants.d.ts.map +1 -1
  11. package/blocks/CameraSource/constants.js +2 -0
  12. package/blocks/SourceBtn/SourceBtn.d.ts +1 -1
  13. package/blocks/SourceBtn/SourceBtn.d.ts.map +1 -1
  14. package/blocks/SourceBtn/SourceBtn.js +13 -1
  15. package/blocks/SourceList/SourceList.d.ts.map +1 -1
  16. package/blocks/SourceList/SourceList.js +14 -0
  17. package/blocks/utils/UploadSource.d.ts +1 -0
  18. package/blocks/utils/UploadSource.d.ts.map +1 -1
  19. package/blocks/utils/UploadSource.js +1 -0
  20. package/blocks/utils/checkDevice.d.ts +9 -0
  21. package/blocks/utils/checkDevice.d.ts.map +1 -0
  22. package/blocks/utils/checkDevice.js +34 -0
  23. package/index.ssr.d.ts +14 -0
  24. package/index.ssr.d.ts.map +1 -1
  25. package/index.ssr.js +14 -0
  26. package/locales/file-uploader/en.d.ts +1 -0
  27. package/locales/file-uploader/en.js +1 -0
  28. package/package.json +1 -1
  29. package/web/file-uploader.iife.min.js +4 -4
  30. package/web/file-uploader.min.js +4 -4
  31. package/web/uc-cloud-image-editor.min.js +1 -1
  32. package/web/uc-file-uploader-inline.min.js +4 -4
  33. package/web/uc-file-uploader-minimal.min.js +3 -3
  34. package/web/uc-file-uploader-regular.min.js +4 -4
@@ -100,6 +100,7 @@ export namespace UploaderBlock {
100
100
  LOCAL: "local";
101
101
  DROP_AREA: "drop-area";
102
102
  CAMERA: "camera";
103
+ VIDEO_CAMERA: "video-camera";
103
104
  EXTERNAL: "external";
104
105
  API: "js-api";
105
106
  URL: "url";
@@ -1 +1 @@
1
- {"version":3,"file":"UploaderBlock.d.ts","sourceRoot":"","sources":["UploaderBlock.js"],"names":[],"mappings":"AAmBA;IACE,iBAAiB;IACjB,mCAAwB;IAExB,eAAe;IACf,mBAAmB;IAEnB;;;;;;;;;;;;;;MAA+B;IAE/B,eAAe;IACf,0BAOC;IA2BD;;;OAGG;IACH,qDAKC;IAED,mCAAmC;IACnC,6BAKC;IAED,4BAEC;IAED,iCAAiC;IACjC,wCAKC;IAYD,eAAe;IACf,qBA0BC;IAvBC,eAAe;IACf,6BAAiG;IAEjG,eAAe;IACf,uCAEC;IAmBH;;;OAGG;IACH,qBAkBC;IAED,eAAe;IACf,0BAYQ;IAER;;;;OAIG;IACH,gCAiCE;IAEF;;;OAGG;IACH,0CAyFE;IAEF,eAAe;IACf,mCAoBE;IAEF,eAAe;IACf,uBAuCC;IAED;;;OAGG;IACH,kCAHW,MAAM,qEAWhB;IAED;;;OAGG;IACH,oCAHa,QAAQ,OAAO,2BAA2B,EAAE,eAAe,CAAC,CA2BxE;IAED,kEAAkE;IAClE,iBADc,OAAO,sBAAsB,EAAE,eAAe,EAAE,CAK7D;CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAra6B,oBAAoB;qCAWb,2BAA2B;kCAG9B,wBAAwB;kCADxB,wBAAwB;gCAD1B,sBAAsB"}
1
+ {"version":3,"file":"UploaderBlock.d.ts","sourceRoot":"","sources":["UploaderBlock.js"],"names":[],"mappings":"AAmBA;IACE,iBAAiB;IACjB,mCAAwB;IAExB,eAAe;IACf,mBAAmB;IAEnB;;;;;;;;;;;;;;MAA+B;IAE/B,eAAe;IACf,0BAOC;IA2BD;;;OAGG;IACH,qDAKC;IAED,mCAAmC;IACnC,6BAKC;IAED,4BAEC;IAED,iCAAiC;IACjC,wCAKC;IAYD,eAAe;IACf,qBA0BC;IAvBC,eAAe;IACf,6BAAiG;IAEjG,eAAe;IACf,uCAEC;IAmBH;;;OAGG;IACH,qBAkBC;IAED,eAAe;IACf,0BAYQ;IAER;;;;OAIG;IACH,gCAiCE;IAEF;;;OAGG;IACH,0CAyFE;IAEF,eAAe;IACf,mCAoBE;IAEF,eAAe;IACf,uBAuCC;IAED;;;OAGG;IACH,kCAHW,MAAM,qEAWhB;IAED;;;OAGG;IACH,oCAHa,QAAQ,OAAO,2BAA2B,EAAE,eAAe,CAAC,CA2BxE;IAED,kEAAkE;IAClE,iBADc,OAAO,sBAAsB,EAAE,eAAe,EAAE,CAK7D;CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAra6B,oBAAoB;qCAWb,2BAA2B;kCAG9B,wBAAwB;kCADxB,wBAAwB;gCAD1B,sBAAsB"}
@@ -59,9 +59,10 @@ export class UploaderPublicApi {
59
59
  removeFileByInternalId: (internalId: string) => void;
60
60
  removeAllFiles(): void;
61
61
  uploadAll: () => void;
62
- /** @param {{ captureCamera?: boolean }} options */
62
+ /** @param {{ captureCamera?: boolean; modeCamera?: import('../blocks/CameraSource/constants.js').ModeCameraType }} options */
63
63
  openSystemDialog: (options?: {
64
64
  captureCamera?: boolean;
65
+ modeCamera?: import('../blocks/CameraSource/constants.js').ModeCameraType;
65
66
  }) => void;
66
67
  /**
67
68
  * @template {import('../types').OutputFileStatus} TStatus
@@ -1 +1 @@
1
- {"version":3,"file":"UploaderPublicApi.d.ts","sourceRoot":"","sources":["UploaderPublicApi.js"],"names":[],"mappings":"AAaA;IAOE,8DAA8D;IAC9D,iBADY,OAAO,oBAAoB,EAAE,aAAa,EAGrD;IATD;;;OAGG;IACH,aAAK;IAOL,eAAe;IACf,gCAEC;IAED,yCAEC;IAED;;iBAEC;IAED;;;;;;OAMG;IACH,sBAJW,MAAM;;;;sBAEJ,OAAO,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,CAUrD;IAEF;;;;OAIG;IACH,wBAJW,MAAM;;;;sBAEJ,OAAO,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,CAUrD;IAEF;;;;OAIG;IACH,4BAJW,MAAM;;;;sBAEJ,OAAO,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,CAgBrD;IAEF;;;;OAIG;IACH,0BAJW,IAAI;;;;;sBAEF,OAAO,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,CAcrD;IAEF,iCAAiC;IACjC,qCADY,MAAM,UAMhB;IAEF,uBAEC;IAED,sBAeE;IAEF,mDAAmD;IACnD,6BADY;QAAE,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,UAkDrC;IAEF;;;;OAIG;IACH,8EAHW,MAAM,iDA8Cf;IAEF,oEAAoE;IACpE,oKAIE;IAEF,+BAA+B;IAC/B,gDAsCE;IAEF,qBAQE;IAEF;;;;;;;;;OASG;IACH,uTAFQ,IAAI,CAWV;IAEF,2DAA2D;IAC3D,0BADc,OAAO,oBAAoB,EAAE,YAAY,CAGrD;IAEF,8BAA8B;IAC9B,wBADY,OAAO,UAOjB;IAEF;;;OAGG;IACH,0BAOC;CACF"}
1
+ {"version":3,"file":"UploaderPublicApi.d.ts","sourceRoot":"","sources":["UploaderPublicApi.js"],"names":[],"mappings":"AAcA;IAOE,8DAA8D;IAC9D,iBADY,OAAO,oBAAoB,EAAE,aAAa,EAGrD;IATD;;;OAGG;IACH,aAAK;IAOL,eAAe;IACf,gCAEC;IAED,yCAEC;IAED;;iBAEC;IAED;;;;;;OAMG;IACH,sBAJW,MAAM;;;;sBAEJ,OAAO,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,CAUrD;IAEF;;;;OAIG;IACH,wBAJW,MAAM;;;;sBAEJ,OAAO,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,CAUrD;IAEF;;;;OAIG;IACH,4BAJW,MAAM;;;;sBAEJ,OAAO,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,CAgBrD;IAEF;;;;OAIG;IACH,0BAJW,IAAI;;;;;sBAEF,OAAO,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,CAcrD;IAEF,iCAAiC;IACjC,qCADY,MAAM,UAMhB;IAEF,uBAEC;IAED,sBAeE;IAEF,8HAA8H;IAC9H,6BADY;QAAE,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,qCAAqC,EAAE,cAAc,CAAA;KAAE,UAyDhH;IAEF;;;;OAIG;IACH,8EAHW,MAAM,iDA8Cf;IAEF,oEAAoE;IACpE,oKAIE;IAEF,+BAA+B;IAC/B,gDAsCE;IAEF,qBAQE;IAEF;;;;;;;;;OASG;IACH,uTAFQ,IAAI,CAWV;IAEF,2DAA2D;IAC3D,0BADc,OAAO,oBAAoB,EAAE,YAAY,CAGrD;IAEF,8BAA8B;IAC9B,wBADY,OAAO,UAOjB;IAEF;;;OAGG;IACH,0BAOC;CACF"}
@@ -4,11 +4,12 @@ import { ActivityBlock } from './ActivityBlock.js';
4
4
  import { applyStyles, Data } from '@symbiotejs/symbiote';
5
5
  import { EventType } from '../blocks/UploadCtxProvider/EventEmitter.js';
6
6
  import { UploadSource } from '../blocks/utils/UploadSource.js';
7
- import { deserializeCsv, serializeCsv } from '../blocks/utils/comma-separated.js';
7
+ import { serializeCsv } from '../blocks/utils/comma-separated.js';
8
8
  import { IMAGE_ACCEPT_LIST, fileIsImage, mergeFileTypes } from '../utils/fileTypes.js';
9
9
  import { parseCdnUrl } from '../utils/parseCdnUrl.js';
10
10
  import { buildOutputCollectionState } from './buildOutputCollectionState.js';
11
11
  import { stringToArray } from '../utils/stringToArray.js';
12
+ import { calcCameraModes } from '../blocks/CameraSource/calcCameraModes.js';
12
13
  import { CameraSourceTypes } from '../blocks/CameraSource/constants.js';
13
14
 
14
15
  export class UploaderPublicApi {
@@ -137,7 +138,7 @@ export class UploaderPublicApi {
137
138
  );
138
139
  };
139
140
 
140
- /** @param {{ captureCamera?: boolean }} options */
141
+ /** @param {{ captureCamera?: boolean; modeCamera?: import('../blocks/CameraSource/constants.js').ModeCameraType }} options */
141
142
  openSystemDialog = (options = {}) => {
142
143
  const accept = serializeCsv(
143
144
  mergeFileTypes([this.cfg.accept ?? '', ...(this.cfg.imgOnly ? IMAGE_ACCEPT_LIST : [])]),
@@ -155,8 +156,15 @@ export class UploaderPublicApi {
155
156
  fileInput.multiple = this.cfg.multiple;
156
157
  if (options.captureCamera) {
157
158
  fileInput.capture = this.cfg.cameraCapture;
158
- const isVideoRecordingEnabled = deserializeCsv(this.cfg.cameraModes).includes(CameraSourceTypes.VIDEO);
159
- fileInput.accept = ['image/*', isVideoRecordingEnabled && 'video/*'].filter(Boolean).join(',');
159
+ const { isPhotoEnabled, isVideoRecordingEnabled } = calcCameraModes(this.cfg);
160
+
161
+ if (options.modeCamera === CameraSourceTypes.PHOTO && isPhotoEnabled) {
162
+ fileInput.accept = 'image/*';
163
+ }
164
+
165
+ if (options.modeCamera === CameraSourceTypes.VIDEO && isVideoRecordingEnabled) {
166
+ fileInput.accept = 'video/*';
167
+ }
160
168
  } else {
161
169
  fileInput.accept = accept;
162
170
  }
@@ -0,0 +1,5 @@
1
+ export function calcCameraModes(cfg: import('../../types').ConfigType): {
2
+ isVideoRecordingEnabled: boolean;
3
+ isPhotoEnabled: boolean;
4
+ };
5
+ //# sourceMappingURL=calcCameraModes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calcCameraModes.d.ts","sourceRoot":"","sources":["calcCameraModes.js"],"names":[],"mappings":"AAKO,qCAAoC,OAAO,aAAa,EAAE,UAAU;;;EAK1E"}
@@ -0,0 +1,11 @@
1
+ //@ts-check
2
+
3
+ import { deserializeCsv } from '../utils/comma-separated.js';
4
+ import { CameraSourceTypes } from './constants.js';
5
+
6
+ export const calcCameraModes = (/** @type {import('../../types').ConfigType} } */ cfg) => {
7
+ return {
8
+ isVideoRecordingEnabled: deserializeCsv(cfg.cameraModes).includes(CameraSourceTypes.VIDEO),
9
+ isPhotoEnabled: deserializeCsv(cfg.cameraModes).includes(CameraSourceTypes.PHOTO),
10
+ };
11
+ };
@@ -12,4 +12,5 @@ export const CameraSourceEvents: Readonly<{
12
12
  RETAKE: "retake";
13
13
  ACCEPT: "accept";
14
14
  }>;
15
+ export type ModeCameraType = (typeof CameraSourceTypes)[keyof typeof CameraSourceTypes];
15
16
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["constants.js"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;GAWG"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["constants.js"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;GAWG;6BAEW,CAAC,wBAAwB,CAAC,CAAC,MAAM,wBAAwB,CAAC"}
@@ -15,3 +15,5 @@ export const CameraSourceEvents = Object.freeze({
15
15
  RETAKE: 'retake',
16
16
  ACCEPT: 'accept',
17
17
  });
18
+
19
+ /** @typedef {(typeof CameraSourceTypes)[keyof typeof CameraSourceTypes]} ModeCameraType */
@@ -20,7 +20,7 @@ export class SourceBtn extends UploaderBlock {
20
20
  iconName: string;
21
21
  'src-type': string;
22
22
  '*commonProgress': number;
23
- '*uploadList': never[];
23
+ '*uploadList': never[]; /** @type {string | undefined} */
24
24
  '*uploadQueue': import("@uploadcare/upload-client").Queue;
25
25
  '*collectionErrors': any[];
26
26
  '*collectionState': import("../../index.js").OutputCollectionState<import("../../index.js").OutputCollectionStatus, "maybe-has-group"> | null;
@@ -1 +1 @@
1
- {"version":3,"file":"SourceBtn.d.ts","sourceRoot":"","sources":["SourceBtn.js"],"names":[],"mappings":"AAOA;;;;;;;;;GASG;AAEH;IAEE,iCAAiC;IACjC,MADW,MAAM,GAAG,SAAS,CACZ;IACjB;;;OAGG;IACH,yBAAsB;IAKpB;;;;;;;;;;;;;;;;MAIC;IAGH,kBAuCC;IAkBD,kCAAkC;IAClC,yBADY,OAAO,QAGlB;IAED,2BAA2B;IAC3B,cADY,MAAM,WAGjB;IAED,iBAYC;IAED,2BAA2B;IAC3B,gBADY,MAAM,QAcjB;CACF;;;;sBA9HY;IACZ,IAAQ,EAAE,MAAM,CAAC;IACjB,QAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAY,CAAC,EAAE,MAAM,OAAO,CAAC;IAC7B,cAAkB,CAAC,EAAE,OAAO,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;8BAd0B,iCAAiC"}
1
+ {"version":3,"file":"SourceBtn.d.ts","sourceRoot":"","sources":["SourceBtn.js"],"names":[],"mappings":"AAQA;;;;;;;;;GASG;AAEH;IAEE,iCAAiC;IACjC,MADW,MAAM,GAAG,SAAS,CACZ;IACjB;;;OAGG;IACH,yBAAsB;IAKpB;;;;gCAXF,iCAAiC;;;;;;;;;;;;MAe9B;IAGH,kBAkDC;IAkBD,kCAAkC;IAClC,yBADY,OAAO,QAGlB;IAED,2BAA2B;IAC3B,cADY,MAAM,WAGjB;IAED,iBAYC;IAED,2BAA2B;IAC3B,gBADY,MAAM,QAcjB;CACF;;;;sBAzIY;IACZ,IAAQ,EAAE,MAAM,CAAC;IACjB,QAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAY,CAAC,EAAE,MAAM,OAAO,CAAC;IAC7B,cAAkB,CAAC,EAAE,OAAO,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;8BAf0B,iCAAiC"}
@@ -2,6 +2,7 @@
2
2
  import { UploaderBlock } from '../../abstract/UploaderBlock.js';
3
3
  import { ActivityBlock } from '../../abstract/ActivityBlock.js';
4
4
  import { ExternalUploadSource, UploadSource } from '../utils/UploadSource.js';
5
+ import { CameraSourceTypes } from '../CameraSource/constants.js';
5
6
 
6
7
  const L10N_PREFIX = 'src-type-';
7
8
 
@@ -55,7 +56,18 @@ export class SourceBtn extends UploaderBlock {
55
56
  activate: () => {
56
57
  const supportsCapture = 'capture' in document.createElement('input');
57
58
  if (supportsCapture) {
58
- this.api.openSystemDialog({ captureCamera: true });
59
+ this.api.openSystemDialog({ captureCamera: true, modeCamera: CameraSourceTypes.PHOTO });
60
+ }
61
+ return !supportsCapture;
62
+ },
63
+ });
64
+ this.registerType({
65
+ type: UploadSource.VIDEO_CAMERA,
66
+ activity: ActivityBlock.activities.CAMERA,
67
+ activate: () => {
68
+ const supportsCapture = 'capture' in document.createElement('input');
69
+ if (supportsCapture) {
70
+ this.api.openSystemDialog({ captureCamera: true, modeCamera: CameraSourceTypes.VIDEO });
59
71
  }
60
72
  return !supportsCapture;
61
73
  },
@@ -1 +1 @@
1
- {"version":3,"file":"SourceList.d.ts","sourceRoot":"","sources":["SourceList.js"],"names":[],"mappings":"AAGA;CA2BC;sBA9BqB,yBAAyB"}
1
+ {"version":3,"file":"SourceList.d.ts","sourceRoot":"","sources":["SourceList.js"],"names":[],"mappings":"AAOA;CAqCC;sBA1CqB,yBAAyB"}
@@ -1,9 +1,15 @@
1
+ // @ts-check
2
+ import { ActivityBlock } from '../../abstract/ActivityBlock.js';
1
3
  import { Block } from '../../abstract/Block.js';
2
4
  import { stringToArray } from '../../utils/stringToArray.js';
5
+ import { calcCameraModes } from '../CameraSource/calcCameraModes.js';
6
+ import { isMobileDevice } from '../utils/checkDevice.js';
3
7
 
4
8
  export class SourceList extends Block {
5
9
  initCallback() {
6
10
  super.initCallback();
11
+ const isMobile = isMobileDevice();
12
+
7
13
  this.subConfigValue('sourceList', (/** @type {String} */ val) => {
8
14
  let list = stringToArray(val);
9
15
  let html = '';
@@ -19,6 +25,14 @@ export class SourceList extends Block {
19
25
  }
20
26
 
21
27
  html += /* HTML */ `<uc-source-btn role="listitem" type="${srcName}"></uc-source-btn>`;
28
+
29
+ if (
30
+ srcName === ActivityBlock.activities.CAMERA &&
31
+ isMobile &&
32
+ calcCameraModes(this.cfg).isVideoRecordingEnabled
33
+ ) {
34
+ html += /* HTML */ `<uc-source-btn role="listitem" type="video-camera"></uc-source-btn>`;
35
+ }
22
36
  });
23
37
 
24
38
  if (this.cfg.sourceListWrap) {
@@ -24,6 +24,7 @@ export const UploadSource: Readonly<{
24
24
  LOCAL: "local";
25
25
  DROP_AREA: "drop-area";
26
26
  CAMERA: "camera";
27
+ VIDEO_CAMERA: "video-camera";
27
28
  EXTERNAL: "external";
28
29
  API: "js-api";
29
30
  URL: "url";
@@ -1 +1 @@
1
- {"version":3,"file":"UploadSource.d.ts","sourceRoot":"","sources":["UploadSource.js"],"names":[],"mappings":"AACA;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;;;;;;;;;GASG;0BAEW,CAAC,mBAAmB,CAAC,CAAC,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"UploadSource.d.ts","sourceRoot":"","sources":["UploadSource.js"],"names":[],"mappings":"AACA;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;;;;;;;;;;GAUG;0BAEW,CAAC,mBAAmB,CAAC,CAAC,MAAM,mBAAmB,CAAC"}
@@ -16,6 +16,7 @@ export const UploadSource = Object.freeze({
16
16
  LOCAL: 'local',
17
17
  DROP_AREA: 'drop-area',
18
18
  CAMERA: 'camera',
19
+ VIDEO_CAMERA: 'video-camera',
19
20
  EXTERNAL: 'external',
20
21
  API: 'js-api',
21
22
  URL: 'url',
@@ -0,0 +1,9 @@
1
+ export const DeviceTypes: Readonly<{
2
+ iOS: "iOS";
3
+ Android: "Android";
4
+ WindowsPhone: "Windows Phone";
5
+ Desktop: "Desktop";
6
+ }>;
7
+ export function checkDevice(): "iOS" | "Android" | "Windows Phone" | "Desktop";
8
+ export function isMobileDevice(): boolean;
9
+ //# sourceMappingURL=checkDevice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkDevice.d.ts","sourceRoot":"","sources":["checkDevice.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEI,+EAoBN;AAEM,0CAIN"}
@@ -0,0 +1,34 @@
1
+ export const DeviceTypes = Object.freeze({
2
+ iOS: 'iOS',
3
+ Android: 'Android',
4
+ WindowsPhone: 'Windows Phone',
5
+ Desktop: 'Desktop',
6
+ });
7
+
8
+ export const checkDevice = () => {
9
+ const userAgent = navigator.userAgent || navigator.vendor || window.opera;
10
+
11
+ // Check for iOS
12
+ if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {
13
+ return DeviceTypes.iOS;
14
+ }
15
+
16
+ // Check for Android
17
+ if (/android/i.test(userAgent)) {
18
+ return DeviceTypes.Android;
19
+ }
20
+
21
+ // Check for Windows Phone
22
+ if (/windows phone/i.test(userAgent)) {
23
+ return DeviceTypes.WindowsPhone;
24
+ }
25
+
26
+ // Default to desktop
27
+ return DeviceTypes.Desktop;
28
+ };
29
+
30
+ export const isMobileDevice = () => {
31
+ const deviceType = checkDevice();
32
+
33
+ return deviceType !== DeviceTypes.Desktop;
34
+ };
package/index.ssr.d.ts CHANGED
@@ -71,6 +71,7 @@ export const CameraSource: {
71
71
  LOCAL: string;
72
72
  DROP_AREA: string;
73
73
  CAMERA: string;
74
+ VIDEO_CAMERA: string;
74
75
  EXTERNAL: string;
75
76
  API: string;
76
77
  URL: string;
@@ -127,6 +128,7 @@ export const CloudImageEditorActivity: {
127
128
  LOCAL: string;
128
129
  DROP_AREA: string;
129
130
  CAMERA: string;
131
+ VIDEO_CAMERA: string;
130
132
  EXTERNAL: string;
131
133
  API: string;
132
134
  URL: string;
@@ -227,6 +229,7 @@ export const DropArea: {
227
229
  LOCAL: string;
228
230
  DROP_AREA: string;
229
231
  CAMERA: string;
232
+ VIDEO_CAMERA: string;
230
233
  EXTERNAL: string;
231
234
  API: string;
232
235
  URL: string;
@@ -337,6 +340,7 @@ export const ExternalSource: {
337
340
  LOCAL: string;
338
341
  DROP_AREA: string;
339
342
  CAMERA: string;
343
+ VIDEO_CAMERA: string;
340
344
  EXTERNAL: string;
341
345
  API: string;
342
346
  URL: string;
@@ -398,6 +402,7 @@ export const FileItem: {
398
402
  LOCAL: string;
399
403
  DROP_AREA: string;
400
404
  CAMERA: string;
405
+ VIDEO_CAMERA: string;
401
406
  EXTERNAL: string;
402
407
  API: string;
403
408
  URL: string;
@@ -467,6 +472,7 @@ export const FormInput: {
467
472
  LOCAL: string;
468
473
  DROP_AREA: string;
469
474
  CAMERA: string;
475
+ VIDEO_CAMERA: string;
470
476
  EXTERNAL: string;
471
477
  API: string;
472
478
  URL: string;
@@ -566,6 +572,7 @@ export const ProgressBarCommon: {
566
572
  LOCAL: string;
567
573
  DROP_AREA: string;
568
574
  CAMERA: string;
575
+ VIDEO_CAMERA: string;
569
576
  EXTERNAL: string;
570
577
  API: string;
571
578
  URL: string;
@@ -624,6 +631,7 @@ export const SimpleBtn: {
624
631
  LOCAL: string;
625
632
  DROP_AREA: string;
626
633
  CAMERA: string;
634
+ VIDEO_CAMERA: string;
627
635
  EXTERNAL: string;
628
636
  API: string;
629
637
  URL: string;
@@ -687,6 +695,7 @@ export const SourceBtn: {
687
695
  LOCAL: string;
688
696
  DROP_AREA: string;
689
697
  CAMERA: string;
698
+ VIDEO_CAMERA: string;
690
699
  EXTERNAL: string;
691
700
  API: string;
692
701
  URL: string;
@@ -798,6 +807,7 @@ export const UploadCtxProvider: {
798
807
  LOCAL: string;
799
808
  DROP_AREA: string;
800
809
  CAMERA: string;
810
+ VIDEO_CAMERA: string;
801
811
  EXTERNAL: string;
802
812
  API: string;
803
813
  URL: string;
@@ -846,6 +856,7 @@ export const UploadList: {
846
856
  LOCAL: string;
847
857
  DROP_AREA: string;
848
858
  CAMERA: string;
859
+ VIDEO_CAMERA: string;
849
860
  EXTERNAL: string;
850
861
  API: string;
851
862
  URL: string;
@@ -879,6 +890,7 @@ export namespace UploadSource {
879
890
  export let LOCAL: string;
880
891
  export let DROP_AREA: string;
881
892
  export let CAMERA: string;
893
+ export let VIDEO_CAMERA: string;
882
894
  export let EXTERNAL: string;
883
895
  export let API: string;
884
896
  export let URL: string;
@@ -922,6 +934,7 @@ export const UploaderBlock: {
922
934
  LOCAL: string;
923
935
  DROP_AREA: string;
924
936
  CAMERA: string;
937
+ VIDEO_CAMERA: string;
925
938
  EXTERNAL: string;
926
939
  API: string;
927
940
  URL: string;
@@ -970,6 +983,7 @@ export const UrlSource: {
970
983
  LOCAL: string;
971
984
  DROP_AREA: string;
972
985
  CAMERA: string;
986
+ VIDEO_CAMERA: string;
973
987
  EXTERNAL: string;
974
988
  API: string;
975
989
  URL: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.ssr.d.ts","sourceRoot":"","sources":["index.ssr.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;EAcE;AACF;;;;;;;;;;;;;;;EAcE;AACF;;;;;EAIE;AACF;;;;;;EAKE;AACF;;;;;;;;EAgBE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0IE;AACF;;;;;;;;EAuCE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6CE;AACF;;;;;;;;EAuCE;AACF;;;;;;;EAsGE;AACF;;;;;;;EAaE;AACF;;;;;;;EAME;AACF;;;;;;;;;;;;;;;;EAeE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgEE;AACF;;;;;;;EAWE;AACF;;;;;;;EAWE;AACF;;;;;;;EASE;AACF;;;;;;EAKE;AACF;;;;;;;EAWE;AACF;;;;;;;EAME;AACF;;;;;;;EAWE;AACF;;;;;;;EA2IE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwEE;;;;;;;;;;;;;AAaF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkFE;AACF;;;;;;EAKE;AACF;;;;;;EAKE;AACF;;;;;;;EAME;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6CE;AACF;;;;;;;;EAWE;AACF;;;;;;EAwBE;AACF;;;;;;;EAUE;AACF;;;;;;;;EAWE;AACF,oCAAqC;AACrC,uCAAwC;AACxC;;;;;;;EAME;AACF;;;;;;;EASE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8CE;AACF;;;;;;;EAME;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwDE;AACF;;;;;;;EAeE;AACF;;;;;;EAKE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoDE;AACF;;;;;;EAKE;AACF;;;;;;EAKE;AACF;;;;;;;;;;;;;;;;EAeE;AACF;;;;;;;;;;;;EAWE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiEE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4FE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6CE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyEE;AACK,yCAAiC;AACjC,qCAA6B;AAC7B,6CAAqC;AACrC,oCAA4B"}
1
+ {"version":3,"file":"index.ssr.d.ts","sourceRoot":"","sources":["index.ssr.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;EAcE;AACF;;;;;;;;;;;;;;;EAcE;AACF;;;;;EAIE;AACF;;;;;;EAKE;AACF;;;;;;;;EAgBE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2IE;AACF;;;;;;;;EAuCE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8CE;AACF;;;;;;;;EAuCE;AACF;;;;;;;EAsGE;AACF;;;;;;;EAaE;AACF;;;;;;;EAME;AACF;;;;;;;;;;;;;;;;EAeE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiEE;AACF;;;;;;;EAWE;AACF;;;;;;;EAWE;AACF;;;;;;;EASE;AACF;;;;;;EAKE;AACF;;;;;;;EAWE;AACF;;;;;;;EAME;AACF;;;;;;;EAWE;AACF;;;;;;;EA2IE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyEE;;;;;;;;;;;;;AAaF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmFE;AACF;;;;;;EAKE;AACF;;;;;;EAKE;AACF;;;;;;;EAME;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8CE;AACF;;;;;;;;EAWE;AACF;;;;;;EAwBE;AACF;;;;;;;EAUE;AACF;;;;;;;;EAWE;AACF,oCAAqC;AACrC,uCAAwC;AACxC;;;;;;;EAME;AACF;;;;;;;EASE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+CE;AACF;;;;;;;EAME;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyDE;AACF;;;;;;;EAeE;AACF;;;;;;EAKE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqDE;AACF;;;;;;EAKE;AACF;;;;;;EAKE;AACF;;;;;;;;;;;;;;;;EAeE;AACF;;;;;;;;;;;;EAWE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkEE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6FE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8CE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0EE;AACK,yCAAiC;AACjC,qCAA6B;AAC7B,6CAAqC;AACrC,oCAA4B"}
package/index.ssr.js CHANGED
@@ -166,6 +166,7 @@ export const CameraSource = class {
166
166
  LOCAL: "local",
167
167
  DROP_AREA: "drop-area",
168
168
  CAMERA: "camera",
169
+ VIDEO_CAMERA: "video-camera",
169
170
  EXTERNAL: "external",
170
171
  API: "js-api",
171
172
  URL: "url",
@@ -252,6 +253,7 @@ export const CloudImageEditorActivity = class {
252
253
  LOCAL: "local",
253
254
  DROP_AREA: "drop-area",
254
255
  CAMERA: "camera",
256
+ VIDEO_CAMERA: "video-camera",
255
257
  EXTERNAL: "external",
256
258
  API: "js-api",
257
259
  URL: "url",
@@ -498,6 +500,7 @@ export const DropArea = class {
498
500
  LOCAL: "local",
499
501
  DROP_AREA: "drop-area",
500
502
  CAMERA: "camera",
503
+ VIDEO_CAMERA: "video-camera",
501
504
  EXTERNAL: "external",
502
505
  API: "js-api",
503
506
  URL: "url",
@@ -781,6 +784,7 @@ export const ExternalSource = class {
781
784
  LOCAL: "local",
782
785
  DROP_AREA: "drop-area",
783
786
  CAMERA: "camera",
787
+ VIDEO_CAMERA: "video-camera",
784
788
  EXTERNAL: "external",
785
789
  API: "js-api",
786
790
  URL: "url",
@@ -876,6 +880,7 @@ export const FileItem = class {
876
880
  LOCAL: "local",
877
881
  DROP_AREA: "drop-area",
878
882
  CAMERA: "camera",
883
+ VIDEO_CAMERA: "video-camera",
879
884
  EXTERNAL: "external",
880
885
  API: "js-api",
881
886
  URL: "url",
@@ -941,6 +946,7 @@ export const FormInput = class {
941
946
  LOCAL: "local",
942
947
  DROP_AREA: "drop-area",
943
948
  CAMERA: "camera",
949
+ VIDEO_CAMERA: "video-camera",
944
950
  EXTERNAL: "external",
945
951
  API: "js-api",
946
952
  URL: "url",
@@ -1067,6 +1073,7 @@ export const ProgressBarCommon = class {
1067
1073
  LOCAL: "local",
1068
1074
  DROP_AREA: "drop-area",
1069
1075
  CAMERA: "camera",
1076
+ VIDEO_CAMERA: "video-camera",
1070
1077
  EXTERNAL: "external",
1071
1078
  API: "js-api",
1072
1079
  URL: "url",
@@ -1132,6 +1139,7 @@ export const SimpleBtn = class {
1132
1139
  LOCAL: "local",
1133
1140
  DROP_AREA: "drop-area",
1134
1141
  CAMERA: "camera",
1142
+ VIDEO_CAMERA: "video-camera",
1135
1143
  EXTERNAL: "external",
1136
1144
  API: "js-api",
1137
1145
  URL: "url",
@@ -1206,6 +1214,7 @@ export const SourceBtn = class {
1206
1214
  LOCAL: "local",
1207
1215
  DROP_AREA: "drop-area",
1208
1216
  CAMERA: "camera",
1217
+ VIDEO_CAMERA: "video-camera",
1209
1218
  EXTERNAL: "external",
1210
1219
  API: "js-api",
1211
1220
  URL: "url",
@@ -1312,6 +1321,7 @@ export const UploadCtxProvider = class {
1312
1321
  LOCAL: "local",
1313
1322
  DROP_AREA: "drop-area",
1314
1323
  CAMERA: "camera",
1324
+ VIDEO_CAMERA: "video-camera",
1315
1325
  EXTERNAL: "external",
1316
1326
  API: "js-api",
1317
1327
  URL: "url",
@@ -1405,6 +1415,7 @@ export const UploadList = class {
1405
1415
  LOCAL: "local",
1406
1416
  DROP_AREA: "drop-area",
1407
1417
  CAMERA: "camera",
1418
+ VIDEO_CAMERA: "video-camera",
1408
1419
  EXTERNAL: "external",
1409
1420
  API: "js-api",
1410
1421
  URL: "url",
@@ -1438,6 +1449,7 @@ export const UploadSource = {
1438
1449
  LOCAL: "local",
1439
1450
  DROP_AREA: "drop-area",
1440
1451
  CAMERA: "camera",
1452
+ VIDEO_CAMERA: "video-camera",
1441
1453
  EXTERNAL: "external",
1442
1454
  API: "js-api",
1443
1455
  URL: "url",
@@ -1470,6 +1482,7 @@ export const UploaderBlock = class {
1470
1482
  LOCAL: "local",
1471
1483
  DROP_AREA: "drop-area",
1472
1484
  CAMERA: "camera",
1485
+ VIDEO_CAMERA: "video-camera",
1473
1486
  EXTERNAL: "external",
1474
1487
  API: "js-api",
1475
1488
  URL: "url",
@@ -1544,6 +1557,7 @@ export const UrlSource = class {
1544
1557
  LOCAL: "local",
1545
1558
  DROP_AREA: "drop-area",
1546
1559
  CAMERA: "camera",
1560
+ VIDEO_CAMERA: "video-camera",
1547
1561
  EXTERNAL: "external",
1548
1562
  API: "js-api",
1549
1563
  URL: "url",
@@ -45,6 +45,7 @@ declare const _default: {
45
45
  'src-type-local': string;
46
46
  'src-type-from-url': string;
47
47
  'src-type-camera': string;
48
+ 'src-type-video-camera': string;
48
49
  'src-type-draw': string;
49
50
  'src-type-facebook': string;
50
51
  'src-type-dropbox': string;
@@ -45,6 +45,7 @@ export default {
45
45
  'src-type-local': 'From device',
46
46
  'src-type-from-url': 'From link',
47
47
  'src-type-camera': 'Camera',
48
+ 'src-type-video-camera': 'Camera Video',
48
49
  'src-type-draw': 'Draw',
49
50
  'src-type-facebook': 'Facebook',
50
51
  'src-type-dropbox': 'Dropbox',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uploadcare/file-uploader",
3
- "version": "1.13.2",
3
+ "version": "1.13.3-alpha.0",
4
4
  "description": "Building blocks for Uploadcare products integration",
5
5
  "keywords": [
6
6
  "web components",