@yoobic/yobi 8.4.8 → 8.4.10

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.
@@ -19,6 +19,22 @@ function shouldUseLowPerformanceCamera(user, isNativeMobile, useLibrary) {
19
19
  return !!(enableLowPerformanceCamera ||
20
20
  (enableLowPerformanceCamera === undefined && isLowEndDevice)) && isNativeMobile && !useLibrary;
21
21
  }
22
+ async function processMediaPath(mediaPath) {
23
+ if (mediaPath === null || mediaPath === void 0 ? void 0 : mediaPath.includes('?')) {
24
+ return mediaPath.substring(0, mediaPath.indexOf('?'));
25
+ }
26
+ else if (!overlays.isImageUrl(mediaPath)) {
27
+ return overlays.addFilePrefix(mediaPath);
28
+ }
29
+ else if (!overlays.isAndroid() && ['cache', 'tmp'].includes(mediaPath)) {
30
+ try {
31
+ return await overlays.moveToImageDirectory(overlays.addFilePrefix(mediaPath));
32
+ }
33
+ catch (err) {
34
+ throw new Error(err);
35
+ }
36
+ }
37
+ }
22
38
 
23
39
  const formCaptureCss = "svg:not(:root){overflow:hidden}:host{--width-readonly-preview:100%;--height-readonly-preview:250px;--play-icon-size:var(--font-size-54, 3.375rem);--camera-selector-container-size:98px;--camera-container-height:98px;--edit-icon-bottom-pos:var(--spacing-16, 1rem)}:host .url-capture-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .url-capture-container yoo-form-input{padding-left:var(--spacing-08, 0.5rem)}:host .distance{display:-ms-flexbox;display:flex;width:100%;margin-top:0.8rem}:host .distance .inner-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:var(--spacing-04, 0.25rem) var(--spacing-08, 0.5rem);font-size:var(--font-size-12, 0.75rem);background-color:var(--light, #ffffff);border:solid 1px var(--stable-light, #f1f1f1);border-radius:var(--border-radius-16, 1rem)}:host .distance .inner-container span{padding-left:var(--spacing-04, 0.25rem)}:host .outer-container{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start}:host .outer-container.uploading{padding-bottom:var(--spacing-16, 1rem);opacity:0.6}:host .outer-container .upload-overlay{position:absolute;z-index:999;width:100%;height:100%;background:transparent}:host .outer-container .progressbar-wrapper{bottom:0;width:100%}:host .outer-container .progressbar-wrapper yoo-progress-bar.photo-progress{margin-bottom:-10px}:host .outer-container .progressbar-wrapper .main-wrapper{height:var(--spacing-32, 2rem)}:host .outer-container .progressbar-wrapper .main-wrapper yoo-progress-bar{--progress-bar-color:var(--app-color, #5a30f4)}:host .outer-container .camera-container{position:relative;width:var(--camera-container-height, 6.125rem);height:var(--camera-container-height, 6.125rem);border:var(--border-width-01, 0.0625rem) solid var(--stable-40, rgba(173, 173, 173, 0.4));border-radius:0.5rem;cursor:pointer;-webkit-box-sizing:initial;box-sizing:initial;min-width:var(--camera-container-height, 6.125rem);overflow:visible;background-color:var(--app-color-10, rgba(90, 48, 244, 0.1));border:none}:host .outer-container .camera-container .required{position:absolute;top:auto;right:auto;bottom:auto;left:0.625rem;color:var(--success, #3aa76d);font-size:var(--font-size-14, 0.875rem)}:host .outer-container .camera-container yoo-icon{position:absolute;top:50%;left:50%;font-size:var(--camera-container-size, 1.875rem);-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}:host .outer-container .camera-container yoo-icon.light{color:var(--light, #ffffff)}:host .outer-container .camera-container yoo-icon.success{color:var(--success, #3aa76d)}:host .outer-container .camera-container .preview,:host .outer-container .camera-container .edit,:host .outer-container .camera-container .overlay{position:absolute;top:0;right:auto;bottom:auto;left:auto;width:var(--camera-container-height, 6.125rem);height:var(--camera-container-height, 6.125rem);border-radius:0.5rem}:host .outer-container .camera-container .preview.edit,:host .outer-container .camera-container .edit.edit,:host .outer-container .camera-container .overlay.edit{position:absolute;top:0;right:auto;bottom:auto;left:0;z-index:0}:host .outer-container .camera-container .overlay{background:var(--dark-60, rgba(0, 0, 0, 0.6));opacity:0.5}:host .outer-container .camera-container input[type=file]{position:absolute;top:0;right:auto;bottom:auto;left:50%;display:block;width:var(--camera-container-height, 6.125rem);min-width:var(--camera-container-height, 6.125rem);height:var(--camera-container-height, 6.125rem);margin-left:-50px;text-align:right;background:var(--light, #ffffff);border-radius:50%;outline:none;cursor:inherit;opacity:0;filter:alpha(opacity=0);pointer-events:none}:host .outer-container .camera-container.rotate{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host .outer-container .camera-container.rotate .progressbar-wrapper{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host .outer-container .camera-container .tag-icon-container{position:absolute;right:5px;bottom:5px}:host .outer-container .camera-container .edit-icon-container{position:absolute;bottom:var(--spacing-04, 0.25rem);left:var(--spacing-04, 0.25rem)}:host .outer-container .camera-container .progressbar-wrapper{position:absolute}:host .outer-container .multiple{position:relative;width:100%;margin-bottom:-0.75rem}:host .outer-container .multiple.selector-mode{margin-bottom:0}:host .outer-container .multiple .capture-status{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;font-size:var(--font-size-14, 0.875rem)}:host .outer-container .multiple .capture-status.image-reco{padding-bottom:var(--spacing-08, 0.5rem)}:host .outer-container .multiple .capture-status .action{padding-left:var(--spacing-16, 1rem);color:var(--app-color, #5a30f4);text-align:right;cursor:pointer}:host .outer-container .multiple .capture-status .status{width:100%;padding-right:var(--spacing-16, 1rem);color:var(--stable, #adadad);white-space:nowrap;text-align:left}:host .outer-container .multiple .capture-status .status.max-reached{color:var(--dark, #000000)}:host .outer-container .multiple .camera-containers{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:var(--spacing-08, 0.5rem);-ms-flex-align:center;align-items:center;margin-bottom:var(--spacing-08, 0.5rem)}:host .outer-container .multiple .camera-containers:not(.no-padding){padding-top:var(--spacing-08, 0.5rem)}:host .outer-container .multiple .camera-containers .camera-container yoo-img{--border-radius:var(--border-radius-08, 0.5rem)}:host .outer-container .multiple .camera-selector-container{position:relative;display:inline-block;width:var(--camera-selector-container-size);min-width:var(--camera-selector-container-size);height:var(--camera-selector-container-size);margin-right:var(--spacing-16, 1rem)}:host .outer-container .multiple .camera-selector-container .preview{--border-radius:var(--border-radius-04, 0.25rem);width:100%;height:100%}:host .outer-container .multiple .camera-selector-container yoo-icon{position:absolute;top:5px;right:5px;min-width:initial}:host .outer-container .multiple .camera-selector-container yoo-icon.circle{z-index:2}:host .outer-container .multiple .camera-selector-container yoo-icon.check{z-index:3;color:var(--app-color, #5a30f4)}:host .outer-container .multiple .camera-selector-container .media-overlay{position:absolute;width:100%;height:100%;background-color:var(--dark-20, rgba(0, 0, 0, 0.2));border-radius:var(--border-radius-04, 0.25rem)}:host .outer-container .multiple .camera-selector-container .media-overlay yoo-icon{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}:host .outer-container .multiple .camera-selector-container .media-overlay yoo-icon.rtl{top:50%;right:50%;-webkit-transform:translate(50%, -50%);transform:translate(50%, -50%)}:host .outer-container .multiple .camera-selector-container.rotate{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host .outer-container .multiple .camera-selector-container.rotate yoo-icon{right:0;left:5px;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host .outer-container .multiple .bottom-action-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;height:45px;margin-top:var(--spacing-16, 1rem);color:var(--stable, #adadad);background:var(--stable-light, #f1f1f1);border:solid var(--border-width-01, 0.0625rem) var(--stable-light, #f1f1f1);border-radius:var(--border-radius-04, 0.25rem);-webkit-transition:all 0.3s ease-out;transition:all 0.3s ease-out}:host .outer-container .multiple .bottom-action-container.active{color:var(--dark, #000000);background-color:var(--light, #ffffff);border:solid var(--border-width-01, 0.0625rem) var(--dark, #000000)}:host .outer-container .multiple .top-action-container{display:-ms-flexbox;display:flex;-ms-flex-pack:distribute;justify-content:space-around;padding-bottom:var(--spacing-16, 1rem);font-size:var(--font-size-14, 0.875rem)}:host .outer-container .multiple .top-action-container .left-action,:host .outer-container .multiple .top-action-container .right-action{width:100%;color:var(--app-color, #5a30f4);cursor:pointer}:host .outer-container .multiple .top-action-container .left-action{text-align:left}:host .outer-container .multiple .top-action-container .right-action{text-align:right}:host .outer-container .single{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:justify;justify-content:space-between;width:100%}:host .outer-container .single .button-containers{-ms-flex-align:center;align-items:center;margin-bottom:0;margin-left:1rem}:host .outer-container .single .button-containers.kpi{display:grid;grid-template-columns:99%;padding-left:var(--spacing-16, 1rem)}:host .outer-container .button-containers{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:distribute;justify-content:space-around;width:100%;margin-bottom:1rem}:host .outer-container .button-containers.kpi{display:grid;grid-gap:var(--spacing-08, 0.5rem);grid-template-columns:49% 49%}:host .outer-container .button-containers .button-container{display:block;width:100%}:host .outer-container .button-containers .button-container yoo-button{display:block}:host .outer-container .tags{width:100%;margin-top:0.5rem}:host .readonly{padding:0.5rem 0rem}:host .readonly .inner-ssr-container{display:-ms-flexbox;display:flex}:host .readonly .inner-ssr-container .readonly-container{padding-right:var(--spacing-16, 1rem)}:host .readonly .readonly-container{position:relative}:host .readonly .readonly-container.multiple:not(:last-child){margin-bottom:var(--spacing-08, 0.5rem)}:host .readonly .readonly-container .preview{--border-radius:var(--border-radius-04, 0.25rem);position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:var(--width-readonly-preview);height:var(--height-readonly-preview);margin-right:auto;margin-bottom:1rem;margin-left:auto}:host .readonly .readonly-container .overlay{position:absolute;top:0;width:100%;height:100%;background-color:var(--dark-40, rgba(0, 0, 0, 0.4))}:host .readonly .readonly-container .overlay .control-container{position:relative;position:absolute;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;background:transparent}:host .readonly .readonly-container .overlay .control-container yoo-icon{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}:host .readonly .readonly-container .edit-icon-container{position:absolute;bottom:var(--edit-icon-bottom-pos);left:var(--spacing-16, 1rem)}:host .readonly .button-container{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:row;flex-direction:row;-ms-flex-line-pack:center;align-content:center;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0.5rem}:host(.disabled) .outer-container .camera-container{background-color:var(--stable-light, #f1f1f1);pointer-events:none}:host([size=medium]){--camera-container-height:var(--spacing-48, 3rem);--camera-selector-container-size:var(--spacing-48, 3rem);--camera-container-size:var(--spacing-24, 1.5rem)}:host([size=medium]) .readonly .readonly-container yoo-img{width:100%;max-width:100px;height:auto !important;max-height:100px;margin-bottom:0;margin-left:0}:host([size=small]){--camera-container-height:var(--spacing-32, 2rem);--camera-selector-container-size:var(--spacing-32, 2rem);--camera-container-size:var(--spacing-16, 1rem)}:host([size=small]) .readonly .readonly-container yoo-img{width:auto;max-width:100px;height:auto !important;max-height:100px;margin-bottom:0;margin-left:0}:host([size=small]) .outer-container .multiple .capture-status .action{padding-left:0}:host([size=small]) .outer-container .multiple .bottom-action-container{height:initial;font-size:var(--font-size-12, 0.75rem)}:host([size=small]) .outer-container .multiple .top-action-container{padding-bottom:0}:host(.audio) .readonly .readonly-container{width:100%}:host(.no-padding) .readonly,:host(.no-padding) .readonly .readonly-container,:host(.no-padding) .readonly .readonly-container .preview{height:100%;margin:0;padding:0}:host(.history) .readonly{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0 !important}:host(.history) .readonly .readonly-container .preview{--border-radius:var(--border-radius-02, 0.125rem) !important;margin:0 !important}:host(.history) .readonly .readonly-container.multiple{width:initial;min-width:initial;padding-right:0.3125rem;padding-bottom:0.3125rem}:host(.history) .readonly .preview .overlay{background-color:unset}:host(.history) .readonly.truncate{max-height:1.875rem;overflow:hidden}:host(.history) .more-button{display:-ms-flexbox;display:flex;float:right;margin-left:auto;color:var(--stable, #adadad)}:host(.forcedhistory) .readonly.truncate{max-height:8.125rem}:host(.truncate) .readonly{max-height:70px;overflow:hidden}:host(.has-distance){--edit-icon-bottom-pos:var(--spacing-64, 4rem)}:host(.no-radius) .readonly .readonly-container .preview{border-radius:0}:host(.video.web) .readonly .readonly-container{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}:host(.detail-view){--detail-view-container-width:100%;width:100%}:host(.detail-view) .readonly{padding:0}:host(.detail-view) .title-wrapper{padding-bottom:var(--spacing-16, 1rem)}:host(.detail-view) .detail-view-container{width:var(--detail-view-container-width);padding-top:var(--spacing-16, 1rem);page-break-inside:auto}:host(.detail-view) .detail-view-container.multiple.pdf{display:block;padding-top:0}:host(.detail-view) .detail-view-container.multiple.pdf .pdf-photo-container{display:block;page-break-after:auto;page-break-before:auto;page-break-inside:avoid}:host(.detail-view) .detail-view-container.multiple.pdf .pdf-photo-container .wrapper{display:-ms-flexbox;display:flex}:host(.detail-view) .detail-view-container.multiple.pdf .pdf-photo-container yoo-items{display:inline-block;margin-right:0.5rem;margin-bottom:0.5rem;padding-bottom:0}:host(.detail-view) .detail-view-container.multiple.pdf .distance{margin-top:var(--spacing-04, 0.25rem);margin-bottom:0}:host(.detail-view) .detail-view-container.multiple .description-outer-container:not(:last-child){margin-bottom:var(--spacing-16, 1rem);padding-bottom:var(--spacing-16, 1rem)}:host(.detail-view) .detail-view-container.multiple .description-outer-container{border-bottom:var(--border-width-01, 0.0625rem) solid var(--stable-light, #f1f1f1)}:host(.detail-view) .detail-view-container.multiple .distance{margin-top:0;margin-bottom:var(--spacing-16, 1rem)}:host(.detail-view) .detail-view-container:not(.appendix) .image-container yoo-img{height:100%}:host(.detail-view) .detail-view-container.summary:not(.appendix) .image-container{width:min(21.4375rem, 100%)}:host(.detail-view) .detail-view-container.pdf:not(.appendix) .image-container{width:18.5625rem}:host(.detail-view) .detail-view-container.summary.appendix{--detail-view-container-width:21.4375rem}:host(.detail-view) .detail-view-container.pdf.appendix{--detail-view-container-width:29.1875rem}:host(.detail-view) .detail-view-container.appendix.max-width.summary{--detail-view-container-width:100%}:host(.detail-view) .detail-view-container.summary.multiple .description-outer-container{margin-bottom:0;border-bottom:none}:host(.detail-view) .detail-view-container .description-outer-container{grid-auto-columns:initial}:host(.detail-view) .detail-view-container .description-outer-container .image-container{position:relative}:host(.detail-view) .detail-view-container .description-outer-container .image-container .tags{position:absolute;z-index:2}:host(.detail-view) .detail-view-container .description-outer-container .image-container .tags.right{top:var(--spacing-16, 1rem);right:var(--spacing-16, 1rem)}:host(.detail-view) .detail-view-container .description-outer-container .image-container .tags.left{bottom:var(--spacing-16, 1rem);left:var(--spacing-08, 0.5rem)}:host(.detail-view) .detail-view-container .description-outer-container .image-container yoo-photo-editor{--editor-background:transparent;display:block}:host(.detail-view) .detail-view-container .description-outer-container .description-heading{color:var(--stable, #adadad);font-size:var(--font-size-14, 0.875rem)}:host(.detail-view) .detail-view-container .description-outer-container .annotation-container{grid-auto-columns:initial}:host(.detail-view) .detail-view-container .description-outer-container .annotation-container .annotation{display:-ms-flexbox;display:flex;width:100%}:host(.detail-view) .detail-view-container .description-outer-container .annotation-container .annotation yoo-badge{margin-top:var(--spacing-04, 0.25rem);margin-right:var(--spacing-08, 0.5rem)}@media only screen and (max-width: 360px){:host{--camera-selector-container-size:93px !important;--camera-container-height:93px !important}:host .outer-container .camera-container{position:relative;width:var(--camera-container-height-medium-screen, 5.8125rem);height:var(--camera-container-height-medium-screen, 5.8125rem);border:var(--border-width-01, 0.0625rem) solid var(--stable-40, rgba(173, 173, 173, 0.4));border-radius:0.5rem;cursor:pointer}:host .outer-container .camera-container .required{position:absolute;top:auto;right:auto;bottom:auto;left:0.625rem;color:var(--success, #3aa76d);font-size:var(--font-size-14, 0.875rem)}:host .outer-container .camera-container yoo-icon{position:absolute;top:50%;left:50%;font-size:var(--camera-container-size, 1.875rem);-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}:host .outer-container .camera-container yoo-icon.light{color:var(--light, #ffffff)}:host .outer-container .camera-container yoo-icon.success{color:var(--success, #3aa76d)}:host .outer-container .camera-container .preview,:host .outer-container .camera-container .edit,:host .outer-container .camera-container .overlay{position:absolute;top:0;right:auto;bottom:auto;left:auto;width:var(--camera-container-height-medium-screen, 5.8125rem);height:var(--camera-container-height-medium-screen, 5.8125rem);border-radius:0.5rem}:host .outer-container .camera-container .preview.edit,:host .outer-container .camera-container .edit.edit,:host .outer-container .camera-container .overlay.edit{position:absolute;top:0;right:auto;bottom:auto;left:0;z-index:0}:host .outer-container .camera-container .overlay{background:var(--dark-60, rgba(0, 0, 0, 0.6));opacity:0.5}}@media only screen and (max-width: 320px){:host{--camera-selector-container-size:60px !important;--camera-container-height:70px !important}:host .outer-container .camera-container{position:relative;width:var(--camera-container-height-small-screen, 4.375rem);height:var(--camera-container-height-small-screen, 4.375rem);border:var(--border-width-01, 0.0625rem) solid var(--stable-40, rgba(173, 173, 173, 0.4));border-radius:0.5rem;cursor:pointer}:host .outer-container .camera-container .required{position:absolute;top:auto;right:auto;bottom:auto;left:0.625rem;color:var(--success, #3aa76d);font-size:var(--font-size-14, 0.875rem)}:host .outer-container .camera-container yoo-icon{position:absolute;top:50%;left:50%;font-size:var(--camera-container-size, 1.875rem);-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}:host .outer-container .camera-container yoo-icon.light{color:var(--light, #ffffff)}:host .outer-container .camera-container yoo-icon.success{color:var(--success, #3aa76d)}:host .outer-container .camera-container .preview,:host .outer-container .camera-container .edit,:host .outer-container .camera-container .overlay{position:absolute;top:0;right:auto;bottom:auto;left:auto;width:var(--camera-container-height-small-screen, 4.375rem);height:var(--camera-container-height-small-screen, 4.375rem);border-radius:0.5rem}:host .outer-container .camera-container .preview.edit,:host .outer-container .camera-container .edit.edit,:host .outer-container .camera-container .overlay.edit{position:absolute;top:0;right:auto;bottom:auto;left:0;z-index:0}:host .outer-container .camera-container .overlay{background:var(--dark-60, rgba(0, 0, 0, 0.6));opacity:0.5}:host .outer-container .single .button-containers.kpi{width:190px}}@media print{:host{page-break-before:avoid !important;page-break-inside:auto !important}:host .pdf-photo-container,:host .description-outer-container,:host .inner-ssr-container{page-break-after:auto;page-break-before:avoid;page-break-inside:avoid}:host .tags{display:none}}";
24
40
 
@@ -62,9 +78,15 @@ const YooFormCaptureComponent = class {
62
78
  this.updateExtraData(extraData);
63
79
  }
64
80
  /** If there is index, the field is a multiphoto */
65
- async setFieldValue(data) {
66
- this.multiple ? this.value.push(data) : this.value = data;
67
- formInputHelpers.setValueAndValidateInput(this.value, this);
81
+ async setFieldValue(index, data) {
82
+ if (index === undefined) {
83
+ formInputHelpers.setValueAndValidateInput(data, this);
84
+ }
85
+ else {
86
+ const newValue = this.value ? [...this.value] : [];
87
+ newValue[index] = data;
88
+ formInputHelpers.setValueAndValidateInput(newValue, this);
89
+ }
68
90
  }
69
91
  async stopImageRecognitionProcess(isCancelled = false) {
70
92
  this.imageRecoCancelled = isCancelled;
@@ -256,7 +278,7 @@ const YooFormCaptureComponent = class {
256
278
  }
257
279
  allowCrop(file) {
258
280
  var _a;
259
- return (((_a = this.cropperOptions) === null || _a === void 0 ? void 0 : _a.cropRatio) > 0 || this.showCropper) && overlays.isImage(file) && !overlays.isGif(file) && (!(typeof file === 'string' && overlays.isUnsplashUrl(file)) || overlays.isWeb(this.host));
281
+ return overlays.isWeb(this.host) && (((_a = this.cropperOptions) === null || _a === void 0 ? void 0 : _a.cropRatio) > 0 || this.showCropper) && overlays.isImage(file) && !overlays.isGif(file) && (!(typeof file === 'string' && overlays.isUnsplashUrl(file)) || overlays.isWeb(this.host));
260
282
  }
261
283
  removeAllCapture() {
262
284
  this.value = [];
@@ -284,7 +306,7 @@ const YooFormCaptureComponent = class {
284
306
  }
285
307
  /** for webcam, choose which device to take photo/video */
286
308
  capture(device, index) {
287
- var _a, _b;
309
+ var _a, _b, _c;
288
310
  let newIndex = index;
289
311
  if (index < 0) {
290
312
  newIndex = (_b = (_a = this.value) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
@@ -292,7 +314,7 @@ const YooFormCaptureComponent = class {
292
314
  if (overlays.isNativeMobile()) {
293
315
  let newIndex = index;
294
316
  if (index < 0) {
295
- if (this.value && this.value.length) {
317
+ if ((_c = this.value) === null || _c === void 0 ? void 0 : _c.length) {
296
318
  newIndex = this.value.length;
297
319
  }
298
320
  else {
@@ -316,33 +338,19 @@ const YooFormCaptureComponent = class {
316
338
  }
317
339
  }
318
340
  async processMediaData(mediaData, index) {
319
- if (mediaData === null || mediaData === void 0 ? void 0 : mediaData.includes('?')) {
320
- mediaData = mediaData.substring(0, mediaData.indexOf('?'));
321
- }
322
- else if (mediaData && !overlays.isImageUrl(mediaData)) {
323
- mediaData = overlays.addFilePrefix(mediaData);
324
- if (!overlays.isAndroid() && ['cache', 'tmp'].includes(mediaData)) {
325
- try {
326
- mediaData = await overlays.moveToImageDirectory(mediaData, overlays.getSession().user ? overlays.getSession().user.disablePhotoOrientationAutoFix : false);
327
- }
328
- catch (err) {
329
- throw new Error(err);
330
- }
331
- }
332
- }
333
341
  try {
342
+ !overlays.isImageUrl(mediaData) && (mediaData = await processMediaPath(mediaData));
334
343
  if (this.shouldTagImage()) {
335
344
  const tag = await this.showPhotoTagDialog(mediaData);
336
345
  (tag === null || tag === void 0 ? void 0 : tag.data) && this.updateTagData(tag, index);
337
346
  }
338
- await this.setFieldValue(mediaData);
347
+ await this.setFieldValue(index, mediaData);
339
348
  this.clearPhotoEdit(index);
340
349
  this.saveGeoloc && this.captureGeoloc(index);
341
350
  }
342
351
  catch (err) {
343
352
  throw new Error(err);
344
353
  }
345
- return mediaData;
346
354
  }
347
355
  showPhotoTagDialog(imageSrc, value) {
348
356
  const imageTag = document.createElement('yoo-form-capture-tag-dialog');
@@ -350,7 +358,8 @@ const YooFormCaptureComponent = class {
350
358
  imageTag.imageSrc = imageSrc;
351
359
  imageTag.value = value;
352
360
  imageTag.addEventListener('fetchData', (ev) => {
353
- this.onFetchGridData(ev);
361
+ ev.stopPropagation();
362
+ this.fetchData.emit(ev.detail);
354
363
  });
355
364
  return overlays.showModal(imageTag, null, '', 'slideYEnterAnimation', 'slideYLeaveAnimation');
356
365
  }
@@ -404,7 +413,7 @@ const YooFormCaptureComponent = class {
404
413
  });
405
414
  }
406
415
  async capturePhoto(useLibrary, index) {
407
- var _a, _b, _c;
416
+ var _a, _b, _c, _d, _e;
408
417
  const quality = this.isImageRecognition ? 100 : 70;
409
418
  const sourceType = useLibrary ? cameraHelpers.PictureSourceType.PHOTOLIBRARY : cameraHelpers.PictureSourceType.CAMERA;
410
419
  const mediaType = this.type === 'video' ? cameraHelpers.MediaType.VIDEO : cameraHelpers.MediaType.PICTURE;
@@ -474,26 +483,22 @@ const YooFormCaptureComponent = class {
474
483
  if (!res && this.showImageLoader) {
475
484
  this.showImageLoader = false;
476
485
  }
486
+ const newIndex = index < 0 ? ((_e = (_d = this.value) === null || _d === void 0 ? void 0 : _d.length) !== null && _e !== void 0 ? _e : 0) : index;
477
487
  const imagesData = Array.isArray(res) ? res : [res];
478
488
  const hasUnsplash = imagesData.some(d => overlays.isUnsplashUrl(d));
479
- const processImage = async (imageData, index) => {
480
- var _a;
489
+ const processImage = async (imageData, i) => {
481
490
  try {
482
- let extractedData = (imageData === null || imageData === void 0 ? void 0 : imageData['data']) || (imageData === null || imageData === void 0 ? void 0 : imageData['path']) || (imageData === null || imageData === void 0 ? void 0 : imageData['fullPath']) || imageData;
483
- if (!this.shouldTagImage()) {
484
- const shouldOpenCropper = !hasUnsplash && imagesData.length === 1 && this.allowCrop(imageData);
485
- const newIndex = Array.isArray(this.value) ? (_a = this.value) === null || _a === void 0 ? void 0 : _a.length : index;
486
- if (shouldOpenCropper) {
487
- extractedData = await this.onOpenCropper(imageData);
488
- }
489
- await this.processMediaData(extractedData, newIndex);
490
- }
491
+ let extractedData = await processMediaPath((imageData === null || imageData === void 0 ? void 0 : imageData['data']) || (imageData === null || imageData === void 0 ? void 0 : imageData['path']) || (imageData === null || imageData === void 0 ? void 0 : imageData['fullPath']) || imageData);
492
+ const shouldOpenCropper = !hasUnsplash && imagesData.length === 1 && this.allowCrop(extractedData);
493
+ shouldOpenCropper && (extractedData = await this.onOpenCropper(imageData));
494
+ const updatingIndex = this.multiple ? newIndex + i : undefined;
495
+ await this.processMediaData(extractedData, updatingIndex);
491
496
  }
492
497
  catch (err) {
493
498
  this.showImageLoader = false;
494
499
  }
495
500
  };
496
- await Promise.all(imagesData.map((data, index) => processImage(data, index)));
501
+ await overlays.asyncWaterfall(imagesData.map((data, i) => processImage(data, i)));
497
502
  this.showImageLoader = false;
498
503
  }
499
504
  catch (err) {
@@ -501,36 +506,29 @@ const YooFormCaptureComponent = class {
501
506
  throw new Error(err);
502
507
  }
503
508
  }
504
- captureVideo(index) {
505
- const options = { limit: 1, duration: this.duration || 60, saveToPhotoAlbum: true };
506
- return cameraHelpers.getVideo(options).then((files) => {
507
- this.processMediaData(this.fixPathAndGetValue(files), index);
508
- });
509
+ async captureVideo(index) {
510
+ const files = await cameraHelpers.getVideo({ limit: 1, duration: this.duration || 60, saveToPhotoAlbum: true });
511
+ await Promise.all(files === null || files === void 0 ? void 0 : files.map(file => this.processMediaData(this.fixPathAndGetValue(file), index)));
509
512
  }
510
513
  async captureAudio(index) {
511
- if (overlays.isAndroid()) {
512
- const ret = await cameraHelpers.showAudioRecorder(this.host);
513
- if (ret && ret.data) {
514
- return this.processMediaData(ret.data, index);
514
+ try {
515
+ if (overlays.isAndroid()) {
516
+ const { data } = await cameraHelpers.showAudioRecorder(this.host);
517
+ this.processMediaData(data, index);
518
+ }
519
+ else {
520
+ const files = await cameraHelpers.MediaCapture.captureAudio({ limit: 1, duration: this.duration || 60 });
521
+ await Promise.all(files === null || files === void 0 ? void 0 : files.map(file => this.processMediaData(this.fixPathAndGetValue(file), index)));
515
522
  }
516
523
  }
517
- else {
518
- const options = { limit: 1, duration: this.duration || 60 };
519
- return cameraHelpers.MediaCapture.captureAudio(options)
520
- .then((files) => {
521
- this.processMediaData(this.fixPathAndGetValue(files), index);
522
- })
523
- .catch((err) => {
524
- if (err.code !== 3) {
525
- this.noAudio();
526
- }
527
- });
524
+ catch (err) {
525
+ if (err.code !== 3) {
526
+ overlays.showAlert(overlays.translate('AUDIO'), [overlays.translate('YOOBICOK')], overlays.translate('NOAUDIO'));
527
+ }
528
+ throw new Error(err);
528
529
  }
529
530
  }
530
- noAudio() {
531
- overlays.showAlert(overlays.translate('AUDIO'), [overlays.translate('YOOBICOK')], overlays.translate('NOAUDIO'));
532
- }
533
- fixSessionIdPath() {
531
+ async fixSessionIdPath() {
534
532
  if (overlays.isIOS() && overlays.isNativeMobile() && this.value && typeof this.value !== 'undefined') {
535
533
  if (Array.isArray(this.value)) {
536
534
  const newValue = [];
@@ -552,11 +550,8 @@ const YooFormCaptureComponent = class {
552
550
  }
553
551
  }
554
552
  }
555
- fixPathAndGetValue(files) {
556
- if ((files === null || files === void 0 ? void 0 : files.length) > 0) {
557
- return overlays.addFilePrefix(files[0].fullPath);
558
- }
559
- return '';
553
+ fixPathAndGetValue(file) {
554
+ return overlays.addFilePrefix(file === null || file === void 0 ? void 0 : file.fullPath) || '';
560
555
  }
561
556
  captureFromWebcam(device, index) {
562
557
  let webcam = document.createElement('yoo-form-capture-webcam-dialog');
@@ -567,7 +562,7 @@ const YooFormCaptureComponent = class {
567
562
  this.showPhotoTagDialog(ret.data).then((tag) => {
568
563
  if (!overlays.isNullOrUndefined(tag === null || tag === void 0 ? void 0 : tag.data)) {
569
564
  this.updateTagData(tag, index);
570
- this.setFieldValue(ret.data);
565
+ this.setFieldValue(index, ret.data);
571
566
  this.clearPhotoEdit(index);
572
567
  if (this.saveGeoloc) {
573
568
  this.captureGeoloc();
@@ -576,7 +571,7 @@ const YooFormCaptureComponent = class {
576
571
  });
577
572
  }
578
573
  else {
579
- this.setFieldValue(ret.data);
574
+ this.setFieldValue(index, ret.data);
580
575
  this.clearPhotoEdit(index);
581
576
  if (this.saveGeoloc) {
582
577
  this.captureGeoloc();
@@ -676,7 +671,7 @@ const YooFormCaptureComponent = class {
676
671
  }
677
672
  else {
678
673
  if (this.multiple && (newImages === null || newImages === void 0 ? void 0 : newImages.length) > 0) {
679
- this.setFieldValue(newImages);
674
+ this.setFieldValue(index, newImages);
680
675
  }
681
676
  else if (newImages === null || newImages === void 0 ? void 0 : newImages.length) {
682
677
  this.value = newImages[0];
@@ -687,9 +682,10 @@ const YooFormCaptureComponent = class {
687
682
  });
688
683
  }
689
684
  captureGeoloc(index) {
685
+ var _a;
690
686
  let newIndex = index;
691
687
  if (this.saveGeoloc) {
692
- if (overlays.isNullOrUndefined(newIndex) && this.multiple && this.value && this.value.length - 1 > -1) {
688
+ if (overlays.isNullOrUndefined(newIndex) && this.multiple && ((_a = this.value) === null || _a === void 0 ? void 0 : _a.length) - 1 > -1) {
693
689
  newIndex = this.value.length - 1;
694
690
  }
695
691
  this.getGeoloc.emit(newIndex);
@@ -715,10 +711,6 @@ const YooFormCaptureComponent = class {
715
711
  this.captureFromDisk(index);
716
712
  }
717
713
  }
718
- onFetchGridData(ev) {
719
- ev.stopPropagation();
720
- this.fetchData.emit(ev.detail);
721
- }
722
714
  getTargetElement(index) {
723
715
  return index !== undefined ? Array.from(this.fileInputs).find((_, ind) => ind === index) : this.fileInputs;
724
716
  }
@@ -739,17 +731,17 @@ const YooFormCaptureComponent = class {
739
731
  const tag = await this.showPhotoTagDialog(data);
740
732
  if (!overlays.isNullOrUndefined(tag === null || tag === void 0 ? void 0 : tag.data)) {
741
733
  this.updateTagData(tag, index);
742
- this.setFieldValue(data);
734
+ this.setFieldValue(index, data);
743
735
  this.clearPhotoEdit(index);
744
736
  }
745
737
  }
746
738
  else {
747
- this.setFieldValue(data);
739
+ this.setFieldValue(index, data);
748
740
  this.clearPhotoEdit(index);
749
741
  }
750
742
  }
751
743
  else {
752
- this.setFieldValue(f);
744
+ this.setFieldValue(index, f);
753
745
  this.clearPhotoEdit(index);
754
746
  }
755
747
  targetElement.value = null;
@@ -1576,7 +1568,8 @@ const YooFormCaptureComponent = class {
1576
1568
  }
1577
1569
  }
1578
1570
  shouldTagImage() {
1579
- return this.tags && this.tags.length > 0;
1571
+ var _a;
1572
+ return ((_a = this.tags) === null || _a === void 0 ? void 0 : _a.length) > 0;
1580
1573
  }
1581
1574
  onCancelImageReco() {
1582
1575
  overlays.showAlert('', [overlays.translate('YOOBICNO'), overlays.translate('YOOBICYES')], overlays.translate('STOPIMAGERECO')).then((res) => {
@@ -495,7 +495,7 @@ const YooFormDynamicComponent = class {
495
495
  const videoValue = fieldData.value;
496
496
  const videoElement = el;
497
497
  if (videoValue) {
498
- videoElement.setFieldValue(videoValue);
498
+ videoElement.setFieldValue(undefined, videoValue);
499
499
  }
500
500
  break;
501
501
  }
@@ -1,6 +1,23 @@
1
+ import { addFilePrefix, isAndroid, isImageUrl, moveToImageDirectory } from '@shared/utils';
1
2
  export function shouldUseLowPerformanceCamera(user, isNativeMobile, useLibrary) {
2
3
  const enableLowPerformanceCamera = user === null || user === void 0 ? void 0 : user.enableLowPerformanceCamera;
3
4
  const isLowEndDevice = user === null || user === void 0 ? void 0 : user.isLowEndDevice;
4
5
  return !!(enableLowPerformanceCamera ||
5
6
  (enableLowPerformanceCamera === undefined && isLowEndDevice)) && isNativeMobile && !useLibrary;
6
7
  }
8
+ export async function processMediaPath(mediaPath) {
9
+ if (mediaPath === null || mediaPath === void 0 ? void 0 : mediaPath.includes('?')) {
10
+ return mediaPath.substring(0, mediaPath.indexOf('?'));
11
+ }
12
+ else if (!isImageUrl(mediaPath)) {
13
+ return addFilePrefix(mediaPath);
14
+ }
15
+ else if (!isAndroid() && ['cache', 'tmp'].includes(mediaPath)) {
16
+ try {
17
+ return await moveToImageDirectory(addFilePrefix(mediaPath));
18
+ }
19
+ catch (err) {
20
+ throw new Error(err);
21
+ }
22
+ }
23
+ }