@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.
- package/dist/cjs/yoo-form-capture.cjs.entry.js +70 -77
- package/dist/cjs/yoo-form-dynamic.cjs.entry.js +1 -1
- package/dist/collection/components/form/form-capture/form-capture-helper.js +17 -0
- package/dist/collection/components/form/form-capture/form-capture.js +60 -80
- package/dist/collection/components/form/form-dynamic/form-dynamic.js +1 -1
- package/dist/design-system/yoo-form-capture.entry.js +71 -78
- package/dist/design-system/yoo-form-dynamic.entry.js +1 -1
- package/dist/esm/yoo-form-capture.entry.js +71 -78
- package/dist/esm/yoo-form-dynamic.entry.js +1 -1
- package/dist/types/components/form/form-capture/form-capture-helper.d.ts +1 -0
- package/dist/types/components/form/form-capture/form-capture.d.ts +5 -7
- package/dist/types/components.d.ts +1 -1
- package/package.json +1 -1
|
@@ -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
|
-
|
|
67
|
-
|
|
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
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
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
|
|
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
|
|
506
|
-
|
|
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
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
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
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
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
|
-
|
|
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(
|
|
556
|
-
|
|
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
|
|
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
|
-
|
|
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
|
+
}
|