{"version":3,"file":"cty-mobile-ui-services.mjs","sources":["../../../packages/components/services/controller.ts","../../../packages/components/services/download.ts","../../../packages/components/services/inspect.ts","../../../packages/components/services/pay.ts","../../../packages/components/services/util.ts","../../../packages/components/services/photo.ts","../../../packages/components/services/record.ts","../../../packages/components/services/share.ts","../../../packages/components/services/cty-mobile-ui-services.ts"],"sourcesContent":["import {Injectable, inject} from '@angular/core';\r\nimport {\r\n    ToastController,\r\n    AlertController,\r\n    ModalController,\r\n    ActionSheetController,\r\n    LoadingController,\r\n    PopoverController,\r\n    PickerController,\r\n    ToastOptions,\r\n    AlertOptions,\r\n    ActionSheetOptions,\r\n    ModalOptions,\r\n    LoadingOptions,\r\n    PopoverOptions,\r\n    PickerOptions\r\n} from '@ionic/angular/standalone';\r\nimport {CTYUtil} from 'cty-mobile-ui/utils';\r\n@Injectable({providedIn: 'root'})\r\nexport class CTYControllerService {\r\n    private _toastCtrl : ToastController = inject(ToastController);\r\n    private _alertCtrl : AlertController = inject(AlertController);\r\n    private _modalCtrl : ModalController = inject(ModalController);\r\n    private _actionSheetCtrl : ActionSheetController = inject(ActionSheetController);\r\n    private _loadingCtrl : LoadingController = inject(LoadingController);\r\n    private _popoverCtrl : PopoverController = inject(PopoverController);\r\n    private _pickerCtrl : PickerController = inject(PickerController);\r\n    constructor() {}\r\n\r\n    public async ActionSheet(opt : ActionSheetOptions): Promise < HTMLIonActionSheetElement > {\r\n        const actionSheet = await this._actionSheetCtrl.create(\r\n            {\r\n                ...opt\r\n            }\r\n        );\r\n        await actionSheet.present();\r\n        return actionSheet;\r\n    }\r\n    public async Alert(opt : AlertOptions | string): Promise < HTMLIonAlertElement > {\r\n        const options: AlertOptions = {\r\n            ...CTYUtil.alertCfg\r\n        };\r\n        if (typeof opt === 'string') {\r\n            options.message = opt;\r\n        } else {\r\n            Object.assign(options, opt);\r\n        };\r\n        const alert = await this._alertCtrl.create(options);\r\n        await alert.present();\r\n        return alert;\r\n    }\r\n    public async Loading(opt : LoadingOptions): Promise < HTMLIonLoadingElement > {\r\n        const loading = await this._loadingCtrl.create(opt);\r\n        await loading.present();\r\n        return loading;\r\n    }\r\n    public async Modal(opt : ModalOptions): Promise < HTMLIonModalElement > {\r\n        const modal = await this._modalCtrl.create(\r\n            {\r\n                showBackdrop: false,\r\n                keyboardClose: false,\r\n                ...opt\r\n            }\r\n        );\r\n        await modal.present();\r\n        return modal;\r\n    }\r\n    public async Picker(opt : PickerOptions): Promise < HTMLIonPickerElement > {\r\n        const picker = await this._pickerCtrl.create(opt);\r\n        await picker.present();\r\n        return picker;\r\n    }\r\n    public async Popover(e : Event, opt : PopoverOptions): Promise < HTMLIonPopoverElement > {\r\n        const popover = await this._popoverCtrl.create(\r\n            {\r\n                event: e,\r\n                ...opt\r\n            }\r\n        );\r\n        await popover.present();\r\n        return popover;\r\n    }\r\n    public async Toast(opt : ToastOptions | string): Promise < HTMLIonToastElement > {\r\n        const options: ToastOptions = {\r\n            ...CTYUtil.toastCfg\r\n        };\r\n        if (typeof opt === 'string') {\r\n            options.message = opt;\r\n        } else {\r\n            Object.assign(options, opt);\r\n        };\r\n        const toast = await this._toastCtrl.create(options);\r\n        await toast.present();\r\n        return toast;\r\n    }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { Platform } from '@ionic/angular';\r\nimport { PhotoLibrary, GetThumbnailOptions, LibraryItem } from '@awesome-cordova-plugins/photo-library/ngx';\r\nimport { File } from '@awesome-cordova-plugins/file/ngx';\r\nimport { FileTransfer } from '@awesome-cordova-plugins/file-transfer/ngx';\r\n\r\nexport enum DownloadType {\r\n  IMAGE = 1,\r\n  VIDEO = 2,\r\n  FILE = 3\r\n}\r\n\r\nexport interface DownloadOption {\r\n  url: string;\r\n  type?: DownloadType;\r\n  fileName?: string;\r\n  album?: string;\r\n  width?: number;\r\n  height?: number;\r\n  quality?: number;\r\n}\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class CTYDownloadService {\r\n\r\n  platform = inject(Platform);\r\n  photoLibrary = inject(PhotoLibrary);\r\n  file = inject(File);\r\n  fileTransfer = inject(FileTransfer);\r\n\r\n  constructor() { }\r\n\r\n  public Download(opt: DownloadOption): Promise<LibraryItem | void | any> {\r\n    if (opt.type === DownloadType.FILE) {\r\n      return this.DownloadFile(opt);\r\n    }\r\n    return this.DownloadAlbum(opt);\r\n  }\r\n\r\n  private DownloadAlbum(opt: DownloadOption): Promise<LibraryItem | void> {\r\n    return new Promise((resolve, reject) => {\r\n      if (opt.type === DownloadType.VIDEO) {\r\n        this.photoLibrary.saveVideo(opt.url, opt.album || 'cty').then((value:void) => {\r\n          resolve(value);\r\n        }).catch((reason) => {\r\n          reject(reason);\r\n        });\r\n        return\r\n      }\r\n      let options: GetThumbnailOptions | undefined;\r\n      if (opt.width || opt.height || opt.quality) {\r\n        options = {\r\n          thumbnailWidth: opt.width,\r\n          thumbnailHeight: opt.height,\r\n          quality: opt.quality\r\n        }\r\n      }\r\n\r\n      this.photoLibrary.saveImage(opt.url, opt.album || 'cty', options).then((value) => {\r\n        resolve(value);\r\n      }).catch((reason) => {\r\n        reject(reason);\r\n      });\r\n    })\r\n  }\r\n\r\n  private DownloadFile(opt: DownloadOption): Promise<any> {\r\n    return new Promise(async (resolve, reject) => {\r\n      const path = this.platform.is('ios') ? this.file.documentsDirectory : this.file.externalRootDirectory;\r\n      const dir = opt.album || 'download';\r\n      let hasDir = await this.file.checkDir(path, dir).catch(err => {\r\n        console.log(err);\r\n      });\r\n      while (!hasDir) {\r\n        try {\r\n          this.file.createDir(path, dir, false);\r\n        } catch (error) {\r\n          hasDir = await this.file.checkDir(path, dir).catch(err => {\r\n            console.log(err);\r\n          });\r\n        }\r\n      }\r\n      const transfer = this.fileTransfer.create();\r\n      transfer.download(opt.url, `${path}${dir}/${opt.fileName}`).then(value => {\r\n        resolve(value);\r\n      }).catch(reason => {\r\n        reject(reason);\r\n      });\r\n    })\r\n  }\r\n}","import {Injectable, inject} from '@angular/core';\r\nimport {Network} from '@awesome-cordova-plugins/network/ngx';\r\nimport {Platform} from '@ionic/angular/standalone';\r\ndeclare let Wechat: any;\r\n@Injectable({providedIn: 'root'})\r\nexport class CTYInspectService {\r\n    private network : Network = inject(Network);\r\n    private platform : Platform = inject(Platform);\r\n    constructor() {}\r\n    IsWifi(): boolean {\r\n        return !this.network ?. type || this.network ?. type === 'wifi' || this.network ?. type === 'none';\r\n    }\r\n    IsInstalledWechat(): Promise < boolean > {\r\n        return new Promise<boolean>((resolve, reject) => {\r\n            Wechat.isInstalled((installed : boolean) => {\r\n                resolve(installed);\r\n            }, (reason : string) => {\r\n                reject(reason);\r\n            });\r\n        })\r\n    }\r\n    IsIos(): boolean {\r\n        return this.platform.is('ios');\r\n    }\r\n    IsAndroid(): boolean {\r\n        return this.platform.is('android');\r\n    }\r\n    IsIpad(): boolean {\r\n        return this.platform.is('ipad') || this.platform.is('tablet');\r\n    }\r\n    IsMicroMessager(): boolean {\r\n        return this.platform.testUserAgent('MicroMessenger');\r\n    }\r\n    IsPC(): boolean {\r\n        return this.platform.is('desktop') || this.platform.is('electron') || (!this.platform.is('hybrid') && !this.IsMobile());\r\n    }\r\n    IsHybrid(): boolean {\r\n        return this.platform.is('hybrid');\r\n    }\r\n    IsMobile(): boolean {\r\n        return this.platform.is('mobile');\r\n    }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nexport interface WXOrder{\r\n    appid: string;\r\n    timestamp: string;\r\n    nonce: string;\r\n    package: string;\r\n    sign: string;\r\n    [key: string]: any;\r\n}\r\n@Injectable({providedIn: 'root'})\r\nexport class CTYPayService {\r\n    private WXPayRequest:(ev: Event) => any = ()=>{};\r\n    constructor() {}\r\n    ApplePay(product_id:string) {\r\n        return new Promise((resolve, reject) => {\r\n            const InAppPurchase = (window as any).inAppPurchase;\r\n            InAppPurchase.getProducts([product_id]).then(()=>{\r\n                InAppPurchase.buy(product_id).then((data:any)=>{\r\n                    InAppPurchase.consume(data.productType, data.receipt, data.signature);\r\n                    resolve(data);\r\n                }).catch((error: any)=>{\r\n                    reject({error, type:'buy'});\r\n                })\r\n            }).catch((error: any)=>{\r\n                reject({error, type:'get'});\r\n            })\r\n        })\r\n    }\r\n    AliPay(patInfo : string) {\r\n        return new Promise((resolve, reject) => {\r\n            try {\r\n                (window as any).cordova.plugins.alipay.payment(patInfo, (data : any) => resolve(data), (resson : any) => reject(resson))\r\n            } catch (error : any) {\r\n                reject(error);\r\n            }\r\n        })\r\n    }\r\n    WechatPay(patInfo : string) {\r\n        return new Promise((resolve, reject) => {\r\n            try {\r\n                (window as any).Wechat.sendPaymentRequest(patInfo, (e : any) => resolve(e), (resson : any) => reject(resson));\r\n            } catch (error : any) {\r\n                reject(error);\r\n            }\r\n        })\r\n    }\r\n    WXPay(order:WXOrder) {\r\n        return new Promise((resolve, reject) => {\r\n            try {\r\n                if (typeof(window as any).WeixinJSBridge == \"undefined\"){\r\n                    this.WXPayRequest = this.getBrandWCPayRequest.bind(this, order, resolve, reject);\r\n                    document.addEventListener(\"WeixinJSBridgeReady\",this.WXPayRequest, false);\r\n                }else{\r\n                    this.getBrandWCPayRequest(order, resolve, reject);\r\n                }\r\n            } catch (error) {\r\n                reject(error);\r\n            }\r\n        })\r\n    }\r\n    private getBrandWCPayRequest(order:WXOrder, resolve:(value: unknown) => void, reject:(reason?: any) => void) {\r\n        (window as any).WeixinJSBridge.invoke(\"getBrandWCPayRequest\", {\r\n            appId: order.appid, // 公众号名称，由商户传入\r\n            timeStamp: order.timestamp, // 时间戳，自1970年以来的秒数\r\n            nonceStr: order.nonce, // 随机串\r\n            package: order.package,\r\n            signType: \"MD5\", // 微信签名方式：\r\n            paySign: order.sign, // 微信签名\r\n        }, (res:any)=>{\r\n            if (res.err_msg == \"get_brand_wcpay_request:ok\") {\r\n                resolve(res); // 使用以上方式判断前端返回,微信团队郑重提示：res.err_msg将在用户支付成功后返回    ok，但并不保证它绝对可靠。\r\n                document.removeEventListener(\"WeixinJSBridgeReady\",this.WXPayRequest, false);\r\n            } else {\r\n                reject(res.err_msg);\r\n            }\r\n        });\r\n    }\r\n}\r\n","import {Injectable, inject} from '@angular/core';\r\nimport {\r\n    DomSanitizer,\r\n    SafeHtml,\r\n    SafeStyle,\r\n    SafeScript,\r\n    SafeUrl,\r\n    SafeResourceUrl\r\n} from '@angular/platform-browser';\r\nimport { CTYInspectService } from './inspect';\r\nimport {StatusBar} from '@awesome-cordova-plugins/status-bar/ngx';\r\nexport type SafeType = 'html' | 'style' | 'script' | 'url' | 'resource';\r\nexport type SafeFnType = 'bypassSecurityTrustHtml' | 'bypassSecurityTrustStyle' | 'bypassSecurityTrustScript' | 'bypassSecurityTrustUrl' | 'bypassSecurityTrustResourceUrl';\r\n@Injectable({providedIn: 'root'})\r\nexport class CTYUtilService {\r\n    private sanitizer : DomSanitizer = inject(DomSanitizer);\r\n    private statusBar : StatusBar = inject(StatusBar);\r\n    constructor(private ctyInspectService:CTYInspectService) {}\r\n    BypassSecurityTrust(val : string, type : SafeType = 'html'): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\r\n        let key: SafeFnType;\r\n        switch (type) {\r\n            case 'html': key = 'bypassSecurityTrustHtml';\r\n                break;\r\n            case 'style': key = 'bypassSecurityTrustStyle';\r\n                break;\r\n            case 'script': key = 'bypassSecurityTrustScript';\r\n                break;\r\n            case 'url': key = 'bypassSecurityTrustUrl';\r\n                break;\r\n            case 'resource': key = 'bypassSecurityTrustResourceUrl';\r\n                break;\r\n        }\r\n        \r\n        return this.sanitizer[key](val);\r\n    }\r\n    FormatLocalPreview(value : string) {\r\n        return(window as any)['Ionic'].WebView.convertFileSrc(value);\r\n    }\r\n    ToggleStatusBar(enable : boolean): void {\r\n        if (enable) {\r\n            (window as any)['StatusBar']?.show(true);\r\n        } else {\r\n            this.statusBar.hide();\r\n        }\r\n    }\r\n    async CheckAppPermission(permission:string):Promise<unknown | boolean> {\r\n        if(this.ctyInspectService.IsIos() || this.ctyInspectService.IsMicroMessager()){\r\n            return true;\r\n        }\r\n        return new Promise((resolve,reject) =>{\r\n            try {\r\n                let permissions = (window as any)['cordova']['plugins']['permissions'];\r\n                permissions.checkPermission(permissions[permission], (status: {hasPermission: boolean}) => {\r\n                    resolve(status.hasPermission??true);\r\n                },(_:string)=>{\r\n                    reject(true);\r\n                });\r\n            } catch (_) {reject(true);}\r\n        }).catch(()=>false);\r\n    }\r\n}\r\n","import {Injectable, inject} from '@angular/core';\r\nimport {CTYInspectService} from './inspect';\r\nimport {CTYUtilService} from './util';\r\nimport {Camera, CameraOptions} from '@awesome-cordova-plugins/camera/ngx';\r\nimport {ImagePicker, ImagePickerOptions} from '@awesome-cordova-plugins/image-picker/ngx';\r\nimport {SafeResourceUrl} from '@angular/platform-browser';\r\nexport interface ResourceResult {\r\n    url: SafeResourceUrl;\r\n    data: string;\r\n}\r\nexport enum SourceType {\r\n    PHOTOLIBRARY = 'PHOTOLIBRARY',\r\n    DOCUMENT = 'DOCUMENT'\r\n}\r\nexport interface DocumentOptions {\r\n    sourceType: SourceType;\r\n    fileTypes: string[];\r\n    title?: string;\r\n    multiple?: boolean;\r\n    compress?: boolean;\r\n}\r\nexport interface PictureOptions {\r\n    file?: boolean;\r\n    camera?: boolean;\r\n    count?: number;\r\n    option?: CameraOptions | ImagePickerOptions;\r\n    sizeType?: string[];\r\n}\r\ndeclare let wx: any;\r\ndeclare let CDVDocumentPicker: any;\r\n@Injectable({providedIn: 'root'})\r\nexport class CTYPhotoService {\r\n    private ctyInspectService : CTYInspectService = inject(CTYInspectService);\r\n    private ctyUtilService : CTYUtilService = inject(CTYUtilService);\r\n    private camera : Camera = inject(Camera);\r\n    private imagePicker : ImagePicker = inject(ImagePicker);\r\n    private isMicroMessenger : boolean = this.ctyInspectService.IsMicroMessager();\r\n    constructor() {}\r\n    private AppGetPicture(file : boolean, camera : boolean = false, cameraOptions? : CameraOptions): Promise < ResourceResult[] > {\r\n        return new Promise(async (resolve, reject) => {\r\n            const option: CameraOptions = {\r\n                quality: 85,\r\n                allowEdit: false,\r\n                destinationType: this.camera.DestinationType[file ? 'FILE_URI' : 'DATA_URL'],\r\n                encodingType: this.camera.EncodingType.JPEG,\r\n                mediaType: this.camera.MediaType.PICTURE,\r\n                sourceType: this.camera.PictureSourceType[camera ? 'CAMERA' : 'PHOTOLIBRARY'],\r\n                correctOrientation: false\r\n            }\r\n            this.camera.getPicture(Object.assign(option, cameraOptions)).then((data : any) => {\r\n                if (data) {\r\n                    let url: SafeResourceUrl = data;\r\n                    if (file) {\r\n                        try {\r\n                            url = this.ctyUtilService.FormatLocalPreview(data);\r\n                            url = this.ctyUtilService.BypassSecurityTrust(url as string, 'resource');\r\n                        } catch (error) {}\r\n                    } else {\r\n                        try {\r\n                            url = this.ctyUtilService.BypassSecurityTrust('data:image/jpeg;base64,' + data, 'resource');\r\n                        } catch (error) {}\r\n                    }\r\n                    resolve([{\r\n                            url,\r\n                            data\r\n                        }]);\r\n                } else {\r\n                    resolve([]);\r\n                }\r\n            }).catch((err : any) => {\r\n                reject(err);\r\n            });\r\n        })\r\n    }\r\n    private AppImagePicker(file : boolean = true, count : number = 1, imagePickerOptions? : ImagePickerOptions): Promise < ResourceResult[] > {\r\n        return new Promise(async (resolve, reject) => {\r\n            const option: ImagePickerOptions = {\r\n                quality: 85\r\n            }\r\n            this.imagePicker.getPictures(Object.assign(option, imagePickerOptions, {\r\n                outputType: file ? 0 : 1,\r\n                maximumImagesCount: count\r\n            })).then((result : any) => {\r\n                if (result[0] == 'O' || result[0] == 'K') {\r\n                    resolve([]);\r\n                    return;\r\n                }\r\n                const imageList: ResourceResult[] = result.map((data : any) => {\r\n                    let url: SafeResourceUrl = data;\r\n                    if (file) {\r\n                        try {\r\n                            url = this.ctyUtilService.FormatLocalPreview(data);\r\n                            url = this.ctyUtilService.BypassSecurityTrust(url as string, 'resource');\r\n                        } catch (error) {}\r\n                    } else {\r\n                        try {\r\n                            url = this.ctyUtilService.BypassSecurityTrust('data:image/jpeg;base64,' + data, 'resource');\r\n                        } catch (error) {}\r\n                    }\r\n                    return {url, data};\r\n                });\r\n                resolve(imageList);\r\n            }).catch(err => {\r\n                reject(err)\r\n            });\r\n        })\r\n    }\r\n    private WXGetPicture(camera : boolean = false, count : number = 1, sizeType : string[] = ['compressed'], file : boolean = false): Promise < ResourceResult[] > {\r\n        return new Promise(\r\n            (resolve, reject) => {\r\n                try {\r\n                    wx.chooseImage({\r\n                        count,\r\n                        sizeType,\r\n                        sourceType: [(camera ? 'camera' : 'album')],\r\n                        success: (result : any) => {\r\n                            const localIds = result.localIds;\r\n                            const imageList: ResourceResult[] = [];\r\n                            if (localIds.length > 0) {\r\n                                localIds.forEach((localId : string) => {\r\n                                    if (file) {\r\n                                        imageList.push({\r\n                                            data: localId,\r\n                                            url: this.ctyUtilService.BypassSecurityTrust(localId, 'resource')\r\n                                        })\r\n                                        if (imageList.length == localIds.length) {\r\n                                            resolve(imageList);\r\n                                        }\r\n                                    } else {\r\n                                        wx.getLocalImgData({\r\n                                            localId,\r\n                                            success: (res : any) => {\r\n                                                let localData = res.localData; // localData是图片的base64数据，可以用img标签显示\r\n                                                localData = localData.replace('data:image/jgp;base64,', '');\r\n                                                localData = localData.replace('data:image/jpeg;base64,', '');\r\n                                                localData = localData.replace('data:image/jpg;base64,', '');\r\n                                                localData = localData.replace('data:image/png;base64,', '');\r\n                                                imageList.push({\r\n                                                    data: localData,\r\n                                                    url: this.ctyUtilService.BypassSecurityTrust('data:image/jpeg;base64,' + localData, 'resource')\r\n                                                })\r\n                                                if (imageList.length == localIds.length) {\r\n                                                    resolve(imageList);\r\n                                                }\r\n                                            }\r\n                                        })\r\n                                    }\r\n                                })\r\n                            } else {\r\n                                resolve([]);\r\n                            }\r\n                        }\r\n                    })\r\n                } catch (error) {\r\n                    reject(error);\r\n                }\r\n            }\r\n        )\r\n    }\r\n    private TakePhoto(file : boolean = true, cameraOptions? : CameraOptions, sizeType : string[] = ['compressed']): Promise < ResourceResult[] > {\r\n        return Promise.resolve().then(async () => {\r\n            if (this.isMicroMessenger) {\r\n                return await this.WXGetPicture(true, 1, sizeType, file);\r\n            } else {\r\n                return await this.AppGetPicture(file, true, cameraOptions);\r\n            }\r\n        })\r\n    }\r\n    private PickerPicture(file : boolean = true, count : number = 1, imagePickerOptions? : CameraOptions | ImagePickerOptions, sizeType : string[] = ['compressed']): Promise < ResourceResult[] > {\r\n        return Promise.resolve().then(async () => {\r\n            if (this.isMicroMessenger) {\r\n                return await this.WXGetPicture(false, count, sizeType, file);\r\n            } else if (count == 1) {\r\n                return await this.AppGetPicture(file, false, imagePickerOptions);\r\n            } else {\r\n                return await this.AppImagePicker(file, count, imagePickerOptions);\r\n            }\r\n        })\r\n    }\r\n    /**\r\n    * take photo or choose photo\r\n    * @param {PictureOptions} [options]\r\n    * @returns {Promise<ResourceResult[]>}\r\n    */\r\n    GetPicture(options? : PictureOptions): Promise < ResourceResult[] > {\r\n        return Promise.resolve().then(async () => {\r\n            if (options?.camera) {\r\n                return await this.TakePhoto(options?.file ?? true, options?.option, options?.sizeType ?? ['compressed']);\r\n            } else {\r\n                return await this.PickerPicture(options?.file ?? true, options?.count ?? 1, options?.option, options?.sizeType ?? ['compressed']);\r\n            }\r\n        })\r\n    }\r\n    /**\r\n    * Gets the media resource file\r\n    * @param {DocumentOptions} [options]\r\n    * @returns {Promise<string>}\r\n    */\r\n    GetMediaFile(options : DocumentOptions): Promise < string > {\r\n        return new Promise(\r\n            (resolve, reject) => {\r\n                try {\r\n                    CDVDocumentPicker.getFile((url : string) => {\r\n                        resolve(url);\r\n                    }, (error : string) => {\r\n                        reject(error);\r\n                    }, options.sourceType ?? 'PHOTOLIBRARY', options.fileTypes, options.title ?? '', options.multiple ?? false, options.compress ?? true)\r\n                } catch (error : any) {\r\n                    reject(error);\r\n                }\r\n            }\r\n        )\r\n    }\r\n}\r\n","import {Injectable, inject} from '@angular/core';\r\nimport {CTYInspectService} from './inspect';\r\ndeclare let AudioRecorder: any;\r\ndeclare let wx: any;\r\nexport interface RecordOption {\r\n    outSamplingRate?: number;\r\n    outBitRate?: number;\r\n    isChatMode?: boolean;\r\n    isSave?: boolean;\r\n    duration?: number;\r\n}\r\nexport interface FileInfo {\r\n    name: string;\r\n    type: string;\r\n    uri: string;\r\n    duration: number;\r\n}\r\nexport interface LocalId {\r\n    localId: string;\r\n}\r\nexport interface ServerId {\r\n    serverId: string;\r\n}\r\n@Injectable({providedIn: 'root'})\r\nexport class CTYRecordService {\r\n    private ctyInspectService : CTYInspectService = inject(CTYInspectService);\r\n    private isMicroMessenger : boolean = this.ctyInspectService.IsMicroMessager();\r\n    constructor() {}\r\n\r\n    AppStartRecord(options? : RecordOption): Promise < boolean > {\r\n        const _options = Object.assign(\r\n            {\r\n                outSamplingRate: 22050,\r\n                outBitRate: 16,\r\n                isChatMode: false,\r\n                isSave: false,\r\n                duration: 0\r\n            },\r\n            options\r\n        );\r\n        return new Promise(\r\n            (resolve, reject) => {\r\n                try {\r\n                    AudioRecorder.startRecord(_options, () => {\r\n                        resolve(true);\r\n                    }, (err : string) => {\r\n                        reject(err);\r\n                    })\r\n                } catch (error) {\r\n                    reject(error);\r\n                }\r\n            }\r\n        )\r\n    }\r\n    AppStopRecord(): Promise < FileInfo > {\r\n        return new Promise(\r\n            (resolve, reject) => {\r\n                try {\r\n                    AudioRecorder.stopRecord((e : FileInfo) => {\r\n                        resolve(e);\r\n                    })\r\n                } catch (error) {\r\n                    reject(error)\r\n                }\r\n            }\r\n        )\r\n    }\r\n    WXStartRecord(): Promise < boolean > {\r\n        return new Promise(\r\n            (resolve, reject) => {\r\n                try {\r\n                    wx.startRecord();\r\n                    resolve(true);\r\n                } catch (error) {\r\n                    reject(error)\r\n                }\r\n            }\r\n        )\r\n    }\r\n    WXStopRecord(): Promise < LocalId > {\r\n        return new Promise(\r\n            (resolve, reject) => {\r\n                try {\r\n                    wx.stopRecord({\r\n                        success: (result : LocalId) => {\r\n                            resolve(result);\r\n                        },\r\n                        fail: (err : string) => {\r\n                            reject(err)\r\n                        }\r\n                    });\r\n                } catch (error) {\r\n                    reject(error)\r\n                }\r\n            }\r\n        )\r\n    }\r\n    WXUploadRecord(localId : string, tip : 0 | 1 = 1): Promise < ServerId > {\r\n        return new Promise(\r\n            (resolve, reject) => {\r\n                try {\r\n                    wx.uploadVoice({\r\n                        localId: localId,\r\n                        isShowProgressTips: tip,\r\n                        success: (result : ServerId) => {\r\n                            resolve(result);\r\n                        },\r\n                        fail: (err : string) => {\r\n                            reject(err);\r\n                        }\r\n                    });\r\n                } catch (error) {\r\n                    reject(error)\r\n                }\r\n            }\r\n        )\r\n    }\r\n    StartRecord(): Promise < boolean > {\r\n        return Promise.resolve().then(async () => {\r\n            if (this.isMicroMessenger) {\r\n                return await this.WXStartRecord();\r\n            } else {\r\n                return await this.AppStartRecord();\r\n            }\r\n        })\r\n    }\r\n\r\n    StopRecord(): Promise < string > {\r\n        return Promise.resolve().then(async () => {\r\n            if (this.isMicroMessenger) {\r\n                const result: LocalId = await this.WXStopRecord();\r\n                return result.localId;\r\n            } else {\r\n                const result: FileInfo = await this.AppStopRecord();\r\n                return result.uri;\r\n            }\r\n        })\r\n    }\r\n    PlayVoice(uri : string): Promise < boolean > {\r\n        return new Promise(\r\n            (resolve, reject) => {\r\n                try {\r\n                    if (this.isMicroMessenger) {\r\n                        wx.playVoice({localId: uri});\r\n                        resolve(true);\r\n                    } else {\r\n                        AudioRecorder.playSound(uri, (status : string) => {\r\n                            if (typeof status == 'string' && status === 'finish') {\r\n                                resolve(true);\r\n                            }\r\n                        }, (err : string) => {\r\n                            reject(err);\r\n                        });\r\n                    }\r\n                } catch (error) {\r\n                    reject(error)\r\n                }\r\n            }\r\n        )\r\n    }\r\n    PauseVoice(uri : string): Promise < boolean > {\r\n        return new Promise(\r\n            (resolve, reject) => {\r\n                try {\r\n                    if (this.isMicroMessenger) {\r\n                        wx.pauseVoice({localId: uri})\r\n                        resolve(true);\r\n                    } else {\r\n                        AudioRecorder.stopSound(() => {\r\n                            resolve(true);\r\n                        });\r\n                    }\r\n                } catch (error) {\r\n                    reject(error);\r\n                }\r\n            }\r\n        )\r\n    }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { Platform } from '@ionic/angular';\r\nimport { SocialSharing } from '@awesome-cordova-plugins/social-sharing/ngx';\r\n\r\ndeclare let Wechat: any;\r\ndeclare let WeiboSDK: any;\r\ndeclare let WecomPlugin: any;\r\ndeclare let SystemSharePlugin: any;\r\n\r\nexport enum ShareAppType {\r\n  WECHAT = 1, // 微信\r\n  WECOM = 2, // 企业微信\r\n  SINA_WEIBO = 3, // 新浪微博\r\n  SOCIAL = 4, // 系统分享\r\n  SOCIAL_WECOM = 5, // 系统分享\r\n}\r\nexport enum ShareScene {\r\n  SESSION = 0, // 聊天界面\r\n  TIMELINE = 1, // 朋友圈\r\n  FAVORITE = 2  // 收藏\r\n}\r\nexport enum ShareType {\r\n  IMAGE = 4, // 图片\r\n  MUSIC = 5, // 音乐\r\n  VIDEO = 6, // 视频\r\n  WEBPAGE = 7, // 链接\r\n  MINI = 8, // 小程序\r\n  TEXT = 9, // 文本\r\n}\r\nexport enum ShareMini {\r\n  RELEASE = 0, // 正式版\r\n  TEST = 1, // 测试版\r\n  PREVIEW = 2  // 体验版\r\n}\r\n\r\n\r\nexport interface ShareOption {\r\n  type: ShareType  // 分享的内容\r\n  appType?: ShareAppType  // 分享的方式\r\n  title?: string  // 标题\r\n  description?: string  // 描述\r\n  thumb?: string  // 缩略图\r\n  scene?: ShareScene  // 分享的场景\r\n  text?: string  // \r\n  image?: string|string[]  // \r\n  imageType?: string  // \r\n  fileName?: string  // \r\n  music?: string  // 仅适用于 appType 为 ShareAppType.WECHAT\r\n  musicData?: string  // 仅适用于 appType 为 ShareAppType.WECHAT\r\n  video?: string  // 仅适用于 appType 为 ShareAppType.WECHAT\r\n  link?: string  // type 为 WEBPAGE\r\n  userName?: string  // 仅适用于 appType 为 ShareAppType.WECHAT\r\n  path?: string  // 仅适用于 appType 为 ShareAppType.WECHAT\r\n  hdImageData?: string  // 仅适用于 appType 为 ShareAppType.WECHAT\r\n  withShareTicket?: string  // 仅适用于 appType 为 ShareAppType.WECHAT\r\n  miniprogramType?: ShareMini  // 仅适用于 appType 为 ShareAppType.WECHAT\r\n  packageName?: string  //  仅适用于 appType 为 ShareAppType.SOCIAL_WECOM，可不填，默认值为'com.tencent.wework'\r\n  uiPage?: string  // 仅适用于 appType 为 ShareAppType.SOCIAL_WECOM，可不填，默认值为'com.tencent.wework.launch.AppSchemeLaunchActivity'\r\n}\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class CTYShareService {\r\n\r\n  platform = inject(Platform);\r\n  socialSharing = inject(SocialSharing);\r\n\r\n  constructor() { }\r\n\r\n  public Share(option: ShareOption) {\r\n    if (option.appType === ShareAppType.WECOM) {\r\n      return this.wecomShare(option);\r\n    }\r\n    if (option.appType === ShareAppType.SINA_WEIBO) {\r\n      return this.sinaShare(option);\r\n    }\r\n    if (option.appType === ShareAppType.SOCIAL) {\r\n      return this.socialShare(option);\r\n    }\r\n    if (option.appType === ShareAppType.SOCIAL_WECOM) {\r\n      return this.socialWecomShare(option);\r\n    }\r\n    return this.wechatShare(option);\r\n  }\r\n  /**\r\n   * 微信\r\n   * @param option \r\n   * @returns \r\n   */\r\n  private wechatShare(option: ShareOption) {\r\n    return new Promise((resolve, reject) => {\r\n      const _option: any = {\r\n        scene: option.scene || Wechat.Scene.SESSION\r\n      }\r\n      if (option.type === ShareType.TEXT) {\r\n        if (!option.text) {\r\n          throw new Error('TEXT类型时，text参数必填');\r\n        }\r\n        _option.text = option.text;\r\n      } else {\r\n        const message = this.getWXMessage(option);\r\n        _option.message = message;\r\n      }\r\n      Wechat.share(_option, (value: any) => {\r\n        resolve(value);\r\n      }, (reason: any) => {\r\n        reject(reason);\r\n      });\r\n    });\r\n  }\r\n  private getWXMessage(option: ShareOption) {\r\n    const message: any = {};\r\n    message.title = option.title || '';\r\n    message.description = option.description || '';\r\n    message.thumb = option.thumb || '';\r\n\r\n    if (option.type === ShareType.IMAGE) {\r\n      message.media = {\r\n        type: Wechat.Type.IMAGE,\r\n        image: option.image || '',\r\n      };\r\n      return message\r\n    }\r\n    if (option.type === ShareType.MUSIC) {\r\n      message.media = {\r\n        type: Wechat.Type.MUSIC,\r\n        musicUrl: option.music || '',\r\n        musicDataUrl: option.musicData || '',\r\n      };\r\n      return message\r\n    }\r\n    if (option.type === ShareType.VIDEO) {\r\n      message.media = {\r\n        type: Wechat.Type.VIDEO,\r\n        videoUrl: option.video || '',\r\n      };\r\n      return message\r\n    }\r\n    if (option.type === ShareType.MINI) {\r\n      message.media = {\r\n        type: Wechat.Type.MINI,\r\n        webpageUrl: option.link || '',\r\n        userName: option.userName || '',\r\n        path: option.path || '',\r\n        hdImageData: option.hdImageData || '',\r\n        withShareTicket: option.withShareTicket || '',\r\n        miniprogramType: option.miniprogramType || ShareMini.PREVIEW,\r\n      };\r\n      return message\r\n    }\r\n    message.media = {\r\n      type: Wechat.Type.WEBPAGE,\r\n      webpageUrl: option.link || '',\r\n    };\r\n    return message\r\n  }\r\n  /**\r\n   * 微博\r\n   * @param option \r\n   * @returns \r\n   */\r\n  private sinaShare(option: ShareOption) {\r\n    return new Promise((resolve, reject) => {\r\n      if (option.type === ShareType.IMAGE) {\r\n        WeiboSDK.shareImageToWeibo((value: any) => {\r\n          resolve(value);\r\n        }, (reason: any) => {\r\n          reject(reason);\r\n        }, { image: option.image || '' });\r\n        return\r\n      }\r\n      WeiboSDK.shareToWeibo((value: any) => {\r\n        resolve(value);\r\n      }, (reason: any) => {\r\n        reject(reason);\r\n      }, {\r\n        url: option.link || '',\r\n        title: option.title || '',\r\n        description: option.description || '',\r\n        image: option.thumb || '',\r\n      });\r\n    });\r\n  }\r\n  /**\r\n   * 企业微信\r\n   * @param option \r\n   * @returns \r\n   */\r\n  private wecomShare(option: ShareOption) {\r\n    return new Promise((resolve, reject) => {\r\n      let imageType = option.imageType || 'jpg';\r\n      if (option.type === ShareType.IMAGE) {\r\n        let fileName = option.fileName || `${new Date().getTime()}.jpg`;\r\n        let image = option.image || '';\r\n        WecomPlugin.share_image(\r\n          image,\r\n          fileName,\r\n          imageType,\r\n          (value: any) => {\r\n            resolve(value);\r\n          },\r\n          (reason: any) => {\r\n            reject(reason);\r\n          }\r\n        );\r\n        return;\r\n      }\r\n      let thumb = option.thumb || '';\r\n      let webpageUrl = option.link || '';\r\n      let title = option.title || '';\r\n      let description = option.description || '';\r\n      WecomPlugin.share_link(\r\n        thumb,\r\n        webpageUrl,\r\n        title,\r\n        description,\r\n        imageType,\r\n        (value: any) => {\r\n          resolve(value);\r\n        },\r\n        (reason: any) => {\r\n          reject(reason);\r\n        }\r\n      );\r\n    });\r\n  }\r\n  /**\r\n   * 系统方式的企业微信\r\n   * @param option \r\n   * @returns \r\n   */\r\n  private socialWecomShare(option: ShareOption) {\r\n    return new Promise((resolve, reject) => {\r\n      let title = option.title || '';\r\n      let packageName = option.packageName || 'com.tencent.wework';\r\n      let uiPage = option.uiPage || 'com.tencent.wework.launch.AppSchemeLaunchActivity';\r\n\r\n      if (option.type === ShareType.TEXT) {\r\n        SystemSharePlugin.share_txt(title, option.text, packageName, uiPage, (value: any) => {\r\n          resolve(value);\r\n        }, (reason: any) => {\r\n          reject(reason);\r\n        })\r\n        return\r\n      }\r\n      if (option.type === ShareType.IMAGE) {\r\n        let image = option.image || '';\r\n        if (this.platform.is('ios')) {\r\n          SystemSharePlugin.share_image_ios(image, (value: any) => {\r\n            resolve(value);\r\n          }, (reason: any) => {\r\n            reject(reason);\r\n          })\r\n        } else {\r\n          SystemSharePlugin.share_image(title, image, '', packageName, uiPage, (value: any) => {\r\n            resolve(value);\r\n          }, (reason: any) => {\r\n            reject(reason);\r\n          })\r\n        }\r\n        return\r\n      }\r\n      let link = option.link || '';\r\n      SystemSharePlugin.share_link(title, link, packageName, uiPage, (value: any) => {\r\n        resolve(value);\r\n      }, (reason: any) => {\r\n        reject(reason);\r\n      })\r\n    });\r\n  }\r\n  /**\r\n   * 系统分享\r\n   * @param option \r\n   * @returns \r\n   */\r\n  private socialShare(option: ShareOption) {\r\n    return new Promise((resolve, reject) => {\r\n      let message = option.description || '';\r\n      let subject = option.title || '';\r\n      let file = option.image || '';\r\n      let url = option.link || '';\r\n      this.socialSharing.share(message, subject, file, url).then((value) => {\r\n        resolve(value);\r\n      }).catch(reason => {\r\n        reject(reason);\r\n      })\r\n    });\r\n  }\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Platform","i1.CTYInspectService"],"mappings":"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"}