ionic-native
Version:
Native plugin wrappers for Cordova and Ionic with TypeScript, ES6+, Promise and Observable support
1,121 lines (1,113 loc) • 1.46 MB
JavaScript
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
var ng1_1 = require('./ng1');
var DEVICE_READY_TIMEOUT = 5000;
var actionsheet_1 = require('./plugins/actionsheet');
var admob_1 = require('./plugins/admob');
var alipay_1 = require('./plugins/alipay');
var android_fingerprint_auth_1 = require('./plugins/android-fingerprint-auth');
var appavailability_1 = require('./plugins/appavailability');
var appodeal_1 = require('./plugins/appodeal');
var apprate_1 = require('./plugins/apprate');
var apppreferences_1 = require('./plugins/apppreferences');
var app_update_1 = require('./plugins/app-update');
var appversion_1 = require('./plugins/appversion');
var badge_1 = require('./plugins/badge');
var background_fetch_1 = require('./plugins/background-fetch');
var background_geolocation_1 = require('./plugins/background-geolocation');
var backgroundmode_1 = require('./plugins/backgroundmode');
var backlight_1 = require('./plugins/backlight');
var barcodescanner_1 = require('./plugins/barcodescanner');
var base64togallery_1 = require('./plugins/base64togallery');
var batterystatus_1 = require('./plugins/batterystatus');
var brightness_1 = require('./plugins/brightness');
var browser_tab_1 = require('./plugins/browser-tab');
var ble_1 = require('./plugins/ble');
var bluetoothserial_1 = require('./plugins/bluetoothserial');
var broadcaster_1 = require('./plugins/broadcaster');
var calendar_1 = require('./plugins/calendar');
var call_number_1 = require('./plugins/call-number');
var camera_1 = require('./plugins/camera');
var camera_preview_1 = require('./plugins/camera-preview');
var card_io_1 = require('./plugins/card-io');
var clipboard_1 = require('./plugins/clipboard');
var code_push_1 = require('./plugins/code-push');
var contacts_1 = require('./plugins/contacts');
var couchbase_lite_1 = require('./plugins/couchbase-lite');
var crop_1 = require('./plugins/crop');
var datepicker_1 = require('./plugins/datepicker');
var dbmeter_1 = require('./plugins/dbmeter');
var deeplinks_1 = require('./plugins/deeplinks');
var device_1 = require('./plugins/device');
var device_feedback_1 = require('./plugins/device-feedback');
var deviceaccounts_1 = require('./plugins/deviceaccounts');
var devicemotion_1 = require('./plugins/devicemotion');
var deviceorientation_1 = require('./plugins/deviceorientation');
var diagnostic_1 = require('./plugins/diagnostic');
var dialogs_1 = require('./plugins/dialogs');
var emailcomposer_1 = require('./plugins/emailcomposer');
var estimote_beacons_1 = require('./plugins/estimote-beacons');
var facebook_1 = require('./plugins/facebook');
var file_1 = require('./plugins/file');
var file_chooser_1 = require('./plugins/file-chooser');
var file_opener_1 = require('./plugins/file-opener');
var filepath_1 = require('./plugins/filepath');
var filetransfer_1 = require('./plugins/filetransfer');
var fingerprint_aio_1 = require('./plugins/fingerprint-aio');
var firebase_1 = require('./plugins/firebase');
var flashlight_1 = require('./plugins/flashlight');
var geofence_1 = require('./plugins/geofence');
var geolocation_1 = require('./plugins/geolocation');
var globalization_1 = require('./plugins/globalization');
var google_plus_1 = require('./plugins/google-plus');
var googlemap_1 = require('./plugins/googlemap');
var googleanalytics_1 = require('./plugins/googleanalytics');
var gyroscope_1 = require('./plugins/gyroscope');
var headercolor_1 = require('./plugins/headercolor');
var health_1 = require('./plugins/health');
var hotspot_1 = require('./plugins/hotspot');
var http_1 = require('./plugins/http');
var httpd_1 = require('./plugins/httpd');
var ibeacon_1 = require('./plugins/ibeacon');
var imagepicker_1 = require('./plugins/imagepicker');
var imageresizer_1 = require('./plugins/imageresizer');
var inappbrowser_1 = require('./plugins/inappbrowser');
var inapppurchase_1 = require('./plugins/inapppurchase');
var insomnia_1 = require('./plugins/insomnia');
var instagram_1 = require('./plugins/instagram');
var is_debug_1 = require('./plugins/is-debug');
var keyboard_1 = require('./plugins/keyboard');
var launchnavigator_1 = require('./plugins/launchnavigator');
var launch_review_1 = require('./plugins/launch-review');
var localnotifications_1 = require('./plugins/localnotifications');
var location_accuracy_1 = require('./plugins/location-accuracy');
var media_capture_1 = require('./plugins/media-capture');
var native_audio_1 = require('./plugins/native-audio');
var native_geocoder_1 = require('./plugins/native-geocoder');
var native_page_transitions_1 = require('./plugins/native-page-transitions');
var nativestorage_1 = require('./plugins/nativestorage');
var navigationbar_1 = require('./plugins/navigationbar');
var market_1 = require('./plugins/market');
var media_1 = require('./plugins/media');
var mixpanel_1 = require('./plugins/mixpanel');
var music_controls_1 = require('./plugins/music-controls');
var network_1 = require('./plugins/network');
var nfc_1 = require('./plugins/nfc');
var onesignal_1 = require('./plugins/onesignal');
var photo_viewer_1 = require('./plugins/photo-viewer');
var screen_orientation_1 = require('./plugins/screen-orientation');
var pay_pal_1 = require('./plugins/pay-pal');
var photo_library_1 = require('./plugins/photo-library');
var pin_dialog_1 = require('./plugins/pin-dialog');
var pinterest_1 = require('./plugins/pinterest');
var power_management_1 = require('./plugins/power-management');
var printer_1 = require('./plugins/printer');
var push_1 = require('./plugins/push');
var rollbar_1 = require('./plugins/rollbar');
var safari_view_controller_1 = require('./plugins/safari-view-controller');
var screenshot_1 = require('./plugins/screenshot');
var securestorage_1 = require('./plugins/securestorage');
var serial_1 = require('./plugins/serial');
var shake_1 = require('./plugins/shake');
var sim_1 = require('./plugins/sim');
var sms_1 = require('./plugins/sms');
var socialsharing_1 = require('./plugins/socialsharing');
var speech_recognition_1 = require('./plugins/speech-recognition');
var spinnerdialog_1 = require('./plugins/spinnerdialog');
var splashscreen_1 = require('./plugins/splashscreen');
var sqlite_1 = require('./plugins/sqlite');
var statusbar_1 = require('./plugins/statusbar');
var stepcounter_1 = require('./plugins/stepcounter');
var streaming_media_1 = require('./plugins/streaming-media');
var stripe_1 = require('./plugins/stripe');
var _3dtouch_1 = require('./plugins/3dtouch');
var toast_1 = require('./plugins/toast');
var touchid_1 = require('./plugins/touchid');
var text_to_speech_1 = require('./plugins/text-to-speech');
var themeable_browser_1 = require('./plugins/themeable-browser');
var twitter_connect_1 = require('./plugins/twitter-connect');
var unique_device_id_1 = require('./plugins/unique-device-id');
var vibration_1 = require('./plugins/vibration');
var video_editor_1 = require('./plugins/video-editor');
var video_player_1 = require('./plugins/video-player');
var webintent_1 = require('./plugins/webintent');
var youtube_video_player_1 = require('./plugins/youtube-video-player');
var z_bar_1 = require('./plugins/z-bar');
var zip_1 = require('./plugins/zip');
__export(require('./plugins/3dtouch'));
__export(require('./plugins/actionsheet'));
__export(require('./plugins/admob'));
__export(require('./plugins/alipay'));
__export(require('./plugins/android-fingerprint-auth'));
__export(require('./plugins/appavailability'));
__export(require('./plugins/apppreferences'));
__export(require('./plugins/appodeal'));
__export(require('./plugins/apprate'));
__export(require('./plugins/app-update'));
__export(require('./plugins/appversion'));
__export(require('./plugins/background-fetch'));
__export(require('./plugins/background-geolocation'));
__export(require('./plugins/backgroundmode'));
__export(require('./plugins/backlight'));
__export(require('./plugins/badge'));
__export(require('./plugins/barcodescanner'));
__export(require('./plugins/base64togallery'));
__export(require('./plugins/batterystatus'));
__export(require('./plugins/ble'));
__export(require('./plugins/bluetoothserial'));
__export(require('./plugins/brightness'));
__export(require('./plugins/browser-tab'));
__export(require('./plugins/broadcaster'));
__export(require('./plugins/calendar'));
__export(require('./plugins/call-number'));
__export(require('./plugins/camera'));
__export(require('./plugins/camera-preview'));
__export(require('./plugins/card-io'));
__export(require('./plugins/clipboard'));
__export(require('./plugins/code-push'));
__export(require('./plugins/contacts'));
__export(require('./plugins/couchbase-lite'));
__export(require('./plugins/crop'));
__export(require('./plugins/datepicker'));
__export(require('./plugins/dbmeter'));
__export(require('./plugins/deeplinks'));
__export(require('./plugins/device'));
__export(require('./plugins/device-feedback'));
__export(require('./plugins/deviceaccounts'));
__export(require('./plugins/devicemotion'));
__export(require('./plugins/deviceorientation'));
__export(require('./plugins/diagnostic'));
__export(require('./plugins/dialogs'));
__export(require('./plugins/emailcomposer'));
__export(require('./plugins/estimote-beacons'));
__export(require('./plugins/facebook'));
__export(require('./plugins/file'));
__export(require('./plugins/file-chooser'));
__export(require('./plugins/file-opener'));
__export(require('./plugins/filetransfer'));
__export(require('./plugins/firebase'));
__export(require('./plugins/filepath'));
__export(require('./plugins/fingerprint-aio'));
__export(require('./plugins/flashlight'));
__export(require('./plugins/geofence'));
__export(require('./plugins/geolocation'));
__export(require('./plugins/globalization'));
__export(require('./plugins/google-plus'));
__export(require('./plugins/googleanalytics'));
__export(require('./plugins/googlemap'));
__export(require('./plugins/gyroscope'));
__export(require('./plugins/headercolor'));
__export(require('./plugins/health'));
__export(require('./plugins/hotspot'));
__export(require('./plugins/http'));
__export(require('./plugins/httpd'));
__export(require('./plugins/ibeacon'));
__export(require('./plugins/imagepicker'));
__export(require('./plugins/imageresizer'));
__export(require('./plugins/inappbrowser'));
__export(require('./plugins/inapppurchase'));
__export(require('./plugins/insomnia'));
__export(require('./plugins/instagram'));
__export(require('./plugins/is-debug'));
__export(require('./plugins/keyboard'));
__export(require('./plugins/launchnavigator'));
__export(require('./plugins/launch-review'));
__export(require('./plugins/localnotifications'));
__export(require('./plugins/location-accuracy'));
__export(require('./plugins/market'));
__export(require('./plugins/media'));
__export(require('./plugins/media-capture'));
__export(require('./plugins/mixpanel'));
__export(require('./plugins/music-controls'));
__export(require('./plugins/native-audio'));
__export(require('./plugins/native-geocoder'));
__export(require('./plugins/native-page-transitions'));
__export(require('./plugins/nativestorage'));
__export(require('./plugins/navigationbar'));
__export(require('./plugins/network'));
__export(require('./plugins/nfc'));
__export(require('./plugins/onesignal'));
__export(require('./plugins/pay-pal'));
__export(require('./plugins/photo-library'));
__export(require('./plugins/photo-viewer'));
__export(require('./plugins/pin-dialog'));
__export(require('./plugins/pinterest'));
__export(require('./plugins/plugin'));
__export(require('./plugins/power-management'));
__export(require('./plugins/printer'));
__export(require('./plugins/push'));
__export(require('./plugins/rollbar'));
__export(require('./plugins/safari-view-controller'));
__export(require('./plugins/screen-orientation'));
__export(require('./plugins/screenshot'));
__export(require('./plugins/securestorage'));
__export(require('./plugins/serial'));
__export(require('./plugins/shake'));
__export(require('./plugins/sim'));
__export(require('./plugins/sms'));
__export(require('./plugins/socialsharing'));
__export(require('./plugins/speech-recognition'));
__export(require('./plugins/spinnerdialog'));
__export(require('./plugins/splashscreen'));
__export(require('./plugins/sqlite'));
__export(require('./plugins/statusbar'));
__export(require('./plugins/stepcounter'));
__export(require('./plugins/streaming-media'));
__export(require('./plugins/stripe'));
__export(require('./plugins/text-to-speech'));
__export(require('./plugins/themeable-browser'));
__export(require('./plugins/toast'));
__export(require('./plugins/touchid'));
__export(require('./plugins/twitter-connect'));
__export(require('./plugins/unique-device-id'));
__export(require('./plugins/vibration'));
__export(require('./plugins/video-editor'));
__export(require('./plugins/video-player'));
__export(require('./plugins/webintent'));
__export(require('./plugins/youtube-video-player'));
__export(require('./plugins/z-bar'));
__export(require('./plugins/zip'));
// Window export to use outside of a module loading system
window['IonicNative'] = {
ActionSheet: actionsheet_1.ActionSheet,
AdMob: admob_1.AdMob,
Alipay: alipay_1.Alipay,
AndroidFingerprintAuth: android_fingerprint_auth_1.AndroidFingerprintAuth,
AppAvailability: appavailability_1.AppAvailability,
AppPreferences: apppreferences_1.AppPreferences,
Appodeal: appodeal_1.Appodeal,
AppRate: apprate_1.AppRate,
AppUpdate: app_update_1.AppUpdate,
AppVersion: appversion_1.AppVersion,
Badge: badge_1.Badge,
BackgroundGeolocation: background_geolocation_1.BackgroundGeolocation,
BackgroundFetch: background_fetch_1.BackgroundFetch,
BackgroundMode: backgroundmode_1.BackgroundMode,
Backlight: backlight_1.Backlight,
BarcodeScanner: barcodescanner_1.BarcodeScanner,
Base64ToGallery: base64togallery_1.Base64ToGallery,
BatteryStatus: batterystatus_1.BatteryStatus,
Brightness: brightness_1.Brightness,
BrowserTab: browser_tab_1.BrowserTab,
BLE: ble_1.BLE,
BluetoothSerial: bluetoothserial_1.BluetoothSerial,
Broadcaster: broadcaster_1.Broadcaster,
Calendar: calendar_1.Calendar,
CallNumber: call_number_1.CallNumber,
Camera: camera_1.Camera,
CameraPreview: camera_preview_1.CameraPreview,
CardIO: card_io_1.CardIO,
Clipboard: clipboard_1.Clipboard,
CodePush: code_push_1.CodePush,
Contacts: contacts_1.Contacts,
CouchbaseLite: couchbase_lite_1.CouchbaseLite,
Crop: crop_1.Crop,
DatePicker: datepicker_1.DatePicker,
DBMeter: dbmeter_1.DBMeter,
Deeplinks: deeplinks_1.Deeplinks,
Device: device_1.Device,
DeviceFeedback: device_feedback_1.DeviceFeedback,
DeviceAccounts: deviceaccounts_1.DeviceAccounts,
DeviceMotion: devicemotion_1.DeviceMotion,
DeviceOrientation: deviceorientation_1.DeviceOrientation,
Dialogs: dialogs_1.Dialogs,
Diagnostic: diagnostic_1.Diagnostic,
EmailComposer: emailcomposer_1.EmailComposer,
EstimoteBeacons: estimote_beacons_1.EstimoteBeacons,
Facebook: facebook_1.Facebook,
File: file_1.File,
FileChooser: file_chooser_1.FileChooser,
FileOpener: file_opener_1.FileOpener,
FilePath: filepath_1.FilePath,
FingerprintAIO: fingerprint_aio_1.FingerprintAIO,
Flashlight: flashlight_1.Flashlight,
Firebase: firebase_1.Firebase,
Geofence: geofence_1.Geofence,
Geolocation: geolocation_1.Geolocation,
Globalization: globalization_1.Globalization,
GooglePlus: google_plus_1.GooglePlus,
GoogleMap: googlemap_1.GoogleMap,
GoogleAnalytics: googleanalytics_1.GoogleAnalytics,
Gyroscope: gyroscope_1.Gyroscope,
HeaderColor: headercolor_1.HeaderColor,
Health: health_1.Health,
Hotspot: hotspot_1.Hotspot,
HTTP: http_1.HTTP,
Httpd: httpd_1.Httpd,
IBeacon: ibeacon_1.IBeacon,
ImagePicker: imagepicker_1.ImagePicker,
ImageResizer: imageresizer_1.ImageResizer,
InAppBrowser: inappbrowser_1.InAppBrowser,
InAppPurchase: inapppurchase_1.InAppPurchase,
Insomnia: insomnia_1.Insomnia,
Instagram: instagram_1.Instagram,
IsDebug: is_debug_1.IsDebug,
Keyboard: keyboard_1.Keyboard,
LaunchNavigator: launchnavigator_1.LaunchNavigator,
LaunchReview: launch_review_1.LaunchReview,
LocalNotifications: localnotifications_1.LocalNotifications,
LocationAccuracy: location_accuracy_1.LocationAccuracy,
Market: market_1.Market,
MediaCapture: media_capture_1.MediaCapture,
MediaPlugin: media_1.MediaPlugin,
Mixpanel: mixpanel_1.Mixpanel,
MusicControls: music_controls_1.MusicControls,
NativeAudio: native_audio_1.NativeAudio,
NativeGeocoder: native_geocoder_1.NativeGeocoder,
NativePageTransitions: native_page_transitions_1.NativePageTransitions,
NativeStorage: nativestorage_1.NativeStorage,
NavigationBar: navigationbar_1.NavigationBar,
Network: network_1.Network,
PayPal: pay_pal_1.PayPal,
PhotoLibrary: photo_library_1.PhotoLibrary,
NFC: nfc_1.NFC,
Printer: printer_1.Printer,
Push: push_1.Push,
OneSignal: onesignal_1.OneSignal,
PhotoViewer: photo_viewer_1.PhotoViewer,
ScreenOrientation: screen_orientation_1.ScreenOrientation,
PinDialog: pin_dialog_1.PinDialog,
Pinterest: pinterest_1.Pinterest,
PowerManagement: power_management_1.PowerManagement,
Rollbar: rollbar_1.Rollbar,
SafariViewController: safari_view_controller_1.SafariViewController,
Screenshot: screenshot_1.Screenshot,
SecureStorage: securestorage_1.SecureStorage,
Serial: serial_1.Serial,
Shake: shake_1.Shake,
Sim: sim_1.Sim,
SMS: sms_1.SMS,
SocialSharing: socialsharing_1.SocialSharing,
SpinnerDialog: spinnerdialog_1.SpinnerDialog,
Splashscreen: splashscreen_1.Splashscreen,
SQLite: sqlite_1.SQLite,
StatusBar: statusbar_1.StatusBar,
SpeechRecognition: speech_recognition_1.SpeechRecognition,
Stepcounter: stepcounter_1.Stepcounter,
StreamingMedia: streaming_media_1.StreamingMedia,
Stripe: stripe_1.Stripe,
ThreeDeeTouch: _3dtouch_1.ThreeDeeTouch,
Toast: toast_1.Toast,
TouchID: touchid_1.TouchID,
Transfer: filetransfer_1.Transfer,
TextToSpeech: text_to_speech_1.TextToSpeech,
ThemeableBrowser: themeable_browser_1.ThemeableBrowser,
TwitterConnect: twitter_connect_1.TwitterConnect,
UniqueDeviceID: unique_device_id_1.UniqueDeviceID,
VideoEditor: video_editor_1.VideoEditor,
VideoPlayer: video_player_1.VideoPlayer,
Vibration: vibration_1.Vibration,
WebIntent: webintent_1.WebIntent,
YoutubeVideoPlayer: youtube_video_player_1.YoutubeVideoPlayer,
ZBar: z_bar_1.ZBar,
Zip: zip_1.Zip
};
ng1_1.initAngular1(window['IonicNative']);
// To help developers using cordova, we listen for the device ready event and
// log an error if it didn't fire in a reasonable amount of time. Generally,
// when this happens, developers should remove and reinstall plugins, since
// an inconsistent plugin is often the culprit.
var before = Date.now();
var didFireReady = false;
document.addEventListener('deviceready', function () {
console.log('DEVICE READY FIRED AFTER', (Date.now() - before), 'ms');
didFireReady = true;
});
setTimeout(function () {
if (!didFireReady && window.cordova) {
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.");
}
}, DEVICE_READY_TIMEOUT);
},{"./ng1":2,"./plugins/3dtouch":3,"./plugins/actionsheet":4,"./plugins/admob":5,"./plugins/alipay":6,"./plugins/android-fingerprint-auth":7,"./plugins/app-update":8,"./plugins/appavailability":9,"./plugins/appodeal":10,"./plugins/apppreferences":11,"./plugins/apprate":12,"./plugins/appversion":13,"./plugins/background-fetch":14,"./plugins/background-geolocation":15,"./plugins/backgroundmode":16,"./plugins/backlight":17,"./plugins/badge":18,"./plugins/barcodescanner":19,"./plugins/base64togallery":20,"./plugins/batterystatus":21,"./plugins/ble":22,"./plugins/bluetoothserial":23,"./plugins/brightness":24,"./plugins/broadcaster":25,"./plugins/browser-tab":26,"./plugins/calendar":27,"./plugins/call-number":28,"./plugins/camera":30,"./plugins/camera-preview":29,"./plugins/card-io":31,"./plugins/clipboard":32,"./plugins/code-push":33,"./plugins/contacts":34,"./plugins/couchbase-lite":35,"./plugins/crop":36,"./plugins/datepicker":37,"./plugins/dbmeter":38,"./plugins/deeplinks":39,"./plugins/device":41,"./plugins/device-feedback":40,"./plugins/deviceaccounts":42,"./plugins/devicemotion":43,"./plugins/deviceorientation":44,"./plugins/diagnostic":45,"./plugins/dialogs":46,"./plugins/emailcomposer":47,"./plugins/estimote-beacons":48,"./plugins/facebook":49,"./plugins/file":52,"./plugins/file-chooser":50,"./plugins/file-opener":51,"./plugins/filepath":53,"./plugins/filetransfer":54,"./plugins/fingerprint-aio":55,"./plugins/firebase":56,"./plugins/flashlight":57,"./plugins/geofence":58,"./plugins/geolocation":59,"./plugins/globalization":60,"./plugins/google-plus":61,"./plugins/googleanalytics":62,"./plugins/googlemap":63,"./plugins/gyroscope":64,"./plugins/headercolor":65,"./plugins/health":66,"./plugins/hotspot":67,"./plugins/http":68,"./plugins/httpd":69,"./plugins/ibeacon":70,"./plugins/imagepicker":71,"./plugins/imageresizer":72,"./plugins/inappbrowser":73,"./plugins/inapppurchase":74,"./plugins/insomnia":75,"./plugins/instagram":76,"./plugins/is-debug":77,"./plugins/keyboard":78,"./plugins/launch-review":79,"./plugins/launchnavigator":80,"./plugins/localnotifications":81,"./plugins/location-accuracy":82,"./plugins/market":83,"./plugins/media":85,"./plugins/media-capture":84,"./plugins/mixpanel":86,"./plugins/music-controls":87,"./plugins/native-audio":88,"./plugins/native-geocoder":89,"./plugins/native-page-transitions":90,"./plugins/nativestorage":91,"./plugins/navigationbar":92,"./plugins/network":93,"./plugins/nfc":94,"./plugins/onesignal":95,"./plugins/pay-pal":96,"./plugins/photo-library":97,"./plugins/photo-viewer":98,"./plugins/pin-dialog":99,"./plugins/pinterest":100,"./plugins/plugin":101,"./plugins/power-management":102,"./plugins/printer":103,"./plugins/push":104,"./plugins/rollbar":105,"./plugins/safari-view-controller":106,"./plugins/screen-orientation":107,"./plugins/screenshot":108,"./plugins/securestorage":109,"./plugins/serial":110,"./plugins/shake":111,"./plugins/sim":112,"./plugins/sms":113,"./plugins/socialsharing":114,"./plugins/speech-recognition":115,"./plugins/spinnerdialog":116,"./plugins/splashscreen":117,"./plugins/sqlite":118,"./plugins/statusbar":119,"./plugins/stepcounter":120,"./plugins/streaming-media":121,"./plugins/stripe":122,"./plugins/text-to-speech":123,"./plugins/themeable-browser":124,"./plugins/toast":125,"./plugins/touchid":126,"./plugins/twitter-connect":127,"./plugins/unique-device-id":128,"./plugins/vibration":129,"./plugins/video-editor":130,"./plugins/video-player":131,"./plugins/webintent":132,"./plugins/youtube-video-player":133,"./plugins/z-bar":134,"./plugins/zip":135}],2:[function(require,module,exports){
"use strict";
/**
* Initialize the ionic.native Angular module if we're running in ng1.
* This iterates through the list of registered plugins and dynamically
* creates Angular 1 services of the form $cordovaSERVICE, ex: $cordovaStatusBar.
*/
function initAngular1(plugins) {
if (window.angular) {
var ngModule_1 = window.angular.module('ionic.native', []);
for (var name in plugins) {
var serviceName = '$cordova' + name;
var cls = plugins[name];
(function (serviceName, cls, name) {
ngModule_1.service(serviceName, [function () {
var funcs = window.angular.copy(cls);
funcs.prototype['name'] = name;
return funcs;
}]);
})(serviceName, cls, name);
}
}
}
exports.initAngular1 = initAngular1;
},{}],3:[function(require,module,exports){
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var plugin_1 = require('./plugin');
var Observable_1 = require('rxjs/Observable');
/**
* @name 3DTouch
* @description
* @usage
* Please do refer to the original plugin's repo for detailed usage. The usage example here might not be sufficient.
* ```
* import { ThreeDeeTouch } from 'ionic-native';
*
* // import for type completion on variables
* import { ThreeDeeTouchQuickAction, ThreeDeeTouchForceTouch } from 'ionic-native';
* ...
*
* ThreeDeeTouch.isAvailable().then(isAvailable => console.log("3D Touch available? " + isAvailable));
*
* ThreeDeeTouch.watchForceTouches()
* .subscribe(
* (data: ThreeDeeTouchForceTouch) => {
* console.log("Force touch %" + data.force);
* console.log("Force touch timestamp: " + data.timestamp);
* console.log("Force touch x: " + data.x);
* console.log("Force touch y: " + data.y);
* }
* );
*
*
* let actions: Array<ThreeDeeTouchQuickAction> = [
* {
* type: 'checkin',
* title: 'Check in',
* subtitle: 'Quickly check in',
* iconType: 'Compose'
* },
* {
* type: 'share',
* title: 'Share',
* subtitle: 'Share like you care',
* iconType: 'Share'
* },
* {
* type: 'search',
* title: 'Search',
* iconType: 'Search'
* },
* {
* title: 'Show favorites',
* iconTemplate: 'HeartTemplate'
* }
* ];
* ThreeDeeTouch.configureQuickActions(actions);
*
* ThreeDeeTouch.onHomeIconPressed().subscribe(
* (payload) => {
* // returns an object that is the button you presed
* console.log('Pressed the ${payload.title} button')
* console.log(payload.type)
*
* }
* )
* ```
* @interfaces
* ThreeDeeTouchQuickAction
* ThreeDeeTouchForceTouch
*/
var ThreeDeeTouch = (function () {
function ThreeDeeTouch() {
}
/**
* 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.
* @returns {Promise<boolean>} returns a promise that resolves with a boolean that indicates whether the plugin is available or not
*/
ThreeDeeTouch.isAvailable = function () { return; };
/**
* 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.
* @returns {Observable<ThreeDeeTouchForceTouch>} Returns an observable that sends a `ThreeDeeTouchForceTouch` object
*/
ThreeDeeTouch.watchForceTouches = function () { return; };
/**
* setup the 3D-touch actions, takes an array of objects with the following
* @param {string} type (optional) A type that can be used `onHomeIconPressed` callback
* @param {string} title Title for your action
* @param {string} subtitle (optional) A short description for your action
* @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
* @param {string} iconTemplate (optional) Can be used to provide your own icon
*/
ThreeDeeTouch.configureQuickActions = function (quickActions) { };
/**
* When a home icon is pressed, your app launches and this JS callback is invoked.
* @returns {Observable<any>} returns an observable that notifies you when he user presses on the home screen icon
*/
ThreeDeeTouch.onHomeIconPressed = function () {
return new Observable_1.Observable(function (observer) {
if (window.ThreeDeeTouch) {
window.ThreeDeeTouch.onHomeIconPressed = observer.next.bind(observer);
}
else {
observer.error('3dTouch plugin is not available.');
observer.complete();
}
});
};
/**
* Enable Link Preview.
* UIWebView and WKWebView (the webviews powering Cordova apps) don't allow the fancy new link preview feature of iOS9.
*/
ThreeDeeTouch.enableLinkPreview = function () { };
/**
* Disabled the link preview feature, if enabled.
*/
ThreeDeeTouch.disableLinkPreview = function () { };
__decorate([
plugin_1.Cordova()
], ThreeDeeTouch, "isAvailable", null);
__decorate([
plugin_1.Cordova({
observable: true
})
], ThreeDeeTouch, "watchForceTouches", null);
__decorate([
plugin_1.Cordova({
sync: true
})
], ThreeDeeTouch, "configureQuickActions", null);
__decorate([
plugin_1.Cordova({
sync: true
})
], ThreeDeeTouch, "enableLinkPreview", null);
__decorate([
plugin_1.Cordova({
sync: true
})
], ThreeDeeTouch, "disableLinkPreview", null);
ThreeDeeTouch = __decorate([
plugin_1.Plugin({
pluginName: 'ThreeDeeTouch',
plugin: 'cordova-plugin-3dtouch',
pluginRef: 'ThreeDeeTouch',
repo: 'https://github.com/EddyVerbruggen/cordova-plugin-3dtouch',
platforms: ['iOS']
})
], ThreeDeeTouch);
return ThreeDeeTouch;
}());
exports.ThreeDeeTouch = ThreeDeeTouch;
},{"./plugin":101,"rxjs/Observable":141}],4:[function(require,module,exports){
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var plugin_1 = require('./plugin');
/**
* @name Action Sheet
* @description
* The ActionSheet plugin shows a native list of options the user can choose from.
*
* Requires Cordova plugin: `cordova-plugin-actionsheet`. For more info, please see the [ActionSheet plugin docs](https://github.com/EddyVerbruggen/cordova-plugin-actionsheet).
*
* @usage
* ```typescript
* import { ActionSheet } from 'ionic-native';
*
* let buttonLabels = ['Share via Facebook', 'Share via Twitter'];
* ActionSheet.show({
* 'title': 'What do you want with this image?',
* 'buttonLabels': buttonLabels,
* 'addCancelButtonWithLabel': 'Cancel',
* 'addDestructiveButtonWithLabel' : 'Delete'
* }).then((buttonIndex: number) => {
* console.log('Button pressed: ' + buttonIndex);
* });
* ```
* @interfaces
* ActionSheetOptions
*/
var ActionSheet = (function () {
function ActionSheet() {
}
/**
* Show a native ActionSheet component. See below for options.
* @param options {ActionSheetOptions} Options See table below
* @returns {Promise<any>} Returns a Promise that resolves with the index of the
* button pressed (1 based, so 1, 2, 3, etc.)
*/
ActionSheet.show = function (options) { return; };
/**
* Progamtically hide the native ActionSheet
* @returns {Promise<any>} Returns a Promise that resolves when the actionsheet is closed
*/
ActionSheet.hide = function (options) { return; };
__decorate([
plugin_1.Cordova()
], ActionSheet, "show", null);
__decorate([
plugin_1.Cordova()
], ActionSheet, "hide", null);
ActionSheet = __decorate([
plugin_1.Plugin({
pluginName: 'ActionSheet',
plugin: 'cordova-plugin-actionsheet',
pluginRef: 'plugins.actionsheet',
repo: 'https://github.com/EddyVerbruggen/cordova-plugin-actionsheet',
platforms: ['Android', 'iOS', 'Windows Phone 8']
})
], ActionSheet);
return ActionSheet;
}());
exports.ActionSheet = ActionSheet;
},{"./plugin":101}],5:[function(require,module,exports){
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var plugin_1 = require('./plugin');
/**
* @name AdMob
* @description
* Plugin for Google Ads, including AdMob / DFP (doubleclick for publisher) and mediations to other Ad networks.
* @usage
* ```typescript
* import { AdMob } from 'ionic-native';
*
* ionViewDidLoad() {
* AdMob.onAdDismiss()
* .subscribe(() => { console.log('User dismissed ad'); });
* }
*
* onClick() {
* AdMob.prepareInterstitial('YOUR_ADID')
* .then(() => { AdMob.showInterstitial(); });
* }
*
* ```
*
* @interfaces
* AdMobOptions
* AdMobAdExtras
*/
var AdMob = (function () {
function AdMob() {
}
/**
* Create a banner
* @param adIdOrOptions {string | AdMobOptions} Ad ID or Options
* @returns {Promise<any>} Returns a Promise that resolves when the banner is created
*/
AdMob.createBanner = function (adIdOrOptions) { return; };
/**
* Destroy the banner, remove it from screen.
*/
AdMob.removeBanner = function () { };
/**
* Show banner at position
* @param position {number} Position. Use `AdMob.AD_POSITION` to set values.
*/
AdMob.showBanner = function (position) { };
/**
* Show banner at custom position
* @param x {number} Offset from screen left.
* @param y {number} Offset from screen top.
*/
AdMob.showBannerAtXY = function (x, y) { };
/**
* Hide the banner, remove it from screen, but can show it later
*/
AdMob.hideBanner = function () { };
/**
* Prepare interstitial banner
* @param adIdOrOptions {string | AdMobOptions} Ad ID or Options
* @returns {Promise<any>} Returns a Promise that resolves when interstitial is prepared
*/
AdMob.prepareInterstitial = function (adIdOrOptions) { return; };
/**
* Show interstitial ad when it's ready
*/
AdMob.showInterstitial = function () { };
/**
* Prepare a reward video ad
* @param adIdOrOptions {string | AdMobOptions} Ad ID or Options
* @returns {Promise<any>} Returns a Promise that resolves when the ad is prepared
*/
AdMob.prepareRewardVideoAd = function (adIdOrOptions) { return; };
/**
* Show a reward video ad
*/
AdMob.showRewardVideoAd = function () { };
/**
* Sets the values for configuration and targeting
* @param options {AdMobOptions} Options
* @returns {Promise<any>} Returns a Promise that resolves when the options have been set
*/
AdMob.setOptions = function (options) { return; };
/**
* Get user ad settings
* @returns {Promise<any>} Returns a promise that resolves with the ad settings
*/
AdMob.getAdSettings = function () { return; };
/**
* Triggered when failed to receive Ad
* @returns {Observable<any>}
*/
AdMob.onAdFailLoad = function () { return; };
/**
* Triggered when Ad received
* @returns {Observable<any>}
*/
AdMob.onAdLoaded = function () { return; };
/**
* Triggered when Ad will be showed on screen
* @returns {Observable<any>}
*/
AdMob.onAdPresent = function () { return; };
/**
* Triggered when user click the Ad, and will jump out of your App
* @returns {Observable<any>}
*/
AdMob.onAdLeaveApp = function () { return; };
/**
* Triggered when dismiss the Ad and back to your App
* @returns {Observable<any>}
*/
AdMob.onAdDismiss = function () { return; };
/**
* @private
*/
AdMob.AD_POSITION = {
NO_CHANGE: 0,
TOP_LEFT: 1,
TOP_CENTER: 2,
TOP_RIGHT: 3,
LEFT: 4,
CENTER: 5,
RIGHT: 6,
BOTTOM_LEFT: 7,
BOTTOM_CENTER: 8,
BOTTOM_RIGHT: 9,
POS_XY: 10
};
__decorate([
plugin_1.Cordova()
], AdMob, "createBanner", null);
__decorate([
plugin_1.Cordova({
sync: true
})
], AdMob, "removeBanner", null);
__decorate([
plugin_1.Cordova({
sync: true
})
], AdMob, "showBanner", null);
__decorate([
plugin_1.Cordova({
sync: true
})
], AdMob, "showBannerAtXY", null);
__decorate([
plugin_1.Cordova({
sync: true
})
], AdMob, "hideBanner", null);
__decorate([
plugin_1.Cordova()
], AdMob, "prepareInterstitial", null);
__decorate([
plugin_1.Cordova({
sync: true
})
], AdMob, "showInterstitial", null);
__decorate([
plugin_1.Cordova()
], AdMob, "prepareRewardVideoAd", null);
__decorate([
plugin_1.Cordova({
sync: true
})
], AdMob, "showRewardVideoAd", null);
__decorate([
plugin_1.Cordova()
], AdMob, "setOptions", null);
__decorate([
plugin_1.Cordova()
], AdMob, "getAdSettings", null);
__decorate([
plugin_1.Cordova({
eventObservable: true,
event: 'onAdFailLoad'
})
], AdMob, "onAdFailLoad", null);
__decorate([
plugin_1.Cordova({
eventObservable: true,
event: 'onAdLoaded'
})
], AdMob, "onAdLoaded", null);
__decorate([
plugin_1.Cordova({
eventObservable: true,
event: 'onAdPresent'
})
], AdMob, "onAdPresent", null);
__decorate([
plugin_1.Cordova({
eventObservable: true,
event: 'onAdLeaveApp'
})
], AdMob, "onAdLeaveApp", null);
__decorate([
plugin_1.Cordova({
eventObservable: true,
event: 'onAdDismiss'
})
], AdMob, "onAdDismiss", null);
AdMob = __decorate([
plugin_1.Plugin({
pluginName: 'AdMob',
plugin: 'cordova-plugin-admobpro',
pluginRef: 'AdMob',
repo: 'https://github.com/floatinghotpot/cordova-admob-pro',
platforms: ['Android', 'iOS', 'Windows Phone 8']
})
], AdMob);
return AdMob;
}());
exports.AdMob = AdMob;
},{"./plugin":101}],6:[function(require,module,exports){
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var plugin_1 = require('./plugin');
/**
* @name Alipay
* @description
* This plugin is used for Alipay APP support. Integrated with the latest SDK.
*
* Requires Cordova plugin: `cordova-alipay-base`. For more info, please see the [Alipay plugin docs](https://github.com/xueron/cordova-alipay-base).
*
* @usage
* ```
* import { Alipay } from 'ionic-native';
*
* // Should get from server side with sign.
* let alipayOrder = {
...
* };
*
* Alipay.pay(alipayOrder)
* .then(result => {
* console.log(result); // Success
* })
* .catch(error => {
* console.log(error); // Failed
* });
*
* ```
*
* @interfaces
* AlipayOrder
*/
var Alipay = (function () {
function Alipay() {
}
/**
* Open Alipay to perform App pay
* @param order { AlipayOrder } alipay options
* @returns {Promise<any>} Returns a Promise that resolves with the success return, or rejects with an error.
*/
Alipay.pay = function (order) { return; };
__decorate([
plugin_1.Cordova()
], Alipay, "pay", null);
Alipay = __decorate([
plugin_1.Plugin({
pluginName: 'Alipay',
plugin: 'cordova-alipay-base',
pluginRef: 'Alipay.Base',
repo: 'https://github.com/xueron/cordova-alipay-base',
platforms: ['Android', 'iOS'],
install: 'ionic plugin add https://github.com/xueron/cordova-alipay-base --variable APP_ID=your_app_id'
})
], Alipay);
return Alipay;
}());
exports.Alipay = Alipay;
},{"./plugin":101}],7:[function(require,module,exports){
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var plugin_1 = require('./plugin');
/**
* @name Android Fingerprint Auth
* @description
* 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.
* @usage
* ```typescript
* import { AndroidFingerprintAuth } from 'ionic-native';
*
* AndroidFingerprintAuth.isAvailable()
* .then((result)=> {
* if(result.isAvailable){
* // it is available
*
* AndroidFingerprintAuth.encrypt({ clientId: "myAppName", username: "myUsername", password: "myPassword" })
* .then(result => {
* if (result.withFingerprint) {
* console.log("Successfully encrypted credentials.");
* console.log("Encrypted credentials: " + result.token);
* } else if (result.withBackup) {
* console.log('Successfully authenticated with backup password!');
* } else console.log('Didn\'t authenticate!');
* })
* .catch(error => {
* if (error === "Cancelled") {
* console.log("Fingerprint authentication cancelled");
* } else console.error(error)
* });
*
* } else {
* // fingerprint auth isn't available
* }
* })
* .catch(error => console.error(error));
* ```
* @interfaces
* AndroidFingerprintAuthOptions
*/
var AndroidFingerprintAuth = (function () {
function AndroidFingerprintAuth() {
}
/**
* Opens a native dialog fragment to use the device hardware fingerprint scanner to authenticate against fingerprints registered for the device.
* @param options {AndroidFingerprintAuthOptions} Options
* @returns {Promise<any>}
*/
AndroidFingerprintAuth.encrypt = function (options) { return; };
/**
* Opens a native dialog fragment to use the device hardware fingerprint scanner to authenticate against fingerprints registered for the device.
* @param options {AndroidFingerprintAuthOptions} Options
* @returns {Promise<any>}
*/
AndroidFingerprintAuth.decrypt = function (options) { return; };
/**
* Check if service is available
* @returns {Promise<any>} Returns a Promise that resolves if fingerprint auth is available on the device
*/
AndroidFingerprintAuth.isAvailable = function () { return; };
/**
* Delete the cipher used for encryption and decryption by username
* @returns {Promise<any>} Returns a Promise that resolves if the cipher was successfully deleted
*/
AndroidFingerprintAuth.delete = function (options) { return; };
__decorate([
plugin_1.Cordova()
], AndroidFingerprintAuth, "encrypt", null);
__decorate([
plugin_1.Cordova()
], AndroidFingerprintAuth, "decrypt", null);
__decorate([
plugin_1.Cordova()
], AndroidFingerprintAuth, "isAvailable", null);
__decorate([
plugin_1.Cordova()
], AndroidFingerprintAuth, "delete", null);
AndroidFingerprintAuth = __decorate([
plugin_1.Plugin({
pluginName: 'AndroidFingerprintAuth',
plugin: 'cordova-plugin-android-fingerprint-auth',
pluginRef: 'FingerprintAuth',
repo: 'https://github.com/mjwheatley/cordova-plugin-android-fingerprint-auth'
})
], AndroidFingerprintAuth);
return AndroidFingerprintAuth;
}());
exports.AndroidFingerprintAuth = AndroidFingerprintAuth;
},{"./plugin":101}],8:[function(require,module,exports){
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var plugin_1 = require('./plugin');
/**
* @name AppUpdate
* @description
* This plugin does self-update for android
*
* @usage
*
* You should first host an XML file on your server with the following data in it:
* ```xml
* <update>
* <version>302048</version>
* <name>APK Name</name>
* <url>https://your-remote-api.com/YourApp.apk</url>
* </update>
* ```
*
* Then use the following code:
*
* ```
* import { AppUpdate } from 'ionic-native';
*
* let updateUrl = 'http://your-remote-api.com/update.xml';
*
* AppUpdate.checkAppUpdate(updateUrl);
* ```
*
* The plugin will compare the app version and update it automatically if the API has a newer version to install.
*/
var AppUpdate = (function () {
function AppUpdate() {
}
/**
* Check and update
* @param updateUrl {string} update api url
* @return {Promise<any>} Returns a promise that resolves when something happens
*/
AppUpdate.checkAppUpdate = function (updateUrl) { return; };
__decorate([
plugin_1.Cordova({
callbackOrder: 'reverse'
})
], AppUpdate, "checkAppUpdate", null);
AppUpdate = __decorate([
plugin_1.Plugin({
pluginName: 'AppUpdate',
plugin: 'cordova-plugin-app-update',
pluginRef: 'AppUpdate',
repo: 'https://github.com/vaenow/cordova-plugin-app-update',
platforms: ['Android']
})
], AppUpdate);
return AppUpdate;
}());
exports.AppUpdate = AppUpdate;
},{"./plugin":101}],9:[function(require,module,exports){
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r