63eba93a1d3ef59d1d1a7956b51f8b6f04127ed6f86dffbca52460a6cd6cc4d1.json 49 KB

1
  1. {"ast":null,"code":"import { fromEvent, Observable } from 'rxjs';\nexport var ERR_CORDOVA_NOT_AVAILABLE = {\n error: 'cordova_not_available'\n};\nexport var ERR_PLUGIN_NOT_INSTALLED = {\n error: 'plugin_not_installed'\n};\n/**\n * @param callback\n */\nexport function getPromise(callback) {\n var tryNativePromise = function () {\n if (Promise) {\n return new Promise(function (resolve, reject) {\n callback(resolve, reject);\n });\n } else {\n console.error('No Promise support or polyfill found. To enable Ionic Native support, please add the es6-promise polyfill before this script, or run with a library like Angular or on a recent browser.');\n }\n };\n if (typeof window !== 'undefined' && window.angular) {\n var doc = window.document;\n var injector = window.angular.element(doc.querySelector('[ng-app]') || doc.body).injector();\n if (injector) {\n var $q = injector.get('$q');\n return $q(function (resolve, reject) {\n callback(resolve, reject);\n });\n }\n console.warn(\"Angular 1 was detected but $q couldn't be retrieved. This is usually when the app is not bootstrapped on the html or body tag. Falling back to native promises which won't trigger an automatic digest when promises resolve.\");\n }\n return tryNativePromise();\n}\n/**\n * @param pluginObj\n * @param methodName\n * @param args\n * @param opts\n */\nexport function wrapPromise(pluginObj, methodName, args, opts) {\n if (opts === void 0) {\n opts = {};\n }\n var pluginResult, rej;\n var p = getPromise(function (resolve, reject) {\n if (opts.destruct) {\n pluginResult = callCordovaPlugin(pluginObj, methodName, args, opts, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return resolve(args);\n }, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return reject(args);\n });\n } else {\n pluginResult = callCordovaPlugin(pluginObj, methodName, args, opts, resolve, reject);\n }\n rej = reject;\n });\n // Angular throws an error on unhandled rejection, but in this case we have already printed\n // a warning that Cordova is undefined or the plugin is uninstalled, so there is no reason\n // to error\n if (pluginResult && pluginResult.error) {\n p.catch(function () {});\n typeof rej === 'function' && rej(pluginResult.error);\n }\n return p;\n}\n/**\n * @param pluginObj\n * @param methodName\n * @param args\n * @param opts\n */\nfunction wrapOtherPromise(pluginObj, methodName, args, opts) {\n if (opts === void 0) {\n opts = {};\n }\n return getPromise(function (resolve, reject) {\n var pluginResult = callCordovaPlugin(pluginObj, methodName, args, opts);\n if (pluginResult) {\n if (pluginResult.error) {\n reject(pluginResult.error);\n } else if (pluginResult.then) {\n pluginResult.then(resolve).catch(reject);\n }\n } else {\n reject({\n error: 'unexpected_error'\n });\n }\n });\n}\n/**\n * @param pluginObj\n * @param methodName\n * @param args\n * @param opts\n */\nfunction wrapObservable(pluginObj, methodName, args, opts) {\n if (opts === void 0) {\n opts = {};\n }\n return new Observable(function (observer) {\n var pluginResult;\n if (opts.destruct) {\n pluginResult = callCordovaPlugin(pluginObj, methodName, args, opts, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return observer.next(args);\n }, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return observer.error(args);\n });\n } else {\n pluginResult = callCordovaPlugin(pluginObj, methodName, args, opts, observer.next.bind(observer), observer.error.bind(observer));\n }\n if (pluginResult && pluginResult.error) {\n observer.error(pluginResult.error);\n observer.complete();\n }\n return function () {\n try {\n if (opts.clearFunction) {\n if (opts.clearWithArgs) {\n return callCordovaPlugin(pluginObj, opts.clearFunction, args, opts, observer.next.bind(observer), observer.error.bind(observer));\n }\n return callCordovaPlugin(pluginObj, opts.clearFunction, []);\n }\n } catch (e) {\n console.warn('Unable to clear the previous observable watch for', pluginObj.constructor.getPluginName(), methodName);\n console.warn(e);\n }\n };\n });\n}\n/**\n * Wrap the event with an observable\n *\n * @private\n * @param event event name\n * @param element The element to attach the event listener to\n * @returns {Observable}\n */\nfunction wrapEventObservable(event, element) {\n element = typeof window !== 'undefined' && element ? get(window, element) : element || (typeof window !== 'undefined' ? window : {});\n return fromEvent(element, event);\n}\n/**\n * @param plugin\n * @param methodName\n * @param pluginName\n */\nexport function checkAvailability(plugin, methodName, pluginName) {\n var pluginRef, pluginPackage;\n if (typeof plugin === 'string') {\n pluginRef = plugin;\n } else {\n pluginRef = plugin.constructor.getPluginRef();\n pluginName = plugin.constructor.getPluginName();\n pluginPackage = plugin.constructor.getPluginInstallName();\n }\n var pluginInstance = getPlugin(pluginRef);\n if (!pluginInstance || !!methodName && typeof pluginInstance[methodName] === 'undefined') {\n if (typeof window === 'undefined' || !window.cordova) {\n cordovaWarn(pluginName, methodName);\n return ERR_CORDOVA_NOT_AVAILABLE;\n }\n pluginWarn(pluginName, pluginPackage, methodName);\n return ERR_PLUGIN_NOT_INSTALLED;\n }\n return true;\n}\n/**\n * Checks if _objectInstance exists and has the method/property\n *\n * @param pluginObj\n * @param methodName\n * @private\n */\nexport function instanceAvailability(pluginObj, methodName) {\n return pluginObj._objectInstance && (!methodName || typeof pluginObj._objectInstance[methodName] !== 'undefined');\n}\n/**\n * @param args\n * @param opts\n * @param resolve\n * @param reject\n */\nexport function setIndex(args, opts, resolve, reject) {\n if (opts === void 0) {\n opts = {};\n }\n // ignore resolve and reject in case sync\n if (opts.sync) {\n return args;\n }\n // If the plugin method expects myMethod(success, err, options)\n if (opts.callbackOrder === 'reverse') {\n // Get those arguments in the order [resolve, reject, ...restOfArgs]\n args.unshift(reject);\n args.unshift(resolve);\n } else if (opts.callbackStyle === 'node') {\n args.push(function (err, result) {\n if (err) {\n reject(err);\n } else {\n resolve(result);\n }\n });\n } else if (opts.callbackStyle === 'object' && opts.successName && opts.errorName) {\n var obj = {};\n obj[opts.successName] = resolve;\n obj[opts.errorName] = reject;\n args.push(obj);\n } else if (typeof opts.successIndex !== 'undefined' || typeof opts.errorIndex !== 'undefined') {\n var setSuccessIndex = function () {\n // If we've specified a success/error index\n if (opts.successIndex > args.length) {\n args[opts.successIndex] = resolve;\n } else {\n args.splice(opts.successIndex, 0, resolve);\n }\n };\n var setErrorIndex = function () {\n // We don't want that the reject cb gets spliced into the position of an optional argument that has not been\n // defined and thus causing non expected behavior.\n if (opts.errorIndex > args.length) {\n args[opts.errorIndex] = reject; // insert the reject fn at the correct specific index\n } else {\n args.splice(opts.errorIndex, 0, reject); // otherwise just splice it into the array\n }\n };\n if (opts.successIndex > opts.errorIndex) {\n setErrorIndex();\n setSuccessIndex();\n } else {\n setSuccessIndex();\n setErrorIndex();\n }\n } else {\n // Otherwise, let's tack them on to the end of the argument list\n // which is 90% of cases\n args.push(resolve);\n args.push(reject);\n }\n return args;\n}\n/**\n * @param pluginObj\n * @param methodName\n * @param args\n * @param opts\n * @param resolve\n * @param reject\n */\nexport function callCordovaPlugin(pluginObj, methodName, args, opts, resolve, reject) {\n if (opts === void 0) {\n opts = {};\n }\n // Try to figure out where the success/error callbacks need to be bound\n // to our promise resolve/reject handlers.\n args = setIndex(args, opts, resolve, reject);\n var availabilityCheck = checkAvailability(pluginObj, methodName);\n if (availabilityCheck === true) {\n var pluginInstance = getPlugin(pluginObj.constructor.getPluginRef());\n // eslint-disable-next-line prefer-spread\n return pluginInstance[methodName].apply(pluginInstance, args);\n } else {\n return availabilityCheck;\n }\n}\n/**\n * @param pluginObj\n * @param methodName\n * @param args\n * @param opts\n * @param resolve\n * @param reject\n */\nexport function callInstance(pluginObj, methodName, args, opts, resolve, reject) {\n if (opts === void 0) {\n opts = {};\n }\n args = setIndex(args, opts, resolve, reject);\n if (instanceAvailability(pluginObj, methodName)) {\n // eslint-disable-next-line prefer-spread\n return pluginObj._objectInstance[methodName].apply(pluginObj._objectInstance, args);\n }\n}\n/**\n * @param pluginRef\n */\nexport function getPlugin(pluginRef) {\n if (typeof window !== 'undefined') {\n return get(window, pluginRef);\n }\n return null;\n}\n/**\n * @param element\n * @param path\n */\nexport function get(element, path) {\n var paths = path.split('.');\n var obj = element;\n for (var i = 0; i < paths.length; i++) {\n if (!obj) {\n return null;\n }\n obj = obj[paths[i]];\n }\n return obj;\n}\n/**\n * @param pluginName\n * @param plugin\n * @param method\n */\nexport function pluginWarn(pluginName, plugin, method) {\n if (method) {\n console.warn('Native: tried calling ' + pluginName + '.' + method + ', but the ' + pluginName + ' plugin is not installed.');\n } else {\n console.warn(\"Native: tried accessing the \" + pluginName + \" plugin but it's not installed.\");\n }\n if (plugin) {\n console.warn(\"Install the \" + pluginName + \" plugin: 'ionic cordova plugin add \" + plugin + \"'\");\n }\n}\n/**\n * @private\n * @param pluginName\n * @param method\n */\nexport function cordovaWarn(pluginName, method) {\n if (typeof process === 'undefined') {\n if (method) {\n console.warn('Native: tried calling ' + pluginName + '.' + method + ', but Cordova is not available. Make sure to include cordova.js or run in a device/simulator');\n } else {\n console.warn('Native: tried accessing the ' + pluginName + ' plugin but Cordova is not available. Make sure to include cordova.js or run in a device/simulator');\n }\n }\n}\n/**\n * @param pluginObj\n * @param methodName\n * @param opts\n * @private\n */\nexport var wrap = function (pluginObj, methodName, opts) {\n if (opts === void 0) {\n opts = {};\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (opts.sync) {\n // Sync doesn't wrap the plugin with a promise or observable, it returns the result as-is\n return callCordovaPlugin(pluginObj, methodName, args, opts);\n } else if (opts.observable) {\n return wrapObservable(pluginObj, methodName, args, opts);\n } else if (opts.eventObservable && opts.event) {\n return wrapEventObservable(opts.event, opts.element);\n } else if (opts.otherPromise) {\n return wrapOtherPromise(pluginObj, methodName, args, opts);\n } else {\n return wrapPromise(pluginObj, methodName, args, opts);\n }\n };\n};\n/**\n * @param pluginObj\n * @param methodName\n * @param opts\n * @private\n */\nexport function wrapInstance(pluginObj, methodName, opts) {\n if (opts === void 0) {\n opts = {};\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (opts.sync) {\n return callInstance(pluginObj, methodName, args, opts);\n } else if (opts.observable) {\n return new Observable(function (observer) {\n var pluginResult;\n if (opts.destruct) {\n pluginResult = callInstance(pluginObj, methodName, args, opts, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return observer.next(args);\n }, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return observer.error(args);\n });\n } else {\n pluginResult = callInstance(pluginObj, methodName, args, opts, observer.next.bind(observer), observer.error.bind(observer));\n }\n if (pluginResult && pluginResult.error) {\n observer.error(pluginResult.error);\n }\n return function () {\n try {\n if (opts.clearWithArgs) {\n return callInstance(pluginObj, opts.clearFunction, args, opts, observer.next.bind(observer), observer.error.bind(observer));\n }\n return callInstance(pluginObj, opts.clearFunction, []);\n } catch (e) {\n console.warn('Unable to clear the previous observable watch for', pluginObj.constructor.getPluginName(), methodName);\n console.warn(e);\n }\n };\n });\n } else if (opts.otherPromise) {\n return getPromise(function (resolve, reject) {\n var result;\n if (opts.destruct) {\n result = callInstance(pluginObj, methodName, args, opts, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return resolve(args);\n }, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return reject(args);\n });\n } else {\n result = callInstance(pluginObj, methodName, args, opts, resolve, reject);\n }\n if (result && result.then) {\n result.then(resolve, reject);\n } else {\n reject();\n }\n });\n } else {\n var pluginResult_1, rej_1;\n var p = getPromise(function (resolve, reject) {\n if (opts.destruct) {\n pluginResult_1 = callInstance(pluginObj, methodName, args, opts, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return resolve(args);\n }, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return reject(args);\n });\n } else {\n pluginResult_1 = callInstance(pluginObj, methodName, args, opts, resolve, reject);\n }\n rej_1 = reject;\n });\n // Angular throws an error on unhandled rejection, but in this case we have already printed\n // a warning that Cordova is undefined or the plugin is uninstalled, so there is no reason\n // to error\n if (pluginResult_1 && pluginResult_1.error) {\n p.catch(function () {});\n typeof rej_1 === 'function' && rej_1(pluginResult_1.error);\n }\n return p;\n }\n };\n}","map":{"version":3,"names":["fromEvent","Observable","ERR_CORDOVA_NOT_AVAILABLE","error","ERR_PLUGIN_NOT_INSTALLED","getPromise","callback","tryNativePromise","Promise","resolve","reject","console","window","angular","doc","document","injector","element","querySelector","body","$q","get","warn","wrapPromise","pluginObj","methodName","args","opts","pluginResult","rej","p","destruct","callCordovaPlugin","_i","arguments","length","catch","wrapOtherPromise","then","wrapObservable","observer","next","bind","complete","clearFunction","clearWithArgs","e","constructor","getPluginName","wrapEventObservable","event","checkAvailability","plugin","pluginName","pluginRef","pluginPackage","getPluginRef","getPluginInstallName","pluginInstance","getPlugin","cordova","cordovaWarn","pluginWarn","instanceAvailability","_objectInstance","setIndex","sync","callbackOrder","unshift","callbackStyle","push","err","result","successName","errorName","obj","successIndex","errorIndex","setSuccessIndex","splice","setErrorIndex","availabilityCheck","apply","callInstance","path","paths","split","i","method","process","wrap","observable","eventObservable","otherPromise","wrapInstance","pluginResult_1","rej_1"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@awesome-cordova-plugins/core/decorators/common.js"],"sourcesContent":["import { fromEvent, Observable } from 'rxjs';\nexport var ERR_CORDOVA_NOT_AVAILABLE = { error: 'cordova_not_available' };\nexport var ERR_PLUGIN_NOT_INSTALLED = { error: 'plugin_not_installed' };\n/**\n * @param callback\n */\nexport function getPromise(callback) {\n var tryNativePromise = function () {\n if (Promise) {\n return new Promise(function (resolve, reject) {\n callback(resolve, reject);\n });\n }\n else {\n console.error('No Promise support or polyfill found. To enable Ionic Native support, please add the es6-promise polyfill before this script, or run with a library like Angular or on a recent browser.');\n }\n };\n if (typeof window !== 'undefined' && window.angular) {\n var doc = window.document;\n var injector = window.angular.element(doc.querySelector('[ng-app]') || doc.body).injector();\n if (injector) {\n var $q = injector.get('$q');\n return $q(function (resolve, reject) {\n callback(resolve, reject);\n });\n }\n console.warn(\"Angular 1 was detected but $q couldn't be retrieved. This is usually when the app is not bootstrapped on the html or body tag. Falling back to native promises which won't trigger an automatic digest when promises resolve.\");\n }\n return tryNativePromise();\n}\n/**\n * @param pluginObj\n * @param methodName\n * @param args\n * @param opts\n */\nexport function wrapPromise(pluginObj, methodName, args, opts) {\n if (opts === void 0) { opts = {}; }\n var pluginResult, rej;\n var p = getPromise(function (resolve, reject) {\n if (opts.destruct) {\n pluginResult = callCordovaPlugin(pluginObj, methodName, args, opts, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return resolve(args);\n }, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return reject(args);\n });\n }\n else {\n pluginResult = callCordovaPlugin(pluginObj, methodName, args, opts, resolve, reject);\n }\n rej = reject;\n });\n // Angular throws an error on unhandled rejection, but in this case we have already printed\n // a warning that Cordova is undefined or the plugin is uninstalled, so there is no reason\n // to error\n if (pluginResult && pluginResult.error) {\n p.catch(function () { });\n typeof rej === 'function' && rej(pluginResult.error);\n }\n return p;\n}\n/**\n * @param pluginObj\n * @param methodName\n * @param args\n * @param opts\n */\nfunction wrapOtherPromise(pluginObj, methodName, args, opts) {\n if (opts === void 0) { opts = {}; }\n return getPromise(function (resolve, reject) {\n var pluginResult = callCordovaPlugin(pluginObj, methodName, args, opts);\n if (pluginResult) {\n if (pluginResult.error) {\n reject(pluginResult.error);\n }\n else if (pluginResult.then) {\n pluginResult.then(resolve).catch(reject);\n }\n }\n else {\n reject({ error: 'unexpected_error' });\n }\n });\n}\n/**\n * @param pluginObj\n * @param methodName\n * @param args\n * @param opts\n */\nfunction wrapObservable(pluginObj, methodName, args, opts) {\n if (opts === void 0) { opts = {}; }\n return new Observable(function (observer) {\n var pluginResult;\n if (opts.destruct) {\n pluginResult = callCordovaPlugin(pluginObj, methodName, args, opts, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return observer.next(args);\n }, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return observer.error(args);\n });\n }\n else {\n pluginResult = callCordovaPlugin(pluginObj, methodName, args, opts, observer.next.bind(observer), observer.error.bind(observer));\n }\n if (pluginResult && pluginResult.error) {\n observer.error(pluginResult.error);\n observer.complete();\n }\n return function () {\n try {\n if (opts.clearFunction) {\n if (opts.clearWithArgs) {\n return callCordovaPlugin(pluginObj, opts.clearFunction, args, opts, observer.next.bind(observer), observer.error.bind(observer));\n }\n return callCordovaPlugin(pluginObj, opts.clearFunction, []);\n }\n }\n catch (e) {\n console.warn('Unable to clear the previous observable watch for', pluginObj.constructor.getPluginName(), methodName);\n console.warn(e);\n }\n };\n });\n}\n/**\n * Wrap the event with an observable\n *\n * @private\n * @param event event name\n * @param element The element to attach the event listener to\n * @returns {Observable}\n */\nfunction wrapEventObservable(event, element) {\n element =\n typeof window !== 'undefined' && element\n ? get(window, element)\n : element || (typeof window !== 'undefined' ? window : {});\n return fromEvent(element, event);\n}\n/**\n * @param plugin\n * @param methodName\n * @param pluginName\n */\nexport function checkAvailability(plugin, methodName, pluginName) {\n var pluginRef, pluginPackage;\n if (typeof plugin === 'string') {\n pluginRef = plugin;\n }\n else {\n pluginRef = plugin.constructor.getPluginRef();\n pluginName = plugin.constructor.getPluginName();\n pluginPackage = plugin.constructor.getPluginInstallName();\n }\n var pluginInstance = getPlugin(pluginRef);\n if (!pluginInstance || (!!methodName && typeof pluginInstance[methodName] === 'undefined')) {\n if (typeof window === 'undefined' || !window.cordova) {\n cordovaWarn(pluginName, methodName);\n return ERR_CORDOVA_NOT_AVAILABLE;\n }\n pluginWarn(pluginName, pluginPackage, methodName);\n return ERR_PLUGIN_NOT_INSTALLED;\n }\n return true;\n}\n/**\n * Checks if _objectInstance exists and has the method/property\n *\n * @param pluginObj\n * @param methodName\n * @private\n */\nexport function instanceAvailability(pluginObj, methodName) {\n return pluginObj._objectInstance && (!methodName || typeof pluginObj._objectInstance[methodName] !== 'undefined');\n}\n/**\n * @param args\n * @param opts\n * @param resolve\n * @param reject\n */\nexport function setIndex(args, opts, resolve, reject) {\n if (opts === void 0) { opts = {}; }\n // ignore resolve and reject in case sync\n if (opts.sync) {\n return args;\n }\n // If the plugin method expects myMethod(success, err, options)\n if (opts.callbackOrder === 'reverse') {\n // Get those arguments in the order [resolve, reject, ...restOfArgs]\n args.unshift(reject);\n args.unshift(resolve);\n }\n else if (opts.callbackStyle === 'node') {\n args.push(function (err, result) {\n if (err) {\n reject(err);\n }\n else {\n resolve(result);\n }\n });\n }\n else if (opts.callbackStyle === 'object' && opts.successName && opts.errorName) {\n var obj = {};\n obj[opts.successName] = resolve;\n obj[opts.errorName] = reject;\n args.push(obj);\n }\n else if (typeof opts.successIndex !== 'undefined' || typeof opts.errorIndex !== 'undefined') {\n var setSuccessIndex = function () {\n // If we've specified a success/error index\n if (opts.successIndex > args.length) {\n args[opts.successIndex] = resolve;\n }\n else {\n args.splice(opts.successIndex, 0, resolve);\n }\n };\n var setErrorIndex = function () {\n // We don't want that the reject cb gets spliced into the position of an optional argument that has not been\n // defined and thus causing non expected behavior.\n if (opts.errorIndex > args.length) {\n args[opts.errorIndex] = reject; // insert the reject fn at the correct specific index\n }\n else {\n args.splice(opts.errorIndex, 0, reject); // otherwise just splice it into the array\n }\n };\n if (opts.successIndex > opts.errorIndex) {\n setErrorIndex();\n setSuccessIndex();\n }\n else {\n setSuccessIndex();\n setErrorIndex();\n }\n }\n else {\n // Otherwise, let's tack them on to the end of the argument list\n // which is 90% of cases\n args.push(resolve);\n args.push(reject);\n }\n return args;\n}\n/**\n * @param pluginObj\n * @param methodName\n * @param args\n * @param opts\n * @param resolve\n * @param reject\n */\nexport function callCordovaPlugin(pluginObj, methodName, args, opts, resolve, reject) {\n if (opts === void 0) { opts = {}; }\n // Try to figure out where the success/error callbacks need to be bound\n // to our promise resolve/reject handlers.\n args = setIndex(args, opts, resolve, reject);\n var availabilityCheck = checkAvailability(pluginObj, methodName);\n if (availabilityCheck === true) {\n var pluginInstance = getPlugin(pluginObj.constructor.getPluginRef());\n // eslint-disable-next-line prefer-spread\n return pluginInstance[methodName].apply(pluginInstance, args);\n }\n else {\n return availabilityCheck;\n }\n}\n/**\n * @param pluginObj\n * @param methodName\n * @param args\n * @param opts\n * @param resolve\n * @param reject\n */\nexport function callInstance(pluginObj, methodName, args, opts, resolve, reject) {\n if (opts === void 0) { opts = {}; }\n args = setIndex(args, opts, resolve, reject);\n if (instanceAvailability(pluginObj, methodName)) {\n // eslint-disable-next-line prefer-spread\n return pluginObj._objectInstance[methodName].apply(pluginObj._objectInstance, args);\n }\n}\n/**\n * @param pluginRef\n */\nexport function getPlugin(pluginRef) {\n if (typeof window !== 'undefined') {\n return get(window, pluginRef);\n }\n return null;\n}\n/**\n * @param element\n * @param path\n */\nexport function get(element, path) {\n var paths = path.split('.');\n var obj = element;\n for (var i = 0; i < paths.length; i++) {\n if (!obj) {\n return null;\n }\n obj = obj[paths[i]];\n }\n return obj;\n}\n/**\n * @param pluginName\n * @param plugin\n * @param method\n */\nexport function pluginWarn(pluginName, plugin, method) {\n if (method) {\n console.warn('Native: tried calling ' + pluginName + '.' + method + ', but the ' + pluginName + ' plugin is not installed.');\n }\n else {\n console.warn(\"Native: tried accessing the \" + pluginName + \" plugin but it's not installed.\");\n }\n if (plugin) {\n console.warn(\"Install the \" + pluginName + \" plugin: 'ionic cordova plugin add \" + plugin + \"'\");\n }\n}\n/**\n * @private\n * @param pluginName\n * @param method\n */\nexport function cordovaWarn(pluginName, method) {\n if (typeof process === 'undefined') {\n if (method) {\n console.warn('Native: tried calling ' +\n pluginName +\n '.' +\n method +\n ', but Cordova is not available. Make sure to include cordova.js or run in a device/simulator');\n }\n else {\n console.warn('Native: tried accessing the ' +\n pluginName +\n ' plugin but Cordova is not available. Make sure to include cordova.js or run in a device/simulator');\n }\n }\n}\n/**\n * @param pluginObj\n * @param methodName\n * @param opts\n * @private\n */\nexport var wrap = function (pluginObj, methodName, opts) {\n if (opts === void 0) { opts = {}; }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (opts.sync) {\n // Sync doesn't wrap the plugin with a promise or observable, it returns the result as-is\n return callCordovaPlugin(pluginObj, methodName, args, opts);\n }\n else if (opts.observable) {\n return wrapObservable(pluginObj, methodName, args, opts);\n }\n else if (opts.eventObservable && opts.event) {\n return wrapEventObservable(opts.event, opts.element);\n }\n else if (opts.otherPromise) {\n return wrapOtherPromise(pluginObj, methodName, args, opts);\n }\n else {\n return wrapPromise(pluginObj, methodName, args, opts);\n }\n };\n};\n/**\n * @param pluginObj\n * @param methodName\n * @param opts\n * @private\n */\nexport function wrapInstance(pluginObj, methodName, opts) {\n if (opts === void 0) { opts = {}; }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (opts.sync) {\n return callInstance(pluginObj, methodName, args, opts);\n }\n else if (opts.observable) {\n return new Observable(function (observer) {\n var pluginResult;\n if (opts.destruct) {\n pluginResult = callInstance(pluginObj, methodName, args, opts, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return observer.next(args);\n }, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return observer.error(args);\n });\n }\n else {\n pluginResult = callInstance(pluginObj, methodName, args, opts, observer.next.bind(observer), observer.error.bind(observer));\n }\n if (pluginResult && pluginResult.error) {\n observer.error(pluginResult.error);\n }\n return function () {\n try {\n if (opts.clearWithArgs) {\n return callInstance(pluginObj, opts.clearFunction, args, opts, observer.next.bind(observer), observer.error.bind(observer));\n }\n return callInstance(pluginObj, opts.clearFunction, []);\n }\n catch (e) {\n console.warn('Unable to clear the previous observable watch for', pluginObj.constructor.getPluginName(), methodName);\n console.warn(e);\n }\n };\n });\n }\n else if (opts.otherPromise) {\n return getPromise(function (resolve, reject) {\n var result;\n if (opts.destruct) {\n result = callInstance(pluginObj, methodName, args, opts, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return resolve(args);\n }, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return reject(args);\n });\n }\n else {\n result = callInstance(pluginObj, methodName, args, opts, resolve, reject);\n }\n if (result && result.then) {\n result.then(resolve, reject);\n }\n else {\n reject();\n }\n });\n }\n else {\n var pluginResult_1, rej_1;\n var p = getPromise(function (resolve, reject) {\n if (opts.destruct) {\n pluginResult_1 = callInstance(pluginObj, methodName, args, opts, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return resolve(args);\n }, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return reject(args);\n });\n }\n else {\n pluginResult_1 = callInstance(pluginObj, methodName, args, opts, resolve, reject);\n }\n rej_1 = reject;\n });\n // Angular throws an error on unhandled rejection, but in this case we have already printed\n // a warning that Cordova is undefined or the plugin is uninstalled, so there is no reason\n // to error\n if (pluginResult_1 && pluginResult_1.error) {\n p.catch(function () { });\n typeof rej_1 === 'function' && rej_1(pluginResult_1.error);\n }\n return p;\n }\n };\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}