cty-mui-core 1.0.39 → 1.0.40
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/components/camera.js +3 -2
- package/dist/cjs/cty-camera_2.cjs.entry.js +3 -2
- package/dist/collection/components/camera/camera.js +3 -2
- package/dist/cty-mui/cty-mui.esm.js +1 -1
- package/dist/cty-mui/p-94e99338.system.entry.js +1 -0
- package/dist/cty-mui/p-Cegbc1c7.system.js +1 -1
- package/dist/cty-mui/p-ced85d3d.entry.js +1 -0
- package/dist/docs.json +1 -1
- package/dist/esm/cty-camera_2.entry.js +3 -2
- package/dist/esm-es5/cty-camera_2.entry.js +1 -1
- package/package.json +1 -1
- package/dist/cty-mui/p-6b00dff7.system.entry.js +0 -1
- package/dist/cty-mui/p-fbc7fe30.entry.js +0 -1
|
@@ -110,7 +110,7 @@ const Camera = class {
|
|
|
110
110
|
async initCamera() {
|
|
111
111
|
await this.requestPermission();
|
|
112
112
|
if (!this.hasPermission) {
|
|
113
|
-
this.ctyDismiss.emit();
|
|
113
|
+
!this.permissionAlertVisible && this.ctyDismiss.emit();
|
|
114
114
|
return;
|
|
115
115
|
}
|
|
116
116
|
const height = this.getCameraHeight();
|
|
@@ -277,6 +277,7 @@ const Camera = class {
|
|
|
277
277
|
try {
|
|
278
278
|
await cameraPreview.openAppSettings();
|
|
279
279
|
this.permissionAlertVisible = false;
|
|
280
|
+
this.initCamera();
|
|
280
281
|
}
|
|
281
282
|
catch (error) {
|
|
282
283
|
this.closePermissionAlert(event);
|
|
@@ -290,7 +291,7 @@ const Camera = class {
|
|
|
290
291
|
}
|
|
291
292
|
render() {
|
|
292
293
|
const { title, closeIcon, flash, flipText, flashText, ratioText, ratios, ratioIndex, zoomIndex, zooms, mode, singleText, multipleText, currentPhotoMode, confirmIcon, confirmText, deleteIcon, pictures, showImageViewer, imageViewerIndex, touchZoom, currentZoom } = this;
|
|
293
|
-
return (h(Host, { key: '
|
|
294
|
+
return (h(Host, { key: '87e30447a2f8f3d4bac90a5997486e525b0d86e1', class: "cty-camera", onClick: (e) => e.stopPropagation() }, h("cty-nav-bar", { key: 'f887682109a7b57792b40a0c3c0e5c43c3afbb02', title: title, type: "clear" }, h("slot", { key: 'd24bb63c23f0d38cc5c3537a846f398a325c33a3', name: "header-start", slot: "start" }, !!closeIcon && h("ion-button", { key: '012ee12b016e8986a2177b8c0547d4e244c679ee', class: "cty-camera__close", onClick: () => this.close() }, h("cty-icon", { key: '384c34680e0d51bf8348c5547342d262e047d1df', class: "cty-camera__close-icon", name: closeIcon })))), h("div", { key: '98125d2cb9e431fa398a5d137d996d549af63174', class: "cty-camera-main", onTouchStart: (e) => this.touchstart(e), onTouchMove: (e) => this.touchmove(e), onTouchEnd: (e) => this.touchend(e) }, h("div", { key: 'b8793b12764a555aa271534721832149654678b3', class: "cty-camera-widgets", part: "widgets" }, !!flipText && h("button", { key: 'eb561af5de2dfe02360b5b0c081ac16d42372c4d', class: "cty-button-native cty-camera-widget", part: "widget", onClick: () => this.flipCamera() }, h("cty-icon", { key: '3a1497d2620db2bae124c03ec11e2ccd720cbf56', class: "cty-camera-widget__icon", name: "cty-flip" }), !!flipText && h("span", { key: 'bec3462b8f19889c2b905783fded221830f31f83', class: "cty-camera-widget__text" }, flipText)), !!flashText && h("button", { key: 'd6cf0bedde3a1c909c24d5b89c7f526bbe433490', class: "cty-button-native cty-camera-widget", part: "widget", onClick: () => this.toggleFlash() }, h("cty-icon", { key: '2756a11d15f5d00390632e76afb787edc9544a83', class: "cty-camera-widget__icon", name: flash ? 'cty-flash-on' : 'cty-flash-off' }), !!flashText && h("span", { key: '9db63417dbd15b3ba719ff930f78cc44ac8c9ab0', class: "cty-camera-widget__text" }, flashText)), !!ratioText && h("button", { key: '128f64704c198af7c5087361f820af40c92d5136', class: "cty-button-native cty-camera-widget", part: "ratio", onClick: () => this.ratioChange() }, h("span", { key: 'e9ee33ffe7a3b560538945b6d7d493e46d278353', class: "cty-camera-widget__ratio flex-center" }, ratios[ratioIndex]), !!ratioText && h("span", { key: 'b9f7018443944c94dc679bdcbd0247138f377680', class: "cty-camera-widget__text" }, ratioText)))), h("div", { key: 'c19ee27e399fc263add8ef85a3d59b5492d25e4e', class: "cty-camera-controls safe-area-bottom-padding" }, mode == 'both' && pictures.length <= 0 && h("div", { key: 'a89f4f51757cf84994596a30344f883e873f621b', class: "cty-camera-controls__mode flex-center", part: "mode" }, h("button", { key: '58f7beb5e4e36e0d16be5ee6a72bc7cfe843a3f3', class: { 'cty-button-native cty-camera-controls__mode-button': true, 'cty-camera-controls__mode-button__active': currentPhotoMode === 'single' }, onClick: () => this.currentPhotoMode = 'single' }, singleText), h("button", { key: '09797fed9e2d0e4214312cd71504e8c42ce5aada', class: { 'cty-button-native cty-camera-controls__mode-button': true, 'cty-camera-controls__mode-button__active': currentPhotoMode === 'multiple' }, onClick: () => this.currentPhotoMode = 'multiple' }, multipleText)), h("slot", { key: 'a93b960673912c178b703d01028b927701390f4b', name: "zooms" }, !touchZoom && zooms.length > 0 && h("div", { key: '92311e8a921f3d898fe9dde4f0354018154e62a6', class: "cty-camera-controls__zooms flex-center", part: "zooms" }, zooms.map((item, idx) => (h("div", { class: { 'cty-camera-controls__zoom-item flex-center': true, 'cty-camera-controls__zoom-item__active': zoomIndex === idx }, onClick: () => this.setZoom(idx) }, h("span", { class: "cty-camera-controls__zoom-text flex-center" }, item, "X"))))), touchZoom && h("div", { key: '71840ea2f3c1efd39e0a483cc4176e2084c436b2', class: "cty-camera-controls__zooms flex-center", part: "zooms" }, h("div", { key: '8f21de0ab8c632262136fa2deae33541ff33205c', class: { 'cty-camera-controls__zoom-item flex-center cty-camera-controls__zoom-item__active': true }, onClick: () => this.resetZoom() }, h("span", { key: 'dd5c8774153e8d4afee69cfd619aeb58b7aaeafb', class: "cty-camera-controls__zoom-text flex-center" }, currentZoom, "X")))), h("div", { key: 'e77fe2fe8d383a0b0db0eabc953a06e14927372d', class: "cty-camera-controls__main flex-center" }, h("div", { key: '0b2b0ed9a73e1d97b65f33db00b645eecd02c855', class: "cty-camera-controls__main-left flex-center" }), h("div", { key: 'c82c3e5738c34465e0c881c652d03e207f1c4378', class: "cty-camera-controls__take-photo flex-center" }, h("button", { key: '6eb38e93d6435a566d215d1e020caf9651d017b9', class: "cty-button-native cty-camera-controls__take-photo-button", part: "take-photo", onClick: () => this.takePhoto() })), h("div", { key: 'f7162a2065e1bafe8e5ee3fb5b7f9956d2f47bca', class: "cty-camera-controls__main-confirm flex-center" }, currentPhotoMode !== 'single' && pictures.length > 0 && !!deleteIcon && h("button", { key: '406107a0fe9d3b64bf25b9decfd04442731b6e94', class: "cty-camera-controls__main-delete cty-button-native flex-column-center", onClick: () => this.deleteLastPicture() }, h("cty-icon", { key: '4fe35fa4aa7d56cc313ae1529e48c7fe9cdddb67', class: "cty-camera-controls__main-delete-icon", name: deleteIcon })), currentPhotoMode !== 'single' && pictures.length > 0 && h("button", { key: '21db9978e8e95983ecdbb1ca644bfa5bbd5250b3', class: "cty-button-native flex-column-center", onClick: () => this.confirm() }, h("cty-icon", { key: '1299292a88b81bad67007ee04a0688c3d753cc1a', class: "cty-camera-controls__main-confirm-icon", name: confirmIcon }), confirmText && h("span", { key: 'a472a97e3a5511a43812fb7a44508151e514e4b3', class: "cty-camera-controls__main-confirm-text" }, confirmText)))), h("slot", { key: '2f928fef43a074b195de928f60ea4425f6030c3f', name: "images" }, h("div", { key: 'ec3dea052f155c830b328b69759447172a2f85a1', class: "cty-camera-controls__images flex-align-center" }, currentPhotoMode !== 'single' && pictures.map((item, idx) => (h("div", { class: "cty-camera-controls__image", onClick: () => this.toImageViewer(idx) }, h("img", { class: 'cty-camera-controls__image-img', src: item.thumbnail || item.url }), h("button", { class: "cty-button-native", onClick: (e) => this.deletePicture(e, idx) }, h("cty-icon", { class: "cty-camera-controls__image-delete", name: closeOutline })))))))), showImageViewer && h("cty-image-viewer", { key: '41f862a4f8686499086de808c2b7d1bf3df45af3', images: pictures.map(item => item.url), initialSlide: imageViewerIndex, overlayIndex: 100, backdropDismiss: false, closeable: false, onCtyDismiss: (e) => this.closeImageViewer(e) }, currentPhotoMode !== 'multiple' && h("div", { key: '1d0432f45263db6276d5d921f928414377b513e8', class: "cty-camera-viewer__single flex-center-between", slot: "pager" }, h("button", { key: 'ac4919e6a40e2db191ab96b57c0ae95aa6dfcb68', class: "cty-camera-viewer__single-close cty-button-native", onClick: (event) => this.closeSingleImageViewer(event) }, h("cty-icon", { key: '30aef1dc5108f2f617c590b99fb835d059dc1900', name: "cty-close2" })), h("button", { key: 'c83ea114924d5d4e32a23a94c2a483784bdecab8', class: "cty-camera-viewer__single-confirm cty-button-native", onClick: () => this.confirm() }, h("cty-icon", { key: '866d451495aef92120d8876742cb02b2c32f4122', name: "cty-tick" }))), currentPhotoMode !== 'multiple' && h("i", { key: '9070e8f341360e0d6801d56664f679d7dd18184d', slot: "close" })), this.permissionAlertVisible && h("cty-permission-alert", { key: '30055b9ae7772684312ca90a7076545edfb476db', title: this.permissionAlertTitle, content: this.permissionAlertContent, buttons: this.permissionAlertbuttons, onCtyDismiss: (e) => this.closePermissionAlert(e), onCtyTap: (e) => this.toOpenAppSetting(e) }), h("ion-toast", { key: '3121cd6124ab8f92835655e6636d87d8d8200b2d', "is-open": this.isToastOpen, message: this.toastContent, duration: 2000, position: 'middle' })));
|
|
294
295
|
}
|
|
295
296
|
get el() { return getElement(this); }
|
|
296
297
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__awaiter,__generator,__spreadArray}from"tslib";import{r as registerInstance,c as createEvent,h,a as Host,g as getElement}from"./index-DBsZD0Dk.js";import{c as cameraPreview}from"./camera-preview-Bntx5BKz.js";import{d as deviceInfo}from"./device-info-BWrjtLtW.js";import{i as imagePicker}from"./image-picker-0JHjPizE.js";import{o as closeOutline,V as backspaceOutline}from"./index-D0r4bHmZ.js";import{b as getEventPageCoords,g as getElementRect}from"./dom-CHhKFKFA.js";import{i as clamp}from"./format-DnWe30Rj.js";import"./platform-BqPoMbNS.js";import"./network-BqPNWsXF.js";import"./index-CZI7sxie.js";var cameraCss="*{-webkit-box-sizing:border-box;box-sizing:border-box}p,h1,h2,h3,h4,h5,h6{margin:0;padding:0}.flex{display:-ms-flexbox;display:flex}.flex-wrap{display:-ms-flexbox;display:flex;-ms-flex-flow:wrap;flex-flow:wrap}.flex-align-start{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.flex-align-center{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.flex-align-end{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end}.flex-justify-start{display:-ms-flexbox;display:flex;-ms-flex-pack:start;justify-content:flex-start}.flex-justify-center{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.flex-justify-end{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end}.flex-align-end-start{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end;-ms-flex-pack:start;justify-content:flex-start}.flex-align-end-center{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end;-ms-flex-pack:center;justify-content:center}.flex-align-end-end{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end;-ms-flex-pack:end;justify-content:flex-end}.flex-center{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.flex-center-justify-end{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}.flex-between{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.flex-center-between{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.flex-column{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column}.flex-column-align-center{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-align:center;align-items:center}.flex-column-justify-center{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:center;justify-content:center}.flex-column-center{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.flex-column-between{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:justify;justify-content:space-between}.flex-column-center-between{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.cty-button-native{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin:0;padding:0;background:transparent;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;line-height:1;border:0;outline:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0;-webkit-box-shadow:none;box-shadow:none;cursor:pointer}:host{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;position:fixed;left:0;top:0;z-index:20099;width:100vw !important;height:100vh !important;visibility:visible !important}.cty-camera__close[class]{margin:0;min-height:var(--cty-camera-close-min-hieght, 3.1em);--background:transparent;--background-activated:transparent;--background-focused:transparent;--background-hover:transparent;--box-shadow:none;--padding-top:var(--cty-camera-close-padding-top, 3px);--padding-bottom:var(--cty-camera-close-padding-bottom, 3px);--padding-start:var(--cty-camera-close-padding-start, 6px);--padding-end:var(--cty-camera-close-padding-end, 6px);--color:var(--cty-camera-close-color, var(--cty-text-color-white))}.cty-camera__close-icon{font-size:var(--cty-camera-close-font-size, 28px)}.cty-camera-main{-ms-flex:1;flex:1;position:relative}.cty-camera-widgets{position:absolute;top:0;right:15px}.cty-camera-widget{-ms-flex-direction:column;flex-direction:column;margin-bottom:var(--cty-camera-camera-widget-offset-y, 30px);color:var(--cty-camera-camera-widget-color, #fff)}.cty-camera-widget__icon{font-size:var(--cty-camera-camera-widget-icon-size, 20px)}.cty-camera-widget__text{margin-top:var(--cty-camera-camera-widget-text-offset-y, 5px);font-size:var(--cty-camera-camera-widget-text-size, var(--cty-font-size-extra-small))}.cty-camera-widget__ratio{width:24px;height:16px;border-radius:2px;border:1px solid var(--cty-camera-camera-widget-color, #fff);font-size:10px}.cty-camera-controls{margin-top:auto}.cty-camera-controls__mode{width:-webkit-max-content;width:-moz-max-content;width:max-content;padding:var(--cty-camera-camera-controls-mode-padding, 2px);margin:var(--cty-camera-camera-controls-mode-offset, 0 auto 15px);background:var(--cty-camera-camera-controls-mode-bg, rgba(0, 0, 0, 0.5));border-radius:var(--cty-camera-camera-controls-mode-radius, 3px);color:var(--cty-camera-camera-controls-mode-color, #fff)}.cty-camera-controls__mode-button{padding:var(--cty-camera-camera-controls-mode-button-padding, 3px 5px);border-radius:var(--cty-camera-camera-controls-mode-button-radius, 3px);font-size:var(--cty-camera-camera-controls-mode-button-font-szie, var(--cty-font-size-extra-small))}.cty-camera-controls__mode-button__active{background:var(--cty-camera-camera-controls-mode-button-active-bg, #fff);color:var(--cty-camera-camera-controls-mode-button-active-color, #000)}.cty-camera-controls__zooms{margin:var(--cty-camera-camera-controls-zooms-offset, 0 0 15px)}.cty-camera-controls__zoom-item{width:var(--cty-camera-camera-controls-zoom-active-size, 28px);height:var(--cty-camera-camera-controls-zoom-active-size, 28px);border-radius:50%}.cty-camera-controls__zoom-item:not(:last-child){margin-right:var(--cty-camera-camera-controls-zoom-offset, 10px)}.cty-camera-controls__zoom-item__active{border:var(--cty-camera-camera-controls-zoom-active-border, 1px solid #fff)}.cty-camera-controls__zoom-item__active .cty-camera-controls__zoom-text{background:var(--cty-camera-camera-controls-zoom-active-bg, transparent)}.cty-camera-controls__zoom-text{width:var(--cty-camera-camera-controls-zoom-size, 24px);height:var(--cty-camera-camera-controls-zoom-size, 24px);background:var(--cty-camera-camera-controls-zoom-bg, rgba(0, 0, 0, 0.3));border-radius:50%;color:var(--cty-camera-camera-controls-color, #fff);font-size:var(--cty-camera-camera-controls-zoom-font-size, 10px);font-weight:var(--cty-camera-camera-controls-zoom-font-weight, 600)}.cty-camera-controls__main{margin:var(--cty-camera-camera-controls-take-photo-offset, 0 0 15px)}.cty-camera-controls__take-photo{width:var(--cty-camera-camera-controls-take-photo-size, 60px);height:var(--cty-camera-camera-controls-take-photo-size, 60px);border-radius:50%;border:var(--cty-camera-camera-controls-take-photo-border, 2px solid #fff)}.cty-camera-controls__take-photo-button{width:var(--cty-camera-camera-controls-take-photo-button-size, 48px);height:var(--cty-camera-camera-controls-take-photo-button-size, 48px);border-radius:50%;background:var(--cty-camera-camera-controls-color, #fff)}.cty-camera-controls__take-photo-button:active{-webkit-transform:scale(0.9);transform:scale(0.9);-webkit-transition:-webkit-transform 0.05s cubic-bezier(0.2, 0.9, 0.4, 1.1);transition:-webkit-transform 0.05s cubic-bezier(0.2, 0.9, 0.4, 1.1);transition:transform 0.05s cubic-bezier(0.2, 0.9, 0.4, 1.1);transition:transform 0.05s cubic-bezier(0.2, 0.9, 0.4, 1.1), -webkit-transform 0.05s cubic-bezier(0.2, 0.9, 0.4, 1.1);-webkit-box-shadow:0 3px 8px rgba(0, 0, 0, 0.2);box-shadow:0 3px 8px rgba(0, 0, 0, 0.2);-webkit-filter:brightness(0.96);filter:brightness(0.96)}.cty-camera-controls__main-left,.cty-camera-controls__main-confirm{-ms-flex:1;flex:1}.cty-camera-controls__main-confirm-icon{font-size:var(--cty-camera-camera-controls-confirm-icon-size, 24px);color:var(--cty-camera-camera-controls-confirm-icon-color, var(--cty-color-danger))}.cty-camera-controls__main-confirm-text{margin-top:var(--cty-camera-camera-controls-confirm-text-offset, 5px);font-size:var(--cty-camera-camera-controls-confirm-text-size, 12px);color:var(--cty-camera-camera-controls-confirm-text-color, #fff)}.cty-camera-controls__main-delete{margin-right:var(--cty-camera-camera-controls-delete-offser, 30px)}.cty-camera-controls__main-delete-icon{font-size:var(--cty-camera-camera-controls-delete-icon-size, 20px);color:var(--cty-camera-camera-controls-delete-icon-color, #fff)}.cty-camera-controls__images{overflow-x:auto;width:100%;min-height:var(--cty-camera-camera-controls-images-min-height, 84px);padding:var(--cty-camera-camera-controls-images-padding, 0 15px);margin:var(--cty-camera-camera-controls-images-offset, 15px 0)}.cty-camera-controls__image{-ms-flex:none;flex:none;position:relative;width:var(--cty-camera-camera-controls-image-size, 54px);height:var(--cty-camera-camera-controls-image-size, 54px)}.cty-camera-controls__image:not(:last-child){margin-right:var(--cty-camera-camera-controls-image-offset, 10px)}.cty-camera-controls__image-img{display:block;width:100%;height:100%;border-radius:var(--cty-camera-camera-controls-image-border-radius, 8px);-o-object-fit:var(--cty-camera-camera-controls-image-object-fit, cover);object-fit:var(--cty-camera-camera-controls-image-object-fit, cover)}.cty-camera-controls__image-delete{position:absolute;top:0;right:0;width:var(--cty-camera-camera-controls-image-delete-size, 20px);height:var(--cty-camera-camera-controls-image-delete-size, 20px);background:var(--cty-camera-camera-controls-image-delete-bg, rgba(0, 0, 0, 0.5));border-radius:var(--cty-camera-camera-controls-image-delete-border-radius, 0 8px);color:var(--cty-camera-camera-controls-image-delete-color, #fff);font-size:var(--cty-camera-camera-controls-image-delete-font-size, 18px)}.cty-camera-viewer__single{min-height:var(--cty-camera-viewer-single-min-height, 44px);padding:var(--cty-camera-viewer-single-padding, 0 15px)}.cty-camera-viewer__single-close,.cty-camera-viewer__single-confirm{font-size:var(--cty-image-viewer-single-close-size, 20px);color:var(--cty-image-viewer-single-close-color, #fff)}";var Camera=function(){function e(e){registerInstance(this,e);this.ctyDismiss=createEvent(this,"ctyDismiss",7);this.ctyTakePhoto=createEvent(this,"ctyTakePhoto",7);this.ctyConfirm=createEvent(this,"ctyConfirm",7);this.safeArea=44;this.title="";this.options={};this.closeIcon=closeOutline;this.deleteIcon=backspaceOutline;this.width=0;this.height=0;this.quality=85;this.includeThumb=true;this.thumbWidth=120;this.file=true;this.max=9;this.flipText="翻转";this.flashText="闪光";this.ratioText="比例";this.confirmIcon="cty-confirm";this.confirmText="确定";this.mode="both";this.singleText="单拍";this.multipleText="连拍";this.ratios=["9:16","3:4","1:1","16:9","full"];this.zooms=[1,2,5,10];this.zoomSteps=20;this.touchZoom=true;this.touchZoomProp=.01;this.permissionAlertTitle="需要申请开启相机权限";this.permissionAlertContent="需要开启相机权限,用于拍照。我们承诺仅在功能使用时调用摄像头。";this.ratioIndex=0;this.flash=false;this.zoomIndex=0;this.pictures=[];this.showImageViewer=false;this.imageViewerIndex=0;this.currentPhotoMode="multiple";this.currentZoom=1;this.hasPermission=false;this.permissionAlertVisible=false;this.isToastOpen=false;this.toastContent="";this.startZoom=1;this.SCREEN_WIDTH=window.screen.width;this.SCREEN_HEIGHT=window.screen.height;this.originalBodyBackground="";this.isTakingPhoto=false;this.distance=0;this.startCameraZoom=0}e.prototype.connectedCallback=function(){if(this.mode==="single"){this.currentPhotoMode="single"}var e=window.document.querySelector("body");e.style.visibility="hidden";this.originalBodyBackground=window.getComputedStyle(e).background;e.style.background="transparent";this.initCamera()};e.prototype.disconnectedCallback=function(){cameraPreview.stopCamera();var e=window.document.querySelector("body");e.style.visibility="visible";e.style.background=this.originalBodyBackground};e.prototype.requestPermission=function(){return __awaiter(this,void 0,void 0,(function(){var e,t,a,c,i;return __generator(this,(function(r){switch(r.label){case 0:r.trys.push([0,2,,3]);e=this;return[4,cameraPreview.hasPermission()];case 1:e.hasPermission=r.sent();return[3,3];case 2:t=r.sent();this.hasPermission=false;return[3,3];case 3:if(!!this.hasPermission)return[3,7];r.label=4;case 4:r.trys.push([4,6,,7]);return[4,cameraPreview.requestPermission()];case 5:r.sent();this.hasPermission=true;return[3,7];case 6:a=r.sent();c=a.code,i=a.message;if(c=="PERMISSION_DENIED_NEED_SETTINGS"){this.permissionAlertVisible=true}else{if(c!="PERMISSION_DENIED_FIRST_TIME"&&i){this.isToastOpen=true;this.toastContent=i}this.ctyDismiss.emit()}return[3,7];case 7:return[2]}}))}))};e.prototype.initCamera=function(){return __awaiter(this,void 0,void 0,(function(){var e;var t=this;return __generator(this,(function(a){switch(a.label){case 0:return[4,this.requestPermission()];case 1:a.sent();if(!this.hasPermission){this.ctyDismiss.emit();return[2]}e=this.getCameraHeight();cameraPreview.startCamera(Object.assign(Object.assign({y:this.safeArea,camera:"back",backgroundColor:"#000000"},this.options),{x:0,height:e,toBack:true,tapPhoto:false,tapFocus:true,enableAutoSettings:false,storeToFile:this.file})).catch((function(e){var a=e.code;if(a=="PERMISSION_DENIED_NEED_SETTINGS"){t.permissionAlertVisible=true}}));return[2]}}))}))};e.prototype.close=function(){this.ctyDismiss.emit()};e.prototype.flipCamera=function(){return cameraPreview.switchCamera()};e.prototype.toggleFlash=function(){this.flash=!this.flash;if(!this.flash){return this.flashOff()}return this.flashOn()};e.prototype.flashOff=function(){return cameraPreview.setFlashMode("off")};e.prototype.flashOn=function(){return cameraPreview.setFlashMode("torch")};e.prototype.ratioChange=function(){var e=this,t=e.ratios,a=e.ratioIndex,c=e.SCREEN_WIDTH;var i=t[a];this.ratioIndex++;if(this.ratioIndex>=t.length){this.ratioIndex=0}var r=t[this.ratioIndex];if(!r.includes(":")||!i.includes(":")){cameraPreview.setPreviewPosition(0,!i.includes(":")?this.safeArea:0)}var n=this.getCameraHeight();return cameraPreview.setPreviewSize({width:c,height:n})};e.prototype.setZoom=function(e){return __awaiter(this,void 0,void 0,(function(){var t,a,c,i;return __generator(this,(function(r){switch(r.label){case 0:t=this.zooms;this.zoomIndex=e;return[4,cameraPreview.getMaxZoom()];case 1:a=r.sent();c=(a+1)/this.zoomSteps;i=c*t[e]-1;if(deviceInfo.isIos){i=t[e]}return[2,cameraPreview.setZoom(e===0?0:Math.min(i,a))]}}))}))};e.prototype.takePhoto=function(){return __awaiter(this,void 0,void 0,(function(){var e,t,a,c,i,r,n,o,s,l,f,m,d,h;return __generator(this,(function(u){switch(u.label){case 0:e=this,t=e.quality,a=e.width,c=e.height,i=e.includeThumb,r=e.thumbWidth,n=e.file,o=e.max,s=e.pictures;if(o>0&&s.length>=o||this.currentPhotoMode==="single"&&this.pictures.length>0||this.isTakingPhoto){return[2]}this.isTakingPhoto=true;return[4,cameraPreview.takePicture({width:a,height:c,quality:t,includeThumb:i,thumbWidth:r})];case 1:l=u.sent();f="";m="";if(l&&typeof l==="object"){f=l.image;m=l.thumbnail}else{f=l}return[4,imagePicker.formatPictureResult(n,f)];case 2:d=u.sent();return[4,imagePicker.formatPictureResult(n,m)];case 3:h=u.sent();this.pictures=__spreadArray(__spreadArray([],s,true),[Object.assign(Object.assign({},d),{thumbnail:h.url})],false);this.ctyTakePhoto.emit(d);this.isTakingPhoto=false;if(this.currentPhotoMode==="single"){this.toImageViewer(0)}return[2,d]}}))}))};e.prototype.deletePicture=function(e,t){e.stopPropagation();var a=__spreadArray([],this.pictures,true);a.splice(t,1);this.pictures=a};e.prototype.getCameraHeight=function(){var e=this,t=e.ratios,a=e.ratioIndex,c=e.SCREEN_WIDTH,i=e.SCREEN_HEIGHT;var r=t[a];if(!r.includes(":")){return i}var n=r.split(":"),o=n[0],s=n[1];return Math.min(i,+s*c/+o)};e.prototype.toImageViewer=function(e){this.imageViewerIndex=e;this.showImageViewer=true};e.prototype.closeImageViewer=function(e){e.stopPropagation();this.showImageViewer=false};e.prototype.closeSingleImageViewer=function(e){this.pictures=[];this.closeImageViewer(e)};e.prototype.confirm=function(){this.ctyConfirm.emit(this.pictures.map((function(e){var t=e.url,a=e.data;return{url:t,data:a}})))};e.prototype.deleteLastPicture=function(){var e=__spreadArray([],this.pictures,true);e.pop();this.pictures=e};e.prototype.resetZoom=function(){this.currentZoom=1;this.setZoom(0)};e.prototype.touchstart=function(e){return __awaiter(this,void 0,void 0,(function(){var t,a,c;return __generator(this,(function(i){switch(i.label){case 0:e.stopPropagation();if(!(this.touchZoom&&e.touches.length==2))return[3,2];t=e.touches[1].clientX-e.touches[0].clientX;a=e.touches[1].clientY-e.touches[0].clientY;this.distance=Math.sqrt(t*t+a*a);c=this;return[4,cameraPreview.getZoom()];case 1:c.startCameraZoom=i.sent();this.startZoom=this.currentZoom;i.label=2;case 2:return[2]}}))}))};e.prototype.touchmove=function(e){e.stopPropagation();if(this.touchZoom&&e.touches.length==2){var t=e.touches[1].clientX-e.touches[0].clientX;var a=e.touches[1].clientY-e.touches[0].clientY;var c=Math.sqrt(t*t+a*a);var i=c-this.distance;var r=this.touchZoomProp*i;this.updateZoom(r)}};e.prototype.touchend=function(e){e.stopPropagation()};e.prototype.updateZoom=function(e){return __awaiter(this,void 0,void 0,(function(){var t,a,c,i,r,n;return __generator(this,(function(o){switch(o.label){case 0:t=this,a=t.startCameraZoom,c=t.startZoom;return[4,cameraPreview.getMaxZoom()];case 1:i=o.sent();r=(i+1)/this.zoomSteps;n=this.zooms.slice(-1)[0]||10;this.currentZoom=Math.floor((c+e)*10)/10;this.currentZoom=Math.max(this.currentZoom,1);this.currentZoom=Math.min(this.currentZoom,n);if(deviceInfo.isIos){i=n}else{i=Math.min(i,n*r);e=r*e}cameraPreview.setZoom(Math.min(a+e,i));return[2]}}))}))};e.prototype.toOpenAppSetting=function(e){return __awaiter(this,void 0,void 0,(function(){var t,a;return __generator(this,(function(c){switch(c.label){case 0:t=e.detail.item;if(!(t.action=="permission"))return[3,4];c.label=1;case 1:c.trys.push([1,3,,4]);return[4,cameraPreview.openAppSettings()];case 2:c.sent();this.permissionAlertVisible=false;return[3,4];case 3:a=c.sent();this.closePermissionAlert(e);return[3,4];case 4:return[2]}}))}))};e.prototype.closePermissionAlert=function(e){e.stopPropagation();this.permissionAlertVisible=false;this.ctyDismiss.emit()};e.prototype.render=function(){var e=this;var t=this,a=t.title,c=t.closeIcon,i=t.flash,r=t.flipText,n=t.flashText,o=t.ratioText,s=t.ratios,l=t.ratioIndex,f=t.zoomIndex,m=t.zooms,d=t.mode,u=t.singleText,y=t.multipleText,b=t.currentPhotoMode,x=t.confirmIcon,p=t.confirmText,g=t.deleteIcon,v=t.pictures,_=t.showImageViewer,w=t.imageViewerIndex,k=t.touchZoom,z=t.currentZoom;return h(Host,{key:"249d6c9269af0bb404fa13c2679db953580196be",class:"cty-camera",onClick:function(e){return e.stopPropagation()}},h("cty-nav-bar",{key:"3ddc96ed9540f67485013bd1d52cf593f7a159ec",title:a,type:"clear"},h("slot",{key:"c3124d840af6803fe87669dc1da346b5a51d6dc1",name:"header-start",slot:"start"},!!c&&h("ion-button",{key:"48ebfe61e98a586fb127feb9e57e556108665126",class:"cty-camera__close",onClick:function(){return e.close()}},h("cty-icon",{key:"8da9e811d18687d6c3c3fd19f3b6d96db3b4d992",class:"cty-camera__close-icon",name:c})))),h("div",{key:"918f5390b8d846231a1fbd3550858114efb3797f",class:"cty-camera-main",onTouchStart:function(t){return e.touchstart(t)},onTouchMove:function(t){return e.touchmove(t)},onTouchEnd:function(t){return e.touchend(t)}},h("div",{key:"4d872387a4bb06d4d5030c181c6a67a9ef19f5aa",class:"cty-camera-widgets",part:"widgets"},!!r&&h("button",{key:"6de4076ab5b8ee8a31a63305fc4fd4c954e87291",class:"cty-button-native cty-camera-widget",part:"widget",onClick:function(){return e.flipCamera()}},h("cty-icon",{key:"cf2cd7ccbf12a6b972371389045aa7360a7e361c",class:"cty-camera-widget__icon",name:"cty-flip"}),!!r&&h("span",{key:"63816718efe322900dd80192a3c96e1dde0f56bf",class:"cty-camera-widget__text"},r)),!!n&&h("button",{key:"71f482e92876e408cfe4391c92c79789d83ff12b",class:"cty-button-native cty-camera-widget",part:"widget",onClick:function(){return e.toggleFlash()}},h("cty-icon",{key:"70a2838d229df2418807329013cf2db86c8b2886",class:"cty-camera-widget__icon",name:i?"cty-flash-on":"cty-flash-off"}),!!n&&h("span",{key:"dc6dcb389cde04abe9e94824fc7ab23d7cbd49c3",class:"cty-camera-widget__text"},n)),!!o&&h("button",{key:"13fd40b68adeefca52a5775b2fc86bd0602728c7",class:"cty-button-native cty-camera-widget",part:"ratio",onClick:function(){return e.ratioChange()}},h("span",{key:"e971f50bb4a923dfb119497d530890dc2a2f4cc2",class:"cty-camera-widget__ratio flex-center"},s[l]),!!o&&h("span",{key:"c13601a6c3866a72120a9b441d971c5134e95b26",class:"cty-camera-widget__text"},o)))),h("div",{key:"b82e91f54f7416c8f8ba0bbc99ad034b7d90d201",class:"cty-camera-controls safe-area-bottom-padding"},d=="both"&&v.length<=0&&h("div",{key:"da4867ad484906fb92bb0b9840ae05cab7f6017c",class:"cty-camera-controls__mode flex-center",part:"mode"},h("button",{key:"8932fc465360764b3d19c2ba0f9afa26df747248",class:{"cty-button-native cty-camera-controls__mode-button":true,"cty-camera-controls__mode-button__active":b==="single"},onClick:function(){return e.currentPhotoMode="single"}},u),h("button",{key:"a70dd98026cb8125f04841f3f82ae83bffedea17",class:{"cty-button-native cty-camera-controls__mode-button":true,"cty-camera-controls__mode-button__active":b==="multiple"},onClick:function(){return e.currentPhotoMode="multiple"}},y)),h("slot",{key:"706e3c7c60be9bea7a887743981e6c0c83d867a1",name:"zooms"},!k&&m.length>0&&h("div",{key:"dd6fe65fe090190eb2f1f0b678ebfa84f8bbbe31",class:"cty-camera-controls__zooms flex-center",part:"zooms"},m.map((function(t,a){return h("div",{class:{"cty-camera-controls__zoom-item flex-center":true,"cty-camera-controls__zoom-item__active":f===a},onClick:function(){return e.setZoom(a)}},h("span",{class:"cty-camera-controls__zoom-text flex-center"},t,"X"))}))),k&&h("div",{key:"9f0a68f5c87b36f50807a1ddce3fd7d495f5b0f7",class:"cty-camera-controls__zooms flex-center",part:"zooms"},h("div",{key:"2b1f97c6fbe953d71779f536d408d8a878872b1c",class:{"cty-camera-controls__zoom-item flex-center cty-camera-controls__zoom-item__active":true},onClick:function(){return e.resetZoom()}},h("span",{key:"2e16a3df094da8fcfe0b3758732a48bc67e00797",class:"cty-camera-controls__zoom-text flex-center"},z,"X")))),h("div",{key:"06a01b4fcb96b0bd33bde8ed91fc2b436e406791",class:"cty-camera-controls__main flex-center"},h("div",{key:"c748dab6ff814deab00d7f0ff8e2b9ae439acc82",class:"cty-camera-controls__main-left flex-center"}),h("div",{key:"ae6105b6f28bd8be992ebf164987806a5cf52e9c",class:"cty-camera-controls__take-photo flex-center"},h("button",{key:"1bbe3c2225a533fd7f4b9de9b7778c748c4f5a03",class:"cty-button-native cty-camera-controls__take-photo-button",part:"take-photo",onClick:function(){return e.takePhoto()}})),h("div",{key:"d8b0277f2daf2c6085edd86c18d220a7c24e1e37",class:"cty-camera-controls__main-confirm flex-center"},b!=="single"&&v.length>0&&!!g&&h("button",{key:"cc83aa1aab767ea7a3aef3b44194b4891836c09a",class:"cty-camera-controls__main-delete cty-button-native flex-column-center",onClick:function(){return e.deleteLastPicture()}},h("cty-icon",{key:"5b2a06c3819fa158b12769b4cea08f7df6cecff2",class:"cty-camera-controls__main-delete-icon",name:g})),b!=="single"&&v.length>0&&h("button",{key:"09642c94b869090cd1381b75a949013623558fb6",class:"cty-button-native flex-column-center",onClick:function(){return e.confirm()}},h("cty-icon",{key:"09e36ce96317e298f0a54ce6c1d76009a4ad4b95",class:"cty-camera-controls__main-confirm-icon",name:x}),p&&h("span",{key:"9d24bf57e4c32abbbfb95671c1191f7d85adfce4",class:"cty-camera-controls__main-confirm-text"},p)))),h("slot",{key:"5530ce7f1411007acfd28326b53b5caa52c52376",name:"images"},h("div",{key:"2a9366f14ff5878bb704703d9fd65a4549c002fb",class:"cty-camera-controls__images flex-align-center"},b!=="single"&&v.map((function(t,a){return h("div",{class:"cty-camera-controls__image",onClick:function(){return e.toImageViewer(a)}},h("img",{class:"cty-camera-controls__image-img",src:t.thumbnail||t.url}),h("button",{class:"cty-button-native",onClick:function(t){return e.deletePicture(t,a)}},h("cty-icon",{class:"cty-camera-controls__image-delete",name:closeOutline})))}))))),_&&h("cty-image-viewer",{key:"5c3f82c1f25c434e79c2df83f657c25cc42f0ffc",images:v.map((function(e){return e.url})),initialSlide:w,overlayIndex:100,backdropDismiss:false,closeable:false,onCtyDismiss:function(t){return e.closeImageViewer(t)}},b!=="multiple"&&h("div",{key:"2c0753cab107695962bbdd55ab9b334e91c361a2",class:"cty-camera-viewer__single flex-center-between",slot:"pager"},h("button",{key:"3cf7393d965245e4b7072afe50412c150840cec3",class:"cty-camera-viewer__single-close cty-button-native",onClick:function(t){return e.closeSingleImageViewer(t)}},h("cty-icon",{key:"db1b6d35ff40650a00903d37d03adf9c4e7ce311",name:"cty-close2"})),h("button",{key:"25df5828eafcc1191e826445e0b20e41eec869bf",class:"cty-camera-viewer__single-confirm cty-button-native",onClick:function(){return e.confirm()}},h("cty-icon",{key:"e96ba7b2413df359b4ab6ea184250edbf3618d2a",name:"cty-tick"}))),b!=="multiple"&&h("i",{key:"8a167eb7c089ede4aeff07e73cd14424a0ccca55",slot:"close"})),this.permissionAlertVisible&&h("cty-permission-alert",{key:"3fb0cd60cb246d94f12a6adff586087071075ea2",title:this.permissionAlertTitle,content:this.permissionAlertContent,buttons:this.permissionAlertbuttons,onCtyDismiss:function(t){return e.closePermissionAlert(t)},onCtyTap:function(t){return e.toOpenAppSetting(t)}}),h("ion-toast",{key:"ac0224081e8ce22eaebfd7224391cf1957c2ff47","is-open":this.isToastOpen,message:this.toastContent,duration:2e3,position:"middle"}))};Object.defineProperty(e.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});return e}();Camera.style=cameraCss;var cropImageCss="*{-webkit-box-sizing:border-box;box-sizing:border-box}p,h1,h2,h3,h4,h5,h6{margin:0;padding:0}.flex{display:-ms-flexbox;display:flex}.flex-wrap{display:-ms-flexbox;display:flex;-ms-flex-flow:wrap;flex-flow:wrap}.flex-align-start{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.flex-align-center{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.flex-align-end{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end}.flex-justify-start{display:-ms-flexbox;display:flex;-ms-flex-pack:start;justify-content:flex-start}.flex-justify-center{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.flex-justify-end{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end}.flex-align-end-start{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end;-ms-flex-pack:start;justify-content:flex-start}.flex-align-end-center{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end;-ms-flex-pack:center;justify-content:center}.flex-align-end-end{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end;-ms-flex-pack:end;justify-content:flex-end}.flex-center{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.flex-center-justify-end{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}.flex-between{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.flex-center-between{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.flex-column{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column}.flex-column-align-center{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-align:center;align-items:center}.flex-column-justify-center{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:center;justify-content:center}.flex-column-center{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.flex-column-between{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:justify;justify-content:space-between}.flex-column-center-between{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.plt-hybrid .safe-area-bottom-border{-webkit-box-sizing:content-box;box-sizing:content-box;border-bottom:var(--ion-safe-area-bottom, 0) solid var(--cty-color-white)}.plt-hybrid .safe-area-bottom-border-color{-webkit-box-sizing:content-box;box-sizing:content-box;border-bottom:var(--ion-safe-area-bottom, 0) solid currentColor}.plt-hybrid .safe-area-bottom-padding{padding-bottom:var(--ion-safe-area-bottom, 0)}.cty-button-native{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin:0;padding:0;background:transparent;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;line-height:1;border:0;outline:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0;-webkit-box-shadow:none;box-shadow:none;cursor:pointer}:host{--cty-crop-image-clip-width:100vw;--cty-crop-image-clip-height:100vw;--cty-crop-image-clip-background:var(--cty-overlay-color);--cty-crop-image-clip-border:1px solid #767676;--cty-crop-image-buttons-padding:12px 0;--cty-crop-image-button-padding:0 12px;--cty-crop-image-button-color:var(--cty-color-white);--cty-crop-image-button-active-color:var(--cty-color-white);--cty-crop-image-button-size:var(--cty-font-size-base);--cty-crop-image-button-line-height:30px;--cty-crop-image-button-weight:400;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;position:relative;width:100vw;height:100vh;background:var(--cty-color-black)}.cty-crop-image__wrapper{position:absolute;width:100%;left:50%;top:50%;-webkit-transform:translate(-50%, -50%) scale(1);transform:translate(-50%, -50%) scale(1)}.cty-crop-image__image{display:block;width:100%;pointer-events:none}.cty-crop-image__clip{position:relative;width:var(--cty-crop-image-clip-width);max-width:var(--cty-crop-image-width);height:var(--cty-crop-image-clip-height);border:var(--cty-crop-image-clip-border);-webkit-box-shadow:0 0 0 1000px var(--cty-crop-image-clip-background);box-shadow:0 0 0 1000px var(--cty-crop-image-clip-background)}.cty-crop-image__buttons{position:absolute;left:0;right:0;bottom:0;background-color:rgba(19, 19, 19, 0.7);padding:var(--cty-crop-image-buttons-padding)}.cty-crop-image__button{padding:var(--cty-crop-image-button-padding);font-size:var(--cty-crop-image-button-size);color:var(--cty-crop-image-button-color);line-height:var(--cty-crop-image-button-line-height);font-weight:var(--cty-crop-image-button-weight)}.cty-crop-image__button+.cty-crop-image__button{color:var(--cty-crop-image-button-active-color)}";var CropImage=function(){function e(e){registerInstance(this,e);this.ctyCancel=createEvent(this,"ctyCancel",7);this.ctyConfirm=createEvent(this,"ctyConfirm",7);this.url="";this.cancelText="取消";this.confirmText="选取";this.imageWidth=750;this.imageBackground="";this.quality=1;this.suffix="jpeg";this.maxScale=2;this.minScale=1;this._startX=0;this._startY=0;this._distance=0;this._scale=1}e.prototype.doTouchStart=function(e){var t=this;var a,c,i,r,n;try{e.preventDefault();e.stopPropagation()}catch(e){}this.imageEl.style.transition="none";if(e.type==="mousedown"||((a=e===null||e===void 0?void 0:e.targetTouches)===null||a===void 0?void 0:a.length)==1){var o=getEventPageCoords(e),s=o.x,l=o.y;this._startX=s;this._startY=l;if(e.type==="mousedown"){this.el.onmousemove=function(e){t.doTouchMove(e)};this.el.onmouseup=function(){t.doTouchEnd();t.el.onmousemove=null;t.el.onmouseup=null}}}else{var f=((c=e===null||e===void 0?void 0:e.targetTouches[1])===null||c===void 0?void 0:c.clientX)-((i=e===null||e===void 0?void 0:e.targetTouches[0])===null||i===void 0?void 0:i.clientX);var m=((r=e===null||e===void 0?void 0:e.targetTouches[1])===null||r===void 0?void 0:r.clientY)-((n=e===null||e===void 0?void 0:e.targetTouches[0])===null||n===void 0?void 0:n.clientY);this._distance=Math.sqrt(f*f+m*m)}};e.prototype.doTouchMove=function(e){var t;try{e.preventDefault();e.stopPropagation()}catch(e){}if(e.type==="mousemove"||((t=e===null||e===void 0?void 0:e.targetTouches)===null||t===void 0?void 0:t.length)==1){var a=getEventPageCoords(e),c=a.x,i=a.y;var r=c-this._startX;var n=i-this._startY;this._startX=c;this._startY=i;var o=this.imageEl;var s=getElementRect(o);var l=getElementRect(this.clipEl);var f=1;var m=1;if(s.x>l.x){f=10/Math.ceil(s.x-l.x)}else if(s.right<l.right){f=10/Math.ceil(l.right-s.right)}f=Math.min(1,f);if(s.y>l.y){m=10/Math.ceil(s.y-l.y)}else if(s.bottom<l.bottom){m=10/Math.ceil(l.bottom-s.bottom)}m=Math.min(1,m);var d=o.offsetLeft+r*f;var h=o.offsetTop+n*m;this.imageEl.style.left=d+"px";this.imageEl.style.top=h+"px"}else{var u=e.touches[1].clientX-e.touches[0].clientX;var y=e.touches[1].clientY-e.touches[0].clientY;var b=Math.sqrt(u*u+y*y);var x=b-this._distance;var p=this._scale+.01*x;p=clamp(p,this.minScale/2,this.maxScale+1);this.imageEl.style.transform="translate(-50%,-50%) scale("+p+")";this._distance=b;this._scale=p}};e.prototype.doTouchEnd=function(){var e=this.clipEl;var t=this.el;var a=this.imageEl;var c=this.clipEl.getBoundingClientRect();if(this._scale<this.minScale){this._scale=this.minScale}else if(this._scale>this.maxScale){this._scale=this.maxScale}this.imageEl.style.transform="translate(-50%,-50%) scale("+this._scale+")";var i=getElementRect(a);var r=a.offsetLeft;var n=a.offsetTop;if(i.x>c.x){r=c.x+i.width/2}else if(i.right<c.right){r=c.right-i.width/2}if(i.y>c.y){n=c.y+i.height/2}else if(i.bottom<c.bottom){n=c.bottom-i.height/2}this.imageEl.style.transition=".2s";this.imageEl.style.left=r+"px";if(e.offsetHeight>i.height){n=t.offsetHeight/2}this.imageEl.style.top=n+"px"};e.prototype._doCancel=function(e){try{e.preventDefault();e.stopPropagation()}catch(e){}this.ctyCancel.emit()};e.prototype._doConfirm=function(e){return __awaiter(this,void 0,void 0,(function(){var t;return __generator(this,(function(a){switch(a.label){case 0:try{e.preventDefault();e.stopPropagation()}catch(e){}return[4,this.getCanvasImg()];case 1:t=a.sent();this.ctyConfirm.emit(t);return[2]}}))}))};e.prototype.getCanvasImg=function(){var e=this;return new Promise((function(t,a){try{var c=e.clipEl;var i=document.createElement("canvas");var r=i.getContext("2d");var n=e.imageWidth*c.clientHeight/c.clientWidth;var o=e.imageEl.children[0];i.width=e.imageWidth;i.height=e.imageWidth*c.clientHeight/c.clientWidth;r.clearRect(0,0,e.imageWidth,n);if(e.imageBackground){r.beginPath();r.fillStyle=e.imageBackground;r.fillRect(0,0,e.imageWidth,n)}r.beginPath();var s=e.imageEl.getBoundingClientRect();var l=c.getBoundingClientRect();var f=l.y-s.y;var m=l.x-s.x;var d=new Image;d.onload=function(){var a=d.width/s.width;r.drawImage(o,m*a,f*a,c.clientWidth*a,c.clientHeight*a,0,0,i.width,i.height);var n=i.toDataURL("image/".concat(e.suffix),e.quality);n=n.replace("data:image/".concat(e.suffix,";base64,"),"");n=n.replace("data:image/jgp;base64,","");n=n.replace("data:image/jpeg;base64,","");n=n.replace("data:image/jpg;base64,","");n=n.replace("data:image/png;base64,","");t({data:n,url:"data:image/".concat(e.suffix,";base64,")+n})};d.src=o.src}catch(e){a(e)}}))};e.prototype.renderButtons=function(){var e=this;if(!this.cancelText&&!this.confirmText)return null;var t=h("button",{class:"cty-crop-image__button cty-button-native",onTouchEnd:function(t){return e._doCancel(t)},onMouseUp:function(t){return e._doCancel(t)}},this.cancelText);var a=h("button",{class:"cty-crop-image__button cty-button-native",onTouchEnd:function(t){return e._doConfirm(t)},onMouseUp:function(t){return e._doConfirm(t)}},this.confirmText);return h("div",{class:"cty-crop-image__buttons flex-center-between safe-area-bottom-border-color"},this.cancelText&&t,this.confirmText&&a)};e.prototype.render=function(){var e=this;return h(Host,{key:"3805ba12b7e6f2809399b8a9f213e4a4131b081c",class:"cty-crop-image",onMouseDown:function(t){return e.doTouchStart(t)},onTouchStart:function(t){return e.doTouchStart(t)},onTouchMove:function(t){return e.doTouchMove(t)},onTouchEnd:function(){return e.doTouchEnd()}},h("slot",{key:"441105402304f96770ff61b883993c952f7ea4a9",name:"header"}),h("div",{key:"affa68ce2eacf57bff5dcbc140c1da82d59dc8a3",class:"cty-crop-image__wrapper",ref:function(t){return e.imageEl=t}},h("img",{key:"9c5dd8cafb8e14f7f0e5d6ee2cc999a139580342",src:this.url,class:"cty-crop-image__image"})),h("div",{key:"eafd9083b6728615b767dae842c8b102ad40916d",class:"cty-crop-image__clip",ref:function(t){return e.clipEl=t}}),h("slot",{key:"25cb5fb31191e0a991064164b4c5752f39b7499b",name:"clip"}),this.renderButtons(),h("slot",{key:"e60a010fea26d6fa38a380c4cb9f6c4c28c25558",name:"footer"}))};Object.defineProperty(e.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});return e}();CropImage.style=cropImageCss;export{Camera as cty_camera,CropImage as cty_crop_image};
|
|
1
|
+
import{__awaiter,__generator,__spreadArray}from"tslib";import{r as registerInstance,c as createEvent,h,a as Host,g as getElement}from"./index-DBsZD0Dk.js";import{c as cameraPreview}from"./camera-preview-Bntx5BKz.js";import{d as deviceInfo}from"./device-info-BWrjtLtW.js";import{i as imagePicker}from"./image-picker-0JHjPizE.js";import{o as closeOutline,V as backspaceOutline}from"./index-D0r4bHmZ.js";import{b as getEventPageCoords,g as getElementRect}from"./dom-CHhKFKFA.js";import{i as clamp}from"./format-DnWe30Rj.js";import"./platform-BqPoMbNS.js";import"./network-BqPNWsXF.js";import"./index-CZI7sxie.js";var cameraCss="*{-webkit-box-sizing:border-box;box-sizing:border-box}p,h1,h2,h3,h4,h5,h6{margin:0;padding:0}.flex{display:-ms-flexbox;display:flex}.flex-wrap{display:-ms-flexbox;display:flex;-ms-flex-flow:wrap;flex-flow:wrap}.flex-align-start{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.flex-align-center{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.flex-align-end{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end}.flex-justify-start{display:-ms-flexbox;display:flex;-ms-flex-pack:start;justify-content:flex-start}.flex-justify-center{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.flex-justify-end{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end}.flex-align-end-start{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end;-ms-flex-pack:start;justify-content:flex-start}.flex-align-end-center{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end;-ms-flex-pack:center;justify-content:center}.flex-align-end-end{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end;-ms-flex-pack:end;justify-content:flex-end}.flex-center{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.flex-center-justify-end{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}.flex-between{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.flex-center-between{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.flex-column{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column}.flex-column-align-center{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-align:center;align-items:center}.flex-column-justify-center{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:center;justify-content:center}.flex-column-center{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.flex-column-between{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:justify;justify-content:space-between}.flex-column-center-between{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.cty-button-native{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin:0;padding:0;background:transparent;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;line-height:1;border:0;outline:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0;-webkit-box-shadow:none;box-shadow:none;cursor:pointer}:host{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;position:fixed;left:0;top:0;z-index:20099;width:100vw !important;height:100vh !important;visibility:visible !important}.cty-camera__close[class]{margin:0;min-height:var(--cty-camera-close-min-hieght, 3.1em);--background:transparent;--background-activated:transparent;--background-focused:transparent;--background-hover:transparent;--box-shadow:none;--padding-top:var(--cty-camera-close-padding-top, 3px);--padding-bottom:var(--cty-camera-close-padding-bottom, 3px);--padding-start:var(--cty-camera-close-padding-start, 6px);--padding-end:var(--cty-camera-close-padding-end, 6px);--color:var(--cty-camera-close-color, var(--cty-text-color-white))}.cty-camera__close-icon{font-size:var(--cty-camera-close-font-size, 28px)}.cty-camera-main{-ms-flex:1;flex:1;position:relative}.cty-camera-widgets{position:absolute;top:0;right:15px}.cty-camera-widget{-ms-flex-direction:column;flex-direction:column;margin-bottom:var(--cty-camera-camera-widget-offset-y, 30px);color:var(--cty-camera-camera-widget-color, #fff)}.cty-camera-widget__icon{font-size:var(--cty-camera-camera-widget-icon-size, 20px)}.cty-camera-widget__text{margin-top:var(--cty-camera-camera-widget-text-offset-y, 5px);font-size:var(--cty-camera-camera-widget-text-size, var(--cty-font-size-extra-small))}.cty-camera-widget__ratio{width:24px;height:16px;border-radius:2px;border:1px solid var(--cty-camera-camera-widget-color, #fff);font-size:10px}.cty-camera-controls{margin-top:auto}.cty-camera-controls__mode{width:-webkit-max-content;width:-moz-max-content;width:max-content;padding:var(--cty-camera-camera-controls-mode-padding, 2px);margin:var(--cty-camera-camera-controls-mode-offset, 0 auto 15px);background:var(--cty-camera-camera-controls-mode-bg, rgba(0, 0, 0, 0.5));border-radius:var(--cty-camera-camera-controls-mode-radius, 3px);color:var(--cty-camera-camera-controls-mode-color, #fff)}.cty-camera-controls__mode-button{padding:var(--cty-camera-camera-controls-mode-button-padding, 3px 5px);border-radius:var(--cty-camera-camera-controls-mode-button-radius, 3px);font-size:var(--cty-camera-camera-controls-mode-button-font-szie, var(--cty-font-size-extra-small))}.cty-camera-controls__mode-button__active{background:var(--cty-camera-camera-controls-mode-button-active-bg, #fff);color:var(--cty-camera-camera-controls-mode-button-active-color, #000)}.cty-camera-controls__zooms{margin:var(--cty-camera-camera-controls-zooms-offset, 0 0 15px)}.cty-camera-controls__zoom-item{width:var(--cty-camera-camera-controls-zoom-active-size, 28px);height:var(--cty-camera-camera-controls-zoom-active-size, 28px);border-radius:50%}.cty-camera-controls__zoom-item:not(:last-child){margin-right:var(--cty-camera-camera-controls-zoom-offset, 10px)}.cty-camera-controls__zoom-item__active{border:var(--cty-camera-camera-controls-zoom-active-border, 1px solid #fff)}.cty-camera-controls__zoom-item__active .cty-camera-controls__zoom-text{background:var(--cty-camera-camera-controls-zoom-active-bg, transparent)}.cty-camera-controls__zoom-text{width:var(--cty-camera-camera-controls-zoom-size, 24px);height:var(--cty-camera-camera-controls-zoom-size, 24px);background:var(--cty-camera-camera-controls-zoom-bg, rgba(0, 0, 0, 0.3));border-radius:50%;color:var(--cty-camera-camera-controls-color, #fff);font-size:var(--cty-camera-camera-controls-zoom-font-size, 10px);font-weight:var(--cty-camera-camera-controls-zoom-font-weight, 600)}.cty-camera-controls__main{margin:var(--cty-camera-camera-controls-take-photo-offset, 0 0 15px)}.cty-camera-controls__take-photo{width:var(--cty-camera-camera-controls-take-photo-size, 60px);height:var(--cty-camera-camera-controls-take-photo-size, 60px);border-radius:50%;border:var(--cty-camera-camera-controls-take-photo-border, 2px solid #fff)}.cty-camera-controls__take-photo-button{width:var(--cty-camera-camera-controls-take-photo-button-size, 48px);height:var(--cty-camera-camera-controls-take-photo-button-size, 48px);border-radius:50%;background:var(--cty-camera-camera-controls-color, #fff)}.cty-camera-controls__take-photo-button:active{-webkit-transform:scale(0.9);transform:scale(0.9);-webkit-transition:-webkit-transform 0.05s cubic-bezier(0.2, 0.9, 0.4, 1.1);transition:-webkit-transform 0.05s cubic-bezier(0.2, 0.9, 0.4, 1.1);transition:transform 0.05s cubic-bezier(0.2, 0.9, 0.4, 1.1);transition:transform 0.05s cubic-bezier(0.2, 0.9, 0.4, 1.1), -webkit-transform 0.05s cubic-bezier(0.2, 0.9, 0.4, 1.1);-webkit-box-shadow:0 3px 8px rgba(0, 0, 0, 0.2);box-shadow:0 3px 8px rgba(0, 0, 0, 0.2);-webkit-filter:brightness(0.96);filter:brightness(0.96)}.cty-camera-controls__main-left,.cty-camera-controls__main-confirm{-ms-flex:1;flex:1}.cty-camera-controls__main-confirm-icon{font-size:var(--cty-camera-camera-controls-confirm-icon-size, 24px);color:var(--cty-camera-camera-controls-confirm-icon-color, var(--cty-color-danger))}.cty-camera-controls__main-confirm-text{margin-top:var(--cty-camera-camera-controls-confirm-text-offset, 5px);font-size:var(--cty-camera-camera-controls-confirm-text-size, 12px);color:var(--cty-camera-camera-controls-confirm-text-color, #fff)}.cty-camera-controls__main-delete{margin-right:var(--cty-camera-camera-controls-delete-offser, 30px)}.cty-camera-controls__main-delete-icon{font-size:var(--cty-camera-camera-controls-delete-icon-size, 20px);color:var(--cty-camera-camera-controls-delete-icon-color, #fff)}.cty-camera-controls__images{overflow-x:auto;width:100%;min-height:var(--cty-camera-camera-controls-images-min-height, 84px);padding:var(--cty-camera-camera-controls-images-padding, 0 15px);margin:var(--cty-camera-camera-controls-images-offset, 15px 0)}.cty-camera-controls__image{-ms-flex:none;flex:none;position:relative;width:var(--cty-camera-camera-controls-image-size, 54px);height:var(--cty-camera-camera-controls-image-size, 54px)}.cty-camera-controls__image:not(:last-child){margin-right:var(--cty-camera-camera-controls-image-offset, 10px)}.cty-camera-controls__image-img{display:block;width:100%;height:100%;border-radius:var(--cty-camera-camera-controls-image-border-radius, 8px);-o-object-fit:var(--cty-camera-camera-controls-image-object-fit, cover);object-fit:var(--cty-camera-camera-controls-image-object-fit, cover)}.cty-camera-controls__image-delete{position:absolute;top:0;right:0;width:var(--cty-camera-camera-controls-image-delete-size, 20px);height:var(--cty-camera-camera-controls-image-delete-size, 20px);background:var(--cty-camera-camera-controls-image-delete-bg, rgba(0, 0, 0, 0.5));border-radius:var(--cty-camera-camera-controls-image-delete-border-radius, 0 8px);color:var(--cty-camera-camera-controls-image-delete-color, #fff);font-size:var(--cty-camera-camera-controls-image-delete-font-size, 18px)}.cty-camera-viewer__single{min-height:var(--cty-camera-viewer-single-min-height, 44px);padding:var(--cty-camera-viewer-single-padding, 0 15px)}.cty-camera-viewer__single-close,.cty-camera-viewer__single-confirm{font-size:var(--cty-image-viewer-single-close-size, 20px);color:var(--cty-image-viewer-single-close-color, #fff)}";var Camera=function(){function e(e){registerInstance(this,e);this.ctyDismiss=createEvent(this,"ctyDismiss",7);this.ctyTakePhoto=createEvent(this,"ctyTakePhoto",7);this.ctyConfirm=createEvent(this,"ctyConfirm",7);this.safeArea=44;this.title="";this.options={};this.closeIcon=closeOutline;this.deleteIcon=backspaceOutline;this.width=0;this.height=0;this.quality=85;this.includeThumb=true;this.thumbWidth=120;this.file=true;this.max=9;this.flipText="翻转";this.flashText="闪光";this.ratioText="比例";this.confirmIcon="cty-confirm";this.confirmText="确定";this.mode="both";this.singleText="单拍";this.multipleText="连拍";this.ratios=["9:16","3:4","1:1","16:9","full"];this.zooms=[1,2,5,10];this.zoomSteps=20;this.touchZoom=true;this.touchZoomProp=.01;this.permissionAlertTitle="需要申请开启相机权限";this.permissionAlertContent="需要开启相机权限,用于拍照。我们承诺仅在功能使用时调用摄像头。";this.ratioIndex=0;this.flash=false;this.zoomIndex=0;this.pictures=[];this.showImageViewer=false;this.imageViewerIndex=0;this.currentPhotoMode="multiple";this.currentZoom=1;this.hasPermission=false;this.permissionAlertVisible=false;this.isToastOpen=false;this.toastContent="";this.startZoom=1;this.SCREEN_WIDTH=window.screen.width;this.SCREEN_HEIGHT=window.screen.height;this.originalBodyBackground="";this.isTakingPhoto=false;this.distance=0;this.startCameraZoom=0}e.prototype.connectedCallback=function(){if(this.mode==="single"){this.currentPhotoMode="single"}var e=window.document.querySelector("body");e.style.visibility="hidden";this.originalBodyBackground=window.getComputedStyle(e).background;e.style.background="transparent";this.initCamera()};e.prototype.disconnectedCallback=function(){cameraPreview.stopCamera();var e=window.document.querySelector("body");e.style.visibility="visible";e.style.background=this.originalBodyBackground};e.prototype.requestPermission=function(){return __awaiter(this,void 0,void 0,(function(){var e,t,a,c,i;return __generator(this,(function(r){switch(r.label){case 0:r.trys.push([0,2,,3]);e=this;return[4,cameraPreview.hasPermission()];case 1:e.hasPermission=r.sent();return[3,3];case 2:t=r.sent();this.hasPermission=false;return[3,3];case 3:if(!!this.hasPermission)return[3,7];r.label=4;case 4:r.trys.push([4,6,,7]);return[4,cameraPreview.requestPermission()];case 5:r.sent();this.hasPermission=true;return[3,7];case 6:a=r.sent();c=a.code,i=a.message;if(c=="PERMISSION_DENIED_NEED_SETTINGS"){this.permissionAlertVisible=true}else{if(c!="PERMISSION_DENIED_FIRST_TIME"&&i){this.isToastOpen=true;this.toastContent=i}this.ctyDismiss.emit()}return[3,7];case 7:return[2]}}))}))};e.prototype.initCamera=function(){return __awaiter(this,void 0,void 0,(function(){var e;var t=this;return __generator(this,(function(a){switch(a.label){case 0:return[4,this.requestPermission()];case 1:a.sent();if(!this.hasPermission){!this.permissionAlertVisible&&this.ctyDismiss.emit();return[2]}e=this.getCameraHeight();cameraPreview.startCamera(Object.assign(Object.assign({y:this.safeArea,camera:"back",backgroundColor:"#000000"},this.options),{x:0,height:e,toBack:true,tapPhoto:false,tapFocus:true,enableAutoSettings:false,storeToFile:this.file})).catch((function(e){var a=e.code;if(a=="PERMISSION_DENIED_NEED_SETTINGS"){t.permissionAlertVisible=true}}));return[2]}}))}))};e.prototype.close=function(){this.ctyDismiss.emit()};e.prototype.flipCamera=function(){return cameraPreview.switchCamera()};e.prototype.toggleFlash=function(){this.flash=!this.flash;if(!this.flash){return this.flashOff()}return this.flashOn()};e.prototype.flashOff=function(){return cameraPreview.setFlashMode("off")};e.prototype.flashOn=function(){return cameraPreview.setFlashMode("torch")};e.prototype.ratioChange=function(){var e=this,t=e.ratios,a=e.ratioIndex,c=e.SCREEN_WIDTH;var i=t[a];this.ratioIndex++;if(this.ratioIndex>=t.length){this.ratioIndex=0}var r=t[this.ratioIndex];if(!r.includes(":")||!i.includes(":")){cameraPreview.setPreviewPosition(0,!i.includes(":")?this.safeArea:0)}var n=this.getCameraHeight();return cameraPreview.setPreviewSize({width:c,height:n})};e.prototype.setZoom=function(e){return __awaiter(this,void 0,void 0,(function(){var t,a,c,i;return __generator(this,(function(r){switch(r.label){case 0:t=this.zooms;this.zoomIndex=e;return[4,cameraPreview.getMaxZoom()];case 1:a=r.sent();c=(a+1)/this.zoomSteps;i=c*t[e]-1;if(deviceInfo.isIos){i=t[e]}return[2,cameraPreview.setZoom(e===0?0:Math.min(i,a))]}}))}))};e.prototype.takePhoto=function(){return __awaiter(this,void 0,void 0,(function(){var e,t,a,c,i,r,n,o,s,l,f,m,d,h;return __generator(this,(function(u){switch(u.label){case 0:e=this,t=e.quality,a=e.width,c=e.height,i=e.includeThumb,r=e.thumbWidth,n=e.file,o=e.max,s=e.pictures;if(o>0&&s.length>=o||this.currentPhotoMode==="single"&&this.pictures.length>0||this.isTakingPhoto){return[2]}this.isTakingPhoto=true;return[4,cameraPreview.takePicture({width:a,height:c,quality:t,includeThumb:i,thumbWidth:r})];case 1:l=u.sent();f="";m="";if(l&&typeof l==="object"){f=l.image;m=l.thumbnail}else{f=l}return[4,imagePicker.formatPictureResult(n,f)];case 2:d=u.sent();return[4,imagePicker.formatPictureResult(n,m)];case 3:h=u.sent();this.pictures=__spreadArray(__spreadArray([],s,true),[Object.assign(Object.assign({},d),{thumbnail:h.url})],false);this.ctyTakePhoto.emit(d);this.isTakingPhoto=false;if(this.currentPhotoMode==="single"){this.toImageViewer(0)}return[2,d]}}))}))};e.prototype.deletePicture=function(e,t){e.stopPropagation();var a=__spreadArray([],this.pictures,true);a.splice(t,1);this.pictures=a};e.prototype.getCameraHeight=function(){var e=this,t=e.ratios,a=e.ratioIndex,c=e.SCREEN_WIDTH,i=e.SCREEN_HEIGHT;var r=t[a];if(!r.includes(":")){return i}var n=r.split(":"),o=n[0],s=n[1];return Math.min(i,+s*c/+o)};e.prototype.toImageViewer=function(e){this.imageViewerIndex=e;this.showImageViewer=true};e.prototype.closeImageViewer=function(e){e.stopPropagation();this.showImageViewer=false};e.prototype.closeSingleImageViewer=function(e){this.pictures=[];this.closeImageViewer(e)};e.prototype.confirm=function(){this.ctyConfirm.emit(this.pictures.map((function(e){var t=e.url,a=e.data;return{url:t,data:a}})))};e.prototype.deleteLastPicture=function(){var e=__spreadArray([],this.pictures,true);e.pop();this.pictures=e};e.prototype.resetZoom=function(){this.currentZoom=1;this.setZoom(0)};e.prototype.touchstart=function(e){return __awaiter(this,void 0,void 0,(function(){var t,a,c;return __generator(this,(function(i){switch(i.label){case 0:e.stopPropagation();if(!(this.touchZoom&&e.touches.length==2))return[3,2];t=e.touches[1].clientX-e.touches[0].clientX;a=e.touches[1].clientY-e.touches[0].clientY;this.distance=Math.sqrt(t*t+a*a);c=this;return[4,cameraPreview.getZoom()];case 1:c.startCameraZoom=i.sent();this.startZoom=this.currentZoom;i.label=2;case 2:return[2]}}))}))};e.prototype.touchmove=function(e){e.stopPropagation();if(this.touchZoom&&e.touches.length==2){var t=e.touches[1].clientX-e.touches[0].clientX;var a=e.touches[1].clientY-e.touches[0].clientY;var c=Math.sqrt(t*t+a*a);var i=c-this.distance;var r=this.touchZoomProp*i;this.updateZoom(r)}};e.prototype.touchend=function(e){e.stopPropagation()};e.prototype.updateZoom=function(e){return __awaiter(this,void 0,void 0,(function(){var t,a,c,i,r,n;return __generator(this,(function(o){switch(o.label){case 0:t=this,a=t.startCameraZoom,c=t.startZoom;return[4,cameraPreview.getMaxZoom()];case 1:i=o.sent();r=(i+1)/this.zoomSteps;n=this.zooms.slice(-1)[0]||10;this.currentZoom=Math.floor((c+e)*10)/10;this.currentZoom=Math.max(this.currentZoom,1);this.currentZoom=Math.min(this.currentZoom,n);if(deviceInfo.isIos){i=n}else{i=Math.min(i,n*r);e=r*e}cameraPreview.setZoom(Math.min(a+e,i));return[2]}}))}))};e.prototype.toOpenAppSetting=function(e){return __awaiter(this,void 0,void 0,(function(){var t,a;return __generator(this,(function(c){switch(c.label){case 0:t=e.detail.item;if(!(t.action=="permission"))return[3,4];c.label=1;case 1:c.trys.push([1,3,,4]);return[4,cameraPreview.openAppSettings()];case 2:c.sent();this.permissionAlertVisible=false;this.initCamera();return[3,4];case 3:a=c.sent();this.closePermissionAlert(e);return[3,4];case 4:return[2]}}))}))};e.prototype.closePermissionAlert=function(e){e.stopPropagation();this.permissionAlertVisible=false;this.ctyDismiss.emit()};e.prototype.render=function(){var e=this;var t=this,a=t.title,c=t.closeIcon,i=t.flash,r=t.flipText,n=t.flashText,o=t.ratioText,s=t.ratios,l=t.ratioIndex,f=t.zoomIndex,m=t.zooms,d=t.mode,u=t.singleText,y=t.multipleText,x=t.currentPhotoMode,b=t.confirmIcon,p=t.confirmText,g=t.deleteIcon,v=t.pictures,_=t.showImageViewer,w=t.imageViewerIndex,k=t.touchZoom,z=t.currentZoom;return h(Host,{key:"87e30447a2f8f3d4bac90a5997486e525b0d86e1",class:"cty-camera",onClick:function(e){return e.stopPropagation()}},h("cty-nav-bar",{key:"f887682109a7b57792b40a0c3c0e5c43c3afbb02",title:a,type:"clear"},h("slot",{key:"d24bb63c23f0d38cc5c3537a846f398a325c33a3",name:"header-start",slot:"start"},!!c&&h("ion-button",{key:"012ee12b016e8986a2177b8c0547d4e244c679ee",class:"cty-camera__close",onClick:function(){return e.close()}},h("cty-icon",{key:"384c34680e0d51bf8348c5547342d262e047d1df",class:"cty-camera__close-icon",name:c})))),h("div",{key:"98125d2cb9e431fa398a5d137d996d549af63174",class:"cty-camera-main",onTouchStart:function(t){return e.touchstart(t)},onTouchMove:function(t){return e.touchmove(t)},onTouchEnd:function(t){return e.touchend(t)}},h("div",{key:"b8793b12764a555aa271534721832149654678b3",class:"cty-camera-widgets",part:"widgets"},!!r&&h("button",{key:"eb561af5de2dfe02360b5b0c081ac16d42372c4d",class:"cty-button-native cty-camera-widget",part:"widget",onClick:function(){return e.flipCamera()}},h("cty-icon",{key:"3a1497d2620db2bae124c03ec11e2ccd720cbf56",class:"cty-camera-widget__icon",name:"cty-flip"}),!!r&&h("span",{key:"bec3462b8f19889c2b905783fded221830f31f83",class:"cty-camera-widget__text"},r)),!!n&&h("button",{key:"d6cf0bedde3a1c909c24d5b89c7f526bbe433490",class:"cty-button-native cty-camera-widget",part:"widget",onClick:function(){return e.toggleFlash()}},h("cty-icon",{key:"2756a11d15f5d00390632e76afb787edc9544a83",class:"cty-camera-widget__icon",name:i?"cty-flash-on":"cty-flash-off"}),!!n&&h("span",{key:"9db63417dbd15b3ba719ff930f78cc44ac8c9ab0",class:"cty-camera-widget__text"},n)),!!o&&h("button",{key:"128f64704c198af7c5087361f820af40c92d5136",class:"cty-button-native cty-camera-widget",part:"ratio",onClick:function(){return e.ratioChange()}},h("span",{key:"e9ee33ffe7a3b560538945b6d7d493e46d278353",class:"cty-camera-widget__ratio flex-center"},s[l]),!!o&&h("span",{key:"b9f7018443944c94dc679bdcbd0247138f377680",class:"cty-camera-widget__text"},o)))),h("div",{key:"c19ee27e399fc263add8ef85a3d59b5492d25e4e",class:"cty-camera-controls safe-area-bottom-padding"},d=="both"&&v.length<=0&&h("div",{key:"a89f4f51757cf84994596a30344f883e873f621b",class:"cty-camera-controls__mode flex-center",part:"mode"},h("button",{key:"58f7beb5e4e36e0d16be5ee6a72bc7cfe843a3f3",class:{"cty-button-native cty-camera-controls__mode-button":true,"cty-camera-controls__mode-button__active":x==="single"},onClick:function(){return e.currentPhotoMode="single"}},u),h("button",{key:"09797fed9e2d0e4214312cd71504e8c42ce5aada",class:{"cty-button-native cty-camera-controls__mode-button":true,"cty-camera-controls__mode-button__active":x==="multiple"},onClick:function(){return e.currentPhotoMode="multiple"}},y)),h("slot",{key:"a93b960673912c178b703d01028b927701390f4b",name:"zooms"},!k&&m.length>0&&h("div",{key:"92311e8a921f3d898fe9dde4f0354018154e62a6",class:"cty-camera-controls__zooms flex-center",part:"zooms"},m.map((function(t,a){return h("div",{class:{"cty-camera-controls__zoom-item flex-center":true,"cty-camera-controls__zoom-item__active":f===a},onClick:function(){return e.setZoom(a)}},h("span",{class:"cty-camera-controls__zoom-text flex-center"},t,"X"))}))),k&&h("div",{key:"71840ea2f3c1efd39e0a483cc4176e2084c436b2",class:"cty-camera-controls__zooms flex-center",part:"zooms"},h("div",{key:"8f21de0ab8c632262136fa2deae33541ff33205c",class:{"cty-camera-controls__zoom-item flex-center cty-camera-controls__zoom-item__active":true},onClick:function(){return e.resetZoom()}},h("span",{key:"dd5c8774153e8d4afee69cfd619aeb58b7aaeafb",class:"cty-camera-controls__zoom-text flex-center"},z,"X")))),h("div",{key:"e77fe2fe8d383a0b0db0eabc953a06e14927372d",class:"cty-camera-controls__main flex-center"},h("div",{key:"0b2b0ed9a73e1d97b65f33db00b645eecd02c855",class:"cty-camera-controls__main-left flex-center"}),h("div",{key:"c82c3e5738c34465e0c881c652d03e207f1c4378",class:"cty-camera-controls__take-photo flex-center"},h("button",{key:"6eb38e93d6435a566d215d1e020caf9651d017b9",class:"cty-button-native cty-camera-controls__take-photo-button",part:"take-photo",onClick:function(){return e.takePhoto()}})),h("div",{key:"f7162a2065e1bafe8e5ee3fb5b7f9956d2f47bca",class:"cty-camera-controls__main-confirm flex-center"},x!=="single"&&v.length>0&&!!g&&h("button",{key:"406107a0fe9d3b64bf25b9decfd04442731b6e94",class:"cty-camera-controls__main-delete cty-button-native flex-column-center",onClick:function(){return e.deleteLastPicture()}},h("cty-icon",{key:"4fe35fa4aa7d56cc313ae1529e48c7fe9cdddb67",class:"cty-camera-controls__main-delete-icon",name:g})),x!=="single"&&v.length>0&&h("button",{key:"21db9978e8e95983ecdbb1ca644bfa5bbd5250b3",class:"cty-button-native flex-column-center",onClick:function(){return e.confirm()}},h("cty-icon",{key:"1299292a88b81bad67007ee04a0688c3d753cc1a",class:"cty-camera-controls__main-confirm-icon",name:b}),p&&h("span",{key:"a472a97e3a5511a43812fb7a44508151e514e4b3",class:"cty-camera-controls__main-confirm-text"},p)))),h("slot",{key:"2f928fef43a074b195de928f60ea4425f6030c3f",name:"images"},h("div",{key:"ec3dea052f155c830b328b69759447172a2f85a1",class:"cty-camera-controls__images flex-align-center"},x!=="single"&&v.map((function(t,a){return h("div",{class:"cty-camera-controls__image",onClick:function(){return e.toImageViewer(a)}},h("img",{class:"cty-camera-controls__image-img",src:t.thumbnail||t.url}),h("button",{class:"cty-button-native",onClick:function(t){return e.deletePicture(t,a)}},h("cty-icon",{class:"cty-camera-controls__image-delete",name:closeOutline})))}))))),_&&h("cty-image-viewer",{key:"41f862a4f8686499086de808c2b7d1bf3df45af3",images:v.map((function(e){return e.url})),initialSlide:w,overlayIndex:100,backdropDismiss:false,closeable:false,onCtyDismiss:function(t){return e.closeImageViewer(t)}},x!=="multiple"&&h("div",{key:"1d0432f45263db6276d5d921f928414377b513e8",class:"cty-camera-viewer__single flex-center-between",slot:"pager"},h("button",{key:"ac4919e6a40e2db191ab96b57c0ae95aa6dfcb68",class:"cty-camera-viewer__single-close cty-button-native",onClick:function(t){return e.closeSingleImageViewer(t)}},h("cty-icon",{key:"30aef1dc5108f2f617c590b99fb835d059dc1900",name:"cty-close2"})),h("button",{key:"c83ea114924d5d4e32a23a94c2a483784bdecab8",class:"cty-camera-viewer__single-confirm cty-button-native",onClick:function(){return e.confirm()}},h("cty-icon",{key:"866d451495aef92120d8876742cb02b2c32f4122",name:"cty-tick"}))),x!=="multiple"&&h("i",{key:"9070e8f341360e0d6801d56664f679d7dd18184d",slot:"close"})),this.permissionAlertVisible&&h("cty-permission-alert",{key:"30055b9ae7772684312ca90a7076545edfb476db",title:this.permissionAlertTitle,content:this.permissionAlertContent,buttons:this.permissionAlertbuttons,onCtyDismiss:function(t){return e.closePermissionAlert(t)},onCtyTap:function(t){return e.toOpenAppSetting(t)}}),h("ion-toast",{key:"3121cd6124ab8f92835655e6636d87d8d8200b2d","is-open":this.isToastOpen,message:this.toastContent,duration:2e3,position:"middle"}))};Object.defineProperty(e.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});return e}();Camera.style=cameraCss;var cropImageCss="*{-webkit-box-sizing:border-box;box-sizing:border-box}p,h1,h2,h3,h4,h5,h6{margin:0;padding:0}.flex{display:-ms-flexbox;display:flex}.flex-wrap{display:-ms-flexbox;display:flex;-ms-flex-flow:wrap;flex-flow:wrap}.flex-align-start{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.flex-align-center{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.flex-align-end{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end}.flex-justify-start{display:-ms-flexbox;display:flex;-ms-flex-pack:start;justify-content:flex-start}.flex-justify-center{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.flex-justify-end{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end}.flex-align-end-start{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end;-ms-flex-pack:start;justify-content:flex-start}.flex-align-end-center{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end;-ms-flex-pack:center;justify-content:center}.flex-align-end-end{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end;-ms-flex-pack:end;justify-content:flex-end}.flex-center{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.flex-center-justify-end{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}.flex-between{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.flex-center-between{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.flex-column{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column}.flex-column-align-center{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-align:center;align-items:center}.flex-column-justify-center{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:center;justify-content:center}.flex-column-center{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.flex-column-between{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:justify;justify-content:space-between}.flex-column-center-between{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.plt-hybrid .safe-area-bottom-border{-webkit-box-sizing:content-box;box-sizing:content-box;border-bottom:var(--ion-safe-area-bottom, 0) solid var(--cty-color-white)}.plt-hybrid .safe-area-bottom-border-color{-webkit-box-sizing:content-box;box-sizing:content-box;border-bottom:var(--ion-safe-area-bottom, 0) solid currentColor}.plt-hybrid .safe-area-bottom-padding{padding-bottom:var(--ion-safe-area-bottom, 0)}.cty-button-native{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin:0;padding:0;background:transparent;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;line-height:1;border:0;outline:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0;-webkit-box-shadow:none;box-shadow:none;cursor:pointer}:host{--cty-crop-image-clip-width:100vw;--cty-crop-image-clip-height:100vw;--cty-crop-image-clip-background:var(--cty-overlay-color);--cty-crop-image-clip-border:1px solid #767676;--cty-crop-image-buttons-padding:12px 0;--cty-crop-image-button-padding:0 12px;--cty-crop-image-button-color:var(--cty-color-white);--cty-crop-image-button-active-color:var(--cty-color-white);--cty-crop-image-button-size:var(--cty-font-size-base);--cty-crop-image-button-line-height:30px;--cty-crop-image-button-weight:400;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;position:relative;width:100vw;height:100vh;background:var(--cty-color-black)}.cty-crop-image__wrapper{position:absolute;width:100%;left:50%;top:50%;-webkit-transform:translate(-50%, -50%) scale(1);transform:translate(-50%, -50%) scale(1)}.cty-crop-image__image{display:block;width:100%;pointer-events:none}.cty-crop-image__clip{position:relative;width:var(--cty-crop-image-clip-width);max-width:var(--cty-crop-image-width);height:var(--cty-crop-image-clip-height);border:var(--cty-crop-image-clip-border);-webkit-box-shadow:0 0 0 1000px var(--cty-crop-image-clip-background);box-shadow:0 0 0 1000px var(--cty-crop-image-clip-background)}.cty-crop-image__buttons{position:absolute;left:0;right:0;bottom:0;background-color:rgba(19, 19, 19, 0.7);padding:var(--cty-crop-image-buttons-padding)}.cty-crop-image__button{padding:var(--cty-crop-image-button-padding);font-size:var(--cty-crop-image-button-size);color:var(--cty-crop-image-button-color);line-height:var(--cty-crop-image-button-line-height);font-weight:var(--cty-crop-image-button-weight)}.cty-crop-image__button+.cty-crop-image__button{color:var(--cty-crop-image-button-active-color)}";var CropImage=function(){function e(e){registerInstance(this,e);this.ctyCancel=createEvent(this,"ctyCancel",7);this.ctyConfirm=createEvent(this,"ctyConfirm",7);this.url="";this.cancelText="取消";this.confirmText="选取";this.imageWidth=750;this.imageBackground="";this.quality=1;this.suffix="jpeg";this.maxScale=2;this.minScale=1;this._startX=0;this._startY=0;this._distance=0;this._scale=1}e.prototype.doTouchStart=function(e){var t=this;var a,c,i,r,n;try{e.preventDefault();e.stopPropagation()}catch(e){}this.imageEl.style.transition="none";if(e.type==="mousedown"||((a=e===null||e===void 0?void 0:e.targetTouches)===null||a===void 0?void 0:a.length)==1){var o=getEventPageCoords(e),s=o.x,l=o.y;this._startX=s;this._startY=l;if(e.type==="mousedown"){this.el.onmousemove=function(e){t.doTouchMove(e)};this.el.onmouseup=function(){t.doTouchEnd();t.el.onmousemove=null;t.el.onmouseup=null}}}else{var f=((c=e===null||e===void 0?void 0:e.targetTouches[1])===null||c===void 0?void 0:c.clientX)-((i=e===null||e===void 0?void 0:e.targetTouches[0])===null||i===void 0?void 0:i.clientX);var m=((r=e===null||e===void 0?void 0:e.targetTouches[1])===null||r===void 0?void 0:r.clientY)-((n=e===null||e===void 0?void 0:e.targetTouches[0])===null||n===void 0?void 0:n.clientY);this._distance=Math.sqrt(f*f+m*m)}};e.prototype.doTouchMove=function(e){var t;try{e.preventDefault();e.stopPropagation()}catch(e){}if(e.type==="mousemove"||((t=e===null||e===void 0?void 0:e.targetTouches)===null||t===void 0?void 0:t.length)==1){var a=getEventPageCoords(e),c=a.x,i=a.y;var r=c-this._startX;var n=i-this._startY;this._startX=c;this._startY=i;var o=this.imageEl;var s=getElementRect(o);var l=getElementRect(this.clipEl);var f=1;var m=1;if(s.x>l.x){f=10/Math.ceil(s.x-l.x)}else if(s.right<l.right){f=10/Math.ceil(l.right-s.right)}f=Math.min(1,f);if(s.y>l.y){m=10/Math.ceil(s.y-l.y)}else if(s.bottom<l.bottom){m=10/Math.ceil(l.bottom-s.bottom)}m=Math.min(1,m);var d=o.offsetLeft+r*f;var h=o.offsetTop+n*m;this.imageEl.style.left=d+"px";this.imageEl.style.top=h+"px"}else{var u=e.touches[1].clientX-e.touches[0].clientX;var y=e.touches[1].clientY-e.touches[0].clientY;var x=Math.sqrt(u*u+y*y);var b=x-this._distance;var p=this._scale+.01*b;p=clamp(p,this.minScale/2,this.maxScale+1);this.imageEl.style.transform="translate(-50%,-50%) scale("+p+")";this._distance=x;this._scale=p}};e.prototype.doTouchEnd=function(){var e=this.clipEl;var t=this.el;var a=this.imageEl;var c=this.clipEl.getBoundingClientRect();if(this._scale<this.minScale){this._scale=this.minScale}else if(this._scale>this.maxScale){this._scale=this.maxScale}this.imageEl.style.transform="translate(-50%,-50%) scale("+this._scale+")";var i=getElementRect(a);var r=a.offsetLeft;var n=a.offsetTop;if(i.x>c.x){r=c.x+i.width/2}else if(i.right<c.right){r=c.right-i.width/2}if(i.y>c.y){n=c.y+i.height/2}else if(i.bottom<c.bottom){n=c.bottom-i.height/2}this.imageEl.style.transition=".2s";this.imageEl.style.left=r+"px";if(e.offsetHeight>i.height){n=t.offsetHeight/2}this.imageEl.style.top=n+"px"};e.prototype._doCancel=function(e){try{e.preventDefault();e.stopPropagation()}catch(e){}this.ctyCancel.emit()};e.prototype._doConfirm=function(e){return __awaiter(this,void 0,void 0,(function(){var t;return __generator(this,(function(a){switch(a.label){case 0:try{e.preventDefault();e.stopPropagation()}catch(e){}return[4,this.getCanvasImg()];case 1:t=a.sent();this.ctyConfirm.emit(t);return[2]}}))}))};e.prototype.getCanvasImg=function(){var e=this;return new Promise((function(t,a){try{var c=e.clipEl;var i=document.createElement("canvas");var r=i.getContext("2d");var n=e.imageWidth*c.clientHeight/c.clientWidth;var o=e.imageEl.children[0];i.width=e.imageWidth;i.height=e.imageWidth*c.clientHeight/c.clientWidth;r.clearRect(0,0,e.imageWidth,n);if(e.imageBackground){r.beginPath();r.fillStyle=e.imageBackground;r.fillRect(0,0,e.imageWidth,n)}r.beginPath();var s=e.imageEl.getBoundingClientRect();var l=c.getBoundingClientRect();var f=l.y-s.y;var m=l.x-s.x;var d=new Image;d.onload=function(){var a=d.width/s.width;r.drawImage(o,m*a,f*a,c.clientWidth*a,c.clientHeight*a,0,0,i.width,i.height);var n=i.toDataURL("image/".concat(e.suffix),e.quality);n=n.replace("data:image/".concat(e.suffix,";base64,"),"");n=n.replace("data:image/jgp;base64,","");n=n.replace("data:image/jpeg;base64,","");n=n.replace("data:image/jpg;base64,","");n=n.replace("data:image/png;base64,","");t({data:n,url:"data:image/".concat(e.suffix,";base64,")+n})};d.src=o.src}catch(e){a(e)}}))};e.prototype.renderButtons=function(){var e=this;if(!this.cancelText&&!this.confirmText)return null;var t=h("button",{class:"cty-crop-image__button cty-button-native",onTouchEnd:function(t){return e._doCancel(t)},onMouseUp:function(t){return e._doCancel(t)}},this.cancelText);var a=h("button",{class:"cty-crop-image__button cty-button-native",onTouchEnd:function(t){return e._doConfirm(t)},onMouseUp:function(t){return e._doConfirm(t)}},this.confirmText);return h("div",{class:"cty-crop-image__buttons flex-center-between safe-area-bottom-border-color"},this.cancelText&&t,this.confirmText&&a)};e.prototype.render=function(){var e=this;return h(Host,{key:"3805ba12b7e6f2809399b8a9f213e4a4131b081c",class:"cty-crop-image",onMouseDown:function(t){return e.doTouchStart(t)},onTouchStart:function(t){return e.doTouchStart(t)},onTouchMove:function(t){return e.doTouchMove(t)},onTouchEnd:function(){return e.doTouchEnd()}},h("slot",{key:"441105402304f96770ff61b883993c952f7ea4a9",name:"header"}),h("div",{key:"affa68ce2eacf57bff5dcbc140c1da82d59dc8a3",class:"cty-crop-image__wrapper",ref:function(t){return e.imageEl=t}},h("img",{key:"9c5dd8cafb8e14f7f0e5d6ee2cc999a139580342",src:this.url,class:"cty-crop-image__image"})),h("div",{key:"eafd9083b6728615b767dae842c8b102ad40916d",class:"cty-crop-image__clip",ref:function(t){return e.clipEl=t}}),h("slot",{key:"25cb5fb31191e0a991064164b4c5752f39b7499b",name:"clip"}),this.renderButtons(),h("slot",{key:"e60a010fea26d6fa38a380c4cb9f6c4c28c25558",name:"footer"}))};Object.defineProperty(e.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});return e}();CropImage.style=cropImageCss;export{Camera as cty_camera,CropImage as cty_crop_image};
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var __awaiter=this&&this.__awaiter||function(e,t,a,c){function i(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,n){function r(e){try{s(c.next(e))}catch(e){n(e)}}function o(e){try{s(c["throw"](e))}catch(e){n(e)}}function s(e){e.done?a(e.value):i(e.value).then(r,o)}s((c=c.apply(e,t||[])).next())}))};var __generator=this&&this.__generator||function(e,t){var a={label:0,sent:function(){if(n[0]&1)throw n[1];return n[1]},trys:[],ops:[]},c,i,n,r;return r={next:o(0),throw:o(1),return:o(2)},typeof Symbol==="function"&&(r[Symbol.iterator]=function(){return this}),r;function o(e){return function(t){return s([e,t])}}function s(o){if(c)throw new TypeError("Generator is already executing.");while(r&&(r=0,o[0]&&(a=0)),a)try{if(c=1,i&&(n=o[0]&2?i["return"]:o[0]?i["throw"]||((n=i["return"])&&n.call(i),0):i.next)&&!(n=n.call(i,o[1])).done)return n;if(i=0,n)o=[o[0]&2,n.value];switch(o[0]){case 0:case 1:n=o;break;case 4:a.label++;return{value:o[1],done:false};case 5:a.label++;i=o[1];o=[0];continue;case 7:o=a.ops.pop();a.trys.pop();continue;default:if(!(n=a.trys,n=n.length>0&&n[n.length-1])&&(o[0]===6||o[0]===2)){a=0;continue}if(o[0]===3&&(!n||o[1]>n[0]&&o[1]<n[3])){a.label=o[1];break}if(o[0]===6&&a.label<n[1]){a.label=n[1];n=o;break}if(n&&a.label<n[2]){a.label=n[2];a.ops.push(o);break}if(n[2])a.ops.pop();a.trys.pop();continue}o=t.call(e,a)}catch(e){o=[6,e];i=0}finally{c=n=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:true}}};var __spreadArray=this&&this.__spreadArray||function(e,t,a){if(a||arguments.length===2)for(var c=0,i=t.length,n;c<i;c++){if(n||!(c in t)){if(!n)n=Array.prototype.slice.call(t,0,c);n[c]=t[c]}}return e.concat(n||Array.prototype.slice.call(t))};System.register(["./p-BpC3ubr-.system.js","./p-CElxzE6f.system.js","./p-BTWzFg6e.system.js","./p-D5J8bYlQ.system.js","./p-BWNXSNBe.system.js","./p-BqniUMS5.system.js","./p-Dj8UBYSR.system.js","./p-NPOR6IxC.system.js","./p-B6ewx4qT.system.js","./p-DNT6lW3H.system.js"],(function(e){"use strict";var t,a,c,i,n,r,o,s,l,f,m,d,u;return{setters:[function(e){t=e.r;a=e.c;c=e.h;i=e.a;n=e.g},function(e){r=e.c},function(e){o=e.d},function(e){s=e.i},function(e){l=e.o;f=e.V},function(e){m=e.b;d=e.g},function(e){u=e.i},null,null,null],execute:function(){var y="*{-webkit-box-sizing:border-box;box-sizing:border-box}p,h1,h2,h3,h4,h5,h6{margin:0;padding:0}.flex{display:-ms-flexbox;display:flex}.flex-wrap{display:-ms-flexbox;display:flex;-ms-flex-flow:wrap;flex-flow:wrap}.flex-align-start{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.flex-align-center{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.flex-align-end{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end}.flex-justify-start{display:-ms-flexbox;display:flex;-ms-flex-pack:start;justify-content:flex-start}.flex-justify-center{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.flex-justify-end{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end}.flex-align-end-start{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end;-ms-flex-pack:start;justify-content:flex-start}.flex-align-end-center{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end;-ms-flex-pack:center;justify-content:center}.flex-align-end-end{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end;-ms-flex-pack:end;justify-content:flex-end}.flex-center{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.flex-center-justify-end{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}.flex-between{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.flex-center-between{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.flex-column{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column}.flex-column-align-center{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-align:center;align-items:center}.flex-column-justify-center{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:center;justify-content:center}.flex-column-center{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.flex-column-between{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:justify;justify-content:space-between}.flex-column-center-between{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.cty-button-native{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin:0;padding:0;background:transparent;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;line-height:1;border:0;outline:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0;-webkit-box-shadow:none;box-shadow:none;cursor:pointer}:host{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;position:fixed;left:0;top:0;z-index:20099;width:100vw !important;height:100vh !important;visibility:visible !important}.cty-camera__close[class]{margin:0;min-height:var(--cty-camera-close-min-hieght, 3.1em);--background:transparent;--background-activated:transparent;--background-focused:transparent;--background-hover:transparent;--box-shadow:none;--padding-top:var(--cty-camera-close-padding-top, 3px);--padding-bottom:var(--cty-camera-close-padding-bottom, 3px);--padding-start:var(--cty-camera-close-padding-start, 6px);--padding-end:var(--cty-camera-close-padding-end, 6px);--color:var(--cty-camera-close-color, var(--cty-text-color-white))}.cty-camera__close-icon{font-size:var(--cty-camera-close-font-size, 28px)}.cty-camera-main{-ms-flex:1;flex:1;position:relative}.cty-camera-widgets{position:absolute;top:0;right:15px}.cty-camera-widget{-ms-flex-direction:column;flex-direction:column;margin-bottom:var(--cty-camera-camera-widget-offset-y, 30px);color:var(--cty-camera-camera-widget-color, #fff)}.cty-camera-widget__icon{font-size:var(--cty-camera-camera-widget-icon-size, 20px)}.cty-camera-widget__text{margin-top:var(--cty-camera-camera-widget-text-offset-y, 5px);font-size:var(--cty-camera-camera-widget-text-size, var(--cty-font-size-extra-small))}.cty-camera-widget__ratio{width:24px;height:16px;border-radius:2px;border:1px solid var(--cty-camera-camera-widget-color, #fff);font-size:10px}.cty-camera-controls{margin-top:auto}.cty-camera-controls__mode{width:-webkit-max-content;width:-moz-max-content;width:max-content;padding:var(--cty-camera-camera-controls-mode-padding, 2px);margin:var(--cty-camera-camera-controls-mode-offset, 0 auto 15px);background:var(--cty-camera-camera-controls-mode-bg, rgba(0, 0, 0, 0.5));border-radius:var(--cty-camera-camera-controls-mode-radius, 3px);color:var(--cty-camera-camera-controls-mode-color, #fff)}.cty-camera-controls__mode-button{padding:var(--cty-camera-camera-controls-mode-button-padding, 3px 5px);border-radius:var(--cty-camera-camera-controls-mode-button-radius, 3px);font-size:var(--cty-camera-camera-controls-mode-button-font-szie, var(--cty-font-size-extra-small))}.cty-camera-controls__mode-button__active{background:var(--cty-camera-camera-controls-mode-button-active-bg, #fff);color:var(--cty-camera-camera-controls-mode-button-active-color, #000)}.cty-camera-controls__zooms{margin:var(--cty-camera-camera-controls-zooms-offset, 0 0 15px)}.cty-camera-controls__zoom-item{width:var(--cty-camera-camera-controls-zoom-active-size, 28px);height:var(--cty-camera-camera-controls-zoom-active-size, 28px);border-radius:50%}.cty-camera-controls__zoom-item:not(:last-child){margin-right:var(--cty-camera-camera-controls-zoom-offset, 10px)}.cty-camera-controls__zoom-item__active{border:var(--cty-camera-camera-controls-zoom-active-border, 1px solid #fff)}.cty-camera-controls__zoom-item__active .cty-camera-controls__zoom-text{background:var(--cty-camera-camera-controls-zoom-active-bg, transparent)}.cty-camera-controls__zoom-text{width:var(--cty-camera-camera-controls-zoom-size, 24px);height:var(--cty-camera-camera-controls-zoom-size, 24px);background:var(--cty-camera-camera-controls-zoom-bg, rgba(0, 0, 0, 0.3));border-radius:50%;color:var(--cty-camera-camera-controls-color, #fff);font-size:var(--cty-camera-camera-controls-zoom-font-size, 10px);font-weight:var(--cty-camera-camera-controls-zoom-font-weight, 600)}.cty-camera-controls__main{margin:var(--cty-camera-camera-controls-take-photo-offset, 0 0 15px)}.cty-camera-controls__take-photo{width:var(--cty-camera-camera-controls-take-photo-size, 60px);height:var(--cty-camera-camera-controls-take-photo-size, 60px);border-radius:50%;border:var(--cty-camera-camera-controls-take-photo-border, 2px solid #fff)}.cty-camera-controls__take-photo-button{width:var(--cty-camera-camera-controls-take-photo-button-size, 48px);height:var(--cty-camera-camera-controls-take-photo-button-size, 48px);border-radius:50%;background:var(--cty-camera-camera-controls-color, #fff)}.cty-camera-controls__take-photo-button:active{-webkit-transform:scale(0.9);transform:scale(0.9);-webkit-transition:-webkit-transform 0.05s cubic-bezier(0.2, 0.9, 0.4, 1.1);transition:-webkit-transform 0.05s cubic-bezier(0.2, 0.9, 0.4, 1.1);transition:transform 0.05s cubic-bezier(0.2, 0.9, 0.4, 1.1);transition:transform 0.05s cubic-bezier(0.2, 0.9, 0.4, 1.1), -webkit-transform 0.05s cubic-bezier(0.2, 0.9, 0.4, 1.1);-webkit-box-shadow:0 3px 8px rgba(0, 0, 0, 0.2);box-shadow:0 3px 8px rgba(0, 0, 0, 0.2);-webkit-filter:brightness(0.96);filter:brightness(0.96)}.cty-camera-controls__main-left,.cty-camera-controls__main-confirm{-ms-flex:1;flex:1}.cty-camera-controls__main-confirm-icon{font-size:var(--cty-camera-camera-controls-confirm-icon-size, 24px);color:var(--cty-camera-camera-controls-confirm-icon-color, var(--cty-color-danger))}.cty-camera-controls__main-confirm-text{margin-top:var(--cty-camera-camera-controls-confirm-text-offset, 5px);font-size:var(--cty-camera-camera-controls-confirm-text-size, 12px);color:var(--cty-camera-camera-controls-confirm-text-color, #fff)}.cty-camera-controls__main-delete{margin-right:var(--cty-camera-camera-controls-delete-offser, 30px)}.cty-camera-controls__main-delete-icon{font-size:var(--cty-camera-camera-controls-delete-icon-size, 20px);color:var(--cty-camera-camera-controls-delete-icon-color, #fff)}.cty-camera-controls__images{overflow-x:auto;width:100%;min-height:var(--cty-camera-camera-controls-images-min-height, 84px);padding:var(--cty-camera-camera-controls-images-padding, 0 15px);margin:var(--cty-camera-camera-controls-images-offset, 15px 0)}.cty-camera-controls__image{-ms-flex:none;flex:none;position:relative;width:var(--cty-camera-camera-controls-image-size, 54px);height:var(--cty-camera-camera-controls-image-size, 54px)}.cty-camera-controls__image:not(:last-child){margin-right:var(--cty-camera-camera-controls-image-offset, 10px)}.cty-camera-controls__image-img{display:block;width:100%;height:100%;border-radius:var(--cty-camera-camera-controls-image-border-radius, 8px);-o-object-fit:var(--cty-camera-camera-controls-image-object-fit, cover);object-fit:var(--cty-camera-camera-controls-image-object-fit, cover)}.cty-camera-controls__image-delete{position:absolute;top:0;right:0;width:var(--cty-camera-camera-controls-image-delete-size, 20px);height:var(--cty-camera-camera-controls-image-delete-size, 20px);background:var(--cty-camera-camera-controls-image-delete-bg, rgba(0, 0, 0, 0.5));border-radius:var(--cty-camera-camera-controls-image-delete-border-radius, 0 8px);color:var(--cty-camera-camera-controls-image-delete-color, #fff);font-size:var(--cty-camera-camera-controls-image-delete-font-size, 18px)}.cty-camera-viewer__single{min-height:var(--cty-camera-viewer-single-min-height, 44px);padding:var(--cty-camera-viewer-single-padding, 0 15px)}.cty-camera-viewer__single-close,.cty-camera-viewer__single-confirm{font-size:var(--cty-image-viewer-single-close-size, 20px);color:var(--cty-image-viewer-single-close-color, #fff)}";var h=e("cty_camera",function(){function e(e){t(this,e);this.ctyDismiss=a(this,"ctyDismiss",7);this.ctyTakePhoto=a(this,"ctyTakePhoto",7);this.ctyConfirm=a(this,"ctyConfirm",7);this.safeArea=44;this.title="";this.options={};this.closeIcon=l;this.deleteIcon=f;this.width=0;this.height=0;this.quality=85;this.includeThumb=true;this.thumbWidth=120;this.file=true;this.max=9;this.flipText="翻转";this.flashText="闪光";this.ratioText="比例";this.confirmIcon="cty-confirm";this.confirmText="确定";this.mode="both";this.singleText="单拍";this.multipleText="连拍";this.ratios=["9:16","3:4","1:1","16:9","full"];this.zooms=[1,2,5,10];this.zoomSteps=20;this.touchZoom=true;this.touchZoomProp=.01;this.permissionAlertTitle="需要申请开启相机权限";this.permissionAlertContent="需要开启相机权限,用于拍照。我们承诺仅在功能使用时调用摄像头。";this.ratioIndex=0;this.flash=false;this.zoomIndex=0;this.pictures=[];this.showImageViewer=false;this.imageViewerIndex=0;this.currentPhotoMode="multiple";this.currentZoom=1;this.hasPermission=false;this.permissionAlertVisible=false;this.isToastOpen=false;this.toastContent="";this.startZoom=1;this.SCREEN_WIDTH=window.screen.width;this.SCREEN_HEIGHT=window.screen.height;this.originalBodyBackground="";this.isTakingPhoto=false;this.distance=0;this.startCameraZoom=0}e.prototype.connectedCallback=function(){if(this.mode==="single"){this.currentPhotoMode="single"}var e=window.document.querySelector("body");e.style.visibility="hidden";this.originalBodyBackground=window.getComputedStyle(e).background;e.style.background="transparent";this.initCamera()};e.prototype.disconnectedCallback=function(){r.stopCamera();var e=window.document.querySelector("body");e.style.visibility="visible";e.style.background=this.originalBodyBackground};e.prototype.requestPermission=function(){return __awaiter(this,void 0,void 0,(function(){var e,t,a,c,i;return __generator(this,(function(n){switch(n.label){case 0:n.trys.push([0,2,,3]);e=this;return[4,r.hasPermission()];case 1:e.hasPermission=n.sent();return[3,3];case 2:t=n.sent();this.hasPermission=false;return[3,3];case 3:if(!!this.hasPermission)return[3,7];n.label=4;case 4:n.trys.push([4,6,,7]);return[4,r.requestPermission()];case 5:n.sent();this.hasPermission=true;return[3,7];case 6:a=n.sent();c=a.code,i=a.message;if(c=="PERMISSION_DENIED_NEED_SETTINGS"){this.permissionAlertVisible=true}else{if(c!="PERMISSION_DENIED_FIRST_TIME"&&i){this.isToastOpen=true;this.toastContent=i}this.ctyDismiss.emit()}return[3,7];case 7:return[2]}}))}))};e.prototype.initCamera=function(){return __awaiter(this,void 0,void 0,(function(){var e;var t=this;return __generator(this,(function(a){switch(a.label){case 0:return[4,this.requestPermission()];case 1:a.sent();if(!this.hasPermission){this.ctyDismiss.emit();return[2]}e=this.getCameraHeight();r.startCamera(Object.assign(Object.assign({y:this.safeArea,camera:"back",backgroundColor:"#000000"},this.options),{x:0,height:e,toBack:true,tapPhoto:false,tapFocus:true,enableAutoSettings:false,storeToFile:this.file})).catch((function(e){var a=e.code;if(a=="PERMISSION_DENIED_NEED_SETTINGS"){t.permissionAlertVisible=true}}));return[2]}}))}))};e.prototype.close=function(){this.ctyDismiss.emit()};e.prototype.flipCamera=function(){return r.switchCamera()};e.prototype.toggleFlash=function(){this.flash=!this.flash;if(!this.flash){return this.flashOff()}return this.flashOn()};e.prototype.flashOff=function(){return r.setFlashMode("off")};e.prototype.flashOn=function(){return r.setFlashMode("torch")};e.prototype.ratioChange=function(){var e=this,t=e.ratios,a=e.ratioIndex,c=e.SCREEN_WIDTH;var i=t[a];this.ratioIndex++;if(this.ratioIndex>=t.length){this.ratioIndex=0}var n=t[this.ratioIndex];if(!n.includes(":")||!i.includes(":")){r.setPreviewPosition(0,!i.includes(":")?this.safeArea:0)}var o=this.getCameraHeight();return r.setPreviewSize({width:c,height:o})};e.prototype.setZoom=function(e){return __awaiter(this,void 0,void 0,(function(){var t,a,c,i;return __generator(this,(function(n){switch(n.label){case 0:t=this.zooms;this.zoomIndex=e;return[4,r.getMaxZoom()];case 1:a=n.sent();c=(a+1)/this.zoomSteps;i=c*t[e]-1;if(o.isIos){i=t[e]}return[2,r.setZoom(e===0?0:Math.min(i,a))]}}))}))};e.prototype.takePhoto=function(){return __awaiter(this,void 0,void 0,(function(){var e,t,a,c,i,n,o,l,f,m,d,u,y,h;return __generator(this,(function(b){switch(b.label){case 0:e=this,t=e.quality,a=e.width,c=e.height,i=e.includeThumb,n=e.thumbWidth,o=e.file,l=e.max,f=e.pictures;if(l>0&&f.length>=l||this.currentPhotoMode==="single"&&this.pictures.length>0||this.isTakingPhoto){return[2]}this.isTakingPhoto=true;return[4,r.takePicture({width:a,height:c,quality:t,includeThumb:i,thumbWidth:n})];case 1:m=b.sent();d="";u="";if(m&&typeof m==="object"){d=m.image;u=m.thumbnail}else{d=m}return[4,s.formatPictureResult(o,d)];case 2:y=b.sent();return[4,s.formatPictureResult(o,u)];case 3:h=b.sent();this.pictures=__spreadArray(__spreadArray([],f,true),[Object.assign(Object.assign({},y),{thumbnail:h.url})],false);this.ctyTakePhoto.emit(y);this.isTakingPhoto=false;if(this.currentPhotoMode==="single"){this.toImageViewer(0)}return[2,y]}}))}))};e.prototype.deletePicture=function(e,t){e.stopPropagation();var a=__spreadArray([],this.pictures,true);a.splice(t,1);this.pictures=a};e.prototype.getCameraHeight=function(){var e=this,t=e.ratios,a=e.ratioIndex,c=e.SCREEN_WIDTH,i=e.SCREEN_HEIGHT;var n=t[a];if(!n.includes(":")){return i}var r=n.split(":"),o=r[0],s=r[1];return Math.min(i,+s*c/+o)};e.prototype.toImageViewer=function(e){this.imageViewerIndex=e;this.showImageViewer=true};e.prototype.closeImageViewer=function(e){e.stopPropagation();this.showImageViewer=false};e.prototype.closeSingleImageViewer=function(e){this.pictures=[];this.closeImageViewer(e)};e.prototype.confirm=function(){this.ctyConfirm.emit(this.pictures.map((function(e){var t=e.url,a=e.data;return{url:t,data:a}})))};e.prototype.deleteLastPicture=function(){var e=__spreadArray([],this.pictures,true);e.pop();this.pictures=e};e.prototype.resetZoom=function(){this.currentZoom=1;this.setZoom(0)};e.prototype.touchstart=function(e){return __awaiter(this,void 0,void 0,(function(){var t,a,c;return __generator(this,(function(i){switch(i.label){case 0:e.stopPropagation();if(!(this.touchZoom&&e.touches.length==2))return[3,2];t=e.touches[1].clientX-e.touches[0].clientX;a=e.touches[1].clientY-e.touches[0].clientY;this.distance=Math.sqrt(t*t+a*a);c=this;return[4,r.getZoom()];case 1:c.startCameraZoom=i.sent();this.startZoom=this.currentZoom;i.label=2;case 2:return[2]}}))}))};e.prototype.touchmove=function(e){e.stopPropagation();if(this.touchZoom&&e.touches.length==2){var t=e.touches[1].clientX-e.touches[0].clientX;var a=e.touches[1].clientY-e.touches[0].clientY;var c=Math.sqrt(t*t+a*a);var i=c-this.distance;var n=this.touchZoomProp*i;this.updateZoom(n)}};e.prototype.touchend=function(e){e.stopPropagation()};e.prototype.updateZoom=function(e){return __awaiter(this,void 0,void 0,(function(){var t,a,c,i,n,s;return __generator(this,(function(l){switch(l.label){case 0:t=this,a=t.startCameraZoom,c=t.startZoom;return[4,r.getMaxZoom()];case 1:i=l.sent();n=(i+1)/this.zoomSteps;s=this.zooms.slice(-1)[0]||10;this.currentZoom=Math.floor((c+e)*10)/10;this.currentZoom=Math.max(this.currentZoom,1);this.currentZoom=Math.min(this.currentZoom,s);if(o.isIos){i=s}else{i=Math.min(i,s*n);e=n*e}r.setZoom(Math.min(a+e,i));return[2]}}))}))};e.prototype.toOpenAppSetting=function(e){return __awaiter(this,void 0,void 0,(function(){var t,a;return __generator(this,(function(c){switch(c.label){case 0:t=e.detail.item;if(!(t.action=="permission"))return[3,4];c.label=1;case 1:c.trys.push([1,3,,4]);return[4,r.openAppSettings()];case 2:c.sent();this.permissionAlertVisible=false;return[3,4];case 3:a=c.sent();this.closePermissionAlert(e);return[3,4];case 4:return[2]}}))}))};e.prototype.closePermissionAlert=function(e){e.stopPropagation();this.permissionAlertVisible=false;this.ctyDismiss.emit()};e.prototype.render=function(){var e=this;var t=this,a=t.title,n=t.closeIcon,r=t.flash,o=t.flipText,s=t.flashText,f=t.ratioText,m=t.ratios,d=t.ratioIndex,u=t.zoomIndex,y=t.zooms,h=t.mode,b=t.singleText,x=t.multipleText,p=t.currentPhotoMode,g=t.confirmIcon,v=t.confirmText,_=t.deleteIcon,w=t.pictures,k=t.showImageViewer,z=t.imageViewerIndex,j=t.touchZoom,C=t.currentZoom;return c(i,{key:"249d6c9269af0bb404fa13c2679db953580196be",class:"cty-camera",onClick:function(e){return e.stopPropagation()}},c("cty-nav-bar",{key:"3ddc96ed9540f67485013bd1d52cf593f7a159ec",title:a,type:"clear"},c("slot",{key:"c3124d840af6803fe87669dc1da346b5a51d6dc1",name:"header-start",slot:"start"},!!n&&c("ion-button",{key:"48ebfe61e98a586fb127feb9e57e556108665126",class:"cty-camera__close",onClick:function(){return e.close()}},c("cty-icon",{key:"8da9e811d18687d6c3c3fd19f3b6d96db3b4d992",class:"cty-camera__close-icon",name:n})))),c("div",{key:"918f5390b8d846231a1fbd3550858114efb3797f",class:"cty-camera-main",onTouchStart:function(t){return e.touchstart(t)},onTouchMove:function(t){return e.touchmove(t)},onTouchEnd:function(t){return e.touchend(t)}},c("div",{key:"4d872387a4bb06d4d5030c181c6a67a9ef19f5aa",class:"cty-camera-widgets",part:"widgets"},!!o&&c("button",{key:"6de4076ab5b8ee8a31a63305fc4fd4c954e87291",class:"cty-button-native cty-camera-widget",part:"widget",onClick:function(){return e.flipCamera()}},c("cty-icon",{key:"cf2cd7ccbf12a6b972371389045aa7360a7e361c",class:"cty-camera-widget__icon",name:"cty-flip"}),!!o&&c("span",{key:"63816718efe322900dd80192a3c96e1dde0f56bf",class:"cty-camera-widget__text"},o)),!!s&&c("button",{key:"71f482e92876e408cfe4391c92c79789d83ff12b",class:"cty-button-native cty-camera-widget",part:"widget",onClick:function(){return e.toggleFlash()}},c("cty-icon",{key:"70a2838d229df2418807329013cf2db86c8b2886",class:"cty-camera-widget__icon",name:r?"cty-flash-on":"cty-flash-off"}),!!s&&c("span",{key:"dc6dcb389cde04abe9e94824fc7ab23d7cbd49c3",class:"cty-camera-widget__text"},s)),!!f&&c("button",{key:"13fd40b68adeefca52a5775b2fc86bd0602728c7",class:"cty-button-native cty-camera-widget",part:"ratio",onClick:function(){return e.ratioChange()}},c("span",{key:"e971f50bb4a923dfb119497d530890dc2a2f4cc2",class:"cty-camera-widget__ratio flex-center"},m[d]),!!f&&c("span",{key:"c13601a6c3866a72120a9b441d971c5134e95b26",class:"cty-camera-widget__text"},f)))),c("div",{key:"b82e91f54f7416c8f8ba0bbc99ad034b7d90d201",class:"cty-camera-controls safe-area-bottom-padding"},h=="both"&&w.length<=0&&c("div",{key:"da4867ad484906fb92bb0b9840ae05cab7f6017c",class:"cty-camera-controls__mode flex-center",part:"mode"},c("button",{key:"8932fc465360764b3d19c2ba0f9afa26df747248",class:{"cty-button-native cty-camera-controls__mode-button":true,"cty-camera-controls__mode-button__active":p==="single"},onClick:function(){return e.currentPhotoMode="single"}},b),c("button",{key:"a70dd98026cb8125f04841f3f82ae83bffedea17",class:{"cty-button-native cty-camera-controls__mode-button":true,"cty-camera-controls__mode-button__active":p==="multiple"},onClick:function(){return e.currentPhotoMode="multiple"}},x)),c("slot",{key:"706e3c7c60be9bea7a887743981e6c0c83d867a1",name:"zooms"},!j&&y.length>0&&c("div",{key:"dd6fe65fe090190eb2f1f0b678ebfa84f8bbbe31",class:"cty-camera-controls__zooms flex-center",part:"zooms"},y.map((function(t,a){return c("div",{class:{"cty-camera-controls__zoom-item flex-center":true,"cty-camera-controls__zoom-item__active":u===a},onClick:function(){return e.setZoom(a)}},c("span",{class:"cty-camera-controls__zoom-text flex-center"},t,"X"))}))),j&&c("div",{key:"9f0a68f5c87b36f50807a1ddce3fd7d495f5b0f7",class:"cty-camera-controls__zooms flex-center",part:"zooms"},c("div",{key:"2b1f97c6fbe953d71779f536d408d8a878872b1c",class:{"cty-camera-controls__zoom-item flex-center cty-camera-controls__zoom-item__active":true},onClick:function(){return e.resetZoom()}},c("span",{key:"2e16a3df094da8fcfe0b3758732a48bc67e00797",class:"cty-camera-controls__zoom-text flex-center"},C,"X")))),c("div",{key:"06a01b4fcb96b0bd33bde8ed91fc2b436e406791",class:"cty-camera-controls__main flex-center"},c("div",{key:"c748dab6ff814deab00d7f0ff8e2b9ae439acc82",class:"cty-camera-controls__main-left flex-center"}),c("div",{key:"ae6105b6f28bd8be992ebf164987806a5cf52e9c",class:"cty-camera-controls__take-photo flex-center"},c("button",{key:"1bbe3c2225a533fd7f4b9de9b7778c748c4f5a03",class:"cty-button-native cty-camera-controls__take-photo-button",part:"take-photo",onClick:function(){return e.takePhoto()}})),c("div",{key:"d8b0277f2daf2c6085edd86c18d220a7c24e1e37",class:"cty-camera-controls__main-confirm flex-center"},p!=="single"&&w.length>0&&!!_&&c("button",{key:"cc83aa1aab767ea7a3aef3b44194b4891836c09a",class:"cty-camera-controls__main-delete cty-button-native flex-column-center",onClick:function(){return e.deleteLastPicture()}},c("cty-icon",{key:"5b2a06c3819fa158b12769b4cea08f7df6cecff2",class:"cty-camera-controls__main-delete-icon",name:_})),p!=="single"&&w.length>0&&c("button",{key:"09642c94b869090cd1381b75a949013623558fb6",class:"cty-button-native flex-column-center",onClick:function(){return e.confirm()}},c("cty-icon",{key:"09e36ce96317e298f0a54ce6c1d76009a4ad4b95",class:"cty-camera-controls__main-confirm-icon",name:g}),v&&c("span",{key:"9d24bf57e4c32abbbfb95671c1191f7d85adfce4",class:"cty-camera-controls__main-confirm-text"},v)))),c("slot",{key:"5530ce7f1411007acfd28326b53b5caa52c52376",name:"images"},c("div",{key:"2a9366f14ff5878bb704703d9fd65a4549c002fb",class:"cty-camera-controls__images flex-align-center"},p!=="single"&&w.map((function(t,a){return c("div",{class:"cty-camera-controls__image",onClick:function(){return e.toImageViewer(a)}},c("img",{class:"cty-camera-controls__image-img",src:t.thumbnail||t.url}),c("button",{class:"cty-button-native",onClick:function(t){return e.deletePicture(t,a)}},c("cty-icon",{class:"cty-camera-controls__image-delete",name:l})))}))))),k&&c("cty-image-viewer",{key:"5c3f82c1f25c434e79c2df83f657c25cc42f0ffc",images:w.map((function(e){return e.url})),initialSlide:z,overlayIndex:100,backdropDismiss:false,closeable:false,onCtyDismiss:function(t){return e.closeImageViewer(t)}},p!=="multiple"&&c("div",{key:"2c0753cab107695962bbdd55ab9b334e91c361a2",class:"cty-camera-viewer__single flex-center-between",slot:"pager"},c("button",{key:"3cf7393d965245e4b7072afe50412c150840cec3",class:"cty-camera-viewer__single-close cty-button-native",onClick:function(t){return e.closeSingleImageViewer(t)}},c("cty-icon",{key:"db1b6d35ff40650a00903d37d03adf9c4e7ce311",name:"cty-close2"})),c("button",{key:"25df5828eafcc1191e826445e0b20e41eec869bf",class:"cty-camera-viewer__single-confirm cty-button-native",onClick:function(){return e.confirm()}},c("cty-icon",{key:"e96ba7b2413df359b4ab6ea184250edbf3618d2a",name:"cty-tick"}))),p!=="multiple"&&c("i",{key:"8a167eb7c089ede4aeff07e73cd14424a0ccca55",slot:"close"})),this.permissionAlertVisible&&c("cty-permission-alert",{key:"3fb0cd60cb246d94f12a6adff586087071075ea2",title:this.permissionAlertTitle,content:this.permissionAlertContent,buttons:this.permissionAlertbuttons,onCtyDismiss:function(t){return e.closePermissionAlert(t)},onCtyTap:function(t){return e.toOpenAppSetting(t)}}),c("ion-toast",{key:"ac0224081e8ce22eaebfd7224391cf1957c2ff47","is-open":this.isToastOpen,message:this.toastContent,duration:2e3,position:"middle"}))};Object.defineProperty(e.prototype,"el",{get:function(){return n(this)},enumerable:false,configurable:true});return e}());h.style=y;var b="*{-webkit-box-sizing:border-box;box-sizing:border-box}p,h1,h2,h3,h4,h5,h6{margin:0;padding:0}.flex{display:-ms-flexbox;display:flex}.flex-wrap{display:-ms-flexbox;display:flex;-ms-flex-flow:wrap;flex-flow:wrap}.flex-align-start{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.flex-align-center{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.flex-align-end{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end}.flex-justify-start{display:-ms-flexbox;display:flex;-ms-flex-pack:start;justify-content:flex-start}.flex-justify-center{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.flex-justify-end{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end}.flex-align-end-start{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end;-ms-flex-pack:start;justify-content:flex-start}.flex-align-end-center{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end;-ms-flex-pack:center;justify-content:center}.flex-align-end-end{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end;-ms-flex-pack:end;justify-content:flex-end}.flex-center{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.flex-center-justify-end{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}.flex-between{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.flex-center-between{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.flex-column{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column}.flex-column-align-center{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-align:center;align-items:center}.flex-column-justify-center{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:center;justify-content:center}.flex-column-center{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.flex-column-between{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:justify;justify-content:space-between}.flex-column-center-between{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.plt-hybrid .safe-area-bottom-border{-webkit-box-sizing:content-box;box-sizing:content-box;border-bottom:var(--ion-safe-area-bottom, 0) solid var(--cty-color-white)}.plt-hybrid .safe-area-bottom-border-color{-webkit-box-sizing:content-box;box-sizing:content-box;border-bottom:var(--ion-safe-area-bottom, 0) solid currentColor}.plt-hybrid .safe-area-bottom-padding{padding-bottom:var(--ion-safe-area-bottom, 0)}.cty-button-native{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin:0;padding:0;background:transparent;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;line-height:1;border:0;outline:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0;-webkit-box-shadow:none;box-shadow:none;cursor:pointer}:host{--cty-crop-image-clip-width:100vw;--cty-crop-image-clip-height:100vw;--cty-crop-image-clip-background:var(--cty-overlay-color);--cty-crop-image-clip-border:1px solid #767676;--cty-crop-image-buttons-padding:12px 0;--cty-crop-image-button-padding:0 12px;--cty-crop-image-button-color:var(--cty-color-white);--cty-crop-image-button-active-color:var(--cty-color-white);--cty-crop-image-button-size:var(--cty-font-size-base);--cty-crop-image-button-line-height:30px;--cty-crop-image-button-weight:400;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;position:relative;width:100vw;height:100vh;background:var(--cty-color-black)}.cty-crop-image__wrapper{position:absolute;width:100%;left:50%;top:50%;-webkit-transform:translate(-50%, -50%) scale(1);transform:translate(-50%, -50%) scale(1)}.cty-crop-image__image{display:block;width:100%;pointer-events:none}.cty-crop-image__clip{position:relative;width:var(--cty-crop-image-clip-width);max-width:var(--cty-crop-image-width);height:var(--cty-crop-image-clip-height);border:var(--cty-crop-image-clip-border);-webkit-box-shadow:0 0 0 1000px var(--cty-crop-image-clip-background);box-shadow:0 0 0 1000px var(--cty-crop-image-clip-background)}.cty-crop-image__buttons{position:absolute;left:0;right:0;bottom:0;background-color:rgba(19, 19, 19, 0.7);padding:var(--cty-crop-image-buttons-padding)}.cty-crop-image__button{padding:var(--cty-crop-image-button-padding);font-size:var(--cty-crop-image-button-size);color:var(--cty-crop-image-button-color);line-height:var(--cty-crop-image-button-line-height);font-weight:var(--cty-crop-image-button-weight)}.cty-crop-image__button+.cty-crop-image__button{color:var(--cty-crop-image-button-active-color)}";var x=e("cty_crop_image",function(){function e(e){t(this,e);this.ctyCancel=a(this,"ctyCancel",7);this.ctyConfirm=a(this,"ctyConfirm",7);this.url="";this.cancelText="取消";this.confirmText="选取";this.imageWidth=750;this.imageBackground="";this.quality=1;this.suffix="jpeg";this.maxScale=2;this.minScale=1;this._startX=0;this._startY=0;this._distance=0;this._scale=1}e.prototype.doTouchStart=function(e){var t=this;var a,c,i,n,r;try{e.preventDefault();e.stopPropagation()}catch(e){}this.imageEl.style.transition="none";if(e.type==="mousedown"||((a=e===null||e===void 0?void 0:e.targetTouches)===null||a===void 0?void 0:a.length)==1){var o=m(e),s=o.x,l=o.y;this._startX=s;this._startY=l;if(e.type==="mousedown"){this.el.onmousemove=function(e){t.doTouchMove(e)};this.el.onmouseup=function(){t.doTouchEnd();t.el.onmousemove=null;t.el.onmouseup=null}}}else{var f=((c=e===null||e===void 0?void 0:e.targetTouches[1])===null||c===void 0?void 0:c.clientX)-((i=e===null||e===void 0?void 0:e.targetTouches[0])===null||i===void 0?void 0:i.clientX);var d=((n=e===null||e===void 0?void 0:e.targetTouches[1])===null||n===void 0?void 0:n.clientY)-((r=e===null||e===void 0?void 0:e.targetTouches[0])===null||r===void 0?void 0:r.clientY);this._distance=Math.sqrt(f*f+d*d)}};e.prototype.doTouchMove=function(e){var t;try{e.preventDefault();e.stopPropagation()}catch(e){}if(e.type==="mousemove"||((t=e===null||e===void 0?void 0:e.targetTouches)===null||t===void 0?void 0:t.length)==1){var a=m(e),c=a.x,i=a.y;var n=c-this._startX;var r=i-this._startY;this._startX=c;this._startY=i;var o=this.imageEl;var s=d(o);var l=d(this.clipEl);var f=1;var y=1;if(s.x>l.x){f=10/Math.ceil(s.x-l.x)}else if(s.right<l.right){f=10/Math.ceil(l.right-s.right)}f=Math.min(1,f);if(s.y>l.y){y=10/Math.ceil(s.y-l.y)}else if(s.bottom<l.bottom){y=10/Math.ceil(l.bottom-s.bottom)}y=Math.min(1,y);var h=o.offsetLeft+n*f;var b=o.offsetTop+r*y;this.imageEl.style.left=h+"px";this.imageEl.style.top=b+"px"}else{var x=e.touches[1].clientX-e.touches[0].clientX;var p=e.touches[1].clientY-e.touches[0].clientY;var g=Math.sqrt(x*x+p*p);var v=g-this._distance;var _=this._scale+.01*v;_=u(_,this.minScale/2,this.maxScale+1);this.imageEl.style.transform="translate(-50%,-50%) scale("+_+")";this._distance=g;this._scale=_}};e.prototype.doTouchEnd=function(){var e=this.clipEl;var t=this.el;var a=this.imageEl;var c=this.clipEl.getBoundingClientRect();if(this._scale<this.minScale){this._scale=this.minScale}else if(this._scale>this.maxScale){this._scale=this.maxScale}this.imageEl.style.transform="translate(-50%,-50%) scale("+this._scale+")";var i=d(a);var n=a.offsetLeft;var r=a.offsetTop;if(i.x>c.x){n=c.x+i.width/2}else if(i.right<c.right){n=c.right-i.width/2}if(i.y>c.y){r=c.y+i.height/2}else if(i.bottom<c.bottom){r=c.bottom-i.height/2}this.imageEl.style.transition=".2s";this.imageEl.style.left=n+"px";if(e.offsetHeight>i.height){r=t.offsetHeight/2}this.imageEl.style.top=r+"px"};e.prototype._doCancel=function(e){try{e.preventDefault();e.stopPropagation()}catch(e){}this.ctyCancel.emit()};e.prototype._doConfirm=function(e){return __awaiter(this,void 0,void 0,(function(){var t;return __generator(this,(function(a){switch(a.label){case 0:try{e.preventDefault();e.stopPropagation()}catch(e){}return[4,this.getCanvasImg()];case 1:t=a.sent();this.ctyConfirm.emit(t);return[2]}}))}))};e.prototype.getCanvasImg=function(){var e=this;return new Promise((function(t,a){try{var c=e.clipEl;var i=document.createElement("canvas");var n=i.getContext("2d");var r=e.imageWidth*c.clientHeight/c.clientWidth;var o=e.imageEl.children[0];i.width=e.imageWidth;i.height=e.imageWidth*c.clientHeight/c.clientWidth;n.clearRect(0,0,e.imageWidth,r);if(e.imageBackground){n.beginPath();n.fillStyle=e.imageBackground;n.fillRect(0,0,e.imageWidth,r)}n.beginPath();var s=e.imageEl.getBoundingClientRect();var l=c.getBoundingClientRect();var f=l.y-s.y;var m=l.x-s.x;var d=new Image;d.onload=function(){var a=d.width/s.width;n.drawImage(o,m*a,f*a,c.clientWidth*a,c.clientHeight*a,0,0,i.width,i.height);var r=i.toDataURL("image/".concat(e.suffix),e.quality);r=r.replace("data:image/".concat(e.suffix,";base64,"),"");r=r.replace("data:image/jgp;base64,","");r=r.replace("data:image/jpeg;base64,","");r=r.replace("data:image/jpg;base64,","");r=r.replace("data:image/png;base64,","");t({data:r,url:"data:image/".concat(e.suffix,";base64,")+r})};d.src=o.src}catch(e){a(e)}}))};e.prototype.renderButtons=function(){var e=this;if(!this.cancelText&&!this.confirmText)return null;var t=c("button",{class:"cty-crop-image__button cty-button-native",onTouchEnd:function(t){return e._doCancel(t)},onMouseUp:function(t){return e._doCancel(t)}},this.cancelText);var a=c("button",{class:"cty-crop-image__button cty-button-native",onTouchEnd:function(t){return e._doConfirm(t)},onMouseUp:function(t){return e._doConfirm(t)}},this.confirmText);return c("div",{class:"cty-crop-image__buttons flex-center-between safe-area-bottom-border-color"},this.cancelText&&t,this.confirmText&&a)};e.prototype.render=function(){var e=this;return c(i,{key:"3805ba12b7e6f2809399b8a9f213e4a4131b081c",class:"cty-crop-image",onMouseDown:function(t){return e.doTouchStart(t)},onTouchStart:function(t){return e.doTouchStart(t)},onTouchMove:function(t){return e.doTouchMove(t)},onTouchEnd:function(){return e.doTouchEnd()}},c("slot",{key:"441105402304f96770ff61b883993c952f7ea4a9",name:"header"}),c("div",{key:"affa68ce2eacf57bff5dcbc140c1da82d59dc8a3",class:"cty-crop-image__wrapper",ref:function(t){return e.imageEl=t}},c("img",{key:"9c5dd8cafb8e14f7f0e5d6ee2cc999a139580342",src:this.url,class:"cty-crop-image__image"})),c("div",{key:"eafd9083b6728615b767dae842c8b102ad40916d",class:"cty-crop-image__clip",ref:function(t){return e.clipEl=t}}),c("slot",{key:"25cb5fb31191e0a991064164b4c5752f39b7499b",name:"clip"}),this.renderButtons(),c("slot",{key:"e60a010fea26d6fa38a380c4cb9f6c4c28c25558",name:"footer"}))};Object.defineProperty(e.prototype,"el",{get:function(){return n(this)},enumerable:false,configurable:true});return e}());x.style=b}}}));
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e,c as t,h as a,a as c,g as i}from"./p-DBsZD0Dk.js";import{c as o}from"./p-Bntx5BKz.js";import{d as s}from"./p-Ys0pUf2z.js";import{i as n}from"./p-Bkucjxe0.js";import{o as r,V as l}from"./p-D0r4bHmZ.js";import{b as m,g as f}from"./p-CHhKFKFA.js";import{i as d}from"./p-DnWe30Rj.js";import"./p-BqPoMbNS.js";import"./p-BqPNWsXF.js";import"./p-CZI7sxie.js";const h=class{constructor(a){e(this,a),this.ctyDismiss=t(this,"ctyDismiss",7),this.ctyTakePhoto=t(this,"ctyTakePhoto",7),this.ctyConfirm=t(this,"ctyConfirm",7),this.safeArea=44,this.title="",this.options={},this.closeIcon=r,this.deleteIcon=l,this.width=0,this.height=0,this.quality=85,this.includeThumb=!0,this.thumbWidth=120,this.file=!0,this.max=9,this.flipText="翻转",this.flashText="闪光",this.ratioText="比例",this.confirmIcon="cty-confirm",this.confirmText="确定",this.mode="both",this.singleText="单拍",this.multipleText="连拍",this.ratios=["9:16","3:4","1:1","16:9","full"],this.zooms=[1,2,5,10],this.zoomSteps=20,this.touchZoom=!0,this.touchZoomProp=.01,this.permissionAlertTitle="需要申请开启相机权限",this.permissionAlertContent="需要开启相机权限,用于拍照。我们承诺仅在功能使用时调用摄像头。",this.ratioIndex=0,this.flash=!1,this.zoomIndex=0,this.pictures=[],this.showImageViewer=!1,this.imageViewerIndex=0,this.currentPhotoMode="multiple",this.currentZoom=1,this.hasPermission=!1,this.permissionAlertVisible=!1,this.isToastOpen=!1,this.toastContent="",this.startZoom=1,this.SCREEN_WIDTH=window.screen.width,this.SCREEN_HEIGHT=window.screen.height,this.originalBodyBackground="",this.isTakingPhoto=!1,this.distance=0,this.startCameraZoom=0}connectedCallback(){"single"===this.mode&&(this.currentPhotoMode="single");const e=window.document.querySelector("body");e.style.visibility="hidden",this.originalBodyBackground=window.getComputedStyle(e).background,e.style.background="transparent",this.initCamera()}disconnectedCallback(){o.stopCamera();const e=window.document.querySelector("body");e.style.visibility="visible",e.style.background=this.originalBodyBackground}async requestPermission(){try{this.hasPermission=await o.hasPermission()}catch(e){this.hasPermission=!1}if(!this.hasPermission)try{await o.requestPermission(),this.hasPermission=!0}catch(e){const{code:t,message:a}=e;"PERMISSION_DENIED_NEED_SETTINGS"==t?this.permissionAlertVisible=!0:("PERMISSION_DENIED_FIRST_TIME"!=t&&a&&(this.isToastOpen=!0,this.toastContent=a),this.ctyDismiss.emit())}}async initCamera(){if(await this.requestPermission(),!this.hasPermission)return void this.ctyDismiss.emit();const e=this.getCameraHeight();o.startCamera(Object.assign(Object.assign({y:this.safeArea,camera:"back",backgroundColor:"#000000"},this.options),{x:0,height:e,toBack:!0,tapPhoto:!1,tapFocus:!0,enableAutoSettings:!1,storeToFile:this.file})).catch((e=>{const{code:t}=e;"PERMISSION_DENIED_NEED_SETTINGS"==t&&(this.permissionAlertVisible=!0)}))}close(){this.ctyDismiss.emit()}flipCamera(){return o.switchCamera()}toggleFlash(){return this.flash=!this.flash,this.flash?this.flashOn():this.flashOff()}flashOff(){return o.setFlashMode("off")}flashOn(){return o.setFlashMode("torch")}ratioChange(){const{ratios:e,ratioIndex:t,SCREEN_WIDTH:a}=this,c=e[t];this.ratioIndex++,this.ratioIndex>=e.length&&(this.ratioIndex=0),e[this.ratioIndex].includes(":")&&c.includes(":")||o.setPreviewPosition(0,c.includes(":")?0:this.safeArea);const i=this.getCameraHeight();return o.setPreviewSize({width:a,height:i})}async setZoom(e){const{zooms:t}=this;this.zoomIndex=e;const a=await o.getMaxZoom();let c=(a+1)/this.zoomSteps*t[e]-1;return s.isIos&&(c=t[e]),o.setZoom(0===e?0:Math.min(c,a))}async takePhoto(){const{quality:e,width:t,height:a,includeThumb:c,thumbWidth:i,file:s,max:r,pictures:l}=this;if(r>0&&l.length>=r||"single"===this.currentPhotoMode&&this.pictures.length>0||this.isTakingPhoto)return;this.isTakingPhoto=!0;const m=await o.takePicture({width:t,height:a,quality:e,includeThumb:c,thumbWidth:i});let f="",d="";m&&"object"==typeof m?(f=m.image,d=m.thumbnail):f=m;const h=await n.formatPictureResult(s,f),y=await n.formatPictureResult(s,d);return this.pictures=[...l,Object.assign(Object.assign({},h),{thumbnail:y.url})],this.ctyTakePhoto.emit(h),this.isTakingPhoto=!1,"single"===this.currentPhotoMode&&this.toImageViewer(0),h}deletePicture(e,t){e.stopPropagation();const a=[...this.pictures];a.splice(t,1),this.pictures=a}getCameraHeight(){const{ratios:e,ratioIndex:t,SCREEN_WIDTH:a,SCREEN_HEIGHT:c}=this,i=e[t];if(!i.includes(":"))return c;const[o,s]=i.split(":");return Math.min(c,+s*a/+o)}toImageViewer(e){this.imageViewerIndex=e,this.showImageViewer=!0}closeImageViewer(e){e.stopPropagation(),this.showImageViewer=!1}closeSingleImageViewer(e){this.pictures=[],this.closeImageViewer(e)}confirm(){this.ctyConfirm.emit(this.pictures.map((({url:e,data:t})=>({url:e,data:t}))))}deleteLastPicture(){const e=[...this.pictures];e.pop(),this.pictures=e}resetZoom(){this.currentZoom=1,this.setZoom(0)}async touchstart(e){if(e.stopPropagation(),this.touchZoom&&2==e.touches.length){const t=e.touches[1].clientX-e.touches[0].clientX,a=e.touches[1].clientY-e.touches[0].clientY;this.distance=Math.sqrt(t*t+a*a),this.startCameraZoom=await o.getZoom(),this.startZoom=this.currentZoom}}touchmove(e){if(e.stopPropagation(),this.touchZoom&&2==e.touches.length){const t=e.touches[1].clientX-e.touches[0].clientX,a=e.touches[1].clientY-e.touches[0].clientY,c=Math.sqrt(t*t+a*a);this.updateZoom(this.touchZoomProp*(c-this.distance))}}touchend(e){e.stopPropagation()}async updateZoom(e){const{startCameraZoom:t,startZoom:a}=this;let c=await o.getMaxZoom();const i=(c+1)/this.zoomSteps,n=this.zooms.slice(-1)[0]||10;this.currentZoom=Math.floor(10*(a+e))/10,this.currentZoom=Math.max(this.currentZoom,1),this.currentZoom=Math.min(this.currentZoom,n),s.isIos?c=n:(c=Math.min(c,n*i),e*=i),o.setZoom(Math.min(t+e,c))}async toOpenAppSetting(e){const{item:t}=e.detail;if("permission"==t.action)try{await o.openAppSettings(),this.permissionAlertVisible=!1}catch(t){this.closePermissionAlert(e)}}closePermissionAlert(e){e.stopPropagation(),this.permissionAlertVisible=!1,this.ctyDismiss.emit()}render(){const{title:e,closeIcon:t,flash:i,flipText:o,flashText:s,ratioText:n,ratios:l,ratioIndex:m,zoomIndex:f,zooms:d,mode:h,singleText:y,multipleText:x,currentPhotoMode:b,confirmIcon:p,confirmText:g,deleteIcon:u,pictures:v,showImageViewer:_,imageViewerIndex:w,touchZoom:k,currentZoom:z}=this;return a(c,{key:"249d6c9269af0bb404fa13c2679db953580196be",class:"cty-camera",onClick:e=>e.stopPropagation()},a("cty-nav-bar",{key:"3ddc96ed9540f67485013bd1d52cf593f7a159ec",title:e,type:"clear"},a("slot",{key:"c3124d840af6803fe87669dc1da346b5a51d6dc1",name:"header-start",slot:"start"},!!t&&a("ion-button",{key:"48ebfe61e98a586fb127feb9e57e556108665126",class:"cty-camera__close",onClick:()=>this.close()},a("cty-icon",{key:"8da9e811d18687d6c3c3fd19f3b6d96db3b4d992",class:"cty-camera__close-icon",name:t})))),a("div",{key:"918f5390b8d846231a1fbd3550858114efb3797f",class:"cty-camera-main",onTouchStart:e=>this.touchstart(e),onTouchMove:e=>this.touchmove(e),onTouchEnd:e=>this.touchend(e)},a("div",{key:"4d872387a4bb06d4d5030c181c6a67a9ef19f5aa",class:"cty-camera-widgets",part:"widgets"},!!o&&a("button",{key:"6de4076ab5b8ee8a31a63305fc4fd4c954e87291",class:"cty-button-native cty-camera-widget",part:"widget",onClick:()=>this.flipCamera()},a("cty-icon",{key:"cf2cd7ccbf12a6b972371389045aa7360a7e361c",class:"cty-camera-widget__icon",name:"cty-flip"}),!!o&&a("span",{key:"63816718efe322900dd80192a3c96e1dde0f56bf",class:"cty-camera-widget__text"},o)),!!s&&a("button",{key:"71f482e92876e408cfe4391c92c79789d83ff12b",class:"cty-button-native cty-camera-widget",part:"widget",onClick:()=>this.toggleFlash()},a("cty-icon",{key:"70a2838d229df2418807329013cf2db86c8b2886",class:"cty-camera-widget__icon",name:i?"cty-flash-on":"cty-flash-off"}),!!s&&a("span",{key:"dc6dcb389cde04abe9e94824fc7ab23d7cbd49c3",class:"cty-camera-widget__text"},s)),!!n&&a("button",{key:"13fd40b68adeefca52a5775b2fc86bd0602728c7",class:"cty-button-native cty-camera-widget",part:"ratio",onClick:()=>this.ratioChange()},a("span",{key:"e971f50bb4a923dfb119497d530890dc2a2f4cc2",class:"cty-camera-widget__ratio flex-center"},l[m]),!!n&&a("span",{key:"c13601a6c3866a72120a9b441d971c5134e95b26",class:"cty-camera-widget__text"},n)))),a("div",{key:"b82e91f54f7416c8f8ba0bbc99ad034b7d90d201",class:"cty-camera-controls safe-area-bottom-padding"},"both"==h&&v.length<=0&&a("div",{key:"da4867ad484906fb92bb0b9840ae05cab7f6017c",class:"cty-camera-controls__mode flex-center",part:"mode"},a("button",{key:"8932fc465360764b3d19c2ba0f9afa26df747248",class:{"cty-button-native cty-camera-controls__mode-button":!0,"cty-camera-controls__mode-button__active":"single"===b},onClick:()=>this.currentPhotoMode="single"},y),a("button",{key:"a70dd98026cb8125f04841f3f82ae83bffedea17",class:{"cty-button-native cty-camera-controls__mode-button":!0,"cty-camera-controls__mode-button__active":"multiple"===b},onClick:()=>this.currentPhotoMode="multiple"},x)),a("slot",{key:"706e3c7c60be9bea7a887743981e6c0c83d867a1",name:"zooms"},!k&&d.length>0&&a("div",{key:"dd6fe65fe090190eb2f1f0b678ebfa84f8bbbe31",class:"cty-camera-controls__zooms flex-center",part:"zooms"},d.map(((e,t)=>a("div",{class:{"cty-camera-controls__zoom-item flex-center":!0,"cty-camera-controls__zoom-item__active":f===t},onClick:()=>this.setZoom(t)},a("span",{class:"cty-camera-controls__zoom-text flex-center"},e,"X"))))),k&&a("div",{key:"9f0a68f5c87b36f50807a1ddce3fd7d495f5b0f7",class:"cty-camera-controls__zooms flex-center",part:"zooms"},a("div",{key:"2b1f97c6fbe953d71779f536d408d8a878872b1c",class:{"cty-camera-controls__zoom-item flex-center cty-camera-controls__zoom-item__active":!0},onClick:()=>this.resetZoom()},a("span",{key:"2e16a3df094da8fcfe0b3758732a48bc67e00797",class:"cty-camera-controls__zoom-text flex-center"},z,"X")))),a("div",{key:"06a01b4fcb96b0bd33bde8ed91fc2b436e406791",class:"cty-camera-controls__main flex-center"},a("div",{key:"c748dab6ff814deab00d7f0ff8e2b9ae439acc82",class:"cty-camera-controls__main-left flex-center"}),a("div",{key:"ae6105b6f28bd8be992ebf164987806a5cf52e9c",class:"cty-camera-controls__take-photo flex-center"},a("button",{key:"1bbe3c2225a533fd7f4b9de9b7778c748c4f5a03",class:"cty-button-native cty-camera-controls__take-photo-button",part:"take-photo",onClick:()=>this.takePhoto()})),a("div",{key:"d8b0277f2daf2c6085edd86c18d220a7c24e1e37",class:"cty-camera-controls__main-confirm flex-center"},"single"!==b&&v.length>0&&!!u&&a("button",{key:"cc83aa1aab767ea7a3aef3b44194b4891836c09a",class:"cty-camera-controls__main-delete cty-button-native flex-column-center",onClick:()=>this.deleteLastPicture()},a("cty-icon",{key:"5b2a06c3819fa158b12769b4cea08f7df6cecff2",class:"cty-camera-controls__main-delete-icon",name:u})),"single"!==b&&v.length>0&&a("button",{key:"09642c94b869090cd1381b75a949013623558fb6",class:"cty-button-native flex-column-center",onClick:()=>this.confirm()},a("cty-icon",{key:"09e36ce96317e298f0a54ce6c1d76009a4ad4b95",class:"cty-camera-controls__main-confirm-icon",name:p}),g&&a("span",{key:"9d24bf57e4c32abbbfb95671c1191f7d85adfce4",class:"cty-camera-controls__main-confirm-text"},g)))),a("slot",{key:"5530ce7f1411007acfd28326b53b5caa52c52376",name:"images"},a("div",{key:"2a9366f14ff5878bb704703d9fd65a4549c002fb",class:"cty-camera-controls__images flex-align-center"},"single"!==b&&v.map(((e,t)=>a("div",{class:"cty-camera-controls__image",onClick:()=>this.toImageViewer(t)},a("img",{class:"cty-camera-controls__image-img",src:e.thumbnail||e.url}),a("button",{class:"cty-button-native",onClick:e=>this.deletePicture(e,t)},a("cty-icon",{class:"cty-camera-controls__image-delete",name:r})))))))),_&&a("cty-image-viewer",{key:"5c3f82c1f25c434e79c2df83f657c25cc42f0ffc",images:v.map((e=>e.url)),initialSlide:w,overlayIndex:100,backdropDismiss:!1,closeable:!1,onCtyDismiss:e=>this.closeImageViewer(e)},"multiple"!==b&&a("div",{key:"2c0753cab107695962bbdd55ab9b334e91c361a2",class:"cty-camera-viewer__single flex-center-between",slot:"pager"},a("button",{key:"3cf7393d965245e4b7072afe50412c150840cec3",class:"cty-camera-viewer__single-close cty-button-native",onClick:e=>this.closeSingleImageViewer(e)},a("cty-icon",{key:"db1b6d35ff40650a00903d37d03adf9c4e7ce311",name:"cty-close2"})),a("button",{key:"25df5828eafcc1191e826445e0b20e41eec869bf",class:"cty-camera-viewer__single-confirm cty-button-native",onClick:()=>this.confirm()},a("cty-icon",{key:"e96ba7b2413df359b4ab6ea184250edbf3618d2a",name:"cty-tick"}))),"multiple"!==b&&a("i",{key:"8a167eb7c089ede4aeff07e73cd14424a0ccca55",slot:"close"})),this.permissionAlertVisible&&a("cty-permission-alert",{key:"3fb0cd60cb246d94f12a6adff586087071075ea2",title:this.permissionAlertTitle,content:this.permissionAlertContent,buttons:this.permissionAlertbuttons,onCtyDismiss:e=>this.closePermissionAlert(e),onCtyTap:e=>this.toOpenAppSetting(e)}),a("ion-toast",{key:"ac0224081e8ce22eaebfd7224391cf1957c2ff47","is-open":this.isToastOpen,message:this.toastContent,duration:2e3,position:"middle"}))}get el(){return i(this)}};h.style="*{-webkit-box-sizing:border-box;box-sizing:border-box}p,h1,h2,h3,h4,h5,h6{margin:0;padding:0}.flex{display:-ms-flexbox;display:flex}.flex-wrap{display:-ms-flexbox;display:flex;-ms-flex-flow:wrap;flex-flow:wrap}.flex-align-start{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.flex-align-center{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.flex-align-end{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end}.flex-justify-start{display:-ms-flexbox;display:flex;-ms-flex-pack:start;justify-content:flex-start}.flex-justify-center{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.flex-justify-end{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end}.flex-align-end-start{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end;-ms-flex-pack:start;justify-content:flex-start}.flex-align-end-center{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end;-ms-flex-pack:center;justify-content:center}.flex-align-end-end{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end;-ms-flex-pack:end;justify-content:flex-end}.flex-center{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.flex-center-justify-end{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}.flex-between{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.flex-center-between{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.flex-column{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column}.flex-column-align-center{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-align:center;align-items:center}.flex-column-justify-center{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:center;justify-content:center}.flex-column-center{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.flex-column-between{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:justify;justify-content:space-between}.flex-column-center-between{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.cty-button-native{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin:0;padding:0;background:transparent;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;line-height:1;border:0;outline:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0;-webkit-box-shadow:none;box-shadow:none;cursor:pointer}:host{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;position:fixed;left:0;top:0;z-index:20099;width:100vw !important;height:100vh !important;visibility:visible !important}.cty-camera__close[class]{margin:0;min-height:var(--cty-camera-close-min-hieght, 3.1em);--background:transparent;--background-activated:transparent;--background-focused:transparent;--background-hover:transparent;--box-shadow:none;--padding-top:var(--cty-camera-close-padding-top, 3px);--padding-bottom:var(--cty-camera-close-padding-bottom, 3px);--padding-start:var(--cty-camera-close-padding-start, 6px);--padding-end:var(--cty-camera-close-padding-end, 6px);--color:var(--cty-camera-close-color, var(--cty-text-color-white))}.cty-camera__close-icon{font-size:var(--cty-camera-close-font-size, 28px)}.cty-camera-main{-ms-flex:1;flex:1;position:relative}.cty-camera-widgets{position:absolute;top:0;right:15px}.cty-camera-widget{-ms-flex-direction:column;flex-direction:column;margin-bottom:var(--cty-camera-camera-widget-offset-y, 30px);color:var(--cty-camera-camera-widget-color, #fff)}.cty-camera-widget__icon{font-size:var(--cty-camera-camera-widget-icon-size, 20px)}.cty-camera-widget__text{margin-top:var(--cty-camera-camera-widget-text-offset-y, 5px);font-size:var(--cty-camera-camera-widget-text-size, var(--cty-font-size-extra-small))}.cty-camera-widget__ratio{width:24px;height:16px;border-radius:2px;border:1px solid var(--cty-camera-camera-widget-color, #fff);font-size:10px}.cty-camera-controls{margin-top:auto}.cty-camera-controls__mode{width:-webkit-max-content;width:-moz-max-content;width:max-content;padding:var(--cty-camera-camera-controls-mode-padding, 2px);margin:var(--cty-camera-camera-controls-mode-offset, 0 auto 15px);background:var(--cty-camera-camera-controls-mode-bg, rgba(0, 0, 0, 0.5));border-radius:var(--cty-camera-camera-controls-mode-radius, 3px);color:var(--cty-camera-camera-controls-mode-color, #fff)}.cty-camera-controls__mode-button{padding:var(--cty-camera-camera-controls-mode-button-padding, 3px 5px);border-radius:var(--cty-camera-camera-controls-mode-button-radius, 3px);font-size:var(--cty-camera-camera-controls-mode-button-font-szie, var(--cty-font-size-extra-small))}.cty-camera-controls__mode-button__active{background:var(--cty-camera-camera-controls-mode-button-active-bg, #fff);color:var(--cty-camera-camera-controls-mode-button-active-color, #000)}.cty-camera-controls__zooms{margin:var(--cty-camera-camera-controls-zooms-offset, 0 0 15px)}.cty-camera-controls__zoom-item{width:var(--cty-camera-camera-controls-zoom-active-size, 28px);height:var(--cty-camera-camera-controls-zoom-active-size, 28px);border-radius:50%}.cty-camera-controls__zoom-item:not(:last-child){margin-right:var(--cty-camera-camera-controls-zoom-offset, 10px)}.cty-camera-controls__zoom-item__active{border:var(--cty-camera-camera-controls-zoom-active-border, 1px solid #fff)}.cty-camera-controls__zoom-item__active .cty-camera-controls__zoom-text{background:var(--cty-camera-camera-controls-zoom-active-bg, transparent)}.cty-camera-controls__zoom-text{width:var(--cty-camera-camera-controls-zoom-size, 24px);height:var(--cty-camera-camera-controls-zoom-size, 24px);background:var(--cty-camera-camera-controls-zoom-bg, rgba(0, 0, 0, 0.3));border-radius:50%;color:var(--cty-camera-camera-controls-color, #fff);font-size:var(--cty-camera-camera-controls-zoom-font-size, 10px);font-weight:var(--cty-camera-camera-controls-zoom-font-weight, 600)}.cty-camera-controls__main{margin:var(--cty-camera-camera-controls-take-photo-offset, 0 0 15px)}.cty-camera-controls__take-photo{width:var(--cty-camera-camera-controls-take-photo-size, 60px);height:var(--cty-camera-camera-controls-take-photo-size, 60px);border-radius:50%;border:var(--cty-camera-camera-controls-take-photo-border, 2px solid #fff)}.cty-camera-controls__take-photo-button{width:var(--cty-camera-camera-controls-take-photo-button-size, 48px);height:var(--cty-camera-camera-controls-take-photo-button-size, 48px);border-radius:50%;background:var(--cty-camera-camera-controls-color, #fff)}.cty-camera-controls__take-photo-button:active{-webkit-transform:scale(0.9);transform:scale(0.9);-webkit-transition:-webkit-transform 0.05s cubic-bezier(0.2, 0.9, 0.4, 1.1);transition:-webkit-transform 0.05s cubic-bezier(0.2, 0.9, 0.4, 1.1);transition:transform 0.05s cubic-bezier(0.2, 0.9, 0.4, 1.1);transition:transform 0.05s cubic-bezier(0.2, 0.9, 0.4, 1.1), -webkit-transform 0.05s cubic-bezier(0.2, 0.9, 0.4, 1.1);-webkit-box-shadow:0 3px 8px rgba(0, 0, 0, 0.2);box-shadow:0 3px 8px rgba(0, 0, 0, 0.2);-webkit-filter:brightness(0.96);filter:brightness(0.96)}.cty-camera-controls__main-left,.cty-camera-controls__main-confirm{-ms-flex:1;flex:1}.cty-camera-controls__main-confirm-icon{font-size:var(--cty-camera-camera-controls-confirm-icon-size, 24px);color:var(--cty-camera-camera-controls-confirm-icon-color, var(--cty-color-danger))}.cty-camera-controls__main-confirm-text{margin-top:var(--cty-camera-camera-controls-confirm-text-offset, 5px);font-size:var(--cty-camera-camera-controls-confirm-text-size, 12px);color:var(--cty-camera-camera-controls-confirm-text-color, #fff)}.cty-camera-controls__main-delete{margin-right:var(--cty-camera-camera-controls-delete-offser, 30px)}.cty-camera-controls__main-delete-icon{font-size:var(--cty-camera-camera-controls-delete-icon-size, 20px);color:var(--cty-camera-camera-controls-delete-icon-color, #fff)}.cty-camera-controls__images{overflow-x:auto;width:100%;min-height:var(--cty-camera-camera-controls-images-min-height, 84px);padding:var(--cty-camera-camera-controls-images-padding, 0 15px);margin:var(--cty-camera-camera-controls-images-offset, 15px 0)}.cty-camera-controls__image{-ms-flex:none;flex:none;position:relative;width:var(--cty-camera-camera-controls-image-size, 54px);height:var(--cty-camera-camera-controls-image-size, 54px)}.cty-camera-controls__image:not(:last-child){margin-right:var(--cty-camera-camera-controls-image-offset, 10px)}.cty-camera-controls__image-img{display:block;width:100%;height:100%;border-radius:var(--cty-camera-camera-controls-image-border-radius, 8px);-o-object-fit:var(--cty-camera-camera-controls-image-object-fit, cover);object-fit:var(--cty-camera-camera-controls-image-object-fit, cover)}.cty-camera-controls__image-delete{position:absolute;top:0;right:0;width:var(--cty-camera-camera-controls-image-delete-size, 20px);height:var(--cty-camera-camera-controls-image-delete-size, 20px);background:var(--cty-camera-camera-controls-image-delete-bg, rgba(0, 0, 0, 0.5));border-radius:var(--cty-camera-camera-controls-image-delete-border-radius, 0 8px);color:var(--cty-camera-camera-controls-image-delete-color, #fff);font-size:var(--cty-camera-camera-controls-image-delete-font-size, 18px)}.cty-camera-viewer__single{min-height:var(--cty-camera-viewer-single-min-height, 44px);padding:var(--cty-camera-viewer-single-padding, 0 15px)}.cty-camera-viewer__single-close,.cty-camera-viewer__single-confirm{font-size:var(--cty-image-viewer-single-close-size, 20px);color:var(--cty-image-viewer-single-close-color, #fff)}";const y=class{constructor(a){e(this,a),this.ctyCancel=t(this,"ctyCancel",7),this.ctyConfirm=t(this,"ctyConfirm",7),this.url="",this.cancelText="取消",this.confirmText="选取",this.imageWidth=750,this.imageBackground="",this.quality=1,this.suffix="jpeg",this.maxScale=2,this.minScale=1,this._startX=0,this._startY=0,this._distance=0,this._scale=1}doTouchStart(e){var t,a,c,i,o;try{e.preventDefault(),e.stopPropagation()}catch(e){}if(this.imageEl.style.transition="none","mousedown"===e.type||1==(null===(t=null==e?void 0:e.targetTouches)||void 0===t?void 0:t.length)){const{x:t,y:a}=m(e);this._startX=t,this._startY=a,"mousedown"===e.type&&(this.el.onmousemove=e=>{this.doTouchMove(e)},this.el.onmouseup=()=>{this.doTouchEnd(),this.el.onmousemove=null,this.el.onmouseup=null})}else{const t=(null===(a=null==e?void 0:e.targetTouches[1])||void 0===a?void 0:a.clientX)-(null===(c=null==e?void 0:e.targetTouches[0])||void 0===c?void 0:c.clientX),s=(null===(i=null==e?void 0:e.targetTouches[1])||void 0===i?void 0:i.clientY)-(null===(o=null==e?void 0:e.targetTouches[0])||void 0===o?void 0:o.clientY);this._distance=Math.sqrt(t*t+s*s)}}doTouchMove(e){var t;try{e.preventDefault(),e.stopPropagation()}catch(e){}if("mousemove"===e.type||1==(null===(t=null==e?void 0:e.targetTouches)||void 0===t?void 0:t.length)){const{x:t,y:a}=m(e),c=t-this._startX,i=a-this._startY;this._startX=t,this._startY=a;const o=this.imageEl,s=f(o),n=f(this.clipEl);let r=1,l=1;s.x>n.x?r=10/Math.ceil(s.x-n.x):s.right<n.right&&(r=10/Math.ceil(n.right-s.right)),r=Math.min(1,r),s.y>n.y?l=10/Math.ceil(s.y-n.y):s.bottom<n.bottom&&(l=10/Math.ceil(n.bottom-s.bottom)),l=Math.min(1,l);const d=o.offsetTop+i*l;this.imageEl.style.left=o.offsetLeft+c*r+"px",this.imageEl.style.top=d+"px"}else{const t=e.touches[1].clientX-e.touches[0].clientX,a=e.touches[1].clientY-e.touches[0].clientY,c=Math.sqrt(t*t+a*a);let i=this._scale+.01*(c-this._distance);i=d(i,this.minScale/2,this.maxScale+1),this.imageEl.style.transform="translate(-50%,-50%) scale("+i+")",this._distance=c,this._scale=i}}doTouchEnd(){const e=this.clipEl,t=this.el,a=this.imageEl,c=this.clipEl.getBoundingClientRect();this._scale<this.minScale?this._scale=this.minScale:this._scale>this.maxScale&&(this._scale=this.maxScale),this.imageEl.style.transform="translate(-50%,-50%) scale("+this._scale+")";const i=f(a);let o=a.offsetLeft,s=a.offsetTop;i.x>c.x?o=c.x+i.width/2:i.right<c.right&&(o=c.right-i.width/2),i.y>c.y?s=c.y+i.height/2:i.bottom<c.bottom&&(s=c.bottom-i.height/2),this.imageEl.style.transition=".2s",this.imageEl.style.left=o+"px",e.offsetHeight>i.height&&(s=t.offsetHeight/2),this.imageEl.style.top=s+"px"}_doCancel(e){try{e.preventDefault(),e.stopPropagation()}catch(e){}this.ctyCancel.emit()}async _doConfirm(e){try{e.preventDefault(),e.stopPropagation()}catch(e){}const t=await this.getCanvasImg();this.ctyConfirm.emit(t)}getCanvasImg(){return new Promise(((e,t)=>{try{const t=this.clipEl,a=document.createElement("canvas"),c=a.getContext("2d"),i=this.imageWidth*t.clientHeight/t.clientWidth,o=this.imageEl.children[0];a.width=this.imageWidth,a.height=this.imageWidth*t.clientHeight/t.clientWidth,c.clearRect(0,0,this.imageWidth,i),this.imageBackground&&(c.beginPath(),c.fillStyle=this.imageBackground,c.fillRect(0,0,this.imageWidth,i)),c.beginPath();const s=this.imageEl.getBoundingClientRect(),n=t.getBoundingClientRect(),r=n.y-s.y,l=n.x-s.x,m=new Image;m.onload=()=>{const i=m.width/s.width;c.drawImage(o,l*i,r*i,t.clientWidth*i,t.clientHeight*i,0,0,a.width,a.height);let n=a.toDataURL(`image/${this.suffix}`,this.quality);n=n.replace(`data:image/${this.suffix};base64,`,""),n=n.replace("data:image/jgp;base64,",""),n=n.replace("data:image/jpeg;base64,",""),n=n.replace("data:image/jpg;base64,",""),n=n.replace("data:image/png;base64,",""),e({data:n,url:`data:image/${this.suffix};base64,`+n})},m.src=o.src}catch(e){t(e)}}))}renderButtons(){if(!this.cancelText&&!this.confirmText)return null;const e=a("button",{class:"cty-crop-image__button cty-button-native",onTouchEnd:e=>this._doCancel(e),onMouseUp:e=>this._doCancel(e)},this.cancelText),t=a("button",{class:"cty-crop-image__button cty-button-native",onTouchEnd:e=>this._doConfirm(e),onMouseUp:e=>this._doConfirm(e)},this.confirmText);return a("div",{class:"cty-crop-image__buttons flex-center-between safe-area-bottom-border-color"},this.cancelText&&e,this.confirmText&&t)}render(){return a(c,{key:"3805ba12b7e6f2809399b8a9f213e4a4131b081c",class:"cty-crop-image",onMouseDown:e=>this.doTouchStart(e),onTouchStart:e=>this.doTouchStart(e),onTouchMove:e=>this.doTouchMove(e),onTouchEnd:()=>this.doTouchEnd()},a("slot",{key:"441105402304f96770ff61b883993c952f7ea4a9",name:"header"}),a("div",{key:"affa68ce2eacf57bff5dcbc140c1da82d59dc8a3",class:"cty-crop-image__wrapper",ref:e=>this.imageEl=e},a("img",{key:"9c5dd8cafb8e14f7f0e5d6ee2cc999a139580342",src:this.url,class:"cty-crop-image__image"})),a("div",{key:"eafd9083b6728615b767dae842c8b102ad40916d",class:"cty-crop-image__clip",ref:e=>this.clipEl=e}),a("slot",{key:"25cb5fb31191e0a991064164b4c5752f39b7499b",name:"clip"}),this.renderButtons(),a("slot",{key:"e60a010fea26d6fa38a380c4cb9f6c4c28c25558",name:"footer"}))}get el(){return i(this)}};y.style="*{-webkit-box-sizing:border-box;box-sizing:border-box}p,h1,h2,h3,h4,h5,h6{margin:0;padding:0}.flex{display:-ms-flexbox;display:flex}.flex-wrap{display:-ms-flexbox;display:flex;-ms-flex-flow:wrap;flex-flow:wrap}.flex-align-start{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.flex-align-center{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.flex-align-end{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end}.flex-justify-start{display:-ms-flexbox;display:flex;-ms-flex-pack:start;justify-content:flex-start}.flex-justify-center{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.flex-justify-end{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end}.flex-align-end-start{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end;-ms-flex-pack:start;justify-content:flex-start}.flex-align-end-center{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end;-ms-flex-pack:center;justify-content:center}.flex-align-end-end{display:-ms-flexbox;display:flex;-ms-flex-align:end;align-items:flex-end;-ms-flex-pack:end;justify-content:flex-end}.flex-center{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.flex-center-justify-end{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}.flex-between{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.flex-center-between{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.flex-column{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column}.flex-column-align-center{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-align:center;align-items:center}.flex-column-justify-center{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:center;justify-content:center}.flex-column-center{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.flex-column-between{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:justify;justify-content:space-between}.flex-column-center-between{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.plt-hybrid .safe-area-bottom-border{-webkit-box-sizing:content-box;box-sizing:content-box;border-bottom:var(--ion-safe-area-bottom, 0) solid var(--cty-color-white)}.plt-hybrid .safe-area-bottom-border-color{-webkit-box-sizing:content-box;box-sizing:content-box;border-bottom:var(--ion-safe-area-bottom, 0) solid currentColor}.plt-hybrid .safe-area-bottom-padding{padding-bottom:var(--ion-safe-area-bottom, 0)}.cty-button-native{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin:0;padding:0;background:transparent;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;line-height:1;border:0;outline:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0;-webkit-box-shadow:none;box-shadow:none;cursor:pointer}:host{--cty-crop-image-clip-width:100vw;--cty-crop-image-clip-height:100vw;--cty-crop-image-clip-background:var(--cty-overlay-color);--cty-crop-image-clip-border:1px solid #767676;--cty-crop-image-buttons-padding:12px 0;--cty-crop-image-button-padding:0 12px;--cty-crop-image-button-color:var(--cty-color-white);--cty-crop-image-button-active-color:var(--cty-color-white);--cty-crop-image-button-size:var(--cty-font-size-base);--cty-crop-image-button-line-height:30px;--cty-crop-image-button-weight:400;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;position:relative;width:100vw;height:100vh;background:var(--cty-color-black)}.cty-crop-image__wrapper{position:absolute;width:100%;left:50%;top:50%;-webkit-transform:translate(-50%, -50%) scale(1);transform:translate(-50%, -50%) scale(1)}.cty-crop-image__image{display:block;width:100%;pointer-events:none}.cty-crop-image__clip{position:relative;width:var(--cty-crop-image-clip-width);max-width:var(--cty-crop-image-width);height:var(--cty-crop-image-clip-height);border:var(--cty-crop-image-clip-border);-webkit-box-shadow:0 0 0 1000px var(--cty-crop-image-clip-background);box-shadow:0 0 0 1000px var(--cty-crop-image-clip-background)}.cty-crop-image__buttons{position:absolute;left:0;right:0;bottom:0;background-color:rgba(19, 19, 19, 0.7);padding:var(--cty-crop-image-buttons-padding)}.cty-crop-image__button{padding:var(--cty-crop-image-button-padding);font-size:var(--cty-crop-image-button-size);color:var(--cty-crop-image-button-color);line-height:var(--cty-crop-image-button-line-height);font-weight:var(--cty-crop-image-button-weight)}.cty-crop-image__button+.cty-crop-image__button{color:var(--cty-crop-image-button-active-color)}";export{h as cty_camera,y as cty_crop_image}
|