UNPKG

1.16 MBSource Map (JSON)View Raw
1{"version":3,"file":null,"sources":["../../node_modules/ionic-native/dist/esm/ng1.js","../../node_modules/ionic-native/dist/esm/util.js","../../node_modules/rxjs/util/root.js","../../node_modules/rxjs/util/isFunction.js","../../node_modules/rxjs/util/isArray.js","../../node_modules/rxjs/util/isObject.js","../../node_modules/rxjs/util/errorObject.js","../../node_modules/rxjs/util/tryCatch.js","../../node_modules/rxjs/util/UnsubscriptionError.js","../../node_modules/rxjs/Subscription.js","../../node_modules/rxjs/Observer.js","../../node_modules/rxjs/symbol/rxSubscriber.js","../../node_modules/rxjs/Subscriber.js","../../node_modules/rxjs/util/toSubscriber.js","../../node_modules/rxjs/symbol/observable.js","../../node_modules/rxjs/Observable.js","../../node_modules/ionic-native/dist/esm/plugins/plugin.js","../../node_modules/ionic-native/dist/esm/plugins/actionsheet.js","../../node_modules/ionic-native/dist/esm/plugins/admob.js","../../node_modules/ionic-native/dist/esm/plugins/android-fingerprint-auth.js","../../node_modules/ionic-native/dist/esm/plugins/appavailability.js","../../node_modules/ionic-native/dist/esm/plugins/apprate.js","../../node_modules/ionic-native/dist/esm/plugins/appversion.js","../../node_modules/ionic-native/dist/esm/plugins/badge.js","../../node_modules/ionic-native/dist/esm/plugins/background-geolocation.js","../../node_modules/ionic-native/dist/esm/plugins/backgroundmode.js","../../node_modules/ionic-native/dist/esm/plugins/barcodescanner.js","../../node_modules/ionic-native/dist/esm/plugins/base64togallery.js","../../node_modules/ionic-native/dist/esm/plugins/batterystatus.js","../../node_modules/ionic-native/dist/esm/plugins/brightness.js","../../node_modules/ionic-native/dist/esm/plugins/ble.js","../../node_modules/ionic-native/dist/esm/plugins/bluetoothserial.js","../../node_modules/ionic-native/dist/esm/plugins/calendar.js","../../node_modules/ionic-native/dist/esm/plugins/call-number.js","../../node_modules/ionic-native/dist/esm/plugins/camera.js","../../node_modules/ionic-native/dist/esm/plugins/camera-preview.js","../../node_modules/ionic-native/dist/esm/plugins/card-io.js","../../node_modules/ionic-native/dist/esm/plugins/clipboard.js","../../node_modules/ionic-native/dist/esm/plugins/code-push.js","../../node_modules/ionic-native/dist/esm/plugins/contacts.js","../../node_modules/ionic-native/dist/esm/plugins/crop.js","../../node_modules/ionic-native/dist/esm/plugins/datepicker.js","../../node_modules/ionic-native/dist/esm/plugins/dbmeter.js","../../node_modules/ionic-native/dist/esm/plugins/deeplinks.js","../../node_modules/ionic-native/dist/esm/plugins/device.js","../../node_modules/ionic-native/dist/esm/plugins/deviceaccounts.js","../../node_modules/ionic-native/dist/esm/plugins/devicemotion.js","../../node_modules/ionic-native/dist/esm/plugins/deviceorientation.js","../../node_modules/ionic-native/dist/esm/plugins/diagnostic.js","../../node_modules/ionic-native/dist/esm/plugins/dialogs.js","../../node_modules/ionic-native/dist/esm/plugins/emailcomposer.js","../../node_modules/ionic-native/dist/esm/plugins/estimote-beacons.js","../../node_modules/ionic-native/dist/esm/plugins/facebook.js","../../node_modules/ionic-native/dist/esm/plugins/file.js","../../node_modules/ionic-native/dist/esm/plugins/file-chooser.js","../../node_modules/ionic-native/dist/esm/plugins/file-opener.js","../../node_modules/ionic-native/dist/esm/plugins/filetransfer.js","../../node_modules/ionic-native/dist/esm/plugins/flashlight.js","../../node_modules/ionic-native/dist/esm/plugins/geofence.js","../../node_modules/ionic-native/dist/esm/plugins/geolocation.js","../../node_modules/ionic-native/dist/esm/plugins/globalization.js","../../node_modules/ionic-native/dist/esm/plugins/google-plus.js","../../node_modules/ionic-native/dist/esm/plugins/googlemaps.js","../../node_modules/ionic-native/dist/esm/plugins/googleanalytics.js","../../node_modules/ionic-native/dist/esm/plugins/hotspot.js","../../node_modules/ionic-native/dist/esm/plugins/httpd.js","../../node_modules/ionic-native/dist/esm/plugins/ibeacon.js","../../node_modules/ionic-native/dist/esm/plugins/imagepicker.js","../../node_modules/ionic-native/dist/esm/plugins/imageresizer.js","../../node_modules/ionic-native/dist/esm/plugins/inappbrowser.js","../../node_modules/ionic-native/dist/esm/plugins/inapppurchase.js","../../node_modules/ionic-native/dist/esm/plugins/insomnia.js","../../node_modules/ionic-native/dist/esm/plugins/instagram.js","../../node_modules/ionic-native/dist/esm/plugins/is-debug.js","../../node_modules/ionic-native/dist/esm/plugins/keyboard.js","../../node_modules/ionic-native/dist/esm/plugins/launchnavigator.js","../../node_modules/ionic-native/dist/esm/plugins/localnotifications.js","../../node_modules/ionic-native/dist/esm/plugins/media-capture.js","../../node_modules/ionic-native/dist/esm/plugins/native-audio.js","../../node_modules/ionic-native/dist/esm/plugins/native-page-transitions.js","../../node_modules/ionic-native/dist/esm/plugins/nativestorage.js","../../node_modules/ionic-native/dist/esm/plugins/market.js","../../node_modules/ionic-native/dist/esm/plugins/media.js","../../node_modules/ionic-native/dist/esm/plugins/mixpanel.js","../../node_modules/ionic-native/dist/esm/plugins/music-controls.js","../../node_modules/ionic-native/dist/esm/plugins/network.js","../../node_modules/ionic-native/dist/esm/plugins/nfc.js","../../node_modules/ionic-native/dist/esm/plugins/onesignal.js","../../node_modules/ionic-native/dist/esm/plugins/photo-viewer.js","../../node_modules/ionic-native/dist/esm/plugins/screen-orientation.js","../../node_modules/ionic-native/dist/esm/plugins/pay-pal.js","../../node_modules/ionic-native/dist/esm/plugins/pin-dialog.js","../../node_modules/ionic-native/dist/esm/plugins/power-management.js","../../node_modules/ionic-native/dist/esm/plugins/printer.js","../../node_modules/ionic-native/dist/esm/plugins/push.js","../../node_modules/ionic-native/dist/esm/plugins/safari-view-controller.js","../../node_modules/ionic-native/dist/esm/plugins/screenshot.js","../../node_modules/ionic-native/dist/esm/plugins/securestorage.js","../../node_modules/ionic-native/dist/esm/plugins/shake.js","../../node_modules/ionic-native/dist/esm/plugins/sim.js","../../node_modules/ionic-native/dist/esm/plugins/sms.js","../../node_modules/ionic-native/dist/esm/plugins/socialsharing.js","../../node_modules/ionic-native/dist/esm/plugins/spinnerdialog.js","../../node_modules/ionic-native/dist/esm/plugins/splashscreen.js","../../node_modules/ionic-native/dist/esm/plugins/sqlite.js","../../node_modules/ionic-native/dist/esm/plugins/statusbar.js","../../node_modules/ionic-native/dist/esm/plugins/streaming-media.js","../../node_modules/ionic-native/dist/esm/plugins/3dtouch.js","../../node_modules/ionic-native/dist/esm/plugins/toast.js","../../node_modules/ionic-native/dist/esm/plugins/touchid.js","../../node_modules/ionic-native/dist/esm/plugins/text-to-speech.js","../../node_modules/ionic-native/dist/esm/plugins/twitter-connect.js","../../node_modules/ionic-native/dist/esm/plugins/vibration.js","../../node_modules/ionic-native/dist/esm/plugins/video-editor.js","../../node_modules/ionic-native/dist/esm/plugins/video-player.js","../../node_modules/ionic-native/dist/esm/plugins/webintent.js","../../node_modules/ionic-native/dist/esm/plugins/youtube-video-player.js","../../node_modules/ionic-native/dist/esm/plugins/zip.js","../../node_modules/ionic-native/dist/esm/index.js","../esm/guards.js","../esm/errors.js","../esm/promise.js","../esm/util.js","../esm/auth.js","../../node_modules/component-emitter/index.js","../../node_modules/reduce-component/index.js","../../node_modules/superagent/lib/client.js","../esm/client.js","../esm/config.js","../esm/cordova.js","../esm/core.js","../esm/deploy/deploy.js","../esm/device.js","../esm/events.js","../esm/insights.js","../esm/logger.js","../esm/push/message.js","../esm/push/push.js","../esm/storage.js","../esm/user/data-types.js","../esm/user/user.js","../esm/di.js","../esm/angular.js","../esm/index.js"],"sourcesContent":["/**\n * Initialize the ionic.native Angular module if we're running in ng1.\n * This iterates through the list of registered plugins and dynamically\n * creates Angular 1 services of the form $cordovaSERVICE, ex: $cordovaStatusBar.\n */\nexport function initAngular1(plugins) {\n if (window.angular) {\n var ngModule_1 = window.angular.module('ionic.native', []);\n for (var name in plugins) {\n var serviceName = '$cordova' + name;\n var cls = plugins[name];\n (function (serviceName, cls, name) {\n ngModule_1.service(serviceName, [function () {\n var funcs = window.angular.copy(cls);\n funcs.prototype['name'] = name;\n return funcs;\n }]);\n })(serviceName, cls, name);\n }\n }\n}\n//# sourceMappingURL=ng1.js.map","export function get(obj, path) {\n for (var i = 0, path = path.split('.'), len = path.length; i < len; i++) {\n if (!obj) {\n return null;\n }\n obj = obj[path[i]];\n }\n return obj;\n}\n;\n//# sourceMappingURL=util.js.map","\"use strict\";\nvar objectTypes = {\n 'boolean': false,\n 'function': true,\n 'object': true,\n 'number': false,\n 'string': false,\n 'undefined': false\n};\nexports.root = (objectTypes[typeof self] && self) || (objectTypes[typeof window] && window);\nvar freeGlobal = objectTypes[typeof global] && global;\nif (freeGlobal && (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal)) {\n exports.root = freeGlobal;\n}\n//# sourceMappingURL=root.js.map","\"use strict\";\nfunction isFunction(x) {\n return typeof x === 'function';\n}\nexports.isFunction = isFunction;\n//# sourceMappingURL=isFunction.js.map","\"use strict\";\nexports.isArray = Array.isArray || (function (x) { return x && typeof x.length === 'number'; });\n//# sourceMappingURL=isArray.js.map","\"use strict\";\nfunction isObject(x) {\n return x != null && typeof x === 'object';\n}\nexports.isObject = isObject;\n//# sourceMappingURL=isObject.js.map","\"use strict\";\n// typeof any so that it we don't have to cast when comparing a result to the error object\nexports.errorObject = { e: {} };\n//# sourceMappingURL=errorObject.js.map","\"use strict\";\nvar errorObject_1 = require('./errorObject');\nvar tryCatchTarget;\nfunction tryCatcher() {\n try {\n return tryCatchTarget.apply(this, arguments);\n }\n catch (e) {\n errorObject_1.errorObject.e = e;\n return errorObject_1.errorObject;\n }\n}\nfunction tryCatch(fn) {\n tryCatchTarget = fn;\n return tryCatcher;\n}\nexports.tryCatch = tryCatch;\n;\n//# sourceMappingURL=tryCatch.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nvar UnsubscriptionError = (function (_super) {\n __extends(UnsubscriptionError, _super);\n function UnsubscriptionError(errors) {\n _super.call(this);\n this.errors = errors;\n var err = Error.call(this, errors ?\n errors.length + \" errors occurred during unsubscription:\\n \" + errors.map(function (err, i) { return ((i + 1) + \") \" + err.toString()); }).join('\\n ') : '');\n this.name = err.name = 'UnsubscriptionError';\n this.stack = err.stack;\n this.message = err.message;\n }\n return UnsubscriptionError;\n}(Error));\nexports.UnsubscriptionError = UnsubscriptionError;\n//# sourceMappingURL=UnsubscriptionError.js.map","\"use strict\";\nvar isArray_1 = require('./util/isArray');\nvar isObject_1 = require('./util/isObject');\nvar isFunction_1 = require('./util/isFunction');\nvar tryCatch_1 = require('./util/tryCatch');\nvar errorObject_1 = require('./util/errorObject');\nvar UnsubscriptionError_1 = require('./util/UnsubscriptionError');\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nvar Subscription = (function () {\n /**\n * @param {function(): void} [unsubscribe] A function describing how to\n * perform the disposal of resources when the `unsubscribe` method is called.\n */\n function Subscription(unsubscribe) {\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n * @type {boolean}\n */\n this.closed = false;\n if (unsubscribe) {\n this._unsubscribe = unsubscribe;\n }\n }\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n * @return {void}\n */\n Subscription.prototype.unsubscribe = function () {\n var hasErrors = false;\n var errors;\n if (this.closed) {\n return;\n }\n this.closed = true;\n var _a = this, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this._subscriptions = null;\n if (isFunction_1.isFunction(_unsubscribe)) {\n var trial = tryCatch_1.tryCatch(_unsubscribe).call(this);\n if (trial === errorObject_1.errorObject) {\n hasErrors = true;\n (errors = errors || []).push(errorObject_1.errorObject.e);\n }\n }\n if (isArray_1.isArray(_subscriptions)) {\n var index = -1;\n var len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (isObject_1.isObject(sub)) {\n var trial = tryCatch_1.tryCatch(sub.unsubscribe).call(sub);\n if (trial === errorObject_1.errorObject) {\n hasErrors = true;\n errors = errors || [];\n var err = errorObject_1.errorObject.e;\n if (err instanceof UnsubscriptionError_1.UnsubscriptionError) {\n errors = errors.concat(err.errors);\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n }\n if (hasErrors) {\n throw new UnsubscriptionError_1.UnsubscriptionError(errors);\n }\n };\n /**\n * Adds a tear down to be called during the unsubscribe() of this\n * Subscription.\n *\n * If the tear down being added is a subscription that is already\n * unsubscribed, is the same reference `add` is being called on, or is\n * `Subscription.EMPTY`, it will not be added.\n *\n * If this subscription is already in an `closed` state, the passed\n * tear down logic will be executed immediately.\n *\n * @param {TeardownLogic} teardown The additional logic to execute on\n * teardown.\n * @return {Subscription} Returns the Subscription used or created to be\n * added to the inner subscriptions list. This Subscription can be used with\n * `remove()` to remove the passed teardown logic from the inner subscriptions\n * list.\n */\n Subscription.prototype.add = function (teardown) {\n if (!teardown || (teardown === Subscription.EMPTY)) {\n return Subscription.EMPTY;\n }\n if (teardown === this) {\n return this;\n }\n var sub = teardown;\n switch (typeof teardown) {\n case 'function':\n sub = new Subscription(teardown);\n case 'object':\n if (sub.closed || typeof sub.unsubscribe !== 'function') {\n break;\n }\n else if (this.closed) {\n sub.unsubscribe();\n }\n else {\n (this._subscriptions || (this._subscriptions = [])).push(sub);\n }\n break;\n default:\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n return sub;\n };\n /**\n * Removes a Subscription from the internal list of subscriptions that will\n * unsubscribe during the unsubscribe process of this Subscription.\n * @param {Subscription} subscription The subscription to remove.\n * @return {void}\n */\n Subscription.prototype.remove = function (subscription) {\n // HACK: This might be redundant because of the logic in `add()`\n if (subscription == null || (subscription === this) || (subscription === Subscription.EMPTY)) {\n return;\n }\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\nexports.Subscription = Subscription;\n//# sourceMappingURL=Subscription.js.map","\"use strict\";\nexports.empty = {\n closed: true,\n next: function (value) { },\n error: function (err) { throw err; },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map","\"use strict\";\nvar root_1 = require('../util/root');\nvar Symbol = root_1.root.Symbol;\nexports.$$rxSubscriber = (typeof Symbol === 'function' && typeof Symbol.for === 'function') ?\n Symbol.for('rxSubscriber') : '@@rxSubscriber';\n//# sourceMappingURL=rxSubscriber.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar isFunction_1 = require('./util/isFunction');\nvar Subscription_1 = require('./Subscription');\nvar Observer_1 = require('./Observer');\nvar rxSubscriber_1 = require('./symbol/rxSubscriber');\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber<T>\n */\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n /**\n * @param {Observer|function(value: T): void} [destinationOrNext] A partially\n * defined Observer or a `next` callback function.\n * @param {function(e: ?any): void} [error] The `error` callback of an\n * Observer.\n * @param {function(): void} [complete] The `complete` callback of an\n * Observer.\n */\n function Subscriber(destinationOrNext, error, complete) {\n _super.call(this);\n this.syncErrorValue = null;\n this.syncErrorThrown = false;\n this.syncErrorThrowable = false;\n this.isStopped = false;\n switch (arguments.length) {\n case 0:\n this.destination = Observer_1.empty;\n break;\n case 1:\n if (!destinationOrNext) {\n this.destination = Observer_1.empty;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n this.destination = destinationOrNext;\n this.destination.add(this);\n }\n else {\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext);\n }\n break;\n }\n default:\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext, error, complete);\n break;\n }\n }\n Subscriber.prototype[rxSubscriber_1.$$rxSubscriber] = function () { return this; };\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param {function(x: ?T): void} [next] The `next` callback of an Observer.\n * @param {function(e: ?any): void} [error] The `error` callback of an\n * Observer.\n * @param {function(): void} [complete] The `complete` callback of an\n * Observer.\n * @return {Subscriber<T>} A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n */\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param {T} [value] The `next` value.\n * @return {void}\n */\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached {@link Error}. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param {any} [err] The `error` exception.\n * @return {void}\n */\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n * @return {void}\n */\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n return Subscriber;\n}(Subscription_1.Subscription));\nexports.Subscriber = Subscriber;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(_parent, observerOrNext, error, complete) {\n _super.call(this);\n this._parent = _parent;\n var next;\n var context = this;\n if (isFunction_1.isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n context = observerOrNext;\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (isFunction_1.isFunction(context.unsubscribe)) {\n this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = this.unsubscribe.bind(this);\n }\n this._context = context;\n this._next = next;\n this._error = error;\n this._complete = complete;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parent = this._parent;\n if (!_parent.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parent, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parent = this._parent;\n if (this._error) {\n if (!_parent.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parent, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parent.syncErrorThrowable) {\n this.unsubscribe();\n throw err;\n }\n else {\n _parent.syncErrorValue = err;\n _parent.syncErrorThrown = true;\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n if (!this.isStopped) {\n var _parent = this._parent;\n if (this._complete) {\n if (!_parent.syncErrorThrowable) {\n this.__tryOrUnsub(this._complete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parent, this._complete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n throw err;\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parent = this._parent;\n this._context = null;\n this._parent = null;\n _parent.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=Subscriber.js.map","\"use strict\";\nvar Subscriber_1 = require('../Subscriber');\nvar rxSubscriber_1 = require('../symbol/rxSubscriber');\nfunction toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber_1.Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriber_1.$$rxSubscriber]) {\n return nextOrObserver[rxSubscriber_1.$$rxSubscriber]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber_1.Subscriber();\n }\n return new Subscriber_1.Subscriber(nextOrObserver, error, complete);\n}\nexports.toSubscriber = toSubscriber;\n//# sourceMappingURL=toSubscriber.js.map","\"use strict\";\nvar root_1 = require('../util/root');\nfunction getSymbolObservable(context) {\n var $$observable;\n var Symbol = context.Symbol;\n if (typeof Symbol === 'function') {\n if (Symbol.observable) {\n $$observable = Symbol.observable;\n }\n else {\n $$observable = Symbol('observable');\n Symbol.observable = $$observable;\n }\n }\n else {\n $$observable = '@@observable';\n }\n return $$observable;\n}\nexports.getSymbolObservable = getSymbolObservable;\nexports.$$observable = getSymbolObservable(root_1.root);\n//# sourceMappingURL=observable.js.map","\"use strict\";\nvar root_1 = require('./util/root');\nvar toSubscriber_1 = require('./util/toSubscriber');\nvar observable_1 = require('./symbol/observable');\n/**\n * A representation of any set of values over any amount of time. This the most basic building block\n * of RxJS.\n *\n * @class Observable<T>\n */\nvar Observable = (function () {\n /**\n * @constructor\n * @param {Function} subscribe the function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n function Observable(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n /**\n * Creates a new Observable, with this Observable as the source, and the passed\n * operator defined as the new observable's operator.\n * @method lift\n * @param {Operator} operator the operator defining the operation to take on the observable\n * @return {Observable} a new observable with the Operator applied\n */\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n /**\n * Registers handlers for handling emitted values, error and completions from the observable, and\n * executes the observable's subscriber function, which will take action to set up the underlying data stream\n * @method subscribe\n * @param {PartialObserver|Function} observerOrNext (optional) either an observer defining all functions to be called,\n * or the first of three possible handlers, which is the handler for each value emitted from the observable.\n * @param {Function} error (optional) a handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown as unhandled\n * @param {Function} complete (optional) a handler for a terminal event resulting from successful completion.\n * @return {ISubscription} a subscription reference to the registered handlers\n */\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = toSubscriber_1.toSubscriber(observerOrNext, error, complete);\n if (operator) {\n operator.call(sink, this);\n }\n else {\n sink.add(this._subscribe(sink));\n }\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n return sink;\n };\n /**\n * @method forEach\n * @param {Function} next a handler for each value emitted by the observable\n * @param {PromiseConstructor} [PromiseCtor] a constructor function used to instantiate the Promise\n * @return {Promise} a promise that either resolves on observable completion or\n * rejects with the handled error\n */\n Observable.prototype.forEach = function (next, PromiseCtor) {\n var _this = this;\n if (!PromiseCtor) {\n if (root_1.root.Rx && root_1.root.Rx.config && root_1.root.Rx.config.Promise) {\n PromiseCtor = root_1.root.Rx.config.Promise;\n }\n else if (root_1.root.Promise) {\n PromiseCtor = root_1.root.Promise;\n }\n }\n if (!PromiseCtor) {\n throw new Error('no Promise impl found');\n }\n return new PromiseCtor(function (resolve, reject) {\n var subscription = _this.subscribe(function (value) {\n if (subscription) {\n // if there is a subscription, then we can surmise\n // the next handling is asynchronous. Any errors thrown\n // need to be rejected explicitly and unsubscribe must be\n // called manually\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscription.unsubscribe();\n }\n }\n else {\n // if there is NO subscription, then we're getting a nexted\n // value synchronously during subscription. We can just call it.\n // If it errors, Observable's `subscribe` will ensure the\n // unsubscription logic is called, then synchronously rethrow the error.\n // After that, Promise will trap the error and send it\n // down the rejection path.\n next(value);\n }\n }, reject, resolve);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n return this.source.subscribe(subscriber);\n };\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @method Symbol.observable\n * @return {Observable} this instance of the observable\n */\n Observable.prototype[observable_1.$$observable] = function () {\n return this;\n };\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new cold Observable by calling the Observable constructor\n * @static true\n * @owner Observable\n * @method create\n * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n * @return {Observable} a new cold observable\n */\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexports.Observable = Observable;\n//# sourceMappingURL=Observable.js.map","import { get } from '../util';\nimport { Observable } from 'rxjs/Observable';\n/**\n * @private\n * @param pluginRef\n * @returns {null|*}\n */\nexport var getPlugin = function (pluginRef) {\n return get(window, pluginRef);\n};\n/**\n * @private\n * @param pluginObj\n * @param method\n */\nexport var pluginWarn = function (pluginObj, method) {\n var pluginName = pluginObj.name, plugin = pluginObj.plugin;\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 console.warn('Install the ' + pluginName + ' plugin: \\'ionic plugin add ' + plugin + '\\'');\n};\n/**\n * @private\n * @param pluginName\n * @param method\n */\nexport var cordovaWarn = function (pluginName, method) {\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 }\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};\nfunction setIndex(args, opts, resolve, reject) {\n if (opts === void 0) { opts = {}; }\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 // If we've specified a success/error index\n args.splice(opts.successIndex, 0, resolve);\n // We don't want that the reject cb gets spliced into the position of an optional argument that has not been defined and thus causing non expected behaviour.\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 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}\nfunction 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 pluginInstance = getPlugin(pluginObj.pluginRef);\n if (!pluginInstance) {\n // Do this check in here in the case that the Web API for this plugin is available (for example, Geolocation).\n if (!window.cordova) {\n cordovaWarn(pluginObj.name, methodName);\n return {\n error: 'cordova_not_available'\n };\n }\n pluginWarn(pluginObj, methodName);\n return {\n error: 'plugin_not_installed'\n };\n }\n // TODO: Illegal invocation needs window context\n return get(window, pluginObj.pluginRef)[methodName].apply(pluginInstance, args);\n}\nfunction getPromise(cb) {\n var tryNativePromise = function () {\n if (window.Promise) {\n return new Promise(function (resolve, reject) {\n cb(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 1/2 or on a recent browser.');\n }\n };\n if (window.angular) {\n var injector = window.angular.element(document.querySelector('[ng-app]') || document.body).injector();\n if (injector) {\n var $q = injector.get('$q');\n return $q(function (resolve, reject) {\n cb(resolve, reject);\n });\n }\n else {\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 return tryNativePromise();\n }\n }\n else {\n return tryNativePromise();\n }\n}\nfunction wrapPromise(pluginObj, methodName, args, opts) {\n if (opts === void 0) { opts = {}; }\n var pluginResult, rej;\n var p = getPromise(function (resolve, reject) {\n pluginResult = callCordovaPlugin(pluginObj, methodName, args, opts, resolve, reject);\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 rej(pluginResult.error);\n }\n return p;\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 && pluginResult.error) {\n reject(pluginResult.error);\n }\n pluginResult.then(resolve).catch(reject);\n });\n}\nfunction wrapObservable(pluginObj, methodName, args, opts) {\n if (opts === void 0) { opts = {}; }\n return new Observable(function (observer) {\n var pluginResult = callCordovaPlugin(pluginObj, methodName, args, opts, observer.next.bind(observer), observer.error.bind(observer));\n if (pluginResult && pluginResult.error) {\n observer.error(pluginResult.error);\n }\n return function () {\n try {\n if (opts.clearFunction) {\n if (opts.clearWithArgs) {\n return get(window, pluginObj.pluginRef)[opts.clearFunction].apply(pluginObj, args);\n }\n return get(window, pluginObj.pluginRef)[opts.clearFunction].call(pluginObj, pluginResult);\n }\n }\n catch (e) {\n console.warn('Unable to clear the previous observable watch for', pluginObj.name, methodName);\n console.error(e);\n }\n };\n });\n}\nfunction callInstance(pluginObj, methodName, args, opts, resolve, reject) {\n if (opts === void 0) { opts = {}; }\n args = setIndex(args, opts, resolve, reject);\n return pluginObj._objectInstance[methodName].apply(pluginObj._objectInstance, args);\n}\nfunction 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 - 0] = 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 callInstance(pluginObj, methodName, args, opts);\n }\n else if (opts.observable) {\n return new Observable(function (observer) {\n var pluginResult = callInstance(pluginObj, methodName, args, opts, observer.next.bind(observer), observer.error.bind(observer));\n return function () {\n try {\n if (opts.clearWithArgs) {\n return pluginObj._objectInstance[opts.clearFunction].apply(pluginObj._objectInstance, args);\n }\n return pluginObj._objectInstance[opts.clearFunction].call(pluginObj, pluginResult);\n }\n catch (e) {\n console.warn('Unable to clear the previous observable watch for', pluginObj.name, methodName);\n console.error(e);\n }\n };\n });\n }\n else if (opts.otherPromise) {\n return getPromise(function (resolve, reject) {\n var result = callInstance(pluginObj, methodName, args, opts, resolve, reject);\n result.then(resolve, reject);\n });\n }\n else {\n return getPromise(function (resolve, reject) {\n callInstance(pluginObj, methodName, args, opts, resolve, reject);\n });\n }\n };\n}\n/**\n * Wrap the event with an observable\n * @param event\n * @returns {Observable}\n */\nfunction wrapEventObservable(event) {\n return new Observable(function (observer) {\n window.addEventListener(event, observer.next.bind(observer), false);\n return function () { return window.removeEventListener(event, observer.next.bind(observer), false); };\n });\n}\n/**\n * @private\n * @param pluginObj\n * @param methodName\n * @param opts\n * @returns {function(...[any]): (undefined|*|Observable|*|*)}\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 - 0] = 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);\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 * @private\n *\n * Class decorator specifying Plugin metadata. Required for all plugins.\n *\n * @usage\n * ```typescript\n * @Plugin({\n * name: 'MyPlugin',\n * plugin: 'cordova-plugin-myplugin',\n * pluginRef: 'window.myplugin'\n * })\n * export class MyPlugin {\n *\n * // Plugin wrappers, properties, and functions go here ...\n *\n * }\n * ```\n */\nexport function Plugin(config) {\n return function (cls) {\n // Add these fields to the class\n for (var k in config) {\n cls[k] = config[k];\n }\n cls['installed'] = function () {\n return !!getPlugin(config.pluginRef);\n };\n return cls;\n };\n}\n/**\n * @private\n *\n * Wrap a stub function in a call to a Cordova plugin, checking if both Cordova\n * and the required plugin are installed.\n */\nexport function Cordova(opts) {\n if (opts === void 0) { opts = {}; }\n return function (target, methodName, descriptor) {\n return {\n value: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i - 0] = arguments[_i];\n }\n return wrap(this, methodName, opts).apply(this, args);\n }\n };\n };\n}\n/**\n * @private\n *\n * Wrap an instance method\n */\nexport function CordovaInstance(opts) {\n if (opts === void 0) { opts = {}; }\n return function (target, methodName) {\n return {\n value: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i - 0] = arguments[_i];\n }\n return wrapInstance(this, methodName, opts).apply(this, args);\n }\n };\n };\n}\n/**\n * @private\n *\n *\n * Before calling the original method, ensure Cordova and the plugin are installed.\n */\nexport function CordovaProperty(target, key, descriptor) {\n var originalMethod = descriptor.get;\n descriptor.get = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i - 0] = arguments[_i];\n }\n if (!window.cordova) {\n cordovaWarn(this.name, null);\n return {};\n }\n var pluginObj = this;\n var pluginInstance = getPlugin(pluginObj.pluginRef);\n if (!pluginInstance) {\n pluginWarn(this, key);\n return {};\n }\n return originalMethod.apply(this, args);\n };\n return descriptor;\n}\n/**\n * @private\n * @param target\n * @param key\n * @param descriptor\n * @constructor\n */\nexport function InstanceProperty(target, key, descriptor) {\n descriptor.get = function () {\n return this._objectInstance[key];\n };\n descriptor.set = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i - 0] = arguments[_i];\n }\n this._objectInstance[key] = args[0];\n };\n return descriptor;\n}\n//# sourceMappingURL=plugin.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Action Sheet\n * @description\n * The ActionSheet plugin shows a native list of options the user can choose from.\n *\n * Requires Cordova plugin: `cordova-plugin-actionsheet`. For more info, please see the [ActionSheet plugin docs](https://github.com/EddyVerbruggen/cordova-plugin-actionsheet).\n *\n * @usage\n * ```typescript\n * import { ActionSheet } from 'ionic-native';\n *\n *\n * let buttonLabels = ['Share via Facebook', 'Share via Twitter'];\n * ActionSheet.show({\n * 'title': 'What do you want with this image?',\n * 'buttonLabels': buttonLabels,\n * 'addCancelButtonWithLabel': 'Cancel',\n * 'addDestructiveButtonWithLabel' : 'Delete'\n * }).then((buttonIndex: number) => {\n * console.log('Button pressed: ' + buttonIndex);\n * });\n * ```\n *\n * @advanced\n * ActionSheet options\n *\n * | Option | Type | Description |\n * |-------------------------------|-----------|----------------------------------------------|\n * | title |`string` | The title for the actionsheet |\n * | buttonLabels |`string[]` | the labels for the buttons. Uses the index x |\n * | androidTheme |`number` | Theme to be used on Android |\n * | androidEnableCancelButton |`boolean` | Enable a cancel on Android |\n * | winphoneEnableCancelButton |`boolean` | Enable a cancel on Windows Phone |\n * | addCancelButtonWithLabel |`string` | Add a cancel button with text |\n * | addDestructiveButtonWithLabel |`string` | Add a destructive button with text |\n * | position |`number[]` | On an iPad, set the X,Y position |\n *\n *\n */\nexport var ActionSheet = (function () {\n function ActionSheet() {\n }\n /**\n * Show a native ActionSheet component. See below for options.\n * @param {options} Options See table below\n * @returns {Promise} Returns a Promise that resolves with the index of the\n * button pressed (1 based, so 1, 2, 3, etc.)\n */\n ActionSheet.show = function (options) { return; };\n /**\n * Progamtically hide the native ActionSheet\n * @returns {Promise} Returns a Promise that resolves when the actionsheet is closed\n */\n ActionSheet.hide = function (options) { return; };\n __decorate([\n Cordova()\n ], ActionSheet, \"show\", null);\n __decorate([\n Cordova()\n ], ActionSheet, \"hide\", null);\n ActionSheet = __decorate([\n Plugin({\n plugin: 'cordova-plugin-actionsheet',\n pluginRef: 'plugins.actionsheet',\n repo: 'https://github.com/EddyVerbruggen/cordova-plugin-actionsheet',\n platforms: ['Android', 'iOS', 'Windows Phone 8']\n })\n ], ActionSheet);\n return ActionSheet;\n}());\n//# sourceMappingURL=actionsheet.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name AdMob\n * @description Plugin for Google Ads, including AdMob / DFP (doubleclick for publisher) and mediations to other Ad networks.\n * @usage\n * Please refer the the plugin's original repository for detailed usage.\n */\nexport var AdMob = (function () {\n function AdMob() {\n }\n // Static Methods\n /**\n *\n * @param adIdOrOptions\n */\n AdMob.createBanner = function (adIdOrOptions) { return; };\n /**\n *\n */\n AdMob.removeBanner = function () { };\n /**\n *\n * @param position\n */\n AdMob.showBanner = function (position) { };\n /**\n *\n * @param x\n * @param y\n */\n AdMob.showBannerAtXY = function (x, y) { };\n /**\n *\n */\n AdMob.hideBanner = function () { };\n /**\n *\n * @param adIdOrOptions\n */\n AdMob.prepareInterstitial = function (adIdOrOptions) { return; };\n /**\n * Show interstitial\n */\n AdMob.showInterstitial = function () { };\n /**\n *\n */\n AdMob.isInterstitialReady = function () { return; };\n /**\n * Prepare a reward video ad\n * @param adIdOrOptions\n */\n AdMob.prepareRewardVideoAd = function (adIdOrOptions) { return; };\n /**\n * Show a reward video ad\n */\n AdMob.showRewardVideoAd = function () { };\n /**\n * Sets the values for configuration and targeting\n * @param options Returns a promise that resolves if the options are set successfully\n */\n AdMob.setOptions = function (options) { return; };\n /**\n * Get user ad settings\n * @returns {Promise<any>} Returns a promise that resolves with the ad settings\n */\n AdMob.getAdSettings = function () { return; };\n // Events\n AdMob.onBannerFailedToReceive = function () { return; };\n AdMob.onBannerReceive = function () { return; };\n AdMob.onBannerPresent = function () { return; };\n AdMob.onBannerLeaveApp = function () { return; };\n AdMob.onBannerDismiss = function () { return; };\n AdMob.onInterstitialFailedToReceive = function () { return; };\n AdMob.onInterstitialReceive = function () { return; };\n AdMob.onInterstitialPresent = function () { return; };\n AdMob.onInterstitialLeaveApp = function () { return; };\n AdMob.onInterstitialDismiss = function () { return; };\n __decorate([\n Cordova()\n ], AdMob, \"createBanner\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], AdMob, \"removeBanner\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], AdMob, \"showBanner\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], AdMob, \"showBannerAtXY\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], AdMob, \"hideBanner\", null);\n __decorate([\n Cordova()\n ], AdMob, \"prepareInterstitial\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], AdMob, \"showInterstitial\", null);\n __decorate([\n Cordova()\n ], AdMob, \"isInterstitialReady\", null);\n __decorate([\n Cordova()\n ], AdMob, \"prepareRewardVideoAd\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], AdMob, \"showRewardVideoAd\", null);\n __decorate([\n Cordova()\n ], AdMob, \"setOptions\", null);\n __decorate([\n Cordova()\n ], AdMob, \"getAdSettings\", null);\n __decorate([\n Cordova({\n eventObservable: true,\n event: 'onBannerFailedToReceive'\n })\n ], AdMob, \"onBannerFailedToReceive\", null);\n __decorate([\n Cordova({\n eventObservable: true,\n event: 'onBannerReceive'\n })\n ], AdMob, \"onBannerReceive\", null);\n __decorate([\n Cordova({\n eventObservable: true,\n event: 'onBannerPresent'\n })\n ], AdMob, \"onBannerPresent\", null);\n __decorate([\n Cordova({\n eventObservable: true,\n event: 'onBannerLeaveApp'\n })\n ], AdMob, \"onBannerLeaveApp\", null);\n __decorate([\n Cordova({\n eventObservable: true,\n event: 'onBannerDismiss'\n })\n ], AdMob, \"onBannerDismiss\", null);\n __decorate([\n Cordova({\n eventObservable: true,\n event: 'onInterstitialFailedToReceive'\n })\n ], AdMob, \"onInterstitialFailedToReceive\", null);\n __decorate([\n Cordova({\n eventObservable: true,\n event: 'onInterstitialReceive'\n })\n ], AdMob, \"onInterstitialReceive\", null);\n __decorate([\n Cordova({\n eventObservable: true,\n event: 'onInterstitialPresent'\n })\n ], AdMob, \"onInterstitialPresent\", null);\n __decorate([\n Cordova({\n eventObservable: true,\n event: 'onInterstitialLeaveApp'\n })\n ], AdMob, \"onInterstitialLeaveApp\", null);\n __decorate([\n Cordova({\n eventObservable: true,\n event: 'onInterstitialDismiss'\n })\n ], AdMob, \"onInterstitialDismiss\", null);\n AdMob = __decorate([\n Plugin({\n plugin: 'cordova-plugin-admobpro',\n pluginRef: 'AdMob',\n repo: 'https://github.com/floatinghotpot/cordova-admob-pro',\n platforms: ['Android', 'iOS', 'Windows Phone 8']\n })\n ], AdMob);\n return AdMob;\n}());\n//# sourceMappingURL=admob.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Android Fingerprint Auth\n * @description\n * This plugin will open a native dialog fragment prompting the user to authenticate using their fingerprint. If the device has a secure lockscreen (pattern, PIN, or password), the user may opt to authenticate using that method as a backup.\n * @usage\n * ```typescript\n * import { AndroidFingerprintAuth } from 'ionic-native';\n *\n * AndroidFingerprintAuth.isAvailable()\n * .then((result)=> {\n * if(result.isAvailable){\n * // it is available\n *\n * AndroidFingerprintAuth.show({ clientId: \"myAppName\", clientSecret: \"so_encrypted_much_secure_very_secret\" })\n * .then(result => {\n * if(result.withFingerprint) {\n * console.log('Successfully authenticated with fingerprint!');\n * } else if(result.withPassword) {\n * console.log('Successfully authenticated with backup password!');\n * } else console.log('Didn\\'t authenticate!');\n * })\n * .catch(error => console.error(error));\n *\n * } else {\n * // fingerprint auth isn't available\n * }\n * })\n * .catch(error => console.error(error));\n * ```\n */\nexport var AndroidFingerprintAuth = (function () {\n function AndroidFingerprintAuth() {\n }\n /**\n * Opens a native dialog fragment to use the device hardware fingerprint scanner to authenticate against fingerprints registered for the device.\n * @param params {any}\n */\n AndroidFingerprintAuth.show = function (params) { return; };\n /**\n * Check if service is available\n */\n AndroidFingerprintAuth.isAvailable = function () { return; };\n __decorate([\n Cordova()\n ], AndroidFingerprintAuth, \"show\", null);\n __decorate([\n Cordova()\n ], AndroidFingerprintAuth, \"isAvailable\", null);\n AndroidFingerprintAuth = __decorate([\n Plugin({\n plugin: 'cordova-plugin-android-fingerprint-auth',\n pluginRef: 'FingerprintAuth',\n repo: 'https://github.com/mjwheatley/cordova-plugin-android-fingerprint-auth'\n })\n ], AndroidFingerprintAuth);\n return AndroidFingerprintAuth;\n}());\n//# sourceMappingURL=android-fingerprint-auth.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name App Availability\n * @description\n * This plugin allows you to check if an app is installed on the user's device. It requires an URI Scheme (e.g. twitter://) on iOS or a Package Name (e.g com.twitter.android) on Android.\n *\n * Requires Cordova plugin: cordova-plugin-appavailability. For more info, please see the [AppAvailability plugin docs](https://github.com/ohh2ahh/AppAvailability).\n *\n * @usage\n * ```typescript\n * import { AppAvailability } from 'ionic-native';\n *\n *\n * let app;\n *\n * if (device.platform === 'iOS') {\n * app = 'twitter://';\n * } else if (device.platform === 'Android') {\n * app = 'com.twitter.android';\n * }\n *\n * AppAvailability.check(app)\n * .then(\n * (yes: string) => console.log(app + ' is available'),\n * (no: string) => console.log(app + ' is NOT available')\n * );\n * ```\n */\nexport var AppAvailability = (function () {\n function AppAvailability() {\n }\n /**\n * Checks if an app is available on device\n * @param {string} app Package name on android, or URI scheme on iOS\n * @returns {Promise<boolean>}\n */\n AppAvailability.check = function (app) { return; };\n __decorate([\n Cordova()\n ], AppAvailability, \"check\", null);\n AppAvailability = __decorate([\n Plugin({\n plugin: 'cordova-plugin-appavailability',\n pluginRef: 'appAvailability',\n repo: 'https://github.com/ohh2ahh/AppAvailability',\n platforms: ['Android', 'iOS']\n })\n ], AppAvailability);\n return AppAvailability;\n}());\n//# sourceMappingURL=appavailability.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, CordovaProperty, Plugin } from './plugin';\n/**\n * @name App Rate\n * @description\n * The AppRate plugin makes it easy to prompt the user to rate your app, either now, later, or never.\n *\n * Requires Cordova plugin: cordova-plugin-apprate. For more info, please see the [AppRate plugin docs](https://github.com/pushandplay/cordova-plugin-apprate).\n *\n * @usage\n * ```typescript\n * import { AppRate } from 'ionic-native';\n *\n * AppRate.preferences.storeAppURL = {\n * ios: '<my_app_id>',\n * android: 'market://details?id=<package_name>',\n * };\n *\n * AppRate.promptForRating();\n * ```\n *\n * @advanced\n *\n * Rating dialog preferences\n *\n * | Option | Type | Default | Description |\n * |------------------------------|------------|---------|----------------------------------------------------------------------------------------|\n * | useLanguage | `String` | null | custom BCP 47 language tag |\n * | displayAppName | `String` | '' | custom application title |\n * | promptAgainForEachNewVersion | `Boolean` | true | show dialog again when application version will be updated |\n * | usesUntilPrompt | `Integer` | 3 | count of runs of application before dialog will be displayed |\n * | openStoreInApp | `Boolean` | false | leave app or no when application page opened in app store (now supported only for iOS) |\n * | useCustomRateDialog | `Boolean` | false | use custom view for rate dialog |\n * | callbacks.onButtonClicked | `Function` | null | call back function. called when user clicked on rate-dialog buttons |\n * | callbacks.onRateDialogShow | `Function` | null | call back function. called when rate-dialog showing |\n * | storeAppURL.ios | `String` | null | application id in AppStore |\n * | storeAppURL.android | `String` | null | application URL in GooglePlay |\n * | storeAppURL.blackberry | `String` | null | application URL in AppWorld |\n * | storeAppURL.windows8 | `String` | null | application URL in WindowsStore |\n * | customLocale | `Object` | null | custom locale object |\n\n */\nexport var AppRate = (function () {\n function AppRate() {\n }\n Object.defineProperty(AppRate, \"preferences\", {\n /**\n * Configure various settings for the Rating View.\n * See table below for options\n */\n get: function () { return window.AppRate.preferences; },\n enumerable: true,\n configurable: true\n });\n /**\n * Prompts the user for rating\n * @param {boolean} immediately Show the rating prompt immediately.\n */\n AppRate.promptForRating = function (immediately) { };\n ;\n __decorate([\n CordovaProperty\n ], AppRate, \"preferences\", null);\n __decorate([\n Cordova()\n ], AppRate, \"promptForRating\", null);\n AppRate = __decorate([\n Plugin({\n plugin: 'cordova-plugin-apprate',\n pluginRef: 'AppRate',\n repo: 'https://github.com/pushandplay/cordova-plugin-apprate',\n platforms: ['Android', 'iOS']\n })\n ], AppRate);\n return AppRate;\n}());\n//# sourceMappingURL=apprate.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name App Version\n * @description\n * Reads the version of your app from the target build settings.\n *\n * Requires Cordova plugin: `cordova-plugin-app-version`. For more info, please see the [Cordova App Version docs](https://github.com/whiteoctober/cordova-plugin-app-version).\n *\n * @usage\n * ```typescript\n * import { AppVersion } from 'ionic-native';\n *\n *\n * AppVersion.getAppName();\n * AppVersion.getPackageName();\n * AppVersion.getVersionCode();\n * AppVersion.getVersionNumber();\n * ```\n */\nexport var AppVersion = (function () {\n function AppVersion() {\n }\n /**\n * Returns the name of the app\n * @returns {Promise}\n */\n AppVersion.getAppName = function () { return; };\n /**\n * Returns the package name of the app\n * @returns {Promise}\n */\n AppVersion.getPackageName = function () { return; };\n /**\n * Returns the build identifier of the app\n * @returns {Promise}\n */\n AppVersion.getVersionCode = function () { return; };\n /**\n * Returns the version of the app\n * @returns {Promise}\n */\n AppVersion.getVersionNumber = function () { return; };\n __decorate([\n Cordova()\n ], AppVersion, \"getAppName\", null);\n __decorate([\n Cordova()\n ], AppVersion, \"getPackageName\", null);\n __decorate([\n Cordova()\n ], AppVersion, \"getVersionCode\", null);\n __decorate([\n Cordova()\n ], AppVersion, \"getVersionNumber\", null);\n AppVersion = __decorate([\n Plugin({\n plugin: 'cordova-plugin-app-version',\n pluginRef: 'cordova.getAppVersion',\n repo: 'https://github.com/whiteoctober/cordova-plugin-app-version',\n platforms: ['Android', 'iOS']\n })\n ], AppVersion);\n return AppVersion;\n}());\n//# sourceMappingURL=appversion.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Badge\n * @description\n * The essential purpose of badge numbers is to enable an application to inform its users that it has something for them — for example, unread messages — when the application isn’t running in the foreground.\n *\n * Requires Cordova plugin: cordova-plugin-badge. For more info, please see the [Badge plugin docs](https://github.com/katzer/cordova-plugin-badge).\n *\n * @usage\n * ```typescript\n * import { Badge } from 'ionic-native';\n *\n *\n * Badge.set(10);\n * Badge.increase();\n * Badge.clear();\n * ```\n */\nexport var Badge = (function () {\n function Badge() {\n }\n /**\n * Clear the badge of the app icon.\n */\n Badge.clear = function () { return; };\n /**\n * Set the badge of the app icon.\n * @param {number} badgeNumber The new badge number.\n * @returns {Promise}\n */\n Badge.set = function (badgeNumber) { return; };\n /**\n * Get the badge of the app icon.\n * @returns {Promise}\n */\n Badge.get = function () { return; };\n /**\n * Increase the badge number.\n * @param {number} increaseBy Count to add to the current badge number\n * @returns {Promise}\n */\n Badge.increase = function (increaseBy) { return; };\n /**\n * Decrease the badge number.\n * @param {number} decreaseBy Count to subtract from the current badge number\n * @returns {Promise}\n */\n Badge.decrease = function (decreaseBy) { return; };\n /**\n * Determine if the app has permission to show badges.\n */\n Badge.hasPermission = function () { return; };\n /**\n * Register permission to set badge notifications\n * @returns {Promise}\n */\n Badge.registerPermission = function () { return; };\n __decorate([\n Cordova()\n ], Badge, \"clear\", null);\n __decorate([\n Cordova()\n ], Badge, \"set\", null);\n __decorate([\n Cordova()\n ], Badge, \"get\", null);\n __decorate([\n Cordova()\n ], Badge, \"increase\", null);\n __decorate([\n Cordova()\n ], Badge, \"decrease\", null);\n __decorate([\n Cordova()\n ], Badge, \"hasPermission\", null);\n __decorate([\n Cordova()\n ], Badge, \"registerPermission\", null);\n Badge = __decorate([\n Plugin({\n plugin: 'cordova-plugin-badge',\n pluginRef: 'cordova.plugins.notification.badge',\n repo: 'https://github.com/katzer/cordova-plugin-badge',\n platforms: ['Android', 'iOS', 'Browser', 'Windows', 'Amazon FireOS', 'Windows Phone 8']\n })\n ], Badge);\n return Badge;\n}());\n//# sourceMappingURL=badge.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name BackgroundGeolocation\n * @description\n * This plugin provides foreground and background geolocation with battery-saving \"circular region monitoring\" and \"stop detection\". For\n * more detail, please see https://github.com/mauron85/cordova-plugin-background-geolocation\n *\n * @usage\n *\n * ```typescript\n * import { BackgroundGeolocation } from 'ionic-native';\n *\n *\n * // When device is ready :\n * platform.ready().then(() => {\n * // IMPORTANT: BackgroundGeolocation must be called within app.ts and or before Geolocation. Otherwise the platform will not ask you for background tracking permission.\n *\n * // BackgroundGeolocation is highly configurable. See platform specific configuration options\n * let config = {\n * desiredAccuracy: 10,\n * stationaryRadius: 20,\n * distanceFilter: 30,\n * debug: true, // enable this hear sounds for background-geolocation life-cycle.\n * stopOnTerminate: false, // enable this to clear background location settings when the app terminates\n * };\n *\n * BackgroundGeolocation.configure((location) => {\n console.log('[js] BackgroundGeolocation callback: ' + location.latitude + ',' + location.longitude);\n\n // IMPORTANT: You must execute the finish method here to inform the native plugin that you're finished,\n // and the background-task may be completed. You must do this regardless if your HTTP request is successful or not.\n // IF YOU DON'T, ios will CRASH YOUR APP for spending too much time in the background.\n BackgroundGeolocation.finish(); // FOR IOS ONLY\n\n * }, (error) => {\n * console.log('BackgroundGeolocation error');\n * }, config);\n *\n * // Turn ON the background-geolocation system. The user will be tracked whenever they suspend the app.\n * BackgroundGeolocation.start();\n * })\n *\n * // If you wish to turn OFF background-tracking, call the #stop method.\n * BackgroundGeolocation.stop();\n *\n * ```\n */\nexport var BackgroundGeolocation = (function () {\n function BackgroundGeolocation() {\n }\n /**\n * Configure the plugin.\n *\n * @param {Function} Success callback will be called when background location is determined.\n * @param {Function} Fail callback to be executed every time a geolocation error occurs.\n * @param {Object} An object of type Config\n *\n * @return Location object, which tries to mimic w3c Coordinates interface.\n * See http://dev.w3.org/geo/api/spec-source.html#coordinates_interface\n * Callback to be executed every time a geolocation is recorded in the background.\n */\n BackgroundGeolocation.configure = function (callback, errorCallback, options) { return; };\n /**\n * Turn ON the background-geolocation system.\n * The user will be tracked whenever they suspend the app.\n */\n BackgroundGeolocation.start = function () { return; };\n /**\n * Turn OFF background-tracking\n */\n BackgroundGeolocation.stop = function () { return; };\n /**\n * Inform the native plugin that you're finished, the background-task may be completed\n * NOTE: IOS, WP only\n */\n BackgroundGeolocation.finish = function () { };\n /**\n * Force the plugin to enter \"moving\" or \"stationary\" state\n * NOTE: IOS, WP only\n */\n BackgroundGeolocation.changePace = function (isMoving) { };\n /**\n * Setup configuration\n */\n BackgroundGeolocation.setConfig = function (options) { return; };\n /**\n * Returns current stationaryLocation if available. null if not\n * NOTE: IOS, WP only\n */\n BackgroundGeolocation.getStationaryLocation = function () { return; };\n /**\n * Add a stationary-region listener. Whenever the devices enters \"stationary-mode\",\n * your #success callback will be executed with #location param containing #radius of region\n * NOTE: IOS, WP only\n */\n BackgroundGeolocation.onStationary = function () { return; };\n /**\n * Check if location is enabled on the device\n * @returns {Promise<number>} Returns a promise with int argument that takes values 0, 1 (true).\n * NOTE: ANDROID only\n */\n BackgroundGeolocation.isLocationEnabled = function () { return; };\n /**\n * Display app settings to change permissions\n */\n BackgroundGeolocation.showAppSettings = function () { };\n /**\n * Display device location settings\n */\n BackgroundGeolocation.showLocationSettings = function () { };\n /**\n * Method can be used to detect user changes in location services settings.\n * If user enable or disable location services then success callback will be executed.\n * In case or error (SettingNotFoundException) fail callback will be executed.\n * NOTE: ANDROID only\n */\n BackgroundGeolocation.watchLocationMode = function () { return; };\n /**\n * Stop watching for location mode changes.\n * NOTE: ANDROID only\n */\n BackgroundGeolocation.stopWatchingLocationMode = function () { };\n /**\n * Method will return all stored locations.\n * Locations are stored when:\n * - config.stopOnTerminate is false and main activity was killed\n * by the system\n * or\n * - option.debug is true\n * NOTE: ANDROID only\n */\n BackgroundGeolocation.getLocations = function () { return; };\n /**\n * Delete stored location by given locationId.\n * NOTE: ANDROID only\n */\n BackgroundGeolocation.deleteLocation = function (locationId) { return; };\n /**\n * Delete all stored locations.\n * NOTE: ANDROID only\n */\n BackgroundGeolocation.deleteAllLocations = function () { return; };\n __decorate([\n Cordova({\n sync: true\n })\n ], BackgroundGeolocation, \"configure\", null);\n __decorate([\n Cordova()\n ], BackgroundGeolocation, \"start\", null);\n __decorate([\n Cordova()\n ], BackgroundGeolocation, \"stop\", null);\n __decorate([\n Cordova()\n ], BackgroundGeolocation, \"finish\", null);\n __decorate([\n Cordova()\n ], BackgroundGeolocation, \"changePace\", null);\n __decorate([\n Cordova({\n callbackOrder: 'reverse'\n })\n ], BackgroundGeolocation, \"setConfig\", null);\n __decorate([\n Cordova()\n ], BackgroundGeolocation, \"getStationaryLocation\", null);\n __decorate([\n Cordova()\n ], BackgroundGeolocation, \"onStationary\", null);\n __decorate([\n Cordova()\n ], BackgroundGeolocation, \"isLocationEnabled\", null);\n __decorate([\n Cordova({ sync: true })\n ], BackgroundGeolocation, \"showAppSettings\", null);\n __decorate([\n Cordova({ sync: true })\n ], BackgroundGeolocation, \"showLocationSettings\", null);\n __decorate([\n Cordova()\n ], BackgroundGeolocation, \"watchLocationMode\", null);\n __decorate([\n Cordova()\n ], BackgroundGeolocation, \"stopWatchingLocationMode\", null);\n __decorate([\n Cordova()\n ], BackgroundGeolocation, \"getLocations\", null);\n __decorate([\n Cordova()\n ], BackgroundGeolocation, \"deleteLocation\", null);\n __decorate([\n Cordova()\n ], BackgroundGeolocation, \"deleteAllLocations\", null);\n BackgroundGeolocation = __decorate([\n Plugin({\n plugin: 'cordova-plugin-mauron85-background-geolocation',\n pluginRef: 'backgroundGeolocation',\n repo: 'https://github.com/mauron85/cordova-plugin-background-geolocation',\n platforms: ['iOS', 'Android', 'Windows Phone 8']\n })\n ], BackgroundGeolocation);\n return BackgroundGeolocation;\n}());\n//# sourceMappingURL=background-geolocation.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n* @name Background Mode\n* @description\n* Cordova plugin to prevent the app from going to sleep while in background.\n* Requires Cordova plugin: cordova-plugin-background-mode. For more info about plugin, vist: https://github.com/katzer/cordova-plugin-background-mode#android-customization\n*@usage\n* ```typescript\n* import { BackgroundMode } from 'ionic-native';\n*\n* BackgroundMode.enable();\n* ```\n*\n* @advanced\n*\n* Configuration options\n*\n* | Property | Type | Description |\n* |----------|-----------|------------------------------------------------------------------------------|\n* | title | `string` | Title of the background task. Optional |\n* | ticker | `string` | The text that scrolls itself on the statusbar. Optional |\n* | text | `string` | Description of the background task. Optional |\n* | silent | `boolean` | If the plugin will display a notification or not. Default is false. Optional |\n* | resume | `boolean` | Bring the app into the foreground if the notification is tapped. Optional |\n*\n*/\nexport var BackgroundMode = (function () {\n function BackgroundMode() {\n }\n /**\n * Enable the background mode.\n * Once called, prevents the app from being paused while in background.\n */\n BackgroundMode.enable = function () { };\n /**\n * Disable the background mode.\n * Once the background mode has been disabled, the app will be paused when in background.\n */\n BackgroundMode.disable = function () { };\n /**\n * Checks if background mode is enabled or not.\n * @returns {boolean} returns a true of false if the background mode is enabled.\n */\n BackgroundMode.isEnabled = function () { return; };\n /**\n * Can be used to get the information if the background mode is active.\n * @returns {boolean} returns tru or flase if the background mode is active.\n */\n BackgroundMode.isActive = function () { return; };\n /**\n * Override the default title, ticker and text.\n * Available only for Android platform.\n * @param {Configure} options List of option to configure. See table below\n */\n BackgroundMode.setDefaults = function (options) { };\n /**\n * Modify the displayed information.\n * Available only for Android platform.\n * @param {Configure} options Any options you want to update. See table below.\n */\n BackgroundMode.update = function (options) { };\n /**\n * Sets a callback for a specific event\n * Can be used to get notified or run function when the background mode has been activated, deactivated or failed.\n * @param {string} eventName The name of the event. Available events: activate, deactivate, failure\n */\n BackgroundMode.on = function (eventName, callback) { };\n __decorate([\n Cordova({\n sync: true\n })\n ], BackgroundMode, \"enable\", null);\n __decorate([\n Cordova()\n ], BackgroundMode, \"disable\", null);\n __decorate([\n Cordova()\n ], BackgroundMode, \"isEnabled\", null);\n __decorate([\n Cordova()\n ], BackgroundMode, \"isActive\", null);\n __decorate([\n Cordova({\n platforms: ['Android']\n })\n ], BackgroundMode, \"setDefaults\", null);\n __decorate([\n Cordova({\n platforms: ['Android']\n })\n ], BackgroundMode, \"update\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], BackgroundMode, \"on\", null);\n BackgroundMode = __decorate([\n Plugin({\n plugin: 'cordova-plugin-background-mode',\n pluginRef: 'cordova.plugins.backgroundMode',\n repo: 'https://github.com/katzer/cordova-plugin-background-mode',\n platforms: ['Android', 'iOS', 'Windows Phone 8']\n })\n ], BackgroundMode);\n return BackgroundMode;\n}());\n//# sourceMappingURL=backgroundmode.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Barcode Scanner\n * @description\n * The Barcode Scanner Plugin opens a camera view and automatically scans a barcode, returning the data back to you.\n *\n * Requires Cordova plugin: `phonegap-plugin-barcodescanner`. For more info, please see the [BarcodeScanner plugin docs](https://github.com/phonegap/phonegap-plugin-barcodescanner).\n *\n * @usage\n * ```typescript\n * import { BarcodeScanner } from 'ionic-native';\n *\n *\n * BarcodeScanner.scan().then((barcodeData) => {\n * // Success! Barcode data is here\n * }, (err) => {\n * \t// An error occurred\n * });\n * ```\n */\nexport var BarcodeScanner = (function () {\n function BarcodeScanner() {\n }\n /**\n * Open the barcode scanner.\n * @param options {Object} Optional options to pass to the scanner\n * @return Returns a Promise that resolves with scanner data, or rejects with an error.\n */\n BarcodeScanner.scan = function (options) { return; };\n /**\n * Encodes data into a barcode.\n * NOTE: not well supported on Android\n * @param type {string} Type of encoding\n * @param data {any} Data to encode\n */\n BarcodeScanner.encode = function (type, data) { return; };\n /**\n * @private\n */\n BarcodeScanner.Encode = {\n TEXT_TYPE: 'TEXT_TYPE',\n EMAIL_TYPE: 'EMAIL_TYPE',\n PHONE_TYPE: 'PHONE_TYPE',\n SMS_TYPE: 'SMS_TYPE'\n };\n __decorate([\n Cordova({\n callbackOrder: 'reverse'\n })\n ], BarcodeScanner, \"scan\", null);\n __decorate([\n Cordova()\n ], BarcodeScanner, \"encode\", null);\n BarcodeScanner = __decorate([\n Plugin({\n plugin: 'phonegap-plugin-barcodescanner',\n pluginRef: 'cordova.plugins.barcodeScanner',\n repo: 'https://github.com/phonegap/phonegap-plugin-barcodescanner',\n platforms: ['Android', 'iOS', 'Windows Phone 8', 'Windows 10', 'Windows 8', 'BlackBerry 10', 'Browser']\n })\n ], BarcodeScanner);\n return BarcodeScanner;\n}());\n//# sourceMappingURL=barcodescanner.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Base64 To Gallery\n * @description This plugin allows you to save base64 data as a png image into the device\n * @usage\n * ```typescript\n * import { Base64ToGallery } from 'ionic-native';\n *\n *\n * Base64ToGallery.base64ToGallery(base64Data, 'img_').then(\n * res => console.log('Saved image to gallery ', res),\n * err => console.log('Error saving image to gallery ', err)\n * );\n * ```\n */\nexport var Base64ToGallery = (function () {\n function Base64ToGallery() {\n }\n /**\n * Converts a base64 string to an image file in the device gallery\n * @param {string} data The actual base64 string that you want to save\n * @param {any} options (optional) An object with properties: prefix: string, mediaScanner: boolean. Prefix will be prepended to the filename. If true, mediaScanner runs Media Scanner on Android and saves to Camera Roll on iOS; if false, saves to Library folder on iOS.\n * @returns {Promise} returns a promise that resolves when the image is saved.\n */\n Base64ToGallery.base64ToGallery = function (data, options) {\n return;\n };\n __decorate([\n Cordova({\n successIndex: 2,\n errorIndex: 3\n })\n ], Base64ToGallery, \"base64ToGallery\", null);\n Base64ToGallery = __decorate([\n Plugin({\n plugin: 'cordova-base64-to-gallery',\n pluginRef: 'cordova',\n repo: 'https://github.com/Nexxa/cordova-base64-to-gallery',\n platforms: ['Android', 'iOS', 'Windows Phone 8']\n })\n ], Base64ToGallery);\n return Base64ToGallery;\n}());\n//# sourceMappingURL=base64togallery.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Battery Status\n * @description\n * Requires Cordova plugin: cordova-plugin-batterystatus. For more info, please see the [BatteryStatus plugin docs](https://github.com/apache/cordova-plugin-battery-status).\n *\n * @usage\n * ```typescript\n * import { BatteryStatus } from 'ionic-native';\n *\n *\n * // watch change in battery status\n * let subscription = BatteryStatus.onChange().subscribe(\n * (status: StatusObject) => {\n * console.log(status.level, status.isPlugged);\n * }\n * );\n *\n * // stop watch\n * subscription.unsubscribe();\n *\n * ```\n */\nexport var BatteryStatus = (function () {\n function BatteryStatus() {\n }\n /**\n * Watch the change in battery level\n * @returns {Observable} Returns an observable that pushes a status object\n */\n BatteryStatus.onChange = function () { return; };\n /**\n * Watch when the battery level goes low\n * @returns {Observable<StatusObject>} Returns an observable that pushes a status object\n */\n BatteryStatus.onLow = function () { return; };\n /**\n * Watch when the battery level goes to critial\n * @returns {Observable<StatusObject>} Returns an observable that pushes a status object\n */\n BatteryStatus.onCritical = function () { return; };\n __decorate([\n Cordova({\n eventObservable: true,\n event: 'batterystatus'\n })\n ], BatteryStatus, \"onChange\", null);\n __decorate([\n Cordova({\n eventObservable: true,\n event: 'batterylow'\n })\n ], BatteryStatus, \"onLow\", null);\n __decorate([\n Cordova({\n eventObservable: true,\n event: 'batterycritical'\n })\n ], BatteryStatus, \"onCritical\", null);\n BatteryStatus = __decorate([\n Plugin({\n plugin: 'cordova-plugin-battery-status',\n repo: 'https://github.com/apache/cordova-plugin-battery-status',\n platforms: ['Amazon Fire OS', 'iOS', 'Android', 'BlackBerry 10', 'Windows Phone 7', 'Windows Phone 8', 'Windows', 'Firefox OS', 'Browser']\n })\n ], BatteryStatus);\n return BatteryStatus;\n}());\n//# sourceMappingURL=batterystatus.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Brightness\n * @description\n * The Brightness plugin let you control the display brightness of your device.\n *\n * Requires Cordova plugin: `cordova-plugin-brightness`. For more info, please see the [Brightness plugin docs](https://github.com/mgcrea/cordova-plugin-brightness).\n *\n * @usage\n * ```typescript\n * import { Brightness } from 'ionic-native';\n *\n *\n * let brightnessValue: number = 0.8;\n * Brightness.setBrightness(brightnessValue);\n * ```\n *\n */\nexport var Brightness = (function () {\n function Brightness() {\n }\n /**\n * Sets the brightness of the display.\n *\n * @param {value} Floating number between 0 and 1 in which case 1 means 100% brightness and 0 means 0% brightness.\n * @returns {Promise} Returns a Promise that resolves if setting brightness was successful.\n */\n Brightness.setBrightness = function (value) { return; };\n /**\n * Reads the current brightness of the device display.\n *\n * @returns {Promise} Returns a Promise that resolves with the\n * brightness value of the device display (floating number between 0 and 1).\n */\n Brightness.getBrightness = function () { return; };\n /**\n * Keeps the screen on. Prevents the device from setting the screen to sleep.\n */\n Brightness.setKeepScreenOn = function (value) { };\n __decorate([\n Cordova()\n ], Brightness, \"setBrightness\", null);\n __decorate([\n Cordova()\n ], Brightness, \"getBrightness\", null);\n __decorate([\n Cordova()\n ], Brightness, \"setKeepScreenOn\", null);\n Brightness = __decorate([\n Plugin({\n plugin: 'cordova-plugin-brightness',\n pluginRef: 'cordova.plugins.brightness',\n repo: 'https://github.com/mgcrea/cordova-plugin-brightness',\n platforms: ['Android', 'iOS']\n })\n ], Brightness);\n return Brightness;\n}());\n//# sourceMappingURL=brightness.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name BLE\n * @description\n * This plugin enables communication between a phone and Bluetooth Low Energy (BLE) peripherals.\n *\n * The plugin provides a simple JavaScript API for iOS and Android.\n *\n * - Scan for peripherals\n * - Connect to a peripheral\n * - Read the value of a characteristic\n * - Write new value to a characteristic\n * - Get notified when characteristic's value changes\n *\n * Advertising information is returned when scanning for peripherals. Service, characteristic, and property info is returned when connecting to a peripheral. All access is via service and characteristic UUIDs. The plugin manages handles internally.\n *\n * Simultaneous connections to multiple peripherals are supported.\n *\n * @usage\n *\n * ## Peripheral Data\n *\n * Peripheral Data is passed to the success callback when scanning and connecting. Limited data is passed when scanning.\n *\n * ```typescript\n * {\n * \"name\": \"Battery Demo\",\n * \"id\": \"20:FF:D0:FF:D1:C0\",\n * \"advertising\": [2,1,6,3,3,15,24,8,9,66,97,116,116,101,114,121],\n * \"rssi\": -55\n * }\n * ```\n * After connecting, the peripheral object also includes service, characteristic and descriptor information.\n *\n * ```typescript\n * {\n * \"name\": \"Battery Demo\",\n * \"id\": \"20:FF:D0:FF:D1:C0\",\n * \"advertising\": [2,1,6,3,3,15,24,8,9,66,97,116,116,101,114,121],\n * \"rssi\": -55,\n * \"services\": [\n * \"1800\",\n * \"1801\",\n * \"180f\"\n * ],\n * \"characteristics\": [\n * {\n * \"service\": \"1800\",\n * \"characteristic\": \"2a00\",\n * \"properties\": [\n * \"Read\"\n * ]\n * },\n * {\n * \"service\": \"1800\",\n * \"characteristic\": \"2a01\",\n * \"properties\": [\n * \"Read\"\n * ]\n * },\n * {\n * \"service\": \"1801\",\n * \"characteristic\": \"2a05\",\n * \"properties\": [\n * \"Read\"\n * ]\n * },\n * {\n * \"service\": \"180f\",\n * \"characteristic\": \"2a19\",\n * \"properties\": [\n * \"Read\"\n * ],\n * \"descriptors\": [\n * {\n * \"uuid\": \"2901\"\n * },\n * {\n * \"uuid\": \"2904\"\n * }\n * ]\n * }\n * ]\n * }\n * ```\n *\n * ## Advertising Data\n * Bluetooth advertising data is returned in when scanning for devices. The format format varies depending on your platform. On Android advertising data will be the raw advertising bytes. iOS does not allow access to raw advertising data, so a dictionary of data is returned.\n *\n * The advertising information for both Android and iOS appears to be a combination of advertising data and scan response data.\n *\n * ### Android\n *\n * ```typescript\n * {\n * \"name\": \"demo\",\n * \"id\": \"00:1A:7D:DA:71:13\",\n * \"advertising\": ArrayBuffer,\n * \"rssi\": -37\n * }\n * ```\n *\n * Convert the advertising info to a Uint8Array for processing. `var adData = new Uint8Array(peripheral.advertising)`\n *\n * ### iOS\n *\n * Note that iOS uses the string value of the constants for the [Advertisement Data Retrieval Keys](https://developer.apple.com/library/ios/documentation/CoreBluetooth/Reference/CBCentralManagerDelegate_Protocol/index.html#//apple_ref/doc/constant_group/Advertisement_Data_Retrieval_Keys). This will likely change in the future.\n *\n * ```typescript\n * {\n * \"name\": \"demo\",\n * \"id\": \"D8479A4F-7517-BCD3-91B5-3302B2F81802\",\n * \"advertising\": {\n * \"kCBAdvDataChannel\": 37,\n * \"kCBAdvDataServiceData\": {\n * \"FED8\": {\n * \"byteLength\": 7 // data not shown\n * }\n * },\n * \"kCBAdvDataLocalName\": \"demo\",\n * \"kCBAdvDataServiceUUIDs\": [\"FED8\"],\n * \"kCBAdvDataManufacturerData\": {\n * \"byteLength\": 7 // data not shown\n * },\n * \"kCBAdvDataTxPowerLevel\": 32,\n * \"kCBAdvDataIsConnectable\": true\n * },\n * \"rssi\": -53\n * }\n * ```\n *\n * ## Typed Arrays\n *\n * This plugin uses typed Arrays or ArrayBuffers for sending and receiving data.\n *\n * This means that you need convert your data to ArrayBuffers before sending and from ArrayBuffers when receiving.\n *\n * ```typescript\n * // ASCII only\n * function stringToBytes(string) {\n * var array = new Uint8Array(string.length);\n * for (var i = 0, l = string.length; i < l; i++) {\n * array[i] = string.charCodeAt(i);\n * }\n * return array.buffer;\n * }\n *\n * // ASCII only\n * function bytesToString(buffer) {\n * return String.fromCharCode.apply(null, new Uint8Array(buffer));\n * }\n * ```\n * You can read more about typed arrays in these articles on [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) and [HTML5 Rocks](http://www.html5rocks.com/en/tutorials/webgl/typed_arrays/).\n *\n * ## UUIDs\n *\n * UUIDs are always strings and not numbers. Some 16-bit UUIDs, such as '2220' look like integers, but they're not. (The integer 2220 is 0x8AC in hex.) This isn't a problem with 128 bit UUIDs since they look like strings 82b9e6e1-593a-456f-be9b-9215160ebcac. All 16-bit UUIDs should also be passed to methods as strings.\n *\n */\nexport var BLE = (function () {\n function BLE() {\n }\n /**\n * Scan and discover BLE peripherals for the specified amount of time.\n *\n * @usage\n * ```\n * BLE.scan([], 5).subscribe(device => {\n * console.log(JSON.stringify(device));\n * });\n * ```\n * @param {string[]} services List of service UUIDs to discover, or `[]` to find all devices\n * @param {number} seconds Number of seconds to run discovery\n * @return Returns an Observable that notifies of each peripheral that is discovered during the specified time.\n */\n BLE.scan = function (services, seconds) { return; };\n /**\n * Scan and discover BLE peripherals until `stopScan` is called.\n *\n * @usage\n * ```\n * BLE.startScan([]).subscribe(device => {\n * console.log(JSON.stringify(device));\n * });\n *\n * setTimeout(() => {\n * BLE.stopScan();\n * }, 5000);\n * ```\n * @param {string[]} services List of service UUIDs to discover, or `[]` to find all devices\n * @return Returns an Observable that notifies of each peripheral discovered.\n */\n BLE.startScan = function (services) { return; };\n /**\n * Stop a scan started by `startScan`.\n *\n * @usage\n * ```\n * BLE.startScan([]).subscribe(device => {\n * console.log(JSON.stringify(device));\n * });\n * setTimeout(() => {\n * BLE.stopScan().then(() => { console.log('scan stopped'); });\n * }, 5000);\n * ```\n * @return returns a Promise.\n */\n BLE.stopScan = function () { return; };\n /**\n * Connect to a peripheral.\n * @usage\n * ```\n * BLE.connect('12:34:56:78:9A:BC').subscribe(peripheralData => {\n * console.log(peripheralData);\n * },\n * peripheralData => {\n * console.log('disconnected');\n * });\n * ```\n * @param deviceId {string} UUID or MAC address of the peripheral\n * @return Returns an Observable that notifies of connect/disconnect.\n */\n BLE.connect = function (deviceId) { return; };\n /**\n * Disconnect from a peripheral.\n * @usage\n * ```\n * BLE.disconnect('12:34:56:78:9A:BC').then(() => {\n * console.log('Disconnected');\n * });\n * ```\n * @param deviceId {string} UUID or MAC address of the peripheral\n * @return Returns a Promise\n */\n BLE.disconnect = function (deviceId) { return; };\n /**\n * Read the value of a characteristic.\n *\n * @param {string} deviceId UUID or MAC address of the peripheral\n * @param {string} serviceUUID UUID of the BLE service\n * @param {string} characteristicUUID UUID of the BLE characteristic\n * @return Returns a Promise\n */\n BLE.read = function (deviceId, serviceUUID, characteristicUUID) { return; };\n ;\n /**\n * Write the value of a characteristic.\n * @usage\n * ```\n * // send 1 byte to switch a light on\n * var data = new Uint8Array(1);\n * data[0] = 1;\n * BLE.write(device_id, \"FF10\", \"FF11\", data.buffer);\n *\n * // send a 3 byte value with RGB color\n * var data = new Uint8Array(3);\n * data[0] = 0xFF; // red\n * data[0] = 0x00; // green\n * data[0] = 0xFF; // blue\n * BLE.write(device_id, \"ccc0\", \"ccc1\", data.buffer);\n *\n * // send a 32 bit integer\n * var data = new Uint32Array(1);\n * data[0] = counterInput.value;\n * BLE.write(device_id, SERVICE, CHARACTERISTIC, data.buffer);\n *\n * ```\n * @param {string} deviceId UUID or MAC address of the peripheral\n * @param {string} serviceUUID UUID of the BLE service\n * @param {string} characteristicUUID UUID of the BLE characteristic\n * @param {ArrayBuffer} value Data to write to the characteristic, as an ArrayBuffer.\n * @return Returns a Promise\n */\n BLE.write = function (deviceId, serviceUUID, characteristicUUID, value) { return; };\n /**\n * Write the value of a characteristic without waiting for confirmation from the peripheral.\n *\n * @param {string} deviceId UUID or MAC address of the peripheral\n * @param {string} serviceUUID UUID of the BLE service\n * @param {string} characteristicUUID UUID of the BLE characteristic\n * @param {ArrayBuffer} value Data to write to the characteristic, as an ArrayBuffer.\n * @return Returns a Promise\n */\n BLE.writeWithoutResponse = function (deviceId, serviceUUID, characteristicUUID, value) { return; };\n /**\n * Register to be notified when the value of a characteristic changes.\n *\n * @usage\n * ```\n * BLE.startNotification(device_id, \"FF10\", \"FF11\").subscribe(buffer => {\n * console.log(String.fromCharCode.apply(null, new Uint8Array(buffer));\n * });\n * ```\n *\n * @param {string} deviceId UUID or MAC address of the peripheral\n * @param {string} serviceUUID UUID of the BLE service\n * @param {string} characteristicUUID UUID of the BLE characteristic\n * @return Returns an Observable that notifies of characteristic changes.\n */\n BLE.startNotification = function (deviceId, serviceUUID, characteristicUUID) { return; };\n /**\n * Stop being notified when the value of a characteristic changes.\n *\n * @param {string} deviceId UUID or MAC address of the peripheral\n * @param {string} serviceUUID UUID of the BLE service\n * @param {string} characteristicUUID UUID of the BLE characteristic\n * @return Returns a Promise.\n */\n BLE.stopNotification = function (deviceId, serviceUUID, characteristicUUID) { return; };\n /**\n * Report the connection status.\n *\n * @usage\n * ```\n * BLE.isConnected('FFCA0B09-CB1D-4DC0-A1EF-31AFD3EDFB53').then(\n * () => { console.log('connected'); },\n * () => { console.log('not connected'); }\n * );\n * ```\n * @param {string} deviceId UUID or MAC address of the peripheral\n * @return Returns a Promise.\n */\n BLE.isConnected = function (deviceId) { return; };\n /**\n * Report if bluetooth is enabled.\n *\n * @usage\n * ```\n * BLE.isEnabled().then(\n * () => { console.log('enabled'); },\n * () => { console.log('not enabled'); }\n * );\n * ```\n * @return Returns a Promise.\n */\n BLE.isEnabled = function () { return; };\n /**\n * Open System Bluetooth settings (Android only).\n *\n * @return Returns a Promise.\n */\n BLE.showBluetoothSettings = function () { return; };\n /**\n * Enable Bluetooth on the device (Android only).\n *\n * @return Returns a Promise.\n */\n BLE.enable = function () { return; };\n __decorate([\n Cordova({\n observable: true\n })\n ], BLE, \"scan\", null);\n __decorate([\n Cordova({\n observable: true,\n clearFunction: 'stopScan',\n clearWithArgs: true\n })\n ], BLE, \"startScan\", null);\n __decorate([\n Cordova()\n ], BLE, \"stopScan\", null);\n __decorate([\n Cordova({\n observable: true,\n clearFunction: 'disconnect',\n clearWithArgs: true\n })\n ], BLE, \"connect\", null);\n __decorate([\n Cordova()\n ], BLE, \"disconnect\", null);\n __decorate([\n Cordova()\n ], BLE, \"read\", null);\n __decorate([\n Cordova()\n ], BLE, \"write\", null);\n __decorate([\n Cordova()\n ], BLE, \"writeWithoutResponse\", null);\n __decorate([\n Cordova({\n observable: true,\n clearFunction: 'stopNotification',\n clearWithArgs: true\n })\n ], BLE, \"startNotification\", null);\n __decorate([\n Cordova()\n ], BLE, \"stopNotification\", null);\n __decorate([\n Cordova()\n ], BLE, \"isConnected\", null);\n __decorate([\n Cordova()\n ], BLE, \"isEnabled\", null);\n __decorate([\n Cordova()\n ], BLE, \"showBluetoothSettings\", null);\n __decorate([\n Cordova()\n ], BLE, \"enable\", null);\n BLE = __decorate([\n Plugin({\n plugin: 'cordova-plugin-ble-central',\n pluginRef: 'ble',\n repo: 'https://github.com/don/cordova-plugin-ble-central',\n platforms: ['iOS', 'Android']\n })\n ], BLE);\n return BLE;\n}());\n//# sourceMappingURL=ble.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Bluetooth Serial\n * @description This plugin enables serial communication over Bluetooth. It was written for communicating between Android or iOS and an Arduino.\n * @usage\n * ```typescript\n * import { BluetoothSerial } from 'ionic-native';\n *\n *\n * // Write a string\n * BluetoothSerial.write(\"hello world\").then(success, failure);\n *\n * // Array of int or bytes\n * BluetoothSerial.write([186, 220, 222]).then(success, failure);\n *\n * // Typed Array\n * var data = new Uint8Array(4);\n * data[0] = 0x41;\n * data[1] = 0x42;\n * data[2] = 0x43;\n * data[3] = 0x44;\n * BluetoothSerial.write(data).then(success, failure);\n *\n * // Array Buffer\n * BluetoothSerial.write(data.buffer).then(success, failure);\n * ```\n */\nexport var BluetoothSerial = (function () {\n function BluetoothSerial() {\n }\n /**\n * Connect to a Bluetooth device\n * @param {string} macAddress_or_uuid Identifier of the remote device\n * @returns {Observable} Subscribe to connect, unsubscribe to disconnect.\n */\n BluetoothSerial.connect = function (macAddress_or_uuid) { return; };\n /**\n * Connect insecurely to a Bluetooth device\n * @param {string} macAddress Identifier of the remote device\n * @returns {Observable} Subscribe to connect, unsubscribe to disconnect.\n */\n BluetoothSerial.connectInsecure = function (macAddress) { return; };\n /**\n * Writes data to the serial port\n * @param {any} data ArrayBuffer of data\n * @returns {Promise} returns a promise when data has been written\n */\n BluetoothSerial.write = function (data) { return; };\n /**\n * Gets the number of bytes of data available\n * @returns {Promise} returns a promise that contains the available bytes\n */\n BluetoothSerial.available = function () { return; };\n /**\n * Reads data from the buffer\n * @returns {Promise} returns a promise with data from the buffer\n */\n BluetoothSerial.read = function () { return; };\n /**\n * Reads data from the buffer until it reaches a delimiter\n * @param {string} delimiter string that you want to search until\n * @returns {Promise} returns a promise\n */\n BluetoothSerial.readUntil = function (delimiter) { return; };\n /**\n * Subscribe to be notified when data is received\n * @param {string} delimiter the string you want to watch for\n * @returns {Observable} returns an observable.\n */\n BluetoothSerial.subscribe = function (delimiter) { return; };\n /**\n * Subscribe to be notified when data is received\n * @returns {Observable} returns an observable\n */\n BluetoothSerial.subscribeRawData = function () { return; };\n /**\n * Clears data in buffer\n * @returns {Promise} returns a promise when completed\n */\n BluetoothSerial.clear = function () { return; };\n /**\n * Lists bonded devices\n * @returns {Promise} returns a promise\n */\n BluetoothSerial.list = function () { return; };\n /**\n * Reports if bluetooth is enabled\n * @returns {Promise} returns a promise\n */\n BluetoothSerial.isEnabled = function () { return; };\n /**\n * Reports the connection status\n * @returns {Promise} returns a promise\n */\n BluetoothSerial.isConnected = function () { return; };\n /**\n * Reads the RSSI from the connected peripheral\n * @returns {Promise} returns a promise\n */\n BluetoothSerial.readRSSI = function () { return; };\n /**\n * Show the Bluetooth settings on the device\n * @returns {Promise} returns a promise\n */\n BluetoothSerial.showBluetoothSettings = function () { return; };\n /**\n * Enable Bluetooth on the device\n * @returns {Promise} returns a promise\n */\n BluetoothSerial.enable = function () { return; };\n /**\n * Discover unpaired devices\n * @returns {Promise} returns a promise\n */\n BluetoothSerial.discoverUnpaired = function () { return; };\n /**\n * Subscribe to be notified on Bluetooth device discovery. Discovery process must be initiated with the `discoverUnpaired` function.\n * @returns {Observable} Returns an observable\n */\n BluetoothSerial.setDeviceDiscoveredListener = function () { return; };\n /**\n * Sets the human readable device name that is broadcasted to other devices\n * @param {string} newName Desired name of device\n */\n BluetoothSerial.setName = function (newName) { };\n /**\n * Makes the device discoverable by other devices\n * @param {number} discoverableDuration Desired number of seconds device should be discoverable for\n */\n BluetoothSerial.setDiscoverable = function (discoverableDuration) { };\n __decorate([\n Cordova({\n platforms: ['Android', 'iOS', 'Windows Phone'],\n observable: true,\n clearFunction: 'disconnect'\n })\n ], BluetoothSerial, \"connect\", null);\n __decorate([\n Cordova({\n platforms: ['Android'],\n observable: true,\n clearFunction: 'disconnect'\n })\n ], BluetoothSerial, \"connectInsecure\", null);\n __decorate([\n Cordova({\n platforms: ['Android', 'iOS', 'Windows Phone']\n })\n ], BluetoothSerial, \"write\", null);\n __decorate([\n Cordova({\n platforms: ['Android', 'iOS', 'Windows Phone']\n })\n ], BluetoothSerial, \"available\", null);\n __decorate([\n Cordova({\n platforms: ['Android', 'iOS', 'Windows Phone']\n })\n ], BluetoothSerial, \"read\", null);\n __decorate([\n Cordova({\n platforms: ['Android', 'iOS', 'Windows Phone']\n })\n ], BluetoothSerial, \"readUntil\", null);\n __decorate([\n Cordova({\n platforms: ['Android', 'iOS', 'Windows Phone'],\n observable: true,\n clearFunction: 'unsubscribe'\n })\n ], BluetoothSerial, \"subscribe\", null);\n __decorate([\n Cordova({\n platforms: ['Android', 'iOS', 'Windows Phone'],\n observable: true,\n clearFunction: 'unsubscribeRawData'\n })\n ], BluetoothSerial, \"subscribeRawData\", null);\n __decorate([\n Cordova({\n platforms: ['Android', 'iOS', 'Windows Phone']\n })\n ], BluetoothSerial, \"clear\", null);\n __decorate([\n Cordova({\n platforms: ['Android', 'iOS', 'Windows Phone']\n })\n ], BluetoothSerial, \"list\", null);\n __decorate([\n Cordova({\n platforms: ['Android', 'iOS', 'Windows Phone']\n })\n ], BluetoothSerial, \"isEnabled\", null);\n __decorate([\n Cordova({\n platforms: ['Android', 'iOS', 'Windows Phone']\n })\n ], BluetoothSerial, \"isConnected\", null);\n __decorate([\n Cordova({\n platforms: ['Android', 'iOS', 'Windows Phone']\n })\n ], BluetoothSerial, \"readRSSI\", null);\n __decorate([\n Cordova({\n platforms: ['Android', 'iOS', 'Windows Phone']\n })\n ], BluetoothSerial, \"showBluetoothSettings\", null);\n __decorate([\n Cordova({\n platforms: ['Android', 'iOS', 'Windows Phone']\n })\n ], BluetoothSerial, \"enable\", null);\n __decorate([\n Cordova({\n platforms: ['Android', 'iOS', 'Windows Phone']\n })\n ], BluetoothSerial, \"discoverUnpaired\", null);\n __decorate([\n Cordova({\n platforms: ['Android', 'iOS', 'Windows Phone'],\n observable: true,\n clearFunction: 'clearDeviceDiscoveredListener'\n })\n ], BluetoothSerial, \"setDeviceDiscoveredListener\", null);\n __decorate([\n Cordova({\n platforms: ['Android'],\n sync: true\n })\n ], BluetoothSerial, \"setName\", null);\n __decorate([\n Cordova({\n platforms: ['Android'],\n sync: true\n })\n ], BluetoothSerial, \"setDiscoverable\", null);\n BluetoothSerial = __decorate([\n Plugin({\n repo: 'https://github.com/don/BluetoothSerial',\n plugin: 'cordova-plugin-bluetooth-serial',\n pluginRef: 'bluetoothSerial',\n platforms: ['Android', 'iOS', 'Windows Phone', 'Browser']\n })\n ], BluetoothSerial);\n return BluetoothSerial;\n}());\n//# sourceMappingURL=bluetoothserial.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Calendar\n * @description\n * This plugin allows you to add events to the Calendar of the mobile device.\n *\n * Requires Cordova plugin: `cordova-plugin-calendar`. For more info, please see the [Calendar plugin docs](https://github.com/EddyVerbruggen/Calendar-PhoneGap-Plugin).\n *\n *\n * @usage\n * ```\n * import {Calendar} from 'ionic-native';\n *\n *\n *\n * Calendar.createCalendar('MyCalendar').then(\n * (msg) => { console.log(msg); },\n * (err) => { console.log(err); }\n * );\n * ```\n *\n */\nexport var Calendar = (function () {\n function Calendar() {\n }\n /**\n * This function checks if we have permission to read/write from/to the calendar.\n * The promise will resolve with `true` when:\n * - You're running on iOS, or\n * - You're targetting API level lower than 23, or\n * - You're using Android < 6, or\n * - You've already granted permission\n *\n * If this returns false, you should call `requestReadWritePermissions` function\n * @returns {Promise<boolean>}\n */\n Calendar.hasReadWritePermission = function () { return; };\n /**\n * Check if we have read permission\n * @returns {Promise<boolean>}\n */\n Calendar.hasReadPermission = function () { return; };\n /**\n * Check if we have write permission\n * @returns {Promise<boolean>}\n */\n Calendar.hasWritePermission = function () { return; };\n /**\n * Request write permission\n * @returns {Promise<any>}\n */\n Calendar.requestWritePermission = function () { return; };\n /**\n * Request read permission\n * @returns {Promise<any>}\n */\n Calendar.requestReadPermission = function () { return; };\n /**\n * Requests read/write permissions\n * @returns {Promise<any>}\n */\n Calendar.requestReadWritePermission = function () { return; };\n /**\n * Create a calendar. (iOS only)\n *\n * @param {string | Object} nameOrOptions either a string name or a options object. If string, provide the calendar name. IF an object, provide a calendar name as a string and a calendar color in hex format as a string\n * @return {Promise} Returns a Promise\n */\n Calendar.createCalendar = function (nameOrOptions) { return; };\n /**\n * Delete a calendar. (iOS only)\n * @param {string} name Name of the calendar to delete.\n * @return Returns a Promise\n */\n Calendar.deleteCalendar = function (name) { return; };\n /**\n * Returns the default calendar options.\n *\n * @return Returns an object with the default calendar options:\n * firstReminderMinutes: 60,\n * secondReminderMinutes: null,\n * recurrence: null, // options are: 'daily', 'weekly', 'monthly', 'yearly'\n * recurrenceInterval: 1, // only used when recurrence is set\n * recurrenceEndDate: null,\n * calendarName: null,\n * calendarId: null,\n * url: null\n */\n Calendar.getCalendarOptions = function () {\n return {\n firstReminderMinutes: 60,\n secondReminderMinutes: null,\n recurrence: null,\n recurrenceInterval: 1,\n recurrenceEndDate: null,\n calendarName: null,\n calendarId: null,\n url: null\n };\n };\n /**\n * Silently create an event.\n * @param {string} [title] The event title\n * @param {string} [location] The event location\n * @param {string} [notes] The event notes\n * @param {Date} [startDate] The event start date\n * @param {Date} [endDate] The event end date\n * @return Returns a Promise\n */\n Calendar.createEvent = function (title, location, notes, startDate, endDate) { return; };\n /**\n * Silently create an event with additional options.\n *\n * @param {string} [title] The event title\n * @param {string} [location] The event location\n * @param {string} [notes] The event notes\n * @param {Date} [startDate] The event start date\n * @param {Date} [endDate] The event end date\n * @param {CalendarOptions} [options] Additional options, see `getCalendarOptions`\n * @return Returns a Promise\n */\n Calendar.createEventWithOptions = function (title, location, notes, startDate, endDate, options) { return; };\n /**\n * Interactively create an event.\n *\n * @param {string} [title] The event title\n * @param {string} [location] The event location\n * @param {string} [notes] The event notes\n * @param {Date} [startDate] The event start date\n * @param {Date} [endDate] The event end date\n * @return Returns a Promise\n */\n Calendar.createEventInteractively = function (title, location, notes, startDate, endDate) { return; };\n /**\n * Interactively create an event with additional options.\n *\n * @param {string} [title] The event title\n * @param {string} [location] The event location\n * @param {string} [notes] The event notes\n * @param {Date} [startDate] The event start date\n * @param {Date} [endDate] The event end date\n * @param {CalendarOptions} [options] Additional options, see `getCalendarOptions`\n * @return Returns a Promise\n */\n Calendar.createEventInteractivelyWithOptions = function (title, location, notes, startDate, endDate, options) { return; };\n // deprecated\n // @Cordova()\n // static createEventInNamedCalendar(\n // title?: string,\n // location?: string,\n // notes?: string,\n // startDate?: Date,\n // endDate?: Date,\n // calendarName?: string\n // ) {}\n /**\n * Find an event.\n *\n * @param {string} [title] The event title\n * @param {string} [location] The event location\n * @param {string} [notes] The event notes\n * @param {Date} [startDate] The event start date\n * @param {Date} [endDate] The event end date\n * @return Returns a Promise\n */\n Calendar.findEvent = function (title, location, notes, startDate, endDate) { return; };\n /**\n * Find an event with additional options.\n * @param {string} [title] The event title\n * @param {string} [location] The event location\n * @param {string} [notes] The event notes\n * @param {Date} [startDate] The event start date\n * @param {Date} [endDate] The event end date\n * @param {CalendarOptions} [options] Additional options, see `getCalendarOptions`\n * @return Returns a Promise that resolves with the event, or rejects with an error.\n */\n Calendar.findEventWithOptions = function (title, location, notes, startDate, endDate, options) { return; };\n /**\n * Find a list of events within the specified date range. (Android only)\n *\n * @param {Date} [startDate] The start date\n * @param {Date} [endDate] The end date\n * @return Returns a Promise that resolves with the list of events, or rejects with an error.\n */\n Calendar.listEventsInRange = function (startDate, endDate) { return; };\n /**\n * Get a list of all calendars.\n * @return A Promise that resolves with the list of calendars, or rejects with an error.\n */\n Calendar.listCalendars = function () { return; };\n /**\n * Get a list of all future events in the specified calendar. (iOS only)\n * @return Returns a Promise that resolves with the list of events, or rejects with an error.\n */\n Calendar.findAllEventsInNamedCalendar = function (calendarName) { return; };\n /**\n * Modify an event. (iOS only)\n *\n * @param {string} [title] The event title\n * @param {string} [location] The event location\n * @param {string} [notes] The event notes\n * @param {Date} [startDate] The event start date\n * @param {Date} [endDate] The event end date\n * @param {string} [newTitle] The new event title\n * @param {string} [newLocation] The new event location\n * @param {string} [newNotes] The new event notes\n * @param {Date} [newStartDate] The new event start date\n * @param {Date} [newEndDate] The new event end date\n * @return Returns a Promise\n */\n Calendar.modifyEvent = function (title, location, notes, startDate, endDate, newTitle, newLocation, newNotes, newStartDate, newEndDate) { return; };\n /**\n * Modify an event with additional options. (iOS only)\n *\n * @param {string} [title] The event title\n * @param {string} [location] The event location\n * @param {string} [notes] The event notes\n * @param {Date} [startDate] The event start date\n * @param {Date} [endDate] The event end date\n * @param {string} [newTitle] The new event title\n * @param {string} [newLocation] The new event location\n * @param {string} [newNotes] The new event notes\n * @param {Date} [newStartDate] The new event start date\n * @param {Date} [newEndDate] The new event end date\n * @param {CalendarOptions} [options] Additional options, see `getCalendarOptions`\n * @return Returns a Promise\n */\n Calendar.modifyEventWithOptions = function (title, location, notes, startDate, endDate, newTitle, newLocation, newNotes, newStartDate, newEndDate, options) { return; };\n /**\n * Delete an event.\n *\n * @param {string} [title] The event title\n * @param {string} [location] The event location\n * @param {string} [notes] The event notes\n * @param {Date} [startDate] The event start date\n * @param {Date} [endDate] The event end date\n * @return Returns a Promise\n */\n Calendar.deleteEvent = function (title, location, notes, startDate, endDate) { return; };\n /**\n * Delete an event from the specified Calendar. (iOS only)\n *\n * @param {string} [title] The event title\n * @param {string} [location] The event location\n * @param {string} [notes] The event notes\n * @param {Date} [startDate] The event start date\n * @param {Date} [endDate] The event end date\n * @param {string} calendarName\n * @return Returns a Promise\n */\n Calendar.deleteEventFromNamedCalendar = function (title, location, notes, startDate, endDate, calendarName) { return; };\n /**\n * Open the calendar at the specified date.\n * @param {Date} date The date you want to open the calendar on\n * @return {Promise<any>} Promise returns a promise\n */\n Calendar.openCalendar = function (date) { return; };\n __decorate([\n Cordova()\n ], Calendar, \"hasReadWritePermission\", null);\n __decorate([\n Cordova()\n ], Calendar, \"hasReadPermission\", null);\n __decorate([\n Cordova()\n ], Calendar, \"hasWritePermission\", null);\n __decorate([\n Cordova()\n ], Calendar, \"requestWritePermission\", null);\n __decorate([\n Cordova()\n ], Calendar, \"requestReadPermission\", null);\n __decorate([\n Cordova()\n ], Calendar, \"requestReadWritePermission\", null);\n __decorate([\n Cordova()\n ], Calendar, \"createCalendar\", null);\n __decorate([\n Cordova()\n ], Calendar, \"deleteCalendar\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], Calendar, \"getCalendarOptions\", null);\n __decorate([\n Cordova()\n ], Calendar, \"createEvent\", null);\n __decorate([\n Cordova()\n ], Calendar, \"createEventWithOptions\", null);\n __decorate([\n Cordova()\n ], Calendar, \"createEventInteractively\", null);\n __decorate([\n Cordova()\n ], Calendar, \"createEventInteractivelyWithOptions\", null);\n __decorate([\n Cordova()\n ], Calendar, \"findEvent\", null);\n __decorate([\n Cordova()\n ], Calendar, \"findEventWithOptions\", null);\n __decorate([\n Cordova()\n ], Calendar, \"listEventsInRange\", null);\n __decorate([\n Cordova()\n ], Calendar, \"listCalendars\", null);\n __decorate([\n Cordova()\n ], Calendar, \"findAllEventsInNamedCalendar\", null);\n __decorate([\n Cordova()\n ], Calendar, \"modifyEvent\", null);\n __decorate([\n Cordova()\n ], Calendar, \"modifyEventWithOptions\", null);\n __decorate([\n Cordova()\n ], Calendar, \"deleteEvent\", null);\n __decorate([\n Cordova()\n ], Calendar, \"deleteEventFromNamedCalendar\", null);\n __decorate([\n Cordova()\n ], Calendar, \"openCalendar\", null);\n Calendar = __decorate([\n Plugin({\n plugin: 'cordova-plugin-calendar',\n pluginRef: 'plugins.calendar',\n repo: 'https://github.com/EddyVerbruggen/Calendar-PhoneGap-Plugin',\n platforms: ['Android', 'iOS']\n })\n ], Calendar);\n return Calendar;\n}());\n//# sourceMappingURL=calendar.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Plugin, Cordova } from './plugin';\n/**\n * @name CallNumber\n * @description\n * Call a number directly from your Cordova/Ionic application.\n *\n * @usage\n * ```\n * import {CallNumber} from 'ionic-native';\n *\n * CallNumber.callNumber(18001010101, true)\n * .then(() => console.log('Launched dialer!'))\n * .catch(() => console.log('Error launching dialer'));\n *\n * ```\n */\nexport var CallNumber = (function () {\n function CallNumber() {\n }\n /**\n * Calls a phone number\n * @param numberToCall {string} The phone number to call as a string\n * @param bypassAppChooser {boolean} Set to true to bypass the app chooser and go directly to dialer\n */\n CallNumber.callNumber = function (numberToCall, bypassAppChooser) {\n return;\n };\n __decorate([\n Cordova({\n callbackOrder: 'reverse'\n })\n ], CallNumber, \"callNumber\", null);\n CallNumber = __decorate([\n Plugin({\n plugin: 'call-number',\n pluginRef: 'plugins.CallNumber',\n repo: 'https://github.com/Rohfosho/CordovaCallNumberPlugin',\n platforms: ['iOS', 'Android']\n })\n ], CallNumber);\n return CallNumber;\n}());\n//# sourceMappingURL=call-number.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Camera\n * @description\n * Take a photo or capture video.\n *\n * Requires {@link module:driftyco/ionic-native} and the Cordova plugin: `cordova-plugin-camera`. For more info, please see the [Cordova Camera Plugin Docs](https://github.com/apache/cordova-plugin-camera).\n *\n * @usage\n * ```typescript\n * import { Camera } from 'ionic-native';\n *\n *\n * Camera.getPicture(options).then((imageData) => {\n * // imageData is either a base64 encoded string or a file URI\n * // If it's base64:\n * let base64Image = 'data:image/jpeg;base64,' + imageData;\n * }, (err) => {\n * // Handle error\n * });\n * ```\n */\nexport var Camera = (function () {\n function Camera() {\n }\n /**\n * Take a picture or video, or load one from the library.\n * @param {CameraOptions?} options Options that you want to pass to the camera. Encoding type, quality, etc. Optional\n * @return {Promise} Returns a Promise that resolves with Base64 encoding of the image data, or the image file URI, depending on cameraOptions, otherwise rejects with an error.\n */\n Camera.getPicture = function (options) { return; };\n /**\n * Remove intermediate image files that are kept in temporary storage after calling camera.getPicture.\n * Applies only when the value of Camera.sourceType equals Camera.PictureSourceType.CAMERA and the Camera.destinationType equals Camera.DestinationType.FILE_URI.\n * @return Returns a Promise\n */\n Camera.cleanup = function () { return; };\n ;\n /**\n * @private\n * @enum {number}\n */\n Camera.DestinationType = {\n /** Return base64 encoded string. DATA_URL can be very memory intensive and cause app crashes or out of memory errors. Use FILE_URI or NATIVE_URI if possible */\n DATA_URL: 0,\n /** Return file uri (content://media/external/images/media/2 for Android) */\n FILE_URI: 1,\n /** Return native uri (eg. asset-library://... for iOS) */\n NATIVE_URI: 2\n };\n /**\n * @private\n * @enum {number}\n */\n Camera.EncodingType = {\n /** Return JPEG encoded image */\n JPEG: 0,\n /** Return PNG encoded image */\n PNG: 1\n };\n /**\n * @private\n * @enum {number}\n */\n Camera.MediaType = {\n /** Allow selection of still pictures only. DEFAULT. Will return format specified via DestinationType */\n PICTURE: 0,\n /** Allow selection of video only, ONLY RETURNS URL */\n VIDEO: 1,\n /** Allow selection from all media types */\n ALLMEDIA: 2\n };\n /**\n * @private\n * @enum {number}\n */\n Camera.PictureSourceType = {\n /** Choose image from picture library (same as SAVEDPHOTOALBUM for Android) */\n PHOTOLIBRARY: 0,\n /** Take picture from camera */\n CAMERA: 1,\n /** Choose image from picture library (same as PHOTOLIBRARY for Android) */\n SAVEDPHOTOALBUM: 2\n };\n /**\n * @private\n * Matches iOS UIPopoverArrowDirection constants to specify arrow location on popover.\n * @enum {number}\n */\n Camera.PopoverArrowDirection = {\n ARROW_UP: 1,\n ARROW_DOWN: 2,\n ARROW_LEFT: 4,\n ARROW_RIGHT: 8,\n ARROW_ANY: 15\n };\n /**\n * @private\n * @enum {number}\n */\n Camera.Direction = {\n /** Use the back-facing camera */\n BACK: 0,\n /** Use the front-facing camera */\n FRONT: 1\n };\n __decorate([\n Cordova({\n callbackOrder: 'reverse'\n })\n ], Camera, \"getPicture\", null);\n __decorate([\n Cordova({\n platforms: ['iOS']\n })\n ], Camera, \"cleanup\", null);\n Camera = __decorate([\n Plugin({\n plugin: 'cordova-plugin-camera',\n pluginRef: 'navigator.camera',\n repo: 'https://github.com/apache/cordova-plugin-camera',\n platforms: ['Android', 'BlackBerry', 'Browser', 'Firefox', 'FireOS', 'iOS', 'Windows', 'Windows Phone 8', 'Ubuntu']\n })\n ], Camera);\n return Camera;\n}());\n//# sourceMappingURL=camera.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name CameraPreview\n * @description\n * Showing camera preview in HTML\n *\n * For more info, please see the [Cordova Camera Preview Plugin Docs](https://github.com/cordova-plugin-camera-preview/cordova-plugin-camera-preview).\n *\n * @usage\n * ```\n * import { CameraPreview } from 'ionic-native';\n *\n * // camera options (Size and location)\n * let cameraRect: CameraPreviewRect = {\n * x: 100,\n * y: 100,\n * width: 200,\n * height: 200\n * };\n *\n *\n * // start camera\n * CameraPreview.startCamera(\n * cameraRect, // position and size of preview\n * 'front', // default camera\n * true, // tape to take picture\n * false, // disable drag\n * true // send the preview to the back of the screen so we can add overlaying elements\n * );\n *\n * // Set the handler to run every time we take a picture\n * CameraPreview.setOnPictureTakenHandler().subscribe((result) => {\n * console.log(result);\n * // do something with the result\n * });\n *\n *\n * // take a picture\n * CameraPreview.takePicture({\n * maxWidth: 640,\n * maxHeight: 640\n * });\n *\n * // Switch camera\n * CameraPreview.switchCamera();\n *\n * // set color effect to negative\n * CameraPreview.setColorEffect('negative');\n *\n * // Stop the camera preview\n * CameraPreview.stopCamera();\n *\n * ```\n *\n */\nexport var CameraPreview = (function () {\n function CameraPreview() {\n }\n /**\n * Starts the camera preview instance.\n * @param {CameraPreviewRect} position and size of the preview window - {x: number, y: number, width: number, height: number}\n * @param {string} which camera to use - 'front' | 'back'\n * @param {boolean} enable tap to take picture\n * @param {boolean} enable preview box drag across the screen\n * @param {boolean} send preview box to the back of the webview\n * @param {number} alpha of the preview box\n */\n CameraPreview.startCamera = function (rect, defaultCamera, tapEnabled, dragEnabled, toBack, alpha) { };\n ;\n /**\n * Stops the camera preview instance.\n */\n CameraPreview.stopCamera = function () { };\n ;\n /**\n * Take the picture, the parameter size is optional\n * @param {CameraPreviewSize} optional - size of the picture to take\n */\n CameraPreview.takePicture = function (size) { };\n ;\n /**\n * Register a callback function that receives the original picture and the image captured from the preview box.\n */\n CameraPreview.setOnPictureTakenHandler = function () { return; };\n ;\n /**\n * Switch from the rear camera and front camera, if available.\n */\n CameraPreview.switchCamera = function () { };\n ;\n /**\n * Show the camera preview box.\n */\n CameraPreview.show = function () { };\n ;\n /**\n * Hide the camera preview box.\n */\n CameraPreview.hide = function () { };\n ;\n /**\n * Set the default mode for the Flash.\n */\n // @Cordova({\n // sync: true\n // })\n // static setFlashMode(mode: number): void { };\n /**\n * Set camera color effect.\n */\n CameraPreview.setColorEffect = function (effect) { };\n ;\n /**\n * @private\n * @enum {number}\n */\n CameraPreview.FlashMode = {\n OFF: 0,\n ON: 1,\n AUTO: 2\n };\n __decorate([\n Cordova({\n sync: true\n })\n ], CameraPreview, \"startCamera\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], CameraPreview, \"stopCamera\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], CameraPreview, \"takePicture\", null);\n __decorate([\n Cordova({\n observable: true\n })\n ], CameraPreview, \"setOnPictureTakenHandler\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], CameraPreview, \"switchCamera\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], CameraPreview, \"show\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], CameraPreview, \"hide\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], CameraPreview, \"setColorEffect\", null);\n CameraPreview = __decorate([\n Plugin({\n plugin: 'cordova-plugin-camera-preview',\n pluginRef: 'cordova.plugins.camerapreview',\n repo: 'https://github.com/cordova-plugin-camera-preview/cordova-plugin-camera-preview',\n platforms: ['Android', 'iOS']\n })\n ], CameraPreview);\n return CameraPreview;\n}());\n//# sourceMappingURL=camera-preview.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name CardIO\n * @description\n * @usage\n * ```\n * import { CardIO } from 'ionic-native';\n *\n *\n * CardIO.canScan()\n * .then(\n * (res: boolean) => {\n * if(res){\n * let options = {\n * requireExpiry: true,\n * requireCCV: false,\n * requirePostalCode: false\n * };\n * CardIO.scan(options);\n * }\n * }\n * );\n * ```\n */\nexport var CardIO = (function () {\n function CardIO() {\n }\n /**\n * Check whether card scanning is currently available. (May vary by\n * device, OS version, network connectivity, etc.)\n *\n */\n CardIO.canScan = function () { return; };\n /**\n * Scan a credit card with card.io.\n * @param {CardIOOptions} options Options for configuring the plugin\n */\n CardIO.scan = function (options) { return; };\n /**\n * Retrieve the version of the card.io library. Useful when contacting support.\n */\n CardIO.version = function () { return; };\n __decorate([\n Cordova()\n ], CardIO, \"canScan\", null);\n __decorate([\n Cordova()\n ], CardIO, \"scan\", null);\n __decorate([\n Cordova()\n ], CardIO, \"version\", null);\n CardIO = __decorate([\n Plugin({\n plugin: 'https://github.com/card-io/card.io-Cordova-Plugin',\n pluginRef: 'CardIO',\n repo: 'https://github.com/card-io/card.io-Cordova-Plugin',\n platforms: ['iOS', 'Android']\n })\n ], CardIO);\n return CardIO;\n}());\n//# sourceMappingURL=card-io.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Clipboard\n * @description\n * Clipboard management plugin for Cordova that supports iOS, Android, and Windows Phone 8.\n *\n * Requires Cordova plugin: https://github.com/VersoSolutions/CordovaClipboard\n * For more info, please see the [Clipboard plugin docs](https://github.com/VersoSolutions/CordovaClipboard.git).\n *\n * @usage\n * ```typescript\n * import { Clipboard } from 'ionic-native';\n *\n *\n * Clipboard.copy('Hello world');\n *\n * Clipboard.paste().then(\n * (resolve: string) => {\n * alert(resolve);\n * },\n * (reject: string) => {\n * alert('Error: ' + reject);\n * }\n * );\n * );\n * ```\n */\nexport var Clipboard = (function () {\n function Clipboard() {\n }\n /**\n * Copies the given text\n * @param {string} text Text that gets copied on the system clipboard\n * @returns {Promise<T>} Returns a promise after the text has been copied\n */\n Clipboard.copy = function (text) { return; };\n /**\n * Pastes the text stored in clipboard\n * @returns {Promise<T>} Returns a promise after the text has been pasted\n */\n Clipboard.paste = function () { return; };\n __decorate([\n Cordova()\n ], Clipboard, \"copy\", null);\n __decorate([\n Cordova()\n ], Clipboard, \"paste\", null);\n Clipboard = __decorate([\n Plugin({\n plugin: 'https://github.com/VersoSolutions/CordovaClipboard.git',\n pluginRef: 'cordova.plugins.clipboard',\n repo: 'https://github.com/VersoSolutions/CordovaClipboard',\n platforms: ['Amazon Fire OS', 'iOS', 'Android', 'BlackBerry 10', 'Windows Phone 7', 'Windows Phone 8', 'Windows', 'Firefox OS', 'Browser']\n })\n ], Clipboard);\n return Clipboard;\n}());\n//# sourceMappingURL=clipboard.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * Defines the possible result statuses of the window.codePush.sync operation.\n */\nexport var SyncStatus;\n(function (SyncStatus) {\n /**\n * The application is up to date.\n */\n SyncStatus[SyncStatus[\"UP_TO_DATE\"] = 0] = \"UP_TO_DATE\";\n /**\n * An update is available, it has been downloaded, unzipped and copied to the deployment folder.\n * After the completion of the callback invoked with SyncStatus.UPDATE_INSTALLED, the application will be reloaded with the updated code and resources.\n */\n SyncStatus[SyncStatus[\"UPDATE_INSTALLED\"] = 1] = \"UPDATE_INSTALLED\";\n /**\n * An optional update is available, but the user declined to install it. The update was not downloaded.\n */\n SyncStatus[SyncStatus[\"UPDATE_IGNORED\"] = 2] = \"UPDATE_IGNORED\";\n /**\n * An error happened during the sync operation. This might be an error while communicating with the server, downloading or unziping the update.\n * The console logs should contain more information about what happened. No update has been applied in this case.\n */\n SyncStatus[SyncStatus[\"ERROR\"] = 3] = \"ERROR\";\n /**\n * There is an ongoing sync in progress, so this attempt to sync has been aborted.\n */\n SyncStatus[SyncStatus[\"IN_PROGRESS\"] = 4] = \"IN_PROGRESS\";\n /**\n * Intermediate status - the plugin is about to check for updates.\n */\n SyncStatus[SyncStatus[\"CHECKING_FOR_UPDATE\"] = 5] = \"CHECKING_FOR_UPDATE\";\n /**\n * Intermediate status - a user dialog is about to be displayed. This status will be reported only if user interaction is enabled.\n */\n SyncStatus[SyncStatus[\"AWAITING_USER_ACTION\"] = 6] = \"AWAITING_USER_ACTION\";\n /**\n * Intermediate status - the update package is about to be downloaded.\n */\n SyncStatus[SyncStatus[\"DOWNLOADING_PACKAGE\"] = 7] = \"DOWNLOADING_PACKAGE\";\n /**\n * Intermediate status - the update package is about to be installed.\n */\n SyncStatus[SyncStatus[\"INSTALLING_UPDATE\"] = 8] = \"INSTALLING_UPDATE\";\n})(SyncStatus || (SyncStatus = {}));\n/**\n * Defines the available install modes for updates.\n */\nexport var InstallMode;\n(function (InstallMode) {\n /**\n * The update will be applied to the running application immediately. The application will be reloaded with the new content immediately.\n */\n InstallMode[InstallMode[\"IMMEDIATE\"] = 0] = \"IMMEDIATE\";\n /**\n * The update is downloaded but not installed immediately. The new content will be available the next time the application is started.\n */\n InstallMode[InstallMode[\"ON_NEXT_RESTART\"] = 1] = \"ON_NEXT_RESTART\";\n /**\n * The udpate is downloaded but not installed immediately. The new content will be available the next time the application is resumed or restarted, whichever event happends first.\n */\n InstallMode[InstallMode[\"ON_NEXT_RESUME\"] = 2] = \"ON_NEXT_RESUME\";\n})(InstallMode || (InstallMode = {}));\n/**\n * @name CodePush\n * @description\n * CodePush plugin for Cordova by Microsoft that supports iOS and Android.\n *\n * For more info, please see https://github.com/ksachdeva/ionic2-code-push-example\n *\n * @usage\n * ```typescript\n * import { CodePush } from 'ionic-native';\n *\n * // note - mostly error & completed methods of observable will not fire\n * // as syncStatus will contain the current state of the update\n * CodePush.sync().subscribe((syncStatus) => console.log(syncStatus));\n *\n * const downloadProgress = (progress) => { console.log(`Downloaded ${progress.receivedBytes} of ${progress.totalBytes}`); }\n * CodePush.sync({}, downloadProgress).subscribe((syncStatus) => console.log(syncStatus));\n *\n * ```\n */\nexport var CodePush = (function () {\n function CodePush() {\n }\n /**\n * Get the current package information.\n *\n * @param packageSuccess Callback invoked with the currently deployed package information.\n * @param packageError Optional callback invoked in case of an error.\n */\n CodePush.getCurrentPackage = function () {\n return;\n };\n /**\n * Gets the pending package information, if any. A pending package is one that has been installed but the application still runs the old code.\n * This happends only after a package has been installed using ON_NEXT_RESTART or ON_NEXT_RESUME mode, but the application was not restarted/resumed yet.\n */\n CodePush.getPendingPackage = function () {\n return;\n };\n /**\n * Checks with the CodePush server if an update package is available for download.\n *\n * @param querySuccess Callback invoked in case of a successful response from the server.\n * The callback takes one RemotePackage parameter. A non-null package is a valid update.\n * A null package means the application is up to date for the current native application version.\n * @param queryError Optional callback invoked in case of an error.\n * @param deploymentKey Optional deployment key that overrides the config.xml setting.\n */\n CodePush.checkForUpdate = function (deploymentKey) {\n return;\n };\n /**\n * Notifies the plugin that the update operation succeeded and that the application is ready.\n * Calling this function is required on the first run after an update. On every subsequent application run, calling this function is a noop.\n * If using sync API, calling this function is not required since sync calls it internally.\n *\n * @param notifySucceeded Optional callback invoked if the plugin was successfully notified.\n * @param notifyFailed Optional callback invoked in case of an error during notifying the plugin.\n */\n CodePush.notifyApplicationReady = function () {\n return;\n };\n /**\n * Reloads the application. If there is a pending update package installed using ON_NEXT_RESTART or ON_NEXT_RESUME modes, the update\n * will be immediately visible to the user. Otherwise, calling this function will simply reload the current version of the application.\n */\n CodePush.restartApplication = function () {\n return;\n };\n /**\n * Convenience method for installing updates in one method call.\n * This method is provided for simplicity, and its behavior can be replicated by using window.codePush.checkForUpdate(), RemotePackage's download() and LocalPackage's install() methods.\n *\n * The algorithm of this method is the following:\n * - Checks for an update on the CodePush server.\n * - If an update is available\n * - If the update is mandatory and the alertMessage is set in options, the user will be informed that the application will be updated to the latest version.\n * The update package will then be downloaded and applied.\n * - If the update is not mandatory and the confirmMessage is set in options, the user will be asked if they want to update to the latest version.\n * If they decline, the syncCallback will be invoked with SyncStatus.UPDATE_IGNORED.\n * - Otherwise, the update package will be downloaded and applied with no user interaction.\n * - If no update is available on the server, or if a previously rolled back update is available and the ignoreFailedUpdates is set to true, the syncCallback will be invoked with the SyncStatus.UP_TO_DATE.\n * - If an error occurs during checking for update, downloading or installing it, the syncCallback will be invoked with the SyncStatus.ERROR.\n *\n * @param syncCallback Optional callback to be called with the status of the sync operation.\n * @param syncOptions Optional SyncOptions parameter configuring the behavior of the sync operation.\n * @param downloadProgress Optional callback invoked during the download process. It is called several times with one DownloadProgress parameter.\n *\n */\n CodePush.sync = function (syncOptions, downloadProgress) {\n return;\n };\n __decorate([\n Cordova()\n ], CodePush, \"getCurrentPackage\", null);\n __decorate([\n Cordova()\n ], CodePush, \"getPendingPackage\", null);\n __decorate([\n Cordova({\n callbackOrder: 'reverse'\n })\n ], CodePush, \"checkForUpdate\", null);\n __decorate([\n Cordova()\n ], CodePush, \"notifyApplicationReady\", null);\n __decorate([\n Cordova()\n ], CodePush, \"restartApplication\", null);\n __decorate([\n Cordova({\n observable: true,\n successIndex: 0,\n errorIndex: 3 // we don't need this, so we set it to a value higher than # of args\n })\n ], CodePush, \"sync\", null);\n CodePush = __decorate([\n Plugin({\n plugin: 'cordova-plugin-code-push',\n pluginRef: 'codePush',\n repo: 'https://github.com/Microsoft/cordova-plugin-code-push',\n platforms: ['Android', 'iOS']\n })\n ], CodePush);\n return CodePush;\n}());\n//# sourceMappingURL=code-push.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, CordovaInstance, InstanceProperty, Plugin } from './plugin';\n/**\n * @private\n */\nexport var Contact = (function () {\n function Contact() {\n this._objectInstance = navigator.contacts.create();\n }\n Object.defineProperty(Contact.prototype, \"id\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Contact.prototype, \"displayName\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Contact.prototype, \"name\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Contact.prototype, \"nickname\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Contact.prototype, \"phoneNumbers\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Contact.prototype, \"emails\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Contact.prototype, \"addresses\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Contact.prototype, \"ims\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Contact.prototype, \"organizations\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Contact.prototype, \"birthday\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Contact.prototype, \"note\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Contact.prototype, \"photos\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Contact.prototype, \"categories\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Contact.prototype, \"urls\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Contact.prototype.clone = function () {\n var newContact = new Contact();\n for (var prop in this) {\n if (prop === 'id')\n return;\n newContact[prop] = this[prop];\n }\n return newContact;\n };\n Contact.prototype.remove = function () { return; };\n Contact.prototype.save = function () { return; };\n __decorate([\n InstanceProperty\n ], Contact.prototype, \"id\", null);\n __decorate([\n InstanceProperty\n ], Contact.prototype, \"displayName\", null);\n __decorate([\n InstanceProperty\n ], Contact.prototype, \"name\", null);\n __decorate([\n InstanceProperty\n ], Contact.prototype, \"nickname\", null);\n __decorate([\n InstanceProperty\n ], Contact.prototype, \"phoneNumbers\", null);\n __decorate([\n InstanceProperty\n ], Contact.prototype, \"emails\", null);\n __decorate([\n InstanceProperty\n ], Contact.prototype, \"addresses\", null);\n __decorate([\n InstanceProperty\n ], Contact.prototype, \"ims\", null);\n __decorate([\n InstanceProperty\n ], Contact.prototype, \"organizations\", null);\n __decorate([\n InstanceProperty\n ], Contact.prototype, \"birthday\", null);\n __decorate([\n InstanceProperty\n ], Contact.prototype, \"note\", null);\n __decorate([\n InstanceProperty\n ], Contact.prototype, \"photos\", null);\n __decorate([\n InstanceProperty\n ], Contact.prototype, \"categories\", null);\n __decorate([\n InstanceProperty\n ], Contact.prototype, \"urls\", null);\n __decorate([\n CordovaInstance()\n ], Contact.prototype, \"remove\", null);\n __decorate([\n CordovaInstance()\n ], Contact.prototype, \"save\", null);\n return Contact;\n}());\n/**\n * @private\n */\nexport var ContactName = (function () {\n function ContactName(formatted, familyName, givenName, middleName, honorificPrefix, honorificSuffix) {\n this._objectInstance = new window.ContactName(formatted, familyName, givenName, middleName, honorificPrefix, honorificSuffix);\n }\n Object.defineProperty(ContactName.prototype, \"formatted\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContactName.prototype, \"familyName\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContactName.prototype, \"givenName\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContactName.prototype, \"middleName\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContactName.prototype, \"honorificPrefix\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContactName.prototype, \"honorificSuffix\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n __decorate([\n InstanceProperty\n ], ContactName.prototype, \"formatted\", null);\n __decorate([\n InstanceProperty\n ], ContactName.prototype, \"familyName\", null);\n __decorate([\n InstanceProperty\n ], ContactName.prototype, \"givenName\", null);\n __decorate([\n InstanceProperty\n ], ContactName.prototype, \"middleName\", null);\n __decorate([\n InstanceProperty\n ], ContactName.prototype, \"honorificPrefix\", null);\n __decorate([\n InstanceProperty\n ], ContactName.prototype, \"honorificSuffix\", null);\n return ContactName;\n}());\n/**\n * @private\n */\nexport var ContactField = (function () {\n function ContactField(type, value, pref) {\n this._objectInstance = new window.ContactField(type, value, pref);\n }\n Object.defineProperty(ContactField.prototype, \"type\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContactField.prototype, \"value\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContactField.prototype, \"pref\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n __decorate([\n InstanceProperty\n ], ContactField.prototype, \"type\", null);\n __decorate([\n InstanceProperty\n ], ContactField.prototype, \"value\", null);\n __decorate([\n InstanceProperty\n ], ContactField.prototype, \"pref\", null);\n return ContactField;\n}());\n/**\n * @private\n */\nexport var ContactAddress = (function () {\n function ContactAddress(pref, type, formatted, streetAddress, locality, region, postalCode, country) {\n this._objectInstance = new window.ContactAddress(pref, type, formatted, streetAddress, locality, region, postalCode, country);\n }\n Object.defineProperty(ContactAddress.prototype, \"pref\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContactAddress.prototype, \"type\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContactAddress.prototype, \"formatted\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContactAddress.prototype, \"streetAddress\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContactAddress.prototype, \"locality\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContactAddress.prototype, \"region\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContactAddress.prototype, \"postalCode\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContactAddress.prototype, \"country\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n __decorate([\n InstanceProperty\n ], ContactAddress.prototype, \"pref\", null);\n __decorate([\n InstanceProperty\n ], ContactAddress.prototype, \"type\", null);\n __decorate([\n InstanceProperty\n ], ContactAddress.prototype, \"formatted\", null);\n __decorate([\n InstanceProperty\n ], ContactAddress.prototype, \"streetAddress\", null);\n __decorate([\n InstanceProperty\n ], ContactAddress.prototype, \"locality\", null);\n __decorate([\n InstanceProperty\n ], ContactAddress.prototype, \"region\", null);\n __decorate([\n InstanceProperty\n ], ContactAddress.prototype, \"postalCode\", null);\n __decorate([\n InstanceProperty\n ], ContactAddress.prototype, \"country\", null);\n return ContactAddress;\n}());\n/**\n * @private\n */\nexport var ContactOrganization = (function () {\n function ContactOrganization() {\n this._objectInstance = new window.ContactOrganization();\n }\n Object.defineProperty(ContactOrganization.prototype, \"pref\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContactOrganization.prototype, \"type\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContactOrganization.prototype, \"name\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContactOrganization.prototype, \"department\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContactOrganization.prototype, \"title\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n __decorate([\n InstanceProperty\n ], ContactOrganization.prototype, \"pref\", null);\n __decorate([\n InstanceProperty\n ], ContactOrganization.prototype, \"type\", null);\n __decorate([\n InstanceProperty\n ], ContactOrganization.prototype, \"name\", null);\n __decorate([\n InstanceProperty\n ], ContactOrganization.prototype, \"department\", null);\n __decorate([\n InstanceProperty\n ], ContactOrganization.prototype, \"title\", null);\n return ContactOrganization;\n}());\n/**\n * @private\n */\nexport var ContactFindOptions = (function () {\n function ContactFindOptions() {\n this._objectInstance = new window.ContactFindOptions();\n }\n Object.defineProperty(ContactFindOptions.prototype, \"filter\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContactFindOptions.prototype, \"multiple\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContactFindOptions.prototype, \"desiredFields\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ContactFindOptions.prototype, \"hasPhoneNumber\", {\n get: function () { return; },\n enumerable: true,\n configurable: true\n });\n __decorate([\n InstanceProperty\n ], ContactFindOptions.prototype, \"filter\", null);\n __decorate([\n InstanceProperty\n ], ContactFindOptions.prototype, \"multiple\", null);\n __decorate([\n InstanceProperty\n ], ContactFindOptions.prototype, \"desiredFields\", null);\n __decorate([\n InstanceProperty\n ], ContactFindOptions.prototype, \"hasPhoneNumber\", null);\n return ContactFindOptions;\n}());\n/**\n * @name Contacts\n * @description\n * Access and manage Contacts on the device.\n *\n * @usage\n *\n * ```typescript\n * import { Contact } from 'ionic-native';\n *\n *\n * let contact = new Contact();\n * contact.displayName = 'Mr. Ionitron';\n * contact.save().then(\n * () => console.log('Contact saved!', contact),\n * (error: any) => console.error('Error saving contact.', error)\n * );\n * ```\n *\n *\n */\nexport var Contacts = (function () {\n function Contacts() {\n }\n /**\n * Create a single contact.\n * @return Returns a object Contact\n */\n Contacts.create = function () {\n return new Contact();\n };\n /**\n * Search for contacts in the Contacts list.\n * @param fields {string[]} Contact fields to be used as a search qualifier.\n * A zero-length contactFields parameter is invalid and results in ContactError.INVALID_ARGUMENT_ERROR.\n * A contactFields value of \"*\" searches all contact fields.\n *\n * @param options {Object} the options to query with:\n * filter: The search string used to find navigator.contacts. (string) (Default: \"\")\n * multiple: Determines if the find operation returns multiple navigator.contacts. (Boolean) (Default: false)\n * desiredFields: Contact fields to be returned back. If specified, the resulting Contact object only features values for these fields. (DOMString[]) [Optional]\n * hasPhoneNumber(Android only): Filters the search to only return contacts with a phone number informed. (Boolean) (Default: false)\n *\n * @return Returns a Promise that resolves with the search results (an array of Contact objects)\n */\n Contacts.find = function (fields, options) { return; };\n /**\n * Select a single Contact.\n * @return Returns a Promise that resolves with the selected Contact\n */\n Contacts.pickContact = function () { return; };\n __decorate([\n Cordova({\n successIndex: 1,\n errorIndex: 2\n })\n ], Contacts, \"find\", null);\n __decorate([\n Cordova()\n ], Contacts, \"pickContact\", null);\n Contacts = __decorate([\n Plugin({\n plugin: 'cordova-plugin-contacts',\n pluginRef: 'navigator.contacts',\n repo: 'https://github.com/apache/cordova-plugin-contacts'\n })\n ], Contacts);\n return Contacts;\n}());\n//# sourceMappingURL=contacts.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Crop\n * @description Crops images\n * @usage\n * ```\n * import {Crop} from 'ionic-native';\n *\n * ...\n *\n * Crop.crop('path/to/image.jpg', {quality: 75})\n * .then(\n * newImage => console.log(\"new image path is: \" + newImage),\n * error => console.error(\"Error cropping image\", error)\n * );\n * ```\n */\nexport var Crop = (function () {\n function Crop() {\n }\n /**\n * Crops an image\n * @param pathToImage\n * @param options\n * @return {Promise<string>} Returns a promise that resolves with the new image path, or rejects if failed to crop.\n */\n Crop.crop = function (pathToImage, options) { return; };\n __decorate([\n Cordova({\n callbackOrder: 'reverse'\n })\n ], Crop, \"crop\", null);\n Crop = __decorate([\n Plugin({\n plugin: 'cordova-plugin-crop',\n pluginRef: 'plugins',\n repo: 'https://github.com/jeduan/cordova-plugin-crop'\n })\n ], Crop);\n return Crop;\n}());\n//# sourceMappingURL=crop.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Date Picker\n * @description\n * The DatePicker plugin allows the user to fetch date or time using native dialogs.\n *\n * Platforms supported: iOS, Android, Windows\n *\n * Requires Cordova plugin: `cordova-plugin-datepicker`. For more info, please see the [DatePicker plugin docs](https://github.com/VitaliiBlagodir/cordova-plugin-datepicker).\n *\n * @usage\n * ```typescript\n * import { DatePicker } from 'ionic-native';\n *\n *\n * DatePicker.show({\n * date: new Date(),\n * mode: 'date'\n * }).then(\n * date => console.log('Got date: ', date),\n * err => console.log('Error occurred while getting date: ', err)\n * );\n * ```\n *\n */\nexport var DatePicker = (function () {\n function DatePicker() {\n }\n /**\n * Shows the date and/or time picker dialog(s)\n * @param {DatePickerOptions} options Options for the date picker.\n * @returns {Promise<Date>} Returns a promise that resolves with the picked date and/or time, or rejects with an error.\n */\n DatePicker.show = function (options) { return; };\n __decorate([\n Cordova()\n ], DatePicker, \"show\", null);\n DatePicker = __decorate([\n Plugin({\n plugin: 'cordova-plugin-datepicker',\n pluginRef: 'datePicker',\n repo: 'https://github.com/VitaliiBlagodir/cordova-plugin-datepicker'\n })\n ], DatePicker);\n return DatePicker;\n}());\n//# sourceMappingURL=datepicker.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name DB Meter\n * @description This plugin defines a global DBMeter object, which permits to get the decibel values from the microphone.\n * @usage\n * ```typescript\n * import { DBMeter } from 'ionic-native';\n *\n *\n * // Start listening\n * let subscription = DBMeter.start().subscribe(\n * data => console.log(data)\n * );\n *\n * // Check if we are listening\n * DBMeter.isListening().then(\n * (isListening: boolean) => console.log(isListening)\n * );\n *\n * // Stop listening\n * subscription.unsubscribe();\n *\n * // Delete DBMeter instance from memory\n * DBMeter.delete().then(\n * () => console.log('Deleted DB Meter instance'),\n * error => console.log('Error occurred while deleting DB Meter instance')\n * );\n * ```\n */\nexport var DBMeter = (function () {\n function DBMeter() {\n }\n /**\n * Starts listening\n * @return {Observable<string>} Returns an observable. Subscribe to start listening. Unsubscribe to stop listening.\n */\n DBMeter.start = function () { return; };\n /**\n * Stops listening\n * @private\n */\n DBMeter.stop = function () { return; };\n /**\n * Check if the DB Meter is listening\n * @return {Promise<boolean>} Returns a promise that resolves with a boolean that tells us whether the DB meter is listening\n */\n DBMeter.isListening = function () { return; };\n /**\n * Delete the DB Meter instance\n * @return {Promise<any>} Returns a promise that will resolve if the instance has been deleted, and rejects if errors occur.\n */\n DBMeter.delete = function () { return; };\n __decorate([\n Cordova({\n observable: true,\n clearFunction: 'stop'\n })\n ], DBMeter, \"start\", null);\n __decorate([\n Cordova()\n ], DBMeter, \"stop\", null);\n __decorate([\n Cordova()\n ], DBMeter, \"isListening\", null);\n __decorate([\n Cordova()\n ], DBMeter, \"delete\", null);\n DBMeter = __decorate([\n Plugin({\n plugin: 'cordova-plugin-dbmeter',\n pluginRef: 'DBMeter',\n repo: 'https://github.com/akofman/cordova-plugin-dbmeter',\n platforms: ['iOS', 'Android']\n })\n ], DBMeter);\n return DBMeter;\n}());\n//# sourceMappingURL=dbmeter.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Ionic Deeplinks\n * @description This plugin handles deeplinks on iOS and Android for both custom URL scheme links\n * and Universal App Links.\n *\n * @usage\n * ```typescript\n * import { IonicDeeplinks } from 'ionic-native';\n *\n * ```\n */\nexport var Deeplinks = (function () {\n function Deeplinks() {\n }\n /**\n * Define a set of paths to match against incoming deeplinks.\n *\n * @param {paths} Define a set of paths to match against incoming deeplinks.\n * paths takes an object of the form { 'path': data }. If a deeplink\n * matches the path, the resulting path-data pair will be returned in the\n * promise result which you can then use to navigate in the app as you see fit.\n * @returns {Promise} Returns a Promise that resolves when a deeplink comes through, and\n * is rejected if a deeplink comes through that does not match a given path.\n */\n Deeplinks.route = function (paths) { return; };\n /**\n *\n * This is a convenience version of `route` that takes a reference to a NavController\n * from Ionic 2, or a custom class that conforms to this protocol:\n *\n * NavController.push = function(View, Params){}\n *\n * This handler will automatically navigate when a route matches. If you need finer-grained\n * control over the behavior of a matching deeplink, use the plain `route` method.\n *\n * @param {paths} Define a set of paths to match against incoming deeplinks.\n * paths takes an object of the form { 'path': data }. If a deeplink\n * matches the path, the resulting path-data pair will be returned in the\n * promise result which you can then use to navigate in the app as you see fit.\n *\n * @returns {Promise} Returns a Promise that resolves when a deeplink comes through, and\n * is rejected if a deeplink comes through that does not match a given path.\n */\n Deeplinks.routeWithNavController = function (navController, paths) { return; };\n __decorate([\n Cordova({\n observable: true\n })\n ], Deeplinks, \"route\", null);\n __decorate([\n Cordova({\n observable: true\n })\n ], Deeplinks, \"routeWithNavController\", null);\n Deeplinks = __decorate([\n Plugin({\n plugin: 'ionic-plugin-deeplinks',\n pluginRef: 'IonicDeeplink',\n repo: 'https://github.com/driftyco/ionic-plugin-deeplinks',\n platforms: ['iOS', 'Android'],\n install: 'ionic plugin add ionic-plugin-deeplinks --variable URL_SCHEME=myapp --variable DEEPLINK_SCHEME=https --variable DEEPLINK_HOST=example.com --variable ANDROID_PATH_PREFIX=/'\n })\n ], Deeplinks);\n return Deeplinks;\n}());\n//# sourceMappingURL=deeplinks.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CordovaProperty, Plugin } from './plugin';\n/**\n * @name Device\n * @description\n * Access information about the underlying device and platform.\n *\n * @usage\n * ```typescript\n * import { Device } from 'ionic-native';\n *\n *\n * console.log('Device UUID is: ' + Device.device.uuid);\n * ```\n */\nexport var Device = (function () {\n function Device() {\n }\n Object.defineProperty(Device, \"device\", {\n /**\n * Returns the whole device object.\n *\n * @returns {Object} The device object.\n */\n get: function () { return window.device; },\n enumerable: true,\n configurable: true\n });\n __decorate([\n CordovaProperty\n ], Device, \"device\", null);\n Device = __decorate([\n Plugin({\n plugin: 'cordova-plugin-device',\n pluginRef: 'device',\n repo: 'https://github.com/apache/cordova-plugin-device'\n })\n ], Device);\n return Device;\n}());\n//# sourceMappingURL=device.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\nexport var DeviceAccounts = (function () {\n function DeviceAccounts() {\n }\n /**\n * Gets all accounts registered on the Android Device\n */\n DeviceAccounts.get = function () { return; };\n /**\n * Get all accounts registered on Android device for requested type\n */\n DeviceAccounts.getByType = function (type) { return; };\n /**\n * Get all emails registered on Android device (accounts with 'com.google' type)\n */\n DeviceAccounts.getEmails = function () { return; };\n /**\n * Get the first email registered on Android device\n */\n DeviceAccounts.getEmail = function () { return; };\n __decorate([\n Cordova()\n ], DeviceAccounts, \"get\", null);\n __decorate([\n Cordova()\n ], DeviceAccounts, \"getByType\", null);\n __decorate([\n Cordova()\n ], DeviceAccounts, \"getEmails\", null);\n __decorate([\n Cordova()\n ], DeviceAccounts, \"getEmail\", null);\n DeviceAccounts = __decorate([\n Plugin({\n plugin: 'https://github.com/loicknuchel/cordova-device-accounts.git',\n pluginRef: 'plugins.DeviceAccounts',\n repo: 'https://github.com/loicknuchel/cordova-device-accounts',\n platforms: ['Android']\n })\n ], DeviceAccounts);\n return DeviceAccounts;\n}());\n//# sourceMappingURL=deviceaccounts.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Device Motion\n * @description\n * Requires Cordova plugin: `cordova-plugin-device-motion`. For more info, please see the [Device Motion docs](https://github.com/apache/cordova-plugin-device-motion).\n *\n * @usage\n * ```typescript\n * import { DeviceMotion } from 'ionic-native';\n *\n *\n * // Get the device current acceleration\n * DeviceMotion.getCurrentAcceleration().then(\n * (acceleration: AccelerationData) => console.log(acceleration),\n * (error: any) => console.log(error)\n * );\n *\n * // Watch device acceleration\n * var subscription = DeviceMotion.watchAcceleration().subscribe((acceleration: AccelerationData) => {\n * console.log(acceleration);\n * });\n *\n * // Stop watch\n * subscription.unsubscribe();\n *\n * ```\n */\nexport var DeviceMotion = (function () {\n function DeviceMotion() {\n }\n /**\n * Get the current acceleration along the x, y, and z axes.\n * @returns {Promise<any>} Returns object with x, y, z, and timestamp properties\n */\n DeviceMotion.getCurrentAcceleration = function () { return; };\n /**\n * Watch the device acceleration. Clear the watch by unsubscribing from the observable.\n * @param {AccelerometerOptions} options list of options for the accelerometer.\n * @returns {Observable<AccelerationData>} Observable returns an observable that you can subscribe to\n */\n DeviceMotion.watchAcceleration = function (options) { return; };\n __decorate([\n Cordova()\n ], DeviceMotion, \"getCurrentAcceleration\", null);\n __decorate([\n Cordova({\n callbackOrder: 'reverse',\n observable: true,\n clearFunction: 'clearWatch'\n })\n ], DeviceMotion, \"watchAcceleration\", null);\n DeviceMotion = __decorate([\n Plugin({\n plugin: 'cordova-plugin-device-motion',\n pluginRef: 'navigator.accelerometer',\n repo: 'https://github.com/apache/cordova-plugin-device-motion'\n })\n ], DeviceMotion);\n return DeviceMotion;\n}());\n//# sourceMappingURL=devicemotion.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Device Orientation\n * @description\n * Requires Cordova plugin: `cordova-plugin-device-orientation`. For more info, please see the [Device Orientation docs](https://github.com/apache/cordova-plugin-device-orientation).\n *\n * @usage\n * ```typescript\n * // CompassHeading is an interface for compass\n * import { DeviceOrientation, CompassHeading } from 'ionic-native';\n *\n *\n * // Get the device current compass heading\n * DeviceOrientation.getCurrentHeading().then(\n * (data: CompassHeading) => console.log(data),\n * (error: any) => console.log(error)\n * );\n *\n * // Watch the device compass heading change\n * var subscription = DeviceOrientation.watchHeading().subscribe(\n * (data: CompassHeading) => console.log(data)\n * );\n *\n * // Stop watching heading change\n * subscription.unsubscribe();\n * ```\n */\nexport var DeviceOrientation = (function () {\n function DeviceOrientation() {\n }\n /**\n * Get the current compass heading.\n * @returns {Promise<CompassHeading>}\n */\n DeviceOrientation.getCurrentHeading = function () { return; };\n /**\n * Get the device current heading at a regular interval\n *\n * Stop the watch by unsubscribing from the observable\n * @param {CompassOptions} options Options for compass. Frequency and Filter. Optional\n * @returns {Observable<CompassHeading>} Returns an observable that contains the compass heading\n */\n DeviceOrientation.watchHeading = function (options) { return; };\n __decorate([\n Cordova()\n ], DeviceOrientation, \"getCurrentHeading\", null);\n __decorate([\n Cordova({\n callbackOrder: 'reverse',\n observable: true,\n clearFunction: 'clearWatch'\n })\n ], DeviceOrientation, \"watchHeading\", null);\n DeviceOrientation = __decorate([\n Plugin({\n plugin: 'cordova-plugin-device-orientation',\n pluginRef: 'navigator.compass',\n repo: 'https://github.com/apache/cordova-plugin-device-orientation'\n })\n ], DeviceOrientation);\n return DeviceOrientation;\n}());\n//# sourceMappingURL=deviceorientation.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Diagnostic\n * @description\n * Checks whether device hardware features are enabled or available to the app, e.g. camera, GPS, wifi\n *\n * @usage\n * ```typescript\n * import { Diagnostic } from 'ionic-native';\n *\n * let successCallback = (isAvailable) => { console.log('Is available? ' + isAvailable); };\n * let errorCallback = (e) => console.error(e);\n *\n * Diagnostic.isCameraAvailable().then(successCallback).catch(errorCallback);\n *\n * Diagnostic.isBluetoothAvailable().then(successCallback, errorCallback);\n *\n *\n * Diagnostic.getBluetoothState()\n * .then((state) => {\n * if (state == Diagnostic.bluetoothStates.POWERED_ON){\n * // do something\n * } else {\n * // do something else\n * }\n * }).catch(e => console.error(e));\n *\n * ```\n */\nexport var Diagnostic = (function () {\n function Diagnostic() {\n }\n /**\n * Checks if app is able to access device location.\n * @returns {Promise<any>}\n */\n Diagnostic.isLocationAvailable = function () { return; };\n /**\n * Checks if Wifi is connected/enabled. On iOS this returns true if the device is connected to a network by WiFi. On Android and Windows 10 Mobile this returns true if the WiFi setting is set to enabled.\n * On Android this requires permission. `<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\" />`\n * @returns {Promise<any>}\n */\n Diagnostic.isWifiAvailable = function () { return; };\n /**\n * Checks if the device has a camera. On Android this returns true if the device has a camera. On iOS this returns true if both the device has a camera AND the application is authorized to use it. On Windows 10 Mobile this returns true if both the device has a rear-facing camera AND the\n * application is authorized to use it.\n * @returns {Promise<any>}\n */\n Diagnostic.isCameraAvailable = function () { return; };\n /**\n * Checks if the device has Bluetooth capabilities and if so that Bluetooth is switched on (same on Android, iOS and Windows 10 Mobile)\n * On Android this requires permission <uses-permission android:name=\"android.permission.BLUETOOTH\" />\n * @returns {Promise<any>}\n */\n Diagnostic.isBluetoothAvailable = function () { return; };\n /**\n * Displays the device location settings to allow user to enable location services/change location mode.\n */\n Diagnostic.switchToLocationSettings = function () { };\n /**\n * Displays mobile settings to allow user to enable mobile data.\n */\n Diagnostic.switchToMobileDataSettings = function () { };\n /**\n * Displays Bluetooth settings to allow user to enable Bluetooth.\n */\n Diagnostic.switchToBluetoothSettings = function () { };\n /**\n * Displays WiFi settings to allow user to enable WiFi.\n */\n Diagnostic.switchToWifiSettings = function () { };\n /**\n * Returns true if the WiFi setting is set to enabled, and is the same as `isWifiAvailable()`\n * @returns {Promise<boolean>}\n */\n Diagnostic.isWifiEnabled = function () { return; };\n /**\n * Enables/disables WiFi on the device.\n * Requires `ACCESS_WIFI_STATE` and `CHANGE_WIFI_STATE` permissions on Android\n * @param state {boolean}\n */\n Diagnostic.setWifiState = function (state) { return; };\n /**\n * Enables/disables Bluetooth on the device.\n * Requires `BLUETOOTH` and `BLUETOOTH_ADMIN` permissions on Android\n * @param state {boolean}\n */\n Diagnostic.setBluetoothState = function (state) { return; };\n /**\n * Returns true if the device setting for location is on. On Android this returns true if Location Mode is switched on. On iOS this returns true if Location Services is switched on.\n * @returns {Promise<boolean>}\n */\n Diagnostic.isLocationEnabled = function () { return; };\n /**\n * Checks if the application is authorized to use location.\n * Note for Android: this is intended for Android 6 / API 23 and above. Calling on Android 5 / API 22 and below will always return GRANTED status as permissions are already granted at installation time.\n * @returns {Promise<any>}\n */\n Diagnostic.isLocationAuthorized = function () { return; };\n /**\n * Returns the location authorization status for the application.\n * @returns {Promise<any>}\n */\n Diagnostic.getLocationAuthorizationStatus = function () { return; };\n /**\n * Returns the location authorization status for the application.\n * Note for Android: this is intended for Android 6 / API 23 and above. Calling on Android 5 / API 22 and below will always return GRANTED status as permissions are already granted at installation time.\n *\n * mode - (iOS-only / optional) location authorization mode: \"always\" or \"when_in_use\". If not specified, defaults to \"when_in_use\".\n * @returns {Promise<any>}\n */\n Diagnostic.requestLocationAuthorization = function (mode) { return; };\n /**\n * Checks if camera hardware is present on device.\n * @returns {Promise<any>}\n */\n Diagnostic.isCameraPresent = function () { return; };\n /**\n * Checks if the application is authorized to use the camera.\n * Note for Android: this is intended for Android 6 / API 23 and above. Calling on Android 5 / API 22 and below will always return TRUE as permissions are already granted at installation time.\n * @returns {Promise<any>}\n */\n Diagnostic.isCameraAuthorized = function () { return; };\n /**\n * Returns the camera authorization status for the application.\n * @returns {Promise<any>}\n */\n Diagnostic.getCameraAuthorizationStatus = function () { return; };\n /**\n * Requests camera authorization for the application.\n * @returns {Promise<any>}\n */\n Diagnostic.requestCameraAuthorization = function () { return; };\n /**\n * Checks if the application is authorized to use the microphone.\n * @returns {Promise<boolean>}\n */\n Diagnostic.isMicrophoneAuthorized = function () { return; };\n /**\n * Returns the microphone authorization status for the application.\n * @returns {Promise<any>}\n */\n Diagnostic.getMicrophoneAuthorizationStatus = function () { return; };\n /**\n * Requests microphone authorization for the application.\n * @returns {Promise<any>}\n */\n Diagnostic.requestMicrophoneAuthorization = function () { return; };\n /**\n * Checks if the application is authorized to use contacts (address book).\n * @returns {Promise<boolean>}\n */\n Diagnostic.isContactsAuthorized = function () { return; };\n /**\n * Returns the contacts authorization status for the application.\n * @returns {Promise<any>}\n */\n Diagnostic.getContactsAuthroizationStatus = function () { return; };\n /**\n * Requests contacts authorization for the application.\n * @returns {Promise<any>}\n */\n Diagnostic.requestContactsAuthorization = function () { return; };\n /**\n * Checks if the application is authorized to use the calendar.\n *\n * Notes for Android:\n * - This is intended for Android 6 / API 23 and above. Calling on Android 5 / API 22 and below will always return TRUE as permissions are already granted at installation time.\n *\n * Notes for iOS:\n * - This relates to Calendar Events (not Calendar Reminders)\n * @returns {Promise<any>}\n */\n Diagnostic.isCalendarAuthorized = function () { return; };\n /**\n * Returns the calendar authorization status for the application.\n *\n * Notes for Android:\n * - This is intended for Android 6 / API 23 and above. Calling on Android 5 / API 22 and below will always return `GRANTED` status as permissions are already granted at installation time.\n *\n * Notes for iOS:\n * - This relates to Calendar Events (not Calendar Reminders)\n *\n * @returns {Promise<any>}\n */\n Diagnostic.getCalendarAuthorizationStatus = function () { return; };\n /**\n * Requests calendar authorization for the application.\n *\n * Notes for iOS:\n * - Should only be called if authorization status is NOT_DETERMINED. Calling it when in any other state will have no effect and just return the current authorization status.\n * - This relates to Calendar Events (not Calendar Reminders)\n *\n * Notes for Android:\n * - This is intended for Android 6 / API 23 and above. Calling on Android 5 / API 22 and below will have no effect as the permissions are already granted at installation time.\n * - This requests permission for `READ_CALENDAR` run-time permission\n * - Required permissions must be added to `AndroidManifest.xml` as appropriate - see Android permissions: `READ_CALENDAR`, `WRITE_CALENDAR`\n *\n * @returns {Promise<any>}\n */\n Diagnostic.requestCalendarAuthorization = function () { return; };\n /**\n * Opens settings page for this app.\n * On Android, this opens the \"App Info\" page in the Settings app.\n * On iOS, this opens the app settings page in the Settings app. This works only on iOS 8+ - iOS 7 and below will invoke the errorCallback.\n * @returns {Promise<any>}\n */\n Diagnostic.switchToSettings = function () { return; };\n /**\n * Returns the state of Bluetooth on the device.\n * @returns {Promise<any>}\n */\n Diagnostic.getBluetoothState = function () { return; };\n /**\n * Registers a function to be called when a change in Bluetooth state occurs.\n * @param handler\n */\n Diagnostic.registerBluetoothStateChangeHandler = function (handler) { };\n /**\n * Registers a function to be called when a change in Location state occurs.\n * @param handler\n */\n Diagnostic.registerLocationStateChangeHandler = function (handler) { };\n /**\n * Checks if high-accuracy locations are available to the app from GPS hardware.\n * Returns true if Location mode is enabled and is set to \"Device only\" or \"High accuracy\" AND if the app is authorised to use location.\n * @returns {Promise<any>}\n */\n Diagnostic.isGpsLocationAvailable = function () { return; };\n /**\n * Checks if location mode is set to return high-accuracy locations from GPS hardware.\n * Returns true if Location mode is enabled and is set to either:\n * - Device only = GPS hardware only (high accuracy)\n * - High accuracy = GPS hardware, network triangulation and Wifi network IDs (high and low accuracy)\n */\n Diagnostic.isGpsLocationEnabled = function () { return; };\n /**\n * Checks if low-accuracy locations are available to the app from network triangulation/WiFi access points.\n * Returns true if Location mode is enabled and is set to \"Battery saving\" or \"High accuracy\" AND if the app is authorised to use location.\n * @returns {Promise<any>}\n */\n Diagnostic.isNetworkLocationAvailable = function () { return; };\n /**\n * Checks if location mode is set to return low-accuracy locations from network triangulation/WiFi access points.\n * Returns true if Location mode is enabled and is set to either:\n * - Battery saving = network triangulation and Wifi network IDs (low accuracy)\n * - High accuracy = GPS hardware, network triangulation and Wifi network IDs (high and low accuracy)\n * @returns {Promise<any>}\n */\n Diagnostic.isNetworkLocationEnabled = function () { return; };\n /**\n * Returns the current location mode setting for the device.\n * @returns {Promise<any>}\n */\n Diagnostic.getLocationMode = function () { return; };\n /**\n * Returns the current authorisation status for a given permission.\n * Note: this is intended for Android 6 / API 23 and above. Calling on Android 5 / API 22 and below will always return GRANTED status as permissions are already granted at installation time.\n * @param permission\n * @returns {Promise<any>}\n */\n Diagnostic.getPermissionAuthorizationStatus = function (permission) { return; };\n /**\n * Returns the current authorisation status for multiple permissions.\n * Note: this is intended for Android 6 / API 23 and above. Calling on Android 5 / API 22 and below will always return GRANTED status as permissions are already granted at installation time.\n * @param permissions\n * @returns {Promise<any>}\n */\n Diagnostic.getPermissionsAuthorizationStatus = function (permissions) { return; };\n /**\n * Requests app to be granted authorisation for a runtime permission.\n * Note: this is intended for Android 6 / API 23 and above. Calling on Android 5 / API 22 and below will have no effect as the permissions are already granted at installation time.\n * @param permission\n * @returns {Promise<any>}\n */\n Diagnostic.requestRuntimePermission = function (permission) { return; };\n /**\n * Requests app to be granted authorisation for multiple runtime permissions.\n * Note: this is intended for Android 6 / API 23 and above. Calling on Android 5 / API 22 and below will always return GRANTED status as permissions are already granted at installation time.\n * @param permissions\n * @returns {Promise<any>}\n */\n Diagnostic.requestRuntimePermissions = function (permissions) { return; };\n /**\n * Checks if the device setting for Bluetooth is switched on.\n * This requires `BLUETOOTH` permission on Android\n * @returns {Promise<boolean>}\n */\n Diagnostic.isBluetoothEnabled = function () { return; };\n /**\n * Checks if the device has Bluetooth capabilities.\n * @returns {Promise<boolean>}\n */\n Diagnostic.hasBluetoothSupport = function () { return; };\n /**\n * Checks if the device has Bluetooth Low Energy (LE) capabilities.\n * @returns {Promise<boolean>}\n */\n Diagnostic.hasBluetoothLESupport = function () { return; };\n /**\n * Checks if the device supports Bluetooth Low Energy (LE) Peripheral mode.\n * @returns {Promise<boolean>}\n */\n Diagnostic.hasBluetoothLEPeripheralSupport = function () { return; };\n /**\n * Checks if the application is authorized to use the Camera Roll in Photos app.\n * @returns {Promise<boolean>}\n */\n Diagnostic.isCameraRollAuthorized = function () { return; };\n /**\n * Returns the authorization status for the application to use the Camera Roll in Photos app.\n * @returns {Promise<boolean>}\n */\n Diagnostic.getCameraRollAuthorizationStatus = function () { return; };\n /**\n * Requests camera roll authorization for the application.\n * Should only be called if authorization status is NOT_REQUESTED.\n * Calling it when in any other state will have no effect.\n * @returns {Promise<any>}\n */\n Diagnostic.requestCameraRollAuthorization = function () { return; };\n /**\n * Checks if remote (push) notifications are enabled.\n * @returns {Promise<boolean>}\n */\n Diagnostic.isRemoteNotificationsEnabled = function () { return; };\n /**\n * Indicates if the app is registered for remote (push) notifications on the device.\n * @returns {Promise<boolean>}\n */\n Diagnostic.isRegisteredForRemoteNotifications = function () { return; };\n /**\n * Indicates the current setting of notification types for the app in the Settings app.\n * Note: on iOS 8+, if \"Allow Notifications\" switch is OFF, all types will be returned as disabled.\n * @returns {Promise<any>}\n */\n Diagnostic.getRemoteNotificationTypes = function () { return; };\n /**\n * Checks if the application is authorized to use reminders.\n * @returns {Promise<boolean>}\n */\n Diagnostic.isRemindersAuthorized = function () { return; };\n /**\n * Returns the reminders authorization status for the application.\n * @returns {Promise<any>}\n */\n Diagnostic.getRemindersAuthorizationStatus = function () { return; };\n /**\n * Requests reminders authorization for the application.\n * @returns {Promise<any>}\n */\n Diagnostic.requestRemindersAuthorization = function () { return; };\n /**\n * Checks if the application is authorized for background refresh.\n * @returns {Promise<boolean>}\n */\n Diagnostic.isBackgroundRefreshAuthorized = function () { return; };\n /**\n * Returns the background refresh authorization status for the application.\n * @returns {Promise<any>}\n */\n Diagnostic.getBackgroundRefreshStatus = function () { return; };\n Diagnostic.permission = {\n READ_CALENDAR: 'READ_CALENDAR',\n WRITE_CALENDAR: 'WRITE_CALENDAR',\n CAMERA: 'CAMERA',\n READ_CONTACTS: 'READ_CONTACTS',\n WRITE_CONTACTS: 'WRITE_CONTACTS',\n GET_ACCOUNTS: 'GET_ACCOUNTS',\n ACCESS_FINE_LOCATION: 'ACCESS_FINE_LOCATION',\n ACCESS_COARSE_LOCATION: 'ACCESS_COARSE_LOCATION',\n RECORD_AUDIO: 'RECORD_AUDIO',\n READ_PHONE_STATE: 'READ_PHONE_STATE',\n CALL_PHONE: 'CALL_PHONE',\n ADD_VOICEMAIL: 'ADD_VOICEMAIL',\n USE_SIP: 'USE_SIP',\n PROCESS_OUTGOING_CALLS: 'PROCESS_OUTGOING_CALLS',\n READ_CALL_LOG: 'READ_CALL_LOG',\n WRITE_CALL_LOG: 'WRITE_CALL_LOG',\n SEND_SMS: 'SEND_SMS',\n RECEIVE_SMS: 'RECEIVE_SMS',\n READ_SMS: 'READ_SMS',\n RECEIVE_WAP_PUSH: 'RECEIVE_WAP_PUSH',\n RECEIVE_MMS: 'RECEIVE_MMS',\n WRITE_EXTERNAL_STORAGE: 'WRITE_EXTERNAL_STORAGE',\n READ_EXTERNAL_STORAGE: 'READ_EXTERNAL_STORAGE',\n BODY_SENSORS: 'BODY_SENSORS'\n };\n Diagnostic.permissionStatus = {\n GRANTED: 'GRANTED',\n GRANTED_WHEN_IN_USE: 'GRANTED_WHEN_IN_USE',\n RESTRICTED: 'RESTRICTED',\n DENIED: 'DENIED',\n DENIED_ALWAYS: 'DENIED_ALWAYS',\n NOT_REQUESTED: 'NOT_REQUESTED'\n };\n Diagnostic.locationAuthorizationMode = {\n ALWAYS: 'ALWAYS',\n WHEN_IN_USE: 'WHEN_IN_USE'\n };\n Diagnostic.permissionGroups = {\n CALENDAR: ['READ_CALENDAR', 'WRITE_CALENDAR'],\n CAMERA: ['CAMERA'],\n CONTACTS: ['READ_CONTACTS', 'WRITE_CONTACTS', 'GET_ACCOUNTS'],\n LOCATION: ['ACCESS_FINE_LOCATION', 'ACCESS_COARSE_LOCATION'],\n MICROPHONE: ['RECORD_AUDIO'],\n PHONE: ['READ_PHONE_STATE', 'CALL_PHONE', 'ADD_VOICEMAIL', 'USE_SIP', 'PROCESS_OUTGOING_CALLS', 'READ_CALL_LOG', 'WRITE_CALL_LOG'],\n SENSORS: ['BODY_SENSORS'],\n SMS: ['SEND_SMS', 'RECEIVE_SMS', 'READ_SMS', 'RECEIVE_WAP_PUSH', 'RECEIVE_MMS'],\n STORAGE: ['READ_EXTERNAL_STORAGE', 'WRITE_EXTERNAL_STORAGE']\n };\n Diagnostic.locationMode = {\n HIGH_ACCURACY: 'high_accuracy',\n DEVICE_ONLY: 'device_only',\n BATTERY_SAVING: 'battery_saving',\n LOCATION_OFF: 'location_off'\n };\n Diagnostic.bluetoothState = {\n UNKNOWN: 'unknown',\n RESETTING: 'resetting',\n UNSUPPORTED: 'unsupported',\n UNAUTHORIZED: 'unauthorized',\n POWERED_OFF: 'powered_off',\n POWERED_ON: 'powered_on',\n POWERING_OFF: 'powering_off',\n POWERING_ON: 'powering_on'\n };\n __decorate([\n Cordova()\n ], Diagnostic, \"isLocationAvailable\", null);\n __decorate([\n Cordova()\n ], Diagnostic, \"isWifiAvailable\", null);\n __decorate([\n Cordova()\n ], Diagnostic, \"isCameraAvailable\", null);\n __decorate([\n Cordova()\n ], Diagnostic, \"isBluetoothAvailable\", null);\n __decorate([\n Cordova({ sync: true, platforms: ['Android', 'Windows 10'] })\n ], Diagnostic, \"switchToLocationSettings\", null);\n __decorate([\n Cordova({ sync: true, platforms: ['Android', 'Windows 10'] })\n ], Diagnostic, \"switchToMobileDataSettings\", null);\n __decorate([\n Cordova({ sync: true, platforms: ['Android', 'Windows 10'] })\n ], Diagnostic, \"switchToBluetoothSettings\", null);\n __decorate([\n Cordova({ sync: true, platforms: ['Android', 'Windows 10'] })\n ], Diagnostic, \"switchToWifiSettings\", null);\n __decorate([\n Cordova({ platforms: ['Android', 'Windows 10'] })\n ], Diagnostic, \"isWifiEnabled\", null);\n __decorate([\n Cordova({ callbackOrder: 'reverse', platforms: ['Android', 'Windows 10'] })\n ], Diagnostic, \"setWifiState\", null);\n __decorate([\n Cordova({ callbackOrder: 'reverse', platforms: ['Android', 'Windows 10'] })\n ], Diagnostic, \"setBluetoothState\", null);\n __decorate([\n Cordova({ platforms: ['Android', 'iOS'] })\n ], Diagnostic, \"isLocationEnabled\", null);\n __decorate([\n Cordova()\n ], Diagnostic, \"isLocationAuthorized\", null);\n __decorate([\n Cordova({ platforms: ['Android', 'iOS'] })\n ], Diagnostic, \"getLocationAuthorizationStatus\", null);\n __decorate([\n Cordova({ platforms: ['Android', 'iOS'] })\n ], Diagnostic, \"requestLocationAuthorization\", null);\n __decorate([\n Cordova({ platforms: ['Android', 'iOS'] })\n ], Diagnostic, \"isCameraPresent\", null);\n __decorate([\n Cordova({ platforms: ['Android', 'iOS'] })\n ], Diagnostic, \"isCameraAuthorized\", null);\n __decorate([\n Cordova({ platforms: ['Android', 'iOS'] })\n ], Diagnostic, \"getCameraAuthorizationStatus\", null);\n __decorate([\n Cordova({ platforms: ['Android', 'iOS'] })\n ], Diagnostic, \"requestCameraAuthorization\", null);\n __decorate([\n Cordova({ platforms: ['Android', 'iOS'] })\n ], Diagnostic, \"isMicrophoneAuthorized\", null);\n __decorate([\n Cordova({ platforms: ['Android', 'iOS'] })\n ], Diagnostic, \"getMicrophoneAuthorizationStatus\", null);\n __decorate([\n Cordova({ platforms: ['Android', 'iOS'] })\n ], Diagnostic, \"requestMicrophoneAuthorization\", null);\n __decorate([\n Cordova({ platforms: ['Android', 'iOS'] })\n ], Diagnostic, \"isContactsAuthorized\", null);\n __decorate([\n Cordova({ platforms: ['Android', 'iOS'] })\n ], Diagnostic, \"getContactsAuthroizationStatus\", null);\n __decorate([\n Cordova({ platforms: ['Android', 'iOS'] })\n ], Diagnostic, \"requestContactsAuthorization\", null);\n __decorate([\n Cordova({ platforms: ['Android', 'iOS'] })\n ], Diagnostic, \"isCalendarAuthorized\", null);\n __decorate([\n Cordova({ platforms: ['Android', 'iOS'] })\n ], Diagnostic, \"getCalendarAuthorizationStatus\", null);\n __decorate([\n Cordova({ platforms: ['Android', 'iOS'] })\n ], Diagnostic, \"requestCalendarAuthorization\", null);\n __decorate([\n Cordova({ platforms: ['Android', 'iOS'] })\n ], Diagnostic, \"switchToSettings\", null);\n __decorate([\n Cordova({ platforms: ['Android', 'iOS'] })\n ], Diagnostic, \"getBluetoothState\", null);\n __decorate([\n Cordova({ platforms: ['Android', 'iOS'], sync: true })\n ], Diagnostic, \"registerBluetoothStateChangeHandler\", null);\n __decorate([\n Cordova({ platforms: ['Android', 'iOS'], sync: true })\n ], Diagnostic, \"registerLocationStateChangeHandler\", null);\n __decorate([\n Cordova({ platforms: ['Android'] })\n ], Diagnostic, \"isGpsLocationAvailable\", null);\n __decorate([\n Cordova({ platforms: ['Android'] })\n ], Diagnostic, \"isGpsLocationEnabled\", null);\n __decorate([\n Cordova({ platforms: ['Android'] })\n ], Diagnostic, \"isNetworkLocationAvailable\", null);\n __decorate([\n Cordova({ platforms: ['Android'] })\n ], Diagnostic, \"isNetworkLocationEnabled\", null);\n __decorate([\n Cordova({ platforms: ['Android'] })\n ], Diagnostic, \"getLocationMode\", null);\n __decorate([\n Cordova({ platforms: ['Android'], callbackOrder: 'reverse' })\n ], Diagnostic, \"getPermissionAuthorizationStatus\", null);\n __decorate([\n Cordova({ platforms: ['Android'], callbackOrder: 'reverse' })\n ], Diagnostic, \"getPermissionsAuthorizationStatus\", null);\n __decorate([\n Cordova({ platforms: ['Android'], callbackOrder: 'reverse' })\n ], Diagnostic, \"requestRuntimePermission\", null);\n __decorate([\n Cordova({ platforms: ['Android'], callbackOrder: 'reverse' })\n ], Diagnostic, \"requestRuntimePermissions\", null);\n __decorate([\n Cordova({ platforms: ['Android'] })\n ], Diagnostic, \"isBluetoothEnabled\", null);\n __decorate([\n Cordova({ platforms: ['Android'] })\n ], Diagnostic, \"hasBluetoothSupport\", null);\n __decorate([\n Cordova({ platforms: ['Android'] })\n ], Diagnostic, \"hasBluetoothLESupport\", null);\n __decorate([\n Cordova({ platforms: ['Android'] })\n ], Diagnostic, \"hasBluetoothLEPeripheralSupport\", null);\n __decorate([\n Cordova({ platforms: ['iOS'] })\n ], Diagnostic, \"isCameraRollAuthorized\", null);\n __decorate([\n Cordova({ platforms: ['iOS'] })\n ], Diagnostic, \"getCameraRollAuthorizationStatus\", null);\n __decorate([\n Cordova({ platforms: ['iOS'] })\n ], Diagnostic, \"requestCameraRollAuthorization\", null);\n __decorate([\n Cordova({ platforms: ['iOS'] })\n ], Diagnostic, \"isRemoteNotificationsEnabled\", null);\n __decorate([\n Cordova({ platforms: ['iOS'] })\n ], Diagnostic, \"isRegisteredForRemoteNotifications\", null);\n __decorate([\n Cordova({ platforms: ['iOS'] })\n ], Diagnostic, \"getRemoteNotificationTypes\", null);\n __decorate([\n Cordova({ platforms: ['iOS'] })\n ], Diagnostic, \"isRemindersAuthorized\", null);\n __decorate([\n Cordova({ platforms: ['iOS'] })\n ], Diagnostic, \"getRemindersAuthorizationStatus\", null);\n __decorate([\n Cordova({ platforms: ['iOS'] })\n ], Diagnostic, \"requestRemindersAuthorization\", null);\n __decorate([\n Cordova({ platforms: ['iOS'] })\n ], Diagnostic, \"isBackgroundRefreshAuthorized\", null);\n __decorate([\n Cordova({ platforms: ['iOS'] })\n ], Diagnostic, \"getBackgroundRefreshStatus\", null);\n Diagnostic = __decorate([\n Plugin({\n plugin: 'cordova.plugins.diagnostic',\n pluginRef: 'cordova.plugins.diagnostic',\n repo: 'https://github.com/dpa99c/cordova-diagnostic-plugin'\n })\n ], Diagnostic);\n return Diagnostic;\n}());\n//# sourceMappingURL=diagnostic.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Dialogs\n * @description\n * This plugin gives you ability to access and customize the device native dialogs.\n *\n * Requires Cordova plugin: `cordova-plugin-dialogs`. For more info, please see the [Dialogs plugin docs](https://github.com/apache/cordova-plugin-dialogs).\n *\n * @usage\n * ```typescript\n * import { Dialogs } from 'ionic-native';\n *\n *\n *\n *\n * ```\n */\nexport var Dialogs = (function () {\n function Dialogs() {\n }\n /**\n * Shows a custom alert or dialog box.\n * @param {string} message Dialog message.\n * @param {string} title Dialog title. (Optional, defaults to Alert)\n * @param {string} buttonName Button name. (Optional, defaults to OK)\n * @returns {Promise<any>} Returns a blank promise once the user has dismissed the alert.\n */\n Dialogs.alert = function (message, title, buttonName) {\n if (title === void 0) { title = 'Alert'; }\n if (buttonName === void 0) { buttonName = 'OK'; }\n return;\n };\n /**\n * Displays a customizable confirmation dialog box.\n * @param {string} message Dialog message.\n * @param {string} title Dialog title. (Optional, defaults to Confirm)\n * @param {Array<string>} buttonLabels Array of strings specifying button labels. (Optional, defaults to [OK,Cancel])\n * @returns {Promise<number>} Returns a promise that resolves the button index that was clicked. Note that the index use one-based indexing.\n */\n Dialogs.confirm = function (message, title, buttonLabels) {\n if (title === void 0) { title = 'Confirm'; }\n if (buttonLabels === void 0) { buttonLabels = ['OK', 'Cancel']; }\n return;\n };\n /**\n * Displays a native dialog box that is more customizable than the browser's prompt function.\n * @param {string} message Dialog message.\n * @param {string} title Dialog title. (Optional, defaults to Prompt)\n * @param {Array<string>} buttonLabels Array of strings specifying button labels. (Optional, defaults to [\"OK\",\"Cancel\"])\n * @param {string} defaultText Default textbox input value. (Optional, Default: empty string)\n * @returns {Promise<any>} Returns a promise that resolves an object with the button index clicked and the text entered\n */\n Dialogs.prompt = function (message, title, buttonLabels, defaultText) {\n if (title === void 0) { title = 'Prompt'; }\n if (buttonLabels === void 0) { buttonLabels = ['OK', 'Cancel']; }\n if (defaultText === void 0) { defaultText = ''; }\n return;\n };\n /**\n * The device plays a beep sound.\n * @param {numbers} times The number of times to repeat the beep.\n */\n Dialogs.beep = function (times) { };\n __decorate([\n Cordova({\n successIndex: 1,\n errorIndex: 4\n })\n ], Dialogs, \"alert\", null);\n __decorate([\n Cordova({\n successIndex: 1,\n errorIndex: 4\n })\n ], Dialogs, \"confirm\", null);\n __decorate([\n Cordova({\n successIndex: 1,\n errorIndex: 5\n })\n ], Dialogs, \"prompt\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], Dialogs, \"beep\", null);\n Dialogs = __decorate([\n Plugin({\n plugin: 'cordova-plugin-dialogs',\n pluginRef: 'navigator.notification',\n repo: 'https://github.com/apache/cordova-plugin-dialogs.git'\n })\n ], Dialogs);\n return Dialogs;\n}());\n//# sourceMappingURL=dialogs.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Email Composer\n * @description\n *\n * Requires Cordova plugin: cordova-plugin-email-composer. For more info, please see the [Email Composer plugin docs](https://github.com/katzer/cordova-plugin-email-composer).\n *\n * DISCLAIMER: This plugin is experiencing issues with the latest versions of Cordova. Use at your own risk. Functionality is not guaranteed. Please stay tuned for a more stable version.\n * A good alternative to this plugin is the social sharing plugin.\n *\n * @usage\n * ```typescript\n * import { EmailComposer } from 'ionic-native';\n *\n *\n * EmailComposer.isAvailable().then((available: boolean) =>{\n * if(available) {\n * //Now we know we can send\n * }\n * });\n *\n * let email = {\n * to: 'max@mustermann.de',\n * cc: 'erika@mustermann.de',\n * bcc: ['john@doe.com', 'jane@doe.com'],\n * attachments: [\n * 'file://img/logo.png',\n * 'res://icon.png',\n * 'base64:icon.png//iVBORw0KGgoAAAANSUhEUg...',\n * 'file://README.pdf'\n * ],\n * subject: 'Cordova Icons',\n * body: 'How are you? Nice greetings from Leipzig',\n * isHtml: true\n * };\n *\n * // Send a text message using default options\n * EmailComposer.open(email);\n *\n * ```\n */\nexport var EmailComposer = (function () {\n function EmailComposer() {\n }\n /**\n * Verifies if sending emails is supported on the device.\n *\n * @param app {string?} An optional app id or uri scheme.\n * @returns {Promise<boolean>} Resolves if available, rejects if not available\n */\n EmailComposer.isAvailable = function (app) {\n return new Promise(function (resolve, reject) {\n if (app) {\n cordova.plugins.email.isAvailable(app, function (isAvailable) {\n if (isAvailable) {\n resolve();\n }\n else {\n reject();\n }\n });\n }\n else {\n cordova.plugins.email.isAvailable(function (isAvailable) {\n if (isAvailable) {\n resolve();\n }\n else {\n reject();\n }\n });\n }\n });\n };\n /**\n * Adds a new mail app alias.\n *\n * @param alias {string} The alias name\n * @param packageName {string} The package name\n */\n EmailComposer.addAlias = function (alias, packageName) { };\n /**\n * Displays the email composer pre-filled with data.\n *\n * @param email {Email} Email\n * @param scope {any?} An optional scope for the promise\n * @returns {Promise<any>} Resolves promise when the EmailComposer has been opened\n */\n EmailComposer.open = function (email, scope) { return; };\n __decorate([\n Cordova()\n ], EmailComposer, \"addAlias\", null);\n __decorate([\n Cordova({\n successIndex: 1,\n errorIndex: 3\n })\n ], EmailComposer, \"open\", null);\n EmailComposer = __decorate([\n Plugin({\n plugin: 'cordova-plugin-email-composer',\n pluginRef: 'cordova.plugins.email',\n repo: 'https://github.com/katzer/cordova-plugin-email-composer.git',\n platforms: ['Android', 'iOS', 'Windows Phone 8']\n })\n ], EmailComposer);\n return EmailComposer;\n}());\n//# sourceMappingURL=emailcomposer.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name EstimoteBeacons\n *\n * @description\n * This plugin enables communication between a phone and Estimote Beacons peripherals.\n *\n */\nexport var EstimoteBeacons = (function () {\n function EstimoteBeacons() {\n }\n /**\n * Ask the user for permission to use location services\n * while the app is in the foreground.\n * You need to call this function or requestAlwaysAuthorization\n * on iOS 8+.\n * Does nothing on other platforms.\n *\n * @usage\n * ```\n * EstimoteBeacons.requestWhenInUseAuthorization().then(\n * () => { console.log('on success'); },\n * () => { console.log('on error'); }\n * );\n * ```\n *\n * @see {@link https://community.estimote.com/hc/en-us/articles/203393036-Estimote-SDK-and-iOS-8-Location-Services|Estimote SDK and iOS 8 Location Services}\n * @return Returns a Promise.\n */\n EstimoteBeacons.requestWhenInUseAuthorization = function () { return; };\n /**\n * Ask the user for permission to use location services\n * whenever the app is running.\n * You need to call this function or requestWhenInUseAuthorization\n * on iOS 8+.\n * Does nothing on other platforms.\n *\n * @usage\n * ```\n * EstimoteBeacons.requestAlwaysAuthorization().then(\n * () => { console.log('on success'); },\n * () => { console.log('on error'); }\n * );\n * ```\n *\n * @see {@link https://community.estimote.com/hc/en-us/articles/203393036-Estimote-SDK-and-iOS-8-Location-Services|Estimote SDK and iOS 8 Location Services}\n * @return Returns a Promise.\n */\n EstimoteBeacons.requestAlwaysAuthorization = function () { return; };\n /**\n * Get the current location authorization status.\n * Implemented on iOS 8+.\n * Does nothing on other platforms.\n *\n * @usage\n * ```\n * EstimoteBeacons.authorizationStatus().then(\n * (result) => { console.log('Location authorization status: ' + result); },\n * (errorMessage) => { console.log('Error: ' + errorMessage); }\n * );\n * ```\n *\n * @see {@link https://community.estimote.com/hc/en-us/articles/203393036-Estimote-SDK-and-iOS-8-Location-Services|Estimote SDK and iOS 8 Location Services}\n * @return Returns a Promise.\n */\n EstimoteBeacons.authorizationStatus = function () { return; };\n /**\n * Start advertising as a beacon.\n *\n * @usage\n * ```\n * EstimoteBeacons.startAdvertisingAsBeacon('B9407F30-F5F8-466E-AFF9-25556B57FE6D', 1, 1, 'MyRegion')\n * .then(() => { console.log('Beacon started'); });\n * setTimeout(() => {\n * EstimoteBeacons.stopAdvertisingAsBeacon().then((result) => { console.log('Beacon stopped'); });\n * }, 5000);\n * ```\n * @param uuid {string} UUID string the beacon should advertise (mandatory).\n * @param major {number} Major value to advertise (mandatory).\n * @param minor {number} Minor value to advertise (mandatory).\n * @param regionId {string} Identifier of the region used to advertise (mandatory).\n * @return Returns a Promise.\n */\n EstimoteBeacons.startAdvertisingAsBeacon = function (uuid, major, minor, regionId) { return; };\n /**\n * Stop advertising as a beacon.\n *\n * @usage\n * ```\n * EstimoteBeacons.startAdvertisingAsBeacon('B9407F30-F5F8-466E-AFF9-25556B57FE6D', 1, 1, 'MyRegion')\n * .then(() => { console.log('Beacon started'); });\n * setTimeout(() => {\n * EstimoteBeacons.stopAdvertisingAsBeacon().then((result) => { console.log('Beacon stopped'); });\n * }, 5000);\n * ```\n * @return Returns a Promise.\n */\n EstimoteBeacons.stopAdvertisingAsBeacon = function () { return; };\n /**\n * Enable analytics.\n *\n * @see {@link http://estimote.github.io/iOS-SDK/Classes/ESTConfig.html|Further details}\n *\n * @usage\n * ```\n * EstimoteBeacons.enableAnalytics(true).then(() => { console.log('Analytics enabled'); });\n * ```\n * @param enable {number} Boolean value to turn analytics on or off (mandatory).\n * @return Returns a Promise.\n */\n EstimoteBeacons.enableAnalytics = function (enable) { return; };\n /**\n * Test if analytics is enabled.\n *\n * @see {@link http://estimote.github.io/iOS-SDK/Classes/ESTConfig.html|Further details}\n *\n * @usage\n * ```\n * EstimoteBeacons.isAnalyticsEnabled().then((enabled) => { console.log('Analytics enabled: ' + enabled); });\n * ```\n * @return Returns a Promise.\n */\n EstimoteBeacons.isAnalyticsEnabled = function () { return; };\n /**\n * Test if App ID and App Token is set.\n *\n * @see {@link http://estimote.github.io/iOS-SDK/Classes/ESTConfig.html|Further details}\n *\n * @usage\n * ```\n * EstimoteBeacons.isAuthorized().then((isAuthorized) => { console.log('App ID and App Token is set: ' + isAuthorized); });\n * ```\n * @return Returns a Promise.\n */\n EstimoteBeacons.isAuthorized = function () { return; };\n /**\n * Set App ID and App Token.\n *\n * @see {@link http://estimote.github.io/iOS-SDK/Classes/ESTConfig.html|Further details}\n *\n * @usage\n * ```\n * EstimoteBeacons.setupAppIDAndAppToken('MyAppID', 'MyAppToken').then(() => { console.log('AppID and AppToken configured!'); });\n * ```\n * @param appID {string} The App ID (mandatory).\n * @param appToken {string} The App Token (mandatory).\n * @return Returns a Promise.\n */\n EstimoteBeacons.setupAppIDAndAppToken = function (appID, appToken) { return; };\n /**\n * Start scanning for all nearby beacons using CoreBluetooth (no region object is used).\n * Available on iOS.\n *\n * @usage\n * ```\n * EstimoteBeacons.startEstimoteBeaconDiscovery().subscribe(beacons => {\n * console.log(JSON.stringify(beacons));\n * });\n * setTimeout(() => {\n * EstimoteBeacons.stopEstimoteBeaconDiscovery().then(() => { console.log('scan stopped'); });\n * }, 5000);\n * ```\n * @return Returns an Observable that notifies of each beacon discovered.\n */\n EstimoteBeacons.startEstimoteBeaconDiscovery = function () { return; };\n /**\n * Stop CoreBluetooth scan. Available on iOS.\n *\n * @usage\n * ```\n * EstimoteBeacons.startEstimoteBeaconDiscovery().subscribe(beacons => {\n * console.log(JSON.stringify(beacons));\n * });\n * setTimeout(() => {\n * EstimoteBeacons.stopEstimoteBeaconDiscovery().then(() => { console.log('scan stopped'); });\n * }, 5000);\n * ```\n * @return returns a Promise.\n */\n EstimoteBeacons.stopEstimoteBeaconDiscovery = function () { return; };\n /**\n * Start ranging beacons. Available on iOS and Android.\n *\n * @usage\n * ```\n * let region: BeaconRegion = {} // Empty region matches all beacons.\n * EstimoteBeacons.startRangingBeaconsInRegion(region).subscribe(info => {\n * console.log(JSON.stringify(info));\n * });\n * setTimeout(() => {\n * EstimoteBeacons.stopRangingBeaconsInRegion(region).then(() => { console.log('scan stopped'); });\n * }, 5000);\n * ```\n * @param region {BeaconRegion} Dictionary with region properties (mandatory).\n * @return Returns an Observable that notifies of each beacon discovered.\n */\n EstimoteBeacons.startRangingBeaconsInRegion = function (region) { return; };\n /**\n * Stop ranging beacons. Available on iOS and Android.\n *\n * @usage\n * ```\n * let region: BeaconRegion = {} // Empty region matches all beacons.\n * EstimoteBeacons.startRangingBeaconsInRegion(region).subscribe(info => {\n * console.log(JSON.stringify(info));\n * });\n * setTimeout(() => {\n * EstimoteBeacons.stopRangingBeaconsInRegion(region).then(() => { console.log('scan stopped'); });\n * }, 5000);\n * ```\n * @param region {BeaconRegion} Dictionary with region properties (mandatory).\n * @return returns a Promise.\n */\n EstimoteBeacons.stopRangingBeaconsInRegion = function (region) { return; };\n /**\n * Start ranging secure beacons. Available on iOS.\n * This function has the same parameters/behaviour as\n * {@link EstimoteBeacons.startRangingBeaconsInRegion}.\n * To use secure beacons set the App ID and App Token using\n * {@link EstimoteBeacons.setupAppIDAndAppToken}.\n */\n EstimoteBeacons.startRangingSecureBeaconsInRegion = function (region) { return; };\n /**\n * Stop ranging secure beacons. Available on iOS.\n * This function has the same parameters/behaviour as\n * {@link EstimoteBeacons.stopRangingBeaconsInRegion}.\n */\n EstimoteBeacons.stopRangingSecureBeaconsInRegion = function (region) { return; };\n /**\n * Start monitoring beacons. Available on iOS and Android.\n *\n * @usage\n * ```\n * let region: BeaconRegion = {} // Empty region matches all beacons.\n * EstimoteBeacons.startMonitoringForRegion(region).subscribe(state => {\n * console.log('Region state: ' + JSON.stringify(state));\n * });\n * ```\n * @param region {BeaconRegion} Dictionary with region properties (mandatory).\n * @param [notifyEntryStateOnDisplay=false] {boolean} Set to true to detect if you\n * are inside a region when the user turns display on, see\n * {@link https://developer.apple.com/library/prerelease/ios/documentation/CoreLocation/Reference/CLBeaconRegion_class/index.html#//apple_ref/occ/instp/CLBeaconRegion/notifyEntryStateOnDisplay|iOS documentation}\n * for further details (optional, defaults to false, iOS only).\n * @return Returns an Observable that notifies of each region state discovered.\n */\n EstimoteBeacons.startMonitoringForRegion = function (region, notifyEntryStateOnDisplay) { return; };\n /**\n * Stop monitoring beacons. Available on iOS and Android.\n *\n * @usage\n * ```\n * let region: BeaconRegion = {} // Empty region matches all beacons.\n * EstimoteBeacons.stopMonitoringForRegion(region).then(() => { console.log('monitoring is stopped'); });\n * ```\n * @param region {BeaconRegion} Dictionary with region properties (mandatory).\n * @return returns a Promise.\n */\n EstimoteBeacons.stopMonitoringForRegion = function (region) { return; };\n /**\n * Start monitoring secure beacons. Available on iOS.\n * This function has the same parameters/behaviour as\n * EstimoteBeacons.startMonitoringForRegion.\n * To use secure beacons set the App ID and App Token using\n * {@link EstimoteBeacons.setupAppIDAndAppToken}.\n * @see {@link EstimoteBeacons.startMonitoringForRegion}\n */\n EstimoteBeacons.startSecureMonitoringForRegion = function (region, notifyEntryStateOnDisplay) { return; };\n /**\n * Stop monitoring secure beacons. Available on iOS.\n * This function has the same parameters/behaviour as\n * {@link EstimoteBeacons.stopMonitoringForRegion}.\n */\n EstimoteBeacons.stopSecureMonitoringForRegion = function (region) { return; };\n /**\n * Connect to Estimote Beacon. Available on Android.\n *\n * @usage\n * ```\n * EstimoteBeacons.connectToBeacon(FF:0F:F0:00:F0:00);\n * ```\n * ```\n * EstimoteBeacons.connectToBeacon({\n * proximityUUID: '000000FF-F00F-0FF0-F000-000FF0F00000',\n * major: 1,\n * minor: 1\n * });\n * ```\n * @param beacon {Beacon} Beacon to connect to.\n * @return returns a Promise.\n */\n EstimoteBeacons.connectToBeacon = function (beacon) { return; };\n /**\n * Disconnect from connected Estimote Beacon. Available on Android.\n *\n * @usage\n * ```\n * EstimoteBeacons.disconnectConnectedBeacon();\n * ```\n * @return returns a Promise.\n */\n EstimoteBeacons.disconnectConnectedBeacon = function () { return; };\n /**\n * Write proximity UUID to connected Estimote Beacon. Available on Android.\n *\n * @usage\n * ```\n * // Example that writes constant ESTIMOTE_PROXIMITY_UUID\n * EstimoteBeacons.writeConnectedProximityUUID(ESTIMOTE_PROXIMITY_UUID);\n *\n * @param uuid {string} String to write as new UUID\n * @return returns a Promise.\n */\n EstimoteBeacons.writeConnectedProximityUUID = function (uuid) { return; };\n /**\n * Write major to connected Estimote Beacon. Available on Android.\n *\n * @usage\n * ```\n * // Example that writes 1\n * EstimoteBeacons.writeConnectedMajor(1);\n *\n * @param major {number} number to write as new major\n * @return returns a Promise.\n */\n EstimoteBeacons.writeConnectedMajor = function (major) { return; };\n /**\n * Write minor to connected Estimote Beacon. Available on Android.\n *\n * @usage\n * ```\n * // Example that writes 1\n * EstimoteBeacons.writeConnectedMinor(1);\n *\n * @param minor {number} number to write as new minor\n * @return returns a Promise.\n */\n EstimoteBeacons.writeConnectedMinor = function (minor) { return; };\n /** Proximity value */\n EstimoteBeacons.ProximityUnknown = 0;\n /** Proximity value */\n EstimoteBeacons.ProximityImmediate = 1;\n /** Proximity value */\n EstimoteBeacons.ProximityNear = 2;\n /** Proximity value */\n EstimoteBeacons.ProximityFar = 3;\n /** Beacon colour */\n EstimoteBeacons.BeaconColorUnknown = 0;\n /** Beacon colour */\n EstimoteBeacons.BeaconColorMintCocktail = 1;\n /** Beacon colour */\n EstimoteBeacons.BeaconColorIcyMarshmallow = 2;\n /** Beacon colour */\n EstimoteBeacons.BeaconColorBlueberryPie = 3;\n /**\n * Beacon colour.\n */\n EstimoteBeacons.BeaconColorSweetBeetroot = 4;\n /** Beacon colour */\n EstimoteBeacons.BeaconColorCandyFloss = 5;\n /** Beacon colour */\n EstimoteBeacons.BeaconColorLemonTart = 6;\n /** Beacon colour */\n EstimoteBeacons.BeaconColorVanillaJello = 7;\n /** Beacon colour */\n EstimoteBeacons.BeaconColorLiquoriceSwirl = 8;\n /** Beacon colour */\n EstimoteBeacons.BeaconColorWhite = 9;\n /** Beacon colour */\n EstimoteBeacons.BeaconColorTransparent = 10;\n /** Region state */\n EstimoteBeacons.RegionStateUnknown = 'unknown';\n /** Region state */\n EstimoteBeacons.RegionStateOutside = 'outside';\n /** Region state */\n EstimoteBeacons.RegionStateInside = 'inside';\n __decorate([\n Cordova()\n ], EstimoteBeacons, \"requestWhenInUseAuthorization\", null);\n __decorate([\n Cordova()\n ], EstimoteBeacons, \"requestAlwaysAuthorization\", null);\n __decorate([\n Cordova()\n ], EstimoteBeacons, \"authorizationStatus\", null);\n __decorate([\n Cordova({\n clearFunction: 'stopAdvertisingAsBeacon'\n })\n ], EstimoteBeacons, \"startAdvertisingAsBeacon\", null);\n __decorate([\n Cordova()\n ], EstimoteBeacons, \"stopAdvertisingAsBeacon\", null);\n __decorate([\n Cordova()\n ], EstimoteBeacons, \"enableAnalytics\", null);\n __decorate([\n Cordova()\n ], EstimoteBeacons, \"isAnalyticsEnabled\", null);\n __decorate([\n Cordova()\n ], EstimoteBeacons, \"isAuthorized\", null);\n __decorate([\n Cordova()\n ], EstimoteBeacons, \"setupAppIDAndAppToken\", null);\n __decorate([\n Cordova({\n observable: true,\n clearFunction: 'stopEstimoteBeaconDiscovery'\n })\n ], EstimoteBeacons, \"startEstimoteBeaconDiscovery\", null);\n __decorate([\n Cordova()\n ], EstimoteBeacons, \"stopEstimoteBeaconDiscovery\", null);\n __decorate([\n Cordova({\n observable: true,\n clearFunction: 'stopRangingBeaconsInRegion',\n clearWithArgs: true\n })\n ], EstimoteBeacons, \"startRangingBeaconsInRegion\", null);\n __decorate([\n Cordova()\n ], EstimoteBeacons, \"stopRangingBeaconsInRegion\", null);\n __decorate([\n Cordova({\n observable: true,\n clearFunction: 'stopRangingSecureBeaconsInRegion',\n clearWithArgs: true\n })\n ], EstimoteBeacons, \"startRangingSecureBeaconsInRegion\", null);\n __decorate([\n Cordova()\n ], EstimoteBeacons, \"stopRangingSecureBeaconsInRegion\", null);\n __decorate([\n Cordova({\n observable: true,\n clearFunction: 'stopMonitoringForRegion',\n clearWithArgs: true,\n successIndex: 1,\n errorIndex: 2\n })\n ], EstimoteBeacons, \"startMonitoringForRegion\", null);\n __decorate([\n Cordova()\n ], EstimoteBeacons, \"stopMonitoringForRegion\", null);\n __decorate([\n Cordova({\n observable: true,\n clearFunction: 'stopSecureMonitoringForRegion',\n clearWithArgs: true,\n successIndex: 1,\n errorIndex: 2\n })\n ], EstimoteBeacons, \"startSecureMonitoringForRegion\", null);\n __decorate([\n Cordova()\n ], EstimoteBeacons, \"stopSecureMonitoringForRegion\", null);\n __decorate([\n Cordova()\n ], EstimoteBeacons, \"connectToBeacon\", null);\n __decorate([\n Cordova()\n ], EstimoteBeacons, \"disconnectConnectedBeacon\", null);\n __decorate([\n Cordova()\n ], EstimoteBeacons, \"writeConnectedProximityUUID\", null);\n __decorate([\n Cordova()\n ], EstimoteBeacons, \"writeConnectedMajor\", null);\n __decorate([\n Cordova()\n ], EstimoteBeacons, \"writeConnectedMinor\", null);\n EstimoteBeacons = __decorate([\n Plugin({\n plugin: 'cordova-plugin-estimote',\n pluginRef: 'estimote.beacons',\n repo: 'https://github.com/evothings/phonegap-estimotebeacons',\n platforms: ['iOS', 'Android']\n })\n ], EstimoteBeacons);\n return EstimoteBeacons;\n}());\n//# sourceMappingURL=estimote-beacons.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Facebook\n * @description\n * Use the Facebook Connect plugin to obtain access to the native FB application on iOS and Android.\n *\n * Requires Cordova plugin: `cordova-plugin-facebook4`. For more info, please see the [Facebook Connect](https://github.com/jeduan/cordova-plugin-facebook4).\n *\n * #### Installation\n *\n * To use the FB plugin, you first have to create a new Facebook App inside of the Facebook developer portal at [https://developers.facebook.com/apps](https://developers.facebook.com/apps).\n *\n * [![fb-getstarted-1](/img/docs/native/Facebook/1.png)](https://developers.facebook.com/apps/)\n *\n * Retrieve the `App ID` and `App Name`.\n *\n * [![fb-getstarted-2](/img/docs/native/Facebook/2.png)](https://developers.facebook.com/apps/)\n *\n * Then type in the following command in your Terminal, where APP_ID and APP_NAME are the values from the Facebook Developer portal.\n *\n * ```bash\n * ionic plugin add cordova-plugin-facebook4 --save --variable APP_ID=\"123456789\" --variable APP_NAME=\"myApplication\"\n * ```\n *\n * After, you'll need to add the native platforms you'll be using to your app in the Facebook Developer portal under your app's Settings:\n *\n * [![fb-getstarted-3](/img/docs/native/Facebook/3.png)](https://developers.facebook.com/apps/)\n *\n * Click `'Add Platform'`.\n *\n * [![fb-getstarted-4](/img/docs/native/Facebook/4.png)](https://developers.facebook.com/apps/)\n *\n * At this point you'll need to open your project's [`config.xml`](https://cordova.apache.org/docs/en/latest/config_ref/index.html) file, found in the root directory of your project.\n *\n * Take note of the `id` for the next step:\n * ```\n * <widget id=\"com.mycompany.testapp\" version=\"0.0.1\" xmlns=\"http://www.w3.org/ns/widgets\" xmlns:cdv=\"http://cordova.apache.org/ns/1.0\">\n * ```\n *\n * You can also edit the `id` to whatever you'd like it to be.\n *\n * #### iOS Install\n * Under 'Bundle ID', add the `id` from your `config.xml` file:\n *\n * [![fb-getstarted-5](/img/docs/native/Facebook/5.png)](https://developers.facebook.com/apps/)\n *\n *\n * #### Android Install\n * Under 'Google Play Package Name', add the `id` from your `config.xml` file:\n *\n * [![fb-getstarted-6](/img/docs/native/Facebook/6.png)](https://developers.facebook.com/apps/)\n *\n *\n * And that's it! You can now make calls to Facebook using the plugin.\n *\n * ## Events\n *\n * App events allow you to understand the makeup of users engaging with your app, measure the performance of your Facebook mobile app ads, and reach specific sets of your users with Facebook mobile app ads.\n *\n * - [iOS] [https://developers.facebook.com/docs/ios/app-events](https://developers.facebook.com/docs/ios/app-events)\n * - [Android] [https://developers.facebook.com/docs/android/app-events](https://developers.facebook.com/docs/android/app-events)\n * - [JS] Does not have an Events API, so the plugin functions are empty and will return an automatic success\n *\n * Activation events are automatically tracked for you in the plugin.\n *\n * Events are listed on the [insights page](https://www.facebook.com/insights/).\n *\n * For tracking events, see `logEvent` and `logPurchase`.\n *\n * @usage\n * ```typescript\n * import { Facebook } from 'ionic-native';\n *\n *\n *\n * ```\n *\n */\nexport var Facebook = (function () {\n function Facebook() {\n }\n /**\n * Browser wrapper\n * @param {number} appId Your Facebook AppID from their dashboard\n * @param {string} version The version of API you may want to use. Optional\n */\n Facebook.browserInit = function (appId, version) {\n return;\n };\n /**\n * Login to Facebook to authenticate this app.\n *\n * ```typescript\n * {\n * status: \"connected\",\n * authResponse: {\n * session_key: true,\n * accessToken: \"kgkh3g42kh4g23kh4g2kh34g2kg4k2h4gkh3g4k2h4gk23h4gk2h34gk234gk2h34AndSoOn\",\n * expiresIn: 5183979,\n * sig: \"...\",\n * secret: \"...\",\n * userID: \"634565435\"\n * }\n * }\n * ```\n *\n * @param {string[]} permissions List of [permissions](https://developers.facebook.com/docs/facebook-login/permissions) this app has upon logging in.\n * @return {Promise<FacebookLoginResponse>} Returns a Promise that resolves with a status object if login succeeds, and rejects if login fails.\n */\n Facebook.login = function (permissions) { return; };\n /**\n * Logout of Facebook.\n *\n * For more info see the [Facebook docs](https://developers.facebook.com/docs/reference/javascript/FB.logout)\n * @return Returns a Promise that resolves on a successful logout, and rejects if logout fails.\n */\n Facebook.logout = function () { return; };\n /**\n * Determine if a user is logged in to Facebook and has authenticated your app. There are three possible states for a user:\n *\n * 1) the user is logged into Facebook and has authenticated your application (connected)\n * 2) the user is logged into Facebook but has not authenticated your application (not_authorized)\n * 3) the user is either not logged into Facebook or explicitly logged out of your application so it doesn't attempt to connect to Facebook and thus, we don't know if they've authenticated your application or not (unknown)\n *\n * Resolves with a response like:\n *\n * ```\n * {\n * authResponse: {\n * userID: \"12345678912345\",\n * accessToken: \"kgkh3g42kh4g23kh4g2kh34g2kg4k2h4gkh3g4k2h4gk23h4gk2h34gk234gk2h34AndSoOn\",\n * session_Key: true,\n * expiresIn: \"5183738\",\n * sig: \"...\"\n * },\n * status: \"connected\"\n * }\n * ```\n *\n * For more information see the [Facebook docs](https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus)\n *\n * @return Returns a Promise that resolves with a status, or rejects with an error\n */\n Facebook.getLoginStatus = function () { return; };\n /**\n * Get a Facebook access token for using Facebook services.\n *\n * @return Returns a Promise that resolves with an access token, or rejects with an error\n */\n Facebook.getAccessToken = function () { return; };\n /**\n * Show one of various Facebook dialogs. Example of options for a Share dialog:\n *\n * ```\n * {\n * method: \"share\",\n * href: \"http://example.com\",\n * caption: \"Such caption, very feed.\",\n * description: \"Much description\",\n * picture: 'http://example.com/image.png'\n * }\n * ```\n *\n * For more options see the [Cordova plugin docs](https://github.com/jeduan/cordova-plugin-facebook4#show-a-dialog) and the [Facebook docs](https://developers.facebook.com/docs/javascript/reference/FB.ui)\n * @options {Object} options The dialog options\n * @return Returns a Promise that resolves with success data, or rejects with an error\n */\n Facebook.showDialog = function (options) { return; };\n /**\n * Make a call to Facebook Graph API. Can take additional permissions beyond those granted on login.\n *\n * For more information see:\n *\n * Calling the Graph API - https://developers.facebook.com/docs/javascript/reference/FB.api\n * Graph Explorer - https://developers.facebook.com/tools/explorer\n * Graph API - https://developers.facebook.com/docs/graph-api\n *\n * @param {string} requestPath Graph API endpoint you want to call\n * @param {string[]} permissions List of [permissions](https://developers.facebook.com/docs/facebook-login/permissions) for this request.\n * @return Returns a Promise that resolves with the result of the request, or rejects with an error\n */\n Facebook.api = function (requestPath, permissions) { return; };\n /**\n * Log an event. For more information see the Events section above.\n *\n * @param {string} name Name of the event\n * @param {Object} [params] An object containing extra data to log with the event\n * @param {number} [valueToSum] any value to be added to added to a sum on each event\n * @return\n */\n Facebook.logEvent = function (name, params, valueToSum) { return; };\n /**\n * Log a purchase. For more information see the Events section above.\n *\n * @param {number} value Value of the purchase.\n * @param {string} currency The currency, as an [ISO 4217 currency code](http://en.wikipedia.org/wiki/ISO_4217)\n * @return Returns a Promise\n */\n Facebook.logPurchase = function (value, currency) { return; };\n /**\n * Open App Invite dialog. Does not require login.\n *\n * For more information see:\n *\n * the App Invites Overview - https://developers.facebook.com/docs/app-invites/overview\n * the App Links docs - https://developers.facebook.com/docs/applinks\n *\n *\n * @param {Object} options An object containing an [App Link](https://developers.facebook.com/docs/applinks) URL to your app and an optional image URL.\n * url: [App Link](https://developers.facebook.com/docs/applinks) to your app\n * picture: image to be displayed in the App Invite dialog\n *\n * @return Returns a Promise that resolves with the result data, or rejects with an error\n */\n Facebook.appInvite = function (options) { return; };\n __decorate([\n Cordova()\n ], Facebook, \"browserInit\", null);\n __decorate([\n Cordova()\n ], Facebook, \"login\", null);\n __decorate([\n Cordova()\n ], Facebook, \"logout\", null);\n __decorate([\n Cordova()\n ], Facebook, \"getLoginStatus\", null);\n __decorate([\n Cordova()\n ], Facebook, \"getAccessToken\", null);\n __decorate([\n Cordova()\n ], Facebook, \"showDialog\", null);\n __decorate([\n Cordova()\n ], Facebook, \"api\", null);\n __decorate([\n Cordova()\n ], Facebook, \"logEvent\", null);\n __decorate([\n Cordova()\n ], Facebook, \"logPurchase\", null);\n __decorate([\n Cordova()\n ], Facebook, \"appInvite\", null);\n Facebook = __decorate([\n Plugin({\n plugin: 'cordova-plugin-facebook4',\n pluginRef: 'facebookConnectPlugin',\n repo: 'https://github.com/jeduan/cordova-plugin-facebook4',\n install: 'ionic plugin add cordova-plugin-facebook4 --variable APP_ID=\"123456789\" --variable APP_NAME=\"myApplication\"'\n })\n ], Facebook);\n return Facebook;\n}());\n//# sourceMappingURL=facebook.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Plugin, Cordova } from './plugin';\n/**\n * @name File\n * @description\n * This plugin implements a File API allowing read/write access to files residing on the device.\n *\n * The File class implements static convenience functions to access files and directories.\n *\n * Example:\n * ```\n * import { File } from 'ionic-native';\n *\n * declare var cordova: any;\n * const fs:string = cordova.file.dataDirectory;\n * File.checkDir(this.fs, 'mydir').then(_ => console.log('yay')).catch(err => console.log('boooh'));\n * ```\n *\n * This plugin is based on several specs, including : The HTML5 File API http://www.w3.org/TR/FileAPI/\n * The (now-defunct) Directories and System extensions Latest: http://www.w3.org/TR/2012/WD-file-system-api-20120417/\n * Although most of the plugin code was written when an earlier spec was current: http://www.w3.org/TR/2011/WD-file-system-api-20110419/\n * It also implements the FileWriter spec : http://dev.w3.org/2009/dap/file-system/file-writer.html\n */\nexport var File = (function () {\n function File() {\n }\n File.getFreeDiskSpace = function () {\n return;\n };\n /**\n * Check if a directory exists in a certain path, directory.\n *\n * @param {string} path Base FileSystem. Please refer to the iOS and Android filesystems above\n * @param {string} dir Name of directory to check\n * @return {Promise<boolean|FileError>} Returns a Promise that resolves to true if the directory exists or rejects with an error.\n */\n File.checkDir = function (path, dir) {\n if ((/^\\//.test(dir))) {\n var err = new FileError(5);\n err.message = 'directory cannot start with \\/';\n return Promise.reject(err);\n }\n var fullpath = path + dir;\n return File.resolveDirectoryUrl(fullpath)\n .then(function () {\n return true;\n });\n };\n /**\n * Creates a new directory in the specific path.\n * The replace boolean value determines whether to replace an existing directory with the same name.\n * If an existing directory exists and the replace value is false, the promise will fail and return an error.\n *\n * @param {string} path Base FileSystem. Please refer to the iOS and Android filesystems above\n * @param {string} dirName Name of directory to create\n * @param {boolean} replace If true, replaces file with same name. If false returns error\n * @return {Promise<DirectoryEntry|FileError>} Returns a Promise that resolves with a DirectoryEntry or rejects with an error.\n */\n File.createDir = function (path, dirName, replace) {\n if ((/^\\//.test(dirName))) {\n var err = new FileError(5);\n err.message = 'directory cannot start with \\/';\n return Promise.reject(err);\n }\n var options = {\n create: true\n };\n if (!replace) {\n options.exclusive = true;\n }\n return File.resolveDirectoryUrl(path)\n .then(function (fse) {\n return File.getDirectory(fse, dirName, options);\n });\n };\n /**\n * Remove a directory at a given path.\n *\n * @param {string} path The path to the directory\n * @param {string} dirName The directory name\n * @return {Promise<RemoveResult|FileError>} Returns a Promise that resolves to a RemoveResult or rejects with an error.\n */\n File.removeDir = function (path, dirName) {\n if ((/^\\//.test(dirName))) {\n var err = new FileError(5);\n err.message = 'directory cannot start with \\/';\n return Promise.reject(err);\n }\n return File.resolveDirectoryUrl(path)\n .then(function (fse) {\n return File.getDirectory(fse, dirName, { create: false });\n })\n .then(function (de) {\n return File.remove(de);\n });\n };\n /**\n * Move a directory to a given path.\n *\n * @param {string} path The source path to the directory\n * @param {string} dirName The source directory name\n * @param {string} newPath The destionation path to the directory\n * @param {string} newDirName The destination directory name\n * @return {Promise<DirectoryEntry|Entry|FileError>} Returns a Promise that resolves to the new DirectoryEntry object or rejects with an error.\n */\n File.moveDir = function (path, dirName, newPath, newDirName) {\n var _this = this;\n newDirName = newDirName || dirName;\n if ((/^\\//.test(newDirName))) {\n var err = new FileError(5);\n err.message = 'directory cannot start with \\/';\n return Promise.reject(err);\n }\n return this.resolveDirectoryUrl(path)\n .then(function (fse) {\n return _this.getDirectory(fse, dirName, { create: false });\n })\n .then(function (srcde) {\n return _this.resolveDirectoryUrl(newPath)\n .then(function (deste) {\n return File.move(srcde, deste, newDirName);\n });\n });\n };\n /**\n * Copy a directory in various methods. If destination directory exists, will fail to copy.\n *\n * @param {string} path Base FileSystem. Please refer to the iOS and Android filesystems above\n * @param {string} dirName Name of directory to copy\n * @param {string} newPath Base FileSystem of new location\n * @param {string} newDirName New name of directory to copy to (leave blank to remain the same)\n * @return {Promise<Entry|FileError>} Returns a Promise that resolves to the new Entry object or rejects with an error.\n */\n File.copyDir = function (path, dirName, newPath, newDirName) {\n var _this = this;\n if ((/^\\//.test(newDirName))) {\n var err = new FileError(5);\n err.message = 'directory cannot start with \\/';\n return Promise.reject(err);\n }\n return this.resolveDirectoryUrl(path)\n .then(function (fse) {\n return _this.getDirectory(fse, dirName, { create: false });\n })\n .then(function (srcde) {\n return _this.resolveDirectoryUrl(newPath)\n .then(function (deste) {\n return File.copy(srcde, deste, newDirName);\n });\n });\n };\n /**\n * List files and directory from a given path.\n *\n * @param {string} path Base FileSystem. Please refer to the iOS and Android filesystems above\n * @param {string} dirName Name of directory\n * @return {Promise<Entry[]>} Returns a Promise that resolves to an array of Entry objects or rejects with an error.\n */\n File.listDir = function (path, dirName) {\n if ((/^\\//.test(dirName))) {\n var err = new FileError(5);\n err.message = 'directory cannot start with \\/';\n return Promise.reject(err);\n }\n return File.resolveDirectoryUrl(path)\n .then(function (fse) {\n return File.getDirectory(fse, dirName, { create: false, exclusive: false });\n })\n .then(function (de) {\n var reader = de.createReader();\n return File.readEntries(reader);\n });\n };\n /**\n * Removes all files and the directory from a desired location.\n *\n * @param {string} path Base FileSystem. Please refer to the iOS and Android filesystems above\n * @param {string} dirName Name of directory\n * @return {Promise<RemoveResult>} Returns a Promise that resolves with a RemoveResult or rejects with an error.\n */\n File.removeRecursively = function (path, dirName) {\n if ((/^\\//.test(dirName))) {\n var err = new FileError(5);\n err.message = 'directory cannot start with \\/';\n return Promise.reject(err);\n }\n return File.resolveDirectoryUrl(path)\n .then(function (fse) {\n return File.getDirectory(fse, dirName, { create: false });\n })\n .then(function (de) {\n return File.rimraf(de);\n });\n };\n /**\n * Check if a file exists in a certain path, directory.\n *\n * @param {string} path Base FileSystem. Please refer to the iOS and Android filesystems above\n * @param {string} file Name of file to check\n * @return {Promise<boolean|FileError>} Returns a Promise that resolves with a boolean or rejects with an error.\n */\n File.checkFile = function (path, file) {\n if ((/^\\//.test(file))) {\n var err = new FileError(5);\n err.message = 'file cannot start with \\/';\n return Promise.reject(err);\n }\n return File.resolveLocalFilesystemUrl(path + file)\n .then(function (fse) {\n if (fse.isFile) {\n return true;\n }\n else {\n var err = new FileError(13);\n err.message = 'input is not a file';\n return Promise.reject(err);\n }\n });\n };\n /**\n * Creates a new file in the specific path.\n * The replace boolean value determines whether to replace an existing file with the same name.\n * If an existing file exists and the replace value is false, the promise will fail and return an error.\n *\n * @param {string} path Base FileSystem. Please refer to the iOS and Android filesystems above\n * @param {string} fileName Name of file to create\n * @param {boolean} replace If true, replaces file with same name. If false returns error\n * @return {Promise<FileEntry|FileError>} Returns a Promise that resolves to a FileEntry or rejects with an error.\n */\n File.createFile = function (path, fileName, replace) {\n if ((/^\\//.test(fileName))) {\n var err = new FileError(5);\n err.message = 'file-name cannot start with \\/';\n return Promise.reject(err);\n }\n var options = {\n create: true\n };\n if (!replace) {\n options.exclusive = true;\n }\n return File.resolveDirectoryUrl(path)\n .then(function (fse) {\n return File.getFile(fse, fileName, options);\n });\n };\n /**\n * Removes a file from a desired location.\n *\n * @param {string} path Base FileSystem. Please refer to the iOS and Android filesystems above\n * @param {string} fileName Name of file to remove\n * @return {Promise<RemoveResult|FileError>} Returns a Promise that resolves to a RemoveResult or rejects with an error.\n */\n File.removeFile = function (path, fileName) {\n if ((/^\\//.test(fileName))) {\n var err = new FileError(5);\n err.message = 'file-name cannot start with \\/';\n return Promise.reject(err);\n }\n return File.resolveDirectoryUrl(path)\n .then(function (fse) {\n return File.getFile(fse, fileName, { create: false });\n })\n .then(function (fe) {\n return File.remove(fe);\n });\n };\n /** Write a new file to the desired location.\n *\n * @param {string} path Base FileSystem. Please refer to the iOS and Android filesystems above\n * @param {string} fileName path relative to base path\n * @param {string | Blob} text content or blob to write\n * @param {boolean | WriteOptions} replaceOrOptions replace file if set to true. See WriteOptions for more information.\n * @returns {Promise<void>} Returns a Promise that resolves or rejects with an error.\n */\n File.writeFile = function (path, fileName, text, replaceOrOptions) {\n if ((/^\\//.test(fileName))) {\n var err = new FileError(5);\n err.message = 'file-name cannot start with \\/';\n return Promise.reject(err);\n }\n var opts = {};\n if (replaceOrOptions) {\n if (typeof (replaceOrOptions) === 'boolean') {\n opts.replace = replaceOrOptions;\n }\n }\n return File.resolveDirectoryUrl(path)\n .then(function (fse) {\n return File.getFile(fse, fileName, opts);\n })\n .then(function (fe) {\n return File.createWriter(fe);\n })\n .then(function (writer) {\n if (opts.append) {\n writer.seek(writer.length);\n }\n if (opts.hasOwnProperty('truncate')) {\n writer.truncate(opts.truncate);\n }\n return File.write(writer, text);\n });\n };\n /** Write to an existing file.\n *\n * @param {string} path Base FileSystem. Please refer to the iOS and Android filesystems above\n * @param {string} fileName path relative to base path\n * @param {string | Blob} text content or blob to write\n * @returns {Promise<void>} Returns a Promise that resolves or rejects with an error.\n */\n File.writeExistingFile = function (path, fileName, text) {\n if ((/^\\//.test(fileName))) {\n var err = new FileError(5);\n err.message = 'file-name cannot start with \\/';\n return Promise.reject(err);\n }\n return File.resolveDirectoryUrl(path)\n .then(function (fse) {\n return File.getFile(fse, fileName, { create: false });\n })\n .then(function (fe) {\n return File.createWriter(fe);\n })\n .then(function (writer) {\n return File.write(writer, text);\n });\n };\n /**\n * Read the contents of a file as text.\n *\n * @param {string} path Base FileSystem. Please refer to the iOS and Android filesystems above\n * @param {string} file Name of file, relative to path.\n * @return {Promise<string|FileError>} Returns a Promise that resolves with the contents of the file as string or rejects with an error.\n */\n File.readAsText = function (path, file) {\n if ((/^\\//.test(file))) {\n var err = new FileError(5);\n err.message = 'file-name cannot start with \\/';\n return Promise.reject(err);\n }\n return File.resolveDirectoryUrl(path)\n .then(function (fse) {\n return File.getFile(fse, file, { create: false });\n })\n .then(function (fe) {\n var reader = new FileReader();\n return new Promise(function (resolve, reject) {\n reader.onloadend = function () {\n if (reader.result !== undefined || reader.result !== null) {\n resolve(reader.result);\n }\n else if (reader.error !== undefined || reader.error !== null) {\n reject(reader.error);\n }\n else {\n reject({ code: null, message: 'READER_ONLOADEND_ERR' });\n }\n };\n fe.file(function (file) {\n reader.readAsText(file);\n }, function (error) {\n reject(error);\n });\n });\n });\n };\n /**\n * Read file and return data as a base64 encoded data url.\n * A data url is of the form:\n * data:[<mediatype>][;base64],<data>\n \n * @param {string} path Base FileSystem. Please refer to the iOS and Android filesystems above\n * @param {string} file Name of file, relative to path.\n * @return {Promise<string|FileError>} Returns a Promise that resolves with the contents of the file as data URL or rejects with an error.\n */\n File.readAsDataURL = function (path, file) {\n if ((/^\\//.test(file))) {\n var err = new FileError(5);\n err.message = 'file-name cannot start with \\/';\n return Promise.reject(err);\n }\n return File.resolveDirectoryUrl(path)\n .then(function (fse) {\n return File.getFile(fse, file, { create: false });\n })\n .then(function (fe) {\n var reader = new FileReader();\n return new Promise(function (resolve, reject) {\n reader.onloadend = function () {\n if (reader.result !== undefined || reader.result !== null) {\n resolve(reader.result);\n }\n else if (reader.error !== undefined || reader.error !== null) {\n reject(reader.error);\n }\n else {\n reject({ code: null, message: 'READER_ONLOADEND_ERR' });\n }\n };\n fe.file(function (file) {\n reader.readAsDataURL(file);\n }, function (error) {\n reject(error);\n });\n });\n });\n };\n /**\n * Read file and return data as a binary data.\n \n * @param {string} path Base FileSystem. Please refer to the iOS and Android filesystems above\n * @param {string} file Name of file, relative to path.\n * @return {Promise<string|FileError>} Returns a Promise that resolves with the contents of the file as string rejects with an error.\n */\n File.readAsBinaryString = function (path, file) {\n if ((/^\\//.test(file))) {\n var err = new FileError(5);\n err.message = 'file-name cannot start with \\/';\n return Promise.reject(err);\n }\n return File.resolveDirectoryUrl(path)\n .then(function (fse) {\n return File.getFile(fse, file, { create: false });\n })\n .then(function (fe) {\n var reader = new FileReader();\n return new Promise(function (resolve, reject) {\n reader.onloadend = function () {\n if (reader.result !== undefined || reader.result !== null) {\n resolve(reader.result);\n }\n else if (reader.error !== undefined || reader.error !== null) {\n reject(reader.error);\n }\n else {\n reject({ code: null, message: 'READER_ONLOADEND_ERR' });\n }\n };\n fe.file(function (file) {\n reader.readAsBinaryString(file);\n }, function (error) {\n reject(error);\n });\n });\n });\n };\n /**\n * Read file and return data as an ArrayBuffer.\n \n * @param {string} path Base FileSystem. Please refer to the iOS and Android filesystems above\n * @param {string} file Name of file, relative to path.\n * @return {Promise<ArrayBuffer|FileError>} Returns a Promise that resolves with the contents of the file as ArrayBuffer or rejects with an error.\n */\n File.readAsArrayBuffer = function (path, file) {\n if ((/^\\//.test(file))) {\n var err = new FileError(5);\n err.message = 'file-name cannot start with \\/';\n return Promise.reject(err);\n }\n return File.resolveDirectoryUrl(path)\n .then(function (fse) {\n return File.getFile(fse, file, { create: false });\n })\n .then(function (fe) {\n var reader = new FileReader();\n return new Promise(function (resolve, reject) {\n reader.onloadend = function () {\n if (reader.result !== undefined || reader.result !== null) {\n resolve(reader.result);\n }\n else if (reader.error !== undefined || reader.error !== null) {\n reject(reader.error);\n }\n else {\n reject({ code: null, message: 'READER_ONLOADEND_ERR' });\n }\n };\n fe.file(function (file) {\n reader.readAsArrayBuffer(file);\n }, function (error) {\n reject(error);\n });\n });\n });\n };\n /**\n * Move a file to a given path.\n *\n * @param {string} path Base FileSystem. Please refer to the iOS and Android filesystems above\n * @param {string} fileName Name of file to move\n * @param {string} newPath Base FileSystem of new location\n * @param {string} newFileName New name of file to move to (leave blank to remain the same)\n * @return {Promise<Entry|FileError>} Returns a Promise that resolves to the new Entry or rejects with an error.\n */\n File.moveFile = function (path, fileName, newPath, newFileName) {\n var _this = this;\n newFileName = newFileName || fileName;\n if ((/^\\//.test(newFileName))) {\n var err = new FileError(5);\n err.message = 'file name cannot start with \\/';\n return Promise.reject(err);\n }\n return this.resolveDirectoryUrl(path)\n .then(function (fse) {\n return _this.getFile(fse, fileName, { create: false });\n })\n .then(function (srcfe) {\n return _this.resolveDirectoryUrl(newPath)\n .then(function (deste) {\n return File.move(srcfe, deste, newFileName);\n });\n });\n };\n /**\n * Copy a file in various methods. If file exists, will fail to copy.\n *\n * @param {string} path Base FileSystem. Please refer to the iOS and Android filesystems above\n * @param {string} fileName Name of file to copy\n * @param {string} newPath Base FileSystem of new location\n * @param {string} newFileName New name of file to copy to (leave blank to remain the same)\n * @return {Promise<Entry|FileError>} Returns a Promise that resolves to an Entry or rejects with an error.\n */\n File.copyFile = function (path, fileName, newPath, newFileName) {\n var _this = this;\n newFileName = newFileName || fileName;\n if ((/^\\//.test(newFileName))) {\n var err = new FileError(5);\n err.message = 'file name cannot start with \\/';\n return Promise.reject(err);\n }\n return this.resolveDirectoryUrl(path)\n .then(function (fse) {\n return _this.getFile(fse, fileName, { create: false });\n })\n .then(function (srcfe) {\n return _this.resolveDirectoryUrl(newPath)\n .then(function (deste) {\n return File.copy(srcfe, deste, newFileName);\n });\n });\n };\n // these private methods help avoid cascading error handling\n // in the public ones, primarily simply wrapping callback\n // operations to return Promises that can then be chained.\n /**\n * @private\n */\n File.fillErrorMessage = function (err) {\n err.message = File.cordovaFileError[err.code];\n };\n /**\n * @private\n */\n File.resolveLocalFilesystemUrl = function (furl) {\n return new Promise(function (resolve, reject) {\n try {\n window.resolveLocalFileSystemURL(furl, function (entry) {\n resolve(entry);\n }, function (err) {\n File.fillErrorMessage(err);\n reject(err);\n });\n }\n catch (xc) {\n File.fillErrorMessage(xc);\n reject(xc);\n }\n });\n };\n /**\n * @private\n */\n File.resolveDirectoryUrl = function (durl) {\n return File.resolveLocalFilesystemUrl(durl)\n .then(function (de) {\n if (de.isDirectory) {\n return de;\n }\n else {\n var err = new FileError(13);\n err.message = 'input is not a directory';\n return Promise.reject(err);\n }\n });\n };\n /**\n * @private\n */\n File.getDirectory = function (fse, dn, flags) {\n return new Promise(function (resolve, reject) {\n try {\n fse.getDirectory(dn, flags, function (de) {\n resolve(de);\n }, function (err) {\n File.fillErrorMessage(err);\n reject(err);\n });\n }\n catch (xc) {\n File.fillErrorMessage(xc);\n reject(xc);\n }\n });\n };\n /**\n * @private\n */\n File.getFile = function (fse, fn, flags) {\n return new Promise(function (resolve, reject) {\n try {\n fse.getFile(fn, flags, function (fe) {\n resolve(fe);\n }, function (err) {\n File.fillErrorMessage(err);\n reject(err);\n });\n }\n catch (xc) {\n File.fillErrorMessage(xc);\n reject(xc);\n }\n });\n };\n /**\n * @private\n */\n File.remove = function (fe) {\n return new Promise(function (resolve, reject) {\n fe.remove(function () {\n resolve({ success: true, fileRemoved: fe });\n }, function (err) {\n File.fillErrorMessage(err);\n reject(err);\n });\n });\n };\n /**\n * @private\n */\n File.move = function (srce, destdir, newName) {\n return new Promise(function (resolve, reject) {\n srce.moveTo(destdir, newName, function (deste) {\n resolve(deste);\n }, function (err) {\n File.fillErrorMessage(err);\n reject(err);\n });\n });\n };\n /**\n * @private\n */\n File.copy = function (srce, destdir, newName) {\n return new Promise(function (resolve, reject) {\n srce.copyTo(destdir, newName, function (deste) {\n resolve(deste);\n }, function (err) {\n File.fillErrorMessage(err);\n reject(err);\n });\n });\n };\n /**\n * @private\n */\n File.readEntries = function (dr) {\n return new Promise(function (resolve, reject) {\n dr.readEntries(function (entries) {\n resolve(entries);\n }, function (err) {\n File.fillErrorMessage(err);\n reject(err);\n });\n });\n };\n /**\n * @private\n */\n File.rimraf = function (de) {\n return new Promise(function (resolve, reject) {\n de.removeRecursively(function () {\n resolve({ success: true, fileRemoved: de });\n }, function (err) {\n File.fillErrorMessage(err);\n reject(err);\n });\n });\n };\n /**\n * @private\n */\n File.createWriter = function (fe) {\n return new Promise(function (resolve, reject) {\n fe.createWriter(function (writer) {\n resolve(writer);\n }, function (err) {\n File.fillErrorMessage(err);\n reject(err);\n });\n });\n };\n /**\n * @private\n */\n File.write = function (writer, gu) {\n if (gu instanceof Blob) {\n return this.writeFileInChunks(writer, gu);\n }\n return new Promise(function (resolve, reject) {\n writer.onwriteend = function (evt) {\n if (writer.error) {\n reject(writer.error);\n }\n else {\n resolve();\n }\n };\n writer.write(gu);\n });\n };\n /**\n * @private\n */\n File.writeFileInChunks = function (writer, file) {\n var BLOCK_SIZE = 1024 * 1024;\n var writtenSize = 0;\n function writeNextChunk() {\n var size = Math.min(BLOCK_SIZE, file.size - writtenSize);\n var chunk = file.slice(writtenSize, writtenSize + size);\n writtenSize += size;\n writer.write(chunk);\n }\n return new Promise(function (resolve, reject) {\n writer.onerror = reject;\n writer.onwrite = function () {\n if (writtenSize < file.size) {\n writeNextChunk();\n }\n else {\n resolve();\n }\n };\n writeNextChunk();\n });\n };\n File.cordovaFileError = {\n 1: 'NOT_FOUND_ERR',\n 2: 'SECURITY_ERR',\n 3: 'ABORT_ERR',\n 4: 'NOT_READABLE_ERR',\n 5: 'ENCODING_ERR',\n 6: 'NO_MODIFICATION_ALLOWED_ERR',\n 7: 'INVALID_STATE_ERR',\n 8: 'SYNTAX_ERR',\n 9: 'INVALID_MODIFICATION_ERR',\n 10: 'QUOTA_EXCEEDED_ERR',\n 11: 'TYPE_MISMATCH_ERR',\n 12: 'PATH_EXISTS_ERR',\n 13: 'WRONG_ENTRY_TYPE',\n 14: 'DIR_READ_ERR',\n };\n __decorate([\n Cordova()\n ], File, \"getFreeDiskSpace\", null);\n File = __decorate([\n Plugin({\n plugin: 'cordova-plugin-file',\n pluginRef: 'cordova.file',\n repo: 'https://github.com/apache/cordova-plugin-file'\n })\n ], File);\n return File;\n}());\n//# sourceMappingURL=file.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Plugin, Cordova } from './plugin';\n/**\n * @name FileChooser\n * @description\n *\n * Opens the file picker on Android for the user to select a file, returns a file URI.\n *\n * @usage\n * ```\n * import {FileChooser} from 'ionic-native';\n *\n * FileChooser.open()\n * .then(uri => console.log(uri);\n * .catch(e => console.log(e);\n *\n * ```\n */\nexport var FileChooser = (function () {\n function FileChooser() {\n }\n /**\n * Open a file\n */\n FileChooser.open = function () { return; };\n __decorate([\n Cordova()\n ], FileChooser, \"open\", null);\n FileChooser = __decorate([\n Plugin({\n plugin: 'http://github.com/don/cordova-filechooser.git',\n pluginRef: 'fileChooser',\n repo: 'https://github.com/don/cordova-filechooser',\n platforms: ['Android']\n })\n ], FileChooser);\n return FileChooser;\n}());\n//# sourceMappingURL=file-chooser.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Plugin, Cordova } from './plugin';\n/**\n * @name FileOpener\n * @description\n * This plugin will open a file on your device file system with its default application.\n *\n * @usage\n * ```\n * import {FileOpener} from 'ionic-native';\n *\n *\n *\n * ```\n */\nexport var FileOpener = (function () {\n function FileOpener() {\n }\n /**\n * Open an file\n * @param filePath {string} File Path\n * @param fileMIMEType {string} File MIME Type\n */\n FileOpener.open = function (filePath, fileMIMEType) { return; };\n /**\n * Uninstalls a package\n * @param packageId {string} Package ID\n */\n FileOpener.uninstall = function (packageId) { return; };\n /**\n * Check if an app is already installed\n * @param packageId {string} Package ID\n */\n FileOpener.appIsInstalled = function (packageId) { return; };\n __decorate([\n Cordova({\n callbackStyle: 'object',\n successName: 'success',\n errorName: 'error'\n })\n ], FileOpener, \"open\", null);\n __decorate([\n Cordova({\n callbackStyle: 'object',\n successName: 'success',\n errorName: 'error'\n })\n ], FileOpener, \"uninstall\", null);\n __decorate([\n Cordova({\n callbackStyle: 'object',\n successName: 'success',\n errorName: 'error'\n })\n ], FileOpener, \"appIsInstalled\", null);\n FileOpener = __decorate([\n Plugin({\n plugin: 'cordova-plugin-file-opener2',\n pluginRef: 'cordova.plugins.fileOpener2',\n repo: 'https://github.com/pwlin/cordova-plugin-file-opener2'\n })\n ], FileOpener);\n return FileOpener;\n}());\n//# sourceMappingURL=file-opener.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CordovaInstance, Plugin } from './plugin';\n/**\n * @name Transfer\n *\n * @description\n * This plugin allows you to upload and download files.\n *\n * @usage\n * ```typescript\n * import { Transfer } from 'ionic-native';\n *\n *\n * // Create instance:\n * const fileTransfer = new Transfer();\n *\n * // Upload a file:\n * fileTransfer.upload(..).then(..).catch(..);\n *\n * // Download a file:\n * fileTransfer.download(..).then(..).catch(..);\n *\n * // Abort active transfer:\n * fileTransfer.abort();\n *\n * E.g\n *\n * upload(){\n * const fileTransfer = new Transfer();\n * var options: any;\n *\n * options = {\n * fileKey: 'file',\n * fileName: 'name.jpg',\n * headers: {}\n * .....\n * }\n * fileTransfer.upload(\"<file path>\", \"<api endpoint>\", options)\n * .then((data) => {\n * // success\n * }, (err) => {\n * // error\n * })\n * }\n *\n * ```\n *\n */\nexport var Transfer = (function () {\n function Transfer() {\n this._objectInstance = new FileTransfer();\n }\n /**\n * Sends a file to a server.\n *\n * @param {string} fileUrl Filesystem URL representing the file on the device or a data URI. For backwards compatibility, this can also be the full path of the file on the device.\n * @param {string} url URL of the server to receive the file, as encoded by encodeURI().\n * @param {FileUploadOptions} options Optional parameters.\n * @param {boolean} trustAllHosts Optional parameter, defaults to false. If set to true, it accepts all security certificates. This is useful since Android rejects self-signed security certificates. Not recommended for production use. Supported on Android and iOS.\n * @return Returns a Promise that resolves to a FileUploadResult and rejects with FileTransferError.\n */\n Transfer.prototype.upload = function (fileUrl, url, options, trustAllHosts) {\n return;\n };\n /**\n * Downloads a file from server.\n *\n * @param {string} source URL of the server to download the file, as encoded by encodeURI().\n * @param {stirng} target Filesystem url representing the file on the device. For backwards compatibility, this can also be the full path of the file on the device.\n * @param {boolean} trustAllHosts Optional parameter, defaults to false. If set to true, it accepts all security certificates. This is useful because Android rejects self-signed security certificates. Not recommended for production use. Supported on Android and iOS.\n * @param {object} Optional parameters, currently only supports headers (such as Authorization (Basic Authentication), etc).\n * @return Returns a Promise that resolves to a FileEntry object.\n */\n Transfer.prototype.download = function (source, target, trustAllHosts, options) {\n return;\n };\n /**\n * Registers a listener that gets called whenever a new chunk of data is transferred.\n * @param {function} Listener that takes a progress event.\n */\n Transfer.prototype.onProgress = function (listener) {\n this._objectInstance.onprogress = listener;\n };\n /**\n * Aborts an in-progress transfer. The onerror callback is passed a FileTransferError\n * object which has an error code of FileTransferError.ABORT_ERR.\n */\n Transfer.prototype.abort = function () { };\n /**\n * Error code rejected from upload with FileTransferError\n * Defined in FileTransferError.\n * FILE_NOT_FOUND_ERR: 1 Return when file was not found\n * INVALID_URL_ERR: 2, Return when url was invalid\n * CONNECTION_ERR: 3, Return on connection error\n * ABORT_ERR: 4, Return on aborting\n * NOT_MODIFIED_ERR: 5 Return on \"304 Not Modified\" HTTP response\n * @enum {number}\n */\n Transfer.FileTransferErrorCode = {\n FILE_NOT_FOUND_ERR: 1,\n INVALID_URL_ERR: 2,\n CONNECTION_ERR: 3,\n ABORT_ERR: 4,\n NOT_MODIFIED_ERR: 5\n };\n __decorate([\n CordovaInstance({\n successIndex: 2,\n errorIndex: 3\n })\n ], Transfer.prototype, \"upload\", null);\n __decorate([\n CordovaInstance({\n successIndex: 2,\n errorIndex: 3\n })\n ], Transfer.prototype, \"download\", null);\n __decorate([\n CordovaInstance({\n sync: true\n })\n ], Transfer.prototype, \"abort\", null);\n Transfer = __decorate([\n Plugin({\n plugin: 'cordova-plugin-file-transfer',\n pluginRef: 'FileTransfer',\n repo: 'https://github.com/apache/cordova-plugin-file-transfer'\n })\n ], Transfer);\n return Transfer;\n}());\n//# sourceMappingURL=filetransfer.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Flashlight\n * @description This plugin allows you to switch the flashlight / torch of the device on and off.\n *\n * Requires Cordova plugin: `cordova-plugin-flashlight`. For more info, please see the [Flashlight plugin docs](https://github.com/EddyVerbruggen/Flashlight-PhoneGap-Plugin).\n *\n * @usage\n * ```typescript\n * import { Flashlight } from 'ionic-native';\n *\n *\n *\n * ```\n */\nexport var Flashlight = (function () {\n function Flashlight() {\n }\n /**\n * Checks if the flashlight is available\n * @returns {Promise<boolean>} Returns a promise that resolves with a boolean stating if the flashlight is available.\n */\n Flashlight.available = function () { return; };\n /**\n * Switches the flashlight on\n * @returns {Promise<boolean>}\n */\n Flashlight.switchOn = function () { return; };\n /**\n * Switches the flashlight off\n * @returns {Promise<boolean>}\n */\n Flashlight.switchOff = function () { return; };\n /**\n * Toggles the flashlight\n * @returns {Promise<any>}\n */\n Flashlight.toggle = function () { return; };\n /**\n * Checks if the flashlight is turned on.\n * @returns {boolean}\n */\n Flashlight.isSwitchedOn = function () { return; };\n __decorate([\n Cordova()\n ], Flashlight, \"available\", null);\n __decorate([\n Cordova()\n ], Flashlight, \"switchOn\", null);\n __decorate([\n Cordova()\n ], Flashlight, \"switchOff\", null);\n __decorate([\n Cordova()\n ], Flashlight, \"toggle\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], Flashlight, \"isSwitchedOn\", null);\n Flashlight = __decorate([\n Plugin({\n plugin: 'cordova-plugin-flashlight',\n pluginRef: 'window.plugins.flashlight',\n repo: 'https://github.com/EddyVerbruggen/Flashlight-PhoneGap-Plugin.git'\n })\n ], Flashlight);\n return Flashlight;\n}());\n//# sourceMappingURL=flashlight.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\nimport { Observable } from 'rxjs/Observable';\nexport var Geofence = (function () {\n function Geofence() {\n }\n /**\n * Initializes the plugin. User will be prompted to allow the app to use location and notifications.\n *\n * @return {Promise<any>}\n */\n Geofence.initialize = function () { return; };\n ;\n /**\n * Adds a new geofence or array of geofences. For geofence object, see above.\n *\n * @return {Promise<any>}\n */\n Geofence.addOrUpdate = function (geofences) { return; };\n ;\n /**\n * Removes a geofence or array of geofences. `geofenceID` corresponds to one or more IDs specified when the\n * geofence was created.\n *\n * @return {Promise<any>}\n */\n Geofence.remove = function (geofenceId) { return; };\n ;\n /**\n * Removes all geofences.\n *\n * @return {Promise<any>}\n */\n Geofence.removeAll = function () { return; };\n ;\n /**\n * Returns an array of geofences currently being monitored.\n *\n * @return {Promise<Array<string>>}\n */\n Geofence.getWatched = function () { return; };\n ;\n /**\n * Called when a geofence is crossed in the direction specified by `TransitType`.\n *\n * @return {Promise<any>}\n */\n Geofence.onTransitionReceived = function () {\n return new Observable(function (observer) {\n window && window.geofence && (window.geofence.onTransitionReceived = observer.next.bind(observer));\n return function () { return window.geofence.onTransitionReceived = function () { }; };\n });\n };\n /**\n * Called when the user clicks a geofence notification. iOS and Android only.\n *\n * @return {Promise<Object>}\n */\n Geofence.onNotificationClicked = function () {\n return new Observable(function (observer) {\n window && window.geofence && (window.geofence.onNotificationClicked = observer.next.bind(observer));\n return function () { return window.geofence.onNotificationClicked = function () { }; };\n });\n };\n Geofence.TransitionType = {\n ENTER: 1,\n EXIT: 2,\n BOTH: 3\n };\n __decorate([\n Cordova()\n ], Geofence, \"initialize\", null);\n __decorate([\n Cordova()\n ], Geofence, \"addOrUpdate\", null);\n __decorate([\n Cordova()\n ], Geofence, \"remove\", null);\n __decorate([\n Cordova()\n ], Geofence, \"removeAll\", null);\n __decorate([\n Cordova()\n ], Geofence, \"getWatched\", null);\n Geofence = __decorate([\n Plugin({\n plugin: 'cordova-plugin-geofence',\n pluginRef: 'geofence',\n repo: 'https://github.com/cowbell/cordova-plugin-geofence/',\n platforms: ['Android', 'iOS', 'Windows Phone 8', 'Windows Phone']\n })\n ], Geofence);\n return Geofence;\n}());\n//# sourceMappingURL=geofence.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\nimport { Observable } from 'rxjs/Observable';\n/**\n * @name Geolocation\n * @description\n * This plugin provides information about the device's location, such as latitude and longitude. Common sources of location information include Global Positioning System (GPS) and location inferred from network signals such as IP address, RFID, WiFi and Bluetooth MAC addresses, and GSM/CDMA cell IDs.\n *\n * This API is based on the W3C Geolocation API Specification, and only executes on devices that don't already provide an implementation.\n *\n * @usage\n *\n * ```typescript\n * import { Geolocation } from 'ionic-native';\n *\n *\n * Geolocation.getCurrentPosition().then((resp) => {\n * // resp.coords.latitude\n * // resp.coords.longitude\n * })\n *\n * let watch = Geolocation.watchPosition();\n * watch.subscribe((data) => {\n * // data.coords.latitude\n * // data.coords.longitude\n * })\n * ```\n */\nexport var Geolocation = (function () {\n function Geolocation() {\n }\n /**\n * Get the device's current position.\n *\n * @param {GeolocationOptions} options The [geolocation options](https://developer.mozilla.org/en-US/docs/Web/API/PositionOptions).\n * @return Returns a Promise that resolves with the [position](https://developer.mozilla.org/en-US/docs/Web/API/Position) of the device, or rejects with an error.\n */\n Geolocation.getCurrentPosition = function (options) { return; };\n /**\n * Watch the current device's position. Clear the watch by unsubscribing from\n * Observable changes.\n *\n * ```typescript\n * var subscription = Geolocation.watchPosition()\n * .filter((p) => p.code === undefined) //Filter Out Errors\n * .subscribe(position => {\n * console.log(position.coords.longitude + ' ' + position.coords.latitude);\n * });\n *\n * // To stop notifications\n * subscription.unsubscribe();\n * ```\n *\n * @param {GeolocationOptions} options The [geolocation options](https://developer.mozilla.org/en-US/docs/Web/API/PositionOptions).\n * @return Returns an Observable that notifies with the [position](https://developer.mozilla.org/en-US/docs/Web/API/Position) of the device, or errors.\n */\n Geolocation.watchPosition = function (options) {\n return new Observable(function (observer) {\n var watchId = navigator.geolocation.watchPosition(observer.next.bind(observer), observer.next.bind(observer), options);\n return function () { return navigator.geolocation.clearWatch(watchId); };\n });\n };\n __decorate([\n Cordova({\n callbackOrder: 'reverse'\n })\n ], Geolocation, \"getCurrentPosition\", null);\n Geolocation = __decorate([\n Plugin({\n plugin: 'cordova-plugin-geolocation',\n pluginRef: 'navigator.geolocation',\n repo: 'https://github.com/apache/cordova-plugin-geolocation'\n })\n ], Geolocation);\n return Geolocation;\n}());\n//# sourceMappingURL=geolocation.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Globalization\n * @description\n * @usage\n * ```typescript\n * import { Globalization } from 'ionic-native';\n *\n *\n * ```\n */\nexport var Globalization = (function () {\n function Globalization() {\n }\n /**\n * Returns the BCP-47 compliant language identifier tag to the successCallback with a properties object as a parameter. That object should have a value property with a String value.\n * @return {Promise<{value: string}>}\n */\n Globalization.getPreferredLanguage = function () { return; };\n /**\n * Returns the BCP 47 compliant locale identifier string to the successCallback with a properties object as a parameter.\n * @return {Promise<{value: string}>}\n */\n Globalization.getLocaleName = function () { return; };\n /**\n * Converts date to string\n * @param {Date} date Date you wish to convert\n * @param options Options for the converted date. Length, selector.\n * @return {Promise<{value: string}>} Returns a promise when the date has been converted.\n */\n Globalization.dateToString = function (date, options) { return; };\n /**\n * Parses a date formatted as a string, according to the client's user preferences and calendar using the time zone of the client, and returns the corresponding date object.\n * @param {string} dateString Date as a string to be converted\n * @param options Options for the converted date. Length, selector.\n * @return {Promise<{value: string}>} Returns a promise when the date has been converted.\n */\n Globalization.stringToDate = function (dateString, options) { return; };\n /**\n * Returns a pattern string to format and parse dates according to the client's user preferences.\n * @param options Object with the format length and selector\n * @return {Promise<{value: string}>} Returns a promise.\n */\n Globalization.getDatePattern = function (options) { return; };\n /**\n * Returns an array of the names of the months or days of the week, depending on the client's user preferences and calendar.\n * @param options Object with type (narrow or wide) and item (month or days).\n * @return {Promise<{value: string}>} Returns a promise.\n */\n Globalization.getDateNames = function (options) { return; };\n /**\n * Indicates whether daylight savings time is in effect for a given date using the client's time zone and calendar.\n * @param {data} date Date to process\n * @returns {Promise<dst>} reutrns a promise with the value\n */\n Globalization.isDayLightSavingsTime = function (date) { return; };\n /**\n * Returns the first day of the week according to the client's user preferences and calendar.\n * @returns {Promise<value>} reutrns a promise with the value\n */\n Globalization.getFirstDayOfWeek = function () { return; };\n /**\n * Returns a number formatted as a string according to the client's user preferences.\n * @param options\n */\n Globalization.numberToString = function (options) { return; };\n /**\n *\n * @param {string} stringToConvert String you want to conver to a number\n * @param options The type of number you want to return. Can be decimal, percent, or currency.\n * @returns {Promise} Returns a promise with the value.\n */\n Globalization.stringToNumber = function (stringToConvert, options) { return; };\n /**\n * Returns a pattern string to format and parse numbers according to the client's user preferences.\n * @param options Can be decimal, percent, or currency.\n * @returns {Promise} returns a promise with the value.\n */\n Globalization.getNumberPattern = function (options) { return; };\n /**\n * Returns a pattern string to format and parse currency values according to the client's user preferences and ISO 4217 currency code.\n * @param {string} currencyCode Currency Code.A\n * @returns {Promise} returns a promise with the value\n */\n Globalization.getCurrencyPattern = function (currencyCode) { return; };\n __decorate([\n Cordova()\n ], Globalization, \"getPreferredLanguage\", null);\n __decorate([\n Cordova()\n ], Globalization, \"getLocaleName\", null);\n __decorate([\n Cordova({\n successIndex: 1,\n errorIndex: 2\n })\n ], Globalization, \"dateToString\", null);\n __decorate([\n Cordova({\n successIndex: 1,\n errorIndex: 2\n })\n ], Globalization, \"stringToDate\", null);\n __decorate([\n Cordova({\n callbackOrder: 'reverse'\n })\n ], Globalization, \"getDatePattern\", null);\n __decorate([\n Cordova({\n callbackOrder: 'reverse'\n })\n ], Globalization, \"getDateNames\", null);\n __decorate([\n Cordova()\n ], Globalization, \"isDayLightSavingsTime\", null);\n __decorate([\n Cordova()\n ], Globalization, \"getFirstDayOfWeek\", null);\n __decorate([\n Cordova({\n successIndex: 1,\n errorIndex: 2\n })\n ], Globalization, \"numberToString\", null);\n __decorate([\n Cordova({\n successIndex: 1,\n errorIndex: 2\n })\n ], Globalization, \"stringToNumber\", null);\n __decorate([\n Cordova({\n callbackOrder: 'reverse'\n })\n ], Globalization, \"getNumberPattern\", null);\n __decorate([\n Cordova()\n ], Globalization, \"getCurrencyPattern\", null);\n Globalization = __decorate([\n Plugin({\n plugin: 'cordova-plugin-globalization',\n pluginRef: 'navigator.globalization',\n repo: 'https://github.com/apache/cordova-plugin-globalization'\n })\n ], Globalization);\n return Globalization;\n}());\n//# sourceMappingURL=globalization.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Google Plus\n * @description\n * @usage\n * ```typescript\n * import { GooglePlus } from 'ionic-native';\n *\n *\n * ```\n */\nexport var GooglePlus = (function () {\n function GooglePlus() {\n }\n /**\n * The login function walks the user through the Google Auth process.\n * @param options\n */\n GooglePlus.login = function (options) { return; };\n /**\n * You can call trySilentLogin to check if they're already signed in to the app and sign them in silently if they are.\n * @param options\n */\n GooglePlus.trySilentLogin = function (options) { return; };\n /**\n * This will clear the OAuth2 token.\n */\n GooglePlus.logout = function () { return; };\n /**\n * This will clear the OAuth2 token, forget which account was used to login, and disconnect that account from the app. This will require the user to allow the app access again next time they sign in. Be aware that this effect is not always instantaneous. It can take time to completely disconnect.\n */\n GooglePlus.disconnect = function () { return; };\n __decorate([\n Cordova()\n ], GooglePlus, \"login\", null);\n __decorate([\n Cordova()\n ], GooglePlus, \"trySilentLogin\", null);\n __decorate([\n Cordova()\n ], GooglePlus, \"logout\", null);\n __decorate([\n Cordova()\n ], GooglePlus, \"disconnect\", null);\n GooglePlus = __decorate([\n Plugin({\n plugin: 'cordova-plugin-googleplus',\n pluginRef: 'window.plugins.googleplus',\n repo: 'https://github.com/EddyVerbruggen/cordova-plugin-googleplus',\n platforms: ['Web', 'Android', 'iOS'],\n install: 'ionic plugin add cordova-plugin-googleplus --variable REVERSED_CLIENT_ID=myreversedclientid'\n })\n ], GooglePlus);\n return GooglePlus;\n}());\n//# sourceMappingURL=google-plus.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, CordovaInstance, Plugin } from './plugin';\nimport { Observable } from 'rxjs/Observable';\n/**\n * @private\n * You can listen to these events where appropriate\n */\nexport var GoogleMapsEvent = {\n MAP_CLICK: 'click',\n MAP_LONG_CLICK: 'long_click',\n MY_LOCATION_CHANGE: 'my_location_change',\n MY_LOCATION_BUTTON_CLICK: 'my_location_button_click',\n INDOOR_BUILDING_FOCUSED: 'indoor_building_focused',\n INDOOR_LEVEL_ACTIVATED: 'indoor_level_activated',\n CAMERA_CHANGE: 'camera_change',\n CAMERA_IDLE: 'camera_idle',\n MAP_READY: 'map_ready',\n MAP_LOADED: 'map_loaded',\n MAP_WILL_MOVE: 'will_move',\n MAP_CLOSE: 'map_close',\n MARKER_CLICK: 'click',\n OVERLAY_CLICK: 'overlay_click',\n INFO_CLICK: 'info_click',\n MARKER_DRAG: 'drag',\n MARKER_DRAG_START: 'drag_start',\n MARKER_DRAG_END: 'drag_end'\n};\n/**\n * @private\n */\nexport var GoogleMapsAnimation = {\n BOUNCE: 'BOUNCE',\n DROP: 'DROP'\n};\n/**\n * @name Google Maps\n * @description This plugin uses the native Google Maps SDK\n * @usage\n * ```\n * import { GoogleMap, GoogleMapsEvent } from 'ionic-native';\n *\n * // create a new map using element ID\n * let map = new GoogleMap('elementID');\n *\n * // or create a new map by passing HTMLElement\n * let element: HTMLElement = document.getElementById('elementID');\n *\n * // In Angular 2 or Ionic 2, if we have this element in html: <div #map></div>\n * // then we can use @ViewChild to find the element and pass it to GoogleMaps\n * @ViewChild('map') mapElement;\n * let map = new GoogleMap(mapElement);\n *\n * // listen to MAP_READY event\n * map.one(GoogleMapsEvent.MAP_READY).subscribe(() => console.log('Map is ready!'));\n *\n *\n * // create LatLng object\n * let ionic: GoogleMapsLatLng = new GoogleMapsLatLng(43.0741904,-89.3809802);\n *\n * // create CameraPosition\n * let position: CameraPosition = {\n * target: ionic,\n * zoom: 18,\n * tilt: 30\n * };\n *\n * // move the map's camera to position\n * map.moveCamera(position);\n *\n * // create new marker\n * let markerOptions: GoogleMapsMarkerOptions = {\n * position: ionic,\n * title: 'Ionic'\n * };\n *\n * map.addMarker(markerOptions)\n * .then((marker: GoogleMapsMarker) => {\n * marker.showInfoWindow();\n * });\n * ```\n */\nexport var GoogleMap = (function () {\n function GoogleMap(element, options) {\n if (typeof element === 'string')\n element = document.getElementById(element);\n this._objectInstance = plugin.google.maps.Map.getMap(element, options);\n }\n /**\n * Checks if a map object has been created and is available.\n *\n * @return {Promise<boolean>}\n */\n GoogleMap.isAvailable = function () {\n return;\n };\n /**\n * Listen to a map event.\n *\n * @return {Observable<any>}\n */\n GoogleMap.prototype.on = function (event) {\n var _this = this;\n return new Observable(function (observer) {\n _this._objectInstance.on(event, observer.next.bind(observer));\n return function () { return _this._objectInstance.off(event); };\n });\n };\n /**\n * Listen to a map event only once.\n *\n * @return {Promise<any>}\n */\n GoogleMap.prototype.one = function (event) {\n var _this = this;\n return new Promise(function (resolve) { return _this._objectInstance.one(event, resolve); });\n };\n GoogleMap.prototype.setDebuggable = function (isDebuggable) {\n };\n GoogleMap.prototype.setClickable = function (isClickable) {\n };\n /**\n * Get the position of the camera.\n *\n * @return {Promise<CameraPosition>}\n */\n GoogleMap.prototype.getCameraPosition = function () {\n return;\n };\n /**\n * Get the location of the user.\n *\n * @return {Promise<MyLocation>}\n */\n GoogleMap.prototype.getMyLocation = function (options) {\n return;\n };\n /**\n * Get the visible region.\n *\n * @return {Promise<VisibleRegion>}\n */\n GoogleMap.prototype.getVisibleRegion = function () {\n return;\n };\n GoogleMap.prototype.showDialog = function () {\n };\n GoogleMap.prototype.closeDialog = function () {\n };\n GoogleMap.prototype.getLicenseInfo = function () {\n return;\n };\n GoogleMap.prototype.setCenter = function (latLng) {\n };\n GoogleMap.prototype.setZoom = function (zoomLevel) {\n };\n GoogleMap.prototype.setMapTypeId = function (typeId) {\n };\n GoogleMap.prototype.setTilt = function (tiltLevel) {\n };\n GoogleMap.prototype.animateCamera = function (animateCameraOptions) { return; };\n GoogleMap.prototype.moveCamera = function (cameraPosition) { return; };\n GoogleMap.prototype.setMyLocationEnabled = function (enabled) {\n };\n GoogleMap.prototype.setIndoorEnabled = function (enabled) {\n };\n GoogleMap.prototype.setTrafficEnabled = function (enabled) {\n };\n GoogleMap.prototype.setCompassEnabled = function (enabled) {\n };\n GoogleMap.prototype.setAllGesturesEnabled = function (enabled) {\n };\n GoogleMap.prototype.addMarker = function (options) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n _this._objectInstance.addMarker(options, function (marker) {\n if (marker) {\n resolve(new GoogleMapsMarker(marker));\n }\n else {\n reject();\n }\n });\n });\n };\n GoogleMap.prototype.addCircle = function (options) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n _this._objectInstance.addCircle(options, function (circle) {\n if (circle) {\n resolve(new GoogleMapsCircle(circle));\n }\n else {\n reject();\n }\n });\n });\n };\n GoogleMap.prototype.addPolygon = function (options) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n _this._objectInstance.addPolygon(options, function (polygon) {\n if (polygon) {\n resolve(new GoogleMapsPolygon(polygon));\n }\n else {\n reject();\n }\n });\n });\n };\n GoogleMap.prototype.addPolyline = function (options) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n _this._objectInstance.addPolyline(options, function (polyline) {\n if (polyline) {\n resolve(new GoogleMapsPolyline(polyline));\n }\n else {\n reject();\n }\n });\n });\n };\n GoogleMap.prototype.addTileOverlay = function (options) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n _this._objectInstance.addTileOverlay(options, function (tileOverlay) {\n if (tileOverlay) {\n resolve(new GoogleMapsTileOverlay(tileOverlay));\n }\n else {\n reject();\n }\n });\n });\n };\n GoogleMap.prototype.addGroundOverlay = function (options) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n _this._objectInstance.addGroundOverlay(options, function (groundOverlay) {\n if (groundOverlay) {\n resolve(new GoogleMapsGroundOverlay(groundOverlay));\n }\n else {\n reject();\n }\n });\n });\n };\n GoogleMap.prototype.addKmlOverlay = function (options) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n _this._objectInstance.addKmlOverlay(options, function (kmlOverlay) {\n if (kmlOverlay) {\n resolve(new GoogleMapsKmlOverlay(kmlOverlay));\n }\n else {\n reject();\n }\n });\n });\n };\n GoogleMap.prototype.setDiv = function (domNode) {\n };\n GoogleMap.prototype.setVisible = function (visible) {\n };\n GoogleMap.prototype.setOptions = function (options) {\n };\n GoogleMap.prototype.setBackgroundColor = function (backgroundColor) {\n };\n GoogleMap.prototype.setPadding = function (top, right, bottom, left) {\n };\n GoogleMap.prototype.clear = function () {\n };\n GoogleMap.prototype.refreshLayout = function () {\n };\n GoogleMap.prototype.fromLatLngToPoint = function (latLng, point) {\n return;\n };\n GoogleMap.prototype.fromPointToLatLng = function (point, latLng) {\n return;\n };\n GoogleMap.prototype.toDataURL = function () {\n return;\n };\n GoogleMap.prototype.remove = function () {\n };\n GoogleMap.prototype.panBy = function () {\n };\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMap.prototype, \"setDebuggable\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMap.prototype, \"setClickable\", null);\n __decorate([\n CordovaInstance()\n ], GoogleMap.prototype, \"getCameraPosition\", null);\n __decorate([\n CordovaInstance()\n ], GoogleMap.prototype, \"getMyLocation\", null);\n __decorate([\n CordovaInstance()\n ], GoogleMap.prototype, \"getVisibleRegion\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMap.prototype, \"showDialog\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMap.prototype, \"closeDialog\", null);\n __decorate([\n CordovaInstance()\n ], GoogleMap.prototype, \"getLicenseInfo\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMap.prototype, \"setCenter\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMap.prototype, \"setZoom\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMap.prototype, \"setMapTypeId\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMap.prototype, \"setTilt\", null);\n __decorate([\n CordovaInstance()\n ], GoogleMap.prototype, \"animateCamera\", null);\n __decorate([\n CordovaInstance()\n ], GoogleMap.prototype, \"moveCamera\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMap.prototype, \"setMyLocationEnabled\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMap.prototype, \"setIndoorEnabled\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMap.prototype, \"setTrafficEnabled\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMap.prototype, \"setCompassEnabled\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMap.prototype, \"setAllGesturesEnabled\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMap.prototype, \"setDiv\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMap.prototype, \"setVisible\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMap.prototype, \"setOptions\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMap.prototype, \"setBackgroundColor\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMap.prototype, \"setPadding\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMap.prototype, \"clear\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMap.prototype, \"refreshLayout\", null);\n __decorate([\n CordovaInstance()\n ], GoogleMap.prototype, \"fromLatLngToPoint\", null);\n __decorate([\n CordovaInstance()\n ], GoogleMap.prototype, \"fromPointToLatLng\", null);\n __decorate([\n CordovaInstance()\n ], GoogleMap.prototype, \"toDataURL\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMap.prototype, \"remove\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMap.prototype, \"panBy\", null);\n __decorate([\n Cordova()\n ], GoogleMap, \"isAvailable\", null);\n GoogleMap = __decorate([\n Plugin({\n pluginRef: 'plugin.google.maps.Map',\n plugin: 'cordova-plugin-googlemaps',\n repo: 'https://github.com/mapsplugin/cordova-plugin-googlemaps',\n install: 'ionic plugin add cordova-plugin-googlemaps --variable API_KEY_FOR_ANDROID=\"YOUR_ANDROID_API_KEY_IS_HERE\" --variable API_KEY_FOR_IOS=\"YOUR_IOS_API_KEY_IS_HERE\"'\n })\n ], GoogleMap);\n return GoogleMap;\n}());\n/**\n * @private\n */\nexport var GoogleMapsMarker = (function () {\n function GoogleMapsMarker(_objectInstance) {\n this._objectInstance = _objectInstance;\n }\n GoogleMapsMarker.prototype.addEventListener = function (event) {\n var _this = this;\n return new Observable(function (observer) {\n _this._objectInstance.addEventListener(event, observer.next.bind(observer));\n return function () { return _this._objectInstance.removeEventListener(event, observer.next.bind(observer)); };\n });\n };\n GoogleMapsMarker.prototype.isVisible = function () {\n return;\n };\n GoogleMapsMarker.prototype.setVisible = function (visible) {\n };\n GoogleMapsMarker.prototype.getHashCode = function () {\n return;\n };\n GoogleMapsMarker.prototype.remove = function () {\n };\n GoogleMapsMarker.prototype.setOpacity = function (alpha) {\n };\n GoogleMapsMarker.prototype.getOpacity = function () {\n return;\n };\n GoogleMapsMarker.prototype.setZIndex = function () {\n };\n GoogleMapsMarker.prototype.setIconAnchor = function (x, y) {\n };\n GoogleMapsMarker.prototype.setInfoWindowAnchor = function (x, y) {\n };\n GoogleMapsMarker.prototype.setDraggable = function (draggable) {\n };\n GoogleMapsMarker.prototype.isDraggable = function () {\n return;\n };\n GoogleMapsMarker.prototype.setFlat = function (flat) {\n return;\n };\n GoogleMapsMarker.prototype.setIcon = function (icon) {\n };\n GoogleMapsMarker.prototype.setTitle = function (title) {\n };\n GoogleMapsMarker.prototype.getTitle = function () {\n return;\n };\n GoogleMapsMarker.prototype.setSnippet = function (snippet) {\n };\n GoogleMapsMarker.prototype.getSnippet = function () {\n return;\n };\n GoogleMapsMarker.prototype.setRotation = function (rotation) {\n };\n GoogleMapsMarker.prototype.getRotation = function () {\n return;\n };\n GoogleMapsMarker.prototype.showInfoWindow = function () {\n return;\n };\n GoogleMapsMarker.prototype.hideInfoWindow = function () {\n return;\n };\n GoogleMapsMarker.prototype.setPosition = function (latLng) {\n };\n GoogleMapsMarker.prototype.getPosition = function () {\n return;\n };\n GoogleMapsMarker.prototype.getMap = function () {\n return;\n };\n GoogleMapsMarker.prototype.setAnimation = function (animation) {\n };\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsMarker.prototype, \"isVisible\", null);\n __decorate([\n CordovaInstance()\n ], GoogleMapsMarker.prototype, \"setVisible\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsMarker.prototype, \"getHashCode\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsMarker.prototype, \"remove\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsMarker.prototype, \"setOpacity\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsMarker.prototype, \"getOpacity\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsMarker.prototype, \"setZIndex\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsMarker.prototype, \"setIconAnchor\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsMarker.prototype, \"setInfoWindowAnchor\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsMarker.prototype, \"setDraggable\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsMarker.prototype, \"isDraggable\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsMarker.prototype, \"setFlat\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsMarker.prototype, \"setIcon\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsMarker.prototype, \"setTitle\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsMarker.prototype, \"getTitle\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsMarker.prototype, \"setSnippet\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsMarker.prototype, \"getSnippet\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsMarker.prototype, \"setRotation\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsMarker.prototype, \"getRotation\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsMarker.prototype, \"showInfoWindow\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsMarker.prototype, \"hideInfoWindow\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsMarker.prototype, \"setPosition\", null);\n __decorate([\n CordovaInstance()\n ], GoogleMapsMarker.prototype, \"getPosition\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsMarker.prototype, \"getMap\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsMarker.prototype, \"setAnimation\", null);\n return GoogleMapsMarker;\n}());\n/**\n * @private\n */\nexport var GoogleMapsCircle = (function () {\n function GoogleMapsCircle(_objectInstance) {\n this._objectInstance = _objectInstance;\n }\n GoogleMapsCircle.prototype.addEventListener = function (event) {\n var _this = this;\n return new Observable(function (observer) {\n _this._objectInstance.addEventListener(event, observer.next.bind(observer));\n return function () { return _this._objectInstance.removeEventListener(event, observer.next.bind(observer)); };\n });\n };\n GoogleMapsCircle.prototype.getCenter = function () {\n return;\n };\n GoogleMapsCircle.prototype.getRadius = function () {\n return;\n };\n GoogleMapsCircle.prototype.getStrokeColor = function () {\n return;\n };\n GoogleMapsCircle.prototype.getVisible = function () {\n return;\n };\n GoogleMapsCircle.prototype.getZIndex = function () {\n return;\n };\n GoogleMapsCircle.prototype.remove = function () {\n };\n GoogleMapsCircle.prototype.setCenter = function (latLng) {\n };\n GoogleMapsCircle.prototype.setFillColor = function (fillColor) {\n };\n GoogleMapsCircle.prototype.setStrokeColor = function (strokeColor) {\n };\n GoogleMapsCircle.prototype.setStrokeWidth = function (strokeWidth) {\n };\n GoogleMapsCircle.prototype.setVisible = function (visible) {\n };\n GoogleMapsCircle.prototype.setZIndex = function (zIndex) {\n };\n GoogleMapsCircle.prototype.setRadius = function (radius) {\n };\n GoogleMapsCircle.prototype.getMap = function () {\n return;\n };\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsCircle.prototype, \"getCenter\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsCircle.prototype, \"getRadius\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsCircle.prototype, \"getStrokeColor\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsCircle.prototype, \"getVisible\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsCircle.prototype, \"getZIndex\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsCircle.prototype, \"remove\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsCircle.prototype, \"setCenter\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsCircle.prototype, \"setFillColor\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsCircle.prototype, \"setStrokeColor\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsCircle.prototype, \"setStrokeWidth\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsCircle.prototype, \"setVisible\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsCircle.prototype, \"setZIndex\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsCircle.prototype, \"setRadius\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsCircle.prototype, \"getMap\", null);\n return GoogleMapsCircle;\n}());\n/**\n * @private\n */\nexport var GoogleMapsPolyline = (function () {\n function GoogleMapsPolyline(_objectInstance) {\n this._objectInstance = _objectInstance;\n }\n GoogleMapsPolyline.prototype.addEventListener = function (event) {\n var _this = this;\n return new Observable(function (observer) {\n _this._objectInstance.addEventListener(event, observer.next.bind(observer));\n return function () { return _this._objectInstance.removeEventListener(event, observer.next.bind(observer)); };\n });\n };\n GoogleMapsPolyline.prototype.getPoints = function () {\n return;\n };\n GoogleMapsPolyline.prototype.getCOlor = function () {\n return;\n };\n GoogleMapsPolyline.prototype.getWidth = function () {\n return;\n };\n GoogleMapsPolyline.prototype.getGeodesic = function () {\n return;\n };\n GoogleMapsPolyline.prototype.getZIndex = function () {\n return;\n };\n GoogleMapsPolyline.prototype.remove = function () {\n };\n GoogleMapsPolyline.prototype.setPoints = function (points) {\n };\n GoogleMapsPolyline.prototype.setColor = function (color) {\n };\n GoogleMapsPolyline.prototype.setWidth = function (width) {\n };\n GoogleMapsPolyline.prototype.setVisible = function (visible) {\n };\n GoogleMapsPolyline.prototype.setZIndex = function (zIndex) {\n };\n GoogleMapsPolyline.prototype.setGeoDesic = function (geoDesic) {\n };\n GoogleMapsPolyline.prototype.getMap = function () {\n return;\n };\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolyline.prototype, \"getPoints\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolyline.prototype, \"getCOlor\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolyline.prototype, \"getWidth\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolyline.prototype, \"getGeodesic\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolyline.prototype, \"getZIndex\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolyline.prototype, \"remove\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolyline.prototype, \"setPoints\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolyline.prototype, \"setColor\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolyline.prototype, \"setWidth\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolyline.prototype, \"setVisible\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolyline.prototype, \"setZIndex\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolyline.prototype, \"setGeoDesic\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolyline.prototype, \"getMap\", null);\n return GoogleMapsPolyline;\n}());\n/**\n * @private\n */\nexport var GoogleMapsPolygon = (function () {\n function GoogleMapsPolygon(_objectInstance) {\n this._objectInstance = _objectInstance;\n }\n GoogleMapsPolygon.prototype.addEventListener = function (event) {\n var _this = this;\n return new Observable(function (observer) {\n _this._objectInstance.addEventListener(event, observer.next.bind(observer));\n return function () { return _this._objectInstance.removeEventListener(event, observer.next.bind(observer)); };\n });\n };\n GoogleMapsPolygon.prototype.getPoints = function () {\n return;\n };\n GoogleMapsPolygon.prototype.getStrokeColor = function () {\n return;\n };\n GoogleMapsPolygon.prototype.getFillColor = function () {\n return;\n };\n GoogleMapsPolygon.prototype.getStrokeWidth = function () {\n return;\n };\n GoogleMapsPolygon.prototype.getGeodesic = function () {\n return;\n };\n GoogleMapsPolygon.prototype.getVisible = function () {\n return;\n };\n GoogleMapsPolygon.prototype.getZIndex = function () {\n return;\n };\n GoogleMapsPolygon.prototype.remove = function () {\n };\n GoogleMapsPolygon.prototype.setPoints = function (points) {\n };\n GoogleMapsPolygon.prototype.setStrokeColor = function (strokeColor) {\n };\n GoogleMapsPolygon.prototype.setFillColor = function (fillColor) {\n };\n GoogleMapsPolygon.prototype.setStrokeWidth = function (strokeWidth) {\n };\n GoogleMapsPolygon.prototype.setVisible = function (visible) {\n };\n GoogleMapsPolygon.prototype.setZIndex = function (zIndex) {\n };\n GoogleMapsPolygon.prototype.setGeodesic = function (geodesic) {\n };\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolygon.prototype, \"getPoints\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolygon.prototype, \"getStrokeColor\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolygon.prototype, \"getFillColor\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolygon.prototype, \"getStrokeWidth\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolygon.prototype, \"getGeodesic\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolygon.prototype, \"getVisible\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolygon.prototype, \"getZIndex\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolygon.prototype, \"remove\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolygon.prototype, \"setPoints\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolygon.prototype, \"setStrokeColor\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolygon.prototype, \"setFillColor\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolygon.prototype, \"setStrokeWidth\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolygon.prototype, \"setVisible\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolygon.prototype, \"setZIndex\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsPolygon.prototype, \"setGeodesic\", null);\n return GoogleMapsPolygon;\n}());\n/**\n * @private\n */\nexport var GoogleMapsTileOverlay = (function () {\n function GoogleMapsTileOverlay(_objectInstance) {\n this._objectInstance = _objectInstance;\n }\n GoogleMapsTileOverlay.prototype.getVisible = function () {\n return;\n };\n GoogleMapsTileOverlay.prototype.setVisible = function (visible) {\n };\n GoogleMapsTileOverlay.prototype.getFadeIn = function () {\n return;\n };\n GoogleMapsTileOverlay.prototype.setFadeIn = function (fadeIn) {\n };\n GoogleMapsTileOverlay.prototype.getZIndex = function () {\n return;\n };\n GoogleMapsTileOverlay.prototype.setZIndex = function (zIndex) {\n };\n GoogleMapsTileOverlay.prototype.getOpacity = function () {\n return;\n };\n GoogleMapsTileOverlay.prototype.setOpacity = function (opacity) {\n };\n GoogleMapsTileOverlay.prototype.clearTileCache = function () {\n };\n GoogleMapsTileOverlay.prototype.remove = function () {\n };\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsTileOverlay.prototype, \"getVisible\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsTileOverlay.prototype, \"setVisible\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsTileOverlay.prototype, \"getFadeIn\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsTileOverlay.prototype, \"setFadeIn\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsTileOverlay.prototype, \"getZIndex\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsTileOverlay.prototype, \"setZIndex\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsTileOverlay.prototype, \"getOpacity\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsTileOverlay.prototype, \"setOpacity\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsTileOverlay.prototype, \"clearTileCache\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsTileOverlay.prototype, \"remove\", null);\n return GoogleMapsTileOverlay;\n}());\n/**\n * @private\n */\nexport var GoogleMapsGroundOverlay = (function () {\n function GoogleMapsGroundOverlay(_objectInstance) {\n this._objectInstance = _objectInstance;\n }\n GoogleMapsGroundOverlay.prototype.setBearing = function (bearing) {\n };\n GoogleMapsGroundOverlay.prototype.getBearing = function () {\n return;\n };\n GoogleMapsGroundOverlay.prototype.setOpacity = function (opacity) {\n };\n GoogleMapsGroundOverlay.prototype.getOpacity = function () {\n return;\n };\n GoogleMapsGroundOverlay.prototype.setVisible = function (visible) {\n };\n GoogleMapsGroundOverlay.prototype.getVisible = function () {\n return;\n };\n GoogleMapsGroundOverlay.prototype.setImage = function (image) {\n };\n ;\n GoogleMapsGroundOverlay.prototype.remove = function () {\n };\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsGroundOverlay.prototype, \"setBearing\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsGroundOverlay.prototype, \"getBearing\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsGroundOverlay.prototype, \"setOpacity\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsGroundOverlay.prototype, \"getOpacity\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsGroundOverlay.prototype, \"setVisible\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsGroundOverlay.prototype, \"getVisible\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsGroundOverlay.prototype, \"setImage\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsGroundOverlay.prototype, \"remove\", null);\n return GoogleMapsGroundOverlay;\n}());\n/**\n * @private\n */\nexport var GoogleMapsKmlOverlay = (function () {\n function GoogleMapsKmlOverlay(_objectInstance) {\n this._objectInstance = _objectInstance;\n }\n GoogleMapsKmlOverlay.prototype.remove = function () {\n };\n GoogleMapsKmlOverlay.prototype.getOverlays = function () {\n return;\n };\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsKmlOverlay.prototype, \"remove\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsKmlOverlay.prototype, \"getOverlays\", null);\n return GoogleMapsKmlOverlay;\n}());\n/**\n * @private\n */\nexport var GoogleMapsLatLngBounds = (function () {\n function GoogleMapsLatLngBounds(southwestOrArrayOfLatLng, northeast) {\n this.southwestOrArrayOfLatLng = southwestOrArrayOfLatLng;\n this.northeast = northeast;\n var args = !!northeast ? [southwestOrArrayOfLatLng, northeast] : southwestOrArrayOfLatLng;\n this._objectInstance = new plugin.google.maps.LatLngBounds(args);\n }\n GoogleMapsLatLngBounds.prototype.toString = function () {\n return;\n };\n GoogleMapsLatLngBounds.prototype.toUrlValue = function (precision) {\n return;\n };\n GoogleMapsLatLngBounds.prototype.extend = function (LatLng) {\n };\n GoogleMapsLatLngBounds.prototype.contains = function (LatLng) {\n return;\n };\n GoogleMapsLatLngBounds.prototype.getCenter = function () {\n return;\n };\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsLatLngBounds.prototype, \"toString\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsLatLngBounds.prototype, \"toUrlValue\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsLatLngBounds.prototype, \"extend\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsLatLngBounds.prototype, \"contains\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsLatLngBounds.prototype, \"getCenter\", null);\n return GoogleMapsLatLngBounds;\n}());\n/**\n * @private\n */\nexport var GoogleMapsLatLng = (function () {\n function GoogleMapsLatLng(lat, lng) {\n this.lat = lat;\n this.lng = lng;\n this._objectInstance = new plugin.google.maps.LatLng(lat, lng);\n }\n GoogleMapsLatLng.prototype.equals = function (other) {\n return this.lat === other.lat && this.lng === other.lng;\n };\n GoogleMapsLatLng.prototype.toString = function () {\n return;\n };\n GoogleMapsLatLng.prototype.toUrlValue = function (precision) {\n precision = precision || 6;\n return this.lat.toFixed(precision) + ',' + this.lng.toFixed(precision);\n };\n __decorate([\n CordovaInstance({ sync: true })\n ], GoogleMapsLatLng.prototype, \"toString\", null);\n return GoogleMapsLatLng;\n}());\n/**\n * @private\n */\nexport var Geocoder = (function () {\n function Geocoder() {\n }\n /**\n * Converts position to address and vice versa\n * @param {GeocoderRequest} request Request object with either an address or a position\n * @returns {Promise<GeocoderResult[]>}\n */\n Geocoder.geocode = function (request) {\n return new Promise(function (resolve, reject) {\n if (!plugin || !plugin.google || !plugin.google.maps || !plugin.google.maps.Geocoder) {\n reject({ error: 'plugin_not_installed' });\n }\n else {\n plugin.google.maps.Geocoder.geocode(request, resolve);\n }\n });\n };\n return Geocoder;\n}());\n//# sourceMappingURL=googlemaps.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Google Analytics\n * @description\n * This plugin connects to Google's native Universal Analytics SDK\n * Prerequisites:\n * - A Cordova 3.0+ project for iOS and/or Android\n * - A Mobile App property through the Google Analytics Admin Console\n * - (Android) Google Play Services SDK installed via [Android SDK Manager](https://developer.android.com/sdk/installing/adding-packages.html)\n */\nexport var GoogleAnalytics = (function () {\n function GoogleAnalytics() {\n }\n /**\n * In your 'deviceready' handler, set up your Analytics tracker.\n * https://developers.google.com/analytics/devguides/collection/analyticsjs/\n * @param {string} id Your Google Analytics Mobile App property\n */\n GoogleAnalytics.startTrackerWithId = function (id) { return; };\n /**\n * Track a screen\n * https://developers.google.com/analytics/devguides/collection/analyticsjs/screens\n *\n * @param {string} title Screen title\n * @param {string} campaignUrl Campaign url for measuring referrals\n */\n GoogleAnalytics.trackView = function (title, campaignUrl) { return; };\n /**\n * Track an event\n * https://developers.google.com/analytics/devguides/collection/analyticsjs/events\n * @param {string} category\n * @param {string} action\n * @param {string} label\n * @param {number} value\n */\n GoogleAnalytics.trackEvent = function (category, action, label, value) { return; };\n /**\n * Track an exception\n * @param {string} description\n * @param {boolean} fatal\n */\n GoogleAnalytics.trackException = function (description, fatal) { return; };\n /**\n * Track User Timing (App Speed)\n * @param {string} category\n * @param {number} intervalInMilliseconds\n * @param {string} variable\n * @param {string} label\n */\n GoogleAnalytics.trackTiming = function (category, intervalInMilliseconds, variable, label) { return; };\n /**\n * Add a Transaction (Ecommerce)\n * https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce#addTrans\n * @param {string} id\n * @param {string} affiliation\n * @param {number} revenue\n * @param {number} tax\n * @param {number} shipping\n * @param {string} currencyCode\n */\n GoogleAnalytics.addTransaction = function (id, affiliation, revenue, tax, shipping, currencyCode) { return; };\n /**\n * Add a Transaction Item (Ecommerce)\n * https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce#addItem\n * @param {string} id\n * @param {string} name\n * @param {string} sku\n * @param {string} category\n * @param {number} price\n * @param {number} quantity\n * @param {string} currencyCode\n */\n GoogleAnalytics.addTransactionItem = function (id, name, sku, category, price, quantity, currencyCode) { return; };\n /**\n * Add a Custom Dimension\n * https://developers.google.com/analytics/devguides/platform/customdimsmets\n * @param {string} key\n * @param {string} value\n */\n GoogleAnalytics.addCustomDimension = function (key, value) { return; };\n /**\n * Set a UserId\n * https://developers.google.com/analytics/devguides/collection/analyticsjs/user-id\n * @param {string} id\n */\n GoogleAnalytics.setUserId = function (id) { };\n /**\n * Sets the app version\n * @param appVersion\n */\n GoogleAnalytics.setAppVersion = function (appVersion) { };\n /**\n * Set a anonymize Ip address\n * @param anonymize\n */\n GoogleAnalytics.setAnonymizeIp = function (anonymize) { };\n /**\n * Enabling Advertising Features in Google Analytics allows you to take advantage of Remarketing, Demographics & Interests reports, and more\n * @param allow\n */\n GoogleAnalytics.setAllowIDFACollection = function (allow) { };\n /**\n * Enable verbose logging\n */\n GoogleAnalytics.debugMode = function () { return; };\n /**\n * Enable/disable automatic reporting of uncaught exceptions\n * @param {boolean} shouldEnable\n */\n GoogleAnalytics.enableUncaughtExceptionReporting = function (shouldEnable) { return; };\n __decorate([\n Cordova()\n ], GoogleAnalytics, \"startTrackerWithId\", null);\n __decorate([\n Cordova()\n ], GoogleAnalytics, \"trackView\", null);\n __decorate([\n Cordova()\n ], GoogleAnalytics, \"trackEvent\", null);\n __decorate([\n Cordova()\n ], GoogleAnalytics, \"trackException\", null);\n __decorate([\n Cordova()\n ], GoogleAnalytics, \"trackTiming\", null);\n __decorate([\n Cordova()\n ], GoogleAnalytics, \"addTransaction\", null);\n __decorate([\n Cordova()\n ], GoogleAnalytics, \"addTransactionItem\", null);\n __decorate([\n Cordova()\n ], GoogleAnalytics, \"addCustomDimension\", null);\n __decorate([\n Cordova({ sync: true })\n ], GoogleAnalytics, \"setUserId\", null);\n __decorate([\n Cordova({ sync: true })\n ], GoogleAnalytics, \"setAppVersion\", null);\n __decorate([\n Cordova({ sync: true })\n ], GoogleAnalytics, \"setAnonymizeIp\", null);\n __decorate([\n Cordova({ sync: true })\n ], GoogleAnalytics, \"setAllowIDFACollection\", null);\n __decorate([\n Cordova({ sync: true })\n ], GoogleAnalytics, \"debugMode\", null);\n __decorate([\n Cordova()\n ], GoogleAnalytics, \"enableUncaughtExceptionReporting\", null);\n GoogleAnalytics = __decorate([\n Plugin({\n plugin: 'cordova-plugin-google-analytics',\n pluginRef: 'analytics',\n repo: 'https://github.com/danwilson/google-analytics-plugin',\n platforms: ['Android', 'iOS']\n })\n ], GoogleAnalytics);\n return GoogleAnalytics;\n}());\n//# sourceMappingURL=googleanalytics.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Hotspot\n * @description\n * @usage\n * ```typescript\n * import { Hotspot, Network } from 'ionic-native';\n *\n *\n * Hotspot.scanWifi().then((networks: Array<Network>) => {\n * console.log(networks);\n * });\n *\n * ```\n */\nexport var Hotspot = (function () {\n function Hotspot() {\n }\n Hotspot.isAvailable = function () { return; };\n Hotspot.toggleWifi = function () { return; };\n /**\n * Configures and starts hotspot with SSID and Password\n *\n * @param {string} SSID - SSID of your new Access Point\n * @param {string} mode - encryption mode (Open, WEP, WPA, WPA_PSK)\n * @param {string} password - password for your new Access Point\n *\n * @return {Promise<void>} - Promise to call once hotspot is started, or reject upon failure\n */\n Hotspot.createHotspot = function (ssid, mode, password) { return; };\n /**\n * Turns on Access Point\n *\n * @return {Promise<boolean>} - true if AP is started\n */\n Hotspot.startHotspot = function () { return; };\n /**\n * Configures hotspot with SSID and Password\n *\n * @param {string} SSID - SSID of your new Access Point\n * @param {string} mode - encryption mode (Open, WEP, WPA, WPA_PSK)\n * @param {string} password - password for your new Access Point\n *\n * @return {Promise<void>} - Promise to call when hotspot is configured, or reject upon failure\n */\n Hotspot.configureHotspot = function (ssid, mode, password) { return; };\n /**\n * Turns off Access Point\n *\n * @return {Promise<boolean>} - Promise to turn off the hotspot, true on success, false on failure\n */\n Hotspot.stopHotspot = function () { return; };\n /**\n * Checks if hotspot is enabled\n *\n * @return {Promise<void>} - Promise that hotspot is enabled, rejected if it is not enabled\n */\n Hotspot.isHotspotEnabled = function () { return; };\n Hotspot.getAllHotspotDevices = function () { return; };\n /**\n * Connect to a WiFi network\n *\n * @param {string} ssid\n * SSID to connect\n * @param {string} password\n * password to use\n *\n * @return {Promise<void>}\n * Promise that connection to the WiFi network was successfull, rejected if unsuccessful\n */\n Hotspot.connectToWifi = function (ssid, password) { return; };\n /**\n * Connect to a WiFi network\n *\n * @param {string} ssid\n * SSID to connect\n * @param {string} password\n * Password to use\n * @param {string} authentication\n * Authentication modes to use (LEAP, SHARED, OPEN)\n * @param {string[]} encryption\n * Encryption modes to use (CCMP, TKIP, WEP104, WEP40)\n *\n * @return {Promise<void>}\n * Promise that connection to the WiFi network was successfull, rejected if unsuccessful\n */\n Hotspot.connectToWifiAuthEncrypt = function (ssid, password, authentication, encryption) { return; };\n /**\n * Add a WiFi network\n *\n * @param {string} ssid\n * SSID of network\n * @param {string} mode\n * Authentication mode of (Open, WEP, WPA, WPA_PSK)\n * @param {string} password\n * Password for network\n *\n * @return {Promise<void>}\n * Promise that adding the WiFi network was successfull, rejected if unsuccessful\n */\n Hotspot.addWifiNetwork = function (ssid, mode, password) { return; };\n /**\n * Remove a WiFi network\n *\n * @param {string} ssid\n * SSID of network\n *\n * @return {Promise<void>}\n * Promise that removing the WiFi network was successfull, rejected if unsuccessful\n */\n Hotspot.removeWifiNetwork = function (ssid) { return; };\n Hotspot.isConnectedToInternet = function () { return; };\n Hotspot.isConnectedToInternetViaWifi = function () { return; };\n Hotspot.isWifiOn = function () { return; };\n Hotspot.isWifiSupported = function () { return; };\n Hotspot.isWifiDirectSupported = function () { return; };\n Hotspot.scanWifi = function () { return; };\n Hotspot.scanWifiByLevel = function () { return; };\n Hotspot.startWifiPeriodicallyScan = function (interval, duration) { return; };\n Hotspot.stopWifiPeriodicallyScan = function () { return; };\n Hotspot.getNetConfig = function () { return; };\n Hotspot.getConnectionInfo = function () { return; };\n Hotspot.pingHost = function (ip) { return; };\n /**\n * Gets MAC Address associated with IP Address from ARP File\n *\n * @param {string} ip - IP Address that you want the MAC Address of\n *\n * @return {Promise<string>} - A Promise for the MAC Address\n */\n Hotspot.getMacAddressOfHost = function (ip) { return; };\n /**\n * Checks if IP is live using DNS\n *\n * @param {string} ip - IP Address you want to test\n *\n * @return {Promise<boolean>} - A Promise for whether the IP Address is reachable\n */\n Hotspot.isDnsLive = function (ip) { return; };\n /**\n * Checks if IP is live using socket And PORT\n *\n * @param {string} ip - IP Address you want to test\n *\n * @return {Promise<boolean>} - A Promise for whether the IP Address is reachable\n */\n Hotspot.isPortLive = function (ip) { return; };\n /**\n * Checks if device is rooted\n *\n * @return {Promise<boolean>} - A Promise for whether the device is rooted\n */\n Hotspot.isRooted = function () { return; };\n __decorate([\n Cordova()\n ], Hotspot, \"isAvailable\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"toggleWifi\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"createHotspot\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"startHotspot\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"configureHotspot\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"stopHotspot\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"isHotspotEnabled\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"getAllHotspotDevices\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"connectToWifi\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"connectToWifiAuthEncrypt\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"addWifiNetwork\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"removeWifiNetwork\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"isConnectedToInternet\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"isConnectedToInternetViaWifi\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"isWifiOn\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"isWifiSupported\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"isWifiDirectSupported\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"scanWifi\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"scanWifiByLevel\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"startWifiPeriodicallyScan\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"stopWifiPeriodicallyScan\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"getNetConfig\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"getConnectionInfo\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"pingHost\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"getMacAddressOfHost\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"isDnsLive\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"isPortLive\", null);\n __decorate([\n Cordova()\n ], Hotspot, \"isRooted\", null);\n Hotspot = __decorate([\n Plugin({\n plugin: 'cordova-plugin-hotspot',\n pluginRef: 'cordova.plugins.hotspot',\n repo: 'https://github.com/hypery2k/cordova-hotspot-plugin',\n platforms: ['Android']\n })\n ], Hotspot);\n return Hotspot;\n}());\n//# sourceMappingURL=hotspot.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Httpd\n * @description\n * Embedded httpd for Cordova apps. Light weight HTTP server.\n * @usage\n * ```typescript\n * import {Httpd, HttpdOptions} from 'ionic-native';\n *\n * let options: HttpdOptions = {\n * www_root: 'httpd_root', // relative path to app's www directory\n * port: 80,\n * localhost_only: false\n * };\n *\n * Httpd.startServer(options).subscribe((data) => {\n * console.log('Server is live');\n * });\n *\n * ```\n */\nexport var Httpd = (function () {\n function Httpd() {\n }\n /**\n * Starts a web server.\n * @returns {Observable<string>} Returns an Observable. Subscribe to receive the URL for your web server (if succeeded). Unsubscribe to stop the server.\n * @param options {HttpdOptions}\n */\n Httpd.startServer = function (options) { return; };\n /**\n * Gets the URL of the running server\n * @returns {Promise<string>} Returns a promise that resolves with the URL of the web server.\n */\n Httpd.getUrl = function () { return; };\n /**\n * Get the local path of the running webserver\n * @returns {Promise<string>} Returns a promise that resolves with the local path of the web server.\n */\n Httpd.getLocalPath = function () { return; };\n __decorate([\n Cordova({\n observable: true,\n clearFunction: 'stopServer'\n })\n ], Httpd, \"startServer\", null);\n __decorate([\n Cordova()\n ], Httpd, \"getUrl\", null);\n __decorate([\n Cordova()\n ], Httpd, \"getLocalPath\", null);\n Httpd = __decorate([\n Plugin({\n plugin: 'https://github.com/floatinghotpot/cordova-httpd.git',\n pluginRef: 'cordova.plugins.CorHttpd',\n repo: 'https://github.com/floatinghotpot/cordova-httpd',\n platforms: ['iOS', 'Android']\n })\n ], Httpd);\n return Httpd;\n}());\n//# sourceMappingURL=httpd.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\nimport { Observable } from 'rxjs/Observable';\n/**\n * @name IBeacon\n * @description\n * This plugin provides functions for working with iBeacons.\n *\n * The plugin's API closely mimics the one exposed through the [CLLocationManager](https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/index.html) introduced in iOS 7.\n *\n * @usage\n *\n * ```typescript\n * import { IBeacon } from 'ionic-native';\n *\n *\n * // Request permission to use location on iOS\n * IBeacon.requestAlwaysAuthorization();\n * // create a new delegate and register it with the native layer\n * let delegate = IBeacon.Delegate();\n *\n * // Subscribe to some of the delegate's event handlers\n * delegate.didRangeBeaconsInRegion()\n * .subscribe(\n * data => console.log('didRangeBeaconsInRegion: ', data),\n * error => console.error();\n * );\n * delegate.didStartMonitoringForRegion()\n * .subscribe(\n * data => console.log('didStartMonitoringForRegion: ', data),\n * error => console.error();\n * );\n * delegate.didEnterRegion()\n * .subscribe(\n * data => {\n * console.log('didEnterRegion: ', data);\n * }\n * );\n *\n * let beaconRegion = IBeacon.BeaconRegion('deskBeacon','F7826DA6-ASDF-ASDF-8024-BC5B71E0893E');\n *\n * IBeacon.startMonitoringForRegion(beaconRegion)\n * .then(\n * () => console.log('Native layer recieved the request to monitoring'),\n * error => console.error('Native layer failed to begin monitoring: ', error)\n * );\n * ```\n */\nexport var IBeacon = (function () {\n function IBeacon() {\n }\n /**\n * Instances of this class are delegates between the {@link LocationManager} and\n * the code that consumes the messages generated on in the native layer.\n *\n * @returns {Delegate} An instance of the type {@type Delegate}.\n */\n IBeacon.Delegate = function () {\n var delegate = new cordova.plugins.locationManager.Delegate();\n delegate.didChangeAuthorizationStatus = function (pluginResult) {\n return new Observable(function (observer) {\n var cb = function (data) { return observer.next(data); };\n return delegate.didChangeAuthorizationStatus = cb;\n });\n };\n delegate.didDetermineStateForRegion = function (pluginResult) {\n return new Observable(function (observer) {\n var cb = function (data) { return observer.next(data); };\n return delegate.didDetermineStateForRegion = cb;\n });\n };\n delegate.didEnterRegion = function (pluginResult) {\n return new Observable(function (observer) {\n var cb = function (data) { return observer.next(data); };\n return delegate.didEnterRegion = cb;\n });\n };\n delegate.didExitRegion = function (pluginResult) {\n return new Observable(function (observer) {\n var cb = function (data) { return observer.next(data); };\n return delegate.didExitRegion = cb;\n });\n };\n delegate.didRangeBeaconsInRegion = function (pluginResult) {\n return new Observable(function (observer) {\n var cb = function (data) { return observer.next(data); };\n return delegate.didRangeBeaconsInRegion = cb;\n });\n };\n delegate.didStartMonitoringForRegion = function (pluginResult) {\n return new Observable(function (observer) {\n var cb = function (data) { return observer.next(data); };\n return delegate.didStartMonitoringForRegion = cb;\n });\n };\n delegate.monitoringDidFailForRegionWithError = function (pluginResult) {\n return new Observable(function (observer) {\n var cb = function (data) { return observer.next(data); };\n return delegate.monitoringDidFailForRegionWithError = cb;\n });\n };\n delegate.peripheralManagerDidStartAdvertising = function (pluginResult) {\n return new Observable(function (observer) {\n var cb = function (data) { return observer.next(data); };\n return delegate.peripheralManagerDidStartAdvertising = cb;\n });\n };\n delegate.peripheralManagerDidUpdateState = function (pluginResult) {\n return new Observable(function (observer) {\n var cb = function (data) { return observer.next(data); };\n return delegate.peripheralManagerDidUpdateState = cb;\n });\n };\n cordova.plugins.locationManager.setDelegate(delegate);\n return delegate;\n };\n /**\n * Creates a new BeaconRegion\n *\n * @param {String} identifier @see {CLRegion}\n * @param {String} uuid The proximity ID of the beacon being targeted.\n * This value must not be blank nor invalid as a UUID.\n * @param {Number} major The major value that you use to identify one or more beacons.\n * @param {Number} minor The minor value that you use to identify a specific beacon.\n * @param {BOOL} notifyEntryStateOnDisplay\n *\n * @return Returns the BeaconRegion that was created\n */\n IBeacon.BeaconRegion = function (identifer, uuid, major, minor, notifyEntryStateOnDisplay) {\n return new cordova.plugins.locationManager.BeaconRegion(identifer, uuid, major, minor, notifyEntryStateOnDisplay);\n };\n /**\n * @return Returns the Delegate\n */\n IBeacon.getDelegate = function () { return; };\n /**\n * @param {Delegate} delegate An instance of a delegate to register with the native layer.\n *\n * @return Returns the Delegate\n */\n IBeacon.setDelegate = function (delegate) { return; };\n /**\n * Signals the native layer that the client side is ready to consume messages.\n * Readiness here means that it has a {Delegate} set by the consumer javascript\n * code.\n *\n * The {LocationManager.setDelegate()} will implicitly call this method as well,\n * therefore the only case when you have to call this manually is if you don't\n * wish to specify a {Delegate} of yours.\n *\n * The purpose of this signaling mechanism is to make the events work when the\n * app is being woken up by the Operating System to give it a chance to handle\n * region monitoring events for example.\n *\n * If you don't set a {Delegate} and don't call this method manually, an error\n * message get emitted in the native runtime and the DOM as well after a certain\n * period of time.\n *\n * @return Returns a promise which is resolved as soon as the\n * native layer acknowledged the request and started to send events.\n */\n IBeacon.onDomDelegateReady = function () { return; };\n /**\n * Determines if bluetooth is switched on, according to the native layer.\n * @returns Returns a promise which is resolved with a {Boolean}\n * indicating whether bluetooth is active.\n */\n IBeacon.isBluetoothEnabled = function () { return; };\n /**\n * Enables Bluetooth using the native Layer. (ANDROID ONLY)\n *\n * @returns Returns a promise which is resolved when Bluetooth\n * could be enabled. If not, the promise will be rejected with an error.\n */\n IBeacon.enableBluetooth = function () { return; };\n /**\n * Disables Bluetooth using the native Layer. (ANDROID ONLY)\n *\n * @returns Returns a promise which is resolved when Bluetooth\n * could be enabled. If not, the promise will be rejected with an error.\n */\n IBeacon.disableBluetooth = function () { return; };\n /**\n * Start monitoring the specified region.\n *\n * If a region of the same type with the same identifier is already being\n * monitored for this application,\n * it will be removed from monitoring. For circular regions, the region\n * monitoring service will prioritize\n * regions by their size, favoring smaller regions over larger regions.\n *\n * This is done asynchronously and may not be immediately reflected in monitoredRegions.\n *\n * @param {Region} region An instance of {Region} which will be monitored\n * by the operating system.\n *\n * @return Returns a promise which is resolved as soon as the\n * native layer acknowledged the dispatch of the monitoring request.\n */\n IBeacon.startMonitoringForRegion = function (region) { return; };\n /**\n * Stop monitoring the specified region. It is valid to call\n * stopMonitoringForRegion: for a region that was registered for monitoring\n * with a different location manager object, during this or previous\n * launches of your application.\n *\n * This is done asynchronously and may not be immediately reflected in monitoredRegions.\n *\n * @param {Region} region An instance of {Region} which will be monitored\n * by the operating system.\n *\n * @return Returns a promise which is resolved as soon as the\n * native layer acknowledged the dispatch of the request to stop monitoring.\n */\n IBeacon.stopMonitoringForRegion = function (region) { return; };\n /**\n * Request state the for specified region. When result is ready\n * didDetermineStateForRegion is triggered. This can be any region,\n * also those which is not currently monitored.\n *\n * This is done asynchronously and may not be immediately reflected in monitoredRegions.\n *\n * @param {Region} region An instance of {Region} which will be monitored\n * by the operating system.\n *\n * @return Returns a promise which is resolved as soon as the\n * native layer acknowledged the dispatch of the request to stop monitoring.\n */\n IBeacon.requestStateForRegion = function (region) { return; };\n /**\n * Start ranging the specified beacon region.\n *\n * If a region of the same type with the same identifier is already being\n * monitored for this application, it will be removed from monitoring.\n *\n * This is done asynchronously and may not be immediately reflected in rangedRegions.\n *\n * @param {Region} region An instance of {BeaconRegion} which will be monitored\n * by the operating system.\n *\n * @return Returns a promise which is resolved as soon as the\n * native layer acknowledged the dispatch of the monitoring request.\n */\n IBeacon.startRangingBeaconsInRegion = function (region) { return; };\n /**\n * Stop ranging the specified region. It is valid to call\n * stopMonitoringForRegion: for a region that was registered for ranging\n * with a different location manager object, during this or previous\n * launches of your application.\n *\n * This is done asynchronously and may not be immediately reflected in rangedRegions.\n *\n * @param {Region} region An instance of {BeaconRegion} which will be monitored\n * by the operating system.\n *\n * @return Returns a promise which is resolved as soon as the\n * native layer acknowledged the dispatch of the request to stop monitoring.\n */\n IBeacon.stopRangingBeaconsInRegion = function (region) { return; };\n /**\n * Queries the native layer to determine the current authorization in effect.\n *\n * @returns Returns a promise which is resolved with the\n * requested authorization status.\n */\n IBeacon.getAuthorizationStatus = function () { return; };\n /**\n * For iOS 8 and above only. The permission model has changed by Apple in iOS 8, making it necessary for apps to\n * explicitly request permissions via methods like these:\n * <a href=\"https://developer.apple.com/library/prerelease/iOS/documentation/CoreLocation/Reference/CLLocationManager_Class/index.html#//apple_ref/occ/instm/CLLocationManager/requestWhenInUseAuthorization\">requestWhenInUseAuthorization</a>\n * <a href=\"https://developer.apple.com/library/prerelease/iOS/documentation/CoreLocation/Reference/CLLocationManager_Class/index.html#//apple_ref/occ/instm/CLLocationManager/requestAlwaysAuthorization\">requestAlwaysAuthorization</a>\n *\n * If you are using this plugin on Android devices only, you will never have to use this, nor {@code requestAlwaysAuthorization}\n * @returns Returns a promise that is resolved when the request dialog is shown.\n */\n IBeacon.requestWhenInUseAuthorization = function () { return; };\n /**\n * See the docuemntation of {@code requestWhenInUseAuthorization} for further details.\n *\n * @returns Returns a promise which is resolved when the native layer\n * shows the request dialog.\n */\n IBeacon.requestAlwaysAuthorization = function () { return; };\n /**\n *\n * @returns Returns a promise which is resolved with an {Array}\n * of {Region} instances that are being monitored by the native layer.\n */\n IBeacon.getMonitoredRegions = function () { return; };\n /**\n *\n * @returns Returns a promise which is resolved with an {Array}\n * of {Region} instances that are being ranged by the native layer.\n */\n IBeacon.getRangedRegions = function () { return; };\n /**\n * Determines if ranging is available or not, according to the native layer.\n * @returns Returns a promise which is resolved with a {Boolean}\n * indicating whether ranging is available or not.\n */\n IBeacon.isRangingAvailable = function () { return; };\n /**\n * Determines if region type is supported or not, according to the native layer.\n *\n * @param {Region} region An instance of {Region} which will be checked\n * by the operating system.\n *\n * @returns Returns a promise which is resolved with a {Boolean}\n * indicating whether the region type is supported or not.\n */\n IBeacon.isMonitoringAvailableForClass = function (region) { return; };\n /**\n * Start advertising the specified region.\n *\n * If a region a different identifier is already being advertised for\n * this application, it will be replaced with the new identifier.\n *\n * This call will accept a valid beacon even when no BlueTooth is available,\n * and will start when BlueTooth is powered on. See {Delegate.}\n *\n * @param {Region} region An instance of {Region} which will be advertised\n * by the operating system.\n * @param {Integer} measuredPower: Optional parameter, if left empty, the device will\n * use it's own default value.\n *\n * @return Returns a promise which is resolved as soon as the\n * native layer acknowledged the dispatch of the advertising request.\n */\n IBeacon.startAdvertising = function (region, measuredPower) { return; };\n /**\n * Stop advertising as a beacon.\n *\n * This is done asynchronously and may not be immediately reflected in isAdvertising.\n *\n * @return Returns a promise which is resolved as soon as the\n * native layer acknowledged the dispatch of the request to stop advertising.\n */\n IBeacon.stopAdvertising = function (region) { return; };\n /**\n * Determines if advertising is available or not, according to the native layer.\n * @returns Returns a promise which is resolved with a {Boolean}\n * indicating whether advertising is available or not.\n */\n IBeacon.isAdvertisingAvailable = function () { return; };\n /**\n * Determines if advertising is currently active, according to the native layer.\n * @returns Returns a promise which is resolved with a {Boolean}\n * indicating whether advertising is active.\n */\n IBeacon.isAdvertising = function () { return; };\n /**\n * Disables debug logging in the native layer. Use this method if you want\n * to prevent this plugin from writing to the device logs.\n *\n * @returns Returns a promise which is resolved as soon as the\n * native layer has set the logging level accordingly.\n */\n IBeacon.disableDebugLogs = function () { return; };\n /**\n * Enables the posting of debug notifications in the native layer. Use this method if you want\n * to allow the plugin the posting local notifications.\n * This can be very helpful when debugging how to apps behave when launched into the background.\n *\n * @returns Returns a promise which is resolved as soon as the\n * native layer has set the flag to enabled.\n */\n IBeacon.enableDebugNotifications = function () { return; };\n /**\n * Disables the posting of debug notifications in the native layer. Use this method if you want\n * to prevent the plugin from posting local notifications.\n *\n * @returns Returns a promise which is resolved as soon as the\n * native layer has set the flag to disabled.\n */\n IBeacon.disableDebugNotifications = function () { return; };\n /**\n * Enables debug logging in the native layer. Use this method if you want\n * a debug the inner workings of this plugin.\n *\n * @returns Returns a promise which is resolved as soon as the\n * native layer has set the logging level accordingly.\n */\n IBeacon.enableDebugLogs = function () { return; };\n /**\n * Appends the provided [message] to the device logs.\n * Note: If debug logging is turned off, this won't do anything.\n *\n * @param {String} message The message to append to the device logs.\n *\n * @returns Returns a promise which is resolved with the log\n * message received by the native layer for appending. The returned message\n * is expected to be equivalent to the one provided in the original call.\n */\n IBeacon.appendToDeviceLog = function (message) { return; };\n __decorate([\n Cordova()\n ], IBeacon, \"getDelegate\", null);\n __decorate([\n Cordova()\n ], IBeacon, \"setDelegate\", null);\n __decorate([\n Cordova({ otherPromise: true })\n ], IBeacon, \"onDomDelegateReady\", null);\n __decorate([\n Cordova({ otherPromise: true })\n ], IBeacon, \"isBluetoothEnabled\", null);\n __decorate([\n Cordova({ otherPromise: true })\n ], IBeacon, \"enableBluetooth\", null);\n __decorate([\n Cordova({ otherPromise: true })\n ], IBeacon, \"disableBluetooth\", null);\n __decorate([\n Cordova({ otherPromise: true })\n ], IBeacon, \"startMonitoringForRegion\", null);\n __decorate([\n Cordova({ otherPromise: true })\n ], IBeacon, \"stopMonitoringForRegion\", null);\n __decorate([\n Cordova({ otherPromise: true })\n ], IBeacon, \"requestStateForRegion\", null);\n __decorate([\n Cordova({ otherPromise: true })\n ], IBeacon, \"startRangingBeaconsInRegion\", null);\n __decorate([\n Cordova({ otherPromise: true })\n ], IBeacon, \"stopRangingBeaconsInRegion\", null);\n __decorate([\n Cordova({ otherPromise: true })\n ], IBeacon, \"getAuthorizationStatus\", null);\n __decorate([\n Cordova({ otherPromise: true })\n ], IBeacon, \"requestWhenInUseAuthorization\", null);\n __decorate([\n Cordova({ otherPromise: true })\n ], IBeacon, \"requestAlwaysAuthorization\", null);\n __decorate([\n Cordova({ otherPromise: true })\n ], IBeacon, \"getMonitoredRegions\", null);\n __decorate([\n Cordova({ otherPromise: true })\n ], IBeacon, \"getRangedRegions\", null);\n __decorate([\n Cordova({ otherPromise: true })\n ], IBeacon, \"isRangingAvailable\", null);\n __decorate([\n Cordova({ otherPromise: true })\n ], IBeacon, \"isMonitoringAvailableForClass\", null);\n __decorate([\n Cordova({ otherPromise: true })\n ], IBeacon, \"startAdvertising\", null);\n __decorate([\n Cordova({ otherPromise: true })\n ], IBeacon, \"stopAdvertising\", null);\n __decorate([\n Cordova({ otherPromise: true })\n ], IBeacon, \"isAdvertisingAvailable\", null);\n __decorate([\n Cordova({ otherPromise: true })\n ], IBeacon, \"isAdvertising\", null);\n __decorate([\n Cordova({ otherPromise: true })\n ], IBeacon, \"disableDebugLogs\", null);\n __decorate([\n Cordova({ otherPromise: true })\n ], IBeacon, \"enableDebugNotifications\", null);\n __decorate([\n Cordova({ otherPromise: true })\n ], IBeacon, \"disableDebugNotifications\", null);\n __decorate([\n Cordova({ otherPromise: true })\n ], IBeacon, \"enableDebugLogs\", null);\n __decorate([\n Cordova({ otherPromise: true })\n ], IBeacon, \"appendToDeviceLog\", null);\n IBeacon = __decorate([\n Plugin({\n plugin: 'cordova-plugin-ibeacon',\n pluginRef: 'cordova.plugins.locationManager',\n repo: 'https://github.com/petermetz/cordova-plugin-ibeacon',\n platforms: ['Android', 'iOS']\n })\n ], IBeacon);\n return IBeacon;\n}());\n//# sourceMappingURL=ibeacon.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Image Picker\n * @description\n * Cordova Plugin For Multiple Image Selection\n *\n * Requires Cordova plugin: `cordova-plugin-image-picker`.\n * For more info, please see the https://github.com/wymsee/cordova-imagePicker\n *\n * @usage\n * ```typescript\n * import { ImagePicker } from 'ionic-native';\n *\n *\n *\n * ImagePicker.getPictures(options).then((results) => {\n * for (var i = 0; i < results.length; i++) {\n * console.log('Image URI: ' + results[i]);\n * }\n * }, (err) => { });\n * ```\n */\nexport var ImagePicker = (function () {\n function ImagePicker() {\n }\n /**\n * Pick pictures from the library.\n * @param {ImagePickerOptions} options\n * @return Returns a Promise that resolves the image file URI\n * otherwise rejects with an error.\n */\n ImagePicker.getPictures = function (options) { return; };\n __decorate([\n Cordova({\n callbackOrder: 'reverse'\n })\n ], ImagePicker, \"getPictures\", null);\n ImagePicker = __decorate([\n Plugin({\n plugin: 'cordova-plugin-image-picker',\n pluginRef: 'window.imagePicker',\n repo: 'https://github.com/wymsee/cordova-imagePicker'\n })\n ], ImagePicker);\n return ImagePicker;\n}());\n//# sourceMappingURL=imagepicker.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name ImageResizer\n * @description\n * Cordova Plugin For Image Resize\n *\n * Requires plugin `info.protonet.imageresizer` - use the Ionic CLI and type in the following command:\n * `ionic plugin add https://github.com/protonet/cordova-plugin-image-resizer.git`\n *\n * For more info, please see the https://github.com/protonet/cordova-plugin-image-resizer\n *\n * @usage\n * ```typescript\n * import { ImageResizer, ImageResizerOptions } from 'ionic-native';\n *\n * let options = {\n * uri: uri,\n * folderName: 'Protonet',\n * quality: 90,\n * width: 1280,\n * height: 1280\n * } as ImageResizerOptions;\n *\n * ImageResizer\n * .resize(options)\n * .then(\n * (filePath: string) => { console.log('FilePath', filePath); },\n * () => { console.log('Error occured'); }\n * )\n * ```\n */\nexport var ImageResizer = (function () {\n function ImageResizer() {\n }\n ImageResizer.resize = function (options) { return; };\n __decorate([\n Cordova()\n ], ImageResizer, \"resize\", null);\n ImageResizer = __decorate([\n Plugin({\n plugin: 'https://github.com/protonet/cordova-plugin-image-resizer.git',\n pluginRef: 'ImageResizer',\n repo: 'https://github.com/protonet/cordova-plugin-image-resizer'\n })\n ], ImageResizer);\n return ImageResizer;\n}());\n//# sourceMappingURL=imageresizer.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Plugin, CordovaInstance } from './plugin';\nimport { Observable } from 'rxjs/Observable';\n/**\n * @name InAppBrowser\n * @description Launches in app Browser\n * @usage\n * ```typescript\n * import {InAppBrowser} from 'ionic-native';\n *\n *\n * ...\n *\n *\n * let browser = new InAppBrowser('https://ionic.io', '_system');\n * browser.executeScript(...);\n * browser.insertCSS(...);\n * browser.close();\n * ```\n */\nexport var InAppBrowser = (function () {\n /**\n * Opens a URL in a new InAppBrowser instance, the current browser instance, or the system browser.\n * @param url The URL to load.\n * @param target The target in which to load the URL, an optional parameter that defaults to _self.\n * @param options Options for the InAppBrowser. Optional, defaulting to: location=yes.\n * The options string must not contain any blank space, and each feature's\n * name/value pairs must be separated by a comma. Feature names are case insensitive.\n */\n function InAppBrowser(url, target, options) {\n try {\n this._objectInstance = cordova.InAppBrowser.open(url, target, options);\n }\n catch (e) {\n window.open(url);\n console.warn('Native: InAppBrowser is not installed or you are running on a browser. Falling back to window.open, all instance methods will NOT work.');\n }\n }\n InAppBrowser.open = function (url, target, options) {\n console.warn('Native: Your current usage of the InAppBrowser plugin is depreciated as of ionic-native@1.3.8. Please check the Ionic Native docs for the latest usage details.');\n };\n /**\n * Displays an InAppBrowser window that was opened hidden. Calling this has no effect\n * if the InAppBrowser was already visible.\n */\n InAppBrowser.prototype.show = function () { };\n /**\n * Closes the InAppBrowser window.\n */\n InAppBrowser.prototype.close = function () { };\n /**\n * Injects JavaScript code into the InAppBrowser window.\n * @param script Details of the script to run, specifying either a file or code key.\n */\n InAppBrowser.prototype.executeScript = function (script) { return; };\n /**\n * Injects CSS into the InAppBrowser window.\n * @param css Details of the script to run, specifying either a file or code key.\n */\n InAppBrowser.prototype.insertCss = function (css) { return; };\n /**\n * A method that allows you to listen to events happening in the browser.\n * @param event Event name\n * @returns {Observable<any>} Returns back an observable that will listen to the event on subscribe, and will stop listening to the event on unsubscribe.\n */\n InAppBrowser.prototype.on = function (event) {\n var _this = this;\n return new Observable(function (observer) {\n _this._objectInstance.addEventListener(event, observer.next.bind(observer));\n return function () { return _this._objectInstance.removeEventListener(event, observer.next.bind(observer)); };\n });\n };\n __decorate([\n CordovaInstance({ sync: true })\n ], InAppBrowser.prototype, \"show\", null);\n __decorate([\n CordovaInstance({ sync: true })\n ], InAppBrowser.prototype, \"close\", null);\n __decorate([\n CordovaInstance()\n ], InAppBrowser.prototype, \"executeScript\", null);\n __decorate([\n CordovaInstance()\n ], InAppBrowser.prototype, \"insertCss\", null);\n InAppBrowser = __decorate([\n Plugin({\n plugin: 'cordova-plugin-inappbrowser',\n pluginRef: 'cordova.InAppBrowser',\n repo: 'https://github.com/apache/cordova-plugin-inappbrowser'\n })\n ], InAppBrowser);\n return InAppBrowser;\n}());\n//# sourceMappingURL=inappbrowser.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Plugin, Cordova } from './plugin';\n/**\n * @name InAppPurchase\n * @description\n * A lightweight Cordova plugin for in app purchases on iOS/Android.\n *\n * @usage\n * ```ts\n * import {InAppPurchase} from 'ionic-native';\n *\n * InAppPurchase\n * .getProducts(['com.yourapp.prod1', 'com.yourapp.prod2', ...])\n * .then((products) => {\n * console.log(products);\n * // [{ productId: 'com.yourapp.prod1', 'title': '...', description: '...', price: '...' }, ...]\n * })\n * .catch((err) => {\n * console.log(err);\n * });\n *\n *\n * InAppPurchase\n * .buy('com.yourapp.prod1')\n * .then((data)=> {\n * console.log(data);\n * // {\n * // transactionId: ...\n * // receipt: ...\n * // signature: ...\n * // }\n * })\n * .catch((err)=> {\n * console.log(err);\n * });\n *\n * ```\n *\n * @advanced\n *\n * ```ts\n * // fist buy the product...\n * InAppPurchase\n * .buy('com.yourapp.consumable_prod1')\n * .then(data => InAppPurchase.consume(data.productType, data.receipt, data.signature))\n * .then(() => console.log('product was successfully consumed!'))\n * .catch( err=> console.log(err))\n * ```\n *\n *\n */\nexport var InAppPurchase = (function () {\n function InAppPurchase() {\n }\n /**\n * Retrieves a list of full product data from Apple/Google. This method must be called before making purchases.\n * @param {array<string>} productId an array of product ids.\n * @returns {Promise} Returns a Promise that resolves with an array of objects.\n */\n InAppPurchase.getProducts = function (productId) { return; };\n /**\n * Buy a product that matches the productId.\n * @param {string} productId A string that matches the product you want to buy.\n * @returns {Promise} Returns a Promise that resolves with the transaction details.\n */\n InAppPurchase.buy = function (productId) { return; };\n /**\n * Same as buy, but for subscription based products.\n * @param {string} productId A string that matches the product you want to subscribe to.\n * @returns {Promise} Returns a Promise that resolves with the transaction details.\n */\n InAppPurchase.subscribe = function (productId) { return; };\n /**\n * Call this function after purchasing a \"consumable\" product to mark it as consumed. On Android, you must consume products that you want to let the user purchase multiple times. If you will not consume the product after a purchase, the next time you will attempt to purchase it you will get the error message:\n * @param {string} productType\n * @param {string} receipt\n * @param {string} signature\n */\n InAppPurchase.consume = function (productType, receipt, signature) { return; };\n /**\n * Restore all purchases from the store\n * @returns {Promise} Returns a promise with an array of purchases.\n */\n InAppPurchase.restorePurchases = function () { return; };\n /**\n * Get the receipt.\n * @returns {Promise<string>} Returns a promise that contains the string for the receipt\n */\n InAppPurchase.getReceipt = function () { return; };\n __decorate([\n Cordova({\n otherPromise: true\n })\n ], InAppPurchase, \"getProducts\", null);\n __decorate([\n Cordova({\n otherPromise: true\n })\n ], InAppPurchase, \"buy\", null);\n __decorate([\n Cordova({\n otherPromise: true\n })\n ], InAppPurchase, \"subscribe\", null);\n __decorate([\n Cordova({\n otherPromise: true\n })\n ], InAppPurchase, \"consume\", null);\n __decorate([\n Cordova({\n otherPromise: true\n })\n ], InAppPurchase, \"restorePurchases\", null);\n __decorate([\n Cordova({\n otherPromise: true,\n platforms: ['iOS']\n })\n ], InAppPurchase, \"getReceipt\", null);\n InAppPurchase = __decorate([\n Plugin({\n plugin: 'cordova-plugin-inapppurchase',\n pluginRef: 'inAppPurchase',\n platforms: ['Android', 'iOS'],\n repo: 'https://github.com/AlexDisler/cordova-plugin-inapppurchase'\n })\n ], InAppPurchase);\n return InAppPurchase;\n}());\n//# sourceMappingURL=inapppurchase.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Insomnia\n * @description\n * Prevent the screen of the mobile device from falling asleep.\n *\n * @usage\n * ```typescript\n * import { Insomnia } from 'ionic-native';\n *\n *\n * Insomnia.keepAwake()\n * .then(\n * () => console.log('success'),\n * () => console.log('error')\n * );\n *\n * Insomnia.allowSleepAgain()\n * .then(\n * () => console.log('success'),\n * () => console.log('error')\n * );\n * ```\n *\n */\nexport var Insomnia = (function () {\n function Insomnia() {\n }\n /**\n * Keeps awake the application\n * @returns {Promise}\n */\n Insomnia.keepAwake = function () { return; };\n /**\n * Allows the application to sleep again\n * @returns {Promise}\n */\n Insomnia.allowSleepAgain = function () { return; };\n __decorate([\n Cordova()\n ], Insomnia, \"keepAwake\", null);\n __decorate([\n Cordova()\n ], Insomnia, \"allowSleepAgain\", null);\n Insomnia = __decorate([\n Plugin({\n plugin: 'https://github.com/EddyVerbruggen/Insomnia-PhoneGap-Plugin.git',\n pluginRef: 'plugins.insomnia',\n repo: 'https://github.com/EddyVerbruggen/Insomnia-PhoneGap-Plugin',\n platforms: ['Android', 'iOS', 'Windows Phone 8']\n })\n ], Insomnia);\n return Insomnia;\n}());\n//# sourceMappingURL=insomnia.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Plugin, Cordova } from './plugin';\n/**\n * @name Instagram\n * @description Share a photo with the instagram app\n *\n * @usage\n * ```\n * import {Instagram} from 'ionic-native';\n *\n * Instagram.share('data:image/png;uhduhf3hfif33', 'Caption')\n * .then(() => console.log('Shared!'))\n * .catch((error: any) => console.error(error));\n *\n * ```\n */\nexport var Instagram = (function () {\n function Instagram() {\n }\n /**\n * Detect if the Instagram application is installed on the device.\n *\n * @return {Promise<boolean|string>} Returns a promise that returns a boolean value if installed, or the app version on android\n */\n Instagram.isInstalled = function () { return; };\n /**\n * Share an image on Instagram\n * Note: Instagram app stopped accepting pre-filled captions on both iOS and Android. As a work-around, the caption is copied to the clipboard. You have to inform your users to paste the caption.\n *\n * @param canvasIdOrDataUrl The canvas element id or the dataURL of the image to share\n * @param caption The caption of the image\n * @return {Promise<any>} Returns a promise that resolves if the image was shared\n */\n Instagram.share = function (canvasIdOrDataUrl, caption) { return; };\n /**\n * Share a library asset or video\n * @param assetLocalIdentifier A local fileURI\n * @return {Promise<any>} Returns a promise that resolves if the image was shared\n */\n Instagram.shareAsset = function (assetLocalIdentifier) { return; };\n __decorate([\n Cordova({\n callbackStyle: 'node'\n })\n ], Instagram, \"isInstalled\", null);\n __decorate([\n Cordova({\n callbackStyle: 'node'\n })\n ], Instagram, \"share\", null);\n __decorate([\n Cordova({\n callbackOrder: 'reverse'\n })\n ], Instagram, \"shareAsset\", null);\n Instagram = __decorate([\n Plugin({\n plugin: 'cordova-instagram-plugin',\n pluginRef: 'Instagram',\n repo: 'https://github.com/vstirbu/InstagramPlugin'\n })\n ], Instagram);\n return Instagram;\n}());\n//# sourceMappingURL=instagram.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Plugin, Cordova } from './plugin';\n/**\n * @name IsDebug\n * @description\n * Detect if the app is running in debug mode or not.\n * Debug mode is when the app is built and installed locally via xcode / eclipse / the cordova cli etc, compared to release mode when the app was downloaded from the app / play store via an end user.\n *\n * @usage\n * ```\n * import {IsDebug} from 'ionic-native';\n *\n * IsDebug.getIsDebug()\n * .then((isDebug: boolean) => console.log('Is debug:', isDebug))\n * .catch((error: any) => console.error(error));\n *\n * ```\n */\nexport var IsDebug = (function () {\n function IsDebug() {\n }\n /**\n * Determine if an app was installed via xcode / eclipse / the ionic CLI etc\n * @return {Promise<boolean>} Returns a promise that resolves with true if the app was installed via xcode / eclipse / the ionic CLI etc. It will resolve to false if the app was downloaded from the app / play store by the end user.\n */\n IsDebug.getIsDebug = function () {\n return;\n };\n __decorate([\n Cordova()\n ], IsDebug, \"getIsDebug\", null);\n IsDebug = __decorate([\n Plugin({\n plugin: 'cordova-plugin-is-debug',\n pluginRef: 'cordova.plugins.IsDebug',\n repo: 'https://github.com/mattlewis92/cordova-plugin-is-debug'\n })\n ], IsDebug);\n return IsDebug;\n}());\n//# sourceMappingURL=is-debug.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Keyboard\n * @description\n * @usage\n * ```typescript\n * import { Keyboard } from 'ionic-native';\n *\n *\n *\n * ```\n */\nexport var Keyboard = (function () {\n function Keyboard() {\n }\n /**\n * Hide the keyboard accessory bar with the next, previous and done buttons.\n * @param hide {boolean}\n */\n Keyboard.hideKeyboardAccessoryBar = function (hide) { };\n /**\n * Force keyboard to be shown.\n */\n Keyboard.show = function () { };\n /**\n * Close the keyboard if open.\n */\n Keyboard.close = function () { };\n /**\n * Prevents the native UIScrollView from moving when an input is focused.\n * @param disable\n */\n Keyboard.disableScroll = function (disable) { };\n /**\n * Creates an observable that notifies you when the keyboard is shown. Unsubscribe to observable to cancel event watch.\n */\n Keyboard.onKeyboardShow = function () { return; };\n /**\n * Creates an observable that notifies you when the keyboard is hidden. Unsubscribe to observable to cancel event watch.\n */\n Keyboard.onKeyboardHide = function () { return; };\n __decorate([\n Cordova({ sync: true })\n ], Keyboard, \"hideKeyboardAccessoryBar\", null);\n __decorate([\n Cordova({\n sync: true,\n platforms: ['Android', 'BlackBerry 10', 'Windows']\n })\n ], Keyboard, \"show\", null);\n __decorate([\n Cordova({\n sync: true,\n platforms: ['iOS', 'Android', 'BlackBerry 10', 'Windows']\n })\n ], Keyboard, \"close\", null);\n __decorate([\n Cordova({\n sync: true,\n platforms: ['iOS', 'Windows']\n })\n ], Keyboard, \"disableScroll\", null);\n __decorate([\n Cordova({\n eventObservable: true,\n event: 'native.keyboardshow',\n platforms: ['iOS', 'Android', 'BlackBerry 10', 'Windows']\n })\n ], Keyboard, \"onKeyboardShow\", null);\n __decorate([\n Cordova({\n eventObservable: true,\n event: 'native.keyboardhide',\n platforms: ['iOS', 'Android', 'BlackBerry 10', 'Windows']\n })\n ], Keyboard, \"onKeyboardHide\", null);\n Keyboard = __decorate([\n Plugin({\n plugin: 'ionic-plugin-keyboard',\n pluginRef: 'cordova.plugins.Keyboard',\n repo: 'https://github.com/driftyco/ionic-plugin-keyboard'\n })\n ], Keyboard);\n return Keyboard;\n}());\n//# sourceMappingURL=keyboard.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Launch Navigator\n * @description\n * Requires Cordova plugin: uk.co.workingedge.phonegap.plugin.launchnavigator. For more info, please see the [LaunchNavigator plugin docs](https://github.com/dpa99c/phonegap-launch-navigator).\n *\n * @usage\n * Please refer to the plugin's repo for detailed usage. This docs page only explains the Native wrapper.\n *\n * ```typescript\n * import { LaunchNavigator, LaunchNavigatorOptions } from 'ionic-native';\n *\n * let options: LaunchNavigatorOptions = {\n * start: 'London, ON',\n * app: LaunchNavigator.APPS.UBER\n * };\n *\n * LaunchNavigator.navigate('Toronto, ON', options)\n * .then(\n * success => console.log('Launched navigator'),\n * error => console.log('Error launching navigator', error)\n * );\n * ```\n */\nexport var LaunchNavigator = (function () {\n function LaunchNavigator() {\n }\n /**\n * Launches navigator app\n * @param destination {string|number[]} Location name or coordinates (as string or array)\n * @param options {LaunchNavigatorOptions}\n * @returns {Promise<any>}\n */\n LaunchNavigator.navigate = function (destination, options) { return; };\n /**\n * Determines if the given app is installed and available on the current device.\n * @param app {string}\n */\n LaunchNavigator.isAppAvailable = function (app) { return; };\n /**\n * Returns a list indicating which apps are installed and available on the current device.\n */\n LaunchNavigator.availableApps = function () { return; };\n /**\n * Returns the display name of the specified app.\n * @param app {string}\n */\n LaunchNavigator.getAppDisplayName = function (app) { return; };\n /**\n * Returns list of supported apps on a given platform.\n * @param platform {string}\n */\n LaunchNavigator.getAppsForPlatform = function (platform) { return; };\n /**\n * Indicates if an app on a given platform supports specification of transport mode.\n * @param app {string} specified as a string, you can use one of the constants, e.g `LaunchNavigator.APP.GOOGLE_MAPS`\n * @param platform {string}\n */\n LaunchNavigator.supportsTransportMode = function (app, platform) { return; };\n /**\n * Returns the list of transport modes supported by an app on a given platform.\n * @param app {string}\n * @param platform {string}\n */\n LaunchNavigator.getTransportModes = function (app, platform) { return; };\n /**\n * Indicates if an app on a given platform supports specification of launch mode.\n * Note that currently only Google Maps on Android does.\n * @param app {string}\n * @param platform {string}\n */\n LaunchNavigator.supportsLaunchMode = function (app, platform) { return; };\n /**\n * Indicates if an app on a given platform supports specification of start location.\n * @param app {string}\n * @param platform {string}\n */\n LaunchNavigator.supportsStart = function (app, platform) { return; };\n LaunchNavigator.supportsStartName = function (app, platform) { return; };\n LaunchNavigator.supportsDestName = function (app, platform) { return; };\n LaunchNavigator.userSelect = function (destination, options) { };\n LaunchNavigator.APP = {\n USER_SELECT: 'user_select',\n APPLE_MAPS: 'apple_maps',\n GOOGLE_MAPS: 'google_maps',\n WAZE: 'waze',\n CITYMAPPER: 'citymapper',\n NAVIGON: 'navigon',\n TRANSIT_APP: 'transit_app',\n YANDEX: 'yandex',\n UBER: 'uber',\n TOMTOM: 'tomtom',\n BING_MAPS: 'bing_maps',\n SYGIC: 'sygic',\n HERE_MAPS: 'here_maps',\n MOOVIT: 'moovit'\n };\n LaunchNavigator.TRANSPORT_MODE = {\n DRIVING: 'driving',\n WALKING: 'walking',\n BICYCLING: 'bicycling',\n TRANSIT: 'transit'\n };\n __decorate([\n Cordova({\n successIndex: 1,\n errorIndex: 2\n })\n ], LaunchNavigator, \"navigate\", null);\n __decorate([\n Cordova()\n ], LaunchNavigator, \"isAppAvailable\", null);\n __decorate([\n Cordova()\n ], LaunchNavigator, \"availableApps\", null);\n __decorate([\n Cordova({ sync: true })\n ], LaunchNavigator, \"getAppDisplayName\", null);\n __decorate([\n Cordova({ sync: true })\n ], LaunchNavigator, \"getAppsForPlatform\", null);\n __decorate([\n Cordova({ sync: true })\n ], LaunchNavigator, \"supportsTransportMode\", null);\n __decorate([\n Cordova({ sync: true })\n ], LaunchNavigator, \"getTransportModes\", null);\n __decorate([\n Cordova({ sync: true })\n ], LaunchNavigator, \"supportsLaunchMode\", null);\n __decorate([\n Cordova({ sync: true })\n ], LaunchNavigator, \"supportsStart\", null);\n __decorate([\n Cordova({ sync: true })\n ], LaunchNavigator, \"supportsStartName\", null);\n __decorate([\n Cordova({ sync: true })\n ], LaunchNavigator, \"supportsDestName\", null);\n __decorate([\n Cordova({ sync: true })\n ], LaunchNavigator, \"userSelect\", null);\n LaunchNavigator = __decorate([\n Plugin({\n plugin: 'uk.co.workingedge.phonegap.plugin.launchnavigator',\n pluginRef: 'launchnavigator',\n repo: 'https://github.com/dpa99c/phonegap-launch-navigator.git'\n })\n ], LaunchNavigator);\n return LaunchNavigator;\n}());\n//# sourceMappingURL=launchnavigator.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Local Notifications\n * @description\n * This plugin allows you to display local notifications on the device\n *\n * @usage\n * ```typescript\n * import { LocalNotifications } from 'ionic-native';\n *\n *\n * // Schedule a single notification\n * LocalNotifications.schedule({\n * id: 1,\n * text: 'Single Notification',\n * sound: isAndroid? 'file://sound.mp3': 'file://beep.caf',\n * data: { secret: key }\n * });\n *\n *\n * // Schedule multiple notifications\n * LocalNotifications.schedule([{\n * id: 1,\n * text: 'Multi Notification 1',\n * sound: isAndroid ? 'file://sound.mp3': 'file://beep.caf',\n * data: { secret:key }\n * },{\n * id: 2,\n * title: 'Local Notification Example',\n * text: 'Multi Notification 2',\n * icon: 'http://example.com/icon.png'\n * }]);\n *\n *\n * // Schedule delayed notification\n * LocalNotifications.schedule({\n * text: 'Delayed Notification',\n * at: new Date(new Date().getTime() + 3600),\n * led: 'FF0000',\n * sound: null\n * });\n * ```\n *\n */\nexport var LocalNotifications = (function () {\n function LocalNotifications() {\n }\n /**\n * Schedules a single or multiple notifications\n * @param options\n */\n LocalNotifications.schedule = function (options) { };\n /**\n * Updates a previously scheduled notification. Must include the id in the options parameter.\n * @param options\n */\n LocalNotifications.update = function (options) { };\n /**\n * Clears single or multiple notifications\n * @param notificationId A single notification id, or an array of notification ids.\n * @returns {Promise} Returns a promise when the notification had been cleared\n */\n LocalNotifications.clear = function (notificationId) { return; };\n /**\n * Clears all notifications\n * @returns {Promise} Returns a promise when all notifications have cleared\n */\n LocalNotifications.clearAll = function () { return; };\n /**\n * Cancels single or multiple notifications\n * @param notificationId A single notification id, or an array of notification ids.\n * @returns {Promise} Returns a promise when the notification is canceled\n */\n LocalNotifications.cancel = function (notificationId) { return; };\n /**\n * Cancels all notifications\n * @returns {Promise} Returns a promise when all notifications are canceled\n */\n LocalNotifications.cancelAll = function () { return; };\n /**\n * Checks presence of a notification\n * @param notificationId\n * @returns {Promise} Returns a promise\n */\n LocalNotifications.isPresent = function (notificationId) { return; };\n /**\n * Checks is a notification is scheduled\n * @param notificationId\n * @returns {Promise} Returns a promise\n */\n LocalNotifications.isScheduled = function (notificationId) { return; };\n /**\n * Checks if a notification is triggered\n * @param notificationId\n * @returns {Promise} Returns a promise\n */\n LocalNotifications.isTriggered = function (notificationId) { return; };\n /**\n * Get all the notification ids\n * @returns {Promise} Returns a promise\n */\n LocalNotifications.getAllIds = function () { return; };\n /**\n * Get the ids of triggered notifications\n * @returns {Promise} Returns a promise\n */\n LocalNotifications.getTriggeredIds = function () { return; };\n /**\n * Get the ids of scheduled notifications\n * @returns {Promise} Returns a promise\n */\n LocalNotifications.getScheduledIds = function () { return; };\n /**\n * Get a notification object\n * @param notificationId The id of the notification to get\n * @returns {Promise} Returns a promise\n */\n LocalNotifications.get = function (notificationId) { return; };\n /**\n * Get a scheduled notification object\n * @param notificationId The id of the notification to get\n * @returns {Promise} Returns a promise\n */\n LocalNotifications.getScheduled = function (notificationId) { return; };\n /**\n * Get a triggered notification object\n * @param notificationId The id of the notification to get\n * @returns {Promise} Returns a promise\n */\n LocalNotifications.getTriggered = function (notificationId) { return; };\n /**\n * Get all notification objects\n * @returns {Promise} Returns a promise\n */\n LocalNotifications.getAll = function () { return; };\n /**\n * Get all scheduled notification objects\n * @returns {Promise} Returns a promise\n */\n LocalNotifications.getAllScheduled = function () { return; };\n /**\n * Get all triggered notification objects\n * @returns {Promise} Returns a promise\n */\n LocalNotifications.getAllTriggered = function () { return; };\n /**\n * Register permission to show notifications if not already granted.\n * @returns {Promise} Returns a promise\n */\n LocalNotifications.registerPermission = function () { return; };\n /**\n * Informs if the app has the permission to show notifications.\n * @returns {Promise} Returns a promise\n */\n LocalNotifications.hasPermission = function () { return; };\n /**\n * Sets a callback for a specific event\n * @param eventName The name of the event. Available events: schedule, trigger, click, update, clear, clearall, cancel, cancelall\n * @param callback Call back function. All events return notification and state parameter. clear and clearall return state parameter only.\n */\n LocalNotifications.on = function (eventName, callback) { };\n __decorate([\n Cordova({\n sync: true\n })\n ], LocalNotifications, \"schedule\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], LocalNotifications, \"update\", null);\n __decorate([\n Cordova()\n ], LocalNotifications, \"clear\", null);\n __decorate([\n Cordova({\n successIndex: 0,\n errorIndex: 2\n })\n ], LocalNotifications, \"clearAll\", null);\n __decorate([\n Cordova()\n ], LocalNotifications, \"cancel\", null);\n __decorate([\n Cordova({\n successIndex: 0,\n errorIndex: 2\n })\n ], LocalNotifications, \"cancelAll\", null);\n __decorate([\n Cordova()\n ], LocalNotifications, \"isPresent\", null);\n __decorate([\n Cordova()\n ], LocalNotifications, \"isScheduled\", null);\n __decorate([\n Cordova()\n ], LocalNotifications, \"isTriggered\", null);\n __decorate([\n Cordova()\n ], LocalNotifications, \"getAllIds\", null);\n __decorate([\n Cordova()\n ], LocalNotifications, \"getTriggeredIds\", null);\n __decorate([\n Cordova()\n ], LocalNotifications, \"getScheduledIds\", null);\n __decorate([\n Cordova()\n ], LocalNotifications, \"get\", null);\n __decorate([\n Cordova()\n ], LocalNotifications, \"getScheduled\", null);\n __decorate([\n Cordova()\n ], LocalNotifications, \"getTriggered\", null);\n __decorate([\n Cordova()\n ], LocalNotifications, \"getAll\", null);\n __decorate([\n Cordova()\n ], LocalNotifications, \"getAllScheduled\", null);\n __decorate([\n Cordova()\n ], LocalNotifications, \"getAllTriggered\", null);\n __decorate([\n Cordova()\n ], LocalNotifications, \"registerPermission\", null);\n __decorate([\n Cordova()\n ], LocalNotifications, \"hasPermission\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], LocalNotifications, \"on\", null);\n LocalNotifications = __decorate([\n Plugin({\n plugin: 'de.appplant.cordova.plugin.local-notification',\n pluginRef: 'cordova.plugins.notification.local',\n repo: 'https://github.com/katzer/cordova-plugin-local-notifications'\n })\n ], LocalNotifications);\n return LocalNotifications;\n}());\n//# sourceMappingURL=localnotifications.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, CordovaProperty, Plugin } from './plugin';\n/**\n * @name Media Capture\n * @description\n * @usage\n * ```typescript\n * import { MediaCapture } from 'ionic-native';\n *\n *\n * let options: CaptureImageOptions = { limit: 3 };\n * MediaCapture.captureImage(options)\n * .then(\n * (data: MediaFile[]) => console.log(data),\n * (err: CaptureError) => console.error(err)\n * );\n *\n * ```\n */\nexport var MediaCapture = (function () {\n function MediaCapture() {\n }\n Object.defineProperty(MediaCapture, \"supportedImageModes\", {\n /**\n * The audio recording formats supported by the device.\n * @returns {ConfigurationData[]}\n */\n get: function () {\n return navigator.device.capture.supportedImageModes;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MediaCapture, \"supportedAudioModes\", {\n /**\n * The recording image sizes and formats supported by the device.\n * @returns {ConfigurationData[]}\n */\n get: function () {\n return navigator.device.capture.supportedAudioModes;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MediaCapture, \"supportedVideoModes\", {\n /**\n * The recording video resolutions and formats supported by the device.\n * @returns {ConfigurationData[]}\n */\n get: function () {\n return navigator.device.capture.supportedVideoModes;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Start the audio recorder application and return information about captured audio clip files.\n * @param options\n */\n MediaCapture.captureAudio = function (options) { return; };\n /**\n * Start the camera application and return information about captured image files.\n * @param options\n */\n MediaCapture.captureImage = function (options) { return; };\n /**\n * Start the video recorder application and return information about captured video clip files.\n * @param options\n */\n MediaCapture.captureVideo = function (options) { return; };\n /**\n * is fired if the capture call is successful\n */\n MediaCapture.onPendingCaptureResult = function () { return; };\n /**\n * is fired if the capture call is unsuccessful\n */\n MediaCapture.onPendingCaptureError = function () { return; };\n __decorate([\n CordovaProperty\n ], MediaCapture, \"supportedImageModes\", null);\n __decorate([\n CordovaProperty\n ], MediaCapture, \"supportedAudioModes\", null);\n __decorate([\n CordovaProperty\n ], MediaCapture, \"supportedVideoModes\", null);\n __decorate([\n Cordova({\n callbackOrder: 'reverse'\n })\n ], MediaCapture, \"captureAudio\", null);\n __decorate([\n Cordova({\n callbackOrder: 'reverse'\n })\n ], MediaCapture, \"captureImage\", null);\n __decorate([\n Cordova({\n callbackOrder: 'reverse'\n })\n ], MediaCapture, \"captureVideo\", null);\n __decorate([\n Cordova({\n eventObservable: true,\n event: 'pendingcaptureresult'\n })\n ], MediaCapture, \"onPendingCaptureResult\", null);\n __decorate([\n Cordova({\n eventObservable: true,\n event: 'pendingcaptureerror'\n })\n ], MediaCapture, \"onPendingCaptureError\", null);\n MediaCapture = __decorate([\n Plugin({\n plugin: 'cordova-plugin-media-capture',\n pluginRef: 'navigator.device.capture',\n repo: 'https://github.com/apache/cordova-plugin-media-capture'\n })\n ], MediaCapture);\n return MediaCapture;\n}());\n//# sourceMappingURL=media-capture.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Plugin, Cordova } from './plugin';\n/**\n * @name NativeAudio\n * @description Native Audio Playback\n * @usage\n * ```typescript\n * import {NativeAudio} from 'ionic-native';\n *\n * NativeAudio.preloadSimple('uniqueId1', 'path/to/file.mp3').then(onSuccess, onError);\n * NativeAudio.preloadComplex('uniqueId2', 'path/to/file2.mp3', 1, 1, 0).then(onSuccess, onError);\n *\n * NativeAudio.play('uniqueId1').then(onSuccess, onError);\n * NativeAudio.loop('uniqueId2').then(onSuccess, onError);\n *\n * NativeAudio.setVolumeForComplexAsset('uniqueId2', 0.6).then(onSuccess,onError);\n *\n * NativeAudio.stop('uniqueId1').then(onSuccess,onError);\n *\n * NativeAudio.unload('uniqueId1').then(onSuccess,onError);\n *\n * ```\n */\nexport var NativeAudio = (function () {\n function NativeAudio() {\n }\n /**\n * Loads an audio file into memory. Optimized for short clips / single shots (up to five seconds). Cannot be stopped / looped.\n * @param id {string} unique ID for the audio file\n * @param assetPath {string} the relative path or absolute URL (inluding http://) to the audio asset.\n * @returns {Promise<any>}\n */\n NativeAudio.preloadSimple = function (id, assetPath) { return; };\n /**\n * Loads an audio file into memory. Optimized for background music / ambient sound. Uses highlevel native APIs with a larger footprint. (iOS: AVAudioPlayer). Can be stopped / looped and used with multiple voices. Can be faded in and out using the delay parameter.\n * @param id {string} unique ID for the audio file\n * @param assetPath {string} the relative path or absolute URL (inluding http://) to the audio asset.\n * @param volume {number} the volume of the preloaded sound (0.1 to 1.0)\n * @param voices {number} the number of multichannel voices available\n * @param delay {number}\n * @returns {Promise<any>}\n */\n NativeAudio.preloadComplex = function (id, assetPath, volume, voices, delay) { return; };\n /**\n * Plays an audio asset\n * @param id {string} unique ID for the audio file\n * @param completeCallback {Function} callback to be invoked when audio is done playing\n */\n NativeAudio.play = function (id, completeCallback) { return; };\n /**\n * Stops playing an audio\n * @param id {string} unique ID for the audio file\n */\n NativeAudio.stop = function (id) { return; };\n /**\n * Loops an audio asset infinitely, this only works for complex assets\n * @param id {string} unique ID for the audio file\n * @return {Promise<any>}\n */\n NativeAudio.loop = function (id) { return; };\n /**\n * Unloads an audio file from memory\n * @param id {string} unique ID for the audio file\n */\n NativeAudio.unload = function (id) { return; };\n /**\n * Changes the volume for preloaded complex assets.\n * @param id {string} unique ID for the audio file\n * @param volume {number} the volume of the audio asset (0.1 to 1.0)\n */\n NativeAudio.setVolumeForComplexAsset = function (id, volume) { return; };\n __decorate([\n Cordova()\n ], NativeAudio, \"preloadSimple\", null);\n __decorate([\n Cordova()\n ], NativeAudio, \"preloadComplex\", null);\n __decorate([\n Cordova({\n successIndex: 1,\n errorIndex: 2\n })\n ], NativeAudio, \"play\", null);\n __decorate([\n Cordova()\n ], NativeAudio, \"stop\", null);\n __decorate([\n Cordova()\n ], NativeAudio, \"loop\", null);\n __decorate([\n Cordova()\n ], NativeAudio, \"unload\", null);\n __decorate([\n Cordova()\n ], NativeAudio, \"setVolumeForComplexAsset\", null);\n NativeAudio = __decorate([\n Plugin({\n plugin: 'cordova-plugin-nativeaudio',\n pluginRef: 'plugins.NativeAudio',\n repo: 'https://github.com/floatinghotpot/cordova-plugin-nativeaudio'\n })\n ], NativeAudio);\n return NativeAudio;\n}());\n//# sourceMappingURL=native-audio.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Plugin, Cordova } from './plugin';\n/**\n * @name NativePageTransitions\n * @description\n * The Native Page Transitions plugin uses native hardware acceleration to animate your transitions between views. You have complete control over the type of transition, the duration, and direction.\n *\n * @usage\n * ```\n * import {NativePageTransitions, TransitionOptions} from 'ionic-native';\n *\n * let options: TransitionOptions = {\n * direction: 'up',\n * duration: 500,\n * slowdownfactor: 3,\n * slidePixels: 20,\n * iosdelay: 100,\n * androiddelay: 150,\n * winphonedelay: 250,\n * fixedPixelsTop: 0,\n * fixedPixelsBottom: 60\n * };\n *\n * NativePageTransitions.slide(options)\n * .then(onSuccess)\n * .catch(onError);\n *\n * ```\n */\nexport var NativePageTransitions = (function () {\n function NativePageTransitions() {\n }\n /**\n * Perform a slide animation\n * @param options {TransitionOptions} Options for the transition\n */\n NativePageTransitions.slide = function (options) { return; };\n /**\n * Perform a flip animation\n * @param options {TransitionOptions} Options for the transition\n */\n NativePageTransitions.flip = function (options) { return; };\n /**\n * Perform a fade animation\n * @param options {TransitionOptions} Options for the transition\n */\n NativePageTransitions.fade = function (options) { return; };\n /**\n * Perform a slide animation\n * @param options {TransitionOptions} Options for the transition\n */\n NativePageTransitions.drawer = function (options) { return; };\n /**\n * Perform a slide animation\n * @param options {TransitionOptions} Options for the transition\n */\n NativePageTransitions.curl = function (options) { return; };\n __decorate([\n Cordova()\n ], NativePageTransitions, \"slide\", null);\n __decorate([\n Cordova()\n ], NativePageTransitions, \"flip\", null);\n __decorate([\n Cordova({ platforms: ['iOS', 'Android'] })\n ], NativePageTransitions, \"fade\", null);\n __decorate([\n Cordova({ platforms: ['iOS', 'Android'] })\n ], NativePageTransitions, \"drawer\", null);\n __decorate([\n Cordova({ platforms: ['iOS'] })\n ], NativePageTransitions, \"curl\", null);\n NativePageTransitions = __decorate([\n Plugin({\n plugin: 'com.telerik.plugins.nativepagetransitions',\n pluginRef: 'plugins.nativepagetransitions',\n repo: 'https://github.com/Telerik-Verified-Plugins/NativePageTransitions',\n platforms: ['iOS', 'Android', 'Windows Phone']\n })\n ], NativePageTransitions);\n return NativePageTransitions;\n}());\n//# sourceMappingURL=native-page-transitions.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name NativeStorage\n * @description Native storage of variables in Android and iOS\n *\n * @usage\n * ```typescript\n * import { NativeStorage } from 'ionic-native';\n *\n * NativeStorage.setItem('myitem', {property: 'value', anotherProperty: 'anotherValue'})\n * .then(\n * () => console.log('Stored item!'),\n * error => console.error('Error storing item', error)\n * );\n *\n * NativeStorage.getItem('myitem')\n * .then(\n * data => console.log(data),\n * error => console.error(error)\n * );\n * ```\n */\nexport var NativeStorage = (function () {\n function NativeStorage() {\n }\n /**\n * Stores a value\n * @param reference {string}\n * @param value\n */\n NativeStorage.setItem = function (reference, value) { return; };\n /**\n * Gets a stored item\n * @param reference {string}\n */\n NativeStorage.getItem = function (reference) { return; };\n /**\n * Removes a single stored item\n * @param reference {string}\n */\n NativeStorage.remove = function (reference) { return; };\n /**\n * Removes all stored values.\n */\n NativeStorage.clear = function () { return; };\n __decorate([\n Cordova()\n ], NativeStorage, \"setItem\", null);\n __decorate([\n Cordova()\n ], NativeStorage, \"getItem\", null);\n __decorate([\n Cordova()\n ], NativeStorage, \"remove\", null);\n __decorate([\n Cordova()\n ], NativeStorage, \"clear\", null);\n NativeStorage = __decorate([\n Plugin({\n plugin: 'cordova-plugin-nativestorage',\n pluginRef: 'NativeStorage',\n repo: 'https://github.com/TheCocoaProject/cordova-plugin-nativestorage'\n })\n ], NativeStorage);\n return NativeStorage;\n}());\n//# sourceMappingURL=nativestorage.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Plugin, Cordova } from './plugin';\n/**\n * @name Market\n * @description\n * Opens an app's page in the market place (Google Play, App Store)\n *\n * @usage\n * ```\n * import {Market} from 'ionic-native';\n *\n * Market.open('your.package.name');\n *\n * ```\n */\nexport var Market = (function () {\n function Market() {\n }\n /**\n * Opens an app in Google Play / App Store\n * @param appId {string} Package name\n * @param callbacks {Object} Optional callbacks\n */\n Market.open = function (appId, callbacks) { };\n __decorate([\n Cordova({ sync: true })\n ], Market, \"open\", null);\n Market = __decorate([\n Plugin({\n plugin: 'cordova-plugin-market',\n pluginRef: 'plugins.market',\n repo: 'https://github.com/xmartlabs/cordova-plugin-market'\n })\n ], Market);\n return Market;\n}());\n//# sourceMappingURL=market.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CordovaInstance, Plugin } from './plugin';\nimport { Observable } from 'rxjs/Observable';\n/**\n * @name MediaPlugin\n * @description\n * @usage\n * ```typescript\n * import { MediaPlugin } from 'ionic-native';\n *\n *\n *\n * // Create a MediaPlugin instance. Expects path to file or url as argument\n * var file = new MediaPlugin('path/to/file.mp3');\n *\n * // Catch the Success & Error Output\n * // Platform Quirks\n * // iOS calls success on completion of playback only\n * // Android calls success on completion of playback AND on release()\n * file.init.then(() => {\n * console.log('Playback Finished');\n * }, (err) => {\n * console.log('somthing went wrong! error code: ' + err.code + ' message: ' + err.message);\n * });\n *\n * // play the file\n * file.play();\n *\n * // pause the file\n * file.pause();\n *\n * // get current playback position\n * file.getCurrentPosition().then((position) => {\n * console.log(position);\n * });\n *\n * // get file duration\n * file.getDuration().then((duration) => {\n * console.log(position);\n * });\n *\n * // skip to 10 seconds (expects int value in ms)\n * file.seekTo(10000);\n *\n * // stop playing the file\n * file.stop();\n *\n * // release the native audio resource\n * // Platform Quirks:\n * // iOS simply create a new instance and the old one will be overwritten\n * // Android you must call release() to destroy instances of media when you are done\n * file.release();\n *\n * // Recording to a file\n * var newFile = new MediaPlugin('path/to/file.mp3');\n * newFile.startRecord();\n *\n * newFile.stopRecord();\n *\n *\n *\n * ```\n */\nexport var MediaPlugin = (function () {\n // Methods\n /**\n * Open a media file\n * @param src {string} A URI containing the audio content.\n */\n function MediaPlugin(src) {\n var _this = this;\n this.init = new Promise(function (resolve, reject) {\n _this.status = new Observable(function (observer) {\n _this._objectInstance = new Media(src, resolve, reject, observer.next.bind(observer));\n });\n });\n }\n /**\n * Get the current amplitude of the current recording.\n * @returns {Promise} Returns a promise with the amplitude of the current recording\n */\n MediaPlugin.prototype.getCurrentAmplitude = function () { return; };\n /**\n * Get the current position within an audio file. Also updates the Media object's position parameter.\n * @returns {Promise} Returns a promise with the position of the current recording\n */\n MediaPlugin.prototype.getCurrentPosition = function () { return; };\n /**\n * Get the duration of an audio file in seconds. If the duration is unknown, it returns a value of -1.\n * @returns {Promise} Returns a promise with the duration of the current recording\n */\n MediaPlugin.prototype.getDuration = function () { return; };\n /**\n * Starts or resumes playing an audio file.\n */\n MediaPlugin.prototype.play = function (iosOptions) { };\n /**\n * Pauses playing an audio file.\n */\n MediaPlugin.prototype.pause = function () { };\n /**\n * Releases the underlying operating system's audio resources. This is particularly important for Android, since there are a finite amount of OpenCore instances for media playback. Applications should call the release function for any Media resource that is no longer needed.\n */\n MediaPlugin.prototype.release = function () { };\n /**\n * Sets the current position within an audio file.\n * @param {number} milliseconds The time position you want to set for the current audio file\n */\n MediaPlugin.prototype.seekTo = function (milliseconds) { };\n /**\n * Set the volume for an audio file.\n * @param volume The volume to set for playback. The value must be within the range of 0.0 to 1.0.\n */\n MediaPlugin.prototype.setVolume = function (volume) { };\n /**\n * Starts recording an audio file.\n */\n MediaPlugin.prototype.startRecord = function () { };\n /**\n * Stops recording\n */\n MediaPlugin.prototype.stopRecord = function () { };\n /**\n * Stops playing an audio file.\n */\n MediaPlugin.prototype.stop = function () { };\n // Constants\n /**\n * @private\n */\n MediaPlugin.MEDIA_NONE = 0;\n /**\n * @private\n */\n MediaPlugin.MEDIA_STARTING = 1;\n /**\n * @private\n */\n MediaPlugin.MEDIA_RUNNING = 2;\n /**\n * @private\n */\n MediaPlugin.MEDIA_PAUSED = 3;\n /**\n * @private\n */\n MediaPlugin.MEDIA_STOPPED = 4;\n // error codes\n /**\n * @private\n */\n MediaPlugin.MEDIA_ERR_ABORTED = 1;\n /**\n * @private\n */\n MediaPlugin.MEDIA_ERR_NETWORK = 2;\n /**\n * @private\n */\n MediaPlugin.MEDIA_ERR_DECODE = 3;\n /**\n * @private\n */\n MediaPlugin.MEDIA_ERR_NONE_SUPPORTED = 4;\n __decorate([\n CordovaInstance()\n ], MediaPlugin.prototype, \"getCurrentAmplitude\", null);\n __decorate([\n CordovaInstance()\n ], MediaPlugin.prototype, \"getCurrentPosition\", null);\n __decorate([\n CordovaInstance({\n sync: true\n })\n ], MediaPlugin.prototype, \"getDuration\", null);\n __decorate([\n CordovaInstance({\n sync: true\n })\n ], MediaPlugin.prototype, \"play\", null);\n __decorate([\n CordovaInstance({\n sync: true\n })\n ], MediaPlugin.prototype, \"pause\", null);\n __decorate([\n CordovaInstance({\n sync: true\n })\n ], MediaPlugin.prototype, \"release\", null);\n __decorate([\n CordovaInstance({\n sync: true\n })\n ], MediaPlugin.prototype, \"seekTo\", null);\n __decorate([\n CordovaInstance({\n sync: true\n })\n ], MediaPlugin.prototype, \"setVolume\", null);\n __decorate([\n CordovaInstance({\n sync: true\n })\n ], MediaPlugin.prototype, \"startRecord\", null);\n __decorate([\n CordovaInstance({\n sync: true\n })\n ], MediaPlugin.prototype, \"stopRecord\", null);\n __decorate([\n CordovaInstance({\n sync: true\n })\n ], MediaPlugin.prototype, \"stop\", null);\n MediaPlugin = __decorate([\n Plugin({\n repo: 'https://github.com/apache/cordova-plugin-media',\n plugin: 'cordova-plugin-media',\n pluginRef: 'Media'\n })\n ], MediaPlugin);\n return MediaPlugin;\n}());\n//# sourceMappingURL=media.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, CordovaProperty, Plugin } from './plugin';\n/**\n * @name Mixpanel\n * @description\n * Cordova Plugin that wraps Mixpanel SDK for Android and iOS\n *\n * @usage\n * ```\n * import {Mixpanel} from 'ionic-native';\n *\n * Mixpanel.init(token)\n * .then(onSuccess)\n * .catch(onError);\n *\n * ```\n */\nexport var Mixpanel = (function () {\n function Mixpanel() {\n }\n /**\n *\n * @param aliasId {string}\n * @param originalId {string}\n * @returns {Promise<any>}\n */\n Mixpanel.alias = function (aliasId, originalId) { return; };\n /**\n *\n * @returns {Promise<any>}\n */\n Mixpanel.distinctId = function () { return; };\n /**\n *\n */\n Mixpanel.flush = function () { return; };\n /**\n *\n * @param distinctId {string}\n * @returns {Promise<any>}\n */\n Mixpanel.identify = function (distinctId) { return; };\n /**\n *\n * @param token {string}\n * @returns {Promise<any>}\n */\n Mixpanel.init = function (token) { return; };\n /**\n *\n * @param superProperties\n * @returns {Promise<any>}\n */\n Mixpanel.registerSuperProperties = function (superProperties) { return; };\n /**\n *\n * @returns {Promise<any>}\n */\n Mixpanel.reset = function () { return; };\n /**\n *\n * @param eventName\n * @param eventProperties\n */\n Mixpanel.track = function (eventName, eventProperties) { return; };\n /**\n *\n * @returns {Promise<any>}\n */\n Mixpanel.showSurvey = function () { return; };\n Object.defineProperty(Mixpanel, \"people\", {\n /**\n *\n * @returns {MixpanelPeople}\n */\n get: function () { return mixpanel.people; },\n enumerable: true,\n configurable: true\n });\n ;\n __decorate([\n Cordova()\n ], Mixpanel, \"alias\", null);\n __decorate([\n Cordova()\n ], Mixpanel, \"distinctId\", null);\n __decorate([\n Cordova()\n ], Mixpanel, \"flush\", null);\n __decorate([\n Cordova()\n ], Mixpanel, \"identify\", null);\n __decorate([\n Cordova()\n ], Mixpanel, \"init\", null);\n __decorate([\n Cordova()\n ], Mixpanel, \"registerSuperProperties\", null);\n __decorate([\n Cordova()\n ], Mixpanel, \"reset\", null);\n __decorate([\n Cordova()\n ], Mixpanel, \"track\", null);\n __decorate([\n Cordova()\n ], Mixpanel, \"showSurvey\", null);\n __decorate([\n CordovaProperty\n ], Mixpanel, \"people\", null);\n Mixpanel = __decorate([\n Plugin({\n plugin: 'cordova-plugin-mixpanel',\n pluginRef: 'mixpanel',\n repo: 'https://github.com/samzilverberg/cordova-mixpanel-plugin'\n })\n ], Mixpanel);\n return Mixpanel;\n}());\n//# sourceMappingURL=mixpanel.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Plugin, Cordova } from './plugin';\n/**\n * @name MusicControls\n * @description\n * Music controls for Cordova applications.\n * Display a 'media' notification with play/pause, previous, next buttons, allowing the user to control the play.\n * Handle also headset event (plug, unplug, headset button).\n *\n * @usage\n * ```\n * import {MusicControls} from 'ionic-native';\n *\n * MusicControls.create({\n * track : 'Time is Running Out', // optional, default : ''\n * artist : 'Muse', // optional, default : ''\n * cover : 'albums/absolution.jpg', // optional, default : nothing\n * // cover can be a local path (use fullpath 'file:///storage/emulated/...', or only 'my_image.jpg' if my_image.jpg is in the www folder of your app)\n * // or a remote url ('http://...', 'https://...', 'ftp://...')\n * isPlaying : true, // optional, default : true\n * dismissable : true, // optional, default : false\n *\n * // hide previous/next/close buttons:\n * hasPrev : false, // show previous button, optional, default: true\n * hasNext : false, // show next button, optional, default: true\n * hasClose : true, // show close button, optional, default: false\n *\n * // Android only, optional\n * // text displayed in the status bar when the notification (and the ticker) are updated\n * ticker : 'Now playing \"Time is Running Out\"'\n * });\n *\n * MusicControls.subscribe().subscribe(action => {\n *\n * switch(action) {\n * case 'music-controls-next':\n * // Do something\n * break;\n * case 'music-controls-previous':\n * // Do something\n * break;\n * case 'music-controls-pause':\n * // Do something\n * break;\n * case 'music-controls-play':\n * // Do something\n * break;\n * case 'music-controls-destroy':\n * // Do something\n * break;\n *\n * // Headset events (Android only)\n * case 'music-controls-media-button' :\n * // Do something\n * break;\n * case 'music-controls-headset-unplugged':\n * // Do something\n * break;\n * case 'music-controls-headset-plugged':\n * // Do something\n * break;\n * default:\n * break;\n * }\n *\n * });\n *\n * MusicControls.listen(); // activates the observable above\n *\n * MusicControls.updateIsPlaying(true);\n *\n *\n * ```\n */\nexport var MusicControls = (function () {\n function MusicControls() {\n }\n /**\n * Create the media controls\n * @param options {MusicControlsOptions}\n * @returns {Promise<any>}\n */\n MusicControls.create = function (options) { return; };\n /**\n * Destroy the media controller\n * @returns {Promise<any>}\n */\n MusicControls.destroy = function () { return; };\n /**\n * Subscribe to the events of the media controller\n * @returns {Observable<any>}\n */\n MusicControls.subscribe = function () { return; };\n /**\n * Start listening for events, this enables the Observable from the subscribe method\n */\n MusicControls.listen = function () { };\n /**\n * Toggle play/pause:\n * @param isPlaying {boolean}\n */\n MusicControls.updateIsPlaying = function (isPlaying) { };\n __decorate([\n Cordova()\n ], MusicControls, \"create\", null);\n __decorate([\n Cordova()\n ], MusicControls, \"destroy\", null);\n __decorate([\n Cordova({\n observable: true\n })\n ], MusicControls, \"subscribe\", null);\n __decorate([\n Cordova({ sync: true })\n ], MusicControls, \"listen\", null);\n __decorate([\n Cordova({ sync: true })\n ], MusicControls, \"updateIsPlaying\", null);\n MusicControls = __decorate([\n Plugin({\n plugin: 'cordova-plugin-music-controls',\n pluginRef: 'MusicControls',\n repo: 'https://github.com/homerours/cordova-music-controls-plugin'\n })\n ], MusicControls);\n return MusicControls;\n}());\n//# sourceMappingURL=music-controls.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, CordovaProperty, Plugin } from './plugin';\n/**\n * @name Network\n * @description\n * Requires Cordova plugin: cordova-plugin-network-information. For more info, please see the [Network plugin docs](https://github.com/apache/cordova-plugin-network-information).\n *\n * @usage\n * ```typescript\n * import { Network } from 'ionic-native';\n *\n * // watch network for a disconnect\n * let disconnectSubscription = Network.onDisconnect().subscribe(() => {\n * console.log('network was disconnected :-(');\n * });\n *\n * // stop disconnect watch\n * disconnectSubscription.unsubscribe();\n *\n *\n * // watch network for a connection\n * let connectSubscription = Network.onConnect().subscribe(() => {\n * console.log('network connected!');\n\n * // We just got a connection but we need to wait briefly\n *\n // before we determine the connection type. Might need to wait\n\n * // prior to doing any api requests as well.\n * setTimeout(() => {\n * if (Network.connection === 'wifi') {\n * console.log('we got a wifi connection, woohoo!');\n * }\n * }, 3000);\n * });\n *\n * // stop connect watch\n * connectSubscription.unsubscribe();\n *\n * ```\n * @advanced\n * The `connection` property will return one of the following connection types: `unknown`, `ethernet`, `wifi`, `2g`, `3g`, `4g`, `cellular`, `none`\n */\nexport var Network = (function () {\n function Network() {\n }\n Object.defineProperty(Network, \"connection\", {\n /**\n * Return the network connection type\n */\n get: function () { return navigator.connection.type; },\n enumerable: true,\n configurable: true\n });\n /**\n * Get notified when the device goes offline\n * @returns {Observable<any>} Returns an observable.\n */\n Network.onDisconnect = function () { return; };\n /**\n * Get notified when the device goes online\n * @returns {Observable<any>} Returns an observable.\n */\n Network.onConnect = function () { return; };\n __decorate([\n CordovaProperty\n ], Network, \"connection\", null);\n __decorate([\n Cordova({\n eventObservable: true,\n event: 'offline'\n })\n ], Network, \"onDisconnect\", null);\n __decorate([\n Cordova({\n eventObservable: true,\n event: 'online'\n })\n ], Network, \"onConnect\", null);\n Network = __decorate([\n Plugin({\n plugin: 'cordova-plugin-network-information',\n repo: 'https://github.com/apache/cordova-plugin-network-information',\n platforms: ['Amazon Fire OS', 'iOS', 'Android', 'BlackBerry 10', 'Windows Phone 7', 'Windows Phone 8', 'Windows', 'Firefox OS', 'Browser'],\n pluginRef: 'navigator.connection'\n })\n ], Network);\n return Network;\n}());\n//# sourceMappingURL=network.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Plugin, Cordova } from './plugin';\n/**\n * @name NFC\n * @description\n * The NFC plugin allows you to read and write NFC tags. You can also beam to, and receive from, other NFC enabled devices.\n *\n * Use to\n * - read data from NFC tags\n * - write data to NFC tags\n * - send data to other NFC enabled devices\n * - receive data from NFC devices\n *\n * This plugin uses NDEF (NFC Data Exchange Format) for maximum compatibilty between NFC devices, tag types, and operating systems.\n *\n * @usage\n * ```\n * import {NFC, Ndef} from 'ionic-native';\n *\n * let message = Ndef.textRecord('Hello world');\n * NFC.share([message]).then(onSuccess).catch(onError);\n *\n * ```\n */\nexport var NFC = (function () {\n function NFC() {\n }\n /**\n * Registers an event listener for any NDEF tag.\n * @param onSuccess\n * @param onFailure\n * @return {Promise<any>}\n */\n NFC.addNdefListener = function (onSuccess, onFailure) { return; };\n /**\n * Registers an event listener for tags matching any tag type.\n * @param mimeType\n * @param onSuccess\n * @param onFailure\n * @return {Promise<any>}\n */\n NFC.addTagDiscoveredListener = function (mimeType, onSuccess, onFailure) { return; };\n /**\n * Registers an event listener for NDEF tags matching a specified MIME type.\n * @param onSuccess\n * @param onFailure\n * @return {Promise<any>}\n */\n NFC.addMimeTypeListener = function (onSuccess, onFailure) { return; };\n /**\n * Registers an event listener for formatable NDEF tags.\n * @param onSuccess\n * @param onFailure\n * @return {Promise<any>}\n */\n NFC.addNdefFormatableListener = function (onSuccess, onFailure) { return; };\n /**\n * Qrites an NdefMessage to a NFC tag.\n * @param message {any[]}\n * @return {Promise<any>}\n */\n NFC.write = function (message) { return; };\n /**\n * Makes a NFC tag read only. **Warning** this is permanent.\n * @return {Promise<any>}\n */\n NFC.makeReadyOnly = function () { return; };\n /**\n * Shares an NDEF Message via peer-to-peer.\n * @param message An array of NDEF Records.\n * @return {Promise<any>}\n */\n NFC.share = function (message) { return; };\n /**\n * Stop sharing NDEF data via peer-to-peer.\n * @return {Promise<any>}\n */\n NFC.unshare = function () { return; };\n /**\n * Erase a NDEF tag\n */\n NFC.erase = function () { return; };\n /**\n * Send a file to another device via NFC handover.\n * @param uris A URI as a String, or an array of URIs.\n * @return {Promise<any>}\n */\n NFC.handover = function (uris) { return; };\n /**\n * Stop sharing NDEF data via NFC handover.\n * @return {Promise<any>}\n */\n NFC.stopHandover = function () { return; };\n /**\n * Show the NFC settings on the device.\n * @return {Promise<any>}\n */\n NFC.showSettings = function () { return; };\n /**\n * Check if NFC is available and enabled on this device.\n * @return {Promise<any>}\n */\n NFC.enabled = function () { return; };\n __decorate([\n Cordova({\n observable: true,\n successIndex: 0,\n errorIndex: 3,\n clearFunction: 'removeNdefListener',\n clearWithArgs: true\n })\n ], NFC, \"addNdefListener\", null);\n __decorate([\n Cordova({\n observable: true,\n successIndex: 1,\n errorIndex: 4,\n clearFunction: 'removeTagDiscoveredListener',\n clearWithArgs: true\n })\n ], NFC, \"addTagDiscoveredListener\", null);\n __decorate([\n Cordova({\n observable: true,\n successIndex: 0,\n errorIndex: 3,\n clearFunction: 'removeMimeTypeListener',\n clearWithArgs: true\n })\n ], NFC, \"addMimeTypeListener\", null);\n __decorate([\n Cordova({\n observable: true,\n successIndex: 0,\n errorIndex: 3\n })\n ], NFC, \"addNdefFormatableListener\", null);\n __decorate([\n Cordova()\n ], NFC, \"write\", null);\n __decorate([\n Cordova()\n ], NFC, \"makeReadyOnly\", null);\n __decorate([\n Cordova()\n ], NFC, \"share\", null);\n __decorate([\n Cordova()\n ], NFC, \"unshare\", null);\n __decorate([\n Cordova()\n ], NFC, \"erase\", null);\n __decorate([\n Cordova()\n ], NFC, \"handover\", null);\n __decorate([\n Cordova()\n ], NFC, \"stopHandover\", null);\n __decorate([\n Cordova()\n ], NFC, \"showSettings\", null);\n __decorate([\n Cordova()\n ], NFC, \"enabled\", null);\n NFC = __decorate([\n Plugin({\n plugin: 'phonegap-nfc',\n pluginRef: 'nfc',\n repo: 'https://github.com/chariotsolutions/phonegap-nfc'\n })\n ], NFC);\n return NFC;\n}());\n//# sourceMappingURL=nfc.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name OneSignal\n * @description\n * The OneSignal plugin is an client implementation for using the [OneSignal](https://onesignal.com/) Service.\n * OneSignal is a simple implementation for delivering push notifications.\n *\n * Requires Cordova plugin: `onesignal-cordova-plugin`. For more info, please see the [OneSignal Cordova Docs](https://documentation.onesignal.com/docs/phonegap-sdk-installation).\n *\n * @usage\n * ```typescript\n * import { OneSignal } from 'ionic-native';\n *\n * OneSignal.init('b2f7f966-d8cc-11e4-bed1-df8f05be55ba',\n * {googleProjectNumber: '703322744261'})\n * .subscribe(jsonData => {\n * console.log('didReceiveRemoteNotificationCallBack: ' + JSON.stringify(jsonData));\n * });\n *\n * OneSignal.enableInAppAlertNotification(true);\n * ```\n *\n */\nexport var OneSignal = (function () {\n function OneSignal() {\n }\n /**\n * Only required method you need to call to setup OneSignal to receive push notifications. Call this from the `deviceready` event.\n *\n * @param {appId} Your AppId from your OneSignal app\n * @param {options} The Google Project Number (which you can get from the Google Developer Potal) and the autoRegister option.\n * @returns {Observable} when a notification is received. Handle your notification action here.\n */\n OneSignal.init = function (appId, options) { return; };\n /**\n * Call this when you would like to prompt an iOS user to accept push notifications with the default system prompt.\n * Only use if you passed false to autoRegister when calling init.\n */\n OneSignal.registerForPushNotifications = function () { };\n /**\n * Tag a user based on an app event of your choosing so later you can create segments on [onesignal.com](https://onesignal.com/) to target these users.\n * Recommend using sendTags over sendTag if you need to set more than one tag on a user at a time.\n *\n * @param {key} Key of your choosing to create or update.\n * @param {value} Value to set on the key. NOTE: Passing in a blank String deletes the key, you can also call deleteTag.\n */\n OneSignal.sendTag = function (key, value) { };\n /**\n * Tag a user based on an app event of your choosing so later you can create segments on [onesignal.com](https://onesignal.com/) to target these users.\n * Recommend using sendTags over sendTag if you need to set more than one tag on a user at a time.\n *\n * @param {json} Pass a json object with key/value pairs like: {key: \"value\", key2: \"value2\"}\n */\n OneSignal.sendTags = function (json) { };\n /**\n * Retrieve a list of tags that have been set on the user from the OneSignal server.\n *\n * @returns {Promise} Returns a Promise that resolves when tags are recieved.\n */\n OneSignal.getTags = function () { return; };\n /**\n * Deletes a tag that was previously set on a user with `sendTag` or `sendTags`. Use `deleteTags` if you need to delete more than one.\n *\n * @param {key} Key to remove.\n */\n OneSignal.deleteTag = function (key) { };\n /**\n * Deletes tags that were previously set on a user with `sendTag` or `sendTags`.\n *\n * @param {keys} Keys to remove.\n */\n OneSignal.deleteTags = function (keys) { };\n /**\n * Lets you retrieve the OneSignal user id and device token.\n * Your handler is called after the device is successfully registered with OneSignal.\n *\n * @returns {Promise} Returns a Promise that reolves if the device was successfully registered.\n * It returns a JSON with `userId`and `pushToken`.\n */\n OneSignal.getIds = function () { return; };\n /**\n * Warning:\n * Only applies to Android and Amazon. You can call this from your UI from a button press for example to give your user's options for your notifications.\n *\n * By default OneSignal always vibrates the device when a notification is displayed unless the device is in a total silent mode.\n * Passing false means that the device will only vibrate lightly when the device is in it's vibrate only mode.\n *\n * @param {enable} false to disable vibrate, true to re-enable it.\n */\n OneSignal.enableVibrate = function (enable) { };\n /**\n * Warning:\n * Only applies to Android and Amazon. You can call this from your UI from a button press for example to give your user's options for your notifications.\n *\n * By default OneSignal plays the system's default notification sound when the device's notification system volume is turned on.\n * Passing false means that the device will only vibrate unless the device is set to a total silent mode.\n *\n * @param {enable} false to disable sound, true to re-enable it.\n */\n OneSignal.enableSound = function (enable) { };\n /**\n * Warning:\n * Only applies to Android and Amazon devices.\n *\n * By default this is false and notifications will not be shown when the user is in your app, instead the notificationOpenedCallback is fired.\n * If set to true notifications will always show in the notification area and notificationOpenedCallback will not fire until the user taps on the notification.\n *\n * @param {enable} enable\n */\n OneSignal.enableNotificationsWhenActive = function (enable) { };\n /**\n * By default this is false and notifications will not be shown when the user is in your app, instead the notificationOpenedCallback is fired.\n * If set to true notifications will be shown as native alert boxes if a notification is received when the user is in your app.\n * The notificationOpenedCallback is then fired after the alert box is closed.\n *\n * @param {enable} enable\n */\n OneSignal.enableInAppAlertNotification = function (enable) { };\n /**\n * You can call this method with false to opt users out of receiving all notifications through OneSignal.\n * You can pass true later to opt users back into notifications.\n *\n * @param {enable} enable\n */\n OneSignal.setSubscription = function (enable) { };\n /**\n *\n * @param {notificationObj} Parameters see POST [documentation](https://documentation.onesignal.com/v2.0/docs/notifications-create-notification)\n * @returns {Promise} Returns a Promise that resolves if the notification was send successfully.\n */\n OneSignal.postNotification = function (notificationObj) { return; };\n /**\n * Prompts the user for location permission to allow geotagging based on the \"Location radius\" filter on the OneSignal dashboard.\n */\n OneSignal.promptLocation = function () { };\n /**\n * Enable logging to help debug if you run into an issue setting up OneSignal.\n * The logging levels are as follows: 0 = None, 1= Fatal, 2 = Errors, 3 = Warnings, 4 = Info, 5 = Debug, 6 = Verbose\n \n * The higher the value the more information is shown.\n *\n * @param {loglevel} contains two properties: logLevel (for console logging) and visualLevel (for dialog messages)\n */\n OneSignal.setLogLevel = function (logLevel) { };\n __decorate([\n Cordova({ observable: true })\n ], OneSignal, \"init\", null);\n __decorate([\n Cordova({ sync: true })\n ], OneSignal, \"registerForPushNotifications\", null);\n __decorate([\n Cordova({ sync: true })\n ], OneSignal, \"sendTag\", null);\n __decorate([\n Cordova({ sync: true })\n ], OneSignal, \"sendTags\", null);\n __decorate([\n Cordova()\n ], OneSignal, \"getTags\", null);\n __decorate([\n Cordova({ sync: true })\n ], OneSignal, \"deleteTag\", null);\n __decorate([\n Cordova({ sync: true })\n ], OneSignal, \"deleteTags\", null);\n __decorate([\n Cordova()\n ], OneSignal, \"getIds\", null);\n __decorate([\n Cordova({ sync: true })\n ], OneSignal, \"enableVibrate\", null);\n __decorate([\n Cordova({ sync: true })\n ], OneSignal, \"enableSound\", null);\n __decorate([\n Cordova({ sync: true })\n ], OneSignal, \"enableNotificationsWhenActive\", null);\n __decorate([\n Cordova({ sync: true })\n ], OneSignal, \"enableInAppAlertNotification\", null);\n __decorate([\n Cordova({ sync: true })\n ], OneSignal, \"setSubscription\", null);\n __decorate([\n Cordova()\n ], OneSignal, \"postNotification\", null);\n __decorate([\n Cordova({ sync: true })\n ], OneSignal, \"promptLocation\", null);\n __decorate([\n Cordova({ sync: true })\n ], OneSignal, \"setLogLevel\", null);\n OneSignal = __decorate([\n Plugin({\n plugin: 'onesignal-cordova-plugin',\n pluginRef: 'plugins.OneSignal',\n repo: 'https://github.com/OneSignal/OneSignal-Cordova-SDK'\n })\n ], OneSignal);\n return OneSignal;\n}());\n//# sourceMappingURL=onesignal.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Plugin, Cordova } from './plugin';\n/**\n * @name Photo Viewer\n * @description This plugin can display your image in full screen with the ability to pan, zoom, and share the image.\n * @usage\n * ```typescript\n * import { PhotoViewer } from 'ionic-native';\n *\n * PhotoViewer.show('https://mysite.com/path/to/image.jpg');\n *\n * PhotoViewer.show('https://mysite.com/path/to/image.jpg', 'My image title', {share: false});\n * ```\n */\nexport var PhotoViewer = (function () {\n function PhotoViewer() {\n }\n /**\n * Shows an image in full screen\n * @param url {string} URL or path to image\n * @param title {string}\n * @param options {any}\n */\n PhotoViewer.show = function (url, title, options) { };\n __decorate([\n Cordova({ sync: true })\n ], PhotoViewer, \"show\", null);\n PhotoViewer = __decorate([\n Plugin({\n plugin: 'com-sarriaroman-photoviewer',\n pluginRef: 'PhotoViewer',\n repo: 'https://github.com/sarriaroman/photoviewer'\n })\n ], PhotoViewer);\n return PhotoViewer;\n}());\n//# sourceMappingURL=photo-viewer.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, CordovaProperty, Plugin } from './plugin';\n/**\n * @name Screen Orientation\n * @description\n * Cordova plugin to set/lock the screen orientation in a common way for iOS, Android, WP8 and Blackberry 10.\n * This plugin is based on an early version of Screen Orientation API so the api does not currently match the current spec.\n *\n * Requires Cordova plugin: `cordova-plugin-screen-orientation`. For more info, please see the [Screen Orientation plugin docs](https://github.com/apache/cordova-plugin-screen-orientation).\n *\n * @usage\n * ```typescript\n * import { ScreenOrientation } from 'ionic-native';\n *\n *\n * // set to either landscape\n * ScreenOrientation.lockOrientation('landscape');\n *\n * // allow user rotate\n * ScreenOrientation.unlockOrientation();\n * ```\n *\n * @advanced\n *\n * Accepted orientation values:\n *\n * | Value | Description |\n * |-------------------------------|------------------------------------------------------------------------------|\n * | portrait-primary | The orientation is in the primary portrait mode. |\n * | portrait-secondary | The orientation is in the secondary portrait mode. |\n * | landscape-primary | The orientation is in the primary landscape mode. |\n * | landscape-secondary | The orientation is in the secondary landscape mode. |\n * | portrait | The orientation is either portrait-primary or portrait-secondary (sensor). |\n * | landscape | The orientation is either landscape-primary or landscape-secondary (sensor). |\n *\n */\nexport var ScreenOrientation = (function () {\n function ScreenOrientation() {\n }\n /**\n * Lock the orientation to the passed value.\n * See below for accepted values\n * @param {orientation} The orientation which should be locked. Accepted values see table below.\n */\n ScreenOrientation.lockOrientation = function (orientation) { };\n /**\n * Unlock and allow all orientations.\n */\n ScreenOrientation.unlockOrientation = function () { };\n Object.defineProperty(ScreenOrientation, \"orientation\", {\n /*\n * Get the current orientation of the device.\n */\n get: function () {\n return window.screen.orientation;\n },\n enumerable: true,\n configurable: true\n });\n __decorate([\n Cordova({ sync: true })\n ], ScreenOrientation, \"lockOrientation\", null);\n __decorate([\n Cordova({ sync: true })\n ], ScreenOrientation, \"unlockOrientation\", null);\n __decorate([\n CordovaProperty\n ], ScreenOrientation, \"orientation\", null);\n ScreenOrientation = __decorate([\n Plugin({\n plugin: 'cordova-plugin-screen-orientation',\n pluginRef: 'window.screen',\n repo: 'https://github.com/apache/cordova-plugin-screen-orientation',\n platforms: ['Android', 'iOS', 'Windows Phone 8']\n })\n ], ScreenOrientation);\n return ScreenOrientation;\n}());\n//# sourceMappingURL=screen-orientation.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Plugin, Cordova } from './plugin';\n/**\n * @name PayPal\n * @description\n * PayPal plugin for Cordova/Ionic Applications\n *\n * @usage\n * ```\n * import {PayPal} from 'ionic-native';\n *\n * PayPal.init({\n * \"PayPalEnvironmentProduction\": \"YOUR_PRODUCTION_CLIENT_ID\",\n \"PayPalEnvironmentSandbox\": \"YOUR_SANDBOX_CLIENT_ID\"\n })\n * .then(onSuccess)\n * .catch(onError);\n *\n * ```\n */\nexport var PayPal = (function () {\n function PayPal() {\n }\n /**\n * You must preconnect to PayPal to prepare the device for processing payments.\n * This improves the user experience, by making the presentation of the\n * UI faster. The preconnect is valid for a limited time, so\n * the recommended time to preconnect is on page load.\n *\n * @param {String} environment: available options are \"PayPalEnvironmentNoNetwork\", \"PayPalEnvironmentProduction\" and \"PayPalEnvironmentSandbox\"\n * @param {PayPalConfiguration} configuration: For Future Payments merchantName, merchantPrivacyPolicyURL and merchantUserAgreementURL must be set be set\n */\n PayPal.init = function (environment, configuration) { return; };\n /**\n * Retreive the version of PayPal iOS SDK Library.\n */\n PayPal.version = function () { return; };\n /**\n * Start PayPal UI to collect payment from the user.\n * See https://developer.paypal.com/webapps/developer/docs/integration/mobile/ios-integration-guide/\n * for more documentation of the params.\n *\n * @param {PayPalPayment} payment: PayPalPayment object\n */\n PayPal.renderSinglePaymentUI = function (payment) { return; };\n /**\n * Once a user has consented to future payments, when the user subsequently initiates a PayPal payment\n * from their device to be completed by your server, PayPal uses a Correlation ID to verify that the\n * payment is originating from a valid, user-consented device+application.\n * This helps reduce fraud and decrease declines.\n * This method MUST be called prior to initiating a pre-consented payment (a \"future payment\") from a mobile device.\n * Pass the result to your server, to include in the payment request sent to PayPal.\n * Do not otherwise cache or store this value.\n */\n PayPal.clientMetadataID = function () { return; };\n /**\n * Please Read Docs on Future Payments at https://github.com/paypal/PayPal-iOS-SDK#future-payments\n */\n PayPal.renderFuturePaymentUI = function () { return; };\n /**\n * Please Read Docs on Profile Sharing at https://github.com/paypal/PayPal-iOS-SDK#profile-sharing\n *\n * @param {Array<string>} scopes: scopes Set of requested scope-values. Accepted scopes are: openid, profile, address, email, phone, futurepayments and paypalattributes\n * See https://developer.paypal.com/docs/integration/direct/identity/attributes/ for more details\n **/\n PayPal.renderProfileSharingUI = function (scopes) { return; };\n __decorate([\n Cordova()\n ], PayPal, \"init\", null);\n __decorate([\n Cordova()\n ], PayPal, \"version\", null);\n __decorate([\n Cordova()\n ], PayPal, \"renderSinglePaymentUI\", null);\n __decorate([\n Cordova()\n ], PayPal, \"clientMetadataID\", null);\n __decorate([\n Cordova()\n ], PayPal, \"renderFuturePaymentUI\", null);\n __decorate([\n Cordova()\n ], PayPal, \"renderProfileSharingUI\", null);\n PayPal = __decorate([\n Plugin({\n plugin: 'com.paypal.cordova.mobilesdk',\n pluginRef: 'PayPalMobile',\n repo: 'https://github.com/paypal/PayPal-Cordova-Plugin'\n })\n ], PayPal);\n return PayPal;\n}());\n//# sourceMappingURL=pay-pal.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Pin Dialog\n * @description\n *\n * @usage\n * ```typescript\n * import { PinDialog } from 'ionic-native';\n *\n *\n * PinDialog.prompt('Enter your PIN', 'Verify PIN', ['OK', 'Cancel'])\n * .then(\n * (result: any) => {\n * if (result.buttonIndex == 1) console.log('User clicked OK, value is: ', result.input1);\n * else if(result.buttonIndex == 2) console.log('User cancelled');\n * }\n * );\n * ```\n */\nexport var PinDialog = (function () {\n function PinDialog() {\n }\n /**\n * Show pin dialog\n * @param {string} message Message to show the user\n * @param {string} title Title of the dialog\n * @param {string[]} buttons Buttons to show\n */\n PinDialog.prompt = function (message, title, buttons) { return; };\n __decorate([\n Cordova({\n successIndex: 1\n })\n ], PinDialog, \"prompt\", null);\n PinDialog = __decorate([\n Plugin({\n plugin: 'cordova-plugin-pin-dialog',\n pluginRef: 'plugins.pinDialog',\n repo: 'https://github.com/Paldom/PinDialog'\n })\n ], PinDialog);\n return PinDialog;\n}());\n//# sourceMappingURL=pin-dialog.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Plugin, Cordova } from './plugin';\n/**\n * @name PowerManagement\n * @description\n * The PowerManagement plugin offers access to the devices power-management functionality.\n * It should be used for applications which keep running for a long time without any user interaction.\n *\n * @usage\n * ```\n * import {PowerManagement} from 'ionic-native';\n *\n * PowerManagement.acquire()\n * .then(onSuccess)\n * .catch(onError);\n *\n * ```\n */\nexport var PowerManagement = (function () {\n function PowerManagement() {\n }\n /**\n * Acquire a wakelock by calling this.\n */\n PowerManagement.acquire = function () { return; };\n /**\n * This acquires a partial wakelock, allowing the screen to be dimmed.\n */\n PowerManagement.dim = function () { return; };\n /**\n * Release the wakelock. It's important to do this when you're finished with the wakelock, to avoid unnecessary battery drain.\n */\n PowerManagement.release = function () { return; };\n /**\n * By default, the plugin will automatically release a wakelock when your app is paused (e.g. when the screen is turned off, or the user switches to another app).\n * It will reacquire the wakelock upon app resume. If you would prefer to disable this behaviour, you can use this function.\n * @param set {boolean}\n */\n PowerManagement.setReleaseOnPause = function (set) { return; };\n __decorate([\n Cordova()\n ], PowerManagement, \"acquire\", null);\n __decorate([\n Cordova()\n ], PowerManagement, \"dim\", null);\n __decorate([\n Cordova()\n ], PowerManagement, \"release\", null);\n __decorate([\n Cordova()\n ], PowerManagement, \"setReleaseOnPause\", null);\n PowerManagement = __decorate([\n Plugin({\n plugin: 'cordova-plugin-powermanagement-orig',\n pluginRef: 'https://github.com/Viras-/cordova-plugin-powermanagement',\n repo: 'powerManagement'\n })\n ], PowerManagement);\n return PowerManagement;\n}());\n//# sourceMappingURL=power-management.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Printer\n * @description Prints documents or HTML rendered content\n * @usage\n * ```typescript\n * import {Printer, PrintOptions} from 'ionic-native';\n *\n * Printer.isAvailable().then(onSuccess, onError);\n *\n * let options: PrintOptions = {\n * name: 'MyDocument',\n * printerId: 'printer007',\n * duplex: true,\n * landscape: true,\n * grayscale: true\n * };\n *\n * Printer.print(content, options).then(onSuccess, onError);\n * ```\n */\nexport var Printer = (function () {\n function Printer() {\n }\n /**\n * Checks whether to device is capable of printing.\n */\n Printer.isAvailable = function () { return; };\n /**\n * Sends content to the printer.\n * @param {content} The content to print. Can be a URL or an HTML string. If a HTML DOM Object is provided, its innerHtml property value will be used.\n * @param {options} The options to pass to the printer\n */\n Printer.print = function (content, options) { return; };\n __decorate([\n Cordova()\n ], Printer, \"isAvailable\", null);\n __decorate([\n Cordova()\n ], Printer, \"print\", null);\n Printer = __decorate([\n Plugin({\n plugin: 'de.appplant.cordova.plugin.printer',\n pluginRef: 'cordova.plugins.printer',\n repo: 'https://github.com/katzer/cordova-plugin-printer.git',\n platforms: ['Android', 'iOS']\n })\n ], Printer);\n return Printer;\n}());\n//# sourceMappingURL=printer.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Push\n * @description\n * Register and receive push notifications.\n *\n * Requires Cordova plugin: `phonegap-plugin-push`. For more info, please see the [Push plugin docs](https://github.com/phonegap/phonegap-plugin-push).\n *\n * For TypeScript users, see the [Push plugin docs about using TypeScript for custom notifications](https://github.com/phonegap/phonegap-plugin-push/blob/master/docs/TYPESCRIPT.md).\n *\n * @usage\n * ```typescript\n * import { Push } from 'ionic-native';\n * ```\n */\nexport var Push = (function () {\n function Push() {\n }\n /**\n * Initialize the plugin on the native side.\n *\n * ```\n * var push = Push.init({\n * android: {\n * senderID: '12345679'\n * },\n * ios: {\n * alert: 'true',\n * badge: true,\n * sound: 'false'\n * },\n * windows: {}\n * });\n * ```\n *\n * @param {PushOptions} options The Push [options](https://github.com/phonegap/phonegap-plugin-push/blob/master/docs/API.md#parameters).\n * @return {PushNotification} Returns a new [PushNotification](https://github.com/phonegap/phonegap-plugin-push/blob/master/docs/API.md#pushonevent-callback) object.\n */\n Push.init = function (options) { return; };\n /**\n * Check whether the push notification permission has been granted.\n * @return {Promise} Returns a Promise that resolves with an object with one property: isEnabled, a boolean that indicates if permission has been granted.\n */\n Push.hasPermission = function () { return; };\n __decorate([\n Cordova({\n sync: true\n })\n ], Push, \"init\", null);\n __decorate([\n Cordova()\n ], Push, \"hasPermission\", null);\n Push = __decorate([\n Plugin({\n plugin: 'phonegap-plugin-push',\n pluginRef: 'PushNotification',\n repo: 'https://github.com/phonegap/phonegap-plugin-push'\n })\n ], Push);\n return Push;\n}());\n//# sourceMappingURL=push.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name SafariViewController\n * @description\n * @usage\n * ```\n * import { SafariViewController } from 'ionic-native';\n *\n *\n * SafariViewController.isAvailable()\n * .then(\n * (available: boolean) => {\n * if(available){\n *\n * SafariViewController.show({\n * url: 'http://ionic.io',\n * hidden: false,\n * animated: false,\n * transition: 'curl',\n * enterReaderModeIfAvailable: true,\n * tintColor: '#ff0000'\n * })\n * .then(\n * (result: any) => {\n * if(result.event === 'opened') console.log('Opened');\n * else if(result.event === 'loaded') console.log('Loaded');\n * else if(result.event === 'closed') console.log('Closed');\n * },\n * (error: any) => console.error(error)\n * );\n *\n * } else {\n * // use fallback browser, example InAppBrowser\n * }\n * }\n * );\n * ```\n */\nexport var SafariViewController = (function () {\n function SafariViewController() {\n }\n /**\n * Checks if SafariViewController is available\n */\n SafariViewController.isAvailable = function () { return; };\n /**\n * Shows Safari View Controller\n * @param options\n */\n SafariViewController.show = function (options) { return; };\n /**\n * Hides Safari View Controller\n */\n SafariViewController.hide = function () { };\n /**\n * Tries to connect to the Chrome's custom tabs service. you must call this method before calling any of the other methods listed below.\n */\n SafariViewController.connectToService = function () { return; };\n /**\n * Call this method whenever there's a chance the user will open an external url.\n */\n SafariViewController.warmUp = function () { return; };\n /**\n * For even better performance optimization, call this methods if there's more than a 50% chance the user will open a certain URL.\n * @param url\n */\n SafariViewController.mayLaunchUrl = function (url) { return; };\n __decorate([\n Cordova()\n ], SafariViewController, \"isAvailable\", null);\n __decorate([\n Cordova()\n ], SafariViewController, \"show\", null);\n __decorate([\n Cordova()\n ], SafariViewController, \"hide\", null);\n __decorate([\n Cordova()\n ], SafariViewController, \"connectToService\", null);\n __decorate([\n Cordova()\n ], SafariViewController, \"warmUp\", null);\n __decorate([\n Cordova()\n ], SafariViewController, \"mayLaunchUrl\", null);\n SafariViewController = __decorate([\n Plugin({\n plugin: 'cordova-plugin-safariviewcontroller',\n pluginRef: 'SafariViewController',\n platforms: ['iOS', 'Android'],\n repo: 'https://github.com/EddyVerbruggen/cordova-plugin-safariviewcontroller'\n })\n ], SafariViewController);\n return SafariViewController;\n}());\n//# sourceMappingURL=safari-view-controller.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Plugin } from './plugin';\n/**\n * @name Screenshot\n * @description Captures a screen shot\n * @usage\n * ```typescript\n * import {Screenshot} from 'ionic-native';\n *\n * // Take a screenshot and save to file\n * Screenshot.save('jpg', 80, 'myscreenshot.jpg').then(onSuccess, onError);\n *\n * // Take a screenshot and get temporary file URI\n * Screenshot.URI(80).then(onSuccess, onError);\n * ```\n */\nexport var Screenshot = (function () {\n function Screenshot() {\n }\n /**\n * Takes screenshot and saves the image\n *\n * @param {string} format. Format can take the value of either 'jpg' or 'png'\n * On ios, only 'jpg' format is supported\n * @param {number} quality. Determines the quality of the screenshot.\n * Default quality is set to 100.\n * @param {string} filename. Name of the file as stored on the storage\n */\n Screenshot.save = function (format, quality, filename) {\n return new Promise(function (resolve, reject) {\n navigator.screenshot.save(function (error, result) {\n if (error) {\n reject(error);\n }\n else {\n resolve(result);\n }\n }, format, quality, filename);\n });\n };\n /**\n * Takes screenshot and returns the image as an URI\n *\n * @param {number} quality. Determines the quality of the screenshot.\n * Default quality is set to 100.\n */\n Screenshot.URI = function (quality) {\n return new Promise(function (resolve, reject) {\n navigator.screenshot.URI(function (error, result) {\n if (error) {\n reject(error);\n }\n else {\n resolve(result);\n }\n }, quality);\n });\n };\n Screenshot = __decorate([\n Plugin({\n plugin: 'https://github.com/gitawego/cordova-screenshot.git',\n pluginRef: 'navigator.screenshot',\n repo: 'https://github.com/gitawego/cordova-screenshot.git'\n })\n ], Screenshot);\n return Screenshot;\n}());\n//# sourceMappingURL=screenshot.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CordovaInstance, Plugin } from './plugin';\n/**\n * @name Secure Storage\n * @description\n * This plugin gets, sets and removes key,value pairs from a device's secure storage.\n *\n * Requires Cordova plugin: `cordova-plugin-secure-storage`. For more info, please see the [Cordova Secure Storage docs](https://github.com/Crypho/cordova-plugin-secure-storage).\n *\n * @usage\n *\n * ```typescript\n * import { SecureStorage } from 'ionic-native';\n *\n * let secureStorage: SecureStorage = new SecureStorage();\n * secureStorage.create('my_store_name')\n * .then(\n * () => console.log('Storage is ready!'),\n * error => console.log(error)\n * );\n *\n * secureStorage.get('myitem')\n * .then(\n * data => console.log(data),\n * error => console.log(error)\n * );\n *\n * secureStorage.set('myitem', 'myvalue')\n * .then(\n * data => console.log(data),\n * error => console.log(error)\n * );\n *\n * secureStorage.remove('myitem')\n * .then(\n * data => console.log(data),\n * error => console.log(error)\n * );\n * ```\n */\nexport var SecureStorage = (function () {\n function SecureStorage() {\n }\n /**\n * Creates a namespaced storage.\n * @param store {string}\n */\n SecureStorage.prototype.create = function (store) {\n var _this = this;\n return new Promise(function (res, rej) {\n _this._objectInstance = new cordova.plugins.SecureStorage(res, rej, store);\n });\n };\n /**\n * Gets a stored item\n * @param reference {string}\n */\n SecureStorage.prototype.get = function (reference) { return; };\n /**\n * Stores a value\n * @param reference {string}\n * @param value {string}\n */\n SecureStorage.prototype.set = function (reference, value) { return; };\n /**\n * Removes a single stored item\n * @param reference {string}\n */\n SecureStorage.prototype.remove = function (reference) { return; };\n __decorate([\n CordovaInstance({\n callbackOrder: 'reverse'\n })\n ], SecureStorage.prototype, \"get\", null);\n __decorate([\n CordovaInstance({\n callbackOrder: 'reverse'\n })\n ], SecureStorage.prototype, \"set\", null);\n __decorate([\n CordovaInstance({\n callbackOrder: 'reverse'\n })\n ], SecureStorage.prototype, \"remove\", null);\n SecureStorage = __decorate([\n Plugin({\n plugin: 'cordova-plugin-secure-storage',\n pluginRef: 'plugins.securestorage',\n repo: 'https://github.com/Crypho/cordova-plugin-secure-storage',\n platforms: ['Android', 'iOS', 'Windows Phone', 'Browser']\n })\n ], SecureStorage);\n return SecureStorage;\n}());\n//# sourceMappingURL=securestorage.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Plugin, Cordova } from './plugin';\n/**\n * @name Shake\n * @description Handles shake gesture\n * @usage\n * ```typescript\n * import {Shake} from 'ionic-native';\n *\n * let watch = Shake.startWatch(60).subscribe(() => {\n * // do something\n * });\n *\n * watch.unsubscribe();\n * ```\n */\nexport var Shake = (function () {\n function Shake() {\n }\n /**\n * Watch for shake gesture\n * @param sensitivity {number} Optional sensitivity parameter. Defaults to 40\n */\n Shake.startWatch = function (sensitivity) { return; };\n __decorate([\n Cordova({\n observable: true,\n clearFunction: 'stopWatch',\n successIndex: 0,\n errorIndex: 2\n })\n ], Shake, \"startWatch\", null);\n Shake = __decorate([\n Plugin({\n plugin: 'cordova-plugin-shake',\n pluginRef: 'shake',\n repo: 'https://github.com/leecrossley/cordova-plugin-shake'\n })\n ], Shake);\n return Shake;\n}());\n//# sourceMappingURL=shake.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Sim\n * @description\n * Gets info from the Sim card like the carrier name, mcc, mnc and country code and other system dependent info.\n *\n * Requires Cordova plugin: `cordova-plugin-sim`. For more info, please see the [Cordova Sim docs](https://github.com/pbakondy/cordova-plugin-sim).\n *\n * @usage\n * ```typescript\n * import { Sim } from 'ionic-native';\n *\n *\n * Sim.getSimInfo().then(\n * (info) => console.log('Sim info: ', info),\n * (err) => console.log('Unable to get sim info: ', err)\n * );\n * ```\n */\nexport var Sim = (function () {\n function Sim() {\n }\n /**\n * Returns info from the SIM card.\n * @returns {Promise}\n */\n Sim.getSimInfo = function () { return; };\n __decorate([\n Cordova()\n ], Sim, \"getSimInfo\", null);\n Sim = __decorate([\n Plugin({\n plugin: 'cordova-plugin-sim',\n pluginRef: 'plugins.sim',\n repo: 'https://github.com/pbakondy/cordova-plugin-sim',\n platforms: ['Android', 'iOS', 'Windows Phone']\n })\n ], Sim);\n return Sim;\n}());\n//# sourceMappingURL=sim.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name SMS\n * @description\n *\n * Requires Cordova plugin: cordova-plugin-sms. For more info, please see the [SMS plugin docs](https://github.com/cordova-sms/cordova-sms-plugin).\n *\n * @usage\n * ```typescript\n * import { SMS } from 'ionic-native';\n *\n *\n * // Send a text message using default options\n * SMS.send('416123456', 'Hello world!');\n * ```\n */\nexport var SMS = (function () {\n function SMS() {\n }\n /**\n * Sends sms to a number\n * @param phoneNumber {string|Array<string>} Phone number\n * @param message {string} Message\n * @param options {SmsOptions} Options\n * @returns {Promise<any>} Resolves promise when the SMS has been sent\n */\n SMS.send = function (phoneNumber, message, options) { return; };\n __decorate([\n Cordova()\n ], SMS, \"send\", null);\n SMS = __decorate([\n Plugin({\n plugin: 'cordova-sms-plugin',\n pluginRef: 'sms',\n repo: 'https://github.com/cordova-sms/cordova-sms-plugin',\n platforms: ['Android', 'iOS', 'Windows Phone 8']\n })\n ], SMS);\n return SMS;\n}());\n//# sourceMappingURL=sms.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Social Sharing\n * @description\n * Share text, files, images, and links via social networks, sms, and email.\n * @usage\n * ```typescript\n * import { SocialSharing } from 'ionic-native';\n *\n * // Check if sharing via email is supported\n * SocialSharing.canShareViaEmail().then(() => {\n * // Sharing via email is possible\n * }).catch(() => {\n * // Sharing via email is not possible\n * });\n *\n * // Share via email\n * SocialSharing.shareViaEmail('Body', 'Subject', 'recipient@example.org').then(() => {\n * // Success!\n * }).catch(() => {\n * // Error!\n * });\n * ```\n */\nexport var SocialSharing = (function () {\n function SocialSharing() {\n }\n /**\n * Shares using the share sheet\n * @param message {string} The message you would like to share.\n * @param subject {string} The subject\n * @param file {string|string[]} URL(s) to file(s) or image(s), local path(s) to file(s) or image(s), or base64 data of an image. Only the first file/image will be used on Windows Phone.\n * @param url {string} A URL to share\n * @returns {Promise}\n */\n SocialSharing.share = function (message, subject, file, url) { return; };\n /**\n * Shares using the share sheet with additional options and returns a result object or an error message (requires plugin version 5.1.0+)\n * @param options {object} The options object with the message, subject, files, url and chooserTitle properties.\n * @returns {Promise}\n */\n SocialSharing.shareWithOptions = function (options) { return; };\n /**\n * Checks if you can share via a specific app.\n * @param appName {string} App name or package name. Examples: instagram or com.apple.social.facebook\n * @param message {string}\n * @param subject {string}\n * @param image {string}\n * @param url {string}\n * @returns {Promise}\n */\n SocialSharing.canShareVia = function (appName, message, subject, image, url) { return; };\n /**\n * Shares directly to Twitter\n * @param message {string}\n * @param image {string}\n * @param url {string}\n * @returns {Promise}\n */\n SocialSharing.shareViaTwitter = function (message, image, url) { return; };\n /**\n * Shares directly to Facebook\n * @param message {string}\n * @param image {string}\n * @param url {string}\n * @returns {Promise}\n */\n SocialSharing.shareViaFacebook = function (message, image, url) { return; };\n /**\n * Shares directly to Facebook with a paste message hint\n * @param message {string}\n * @param image {string}\n * @param url {string}\n * @param pasteMessageHint {string}\n * @returns {Promise}\n */\n SocialSharing.shareViaFacebookWithPasteMessageHint = function (message, image, url, pasteMessageHint) { return; };\n /**\n * Shares directly to Instagram\n * @param message {string}\n * @param image {string}\n * @returns {Promise}\n */\n SocialSharing.shareViaInstagram = function (message, image) { return; };\n /**\n * Shares directly to WhatsApp\n * @param message {string}\n * @param image {string}\n * @param url {string}\n * @returns {Promise}\n */\n SocialSharing.shareViaWhatsApp = function (message, image, url) { return; };\n /**\n * Shares directly to a WhatsApp Contact\n * @param receiver {string} Pass phone number on Android, and Addressbook ID (abid) on iOS\n * @param message {string} Message to send\n * @param image {string} Image to send (does not work on iOS\n * @param url {string} Link to send\n * @returns {Promise}\n */\n SocialSharing.shareViaWhatsAppToReceiver = function (receiver, message, image, url) { return; };\n /**\n * Share via SMS\n * @param messge {string} message to send\n * @param phoneNumber {string} Number or multiple numbers seperated by commas\n * @returns {Promise}\n */\n SocialSharing.shareViaSMS = function (messge, phoneNumber) { return; };\n /**\n * Checks if you can share via email\n * @returns {Promise}\n */\n SocialSharing.canShareViaEmail = function () { return; };\n /**\n * Share via Email\n * @param message {string}\n * @param subject {string}\n * @param to {string[]}\n * @param cc {string[]} Optional\n * @param bcc {string[]} Optional\n * @param files {string|string[]} Optional URL or local path to file(s) to attach\n * @returns {Promise}\n */\n SocialSharing.shareViaEmail = function (message, subject, to, cc, bcc, files) { return; };\n /**\n * Share via AppName\n * @param appName {string} App name or package name. Examples: instagram or com.apple.social.facebook\n * @param message {string}\n * @param subject {string}\n * @param image {string}\n * @param url {string}\n * @returns {Promise}\n */\n SocialSharing.shareVia = function (appName, message, subject, image, url) { return; };\n __decorate([\n Cordova()\n ], SocialSharing, \"share\", null);\n __decorate([\n Cordova({\n platforms: ['iOS', 'Android']\n })\n ], SocialSharing, \"shareWithOptions\", null);\n __decorate([\n Cordova({\n successIndex: 5,\n errorIndex: 6,\n platforms: ['iOS', 'Android']\n })\n ], SocialSharing, \"canShareVia\", null);\n __decorate([\n Cordova({\n successIndex: 3,\n errorIndex: 4,\n platforms: ['iOS', 'Android']\n })\n ], SocialSharing, \"shareViaTwitter\", null);\n __decorate([\n Cordova({\n successIndex: 3,\n errorIndex: 4,\n platforms: ['iOS', 'Android']\n })\n ], SocialSharing, \"shareViaFacebook\", null);\n __decorate([\n Cordova({\n successIndex: 4,\n errorIndex: 5,\n platforms: ['iOS', 'Android']\n })\n ], SocialSharing, \"shareViaFacebookWithPasteMessageHint\", null);\n __decorate([\n Cordova({\n platforms: ['iOS', 'Android']\n })\n ], SocialSharing, \"shareViaInstagram\", null);\n __decorate([\n Cordova({\n successIndex: 3,\n errorIndex: 4,\n platforms: ['iOS', 'Android']\n })\n ], SocialSharing, \"shareViaWhatsApp\", null);\n __decorate([\n Cordova({\n successIndex: 4,\n errorIndex: 5,\n platforms: ['iOS', 'Android']\n })\n ], SocialSharing, \"shareViaWhatsAppToReceiver\", null);\n __decorate([\n Cordova({\n platforms: ['iOS', 'Android']\n })\n ], SocialSharing, \"shareViaSMS\", null);\n __decorate([\n Cordova({\n platforms: ['iOS', 'Android']\n })\n ], SocialSharing, \"canShareViaEmail\", null);\n __decorate([\n Cordova({\n platforms: ['iOS', 'Android'],\n successIndex: 6,\n errorIndex: 7\n })\n ], SocialSharing, \"shareViaEmail\", null);\n __decorate([\n Cordova({\n successIndex: 5,\n errorIndex: 6,\n platforms: ['iOS', 'Android']\n })\n ], SocialSharing, \"shareVia\", null);\n SocialSharing = __decorate([\n Plugin({\n plugin: 'cordova-plugin-x-socialsharing',\n pluginRef: 'plugins.socialsharing',\n repo: 'https://github.com/EddyVerbruggen/SocialSharing-PhoneGap-Plugin',\n platforms: ['iOS', 'Android', 'Windows Phone']\n })\n ], SocialSharing);\n return SocialSharing;\n}());\n//# sourceMappingURL=socialsharing.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Spinner Dialog\n * @description\n * @usage\n * ```typescript\n * import { SpinnerDialog } from 'ionic-native';\n *\n *\n * SpinnerDialog.show();\n *\n * SpinnerDialog.hide();\n * ```\n */\nexport var SpinnerDialog = (function () {\n function SpinnerDialog() {\n }\n /**\n * Shows the spinner dialog\n * @param title {string} Spinner title (shows on Android only)\n * @param message {string} Spinner message\n * @param cancelCallback {boolean|function} Set to true to set spinner not cancelable. Or provide a function to call when the user cancels the spinner.\n * @param iOSOptions {object} Options for iOS only\n */\n SpinnerDialog.show = function (title, message, cancelCallback, iOSOptions) { };\n /**\n * Hides the spinner dialog if visible\n */\n SpinnerDialog.hide = function () { };\n __decorate([\n Cordova({\n sync: true\n })\n ], SpinnerDialog, \"show\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], SpinnerDialog, \"hide\", null);\n SpinnerDialog = __decorate([\n Plugin({\n plugin: 'cordova-plugin-spinner-dialog',\n pluginRef: 'window.plugins.spinnerDialog',\n repo: 'https://github.com/Paldom/SpinnerDialog',\n platforms: ['Android', 'iOS', 'Windows Phone 8']\n })\n ], SpinnerDialog);\n return SpinnerDialog;\n}());\n//# sourceMappingURL=spinnerdialog.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Splashscreen\n * @description This plugin displays and hides a splash screen during application launch. The methods below allows showing and hiding the splashscreen after the app has loaded.\n * @usage\n * ```typescript\n * import { Splashscreen } from 'ionic-native';\n *\n *\n * Splashscreen.show();\n *\n * Splashscreen.hide();\n * ```\n */\nexport var Splashscreen = (function () {\n function Splashscreen() {\n }\n /**\n * Shows the splashscreen\n */\n Splashscreen.show = function () { };\n /**\n * Hides the splashscreen\n */\n Splashscreen.hide = function () { };\n __decorate([\n Cordova({\n sync: true\n })\n ], Splashscreen, \"show\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], Splashscreen, \"hide\", null);\n Splashscreen = __decorate([\n Plugin({\n plugin: 'cordova-plugin-splashscreen',\n pluginRef: 'navigator.splashscreen',\n repo: 'https://github.com/apache/cordova-plugin-splashscreen'\n })\n ], Splashscreen);\n return Splashscreen;\n}());\n//# sourceMappingURL=splashscreen.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, CordovaInstance, Plugin } from './plugin';\n/**\n * @name SQLite\n *\n * @description\n * Access SQLite databases on the device.\n *\n * @usage\n *\n * ```typescript\n * import { SQLite } from 'ionic-native';\n *\n * let db = new SQLite();\n * db.openDatabase({\n * name: 'data.db',\n * location: 'default' // the location field is required\n * }).then(() => {\n * db.executeSql('create table danceMoves(name VARCHAR(32))', {}).then(() => {\n *\n * }, (err) => {\n * console.error('Unable to execute sql: ', err);\n * });\n * }, (err) => {\n * console.error('Unable to open database: ', err);\n * });\n * ```\n *\n */\nexport var SQLite = (function () {\n function SQLite() {\n }\n Object.defineProperty(SQLite.prototype, \"databaseFeatures\", {\n get: function () {\n return this._objectInstance.databaseFeatures;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Open or create a SQLite database file.\n *\n * See the plugin docs for an explanation of all options: https://github.com/litehelpers/Cordova-sqlite-storage#opening-a-database\n *\n * @param config the config for opening the database.\n * @usage\n *\n * ```typescript\n * import { SQLite } from 'ionic-native';\n *\n * let db = new SQLite();\n * db.openDatabase({\n * name: 'data.db',\n * location: 'default' // the location field is required\n * }).then(() => {\n * db.executeSql('create table danceMoves(name VARCHAR(32))', {}).then(() => {\n *\n * }, (err) => {\n * console.error('Unable to execute sql', err);\n * })\n * }, (err) => {\n * console.error('Unable to open database', err);\n * });\n * ```\n */\n SQLite.prototype.openDatabase = function (config) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n sqlitePlugin.openDatabase(config, function (db) {\n _this._objectInstance = db;\n resolve(db);\n }, function (error) {\n console.warn(error);\n reject(error);\n });\n });\n };\n SQLite.prototype.addTransaction = function (transaction) { };\n SQLite.prototype.transaction = function (fn) { return; };\n SQLite.prototype.readTransaction = function (fn) { return; };\n SQLite.prototype.startNextTransaction = function () { };\n SQLite.prototype.close = function () { return; };\n SQLite.prototype.start = function () { };\n /**\n * Execute SQL on the opened database. Note, you must call `openDatabase` first, and\n * ensure it resolved and successfully opened the database.\n *\n * @usage\n *\n * ```typescript\n * db.executeSql('SELECT FROM puppies WHERE type = ?', ['cavalier']).then((resultSet) => {\n * // Access the items through resultSet.rows\n * // resultSet.rows.item(i)\n * }, (err) => {})\n * ```\n */\n SQLite.prototype.executeSql = function (statement, params) { return; };\n SQLite.prototype.addStatement = function (sql, values) { return; };\n SQLite.prototype.sqlBatch = function (sqlStatements) { return; };\n SQLite.prototype.abortallPendingTransactions = function () { };\n SQLite.prototype.handleStatementSuccess = function (handler, response) { };\n SQLite.prototype.handleStatementFailure = function (handler, response) { };\n SQLite.prototype.run = function () { };\n SQLite.prototype.abort = function (txFailure) { };\n SQLite.prototype.finish = function () { };\n SQLite.prototype.abortFromQ = function (sqlerror) { };\n SQLite.echoTest = function () { return; };\n SQLite.deleteDatabase = function (first) { return; };\n __decorate([\n CordovaInstance({\n sync: true\n })\n ], SQLite.prototype, \"addTransaction\", null);\n __decorate([\n CordovaInstance()\n ], SQLite.prototype, \"transaction\", null);\n __decorate([\n CordovaInstance()\n ], SQLite.prototype, \"readTransaction\", null);\n __decorate([\n CordovaInstance({\n sync: true\n })\n ], SQLite.prototype, \"startNextTransaction\", null);\n __decorate([\n CordovaInstance()\n ], SQLite.prototype, \"close\", null);\n __decorate([\n CordovaInstance({\n sync: true\n })\n ], SQLite.prototype, \"start\", null);\n __decorate([\n CordovaInstance()\n ], SQLite.prototype, \"executeSql\", null);\n __decorate([\n CordovaInstance()\n ], SQLite.prototype, \"addStatement\", null);\n __decorate([\n CordovaInstance()\n ], SQLite.prototype, \"sqlBatch\", null);\n __decorate([\n CordovaInstance({\n sync: true\n })\n ], SQLite.prototype, \"abortallPendingTransactions\", null);\n __decorate([\n CordovaInstance({\n sync: true\n })\n ], SQLite.prototype, \"handleStatementSuccess\", null);\n __decorate([\n CordovaInstance({\n sync: true\n })\n ], SQLite.prototype, \"handleStatementFailure\", null);\n __decorate([\n CordovaInstance({\n sync: true\n })\n ], SQLite.prototype, \"run\", null);\n __decorate([\n CordovaInstance({\n sync: true\n })\n ], SQLite.prototype, \"abort\", null);\n __decorate([\n CordovaInstance({\n sync: true\n })\n ], SQLite.prototype, \"finish\", null);\n __decorate([\n CordovaInstance({\n sync: true\n })\n ], SQLite.prototype, \"abortFromQ\", null);\n __decorate([\n Cordova()\n ], SQLite, \"echoTest\", null);\n __decorate([\n Cordova()\n ], SQLite, \"deleteDatabase\", null);\n SQLite = __decorate([\n Plugin({\n pluginRef: 'sqlitePlugin',\n plugin: 'cordova-sqlite-storage',\n repo: 'https://github.com/litehelpers/Cordova-sqlite-storage'\n })\n ], SQLite);\n return SQLite;\n}());\n//# sourceMappingURL=sqlite.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, CordovaProperty, Plugin } from './plugin';\n/**\n * @name Status Bar\n * @description\n * Manage the appearance of the native status bar.\n *\n * Requires Cordova plugin: `cordova-plugin-statusbar`. For more info, please see the [StatusBar plugin docs](https://github.com/apache/cordova-plugin-statusbar).\n *\n * @usage\n * ```typescript\n * import { StatusBar } from 'ionic-native';\n *\n *\n * StatusBar.overlaysWebView(true); // let status bar overlay webview\n *\n * StatusBar.backgroundColorByHexString('#ffffff'); // set status bar to white\n * ```\n *\n */\nexport var StatusBar = (function () {\n function StatusBar() {\n }\n /**\n * Set whether the status bar overlays the main app view. The default\n * is true.\n *\n * @param {boolean} doesOverlay Whether the status bar overlays the main app view.\n */\n StatusBar.overlaysWebView = function (doesOverlay) { };\n ;\n /**\n * Use the default statusbar (dark text, for light backgrounds).\n */\n StatusBar.styleDefault = function () { };\n ;\n /**\n * Use the lightContent statusbar (light text, for dark backgrounds).\n */\n StatusBar.styleLightContent = function () { };\n ;\n /**\n * Use the blackTranslucent statusbar (light text, for dark backgrounds).\n */\n StatusBar.styleBlackTranslucent = function () { };\n ;\n /**\n * Use the blackOpaque statusbar (light text, for dark backgrounds).\n */\n StatusBar.styleBlackOpaque = function () { };\n ;\n /**\n * Set the status bar to a specific named color. Valid options:\n * black, darkGray, lightGray, white, gray, red, green, blue, cyan, yellow, magenta, orange, purple, brown.\n *\n * iOS note: you must call StatusBar.overlaysWebView(false) to enable color changing.\n *\n * @param {string} colorName The name of the color (from above)\n */\n StatusBar.backgroundColorByName = function (colorName) { };\n ;\n /**\n * Set the status bar to a specific hex color (CSS shorthand supported!).\n *\n * iOS note: you must call StatusBar.overlaysWebView(false) to enable color changing.\n *\n * @param {string} hexString The hex value of the color.\n */\n StatusBar.backgroundColorByHexString = function (hexString) { };\n ;\n /**\n * Hide the StatusBar\n */\n StatusBar.hide = function () { };\n ;\n /**\n * Show the StatusBar\n */\n StatusBar.show = function () { };\n ;\n Object.defineProperty(StatusBar, \"isVisible\", {\n /**\n * Whether the StatusBar is currently visible or not.\n */\n get: function () { return window.StatusBar.isVisible; },\n enumerable: true,\n configurable: true\n });\n __decorate([\n Cordova({\n sync: true\n })\n ], StatusBar, \"overlaysWebView\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], StatusBar, \"styleDefault\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], StatusBar, \"styleLightContent\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], StatusBar, \"styleBlackTranslucent\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], StatusBar, \"styleBlackOpaque\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], StatusBar, \"backgroundColorByName\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], StatusBar, \"backgroundColorByHexString\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], StatusBar, \"hide\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], StatusBar, \"show\", null);\n __decorate([\n CordovaProperty\n ], StatusBar, \"isVisible\", null);\n StatusBar = __decorate([\n Plugin({\n plugin: 'cordova-plugin-statusbar',\n pluginRef: 'StatusBar',\n repo: 'https://github.com/apache/cordova-plugin-statusbar',\n platforms: ['iOS', 'Android', 'Windows Phone 8', 'Windows 8', 'Windows 10']\n })\n ], StatusBar);\n return StatusBar;\n}());\n//# sourceMappingURL=statusbar.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Plugin, Cordova } from './plugin';\n/**\n * @name StreamingMedia\n * @description\n * This plugin allows you to stream audio and video in a fullscreen, native player on iOS and Android.\n *\n * @usage\n * ```\n * import {StreamingMedia, StreamingVideoOptions} from 'ionic-native';\n *\n * let options: StreamingVideoOptions = {\n * successCallback: () => { console.log('Video played') },\n * errorCallback: (e) => { console.log('Error streaming') },\n * orientation: 'landscape'\n * };\n *\n * StreamingMedia.('https://path/to/video/stream', options);\n *\n * ```\n */\nexport var StreamingMedia = (function () {\n function StreamingMedia() {\n }\n /**\n * Streams a video\n * @param videoUrl {string} The URL of the video\n * @param options {StreamingVideoOptions} Options\n */\n StreamingMedia.playVideo = function (videoUrl, options) { };\n /**\n * Streams an audio\n * @param audioUrl {string} The URL of the audio stream\n * @param options {StreamingAudioOptions} Options\n */\n StreamingMedia.playAudio = function (audioUrl, options) { };\n /**\n * Stops streaming audio\n */\n StreamingMedia.stopAudio = function () { };\n /**\n * Pauses streaming audio\n */\n StreamingMedia.pauseAudio = function () { };\n /**\n * Resumes streaming audio\n */\n StreamingMedia.resumeAudio = function () { };\n __decorate([\n Cordova({ sync: true })\n ], StreamingMedia, \"playVideo\", null);\n __decorate([\n Cordova({ sync: true })\n ], StreamingMedia, \"playAudio\", null);\n __decorate([\n Cordova({ sync: true })\n ], StreamingMedia, \"stopAudio\", null);\n __decorate([\n Cordova({ sync: true, platforms: ['iOS'] })\n ], StreamingMedia, \"pauseAudio\", null);\n __decorate([\n Cordova({ sync: true, platforms: ['iOS'] })\n ], StreamingMedia, \"resumeAudio\", null);\n StreamingMedia = __decorate([\n Plugin({\n plugin: 'cordova-plugin-streaming-media',\n pluginRef: 'plugins.streamingMedia',\n repo: 'https://github.com/nchutchind/cordova-plugin-streaming-media',\n platforms: ['Android', 'iOS']\n })\n ], StreamingMedia);\n return StreamingMedia;\n}());\n//# sourceMappingURL=streaming-media.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\nimport { Observable } from 'rxjs/Observable';\n/**\n * @name 3DTouch\n * @description\n * @usage\n * Please do refer to the original plugin's repo for detailed usage. The usage example here might not be sufficient.\n * ```\n * import { ThreeDeeTouch } from 'ionic-native';\n *\n * // import for type completion on variables\n * import { ThreeDeeTouchQuickAction, ThreeDeeTouchForceTouch } from 'ionic-native';\n * ...\n *\n * ThreeDeeTouch.isAvailable().then(isAvailable => console.log(\"3D Touch available? \" + isAvailable));\n *\n * ThreeDeeTouch.watchForceTouches()\n * .subscribe(\n * (data: ThreeDeeTouchForceTouch) => {\n * console.log(\"Force touch %\" + data.force);\n * console.log(\"Force touch timestamp: \" + data.timestamp);\n * console.log(\"Force touch x: \" + data.x);\n * console.log(\"Force touch y: \" + data.y);\n * }\n * );\n *\n *\n * let actions: Array<ThreeDeeTouchQuickAction> = [\n * {\n * type: 'checkin',\n * title: 'Check in',\n * subtitle: 'Quickly check in',\n * iconType: 'Compose'\n * },\n * {\n * type: 'share',\n * title: 'Share',\n * subtitle: 'Share like you care',\n * iconType: 'Share'\n * },\n * {\n * type: 'search',\n * title: 'Search',\n * iconType: 'Search'\n * },\n * {\n * title: 'Show favorites',\n * iconTemplate: 'HeartTemplate'\n * }\n * ];\n * ThreeDeeTouch.configureQuickActions(actions);\n *\n * ThreeDeeTouchForceTouch.onHomeIconPressed().subscribe(\n * (payload) => {\n * // returns an object that is the button you presed\n * console.log('Pressed the ${payload.title} button')\n * console.log(payload.type)\n *\n * }\n * )\n * ```\n */\nexport var ThreeDeeTouch = (function () {\n function ThreeDeeTouch() {\n }\n /**\n * You need an iPhone 6S or some future tech to use the features of this plugin, so you can check at runtime if the user's device is supported.\n * @returns {Promise<boolean>} returns a promise that resolves with a boolean that indicates whether the plugin is available or not\n */\n ThreeDeeTouch.isAvailable = function () { return; };\n /**\n * You can get a notification when the user force touches the webview. The plugin defines a Force Touch when at least 75% of the maximum force is applied to the screen. Your app will receive the x and y coordinates, so you have to figure out which UI element was touched.\n * @returns {Observable<ThreeDeeTouchForceTouch>} Returns an observable that sends a `ThreeDeeTouchForceTouch` object\n */\n ThreeDeeTouch.watchForceTouches = function () { return; };\n /**\n * setup the 3D-touch actions, takes an array of objects with the following\n * @param {string} type (optional) A type that can be used `onHomeIconPressed` callback\n * @param {string} title Title for your action\n * @param {string} subtitle (optional) A short description for your action\n * @param {string} iconType (optional) Choose between Prohibit, Contact, Home, MarkLocation, Favorite, Love, Cloud, Invitation, Confirmation, Mail, Message, Date, Time, CapturePhoto, CaptureVideo, Task, TaskCompleted, Alarm, Bookmark, Shuffle, Audio, Update\n */\n ThreeDeeTouch.configureQuickActions = function (quickActions) { };\n /**\n * When a home icon is pressed, your app launches and this JS callback is invoked.\n * @returns {Observable<any>} returns an observable that notifies you when he user presses on the home screen icon\n */\n ThreeDeeTouch.onHomeIconPressed = function () {\n return new Observable(function (observer) {\n if (window.ThreeDeeTouch && window.ThreeDeeTouch.onHomeIconPressed) {\n window.ThreeDeeTouch.onHomeIconPressed = observer.next.bind(observer);\n }\n else {\n observer.error('3dTouch plugin is not available.');\n observer.complete();\n }\n });\n };\n /**\n * Enable Link Preview.\n * UIWebView and WKWebView (the webviews powering Cordova apps) don't allow the fancy new link preview feature of iOS9.\n */\n ThreeDeeTouch.enableLinkPreview = function () { };\n /**\n * Disabled the link preview feature, if enabled.\n */\n ThreeDeeTouch.disableLinkPreview = function () { };\n __decorate([\n Cordova()\n ], ThreeDeeTouch, \"isAvailable\", null);\n __decorate([\n Cordova({\n observable: true\n })\n ], ThreeDeeTouch, \"watchForceTouches\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], ThreeDeeTouch, \"configureQuickActions\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], ThreeDeeTouch, \"enableLinkPreview\", null);\n __decorate([\n Cordova({\n sync: true\n })\n ], ThreeDeeTouch, \"disableLinkPreview\", null);\n ThreeDeeTouch = __decorate([\n Plugin({\n plugin: 'cordova-plugin-3dtouch',\n pluginRef: 'ThreeDeeTouch',\n repo: 'https://github.com/EddyVerbruggen/cordova-plugin-3dtouch',\n platforms: ['iOS']\n })\n ], ThreeDeeTouch);\n return ThreeDeeTouch;\n}());\n//# sourceMappingURL=3dtouch.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Toast\n * @description\n * This plugin allows you to show a native Toast (a little text popup) on iOS, Android and WP8. It's great for showing a non intrusive native notification which is guaranteed always in the viewport of the browser.\n *\n * Requires Cordova plugin: `cordova-plugin-x-toast`. For more info, please see the [Toast plugin docs](https://github.com/EddyVerbruggen/Toast-PhoneGap-Plugin).\n *\n * @usage\n * ```typescript\n * import { Toast } from 'ionic-native';\n *\n *\n * Toast.show(\"I'm a toast\", '5000', 'center').subscribe(\n * toast => {\n * console.log(toast);\n * }\n * );\n * ```\n */\nexport var Toast = (function () {\n function Toast() {\n }\n /**\n * Show a native toast for the given duration at the specified position.\n *\n * @param {string} message The message to display.\n * @param {string} duration Duration to show the toast, either 'short', 'long' or any number of milliseconds: '1500'.\n * @param {string} position Where to position the toast, either 'top', 'center', or 'bottom'.\n * @return {Observable} Returns an Observable that notifies first on success and then when tapped, rejects on error.\n */\n Toast.show = function (message, duration, position) { return; };\n /**\n * Manually hide any currently visible toast.\n * @return {Promise} Returns a Promise that resolves on success.\n */\n Toast.hide = function () { return; };\n /**\n * Show a native toast with the given options.\n *\n * @param {Object} options Options for showing a toast. Available options:\n * message The message to display.\n * duration Duration to show the toast, either 'short', 'long' or any number of milliseconds: '1500'.\n * position Where to position the toast, either 'top', 'center', or 'bottom'.\n * addPixelsY Offset in pixels to move the toast up or down from its specified position.\n *\n * @return {Observable} Returns an Observable that notifies first on success and then when tapped, rejects on error.\n */\n Toast.showWithOptions = function (options) { return; };\n /**\n * Shorthand for `show(message, 'short', 'top')`.\n * @return {Observable} Returns an Observable that notifies first on success and then when tapped, rejects on error.\n */\n Toast.showShortTop = function (message) { return; };\n /**\n * Shorthand for `show(message, 'short', 'center')`.\n * @return {Observable} Returns an Observable that notifies first on success and then when tapped, rejects on error.\n */\n Toast.showShortCenter = function (message) { return; };\n /**\n * Shorthand for `show(message, 'short', 'bottom')`.\n * @return {Observable} Returns an Observable that notifies first on success and then when tapped, rejects on error.\n */\n Toast.showShortBottom = function (message) { return; };\n /**\n * Shorthand for `show(message, 'long', 'top')`.\n * @return {Observable} Returns an Observable that notifies first on success and then when tapped, rejects on error.\n */\n Toast.showLongTop = function (message) { return; };\n /**\n * Shorthand for `show(message, 'long', 'center')`.\n * @return {Observable} Returns an Observable that notifies first on success and then when tapped, rejects on error.\n */\n Toast.showLongCenter = function (message) { return; };\n /**\n * Shorthand for `show(message, 'long', 'bottom')`.\n * @return {Observable} Returns an Observable that notifies first on success and then when tapped, rejects on error.\n */\n Toast.showLongBottom = function (message) { return; };\n __decorate([\n Cordova({\n observable: true,\n clearFunction: 'hide'\n })\n ], Toast, \"show\", null);\n __decorate([\n Cordova()\n ], Toast, \"hide\", null);\n __decorate([\n Cordova({\n observable: true,\n clearFunction: 'hide'\n })\n ], Toast, \"showWithOptions\", null);\n __decorate([\n Cordova({\n observable: true,\n clearFunction: 'hide'\n })\n ], Toast, \"showShortTop\", null);\n __decorate([\n Cordova({\n observable: true,\n clearFunction: 'hide'\n })\n ], Toast, \"showShortCenter\", null);\n __decorate([\n Cordova({\n observable: true,\n clearFunction: 'hide'\n })\n ], Toast, \"showShortBottom\", null);\n __decorate([\n Cordova({\n observable: true,\n clearFunction: 'hide'\n })\n ], Toast, \"showLongTop\", null);\n __decorate([\n Cordova({\n observable: true,\n clearFunction: 'hide'\n })\n ], Toast, \"showLongCenter\", null);\n __decorate([\n Cordova({\n observable: true,\n clearFunction: 'hide'\n })\n ], Toast, \"showLongBottom\", null);\n Toast = __decorate([\n Plugin({\n plugin: 'cordova-plugin-x-toast',\n pluginRef: 'plugins.toast',\n repo: 'https://github.com/EddyVerbruggen/Toast-PhoneGap-Plugin',\n platforms: ['Android', 'iOS', 'Windows Phone 8']\n })\n ], Toast);\n return Toast;\n}());\n//# sourceMappingURL=toast.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name TouchID\n * @description\n * Scan the fingerprint of a user with the TouchID sensor.\n *\n * Requires Cordova plugin: `cordova-plugin-touch-id`. For more info, please see the [TouchID plugin docs](https://github.com/EddyVerbruggen/cordova-plugin-touch-id).\n *\n * @usage\n * ### Import Touch ID Plugin into Project\n * ```typescript\n * import { TouchID } from 'ionic-native';\n * ```\n * ### Check for Touch ID Availability\n * ```typescript\n * TouchID.isAvailable()\n * .then(\n * res => console.log('TouchID is available!'),\n * err => console.error('TouchID is not available', err)\n * );\n * ```\n * ### Invoke Touch ID w/ Custom Message\n *\n * ```typescript\n * TouchID.verifyFingerprint('Scan your fingerprint please')\n * .then(\n * res => console.log('Ok', res),\n * err => console.error('Error', err)\n * );\n * ```\n *\n * ### Error Codes\n *\n * The plugin will reject for various reasons. Your app will most likely need to respond to the cases differently.\n *\n * Here is a list of some of the error codes:\n *\n * - `-1` - Fingerprint scan failed more than 3 times\n * - `-2` or `-128` - User tapped the 'Cancel' button\n * - `-3` - User tapped the 'Enter Passcode' or 'Enter Password' button\n * - `-4` - The scan was cancelled by the system (Home button for example)\n * - `-6` - TouchID is not Available\n * - `-8` - TouchID is locked out from too many tries\n */\nexport var TouchID = (function () {\n function TouchID() {\n }\n /**\n * Checks Whether TouchID is available or not.\n *\n * @return {Promise} Returns a Promise that resolves if yes, rejects if no.\n */\n TouchID.isAvailable = function () { return; };\n /**\n * Show TouchID dialog and wait for a fingerprint scan. If user taps 'Enter Password' button, brings up standard system passcode screen.\n *\n * @param {string} message The message to display\n * @return {Promise} Returns a Promise the resolves if the fingerprint scan was successful, rejects with an error code (see above).\n */\n TouchID.verifyFingerprint = function (message) { return; };\n /**\n * Show TouchID dialog and wait for a fingerprint scan. If user taps 'Enter Password' button, rejects with code '-3' (see above).\n *\n * @param {string} message The message to display\n * @return {Promise} Returns a Promise the resolves if the fingerprint scan was successful, rejects with an error code (see above).\n */\n TouchID.verifyFingerprintWithCustomPasswordFallback = function (message) { return; };\n /**\n * Show TouchID dialog with custom 'Enter Password' message and wait for a fingerprint scan. If user taps 'Enter Password' button, rejects with code '-3' (see above).\n *\n * @param {string} message The message to display\n * @param {string} enterPasswordLabel Custom text for the 'Enter Password' button\n * @return {Promise} Returns a Promise the resolves if the fingerprint scan was successful, rejects with an error code (see above).\n */\n TouchID.verifyFingerprintWithCustomPasswordFallbackAndEnterPasswordLabel = function (message, enterPasswordLabel) { return; };\n __decorate([\n Cordova()\n ], TouchID, \"isAvailable\", null);\n __decorate([\n Cordova()\n ], TouchID, \"verifyFingerprint\", null);\n __decorate([\n Cordova()\n ], TouchID, \"verifyFingerprintWithCustomPasswordFallback\", null);\n __decorate([\n Cordova()\n ], TouchID, \"verifyFingerprintWithCustomPasswordFallbackAndEnterPasswordLabel\", null);\n TouchID = __decorate([\n Plugin({\n plugin: 'cordova-plugin-touch-id',\n pluginRef: 'plugins.touchid',\n repo: 'https://github.com/EddyVerbruggen/cordova-plugin-touch-id',\n platforms: ['iOS']\n })\n ], TouchID);\n return TouchID;\n}());\n//# sourceMappingURL=touchid.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Plugin, Cordova } from './plugin';\n/**\n * @name TextToSpeech\n * @description\n * Text to Speech plugin\n *\n * @usage\n * ```\n * import {TextToSpeech} from 'ionic-native';\n *\n * TextToSpeech.speak('Hello World')\n * .then(() => console.log('Success'))\n * .catch((reason: any) => console.log(reason));\n *\n * ```\n */\nexport var TextToSpeech = (function () {\n function TextToSpeech() {\n }\n /**\n * This function speaks\n * @param options {string | TTSOptions} Text to speak or TTSOptions\n * @return {Promise<any>} Returns a promise that resolves when the speaking finishes\n */\n TextToSpeech.speak = function (options) {\n return;\n };\n __decorate([\n Cordova({\n successIndex: 1,\n errorIndex: 2\n })\n ], TextToSpeech, \"speak\", null);\n TextToSpeech = __decorate([\n Plugin({\n plugin: 'cordova-plugin-tts',\n pluginRef: 'TTS',\n repo: 'https://github.com/vilic/cordova-plugin-tts'\n })\n ], TextToSpeech);\n return TextToSpeech;\n}());\n//# sourceMappingURL=text-to-speech.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Plugin, Cordova } from './plugin';\n/**\n * @name Twitter Connect\n * @description\n * Plugin to use Twitter Single Sign On\n * Uses Twitter's Fabric SDK\n * ```typescript\n * import {TwitterConnect} from 'ionic-native';\n *\n * function onSuccess(response) {\n * console.log(response);\n *\n * // Will console log something like:\n * // {\n * // userName: 'myuser',\n * // userId: '12358102',\n * // secret: 'tokenSecret'\n * // token: 'accessTokenHere'\n * // }\n * }\n *\n * TwitterConnect.login().then(onSuccess, onError);\n *\n * TwitterConnect.logout().then(onLogoutSuccess, onLogoutError);\n * ```\n */\nexport var TwitterConnect = (function () {\n function TwitterConnect() {\n }\n /**\n * Logs in\n * @return {Promise<TwitterConnectResponse>} returns a promise that resolves if logged in and rejects if failed to login\n */\n TwitterConnect.login = function () { return; };\n /**\n * Logs out\n * @return {Promise<any>} returns a promise that resolves if logged out and rejects if failed to logout\n */\n TwitterConnect.logout = function () { return; };\n /**\n * Returns user's profile information\n * @return {Promise<any>} returns a promise that resolves if user profile is successfully retrieved and rejects if request fails\n */\n TwitterConnect.showUser = function () { return; };\n __decorate([\n Cordova()\n ], TwitterConnect, \"login\", null);\n __decorate([\n Cordova()\n ], TwitterConnect, \"logout\", null);\n __decorate([\n Cordova()\n ], TwitterConnect, \"showUser\", null);\n TwitterConnect = __decorate([\n Plugin({\n plugin: 'twitter-connect-plugin',\n pluginRef: 'TwitterConnect',\n repo: 'https://github.com/ManifestWebDesign/twitter-connect-plugin',\n install: 'ionic plugin add twitter-connect-plugin --variable FABRIC_KEY=fabric_API_key'\n })\n ], TwitterConnect);\n return TwitterConnect;\n}());\n//# sourceMappingURL=twitter-connect.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name Vibration\n * @description Vibrates the device\n * @usage\n * ```typescript\n * import { Vibration } from 'ionic-native';\n *\n *\n * // Vibrate the device for a second\n * // Duration is ignored on iOS.\n * Vibration.vibrate(1000);\n *\n * // Vibrate 2 seconds\n * // Pause for 1 second\n * // Vibrate for 2 seconds\n * // Patterns work on Android and Windows only\n * Vibration.vibrate([2000,1000,2000]);\n *\n * // Stop any current vibrations immediately\n * // Works on Android and Windows only\n * Vibration.vibrate(0);\n * ```\n */\nexport var Vibration = (function () {\n function Vibration() {\n }\n /**\n * Vibrates the device for given amount of time.\n * @param time {number|Array<number>} Milliseconds to vibrate the device. If passed an array of numbers, it will define a vibration pattern. Pass 0 to stop any vibration immediately.\n */\n Vibration.vibrate = function (time) { };\n __decorate([\n Cordova({\n sync: true\n })\n ], Vibration, \"vibrate\", null);\n Vibration = __decorate([\n Plugin({\n plugin: 'cordova-plugin-vibration',\n pluginRef: 'navigator',\n repo: 'https://github.com/apache/cordova-plugin-vibration',\n platforms: ['Android', 'iOS', 'Windows 8.1 Phone', 'Windows 8.1', 'Windows 10']\n })\n ], Vibration);\n return Vibration;\n}());\n//# sourceMappingURL=vibration.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Plugin, Cordova } from './plugin';\n/**\n * @name VideoEditor\n * @description Edit videos using native device APIs\n *\n * @usage\n * ```\n * import {VideoEditor} from 'ionic-native';\n *\n * VideoEditor.transcodeVideo({\n * fileUri: '/path/to/input.mov',\n * outputFileName: 'output.mp4',\n * outputFileType: VideoEditor.OutputFileType.MPEG4\n * })\n * .then((fileUri: string) => console.log('video transcode success', fileUri))\n * .catch((error: any) => console.log('video transcode error', error));\n *\n * ```\n */\nexport var VideoEditor = (function () {\n function VideoEditor() {\n }\n /**\n * Transcode a video\n * @param options {TranscodeOptions} Options\n * @return {Promise<string>} Returns a promise that resolves to the path of the transcoded video\n */\n VideoEditor.transcodeVideo = function (options) { return; };\n /**\n * Trim a video\n * @param options {TrimOptions} Options\n * @return {Promise<string>} Returns a promise that resolves to the path of the trimmed video\n */\n VideoEditor.trim = function (options) { return; };\n /**\n * Create a JPEG thumbnail from a video\n * @param options {CreateThumbnailOptions} Options\n * @return {Promise<string>} Returns a promise that resolves to the path to the jpeg image on the device\n */\n VideoEditor.createThumbnail = function (options) { return; };\n /**\n * Get info on a video (width, height, orientation, duration, size, & bitrate)\n * @param options {GetVideoInfoOptions} Options\n * @return {Promise<VideoInfo>} Returns a promise that resolves to an object containing info on the video\n */\n VideoEditor.getVideoInfo = function (options) { return; };\n VideoEditor.OptimizeForNetworkUse = {\n NO: 0,\n YES: 1\n };\n VideoEditor.OutputFileType = {\n M4V: 0,\n MPEG4: 1,\n M4A: 2,\n QUICK_TIME: 3\n };\n __decorate([\n Cordova({\n callbackOrder: 'reverse'\n })\n ], VideoEditor, \"transcodeVideo\", null);\n __decorate([\n Cordova({\n callbackOrder: 'reverse',\n platforms: ['iOS']\n })\n ], VideoEditor, \"trim\", null);\n __decorate([\n Cordova({\n callbackOrder: 'reverse'\n })\n ], VideoEditor, \"createThumbnail\", null);\n __decorate([\n Cordova({\n callbackOrder: 'reverse'\n })\n ], VideoEditor, \"getVideoInfo\", null);\n VideoEditor = __decorate([\n Plugin({\n plugin: 'cordova-plugin-video-editor',\n pluginRef: 'VideoEditor',\n repo: 'https://github.com/jbavari/cordova-plugin-video-editor',\n platforms: ['Android', 'iOS', 'Windows Phone 8']\n })\n ], VideoEditor);\n return VideoEditor;\n}());\n//# sourceMappingURL=video-editor.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, Plugin } from './plugin';\n/**\n * @name VideoPlayer\n * @description\n * A Codova plugin that simply allows you to immediately play a video in fullscreen mode.\n *\n * Requires Cordova plugin: `com.moust.cordova.videoplayer`. For more info, please see the [VideoPlayer plugin docs](https://github.com/moust/cordova-plugin-videoplayer).\n *\n * @usage\n * ```typescript\n * import { VideoPlayer } from 'ionic-native';\n *\n *\n * // Playing a video.\n * VideoPlayer.play(\"file:///android_asset/www/movie.mp4\").then(() => {\n * console.log('video completed');\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * ```\n */\nexport var VideoPlayer = (function () {\n function VideoPlayer() {\n }\n /**\n * Plays the video from the passed url.\n * @param fileUrl {string} File url to the video.\n * @param options {VideoOptions?} Optional video playback settings. See options above.\n * @returns {Promise<any>} Resolves promise when the video was played successfully.\n */\n VideoPlayer.play = function (fileUrl, options) { return; };\n /**\n * Stops the video playback immediatly.\n */\n VideoPlayer.close = function () { };\n __decorate([\n Cordova()\n ], VideoPlayer, \"play\", null);\n __decorate([\n Cordova({ sync: true })\n ], VideoPlayer, \"close\", null);\n VideoPlayer = __decorate([\n Plugin({\n plugin: 'cordova-plugin-videoplayer',\n pluginRef: 'VideoPlayer',\n repo: 'https://github.com/moust/cordova-plugin-videoplayer',\n platforms: ['Android']\n })\n ], VideoPlayer);\n return VideoPlayer;\n}());\n//# sourceMappingURL=video-player.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Cordova, CordovaProperty, Plugin } from './plugin';\n/**\n * @name WebIntent\n * @description\n * @usage\n * For usage information please refer to the plugin's Github repo.\n *\n * ```typescript\n * import {WebIntent} from 'ionic-native';\n *\n * WebIntent.startActivity(options).then(onSuccess, onError);\n *\n * ```\n */\nexport var WebIntent = (function () {\n function WebIntent() {\n }\n Object.defineProperty(WebIntent, \"ACTION_VIEW\", {\n get: function () {\n return window.plugins.webintent.ACTION_VIEW;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(WebIntent, \"EXTRA_TEXT\", {\n get: function () {\n return window.plugins.webintent.EXTRA_TEXT;\n },\n enumerable: true,\n configurable: true\n });\n WebIntent.startActivity = function (options) { return; };\n WebIntent.hasExtra = function (extra) { return; };\n WebIntent.getExtra = function (extra) { return; };\n WebIntent.getUri = function () { return; };\n ;\n WebIntent.onNewIntent = function () { return; };\n ;\n WebIntent.sendBroadcast = function (options) { return; };\n __decorate([\n CordovaProperty\n ], WebIntent, \"ACTION_VIEW\", null);\n __decorate([\n CordovaProperty\n ], WebIntent, \"EXTRA_TEXT\", null);\n __decorate([\n Cordova()\n ], WebIntent, \"startActivity\", null);\n __decorate([\n Cordova()\n ], WebIntent, \"hasExtra\", null);\n __decorate([\n Cordova()\n ], WebIntent, \"getExtra\", null);\n __decorate([\n Cordova()\n ], WebIntent, \"getUri\", null);\n __decorate([\n Cordova()\n ], WebIntent, \"onNewIntent\", null);\n __decorate([\n Cordova()\n ], WebIntent, \"sendBroadcast\", null);\n WebIntent = __decorate([\n Plugin({\n plugin: 'https://github.com/Initsogar/cordova-webintent.git',\n pluginRef: 'window.plugins.webintent',\n repo: 'https://github.com/Initsogar/cordova-webintent.git',\n platforms: ['Android']\n })\n ], WebIntent);\n return WebIntent;\n}());\n//# sourceMappingURL=webintent.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Plugin, Cordova } from './plugin';\n/**\n * @name YoutubeVideoPlayer\n * @description\n * Plays YouTube videos in Native YouTube App\n *\n * @usage\n * ```\n * import {YoutubeVideoPlayer} from 'ionic-native';\n *\n * YouTubeVideoPlayer.openVideo('myvideoid');\n *\n * ```\n */\nexport var YoutubeVideoPlayer = (function () {\n function YoutubeVideoPlayer() {\n }\n /**\n * Plays a YouTube video\n * @param videoId {string} Video ID\n */\n YoutubeVideoPlayer.openVideo = function (videoId) { };\n __decorate([\n Cordova({ sync: true })\n ], YoutubeVideoPlayer, \"openVideo\", null);\n YoutubeVideoPlayer = __decorate([\n Plugin({\n plugin: 'https://github.com/Glitchbone/CordovaYoutubeVideoPlayer.git',\n pluginRef: 'YoutubeVideoPlayer',\n repo: 'https://github.com/Glitchbone/CordovaYoutubeVideoPlayer',\n platforms: ['Android', 'iOS']\n })\n ], YoutubeVideoPlayer);\n return YoutubeVideoPlayer;\n}());\n//# sourceMappingURL=youtube-video-player.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Plugin, Cordova } from './plugin';\n/**\n * @name Zip\n * @description\n * A Cordova plugin to unzip files in Android and iOS.\n *\n * @usage\n * ```\n * import {Zip} from 'ionic-native';\n *\n * Zip.unzip('path/to/source.zip', 'path/to/dest', (progress) => console.log('Unzipping, ' + Math.round((progress.loaded / progress.total) * 100) + '%'))\n * .then((result) => {\n * if(result === 0) console.log('SUCCESS');\n * if(result === -1) console.log('FAILED');\n * });\n *\n * ```\n */\nexport var Zip = (function () {\n function Zip() {\n }\n /**\n * Extracts files from a ZIP archive\n * @param sourceZip {string} Source ZIP file\n * @param destUrl {string} Destination folder\n * @param onProgress {Function} optional callback to be called on progress update\n * @return {Promise<number>} returns a promise that resolves with a number. 0 is success, -1 is error\n */\n Zip.unzip = function (sourceZip, destUrl, onProgress) { return; };\n __decorate([\n Cordova({\n successIndex: 2,\n errorIndex: 4\n })\n ], Zip, \"unzip\", null);\n Zip = __decorate([\n Plugin({\n plugin: 'cordova-plugin-zip',\n pluginRef: 'zip',\n repo: 'https://github.com/MobileChromeApps/cordova-plugin-zip',\n })\n ], Zip);\n return Zip;\n}());\n//# sourceMappingURL=zip.js.map","import { initAngular1 } from './ng1';\nvar DEVICE_READY_TIMEOUT = 2000;\nimport { ActionSheet } from './plugins/actionsheet';\nimport { AdMob } from './plugins/admob';\nimport { AndroidFingerprintAuth } from './plugins/android-fingerprint-auth';\nimport { AppAvailability } from './plugins/appavailability';\nimport { AppRate } from './plugins/apprate';\nimport { AppVersion } from './plugins/appversion';\nimport { Badge } from './plugins/badge';\nimport { BackgroundGeolocation } from './plugins/background-geolocation';\nimport { BackgroundMode } from './plugins/backgroundmode';\nimport { BarcodeScanner } from './plugins/barcodescanner';\nimport { Base64ToGallery } from './plugins/base64togallery';\nimport { BatteryStatus } from './plugins/batterystatus';\nimport { Brightness } from './plugins/brightness';\nimport { BLE } from './plugins/ble';\nimport { BluetoothSerial } from './plugins/bluetoothserial';\nimport { Calendar } from './plugins/calendar';\nimport { CallNumber } from './plugins/call-number';\nimport { Camera } from './plugins/camera';\nimport { CameraPreview } from './plugins/camera-preview';\nimport { CardIO } from './plugins/card-io';\nimport { Clipboard } from './plugins/clipboard';\nimport { CodePush } from './plugins/code-push';\nimport { Contacts } from './plugins/contacts';\nimport { Crop } from './plugins/crop';\nimport { DatePicker } from './plugins/datepicker';\nimport { DBMeter } from './plugins/dbmeter';\nimport { Deeplinks } from './plugins/deeplinks';\nimport { Device } from './plugins/device';\nimport { DeviceAccounts } from './plugins/deviceaccounts';\nimport { DeviceMotion } from './plugins/devicemotion';\nimport { DeviceOrientation } from './plugins/deviceorientation';\nimport { Diagnostic } from './plugins/diagnostic';\nimport { Dialogs } from './plugins/dialogs';\nimport { EmailComposer } from './plugins/emailcomposer';\nimport { EstimoteBeacons } from './plugins/estimote-beacons';\nimport { Facebook } from './plugins/facebook';\nimport { File } from './plugins/file';\nimport { FileChooser } from './plugins/file-chooser';\nimport { FileOpener } from './plugins/file-opener';\nimport { Transfer } from './plugins/filetransfer';\nimport { Flashlight } from './plugins/flashlight';\nimport { Geofence } from './plugins/geofence';\nimport { Geolocation } from './plugins/geolocation';\nimport { Globalization } from './plugins/globalization';\nimport { GooglePlus } from './plugins/google-plus';\nimport { GoogleMap } from './plugins/googlemaps';\nimport { GoogleAnalytics } from './plugins/googleanalytics';\nimport { Hotspot } from './plugins/hotspot';\nimport { Httpd } from './plugins/httpd';\nimport { IBeacon } from './plugins/ibeacon';\nimport { ImagePicker } from './plugins/imagepicker';\nimport { ImageResizer } from './plugins/imageresizer';\nimport { InAppBrowser } from './plugins/inappbrowser';\nimport { InAppPurchase } from './plugins/inapppurchase';\nimport { Insomnia } from './plugins/insomnia';\nimport { Instagram } from './plugins/instagram';\nimport { IsDebug } from './plugins/is-debug';\nimport { Keyboard } from './plugins/keyboard';\nimport { LaunchNavigator } from './plugins/launchnavigator';\nimport { LocalNotifications } from './plugins/localnotifications';\nimport { MediaCapture } from './plugins/media-capture';\nimport { NativeAudio } from './plugins/native-audio';\nimport { NativePageTransitions } from './plugins/native-page-transitions';\nimport { NativeStorage } from './plugins/nativestorage';\nimport { Market } from './plugins/market';\nimport { MediaPlugin } from './plugins/media';\nimport { Mixpanel } from './plugins/mixpanel';\nimport { MusicControls } from './plugins/music-controls';\nimport { Network } from './plugins/network';\nimport { NFC } from './plugins/nfc';\nimport { OneSignal } from './plugins/onesignal';\nimport { PhotoViewer } from './plugins/photo-viewer';\nimport { ScreenOrientation } from './plugins/screen-orientation';\nimport { PayPal } from './plugins/pay-pal';\nimport { PinDialog } from './plugins/pin-dialog';\nimport { PowerManagement } from './plugins/power-management';\nimport { Printer } from './plugins/printer';\nimport { Push } from './plugins/push';\nimport { SafariViewController } from './plugins/safari-view-controller';\nimport { Screenshot } from './plugins/screenshot';\nimport { SecureStorage } from './plugins/securestorage';\nimport { Shake } from './plugins/shake';\nimport { Sim } from './plugins/sim';\nimport { SMS } from './plugins/sms';\nimport { SocialSharing } from './plugins/socialsharing';\nimport { SpinnerDialog } from './plugins/spinnerdialog';\nimport { Splashscreen } from './plugins/splashscreen';\nimport { SQLite } from './plugins/sqlite';\nimport { StatusBar } from './plugins/statusbar';\nimport { StreamingMedia } from './plugins/streaming-media';\nimport { ThreeDeeTouch } from './plugins/3dtouch';\nimport { Toast } from './plugins/toast';\nimport { TouchID } from './plugins/touchid';\nimport { TextToSpeech } from './plugins/text-to-speech';\nimport { TwitterConnect } from './plugins/twitter-connect';\nimport { Vibration } from './plugins/vibration';\nimport { VideoEditor } from './plugins/video-editor';\nimport { VideoPlayer } from './plugins/video-player';\nimport { WebIntent } from './plugins/webintent';\nimport { YoutubeVideoPlayer } from './plugins/youtube-video-player';\nimport { Zip } from './plugins/zip';\nexport * from './plugins/3dtouch';\nexport * from './plugins/background-geolocation';\nexport * from './plugins/backgroundmode';\nexport * from './plugins/batterystatus';\nexport * from './plugins/calendar';\nexport * from './plugins/camera';\nexport * from './plugins/card-io';\nexport * from './plugins/code-push';\nexport * from './plugins/contacts';\nexport * from './plugins/datepicker';\nexport * from './plugins/device';\nexport * from './plugins/devicemotion';\nexport * from './plugins/deviceorientation';\nexport * from './plugins/facebook';\nexport * from './plugins/file';\nexport * from './plugins/filetransfer';\nexport * from './plugins/geolocation';\nexport * from './plugins/googlemaps';\nexport * from './plugins/httpd';\nexport * from './plugins/ibeacon';\nexport * from './plugins/imagepicker';\nexport * from './plugins/imageresizer';\nexport * from './plugins/inappbrowser';\nexport * from './plugins/launchnavigator';\nexport * from './plugins/localnotifications';\nexport * from './plugins/nfc';\nexport * from './plugins/media';\nexport * from './plugins/media-capture';\nexport * from './plugins/mixpanel';\nexport * from './plugins/pay-pal';\nexport * from './plugins/native-page-transitions';\nexport * from './plugins/printer';\nexport * from './plugins/push';\nexport * from './plugins/safari-view-controller';\nexport * from './plugins/sms';\nexport * from './plugins/spinnerdialog';\nexport * from './plugins/streaming-media';\nexport * from './plugins/toast';\nexport * from './plugins/twitter-connect';\nexport * from './plugins/video-editor';\nexport * from './plugins/video-player';\nexport { ActionSheet, AdMob, AndroidFingerprintAuth, AppAvailability, AppRate, AppVersion, Badge, BarcodeScanner, Base64ToGallery, Brightness, BLE, BluetoothSerial, CallNumber, CameraPreview, Clipboard, Crop, DBMeter, Deeplinks, DeviceAccounts, Dialogs, Diagnostic, EmailComposer, EstimoteBeacons, FileChooser, FileOpener, Flashlight, Geofence, Globalization, GooglePlus, GoogleAnalytics, Hotspot, InAppPurchase, Insomnia, Instagram, Keyboard, MusicControls, NativeAudio, NativeStorage, Network, Market, OneSignal, PhotoViewer, ScreenOrientation, PinDialog, PowerManagement, Screenshot, SecureStorage, Shake, SocialSharing, Sim, Splashscreen, SQLite, StatusBar, TouchID, TextToSpeech, Vibration, WebIntent, YoutubeVideoPlayer, Zip };\nexport * from './plugins/plugin';\n// Window export to use outside of a module loading system\nwindow['IonicNative'] = {\n ActionSheet: ActionSheet,\n AdMob: AdMob,\n AndroidFingerprintAuth: AndroidFingerprintAuth,\n AppAvailability: AppAvailability,\n AppRate: AppRate,\n AppVersion: AppVersion,\n Badge: Badge,\n BackgroundGeolocation: BackgroundGeolocation,\n BackgroundMode: BackgroundMode,\n BarcodeScanner: BarcodeScanner,\n Base64ToGallery: Base64ToGallery,\n BatteryStatus: BatteryStatus,\n Brightness: Brightness,\n BLE: BLE,\n BluetoothSerial: BluetoothSerial,\n Calendar: Calendar,\n CallNumber: CallNumber,\n Camera: Camera,\n CameraPreview: CameraPreview,\n CardIO: CardIO,\n Clipboard: Clipboard,\n CodePush: CodePush,\n Contacts: Contacts,\n Crop: Crop,\n DatePicker: DatePicker,\n DBMeter: DBMeter,\n Deeplinks: Deeplinks,\n Device: Device,\n DeviceAccounts: DeviceAccounts,\n DeviceMotion: DeviceMotion,\n DeviceOrientation: DeviceOrientation,\n Dialogs: Dialogs,\n Diagnostic: Diagnostic,\n EmailComposer: EmailComposer,\n EstimoteBeacons: EstimoteBeacons,\n Facebook: Facebook,\n File: File,\n FileChooser: FileChooser,\n FileOpener: FileOpener,\n Flashlight: Flashlight,\n Geofence: Geofence,\n Geolocation: Geolocation,\n Globalization: Globalization,\n GooglePlus: GooglePlus,\n GoogleMap: GoogleMap,\n GoogleAnalytics: GoogleAnalytics,\n Hotspot: Hotspot,\n Httpd: Httpd,\n IBeacon: IBeacon,\n ImagePicker: ImagePicker,\n ImageResizer: ImageResizer,\n InAppBrowser: InAppBrowser,\n InAppPurchase: InAppPurchase,\n Instagram: Instagram,\n IsDebug: IsDebug,\n Keyboard: Keyboard,\n LaunchNavigator: LaunchNavigator,\n LocalNotifications: LocalNotifications,\n Market: Market,\n MediaCapture: MediaCapture,\n MediaPlugin: MediaPlugin,\n Mixpanel: Mixpanel,\n MusicControls: MusicControls,\n NativeAudio: NativeAudio,\n NativePageTransitions: NativePageTransitions,\n NativeStorage: NativeStorage,\n Network: Network,\n PayPal: PayPal,\n NFC: NFC,\n Printer: Printer,\n Push: Push,\n OneSignal: OneSignal,\n PhotoViewer: PhotoViewer,\n ScreenOrientation: ScreenOrientation,\n PinDialog: PinDialog,\n PowerManagement: PowerManagement,\n SafariViewController: SafariViewController,\n Screenshot: Screenshot,\n SecureStorage: SecureStorage,\n Shake: Shake,\n Sim: Sim,\n SMS: SMS,\n SocialSharing: SocialSharing,\n SpinnerDialog: SpinnerDialog,\n Splashscreen: Splashscreen,\n SQLite: SQLite,\n StatusBar: StatusBar,\n StreamingMedia: StreamingMedia,\n ThreeDeeTouch: ThreeDeeTouch,\n Toast: Toast,\n TouchID: TouchID,\n Transfer: Transfer,\n TextToSpeech: TextToSpeech,\n TwitterConnect: TwitterConnect,\n VideoEditor: VideoEditor,\n VideoPlayer: VideoPlayer,\n Vibration: Vibration,\n WebIntent: WebIntent,\n YoutubeVideoPlayer: YoutubeVideoPlayer,\n Zip: Zip\n};\ninitAngular1(window['IonicNative']);\n// To help developers using cordova, we listen for the device ready event and\n// log an error if it didn't fire in a reasonable amount of time. Generally,\n// when this happens, developers should remove and reinstall plugins, since\n// an inconsistent plugin is often the culprit.\nvar before = Date.now();\nvar didFireReady = false;\ndocument.addEventListener('deviceready', function () {\n console.log('DEVICE READY FIRED AFTER', (Date.now() - before), 'ms');\n didFireReady = true;\n});\nsetTimeout(function () {\n if (!didFireReady && window.cordova) {\n console.warn(\"Native: deviceready did not fire within \" + DEVICE_READY_TIMEOUT + \"ms. This can happen when plugins are in an inconsistent state. Try removing plugins from plugins/ and reinstalling them.\");\n }\n}, DEVICE_READY_TIMEOUT);\n//# sourceMappingURL=index.js.map","export function isAPIResponseSuccess(x) {\n return x.meta.status < 400;\n}\nexport function isAPIResponseError(x) {\n return x.meta.status >= 400;\n}\n","var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n/**\n * @hidden\n */\nexport var Exception = (function (_super) {\n __extends(Exception, _super);\n function Exception(message) {\n _super.call(this, message);\n this.message = message;\n this.name = 'Exception';\n this.stack = (new Error()).stack;\n }\n Exception.prototype.toString = function () {\n return this.name + \": \" + this.message;\n };\n return Exception;\n}(Error));\n/**\n * An error with generic error details.\n *\n * Error details can be extracted depending on the type of `D`. For instance,\n * if the type of `D` is `string[]`, you can do this:\n *\n * ```typescript\n * function handleError(err: IDetailedError<string[]>) {\n * for (let i in err.details) {\n * console.error('got error code: ' + i);\n * }\n * }\n * ```\n *\n * @featured\n */\nexport var DetailedError = (function (_super) {\n __extends(DetailedError, _super);\n function DetailedError(\n /**\n * The error message.\n */\n message, \n /**\n * The error details.\n */\n details) {\n _super.call(this, message);\n this.message = message;\n this.details = details;\n this.name = 'DetailedError';\n }\n return DetailedError;\n}(Exception));\n","/**\n * @hidden\n */\nexport var DeferredPromise = (function () {\n function DeferredPromise() {\n this.init();\n }\n DeferredPromise.prototype.init = function () {\n var _this = this;\n this.promise = new Promise(function (resolve, reject) {\n _this.resolve = function (v) {\n resolve(v);\n return _this.promise;\n };\n _this.reject = function (e) {\n reject(e);\n return _this.promise;\n };\n });\n };\n DeferredPromise.rejectImmediately = function (err) {\n return new Promise(function (resolve, reject) {\n reject(err);\n });\n };\n return DeferredPromise;\n}());\n","var EMAIL_REGEX = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\nvar SEMVER_REGEX = /^v?([0-9]+)\\.?([0-9]+)?\\.?([0-9]+)?\\.?.*$/;\nexport function isValidEmail(email) {\n return EMAIL_REGEX.test(email);\n}\nexport function parseSemanticVersion(s) {\n var r = s.trim().match(SEMVER_REGEX);\n if (!r) {\n throw new Error('Invalid semantic version.');\n }\n var v = {\n 'major': Number(r[1])\n };\n if (r[2]) {\n v.minor = Number(r[2]);\n }\n if (r[3]) {\n v.patch = Number(r[3]);\n }\n return v;\n}\n","var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nimport { Facebook, GooglePlus } from 'ionic-native';\nimport { isAPIResponseError } from './guards';\nimport { DetailedError } from './errors';\nimport { DeferredPromise } from './promise';\nimport { isValidEmail } from './util';\n/**\n * @hidden\n */\nexport var AuthTokenContext = (function () {\n function AuthTokenContext(deps, label) {\n this.label = label;\n this.storage = deps.storage;\n }\n AuthTokenContext.prototype.get = function () {\n return this.storage.get(this.label);\n };\n AuthTokenContext.prototype.store = function (token) {\n this.storage.set(this.label, token);\n };\n AuthTokenContext.prototype.delete = function () {\n this.storage.delete(this.label);\n };\n return AuthTokenContext;\n}());\n/**\n * @hidden\n */\nexport var CombinedAuthTokenContext = (function () {\n function CombinedAuthTokenContext(deps, label) {\n this.label = label;\n this.storage = deps.storage;\n this.tempStorage = deps.tempStorage;\n }\n CombinedAuthTokenContext.prototype.get = function () {\n var permToken = this.storage.get(this.label);\n var tempToken = this.tempStorage.get(this.label);\n var token = tempToken || permToken;\n return token;\n };\n CombinedAuthTokenContext.prototype.store = function (token, options) {\n if (options === void 0) { options = { 'permanent': true }; }\n if (options.permanent) {\n this.storage.set(this.label, token);\n }\n else {\n this.tempStorage.set(this.label, token);\n }\n };\n CombinedAuthTokenContext.prototype.delete = function () {\n this.storage.delete(this.label);\n this.tempStorage.delete(this.label);\n };\n return CombinedAuthTokenContext;\n}());\n/**\n * `Auth` handles authentication of a single user, such as signing up, logging\n * in & out, social provider authentication, etc.\n *\n * @featured\n */\nexport var Auth = (function () {\n function Auth(deps) {\n this.config = deps.config;\n this.emitter = deps.emitter;\n this.authModules = deps.authModules;\n this.tokenContext = deps.tokenContext;\n this.userService = deps.userService;\n }\n Object.defineProperty(Auth.prototype, \"passwordResetUrl\", {\n /**\n * Link the user to this URL for password resets. Only for email/password\n * authentication.\n *\n * Use this if you want to use our password reset forms instead of creating\n * your own in your app.\n */\n get: function () {\n return this.config.getURL('web') + \"/password/reset/\" + this.config.get('app_id');\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Check whether the user is logged in or not.\n *\n * If an auth token exists in local storage, the user is logged in.\n */\n Auth.prototype.isAuthenticated = function () {\n var token = this.tokenContext.get();\n if (token) {\n return true;\n }\n return false;\n };\n /**\n * Sign up a user with the given data. Only for email/password\n * authentication.\n *\n * `signup` does not affect local data or the current user until `login` is\n * called. This means you'll likely want to log in your users manually after\n * signup.\n *\n * If a signup fails, the promise rejects with a [`IDetailedError`\n * object](/api/client/idetailederror) that contains an array of error codes\n * from the cloud.\n *\n * @param details - The details that describe a user.\n */\n Auth.prototype.signup = function (details) {\n return this.authModules.basic.signup(details);\n };\n /**\n * Attempt to log the user in with the given credentials. For custom & social\n * logins, kick-off the authentication process.\n *\n * After login, the full user is loaded from the cloud and saved in local\n * storage along with their auth token.\n *\n * @note TODO: Better error handling docs.\n *\n * @param moduleId\n * The authentication provider module ID to use with this login.\n * @param credentials\n * For email/password authentication, give an email and password. For social\n * authentication, exclude this parameter. For custom authentication, send\n * whatever you need.\n * @param options\n * Options for this login, such as whether to remember the login and\n * InAppBrowser window options for authentication providers that make use of\n * it.\n */\n Auth.prototype.login = function (moduleId, credentials, options) {\n var _this = this;\n if (options === void 0) { options = {}; }\n if (typeof options.remember === 'undefined') {\n options.remember = true;\n }\n if (typeof options.inAppBrowserOptions === 'undefined') {\n options.inAppBrowserOptions = {};\n }\n if (typeof options.inAppBrowserOptions.location === 'undefined') {\n options.inAppBrowserOptions.location = false;\n }\n if (typeof options.inAppBrowserOptions.clearcache === 'undefined') {\n options.inAppBrowserOptions.clearcache = true;\n }\n if (typeof options.inAppBrowserOptions.clearsessioncache === 'undefined') {\n options.inAppBrowserOptions.clearsessioncache = true;\n }\n var context = this.authModules[moduleId];\n if (!context) {\n throw new Error('Authentication class is invalid or missing:' + context);\n }\n return context.authenticate(credentials, options).then(function (r) {\n _this.storeToken(options, r.token);\n return _this.userService.load().then(function () {\n var user = _this.userService.current();\n user.store();\n return r;\n });\n });\n };\n /**\n * Log the user out of the app.\n *\n * This clears the auth token out of local storage and restores the user to\n * an unauthenticated state.\n */\n Auth.prototype.logout = function () {\n this.tokenContext.delete();\n var user = this.userService.current();\n user.unstore();\n user.clear();\n };\n /**\n * Kick-off the password reset process. Only for email/password\n * authentication.\n *\n * An email will be sent to the user with a short password reset code, which\n * they can copy back into your app and use the [`confirmPasswordReset()`\n * method](#confirmPasswordReset).\n *\n * @param email - The email address to which to send a code.\n */\n Auth.prototype.requestPasswordReset = function (email) {\n this.storage.set('auth_password_reset_email', email);\n return this.authModules.basic.requestPasswordReset(email);\n };\n /**\n * Confirm a password reset.\n *\n * When the user gives you their password reset code into your app and their\n * requested changed password, call this method.\n *\n * @param code - The password reset code from the user.\n * @param newPassword - The requested changed password from the user.\n */\n Auth.prototype.confirmPasswordReset = function (code, newPassword) {\n var email = this.storage.get('auth_password_reset_email');\n if (!email) {\n return DeferredPromise.rejectImmediately(new Error('email address not found in local storage'));\n }\n else {\n return this.authModules.basic.confirmPasswordReset(email, code, newPassword);\n }\n };\n /**\n * Get the raw auth token of the active user from local storage.\n */\n Auth.prototype.getToken = function () {\n return this.tokenContext.get();\n };\n /**\n * @hidden\n */\n Auth.prototype.storeToken = function (options, token) {\n if (options === void 0) { options = { 'remember': true }; }\n var originalToken = this.authToken;\n this.authToken = token;\n this.tokenContext.store(this.authToken, { 'permanent': options.remember });\n this.emitter.emit('auth:token-changed', { 'old': originalToken, 'new': this.authToken });\n };\n /**\n * @hidden\n */\n Auth.getDetailedErrorFromResponse = function (res) {\n var errors = [];\n var details = [];\n if (isAPIResponseError(res.body) && typeof res.body.error.details !== 'undefined') {\n details = res.body.error.details;\n }\n for (var i = 0; i < details.length; i++) {\n var detail = details[i];\n if (detail.error_type) {\n errors.push(detail.error_type + '_' + detail.parameter);\n }\n }\n return new DetailedError('Error creating user', errors);\n };\n return Auth;\n}());\n/**\n * @hidden\n */\nexport var AuthType = (function () {\n function AuthType(deps) {\n this.config = deps.config;\n this.client = deps.client;\n this.emitter = deps.emitter;\n }\n AuthType.prototype.parseInAppBrowserOptions = function (opts) {\n if (!opts) {\n return '';\n }\n var p = [];\n for (var k in opts) {\n var v = void 0;\n if (typeof opts[k] === 'boolean') {\n v = opts[k] ? 'yes' : 'no';\n }\n else {\n v = opts[k];\n }\n p.push(k + \"=\" + v);\n }\n return p.join(',');\n };\n AuthType.prototype.inAppBrowserFlow = function (moduleId, data, options) {\n var _this = this;\n if (data === void 0) { data = {}; }\n if (options === void 0) { options = {}; }\n var deferred = new DeferredPromise();\n if (!window || !window.cordova) {\n return deferred.reject(new Error('Cordova is missing--can\\'t login with InAppBrowser flow.'));\n }\n this.emitter.once('cordova:deviceready', function () {\n if (!window.cordova.InAppBrowser) {\n deferred.reject(new Error('InAppBrowser plugin missing'));\n return;\n }\n _this.client.post(\"/auth/login/\" + moduleId)\n .send({\n 'app_id': _this.config.get('app_id'),\n 'callback': window.location.href,\n 'data': data\n })\n .end(function (err, res) {\n if (err) {\n deferred.reject(err);\n }\n else {\n var w_1 = window.cordova.InAppBrowser.open(res.body.data.url, '_blank', _this.parseInAppBrowserOptions(options.inAppBrowserOptions));\n var onExit_1 = function () {\n deferred.reject(new Error('InAppBrowser exit'));\n };\n var onLoadError_1 = function () {\n deferred.reject(new Error('InAppBrowser loaderror'));\n };\n var onLoadStart = function (data) {\n if (data.url.slice(0, 20) === 'http://auth.ionic.io') {\n var queryString = data.url.split('#')[0].split('?')[1];\n var paramParts = queryString.split('&');\n var params = {};\n for (var i = 0; i < paramParts.length; i++) {\n var part = paramParts[i].split('=');\n params[part[0]] = part[1];\n }\n w_1.removeEventListener('exit', onExit_1);\n w_1.removeEventListener('loaderror', onLoadError_1);\n w_1.close();\n deferred.resolve({\n 'token': params['token'],\n 'signup': Boolean(parseInt(params['signup'], 10))\n });\n }\n };\n w_1.addEventListener('exit', onExit_1);\n w_1.addEventListener('loaderror', onLoadError_1);\n w_1.addEventListener('loadstart', onLoadStart);\n }\n });\n });\n return deferred.promise;\n };\n return AuthType;\n}());\n/**\n * @hidden\n */\nexport var BasicAuthType = (function (_super) {\n __extends(BasicAuthType, _super);\n function BasicAuthType() {\n _super.apply(this, arguments);\n }\n BasicAuthType.prototype.authenticate = function (data, options) {\n var deferred = new DeferredPromise();\n if (!data.email || !data.password) {\n return deferred.reject(new Error('email and password are required for basic authentication'));\n }\n this.client.post('/auth/login')\n .send({\n 'app_id': this.config.get('app_id'),\n 'email': data.email,\n 'password': data.password\n })\n .end(function (err, res) {\n if (err) {\n deferred.reject(err);\n }\n else {\n deferred.resolve({\n 'token': res.body.data.token\n });\n }\n });\n return deferred.promise;\n };\n BasicAuthType.prototype.requestPasswordReset = function (email) {\n var deferred = new DeferredPromise();\n if (!email) {\n return deferred.reject(new Error('Email is required for password reset request.'));\n }\n this.client.post('/users/password/reset')\n .send({\n 'app_id': this.config.get('app_id'),\n 'email': email,\n 'flow': 'app'\n })\n .end(function (err, res) {\n if (err) {\n deferred.reject(err);\n }\n else {\n deferred.resolve();\n }\n });\n return deferred.promise;\n };\n BasicAuthType.prototype.confirmPasswordReset = function (email, code, newPassword) {\n var deferred = new DeferredPromise();\n if (!code || !email || !newPassword) {\n return deferred.reject(new Error('Code, new password, and email are required.'));\n }\n this.client.post('/users/password')\n .send({\n 'reset_token': code,\n 'new_password': newPassword,\n 'email': email\n })\n .end(function (err, res) {\n if (err) {\n deferred.reject(err);\n }\n else {\n deferred.resolve();\n }\n });\n return deferred.promise;\n };\n BasicAuthType.prototype.signup = function (data) {\n var deferred = new DeferredPromise();\n if (data.email) {\n if (!isValidEmail(data.email)) {\n return deferred.reject(new DetailedError('Invalid email supplied.', ['invalid_email']));\n }\n }\n else {\n return deferred.reject(new DetailedError('Email is required for email/password auth signup.', ['required_email']));\n }\n if (!data.password) {\n return deferred.reject(new DetailedError('Password is required for email/password auth signup.', ['required_password']));\n }\n var userData = {\n 'app_id': this.config.get('app_id'),\n 'email': data.email,\n 'password': data.password\n };\n // optional details\n if (data.username) {\n userData.username = data.username;\n }\n if (data.image) {\n userData.image = data.image;\n }\n if (data.name) {\n userData.name = data.name;\n }\n if (data.custom) {\n userData.custom = data.custom;\n }\n this.client.post('/users')\n .send(userData)\n .end(function (err, res) {\n if (err) {\n deferred.reject(Auth.getDetailedErrorFromResponse(err.response));\n }\n else {\n deferred.resolve();\n }\n });\n return deferred.promise;\n };\n return BasicAuthType;\n}(AuthType));\n/**\n * hidden\n */\nexport var NativeAuth = (function () {\n function NativeAuth(deps) {\n this.config = deps.config;\n this.client = deps.client;\n this.userService = deps.userService;\n this.tokenContext = deps.tokenContext;\n this.emitter = deps.emitter;\n }\n /**\n * Get the raw auth token of the active user from local storage.\n * @hidden\n */\n NativeAuth.prototype.getToken = function () {\n return this.tokenContext.get();\n };\n /**\n * @hidden\n */\n NativeAuth.prototype.storeToken = function (token) {\n var originalToken = this.authToken;\n this.authToken = token;\n this.tokenContext.store(this.authToken, { 'permanent': true });\n this.emitter.emit('auth:token-changed', { 'old': originalToken, 'new': this.authToken });\n };\n return NativeAuth;\n}());\n/**\n * GoogleNativeAuth handles logging into googleplus through the cordova-plugin-googleplus plugin.'\n * @featured\n */\nexport var GoogleAuth = (function (_super) {\n __extends(GoogleAuth, _super);\n function GoogleAuth() {\n _super.apply(this, arguments);\n }\n GoogleAuth.prototype.logout = function () {\n var deferred = new DeferredPromise();\n this.tokenContext.delete();\n var user = this.userService.current();\n user.unstore();\n user.clear();\n GooglePlus.logout().then(function () {\n deferred.resolve();\n }, function (err) {\n deferred.reject(err);\n });\n return deferred.promise;\n };\n GoogleAuth.prototype.login = function () {\n var _this = this;\n var deferred = new DeferredPromise();\n var authConfig = this.config.settings.auth;\n this.emitter.once('cordova:deviceready', function () {\n var scope = ['profile', 'email'];\n if (!GooglePlus) {\n deferred.reject(new Error('Ionic native is not installed'));\n return;\n }\n if (!window || !window.cordova) {\n deferred.reject(new Error('Cordova is missing'));\n return;\n }\n if (!window.plugins || !window.plugins.googleplus) {\n deferred.reject(new Error('GooglePlus cordova plugin is missing.'));\n return;\n }\n if (!authConfig || !authConfig.google || !authConfig.google.webClientId) {\n deferred.reject(new Error('Missing google web client id. Please visit http://docs.ionic.io/services/users/google-auth.html#native'));\n return;\n }\n if (authConfig.google.scope) {\n authConfig.google.scope.forEach(function (item) {\n if (scope.indexOf(item) === -1) {\n scope.push(item);\n }\n });\n }\n GooglePlus.login({ 'webClientId': authConfig.google.webClientId, 'offline': true, 'scopes': scope.join(' ') }).then(function (success) {\n if (!success.serverAuthCode) {\n deferred.reject(new Error('Failed to retrieve offline access token.'));\n return;\n }\n var request_object = {\n 'app_id': _this.config.get('app_id'),\n 'serverAuthCode': success.serverAuthCode,\n 'additional_fields': scope,\n 'flow': 'native-mobile'\n };\n _this.client.post('/auth/login/google')\n .send(request_object)\n .end(function (err, res) {\n if (err) {\n deferred.reject(err);\n }\n else {\n _this.storeToken(res.body.data.token);\n _this.userService.load().then(function () {\n var user = _this.userService.current();\n user.store();\n deferred.resolve({\n 'token': res.body.data.token,\n 'signup': Boolean(parseInt(res.body.data.signup, 10))\n });\n });\n }\n });\n }, function (err) {\n deferred.reject(err);\n });\n });\n return deferred.promise;\n };\n return GoogleAuth;\n}(NativeAuth));\n/**\n * FacebookNative handles logging into facebook through the cordova-plugin-facebook4 plugin.\n * @featured\n */\nexport var FacebookAuth = (function (_super) {\n __extends(FacebookAuth, _super);\n function FacebookAuth() {\n _super.apply(this, arguments);\n }\n FacebookAuth.prototype.logout = function () {\n var deferred = new DeferredPromise();\n this.tokenContext.delete();\n var user = this.userService.current();\n user.unstore();\n user.clear();\n // Clear the facebook auth.\n Facebook.logout().then(function () {\n deferred.resolve();\n }, function (err) {\n deferred.reject(err);\n });\n return deferred.promise;\n };\n FacebookAuth.prototype.login = function () {\n var _this = this;\n var deferred = new DeferredPromise();\n var authConfig = this.config.settings.auth;\n var scope = ['public_profile', 'email'];\n if (authConfig && authConfig.facebook && authConfig.facebook.scope) {\n authConfig.facebook.scope.forEach(function (item) {\n if (scope.indexOf(item) === -1) {\n scope.push(item);\n }\n });\n }\n this.emitter.once('cordova:deviceready', function () {\n if (!Facebook) {\n deferred.reject(new Error('Ionic native is not installed'));\n return;\n }\n if (!window || !window.cordova) {\n deferred.reject(new Error('Cordova is missing.'));\n return;\n }\n if (!window.facebookConnectPlugin) {\n deferred.reject(new Error('Please install the cordova-plugin-facebook4 plugin'));\n return;\n }\n Facebook.login(scope).then(function (r) {\n scope.splice(scope.indexOf('public_profile'), 1);\n var request_object = {\n 'app_id': _this.config.get('app_id'),\n 'access_token': r.authResponse.accessToken,\n 'additional_fields': scope,\n 'flow': 'native-mobile'\n };\n _this.client.post('/auth/login/facebook')\n .send(request_object)\n .end(function (err, res) {\n if (err) {\n deferred.reject(err);\n }\n else {\n _this.storeToken(res.body.data.token);\n _this.userService.load().then(function () {\n var user = _this.userService.current();\n user.store();\n deferred.resolve({\n 'token': res.body.data.token,\n 'signup': Boolean(parseInt(res.body.data.signup, 10))\n });\n });\n }\n });\n }, function (err) {\n deferred.reject(err);\n });\n });\n return deferred.promise;\n };\n return FacebookAuth;\n}(NativeAuth));\n/**\n * @hidden\n */\nexport var CustomAuthType = (function (_super) {\n __extends(CustomAuthType, _super);\n function CustomAuthType() {\n _super.apply(this, arguments);\n }\n CustomAuthType.prototype.authenticate = function (data, options) {\n if (data === void 0) { data = {}; }\n return this.inAppBrowserFlow('custom', data, options);\n };\n return CustomAuthType;\n}(AuthType));\n/**\n * @hidden\n */\nexport var TwitterAuthType = (function (_super) {\n __extends(TwitterAuthType, _super);\n function TwitterAuthType() {\n _super.apply(this, arguments);\n }\n TwitterAuthType.prototype.authenticate = function (data, options) {\n if (data === void 0) { data = {}; }\n return this.inAppBrowserFlow('twitter', data, options);\n };\n return TwitterAuthType;\n}(AuthType));\n/**\n * @hidden\n */\nexport var FacebookAuthType = (function (_super) {\n __extends(FacebookAuthType, _super);\n function FacebookAuthType() {\n _super.apply(this, arguments);\n }\n FacebookAuthType.prototype.authenticate = function (data, options) {\n if (data === void 0) { data = {}; }\n return this.inAppBrowserFlow('facebook', data, options);\n };\n return FacebookAuthType;\n}(AuthType));\n/**\n * @hidden\n */\nexport var GithubAuthType = (function (_super) {\n __extends(GithubAuthType, _super);\n function GithubAuthType() {\n _super.apply(this, arguments);\n }\n GithubAuthType.prototype.authenticate = function (data, options) {\n if (data === void 0) { data = {}; }\n return this.inAppBrowserFlow('github', data, options);\n };\n return GithubAuthType;\n}(AuthType));\n/**\n * @hidden\n */\nexport var GoogleAuthType = (function (_super) {\n __extends(GoogleAuthType, _super);\n function GoogleAuthType() {\n _super.apply(this, arguments);\n }\n GoogleAuthType.prototype.authenticate = function (data, options) {\n if (data === void 0) { data = {}; }\n return this.inAppBrowserFlow('google', data, options);\n };\n return GoogleAuthType;\n}(AuthType));\n/**\n * @hidden\n */\nexport var InstagramAuthType = (function (_super) {\n __extends(InstagramAuthType, _super);\n function InstagramAuthType() {\n _super.apply(this, arguments);\n }\n InstagramAuthType.prototype.authenticate = function (data, options) {\n if (data === void 0) { data = {}; }\n return this.inAppBrowserFlow('instagram', data, options);\n };\n return InstagramAuthType;\n}(AuthType));\n/**\n * @hidden\n */\nexport var LinkedInAuthType = (function (_super) {\n __extends(LinkedInAuthType, _super);\n function LinkedInAuthType() {\n _super.apply(this, arguments);\n }\n LinkedInAuthType.prototype.authenticate = function (data, options) {\n if (data === void 0) { data = {}; }\n return this.inAppBrowserFlow('linkedin', data, options);\n };\n return LinkedInAuthType;\n}(AuthType));\n","\r\n/**\r\n * Expose `Emitter`.\r\n */\r\n\r\nif (typeof module !== 'undefined') {\r\n module.exports = Emitter;\r\n}\r\n\r\n/**\r\n * Initialize a new `Emitter`.\r\n *\r\n * @api public\r\n */\r\n\r\nfunction Emitter(obj) {\r\n if (obj) return mixin(obj);\r\n};\r\n\r\n/**\r\n * Mixin the emitter properties.\r\n *\r\n * @param {Object} obj\r\n * @return {Object}\r\n * @api private\r\n */\r\n\r\nfunction mixin(obj) {\r\n for (var key in Emitter.prototype) {\r\n obj[key] = Emitter.prototype[key];\r\n }\r\n return obj;\r\n}\r\n\r\n/**\r\n * Listen on the given `event` with `fn`.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.on =\r\nEmitter.prototype.addEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\r\n .push(fn);\r\n return this;\r\n};\r\n\r\n/**\r\n * Adds an `event` listener that will be invoked a single\r\n * time then automatically removed.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.once = function(event, fn){\r\n function on() {\r\n this.off(event, on);\r\n fn.apply(this, arguments);\r\n }\r\n\r\n on.fn = fn;\r\n this.on(event, on);\r\n return this;\r\n};\r\n\r\n/**\r\n * Remove the given callback for `event` or all\r\n * registered callbacks.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.off =\r\nEmitter.prototype.removeListener =\r\nEmitter.prototype.removeAllListeners =\r\nEmitter.prototype.removeEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n\r\n // all\r\n if (0 == arguments.length) {\r\n this._callbacks = {};\r\n return this;\r\n }\r\n\r\n // specific event\r\n var callbacks = this._callbacks['$' + event];\r\n if (!callbacks) return this;\r\n\r\n // remove all handlers\r\n if (1 == arguments.length) {\r\n delete this._callbacks['$' + event];\r\n return this;\r\n }\r\n\r\n // remove specific handler\r\n var cb;\r\n for (var i = 0; i < callbacks.length; i++) {\r\n cb = callbacks[i];\r\n if (cb === fn || cb.fn === fn) {\r\n callbacks.splice(i, 1);\r\n break;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emit `event` with the given args.\r\n *\r\n * @param {String} event\r\n * @param {Mixed} ...\r\n * @return {Emitter}\r\n */\r\n\r\nEmitter.prototype.emit = function(event){\r\n this._callbacks = this._callbacks || {};\r\n var args = [].slice.call(arguments, 1)\r\n , callbacks = this._callbacks['$' + event];\r\n\r\n if (callbacks) {\r\n callbacks = callbacks.slice(0);\r\n for (var i = 0, len = callbacks.length; i < len; ++i) {\r\n callbacks[i].apply(this, args);\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Return array of callbacks for `event`.\r\n *\r\n * @param {String} event\r\n * @return {Array}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.listeners = function(event){\r\n this._callbacks = this._callbacks || {};\r\n return this._callbacks['$' + event] || [];\r\n};\r\n\r\n/**\r\n * Check if this emitter has `event` handlers.\r\n *\r\n * @param {String} event\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.hasListeners = function(event){\r\n return !! this.listeners(event).length;\r\n};\r\n","\n/**\n * Reduce `arr` with `fn`.\n *\n * @param {Array} arr\n * @param {Function} fn\n * @param {Mixed} initial\n *\n * TODO: combatible error handling?\n */\n\nmodule.exports = function(arr, fn, initial){ \n var idx = 0;\n var len = arr.length;\n var curr = arguments.length == 3\n ? initial\n : arr[idx++];\n\n while (idx < len) {\n curr = fn.call(null, curr, arr[idx], ++idx, arr);\n }\n \n return curr;\n};","/**\n * Module dependencies.\n */\n\nvar Emitter = require('emitter');\nvar reduce = require('reduce');\n\n/**\n * Root reference for iframes.\n */\n\nvar root;\nif (typeof window !== 'undefined') { // Browser window\n root = window;\n} else if (typeof self !== 'undefined') { // Web Worker\n root = self;\n} else { // Other environments\n root = this;\n}\n\n/**\n * Noop.\n */\n\nfunction noop(){};\n\n/**\n * Check if `obj` is a host object,\n * we don't want to serialize these :)\n *\n * TODO: future proof, move to compoent land\n *\n * @param {Object} obj\n * @return {Boolean}\n * @api private\n */\n\nfunction isHost(obj) {\n var str = {}.toString.call(obj);\n\n switch (str) {\n case '[object File]':\n case '[object Blob]':\n case '[object FormData]':\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Determine XHR.\n */\n\nrequest.getXHR = function () {\n if (root.XMLHttpRequest\n && (!root.location || 'file:' != root.location.protocol\n || !root.ActiveXObject)) {\n return new XMLHttpRequest;\n } else {\n try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch(e) {}\n try { return new ActiveXObject('Msxml2.XMLHTTP.6.0'); } catch(e) {}\n try { return new ActiveXObject('Msxml2.XMLHTTP.3.0'); } catch(e) {}\n try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch(e) {}\n }\n return false;\n};\n\n/**\n * Removes leading and trailing whitespace, added to support IE.\n *\n * @param {String} s\n * @return {String}\n * @api private\n */\n\nvar trim = ''.trim\n ? function(s) { return s.trim(); }\n : function(s) { return s.replace(/(^\\s*|\\s*$)/g, ''); };\n\n/**\n * Check if `obj` is an object.\n *\n * @param {Object} obj\n * @return {Boolean}\n * @api private\n */\n\nfunction isObject(obj) {\n return obj === Object(obj);\n}\n\n/**\n * Serialize the given `obj`.\n *\n * @param {Object} obj\n * @return {String}\n * @api private\n */\n\nfunction serialize(obj) {\n if (!isObject(obj)) return obj;\n var pairs = [];\n for (var key in obj) {\n if (null != obj[key]) {\n pushEncodedKeyValuePair(pairs, key, obj[key]);\n }\n }\n return pairs.join('&');\n}\n\n/**\n * Helps 'serialize' with serializing arrays.\n * Mutates the pairs array.\n *\n * @param {Array} pairs\n * @param {String} key\n * @param {Mixed} val\n */\n\nfunction pushEncodedKeyValuePair(pairs, key, val) {\n if (Array.isArray(val)) {\n return val.forEach(function(v) {\n pushEncodedKeyValuePair(pairs, key, v);\n });\n }\n pairs.push(encodeURIComponent(key)\n + '=' + encodeURIComponent(val));\n}\n\n/**\n * Expose serialization method.\n */\n\n request.serializeObject = serialize;\n\n /**\n * Parse the given x-www-form-urlencoded `str`.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseString(str) {\n var obj = {};\n var pairs = str.split('&');\n var parts;\n var pair;\n\n for (var i = 0, len = pairs.length; i < len; ++i) {\n pair = pairs[i];\n parts = pair.split('=');\n obj[decodeURIComponent(parts[0])] = decodeURIComponent(parts[1]);\n }\n\n return obj;\n}\n\n/**\n * Expose parser.\n */\n\nrequest.parseString = parseString;\n\n/**\n * Default MIME type map.\n *\n * superagent.types.xml = 'application/xml';\n *\n */\n\nrequest.types = {\n html: 'text/html',\n json: 'application/json',\n xml: 'application/xml',\n urlencoded: 'application/x-www-form-urlencoded',\n 'form': 'application/x-www-form-urlencoded',\n 'form-data': 'application/x-www-form-urlencoded'\n};\n\n/**\n * Default serialization map.\n *\n * superagent.serialize['application/xml'] = function(obj){\n * return 'generated xml here';\n * };\n *\n */\n\n request.serialize = {\n 'application/x-www-form-urlencoded': serialize,\n 'application/json': JSON.stringify\n };\n\n /**\n * Default parsers.\n *\n * superagent.parse['application/xml'] = function(str){\n * return { object parsed from str };\n * };\n *\n */\n\nrequest.parse = {\n 'application/x-www-form-urlencoded': parseString,\n 'application/json': JSON.parse\n};\n\n/**\n * Parse the given header `str` into\n * an object containing the mapped fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseHeader(str) {\n var lines = str.split(/\\r?\\n/);\n var fields = {};\n var index;\n var line;\n var field;\n var val;\n\n lines.pop(); // trailing CRLF\n\n for (var i = 0, len = lines.length; i < len; ++i) {\n line = lines[i];\n index = line.indexOf(':');\n field = line.slice(0, index).toLowerCase();\n val = trim(line.slice(index + 1));\n fields[field] = val;\n }\n\n return fields;\n}\n\n/**\n * Check if `mime` is json or has +json structured syntax suffix.\n *\n * @param {String} mime\n * @return {Boolean}\n * @api private\n */\n\nfunction isJSON(mime) {\n return /[\\/+]json\\b/.test(mime);\n}\n\n/**\n * Return the mime type for the given `str`.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\nfunction type(str){\n return str.split(/ *; */).shift();\n};\n\n/**\n * Return header field parameters.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction params(str){\n return reduce(str.split(/ *; */), function(obj, str){\n var parts = str.split(/ *= */)\n , key = parts.shift()\n , val = parts.shift();\n\n if (key && val) obj[key] = val;\n return obj;\n }, {});\n};\n\n/**\n * Initialize a new `Response` with the given `xhr`.\n *\n * - set flags (.ok, .error, etc)\n * - parse header\n *\n * Examples:\n *\n * Aliasing `superagent` as `request` is nice:\n *\n * request = superagent;\n *\n * We can use the promise-like API, or pass callbacks:\n *\n * request.get('/').end(function(res){});\n * request.get('/', function(res){});\n *\n * Sending data can be chained:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' })\n * .end(function(res){});\n *\n * Or passed to `.send()`:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' }, function(res){});\n *\n * Or passed to `.post()`:\n *\n * request\n * .post('/user', { name: 'tj' })\n * .end(function(res){});\n *\n * Or further reduced to a single call for simple cases:\n *\n * request\n * .post('/user', { name: 'tj' }, function(res){});\n *\n * @param {XMLHTTPRequest} xhr\n * @param {Object} options\n * @api private\n */\n\nfunction Response(req, options) {\n options = options || {};\n this.req = req;\n this.xhr = this.req.xhr;\n // responseText is accessible only if responseType is '' or 'text' and on older browsers\n this.text = ((this.req.method !='HEAD' && (this.xhr.responseType === '' || this.xhr.responseType === 'text')) || typeof this.xhr.responseType === 'undefined')\n ? this.xhr.responseText\n : null;\n this.statusText = this.req.xhr.statusText;\n this.setStatusProperties(this.xhr.status);\n this.header = this.headers = parseHeader(this.xhr.getAllResponseHeaders());\n // getAllResponseHeaders sometimes falsely returns \"\" for CORS requests, but\n // getResponseHeader still works. so we get content-type even if getting\n // other headers fails.\n this.header['content-type'] = this.xhr.getResponseHeader('content-type');\n this.setHeaderProperties(this.header);\n this.body = this.req.method != 'HEAD'\n ? this.parseBody(this.text ? this.text : this.xhr.response)\n : null;\n}\n\n/**\n * Get case-insensitive `field` value.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\nResponse.prototype.get = function(field){\n return this.header[field.toLowerCase()];\n};\n\n/**\n * Set header related properties:\n *\n * - `.type` the content type without params\n *\n * A response of \"Content-Type: text/plain; charset=utf-8\"\n * will provide you with a `.type` of \"text/plain\".\n *\n * @param {Object} header\n * @api private\n */\n\nResponse.prototype.setHeaderProperties = function(header){\n // content-type\n var ct = this.header['content-type'] || '';\n this.type = type(ct);\n\n // params\n var obj = params(ct);\n for (var key in obj) this[key] = obj[key];\n};\n\n/**\n * Parse the given body `str`.\n *\n * Used for auto-parsing of bodies. Parsers\n * are defined on the `superagent.parse` object.\n *\n * @param {String} str\n * @return {Mixed}\n * @api private\n */\n\nResponse.prototype.parseBody = function(str){\n var parse = request.parse[this.type];\n return parse && str && (str.length || str instanceof Object)\n ? parse(str)\n : null;\n};\n\n/**\n * Set flags such as `.ok` based on `status`.\n *\n * For example a 2xx response will give you a `.ok` of __true__\n * whereas 5xx will be __false__ and `.error` will be __true__. The\n * `.clientError` and `.serverError` are also available to be more\n * specific, and `.statusType` is the class of error ranging from 1..5\n * sometimes useful for mapping respond colors etc.\n *\n * \"sugar\" properties are also defined for common cases. Currently providing:\n *\n * - .noContent\n * - .badRequest\n * - .unauthorized\n * - .notAcceptable\n * - .notFound\n *\n * @param {Number} status\n * @api private\n */\n\nResponse.prototype.setStatusProperties = function(status){\n // handle IE9 bug: http://stackoverflow.com/questions/10046972/msie-returns-status-code-of-1223-for-ajax-request\n if (status === 1223) {\n status = 204;\n }\n\n var type = status / 100 | 0;\n\n // status / class\n this.status = this.statusCode = status;\n this.statusType = type;\n\n // basics\n this.info = 1 == type;\n this.ok = 2 == type;\n this.clientError = 4 == type;\n this.serverError = 5 == type;\n this.error = (4 == type || 5 == type)\n ? this.toError()\n : false;\n\n // sugar\n this.accepted = 202 == status;\n this.noContent = 204 == status;\n this.badRequest = 400 == status;\n this.unauthorized = 401 == status;\n this.notAcceptable = 406 == status;\n this.notFound = 404 == status;\n this.forbidden = 403 == status;\n};\n\n/**\n * Return an `Error` representative of this response.\n *\n * @return {Error}\n * @api public\n */\n\nResponse.prototype.toError = function(){\n var req = this.req;\n var method = req.method;\n var url = req.url;\n\n var msg = 'cannot ' + method + ' ' + url + ' (' + this.status + ')';\n var err = new Error(msg);\n err.status = this.status;\n err.method = method;\n err.url = url;\n\n return err;\n};\n\n/**\n * Expose `Response`.\n */\n\nrequest.Response = Response;\n\n/**\n * Initialize a new `Request` with the given `method` and `url`.\n *\n * @param {String} method\n * @param {String} url\n * @api public\n */\n\nfunction Request(method, url) {\n var self = this;\n Emitter.call(this);\n this._query = this._query || [];\n this.method = method;\n this.url = url;\n this.header = {};\n this._header = {};\n this.on('end', function(){\n var err = null;\n var res = null;\n\n try {\n res = new Response(self);\n } catch(e) {\n err = new Error('Parser is unable to parse the response');\n err.parse = true;\n err.original = e;\n // issue #675: return the raw response if the response parsing fails\n err.rawResponse = self.xhr && self.xhr.responseText ? self.xhr.responseText : null;\n return self.callback(err);\n }\n\n self.emit('response', res);\n\n if (err) {\n return self.callback(err, res);\n }\n\n if (res.status >= 200 && res.status < 300) {\n return self.callback(err, res);\n }\n\n var new_err = new Error(res.statusText || 'Unsuccessful HTTP response');\n new_err.original = err;\n new_err.response = res;\n new_err.status = res.status;\n\n self.callback(new_err, res);\n });\n}\n\n/**\n * Mixin `Emitter`.\n */\n\nEmitter(Request.prototype);\n\n/**\n * Allow for extension\n */\n\nRequest.prototype.use = function(fn) {\n fn(this);\n return this;\n}\n\n/**\n * Set timeout to `ms`.\n *\n * @param {Number} ms\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.timeout = function(ms){\n this._timeout = ms;\n return this;\n};\n\n/**\n * Clear previous timeout.\n *\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.clearTimeout = function(){\n this._timeout = 0;\n clearTimeout(this._timer);\n return this;\n};\n\n/**\n * Abort the request, and clear potential timeout.\n *\n * @return {Request}\n * @api public\n */\n\nRequest.prototype.abort = function(){\n if (this.aborted) return;\n this.aborted = true;\n this.xhr.abort();\n this.clearTimeout();\n this.emit('abort');\n return this;\n};\n\n/**\n * Set header `field` to `val`, or multiple fields with one object.\n *\n * Examples:\n *\n * req.get('/')\n * .set('Accept', 'application/json')\n * .set('X-API-Key', 'foobar')\n * .end(callback);\n *\n * req.get('/')\n * .set({ Accept: 'application/json', 'X-API-Key': 'foobar' })\n * .end(callback);\n *\n * @param {String|Object} field\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.set = function(field, val){\n if (isObject(field)) {\n for (var key in field) {\n this.set(key, field[key]);\n }\n return this;\n }\n this._header[field.toLowerCase()] = val;\n this.header[field] = val;\n return this;\n};\n\n/**\n * Remove header `field`.\n *\n * Example:\n *\n * req.get('/')\n * .unset('User-Agent')\n * .end(callback);\n *\n * @param {String} field\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.unset = function(field){\n delete this._header[field.toLowerCase()];\n delete this.header[field];\n return this;\n};\n\n/**\n * Get case-insensitive header `field` value.\n *\n * @param {String} field\n * @return {String}\n * @api private\n */\n\nRequest.prototype.getHeader = function(field){\n return this._header[field.toLowerCase()];\n};\n\n/**\n * Set Content-Type to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.xml = 'application/xml';\n *\n * request.post('/')\n * .type('xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * request.post('/')\n * .type('application/xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * @param {String} type\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.type = function(type){\n this.set('Content-Type', request.types[type] || type);\n return this;\n};\n\n/**\n * Force given parser\n *\n * Sets the body parser no matter type.\n *\n * @param {Function}\n * @api public\n */\n\nRequest.prototype.parse = function(fn){\n this._parser = fn;\n return this;\n};\n\n/**\n * Set Accept to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.json = 'application/json';\n *\n * request.get('/agent')\n * .accept('json')\n * .end(callback);\n *\n * request.get('/agent')\n * .accept('application/json')\n * .end(callback);\n *\n * @param {String} accept\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.accept = function(type){\n this.set('Accept', request.types[type] || type);\n return this;\n};\n\n/**\n * Set Authorization field value with `user` and `pass`.\n *\n * @param {String} user\n * @param {String} pass\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.auth = function(user, pass){\n var str = btoa(user + ':' + pass);\n this.set('Authorization', 'Basic ' + str);\n return this;\n};\n\n/**\n* Add query-string `val`.\n*\n* Examples:\n*\n* request.get('/shoes')\n* .query('size=10')\n* .query({ color: 'blue' })\n*\n* @param {Object|String} val\n* @return {Request} for chaining\n* @api public\n*/\n\nRequest.prototype.query = function(val){\n if ('string' != typeof val) val = serialize(val);\n if (val) this._query.push(val);\n return this;\n};\n\n/**\n * Write the field `name` and `val` for \"multipart/form-data\"\n * request bodies.\n *\n * ``` js\n * request.post('/upload')\n * .field('foo', 'bar')\n * .end(callback);\n * ```\n *\n * @param {String} name\n * @param {String|Blob|File} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.field = function(name, val){\n if (!this._formData) this._formData = new root.FormData();\n this._formData.append(name, val);\n return this;\n};\n\n/**\n * Queue the given `file` as an attachment to the specified `field`,\n * with optional `filename`.\n *\n * ``` js\n * request.post('/upload')\n * .attach(new Blob(['<a id=\"a\"><b id=\"b\">hey!</b></a>'], { type: \"text/html\"}))\n * .end(callback);\n * ```\n *\n * @param {String} field\n * @param {Blob|File} file\n * @param {String} filename\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.attach = function(field, file, filename){\n if (!this._formData) this._formData = new root.FormData();\n this._formData.append(field, file, filename || file.name);\n return this;\n};\n\n/**\n * Send `data` as the request body, defaulting the `.type()` to \"json\" when\n * an object is given.\n *\n * Examples:\n *\n * // manual json\n * request.post('/user')\n * .type('json')\n * .send('{\"name\":\"tj\"}')\n * .end(callback)\n *\n * // auto json\n * request.post('/user')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // manual x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send('name=tj')\n * .end(callback)\n *\n * // auto x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // defaults to x-www-form-urlencoded\n * request.post('/user')\n * .send('name=tobi')\n * .send('species=ferret')\n * .end(callback)\n *\n * @param {String|Object} data\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.send = function(data){\n var obj = isObject(data);\n var type = this.getHeader('Content-Type');\n\n // merge\n if (obj && isObject(this._data)) {\n for (var key in data) {\n this._data[key] = data[key];\n }\n } else if ('string' == typeof data) {\n if (!type) this.type('form');\n type = this.getHeader('Content-Type');\n if ('application/x-www-form-urlencoded' == type) {\n this._data = this._data\n ? this._data + '&' + data\n : data;\n } else {\n this._data = (this._data || '') + data;\n }\n } else {\n this._data = data;\n }\n\n if (!obj || isHost(data)) return this;\n if (!type) this.type('json');\n return this;\n};\n\n/**\n * Invoke the callback with `err` and `res`\n * and handle arity check.\n *\n * @param {Error} err\n * @param {Response} res\n * @api private\n */\n\nRequest.prototype.callback = function(err, res){\n var fn = this._callback;\n this.clearTimeout();\n fn(err, res);\n};\n\n/**\n * Invoke callback with x-domain error.\n *\n * @api private\n */\n\nRequest.prototype.crossDomainError = function(){\n var err = new Error('Request has been terminated\\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.');\n err.crossDomain = true;\n\n err.status = this.status;\n err.method = this.method;\n err.url = this.url;\n\n this.callback(err);\n};\n\n/**\n * Invoke callback with timeout error.\n *\n * @api private\n */\n\nRequest.prototype.timeoutError = function(){\n var timeout = this._timeout;\n var err = new Error('timeout of ' + timeout + 'ms exceeded');\n err.timeout = timeout;\n this.callback(err);\n};\n\n/**\n * Enable transmission of cookies with x-domain requests.\n *\n * Note that for this to work the origin must not be\n * using \"Access-Control-Allow-Origin\" with a wildcard,\n * and also must set \"Access-Control-Allow-Credentials\"\n * to \"true\".\n *\n * @api public\n */\n\nRequest.prototype.withCredentials = function(){\n this._withCredentials = true;\n return this;\n};\n\n/**\n * Initiate request, invoking callback `fn(res)`\n * with an instanceof `Response`.\n *\n * @param {Function} fn\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.end = function(fn){\n var self = this;\n var xhr = this.xhr = request.getXHR();\n var query = this._query.join('&');\n var timeout = this._timeout;\n var data = this._formData || this._data;\n\n // store callback\n this._callback = fn || noop;\n\n // state change\n xhr.onreadystatechange = function(){\n if (4 != xhr.readyState) return;\n\n // In IE9, reads to any property (e.g. status) off of an aborted XHR will\n // result in the error \"Could not complete the operation due to error c00c023f\"\n var status;\n try { status = xhr.status } catch(e) { status = 0; }\n\n if (0 == status) {\n if (self.timedout) return self.timeoutError();\n if (self.aborted) return;\n return self.crossDomainError();\n }\n self.emit('end');\n };\n\n // progress\n var handleProgress = function(e){\n if (e.total > 0) {\n e.percent = e.loaded / e.total * 100;\n }\n e.direction = 'download';\n self.emit('progress', e);\n };\n if (this.hasListeners('progress')) {\n xhr.onprogress = handleProgress;\n }\n try {\n if (xhr.upload && this.hasListeners('progress')) {\n xhr.upload.onprogress = handleProgress;\n }\n } catch(e) {\n // Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist.\n // Reported here:\n // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context\n }\n\n // timeout\n if (timeout && !this._timer) {\n this._timer = setTimeout(function(){\n self.timedout = true;\n self.abort();\n }, timeout);\n }\n\n // querystring\n if (query) {\n query = request.serializeObject(query);\n this.url += ~this.url.indexOf('?')\n ? '&' + query\n : '?' + query;\n }\n\n // initiate request\n xhr.open(this.method, this.url, true);\n\n // CORS\n if (this._withCredentials) xhr.withCredentials = true;\n\n // body\n if ('GET' != this.method && 'HEAD' != this.method && 'string' != typeof data && !isHost(data)) {\n // serialize stuff\n var contentType = this.getHeader('Content-Type');\n var serialize = this._parser || request.serialize[contentType ? contentType.split(';')[0] : ''];\n if (!serialize && isJSON(contentType)) serialize = request.serialize['application/json'];\n if (serialize) data = serialize(data);\n }\n\n // set header fields\n for (var field in this.header) {\n if (null == this.header[field]) continue;\n xhr.setRequestHeader(field, this.header[field]);\n }\n\n // send stuff\n this.emit('request', this);\n\n // IE11 xhr.send(undefined) sends 'undefined' string as POST payload (instead of nothing)\n // We need null here if data is undefined\n xhr.send(typeof data !== 'undefined' ? data : null);\n return this;\n};\n\n/**\n * Faux promise support\n *\n * @param {Function} fulfill\n * @param {Function} reject\n * @return {Request}\n */\n\nRequest.prototype.then = function (fulfill, reject) {\n return this.end(function(err, res) {\n err ? reject(err) : fulfill(res);\n });\n}\n\n/**\n * Expose `Request`.\n */\n\nrequest.Request = Request;\n\n/**\n * Issue a request:\n *\n * Examples:\n *\n * request('GET', '/users').end(callback)\n * request('/users').end(callback)\n * request('/users', callback)\n *\n * @param {String} method\n * @param {String|Function} url or callback\n * @return {Request}\n * @api public\n */\n\nfunction request(method, url) {\n // callback\n if ('function' == typeof url) {\n return new Request('GET', method).end(url);\n }\n\n // url first\n if (1 == arguments.length) {\n return new Request('GET', method);\n }\n\n return new Request(method, url);\n}\n\n/**\n * GET `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} data or fn\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nrequest.get = function(url, data, fn){\n var req = request('GET', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * HEAD `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} data or fn\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nrequest.head = function(url, data, fn){\n var req = request('HEAD', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * DELETE `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nfunction del(url, fn){\n var req = request('DELETE', url);\n if (fn) req.end(fn);\n return req;\n};\n\nrequest['del'] = del;\nrequest['delete'] = del;\n\n/**\n * PATCH `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} data\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nrequest.patch = function(url, data, fn){\n var req = request('PATCH', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * POST `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} data\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nrequest.post = function(url, data, fn){\n var req = request('POST', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * PUT `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} data or fn\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nrequest.put = function(url, data, fn){\n var req = request('PUT', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * Expose `request`.\n */\n\nmodule.exports = request;\n","import * as request from 'superagent';\n/**\n * `Client` is for making HTTP requests to the API.\n *\n * Under the hood, it uses\n * [superagent](http://visionmedia.github.io/superagent/). When a method is\n * called, you can call any number of superagent functions on it and then call\n * `end()` to complete and send the request.\n *\n * @featured\n */\nexport var Client = (function () {\n function Client(\n /**\n * @hidden\n */\n tokenContext, \n /**\n * @hidden\n */\n baseUrl, req // TODO: use superagent types\n ) {\n this.tokenContext = tokenContext;\n this.baseUrl = baseUrl;\n if (typeof req === 'undefined') {\n req = request['default'] || request;\n }\n this.req = req;\n }\n /**\n * GET request for retrieving a resource from the API.\n *\n * @param endpoint - The path of the API endpoint.\n */\n Client.prototype.get = function (endpoint) {\n return this.supplement(this.req.get, endpoint);\n };\n /**\n * POST request for sending a new resource to the API.\n *\n * @param endpoint - The path of the API endpoint.\n */\n Client.prototype.post = function (endpoint) {\n return this.supplement(this.req.post, endpoint);\n };\n /**\n * PUT request for replacing a resource in the API.\n *\n * @param endpoint - The path of the API endpoint.\n */\n Client.prototype.put = function (endpoint) {\n return this.supplement(this.req.put, endpoint);\n };\n /**\n * PATCH request for performing partial updates to a resource in the API.\n *\n * @param endpoint - The path of the API endpoint.\n */\n Client.prototype.patch = function (endpoint) {\n return this.supplement(this.req.patch, endpoint);\n };\n /**\n * DELETE request for deleting a resource from the API.\n *\n * @param endpoint - The path of the API endpoint.\n */\n Client.prototype.delete = function (endpoint) {\n return this.supplement(this.req.delete, endpoint);\n };\n /**\n * @hidden\n */\n Client.prototype.request = function (method, endpoint) {\n return this.supplement(this.req.bind(this.req, method), endpoint);\n };\n /**\n * @private\n */\n Client.prototype.supplement = function (fn, endpoint) {\n if (endpoint.substring(0, 1) !== '/') {\n throw Error('endpoint must start with leading slash');\n }\n var req = fn(this.baseUrl + endpoint);\n var token = this.tokenContext.get();\n if (token) {\n req.set('Authorization', \"Bearer \" + token);\n }\n return req;\n };\n return Client;\n}());\n","/**\n * @hidden\n */\nexport var Config = (function () {\n function Config() {\n /**\n * @private\n */\n this.urls = {\n 'api': 'https://api.ionic.io',\n 'web': 'https://web.ionic.io'\n };\n }\n /**\n * Register a new config.\n */\n Config.prototype.register = function (settings) {\n this.settings = settings;\n };\n /**\n * Get a value from the core settings. You should use `settings` attribute\n * directly for core settings and other settings.\n *\n * @deprecated\n *\n * @param name - The settings key to get.\n */\n Config.prototype.get = function (name) {\n if (!this.settings || !this.settings.core) {\n return undefined;\n }\n return this.settings.core[name];\n };\n /**\n * @hidden\n */\n Config.prototype.getURL = function (name) {\n var urls = (this.settings && this.settings.core && this.settings.core.urls) || {};\n if (urls[name]) {\n return urls[name];\n }\n return this.urls[name];\n };\n return Config;\n}());\n","/**\n * @hidden\n */\nexport var Cordova = (function () {\n function Cordova(deps, options) {\n if (options === void 0) { options = {}; }\n this.options = options;\n this.app = deps.appStatus;\n this.device = deps.device;\n this.emitter = deps.emitter;\n this.logger = deps.logger;\n this.registerEventHandlers();\n }\n Cordova.prototype.bootstrap = function () {\n var _this = this;\n var events = ['pause', 'resume'];\n document.addEventListener('deviceready', function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i - 0] = arguments[_i];\n }\n _this.emitter.emit('cordova:deviceready', { 'args': args });\n var _loop_1 = function(e) {\n document.addEventListener(e, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i - 0] = arguments[_i];\n }\n _this.emitter.emit('cordova:' + e, { 'args': args });\n }, false);\n };\n for (var _a = 0, events_1 = events; _a < events_1.length; _a++) {\n var e = events_1[_a];\n _loop_1(e);\n }\n }, false);\n };\n /**\n * @private\n */\n Cordova.prototype.registerEventHandlers = function () {\n var _this = this;\n this.emitter.on('cordova:pause', function () {\n _this.app.closed = true;\n });\n this.emitter.on('cordova:resume', function () {\n _this.app.closed = false;\n });\n };\n return Cordova;\n}());\n","/**\n * @hidden\n */\nexport var Core = (function () {\n function Core(deps) {\n /**\n * @private\n */\n this._version = 'VERSION_STRING';\n this.config = deps.config;\n this.logger = deps.logger;\n this.emitter = deps.emitter;\n this.insights = deps.insights;\n if (!this.config.settings || !this.config.settings.core || !this.config.settings.core.app_id) {\n throw new Error('Missing app_id in cloud settings. Have you configured your app properly?');\n }\n }\n Core.prototype.init = function () {\n this.registerEventHandlers();\n this.onResume();\n };\n Object.defineProperty(Core.prototype, \"version\", {\n get: function () {\n return this._version;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @private\n */\n Core.prototype.onResume = function () {\n this.insights.track('mobileapp.opened');\n };\n /**\n * @private\n */\n Core.prototype.registerEventHandlers = function () {\n var _this = this;\n this.emitter.on('cordova:resume', function () {\n _this.onResume();\n });\n this.emitter.on('push:notification', function (data) {\n if (data.message.app.asleep || data.message.app.closed) {\n _this.insights.track('mobileapp.opened.push');\n }\n });\n };\n return Core;\n}());\n","import { DeferredPromise } from '../promise';\nvar NO_PLUGIN = new Error('Missing deploy plugin: `ionic-plugin-deploy`');\n/**\n * `Deploy` handles live deploys of the app. Downloading, extracting, and\n * rolling back snapshots.\n *\n * @featured\n */\nexport var Deploy = (function () {\n function Deploy(deps, \n /**\n * @hidden\n */\n options) {\n var _this = this;\n if (options === void 0) { options = {}; }\n this.options = options;\n /**\n * The active deploy channel. Set this to change the channel on which\n * `Deploy` operates.\n */\n this.channel = 'production';\n this.config = deps.config;\n this.emitter = deps.emitter;\n this.logger = deps.logger;\n this.emitter.once('device:ready', function () {\n if (_this._getPlugin()) {\n _this.plugin.init(_this.config.get('app_id'), _this.config.getURL('api'));\n }\n _this.emitter.emit('deploy:ready');\n });\n }\n /**\n * Check for updates on the active channel.\n *\n * The promise resolves with a boolean. When `true`, a new snapshot exists on\n * the channel.\n */\n Deploy.prototype.check = function () {\n var _this = this;\n var deferred = new DeferredPromise();\n this.emitter.once('deploy:ready', function () {\n if (_this._getPlugin()) {\n _this.plugin.check(_this.config.get('app_id'), _this.channel, function (result) {\n if (result && result === 'true') {\n _this.logger.info('Ionic Deploy: an update is available');\n deferred.resolve(true);\n }\n else {\n _this.logger.info('Ionic Deploy: no updates available');\n deferred.resolve(false);\n }\n }, function (error) {\n _this.logger.error('Ionic Deploy: encountered an error while checking for updates');\n deferred.reject(error);\n });\n }\n else {\n deferred.reject(NO_PLUGIN);\n }\n });\n return deferred.promise;\n };\n /**\n * Download the available snapshot.\n *\n * This should be used in conjunction with\n * [`extract()`](/api/client/deploy/#extract).\n *\n * @param options\n * Options for this download, such as a progress callback.\n */\n Deploy.prototype.download = function (options) {\n var _this = this;\n if (options === void 0) { options = {}; }\n var deferred = new DeferredPromise();\n this.emitter.once('deploy:ready', function () {\n if (_this._getPlugin()) {\n _this.plugin.download(_this.config.get('app_id'), function (result) {\n if (result === 'true') {\n _this.logger.info('Ionic Deploy: download complete');\n deferred.resolve();\n }\n else if (result === 'false') {\n deferred.reject(new Error('Ionic Deploy: Download has failed: see native logs.'));\n }\n else {\n if (options.onProgress) {\n options.onProgress(result);\n }\n }\n }, function (error) {\n deferred.reject(error);\n });\n }\n else {\n deferred.reject(NO_PLUGIN);\n }\n });\n return deferred.promise;\n };\n /**\n * Extract the downloaded snapshot.\n *\n * This should be called after [`download()`](/api/client/deploy/#download)\n * successfully resolves.\n *\n * @param options\n */\n Deploy.prototype.extract = function (options) {\n var _this = this;\n if (options === void 0) { options = {}; }\n var deferred = new DeferredPromise();\n this.emitter.once('deploy:ready', function () {\n if (_this._getPlugin()) {\n _this.plugin.extract(_this.config.get('app_id'), function (result) {\n if (result === 'done') {\n _this.logger.info('Ionic Deploy: extraction complete');\n deferred.resolve();\n }\n else {\n if (options.onProgress) {\n options.onProgress(result);\n }\n }\n }, function (error) {\n deferred.reject(error);\n });\n }\n else {\n deferred.reject(NO_PLUGIN);\n }\n });\n return deferred.promise;\n };\n /**\n * Immediately reload the app with the latest deployed snapshot.\n *\n * This is only necessary to call if you have downloaded and extracted a\n * snapshot and wish to instantly reload the app with the latest deploy. The\n * latest deploy will automatically be loaded when the app is started.\n */\n Deploy.prototype.load = function () {\n var _this = this;\n this.emitter.once('deploy:ready', function () {\n if (_this._getPlugin()) {\n _this.plugin.redirect(_this.config.get('app_id'));\n }\n });\n };\n /**\n * Get information about the current snapshot.\n *\n * The promise is resolved with an object that has key/value pairs pertaining\n * to the currently deployed snapshot.\n */\n Deploy.prototype.info = function () {\n var _this = this;\n var deferred = new DeferredPromise(); // TODO\n this.emitter.once('deploy:ready', function () {\n if (_this._getPlugin()) {\n _this.plugin.info(_this.config.get('app_id'), function (result) {\n deferred.resolve(result);\n }, function (err) {\n deferred.reject(err);\n });\n }\n else {\n deferred.reject(NO_PLUGIN);\n }\n });\n return deferred.promise;\n };\n /**\n * List the snapshots that have been installed on this device.\n *\n * The promise is resolved with an array of snapshot UUIDs.\n */\n Deploy.prototype.getSnapshots = function () {\n var _this = this;\n var deferred = new DeferredPromise(); // TODO\n this.emitter.once('deploy:ready', function () {\n if (_this._getPlugin()) {\n _this.plugin.getVersions(_this.config.get('app_id'), function (result) {\n deferred.resolve(result);\n }, function (err) {\n deferred.reject(err);\n });\n }\n else {\n deferred.reject(NO_PLUGIN);\n }\n });\n return deferred.promise;\n };\n /**\n * Remove a snapshot from this device.\n *\n * @param uuid\n * The snapshot UUID to remove from the device.\n */\n Deploy.prototype.deleteSnapshot = function (uuid) {\n var _this = this;\n var deferred = new DeferredPromise(); // TODO\n this.emitter.once('deploy:ready', function () {\n if (_this._getPlugin()) {\n _this.plugin.deleteVersion(_this.config.get('app_id'), uuid, function (result) {\n deferred.resolve(result);\n }, function (err) {\n deferred.reject(err);\n });\n }\n else {\n deferred.reject(NO_PLUGIN);\n }\n });\n return deferred.promise;\n };\n /**\n * Fetches the metadata for a given snapshot. If no UUID is given, it will\n * attempt to grab the metadata for the most recently known snapshot.\n *\n * @param uuid\n * The snapshot from which to grab metadata.\n */\n Deploy.prototype.getMetadata = function (uuid) {\n var _this = this;\n var deferred = new DeferredPromise(); // TODO\n this.emitter.once('deploy:ready', function () {\n if (_this._getPlugin()) {\n _this.plugin.getMetadata(_this.config.get('app_id'), uuid, function (result) {\n deferred.resolve(result.metadata);\n }, function (err) {\n deferred.reject(err);\n });\n }\n else {\n deferred.reject(NO_PLUGIN);\n }\n });\n return deferred.promise;\n };\n /**\n * @private\n */\n Deploy.prototype._getPlugin = function () {\n if (typeof window.IonicDeploy === 'undefined') {\n this.logger.warn('Ionic Deploy: Disabled! Deploy plugin is not installed or has not loaded. Have you run `ionic plugin add ionic-plugin-deploy` yet?');\n return;\n }\n if (!this.plugin) {\n this.plugin = window.IonicDeploy;\n }\n return this.plugin;\n };\n return Deploy;\n}());\n","/**\n * @hidden\n */\nexport var Device = (function () {\n function Device(deps) {\n this.deps = deps;\n this.native = this.deps.nativeDevice;\n this.emitter = this.deps.emitter;\n this.type = this.determineDeviceType();\n this.registerEventHandlers();\n }\n Device.prototype.isAndroid = function () {\n return this.type === 'android';\n };\n Device.prototype.isIOS = function () {\n return this.type === 'iphone' || this.type === 'ipad';\n };\n Device.prototype.isConnectedToNetwork = function (options) {\n if (options === void 0) { options = {}; }\n if (typeof navigator.connection === 'undefined' ||\n typeof navigator.connection.type === 'undefined' ||\n typeof Connection === 'undefined') {\n if (!options.strictMode) {\n return true;\n }\n return false;\n }\n switch (navigator.connection.type) {\n case Connection.ETHERNET:\n case Connection.WIFI:\n case Connection.CELL_2G:\n case Connection.CELL_3G:\n case Connection.CELL_4G:\n case Connection.CELL:\n return true;\n default:\n return false;\n }\n };\n /**\n * @private\n */\n Device.prototype.registerEventHandlers = function () {\n var _this = this;\n if (this.type === 'unknown') {\n this.emitter.emit('device:ready');\n }\n else {\n this.emitter.once('cordova:deviceready', function () {\n _this.emitter.emit('device:ready');\n });\n }\n };\n /**\n * @private\n */\n Device.prototype.determineDeviceType = function () {\n var agent = navigator.userAgent;\n var ipad = agent.match(/iPad/i);\n if (ipad && (ipad[0].toLowerCase() === 'ipad')) {\n return 'ipad';\n }\n var iphone = agent.match(/iPhone/i);\n if (iphone && (iphone[0].toLowerCase() === 'iphone')) {\n return 'iphone';\n }\n var android = agent.match(/Android/i);\n if (android && (android[0].toLowerCase() === 'android')) {\n return 'android';\n }\n return 'unknown';\n };\n return Device;\n}());\n","/**\n * A registered event receiver.\n */\nexport var EventReceiver = (function () {\n function EventReceiver(\n /**\n * An registered identifier for this event receiver.\n */\n key, \n /**\n * The registered name of the event.\n */\n event, \n /**\n * The actual callback.\n */\n handler) {\n this.key = key;\n this.event = event;\n this.handler = handler;\n }\n return EventReceiver;\n}());\n/**\n * Stores callbacks for registered events.\n */\nexport var EventEmitter = (function () {\n function EventEmitter() {\n /**\n * @private\n */\n this.n = 0;\n /**\n * @private\n */\n this.eventReceivers = {};\n /**\n * @private\n */\n this.eventsEmitted = {};\n }\n /**\n * Register an event callback which gets triggered every time the event is\n * fired.\n *\n * @param event\n * The event name.\n * @param callback\n * A callback to attach to this event.\n */\n EventEmitter.prototype.on = function (event, callback) {\n if (typeof this.eventReceivers[event] === 'undefined') {\n this.eventReceivers[event] = {};\n }\n var receiver = new EventReceiver(this.n, event, callback);\n this.n++;\n this.eventReceivers[event][receiver.key] = receiver;\n return receiver;\n };\n /**\n * Unregister an event receiver returned from\n * [`on()`](/api/client/eventemitter#on).\n *\n * @param receiver\n * The event receiver.\n */\n EventEmitter.prototype.off = function (receiver) {\n if (typeof this.eventReceivers[receiver.event] === 'undefined' ||\n typeof this.eventReceivers[receiver.event][receiver.key] === 'undefined') {\n throw new Error('unknown event receiver');\n }\n delete this.eventReceivers[receiver.event][receiver.key];\n };\n /**\n * Register an event callback that gets triggered only once. If the event was\n * triggered before your callback is registered, it calls your callback\n * immediately.\n *\n * @note TODO: Fix the docs for () => void syntax.\n *\n * @param event\n * The event name.\n * @param callback\n * A callback to attach to this event. It takes no arguments.\n */\n EventEmitter.prototype.once = function (event, callback) {\n var _this = this;\n if (this.emitted(event)) {\n callback();\n }\n else {\n this.on(event, function () {\n if (!_this.emitted(event)) {\n callback();\n }\n });\n }\n };\n /**\n * Trigger an event. Call all callbacks in the order they were registered.\n *\n * @param event\n * The event name.\n * @param data\n * An object to pass to every callback.\n */\n EventEmitter.prototype.emit = function (event, data) {\n if (typeof this.eventReceivers[event] === 'undefined') {\n this.eventReceivers[event] = {};\n }\n if (typeof this.eventsEmitted[event] === 'undefined') {\n this.eventsEmitted[event] = 0;\n }\n for (var k in this.eventReceivers[event]) {\n this.eventReceivers[event][k].handler(data);\n }\n this.eventsEmitted[event] += 1;\n };\n /**\n * Return a count of the number of times an event has been triggered.\n *\n * @param event\n * The event name.\n */\n EventEmitter.prototype.emitted = function (event) {\n if (typeof this.eventsEmitted[event] === 'undefined') {\n return 0;\n }\n return this.eventsEmitted[event];\n };\n return EventEmitter;\n}());\n","import { parseSemanticVersion } from './util';\n/**\n * @hidden\n */\nexport var Stat = (function () {\n function Stat(appId, stat, value) {\n if (value === void 0) { value = 1; }\n this.appId = appId;\n this.stat = stat;\n this.value = value;\n this.appId = appId;\n this.stat = stat;\n this.value = value;\n this.created = new Date();\n }\n Stat.prototype.toJSON = function () {\n return {\n app_id: this.appId,\n stat: this.stat,\n value: this.value,\n created: this.created.toISOString(),\n };\n };\n return Stat;\n}());\n/**\n * A client for Insights that handles batching, user activity insight, and\n * sending insights at an interval.\n *\n * @hidden\n */\nexport var Insights = (function () {\n function Insights(deps, options) {\n var _this = this;\n if (options === void 0) { options = {}; }\n this.options = options;\n this.app = deps.appStatus;\n this.storage = deps.storage;\n this.config = deps.config;\n this.client = deps.client;\n this.device = deps.device;\n this.logger = deps.logger;\n this.batch = [];\n if (typeof this.options.intervalSubmit === 'undefined') {\n this.options.intervalSubmit = 60 * 1000;\n }\n if (typeof this.options.intervalActiveCheck === 'undefined') {\n this.options.intervalActiveCheck = 1000;\n }\n if (typeof this.options.submitCount === 'undefined') {\n this.options.submitCount = 100;\n }\n if (this.options.intervalSubmit) {\n setInterval(function () {\n _this.submit();\n }, this.options.intervalSubmit);\n }\n if (this.options.intervalActiveCheck) {\n setInterval(function () {\n if (!_this.app.closed) {\n _this.checkActivity();\n }\n }, this.options.intervalActiveCheck);\n }\n }\n /**\n * Track an insight.\n *\n * @param stat - The insight name.\n * @param value - The number by which to increment this insight.\n */\n Insights.prototype.track = function (stat, value) {\n if (value === void 0) { value = 1; }\n this.trackStat(new Stat(this.config.settings.core.app_id, stat, value));\n };\n Insights.prototype.checkActivity = function () {\n var session = this.storage.get('insights_session');\n if (!session) {\n this.markActive();\n }\n else {\n var d = new Date(session);\n var hour = 60 * 60 * 1000;\n if (d.getTime() + hour < new Date().getTime()) {\n this.markActive();\n }\n }\n };\n Insights.prototype.markActive = function () {\n this.track('mobileapp.active');\n if (!this.device.native || !this.device.native.device || !this.device.native.device.platform) {\n this.logger.warn('Ionic Insights: Device information unavailable.');\n }\n else {\n var device = this.device.native.device;\n var platform = this.normalizeDevicePlatform(device.platform);\n var platformVersion = this.normalizeVersion(device.version);\n var cordovaVersion = this.normalizeVersion(device.cordova);\n this.track(\"mobileapp.active.platform.\" + platform);\n this.track(\"mobileapp.active.platform.\" + platform + \".\" + platformVersion);\n this.track(\"mobileapp.active.cordova.\" + cordovaVersion);\n }\n this.storage.set('insights_session', new Date().toISOString());\n };\n Insights.prototype.normalizeDevicePlatform = function (platform) {\n return platform.toLowerCase().replace(/[^a-z0-9_]/g, '_');\n };\n Insights.prototype.normalizeVersion = function (s) {\n var v;\n try {\n v = String(parseSemanticVersion(s).major);\n }\n catch (e) {\n v = 'unknown';\n }\n return v;\n };\n Insights.prototype.trackStat = function (stat) {\n this.batch.push(stat);\n if (this.shouldSubmit()) {\n this.submit();\n }\n };\n Insights.prototype.shouldSubmit = function () {\n return this.batch.length >= this.options.submitCount;\n };\n Insights.prototype.submit = function () {\n var _this = this;\n if (this.batch.length === 0) {\n return;\n }\n var insights = [];\n for (var _i = 0, _a = this.batch; _i < _a.length; _i++) {\n var stat = _a[_i];\n insights.push(stat.toJSON());\n }\n this.client.post('/insights')\n .send({ 'insights': insights })\n .end(function (err, res) {\n if (err) {\n _this.logger.error('Ionic Insights: Could not send insights.', err);\n }\n });\n this.batch = [];\n };\n return Insights;\n}());\n","/**\n * Simple console logger.\n */\nexport var Logger = (function () {\n function Logger(options) {\n if (options === void 0) { options = {}; }\n this.options = options;\n /**\n * The function to use to log info level messages.\n */\n this.infofn = console.log.bind(console);\n /**\n * The function to use to log warn level messages.\n */\n this.warnfn = console.warn.bind(console);\n /**\n * The function to use to log error level messages.\n */\n this.errorfn = console.error.bind(console);\n }\n /**\n * Send a log at info level.\n *\n * @note TODO: Fix optionalParams in docs.\n *\n * @param message - The message to log.\n */\n Logger.prototype.info = function (message) {\n var optionalParams = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n optionalParams[_i - 1] = arguments[_i];\n }\n if (!this.options.silent) {\n this.infofn.apply(this, [message].concat(optionalParams));\n }\n };\n /**\n * Send a log at warn level.\n *\n * @note TODO: Fix optionalParams in docs.\n *\n * @param message - The message to log.\n */\n Logger.prototype.warn = function (message) {\n var optionalParams = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n optionalParams[_i - 1] = arguments[_i];\n }\n if (!this.options.silent) {\n this.warnfn.apply(this, [message].concat(optionalParams));\n }\n };\n /**\n * Send a log at error level.\n *\n * @note TODO: Fix optionalParams in docs.\n *\n * @param message - The message to log.\n */\n Logger.prototype.error = function (message) {\n var optionalParams = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n optionalParams[_i - 1] = arguments[_i];\n }\n this.errorfn.apply(this, [message].concat(optionalParams));\n };\n return Logger;\n}());\n","/**\n * Represents a push notification sent to the device.\n *\n * @featured\n */\nexport var PushMessage = (function () {\n function PushMessage() {\n }\n /**\n * Create a PushMessage from the push plugin's format.\n *\n * @hidden\n *\n * @param data - The plugin's notification object.\n */\n PushMessage.fromPluginData = function (data) {\n var message = new PushMessage();\n message.raw = data;\n message.text = data.message;\n message.title = data.title;\n message.count = data.count;\n message.sound = data.sound;\n message.image = data.image;\n message.app = {\n 'asleep': !data.additionalData.foreground,\n 'closed': data.additionalData.coldstart\n };\n message.payload = data.additionalData['payload'];\n return message;\n };\n PushMessage.prototype.toString = function () {\n return \"<PushMessage [\\\"\" + this.title + \"\\\"]>\";\n };\n return PushMessage;\n}());\n","import { DeferredPromise } from '../promise';\nimport { PushMessage } from './message';\n/**\n * `Push` handles push notifications for this app.\n *\n * @featured\n */\nexport var Push = (function () {\n function Push(deps, options) {\n if (options === void 0) { options = {}; }\n this.options = options;\n /**\n * @private\n */\n this.blockRegistration = false;\n /**\n * @private\n */\n this.blockUnregister = false;\n /**\n * @private\n */\n this.blockSaveToken = false;\n /**\n * @private\n */\n this.registered = false;\n this.config = deps.config;\n this.auth = deps.auth;\n this.userService = deps.userService;\n this.device = deps.device;\n this.client = deps.client;\n this.emitter = deps.emitter;\n this.storage = deps.storage;\n this.logger = deps.logger;\n // Check for the required values to use this service\n if (this.device.isAndroid() && !this.options.sender_id) {\n this.logger.error('Ionic Push: GCM project number not found (http://docs.ionic.io/docs/push-android-setup)');\n return;\n }\n if (!options.pluginConfig) {\n options.pluginConfig = {};\n }\n if (this.device.isAndroid()) {\n // inject gcm key for PushPlugin\n if (!options.pluginConfig.android) {\n options.pluginConfig.android = {};\n }\n if (!options.pluginConfig.android.senderID) {\n options.pluginConfig.android.senderID = this.options.sender_id;\n }\n }\n this.options = options;\n }\n Object.defineProperty(Push.prototype, \"token\", {\n get: function () {\n if (!this._token) {\n this._token = this.storage.get('push_token') || undefined;\n }\n return this._token;\n },\n set: function (val) {\n if (!val) {\n this.storage.delete('push_token');\n }\n else {\n this.storage.set('push_token', val);\n }\n this._token = val;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Register a token with the API.\n *\n * When a token is saved, you can send push notifications to it. If a user is\n * logged in, the token is linked to them by their ID.\n *\n * @param token - The token.\n * @param options\n */\n Push.prototype.saveToken = function (token, options) {\n var _this = this;\n if (options === void 0) { options = {}; }\n var deferred = new DeferredPromise();\n var tokenData = {\n 'token': token.token,\n 'app_id': this.config.get('app_id')\n };\n if (!options.ignore_user) {\n var user = this.userService.current();\n if (this.auth.isAuthenticated()) {\n tokenData.user_id = user.id;\n }\n }\n if (this.blockSaveToken) {\n return deferred.reject(new Error('A token save operation is already in progress.'));\n }\n this.client.post('/push/tokens')\n .send(tokenData)\n .end(function (err, res) {\n if (err) {\n _this.blockSaveToken = false;\n _this.logger.error('Ionic Push:', err);\n deferred.reject(err);\n }\n else {\n _this.blockSaveToken = false;\n _this.logger.info('Ionic Push: saved push token: ' + token.token);\n if (tokenData.user_id) {\n _this.logger.info('Ionic Push: added push token to user: ' + tokenData.user_id);\n }\n token.id = res.body.data.id;\n token.type = res.body.data.type;\n token.saved = true;\n deferred.resolve(token);\n }\n });\n return deferred.promise;\n };\n /**\n * Registers the device with GCM/APNS to get a push token.\n *\n * After a device is registered, you will likely want to save the token with\n * [`saveToken()`](/api/client/push/#saveToken) to the API.\n */\n Push.prototype.register = function () {\n var _this = this;\n var deferred = new DeferredPromise();\n if (this.blockRegistration) {\n return deferred.reject(new Error('Another registration is already in progress.'));\n }\n this.blockRegistration = true;\n this.emitter.once('device:ready', function () {\n var pushPlugin = _this._getPushPlugin();\n if (pushPlugin) {\n _this.plugin = pushPlugin.init(_this.options.pluginConfig);\n _this.plugin.on('registration', function (data) {\n _this.blockRegistration = false;\n _this.token = { 'token': data.registrationId, 'registered': false, 'saved': false };\n _this.token.registered = true;\n deferred.resolve(_this.token);\n });\n _this.plugin.on('error', function (err) {\n _this.logger.error('Ionic Push:', err);\n deferred.reject(err);\n });\n _this._callbackRegistration();\n _this.registered = true;\n }\n else {\n deferred.reject(new Error('Push plugin not found! See logs.'));\n }\n });\n return deferred.promise;\n };\n /**\n * Invalidate the current push token.\n */\n Push.prototype.unregister = function () {\n var _this = this;\n var deferred = new DeferredPromise();\n if (this.blockUnregister) {\n return deferred.reject(new Error('An unregister operation is already in progress.'));\n }\n var pushToken = this.token;\n if (!pushToken) {\n return deferred.resolve();\n }\n var tokenData = {\n 'token': pushToken.token,\n 'app_id': this.config.get('app_id')\n };\n if (this.plugin) {\n this.plugin.unregister(function () { }, function () { });\n }\n this.client.post('/push/tokens/invalidate')\n .send(tokenData)\n .end(function (err, res) {\n _this.blockUnregister = false;\n if (err) {\n _this.logger.error('Ionic Push:', err);\n deferred.reject(err);\n }\n else {\n _this.logger.info('Ionic Push: unregistered push token');\n delete _this.token;\n deferred.resolve();\n }\n });\n this.blockUnregister = true;\n return deferred.promise;\n };\n /**\n * @private\n */\n Push.prototype._callbackRegistration = function () {\n var _this = this;\n this.plugin.on('registration', function (data) {\n if (_this.options.debug) {\n _this.logger.info('Ionic Push (debug): device token registered: ' + _this.token);\n }\n _this.emitter.emit('push:register', _this.token);\n });\n this.plugin.on('notification', function (data) {\n var message = PushMessage.fromPluginData(data);\n if (_this.options.debug) {\n _this.logger.info('Ionic Push (debug): notification received: ' + message);\n }\n _this.emitter.emit('push:notification', { 'message': message, 'raw': data });\n });\n this.plugin.on('error', function (e) {\n if (_this.options.debug) {\n _this.logger.error('Ionic Push (debug): unexpected error occured.');\n _this.logger.error('Ionic Push:', e);\n }\n _this.emitter.emit('push:error', { 'err': e });\n });\n };\n /**\n * @private\n */\n Push.prototype._getPushPlugin = function () {\n var plugin = window.PushNotification;\n if (!plugin) {\n if (this.device.isIOS() || this.device.isAndroid()) {\n this.logger.error('Ionic Push: PushNotification plugin is required. Have you run `ionic plugin add phonegap-plugin-push` ?');\n }\n else {\n this.logger.warn('Ionic Push: Disabled! Native push notifications will not work in a browser. Run your app on an actual device to use push.');\n }\n }\n return plugin;\n };\n return Push;\n}());\n","/**\n * @hidden\n */\nexport var LocalStorageStrategy = (function () {\n function LocalStorageStrategy() {\n }\n LocalStorageStrategy.prototype.get = function (key) {\n return localStorage.getItem(key);\n };\n LocalStorageStrategy.prototype.set = function (key, value) {\n return localStorage.setItem(key, value);\n };\n LocalStorageStrategy.prototype.delete = function (key) {\n return localStorage.removeItem(key);\n };\n return LocalStorageStrategy;\n}());\n/**\n * @hidden\n */\nexport var SessionStorageStrategy = (function () {\n function SessionStorageStrategy() {\n }\n SessionStorageStrategy.prototype.get = function (key) {\n return sessionStorage.getItem(key);\n };\n SessionStorageStrategy.prototype.set = function (key, value) {\n return sessionStorage.setItem(key, value);\n };\n SessionStorageStrategy.prototype.delete = function (key) {\n return sessionStorage.removeItem(key);\n };\n return SessionStorageStrategy;\n}());\n/**\n * A generic local/session storage abstraction.\n */\nexport var Storage = (function () {\n function Storage(deps, options) {\n if (options === void 0) { options = { 'prefix': 'ionic', 'cache': true }; }\n this.options = options;\n this.strategy = deps.strategy;\n this.storageCache = {};\n }\n /**\n * Set a value in the storage by the given key.\n *\n * @param key - The storage key to set.\n * @param value - The value to set. (Must be JSON-serializable).\n */\n Storage.prototype.set = function (key, value) {\n key = this.standardizeKey(key);\n var json = JSON.stringify(value);\n this.strategy.set(key, json);\n if (this.options.cache) {\n this.storageCache[key] = value;\n }\n };\n /**\n * Delete a value from the storage by the given key.\n *\n * @param key - The storage key to delete.\n */\n Storage.prototype.delete = function (key) {\n key = this.standardizeKey(key);\n this.strategy.delete(key);\n if (this.options.cache) {\n delete this.storageCache[key];\n }\n };\n /**\n * Get a value from the storage by the given key.\n *\n * @param key - The storage key to get.\n */\n Storage.prototype.get = function (key) {\n key = this.standardizeKey(key);\n if (this.options.cache) {\n var cached = this.storageCache[key];\n if (cached) {\n return cached;\n }\n }\n var json = this.strategy.get(key);\n if (!json) {\n return null;\n }\n try {\n var value = JSON.parse(json);\n if (this.options.cache) {\n this.storageCache[key] = value;\n }\n return value;\n }\n catch (err) {\n return null;\n }\n };\n /**\n * @private\n */\n Storage.prototype.standardizeKey = function (key) {\n return this.options.prefix + \"_\" + key;\n };\n return Storage;\n}());\n","var dataTypeMapping = {};\nexport var DataTypeSchema = (function () {\n function DataTypeSchema(properties) {\n this.data = {};\n this.setProperties(properties);\n }\n DataTypeSchema.prototype.setProperties = function (properties) {\n if (properties instanceof Object) {\n for (var x in properties) {\n this.data[x] = properties[x];\n }\n }\n };\n DataTypeSchema.prototype.toJSON = function () {\n var data = this.data;\n return {\n '__Ionic_DataTypeSchema': data.name,\n 'value': data.value\n };\n };\n DataTypeSchema.prototype.isValid = function () {\n if (this.data.name && this.data.value) {\n return true;\n }\n return false;\n };\n return DataTypeSchema;\n}());\nexport var DataType = (function () {\n function DataType() {\n }\n DataType.get = function (name, value) {\n if (dataTypeMapping[name]) {\n return new dataTypeMapping[name](value);\n }\n return false;\n };\n DataType.getMapping = function () {\n return dataTypeMapping;\n };\n Object.defineProperty(DataType, \"Schema\", {\n get: function () {\n return DataTypeSchema;\n },\n enumerable: true,\n configurable: true\n });\n DataType.register = function (name, cls) {\n dataTypeMapping[name] = cls;\n };\n return DataType;\n}());\nexport var UniqueArray = (function () {\n function UniqueArray(value) {\n this.data = [];\n if (value instanceof Array) {\n for (var x in value) {\n this.push(value[x]);\n }\n }\n }\n UniqueArray.prototype.toJSON = function () {\n var data = this.data;\n var schema = new DataTypeSchema({ 'name': 'UniqueArray', 'value': data });\n return schema.toJSON();\n };\n UniqueArray.fromStorage = function (value) {\n return new UniqueArray(value);\n };\n UniqueArray.prototype.push = function (value) {\n if (this.data.indexOf(value) === -1) {\n this.data.push(value);\n }\n };\n UniqueArray.prototype.pull = function (value) {\n var index = this.data.indexOf(value);\n this.data.splice(index, 1);\n };\n return UniqueArray;\n}());\nDataType.register('UniqueArray', UniqueArray);\n","import { DeferredPromise } from '../promise';\nimport { DataType } from './data-types';\n/**\n * @hidden\n */\nexport var UserContext = (function () {\n function UserContext(deps) {\n this.config = deps.config;\n this.storage = deps.storage;\n }\n Object.defineProperty(UserContext.prototype, \"label\", {\n get: function () {\n return 'user_' + this.config.get('app_id');\n },\n enumerable: true,\n configurable: true\n });\n UserContext.prototype.unstore = function () {\n this.storage.delete(this.label);\n };\n UserContext.prototype.store = function (user) {\n this.storage.set(this.label, user.serializeForStorage());\n };\n UserContext.prototype.load = function (user) {\n var data = this.storage.get(this.label);\n if (data) {\n user.id = data.id;\n user.data = new UserData(data.data);\n user.details = data.details || {};\n user.social = data.social || {};\n user.fresh = data.fresh;\n return user;\n }\n return null;\n };\n return UserContext;\n}());\n/**\n * @hidden\n */\nexport var UserData = (function () {\n function UserData(data) {\n if (data === void 0) { data = {}; }\n this.data = {};\n if ((typeof data === 'object')) {\n this.data = data;\n this.deserializeDataTypes();\n }\n }\n UserData.prototype.get = function (key, defaultValue) {\n if (this.data.hasOwnProperty(key)) {\n return this.data[key];\n }\n else {\n if (defaultValue === 0 || defaultValue === false) {\n return defaultValue;\n }\n return defaultValue || null;\n }\n };\n UserData.prototype.set = function (key, value) {\n this.data[key] = value;\n };\n UserData.prototype.unset = function (key) {\n delete this.data[key];\n };\n /**\n * @private\n */\n UserData.prototype.deserializeDataTypes = function () {\n if (this.data) {\n for (var x in this.data) {\n // if we have an object, let's check for custom data types\n if (this.data[x] && typeof this.data[x] === 'object') {\n // do we have a custom type?\n if (this.data[x].__Ionic_DataTypeSchema) {\n var name = this.data[x].__Ionic_DataTypeSchema;\n var mapping = DataType.getMapping();\n if (mapping[name]) {\n // we have a custom type and a registered class, give the custom data type\n // from storage\n this.data[x] = mapping[name].fromStorage(this.data[x].value);\n }\n }\n }\n }\n }\n };\n return UserData;\n}());\n/**\n * Represents a user of the app.\n *\n * @featured\n */\nexport var User = (function () {\n function User(deps) {\n /**\n * The details (email, password, etc) of this user.\n */\n this.details = {};\n /**\n * The social details of this user.\n */\n this.social = {};\n this.service = deps.service;\n this.fresh = true;\n this._unset = {};\n this.data = new UserData();\n }\n /**\n * Check whether this user is anonymous or not.\n *\n * If the `id` property is set, the user is no longer anonymous.\n */\n User.prototype.isAnonymous = function () {\n if (!this.id) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * Get a value from this user's custom data.\n *\n * Optionally, a default value can be provided.\n *\n * @param key - The data key to get.\n * @param defaultValue - The value to return if the key is absent.\n */\n User.prototype.get = function (key, defaultValue) {\n return this.data.get(key, defaultValue);\n };\n /**\n * Set a value in this user's custom data.\n *\n * @param key - The data key to set.\n * @param value - The value to set.\n */\n User.prototype.set = function (key, value) {\n delete this._unset[key];\n return this.data.set(key, value);\n };\n /**\n * Delete a value from this user's custom data.\n *\n * @param key - The data key to delete.\n */\n User.prototype.unset = function (key) {\n this._unset[key] = true;\n return this.data.unset(key);\n };\n /**\n * Revert this user to a fresh, anonymous state.\n */\n User.prototype.clear = function () {\n this.id = undefined;\n this.data = new UserData();\n this.details = {};\n this.fresh = true;\n };\n /**\n * Save this user to the API.\n */\n User.prototype.save = function () {\n this._unset = {};\n return this.service.save();\n };\n /**\n * Delete this user from the API.\n */\n User.prototype.delete = function () {\n return this.service.delete();\n };\n /**\n * Load the user from the API, overwriting the local user's data.\n *\n * @param id - The user ID to load into this user.\n */\n User.prototype.load = function (id) {\n return this.service.load(id);\n };\n /**\n * Store this user in local storage.\n */\n User.prototype.store = function () {\n this.service.store();\n };\n /**\n * Remove this user from local storage.\n */\n User.prototype.unstore = function () {\n this.service.unstore();\n };\n /**\n * @hidden\n */\n User.prototype.serializeForAPI = function () {\n return {\n 'email': this.details.email,\n 'password': this.details.password,\n 'username': this.details.username,\n 'image': this.details.image,\n 'name': this.details.name,\n 'custom': this.data.data\n };\n };\n /**\n * @hidden\n */\n User.prototype.serializeForStorage = function () {\n return {\n 'id': this.id,\n 'data': this.data.data,\n 'details': this.details,\n 'fresh': this.fresh,\n 'social': this.social\n };\n };\n User.prototype.toString = function () {\n return \"<User [\" + (this.isAnonymous() ? 'anonymous' : this.id) + \"]>\";\n };\n return User;\n}());\n/**\n * @hidden\n */\nexport var SingleUserService = (function () {\n function SingleUserService(deps, config) {\n if (config === void 0) { config = {}; }\n this.config = config;\n this.client = deps.client;\n this.context = deps.context;\n }\n SingleUserService.prototype.current = function () {\n if (!this.user) {\n this.user = this.context.load(new User({ 'service': this }));\n }\n if (!this.user) {\n this.user = new User({ 'service': this });\n }\n return this.user;\n };\n SingleUserService.prototype.store = function () {\n this.context.store(this.current());\n };\n SingleUserService.prototype.unstore = function () {\n this.context.unstore();\n };\n SingleUserService.prototype.load = function (id) {\n if (id === void 0) { id = 'self'; }\n var deferred = new DeferredPromise();\n var user = this.current();\n this.client.get(\"/users/\" + id)\n .end(function (err, res) {\n if (err) {\n deferred.reject(err);\n }\n else {\n user.id = res.body.data.uuid;\n user.data = new UserData(res.body.data.custom);\n user.details = res.body.data.details;\n user.fresh = false;\n user.social = res.body.data.social;\n deferred.resolve();\n }\n });\n return deferred.promise;\n };\n SingleUserService.prototype.delete = function () {\n var deferred = new DeferredPromise();\n if (!this.user) {\n return deferred.reject(new Error('No user loaded to delete.'));\n }\n if (this.user.isAnonymous()) {\n return deferred.reject(new Error('User is anonymous and cannot be deleted from the API.'));\n }\n this.unstore();\n this.client.delete(\"/users/\" + this.user.id)\n .end(function (err, res) {\n if (err) {\n deferred.reject(err);\n }\n else {\n deferred.resolve();\n }\n });\n return deferred.promise;\n };\n SingleUserService.prototype.save = function () {\n var _this = this;\n var deferred = new DeferredPromise();\n this.store();\n if (!this.user) {\n return deferred.reject(new Error('No user loaded to save.'));\n }\n if (this.user.isAnonymous()) {\n return deferred.reject(new Error('User is anonymous and cannot be updated in the API. Use load(<id>) or signup a user using auth.'));\n }\n this.client.patch(\"/users/\" + this.user.id)\n .send(this.user.serializeForAPI())\n .end(function (err, res) {\n if (err) {\n deferred.reject(err);\n }\n else {\n if (_this.user) {\n _this.user.fresh = false;\n }\n deferred.resolve();\n }\n });\n return deferred.promise;\n };\n return SingleUserService;\n}());\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nimport { Device as NativeDevice } from 'ionic-native';\nimport { Auth, BasicAuthType, CombinedAuthTokenContext, CustomAuthType, FacebookAuth, FacebookAuthType, GithubAuthType, GoogleAuth, GoogleAuthType, InstagramAuthType, LinkedInAuthType, TwitterAuthType } from './auth';\nimport { Client } from './client';\nimport { Config } from './config';\nimport { Cordova } from './cordova';\nimport { Core } from './core';\nimport { Deploy } from './deploy/deploy';\nimport { Device } from './device';\nimport { EventEmitter } from './events';\nimport { Insights } from './insights';\nimport { Logger } from './logger';\nimport { Push } from './push/push';\nimport { Storage, LocalStorageStrategy, SessionStorageStrategy } from './storage';\nimport { UserContext, SingleUserService } from './user/user';\nvar modules = {};\nfunction cache(target, propertyKey, descriptor) {\n var method = descriptor.get;\n descriptor.get = function () {\n if (typeof method !== 'undefined' && typeof modules[propertyKey] === 'undefined') {\n var value = method.apply(this, arguments);\n modules[propertyKey] = value;\n }\n return modules[propertyKey];\n };\n descriptor.set = function (value) { };\n}\n/**\n * @hidden\n */\nexport var Container = (function () {\n function Container() {\n }\n Object.defineProperty(Container.prototype, \"appStatus\", {\n get: function () {\n return { 'asleep': false, 'closed': false };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Container.prototype, \"config\", {\n get: function () {\n return new Config();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Container.prototype, \"eventEmitter\", {\n get: function () {\n return new EventEmitter();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Container.prototype, \"logger\", {\n get: function () {\n var config = this.config;\n var c = {};\n if (typeof config.settings !== 'undefined' && typeof config.settings.logger !== 'undefined') {\n c = config.settings.logger;\n }\n return new Logger(c);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Container.prototype, \"localStorageStrategy\", {\n get: function () {\n return new LocalStorageStrategy();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Container.prototype, \"sessionStorageStrategy\", {\n get: function () {\n return new SessionStorageStrategy();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Container.prototype, \"authTokenContext\", {\n get: function () {\n var label = 'auth_' + this.config.get('app_id');\n return new CombinedAuthTokenContext({\n 'storage': new Storage({ 'strategy': this.localStorageStrategy }),\n 'tempStorage': new Storage({ 'strategy': this.sessionStorageStrategy })\n }, label);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Container.prototype, \"client\", {\n get: function () {\n return new Client(this.authTokenContext, this.config.getURL('api'));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Container.prototype, \"insights\", {\n get: function () {\n return new Insights({\n 'appStatus': this.appStatus,\n 'storage': new Storage({ 'strategy': this.localStorageStrategy }),\n 'config': this.config,\n 'client': this.client,\n 'device': this.device,\n 'logger': this.logger\n });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Container.prototype, \"core\", {\n get: function () {\n return new Core({\n 'config': this.config,\n 'logger': this.logger,\n 'emitter': this.eventEmitter,\n 'insights': this.insights\n });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Container.prototype, \"device\", {\n get: function () {\n return new Device({ 'nativeDevice': NativeDevice, 'emitter': this.eventEmitter });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Container.prototype, \"cordova\", {\n get: function () {\n return new Cordova({\n 'appStatus': this.appStatus,\n 'device': this.device,\n 'emitter': this.eventEmitter,\n 'logger': this.logger\n });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Container.prototype, \"userContext\", {\n get: function () {\n return new UserContext({ 'storage': new Storage({ 'strategy': this.localStorageStrategy }), 'config': this.config });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Container.prototype, \"singleUserService\", {\n get: function () {\n return new SingleUserService({ 'client': this.client, 'context': this.userContext });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Container.prototype, \"authModules\", {\n get: function () {\n var authModuleDeps = {\n 'config': this.config,\n 'client': this.client,\n 'emitter': this.eventEmitter\n };\n return {\n 'basic': new BasicAuthType(authModuleDeps),\n 'custom': new CustomAuthType(authModuleDeps),\n 'twitter': new TwitterAuthType(authModuleDeps),\n 'facebook': new FacebookAuthType(authModuleDeps),\n 'github': new GithubAuthType(authModuleDeps),\n 'google': new GoogleAuthType(authModuleDeps),\n 'instagram': new InstagramAuthType(authModuleDeps),\n 'linkedin': new LinkedInAuthType(authModuleDeps)\n };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Container.prototype, \"auth\", {\n get: function () {\n return new Auth({\n 'config': this.config,\n 'emitter': this.eventEmitter,\n 'authModules': this.authModules,\n 'tokenContext': this.authTokenContext,\n 'userService': this.singleUserService\n });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Container.prototype, \"facebookAuth\", {\n get: function () {\n return new FacebookAuth({\n 'config': this.config,\n 'client': this.client,\n 'userService': this.singleUserService,\n 'storage': new Storage({ 'strategy': this.localStorageStrategy }),\n 'tokenContext': this.authTokenContext,\n 'emitter': this.eventEmitter\n });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Container.prototype, \"googleAuth\", {\n get: function () {\n return new GoogleAuth({\n 'config': this.config,\n 'client': this.client,\n 'userService': this.singleUserService,\n 'storage': new Storage({ 'strategy': this.localStorageStrategy }),\n 'tokenContext': this.authTokenContext,\n 'emitter': this.eventEmitter\n });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Container.prototype, \"push\", {\n get: function () {\n var config = this.config;\n var c = {};\n if (typeof config.settings !== 'undefined' && typeof config.settings.push !== 'undefined') {\n c = config.settings.push;\n }\n return new Push({\n 'config': config,\n 'auth': this.auth,\n 'userService': this.singleUserService,\n 'device': this.device,\n 'client': this.client,\n 'emitter': this.eventEmitter,\n 'storage': new Storage({ 'strategy': this.localStorageStrategy }),\n 'logger': this.logger\n }, c);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Container.prototype, \"deploy\", {\n get: function () {\n return new Deploy({\n 'config': this.config,\n 'emitter': this.eventEmitter,\n 'logger': this.logger\n });\n },\n enumerable: true,\n configurable: true\n });\n __decorate([\n cache, \n __metadata('design:type', Object)\n ], Container.prototype, \"appStatus\", null);\n __decorate([\n cache, \n __metadata('design:type', Object)\n ], Container.prototype, \"config\", null);\n __decorate([\n cache, \n __metadata('design:type', Object)\n ], Container.prototype, \"eventEmitter\", null);\n __decorate([\n cache, \n __metadata('design:type', Object)\n ], Container.prototype, \"logger\", null);\n __decorate([\n cache, \n __metadata('design:type', Object)\n ], Container.prototype, \"localStorageStrategy\", null);\n __decorate([\n cache, \n __metadata('design:type', Object)\n ], Container.prototype, \"sessionStorageStrategy\", null);\n __decorate([\n cache, \n __metadata('design:type', Object)\n ], Container.prototype, \"authTokenContext\", null);\n __decorate([\n cache, \n __metadata('design:type', Object)\n ], Container.prototype, \"client\", null);\n __decorate([\n cache, \n __metadata('design:type', Object)\n ], Container.prototype, \"insights\", null);\n __decorate([\n cache, \n __metadata('design:type', Object)\n ], Container.prototype, \"core\", null);\n __decorate([\n cache, \n __metadata('design:type', Object)\n ], Container.prototype, \"device\", null);\n __decorate([\n cache, \n __metadata('design:type', Object)\n ], Container.prototype, \"cordova\", null);\n __decorate([\n cache, \n __metadata('design:type', Object)\n ], Container.prototype, \"userContext\", null);\n __decorate([\n cache, \n __metadata('design:type', Object)\n ], Container.prototype, \"singleUserService\", null);\n __decorate([\n cache, \n __metadata('design:type', Object)\n ], Container.prototype, \"authModules\", null);\n __decorate([\n cache, \n __metadata('design:type', Object)\n ], Container.prototype, \"auth\", null);\n __decorate([\n cache, \n __metadata('design:type', Object)\n ], Container.prototype, \"facebookAuth\", null);\n __decorate([\n cache, \n __metadata('design:type', Object)\n ], Container.prototype, \"googleAuth\", null);\n __decorate([\n cache, \n __metadata('design:type', Object)\n ], Container.prototype, \"push\", null);\n __decorate([\n cache, \n __metadata('design:type', Object)\n ], Container.prototype, \"deploy\", null);\n return Container;\n}());\n","import { Container as DIContainer } from './di';\nimport { EventEmitter } from './events';\nimport { DeferredPromise } from './promise';\n/**\n * Angular 1 modules and factories for the bundle\n */\nexport function bootstrapAngular1() {\n if (typeof angular === 'undefined') {\n return; // No global angular--this is not an AngularJS project.\n }\n var container = new DIContainer();\n angular.element(document).ready(function () {\n container.core.init();\n container.cordova.bootstrap();\n });\n angular.module('ionic.cloud', [])\n .provider('$ionicCloudConfig', function () {\n var config = container.config;\n this.register = function (settings) {\n config.register(settings);\n };\n this.$get = function () {\n return config;\n };\n })\n .provider('$ionicCloud', ['$ionicCloudConfigProvider', function ($ionicCloudConfigProvider) {\n this.init = function (value) {\n $ionicCloudConfigProvider.register(value);\n };\n this.$get = [function () {\n return container.core;\n }];\n }])\n .factory('$ionicCloudClient', [function () {\n return container.client;\n }])\n .factory('$ionicUser', [function () {\n return container.singleUserService.current();\n }])\n .factory('$ionicAuth', [function () {\n return container.auth;\n }])\n .factory('$FacebookAuth', [function () {\n return container.facebookAuth;\n }])\n .factory('$GoogleAuth', [function () {\n return container.googleAuth;\n }])\n .factory('$ionicPush', [function () {\n return container.push;\n }])\n .factory('$ionicDeploy', [function () {\n return container.deploy;\n }])\n .run(['$window', '$q', '$rootScope', function ($window, $q, $rootScope) {\n if (typeof $window.Promise === 'undefined') {\n $window.Promise = $q;\n }\n else {\n var init = DeferredPromise.prototype.init;\n DeferredPromise.prototype.init = function () {\n init.apply(this, arguments);\n this.promise = $q.when(this.promise);\n };\n }\n var emit = EventEmitter.prototype.emit;\n EventEmitter.prototype.emit = function (name, data) {\n $rootScope.$broadcast('cloud:' + name, data);\n return emit.apply(this, arguments);\n };\n }]);\n}\n","export * from './definitions';\nexport { Auth, AuthType, BasicAuthType, CustomAuthType, FacebookAuth, FacebookAuthType, GithubAuthType, GoogleAuth, GoogleAuthType, InstagramAuthType, LinkedInAuthType, TwitterAuthType } from './auth';\nexport { Client } from './client';\nexport { Config } from './config';\nexport { Cordova } from './cordova';\nexport { Core } from './core';\nexport { Deploy } from './deploy/deploy';\nexport { Device } from './device';\nexport { Exception, DetailedError } from './errors';\nexport { Container as DIContainer } from './di';\nexport { EventEmitter } from './events';\nexport { Insights } from './insights';\nexport { Logger } from './logger';\nexport { Push } from './push/push';\nexport { PushMessage } from './push/message';\nexport { Storage, LocalStorageStrategy, SessionStorageStrategy } from './storage';\nexport { UserContext, User, SingleUserService } from './user/user';\nimport { bootstrapAngular1 } from './angular';\nbootstrapAngular1();\n"],"names":["global","errorObject_1","require$$0","__extends","this","require$$5","require$$4","isFunction_1","require$$3","require$$2","require$$1","root_1","rxSubscriber_1","observable","Observable","__decorate","root","isObject","index","request","Cordova","Device","Push","NativeDevice","DIContainer"],"mappings":"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,CAAC;IACvB,GAAG,GAAGA,cAAU,CAAC;QACb,MAAM,CAAC;YACH,MAAM,EAAE,oBAAoB;YAC5B,SAAS,EAAE,KAAK;YAChB,IAAI,EAAE,wDAAwD;SACjE,CAAC;KACL,EAAE,GAAG,CAAC,CAAC;IACR,OAAO,GAAG,CAAC;CACd,EAAE,CAAC,CAAC,AACL;;ACjDA,IAAI,oBAAoB,GAAG,IAAI,CAAC;AAChC,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA,AACA;AACA,MAAM,CAAC,aAAa,CAAC,GAAG;IACpB,WAAW,EAAE,WAAW;IACxB,KAAK,EAAE,KAAK;IACZ,sBAAsB,EAAE,sBAAsB;IAC9C,eAAe,EAAE,eAAe;IAChC,OAAO,EAAE,OAAO;IAChB,UAAU,EAAE,UAAU;IACtB,KAAK,EAAE,KAAK;IACZ,qBAAqB,EAAE,qBAAqB;IAC5C,cAAc,EAAE,cAAc;IAC9B,cAAc,EAAE,cAAc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"}
\No newline at end of file