{"version":3,"sources":["jsdelivr-header.js","/npm/react-native-mopsdk@2.0.19/index.js"],"names":[],"mappings":"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","file":"/npm/react-native-mopsdk@2.0.19/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/react-native-mopsdk@2.0.19/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import { BOOLState, ConfigPriority, LogLevel, FCReLaunchMode, LanguageType, FinStoreConfig, Config, CapsuleConfig, NavHomeConfig, FloatWindowConfig, AuthButtonConfig, AuthViewConfig, UIConfig } from './mop.js';\n\nconst handleCallbackData = (params) => {\n  let result = {}\n  if (params instanceof Array) {\n    result = params[0]\n    if (typeof params[0] === 'string') {\n      result = JSON.parse(params[0])\n    }\n  } else if (params instanceof Object) {\n    result = params\n  } else if (typeof params === 'string') {\n    result = JSON.parse(params)\n  }\n\n  return result\n}\n\nconst typeCheck = (data, type) => {\n  const TYPE_MAP = {\n    '[object String]': 'String',\n    '[object Number]': 'Number',\n    '[object Boolean]': 'Boolean',\n    '[object Null]': 'Null',\n    '[object Undefined]': 'Undefined',\n    '[object Object]': 'Object'\n  }\n  if (!Object.values(TYPE_MAP).includes(type)) {\n    return { success: false, retMsg: 'error type' }\n  }\n  const result = TYPE_MAP[Object.prototype.toString.call(data)] === type\n  if (!result) {\n    return { success: false, retMsg: `params should be ${type}` }\n  }\n  return { success: true, retMsg: '' }\n}\n\nclass MopSDK {\n  constructor() {\n    console.log('REACT NATIVE SDK')\n  }\n  static _extensionApis = {}\n  static _webExtensionApis = {}\n  static _finMopSDK = {}\n\n  async _extentionApiCallbacks(event) {\n    const extensionAPIPrefix = 'extensionApi:'\n    const webExtensionApiPrefix = 'webExtentionApi:'\n\n    if (event.apiName.startsWith(extensionAPIPrefix)) {\n      let apiName = event.apiName.substring(extensionAPIPrefix.length)\n      const handler = MopSDK._extensionApis[apiName]\n      if (handler !== null) {\n        const res = await handler(event.params)\n        console.warn(\"CUSTOM API 调用的结果\", res)\n        MopSDK._finMopSDK.eventReminderCallback(apiName, res, event.callbackId)\n      }\n    } else if (event.apiName.startsWith(webExtensionApiPrefix)) {\n      let apiName = event.apiName.substring(webExtensionApiPrefix.length)\n      const handler = MopSDK._webExtensionApis[apiName]\n      if (handler !== null) {\n        const res = await handler(event.params)\n        console.warn(\"WEB CUSTOM API 调用的结果\", res)\n        MopSDK._finMopSDK.eventReminderCallback(apiName, res, event.callbackId)\n      }\n    }\n  }\n\n  /**\n   * @description \n   * @param {Object} params \n   * @param {string} params.appkey \n   * @param {string} params.secret \n   * @param {string} params.apiServer \n   * @param {string} params.apiPrefix \n   * @param {string} params.userId \n   * @param {string} params.appletText  注入小程序统称appletText字符串，默认为“小程序”。\n   * @param {number} params.language  SDK的语言类型，默认为中文，0：中文，1：英文,其他语言得使用 customLanguagePath、localeLanguage属性。具体看文档\n   * @param {string} params.customLanguagePath  【iOS属性】自定义SDK的语言，优先级高于内置的 language 属性；示例：如果是放在 mainBundle 下，则设置相对路径：@\"abc.lproj\"；如果是放在自定于 Bundle 下，则设置相对路径：@\"bundleName.bundle/abc.lproj\"\n   * @param {string} params.localeLanguage 【Android属性】自定义SDK的语言，优先级高于内置的 language 属性；语言列表可以参考：https://uutool.cn/info-i18n/ 或者Java类 【java.util.Locale】;示例：简体中文：zh_CN，繁体中文：zh_TW，英文：en\n   * @param {Object} param.nativeEventEmitter eventEmitter 实例\n   * @param {Object} param.finMopSDK  nativeModules.FINMopSDK 引用\n   * @returns \n   */\n  initialize(params) {\n    return new Promise((resolve, reject) => {\n      let { appkey, secret, apiServer, apiPrefix, userId, language, customLanguagePath, appletText, localeLanguage, nativeEventEmitter, finMopSDK } = params;\n      MopSDK._finMopSDK = finMopSDK\n      const appKeyCheck = typeCheck(appkey, 'String')\n      const secretCheck = typeCheck(secret, 'String')\n      const nativeEventEmitterCheck = typeCheck(nativeEventEmitter, 'Object')\n      if (!appKeyCheck.success) {\n        reject(appKeyCheck)\n        return\n      }\n      if (!secretCheck.success) {\n        reject(secretCheck)\n        return\n      }\n\n      if (!nativeEventEmitterCheck.success) {\n        reject(nativeEventEmitterCheck)\n        return\n      }\n\n      if (appkey === '' || secret === '') {\n        reject({ success: false, retMsg: 'appkey, secret 不能为空' })\n      }\n\n      if (!apiServer) {\n        apiServer = 'https://mp.finogeeks.com';\n      }\n      if (apiServer && apiServer.endsWith('/')) {\n        apiServer = apiServer.substr(0, apiServer.length - 1);\n      }\n      if (!apiPrefix) {\n        apiPrefix = '/api/v1/mop';\n      }\n      if (apiPrefix && apiPrefix.endsWith('/')) {\n        apiPrefix = apiPrefix.substr(0, apiPrefix.length - 1);\n      }\n      params.apiPrefix = apiPrefix\n      params.apiServer = apiServer\n      params.userId = userId\n      nativeEventEmitter.addListener('EventReminder', (event) => {\n        this._extentionApiCallbacks(event)\n      })\n      MopSDK._finMopSDK.initialize({\n        appkey, secret, apiServer, apiPrefix, userId, language, customLanguagePath, appletText, localeLanguage\n      }, (data) => {\n        data = handleCallbackData(data)\n        if (data.success) {\n          resolve(data)\n        } else {\n          reject(data)\n        }\n      });\n    })\n  }\n\n  /**\n   * @description Initialize the SDK with the provided configuration\n   * @param {Object} params\n   * @param {Config} params.config - Main SDK configuration\n   * @param {UIConfig} params.uiConfig - UI related configuration\n   * @param {Object} params.finMopSDK \n   * @param {Object} params.nativeEventEmitter \n   * @returns \n   */\n  initSDK(params) {\n    return new Promise((resolve, reject) => {\n      let { config, uiConfig, finMopSDK, nativeEventEmitter } = params;\n      MopSDK._finMopSDK = finMopSDK\n      // 参数校验\n      if (!config || !(config instanceof Config)) {\n        reject({ success: false, retMsg: 'config is required and must be class Config' });\n        return;\n      }\n      // uiConfig 可选\n      if (uiConfig && !(uiConfig instanceof UIConfig)) {\n        reject({ success: false, retMsg: 'uiConfig must be class UIConfig' });\n        return;\n      }\n      const nativeEventEmitterCheck = typeCheck(nativeEventEmitter, 'Object')\n      if (!nativeEventEmitterCheck.success) {\n        reject(nativeEventEmitterCheck)\n        return\n      }\n      nativeEventEmitter.addListener('EventReminder', (event) => {\n        this._extentionApiCallbacks(event)\n      })\n      // 调用原生模块的 initSDK 方法\n      MopSDK._finMopSDK.initSDK({\n        config, uiConfig\n      }, (data) => {\n        data = handleCallbackData(data);\n        if (data.success) {\n          resolve(data);\n        } else {\n          reject(data);\n        }\n      });\n    });\n  }\n\n\n  /**\n   * \n   * @param {Object} params \n   * @param {string} params.appId 小程序id，必填\n   * @param {string} params.path 小程序页面路径\n   * @param {string} params.query 传给页面的 query 参数\n   * @param {number} params.sequence 小程序索引， 非必填\n   * @param {string} params.apiServer 小程序所属服务器地址\n   * @param {string} params.scene 进入小程序的场景值\n   * @param {string} params.shareDepth  分享层级\n   * @param {boolean} params.isSingleProcess 是否使用单进程模式,非必填，默认值为false。仅Android支持\n   * @returns\n   */\n  openApplet(params) {\n    return new Promise((resolve, reject) => {\n      const { appId } = params\n      const appIdCheck = typeCheck(appId, 'String')\n      if (!appIdCheck.success) {\n        reject(appIdCheck)\n        return\n      }\n      const startParams = { path: params.path, query: params.query }\n      params.startParams = startParams\n      MopSDK._finMopSDK.openApplet(params, (params) => {\n        params = handleCallbackData(params)\n        if (params.success) {\n          resolve(params)\n        } else {\n          reject(params)\n        }\n      })\n    })\n  }\n\n/**\n * \n * @param {Object} params \n * @param {string} params.appletId 小程序id，必填\n * @param {string} params.apiServer 小程序所属服务器地址，必填\n * @param {number} params.sequence 小程序索引， 非必填\n * @param {Map<string,string>} params.startParams 小程序启动参数，仅支持path 和 query\n * @param {string} params.offlineMiniprogramZipPath 离线小程序压缩包路径，可传入一个本地小程序包路径，加快首次启动速度， 非必填\n * @param {string} params.offlineFrameworkZipPath 离线基础库压缩包路径，可传入一个基础库路径，加快首次启动速度， 非必填\n * @param {boolean} params.animated 是否使用动画，非必填，默认值为true,仅iOS支持\n * @param {TranstionStyle} params.transitionStyle 打开小程序时的转场动画方式,仅iOS支持\n * @param {boolean} params.isSingleProcess 是否使用单进程模式,非必填，默认值为false。仅Android支持\n * @param {FCRelaunchMode} params.reLaunchMode 执行reLaunch的场景\n * @returns\n */\n  startApplet(params) {\n    return new Promise((resolve, reject) => {\n      const { appletId } = params\n      const appletIdCheck = typeCheck(appletId, 'String')\n      if (!appletIdCheck.success) {\n        reject(appletIdCheck)\n        return\n      }\n\n      MopSDK._finMopSDK.startApplet(params, (params) => {\n        params = handleCallbackData(params)\n        if (params.success) {\n          resolve(params)\n        } else {\n          reject(params)\n        }\n      })\n    })\n  }\n\n  /**\n   * \n   * @param {Object} params \n   * @param {String} params.userId 返回当前用户\n   * @returns\n   */\n  changeUserId(params) {\n    return new Promise((resolve, reject) => {\n      const { userId } = params;\n      const userIdCheck = typeCheck(userId, 'String');\n      if (!userIdCheck.success) {\n        reject(userIdCheck);\n        return;\n      }\n\n      MopSDK._finMopSDK.changeUserId(params, (params) => {\n        params = handleCallbackData(params);\n        if (params.success) {\n          resolve(params);\n        } else {\n          reject(params);\n        }\n      });\n    });\n  }\n\n\n\n  // 关闭小程序\n  closeApplet(appletId, animated) {\n    const appletIdCheck = typeCheck(appletId, 'String')\n    const animatedCheck = typeCheck(animated, 'Boolean')\n    if (!appletIdCheck.success) {\n      console.error(appletIdCheck.retMsg)\n      return\n    }\n\n    if (!animatedCheck) {\n      console.error(appletIdCheck.retMsg)\n      return\n    }\n    MopSDK._finMopSDK.closeApplet({ appletId, animated })\n  }\n  // 关闭当前打开的所有小程序\n  closeAllApplets() {\n    MopSDK._finMopSDK.closeAllApplets()\n  }\n\n  removeAllUsedApplets() {\n    MopSDK._finMopSDK.removeAllUsedApplets()\n  }\n\n\n  /**\n * 二维码打开小程序\n * @param {string} qrcode 二维码内容，必填\n * @param {boolean} isSingleProcess 是否使用单进程模式,非必填，默认值为false。仅Android支持\n * @param {FCRelaunchMode} reLaunchMode 执行reLaunch的场景\n * @returns\n */\n  qrcodeOpenApplet(qrcode, isSingleProcess = false, reLaunchMode = FCReLaunchMode.ParamsExist) {\n    const qrcodeCheck = typeCheck(qrcode, 'String')\n    if (!qrcodeCheck.success) {\n      console.error(qrcodeCheck.retMsg)\n      return\n    }\n    MopSDK._finMopSDK.qrcodeOpenApplet({ qrcode, isSingleProcess, reLaunchMode })\n  }\n  // 获取当前正在使用的小程序信息\n  currentApplet() {\n    return new Promise((resolve, reject) => {\n      MopSDK._finMopSDK.currentApplet({}, (params) => {\n        params = handleCallbackData(params)\n        if (params.success) {\n          resolve(params)\n        } else {\n          reject(params)\n        }\n      })\n    })\n  }\n  // 清除缓存的小程序\n  clearApplets() {\n    MopSDK._finMopSDK.clearApplets()\n  }\n  // 注册小程序事件处理\n  registerAppletHandler(handler) {\n    MopSDK._extensionApis['forwardApplet'] = (params) => {\n      handler.forwardApplet(params)\n      return {}\n    }\n\n    MopSDK._extensionApis['getUserInfo'] = (params) => {\n      return handler.getUserInfo(params)\n    }\n\n    MopSDK._extensionApis[\"getCustomMenus\"] = async (params) => {\n      const res = await handler.getCustomMenus(params[\"appId\"]);\n      let list = res.map(item => {\n        return {\n          menuId: item.menuId,\n          image: item.image,\n          title: item.title,\n          type: item.type\n        }\n      })\n      return list\n    };\n    MopSDK._extensionApis[\"onCustomMenuClick\"] = (params) => {\n      return handler.onCustomMenuClick(\n        params[\"appId\"], params[\"path\"], params[\"menuId\"], params[\"appInfo\"]);\n    };\n    MopSDK._extensionApis[\"appletDidOpen\"] = (params) => {\n      return handler.appletDidOpen(params[\"appId\"]);\n    };\n    MopSDK._finMopSDK.registerAppletHandler()\n\n  }\n  // 注册webview拓展api\n  addWebExtentionApi(name, handler) {\n    MopSDK._webExtensionApis[name] = handler\n    MopSDK._finMopSDK.addWebExtentionApi({ name })\n  }\n\n  registerExtensionApi(name, handler) {\n    MopSDK._extensionApis[name] = handler;\n    MopSDK._finMopSDK.registerExtensionApi({ name })\n  }\n\n  // 原生调用webview中的js方法 \n  callJS(appId, eventName, eventData, nativeViewId) {\n    const appIdCheck = typeCheck(appId, 'String')\n    const eventNameCheck = typeCheck(eventName, 'String')\n\n    if (!appIdCheck.success) {\n      console.error(appIdCheck.retMsg)\n      return Promise.reject()\n    }\n\n    if (!eventNameCheck.success) {\n      console.error(eventNameCheck.retMsg)\n      return Promise.reject()\n    }\n    return new Promise((resolve, reject) => {\n      MopSDK._finMopSDK.callJS({ appId, eventName, nativeViewId, eventData }, (params) => {\n        params = handleCallbackData(params)\n        if (params.success) {\n          resolve(params)\n        } else {\n          reject(params)\n        }\n      })\n    })\n  }\n  // 原生发送事件给小程序\n  sendCustomEvent(appId, eventData) {\n    const appIdCheck = typeCheck(appId, 'String')\n    if (!appIdCheck.success) {\n      console.error(appIdCheck.retMsg)\n      return\n    }\n    MopSDK._finMopSDK.sendCustomEvent({ appId, eventData })\n  }\n  // 结束小程序\n  finishRunningApplet(appletId, animated) {\n    const appletIdCheck = typeCheck(appletId, 'String')\n    if (!appletIdCheck.success) {\n      console.error(appletIdCheck.retMsg)\n      return\n    }\n    MopSDK._finMopSDK.finishRunningApplet({ appletId, animated })\n  }\n\n  // 结束所有在运行的小程序\n  finishAllRunningApplets() {\n    MopSDK._finMopSDK.finishAllRunningApplets()\n  }\n\n  // 设置小程序切换动画 安卓\n  setActivityTransitionAnim(anim) {\n    MopSDK._finMopSDK.setActivityTransitionAnim({ anim })\n  }\n\n  // 获取绑定的小程序列表\n\n\n  /**\n   * \n   * @param {Object} params \n   * @param {string} params.apiServer 服务器地址，必填\n   * @param {string} params.appClass 小程序的分类，默认为''\n   * @param {number} params.appStatus 小程序状态类型，枚举值。0:所有；1：已上架的；2：未上架的；3：已下架的\n   * @param {boolean} params.containForbiddenApp 查询结果是否包含被禁用的小程序，默认为false\n   * @param {number} params.pageNo 分页查询的页码，默认为1\n   * @param {number} params.pageSize 分页的大小，默认为20\n   * @returns\n   */\n  getBindApplets(params) {\n    return new Promise((resolve, reject) => {\n      const { apiServer } = params\n      const apiServerCheck = typeCheck(apiServer, 'String')\n      if (!apiServerCheck.success) {\n        reject(apiServerCheck)\n        return\n      }\n\n      MopSDK._finMopSDK.getBindApplets(params, (result) => {\n        result = handleCallbackData(result)\n        if (result.success) {\n          resolve(result)\n        } else {\n          reject(result)\n        }\n      })\n    })\n  }\n\n}\n\n\nexport default new MopSDK();\nexport { BOOLState, ConfigPriority, LogLevel, FCReLaunchMode, LanguageType, FinStoreConfig, Config, CapsuleConfig, NavHomeConfig, FloatWindowConfig, AuthButtonConfig, AuthViewConfig, UIConfig };\n\n"]}