{"version":3,"sources":["ember-cli-cordova/initializers/in-app-livereload.js","ember-cli-cordova/mixins/controllers/nav-bar.js","ember-cli-cordova/mixins/cordova-events.js","ember-cli-cordova/mixins/routes/nav-bar.js","ember-cli-cordova/services/cordova.js","ember-cli-cordova/utils/redirect.js","__reexport.js"],"sourcesContent":["define(\"ember-cli-cordova/initializers/in-app-livereload\", \n  [\"ember-cli-cordova/utils/redirect\",\"exports\"],\n  function(__dependency1__, __exports__) {\n    \"use strict\";\n    var redirect = __dependency1__[\"default\"];\n\n    var initialize = function(app, config) {\n      var url = config.cordova.emberUrl || 'http://localhost:4200';\n      return redirect(url);\n    };\n    __exports__.initialize = initialize;\n    __exports__[\"default\"] = {\n      name: 'cordova:in-app-livereload',\n      initialize: initialize\n    };\n  });","define(\"ember-cli-cordova/mixins/controllers/nav-bar\", \n  [\"ember\",\"exports\"],\n  function(__dependency1__, __exports__) {\n    \"use strict\";\n    var Ember = __dependency1__[\"default\"];\n\n    __exports__[\"default\"] = Ember.Mixin.create({\n      nav: {\n        title: { },\n        leftButton: { },\n        rightButton: { }\n      },\n\n      actions: {\n        leftButton: function() {\n          var leftAction = this.get('nav.leftButton.action');\n\n          if(leftAction) {\n            leftAction();\n          }\n        },\n\n        rightButton: function() {\n          var rightAction = this.get('nav.rightButton.action');\n\n          if(rightAction) {\n            rightAction();\n          }\n        },\n\n        resetNavBar: function() {\n          this.set('nav', {\n            title: { },\n            leftButton: { },\n            rightButton: { }\n          });\n        }\n      }\n    });\n  });","define(\"ember-cli-cordova/mixins/cordova-events\", \n  [\"ember\",\"exports\"],\n  function(__dependency1__, __exports__) {\n    \"use strict\";\n    /* jshint esnext:true */\n\n    var Ember = __dependency1__[\"default\"];\n\n    // include this mixin to define cordova event listeners with an onCordova object\n    //\n    // onCordova supports arrays, strings, and anonymous functions, e.g.:\n    //\n    // ```\n    // export default MyEmberObject.extend({\n    //   onCordova: {\n    //     pause: ['pauseListening', 'disconnectPeripheral'],\n    //     resume: 'resumeListening',\n    //     volumeup: function() { console.log('a little bit louder now'); }\n    //   }\n    // });\n    // ```\n    __exports__[\"default\"] = Ember.Mixin.create({\n      cordova: Ember.inject.service(),\n\n      subscribeToCordovaEvents: Ember.on('init', function() {\n        var cordova = this.get('cordova'),\n            onCordova = this.get('onCordova');\n\n        Ember.keys(onCordova).forEach(function(key) {\n          var func = Ember.get(onCordova, key);\n\n          // subscribe to events\n          if (func instanceof Array) {\n            func.forEach(function(fn) {\n              if (this._validateIsFunction(fn)) {\n                cordova.on(key, this, fn);\n              }\n            }, this);\n          } else {\n            if (this._validateIsFunction(func)) {\n              cordova.on(key, this, func);\n            }\n          }\n        }, this);\n      }),\n\n      _validateIsFunction: function(func) {\n        var isFunction = false;\n\n        if (func instanceof Function) {\n          isFunction = true;\n        } else if (typeof func === 'string') {\n          var fn = this.get(func);\n\n          isFunction = fn instanceof Function;\n        }\n\n        return isFunction;\n      }\n    });\n  });","define(\"ember-cli-cordova/mixins/routes/nav-bar\", \n  [\"ember\",\"exports\"],\n  function(__dependency1__, __exports__) {\n    \"use strict\";\n    var Ember = __dependency1__[\"default\"];\n\n    __exports__[\"default\"] = Ember.Mixin.create({\n      _navController: Ember.computed('nav.controller', function() {\n        var name = this.get('nav.controller') || 'application';\n\n        return this.controllerFor(name);\n      }),\n\n      afterModel: function(model) {\n        this._setDefaults();\n        this._setNavOptions(model);\n        this._setNavActions();\n\n        return this._super.apply(this, arguments);\n      },\n\n      // Since we are using so many nested paths this makes sure they are set to\n      // null values\n      _setDefaults: function() {\n        var ctrl = this.get('_navController');\n\n        if(!ctrl.get('nav')) {\n          ctrl.send('resetNavBar');\n\n        } else if(!ctrl.get('nav.title')) {\n          ctrl.set('nav.title', {});\n\n        } else if(!ctrl.get('nav.leftButton')) {\n          ctrl.set('nav.leftButton', {});\n\n        } else if(!ctrl.get('nav.rightButton')) {\n          ctrl.set('nav.rightButton', {});\n        }\n      },\n\n      _setNavOptions: function(model) {\n        var ctrl = this.get('_navController');\n\n        var navOptions = Ember.A([\n          'title.text',\n          'leftButton.text', 'leftButton.icon',\n          'rightButton.text', 'rightButton.icon'\n        ]);\n\n        navOptions.forEach(function(key){\n          var optionPath = 'nav.' + key;\n          var value      = this.get(optionPath);\n\n          if (value) {\n            if(Ember.typeOf(value) === 'function') {\n              value = value.call(this, model);\n            }\n\n            ctrl.set(optionPath, value);\n          }\n        }, this);\n      },\n\n      _setNavActions: function() {\n        var ctrl = this.get('_navController');\n\n        Ember.A(['leftButton', 'rightButton']).forEach(function(button) {\n          var actionPath = 'nav.' + button + '.action';\n\n          var action = this.get(actionPath);\n          if (action) {\n            ctrl.set(actionPath, Ember.run.bind(this, action));\n          }\n        }, this);\n      },\n\n      actions: {\n        willTransition: function() {\n          this.get('_navController').send('resetNavBar');\n          return this._super.apply(this, arguments);\n        }\n      }\n    });\n  });","define(\"ember-cli-cordova/services/cordova\", \n  [\"ember\",\"exports\"],\n  function(__dependency1__, __exports__) {\n    \"use strict\";\n    /* jshint esnext:true */\n\n    var Ember = __dependency1__[\"default\"];\n\n    // from https://cordova.apache.org/docs/en/4.0.0/cordova_events_events.md.html\n    // use var because cordova/android was throwing errors re: const && strict mode\n    var CORDOVA_EVENTS = Ember.A([\n      'deviceready',\n      'pause',\n      'resume',\n      'backbutton',\n      'menubutton',\n      'searchbutton',\n      'startcallbutton',\n      'endcallbutton',\n      'volumedownbutton',\n      'volumeupbutton',\n      'batterycritical',\n      'batterylow',\n      'batterystatus',\n      'online',\n      'offline'\n    ]);\n\n    // the cordova service listens for cordova events emitted to the document,\n    // and triggers the same events in emberland.\n    //\n    // subscribe to cordova events as such:\n    //\n    // ```javascript\n    // export default MyEmberObject.extend({\n    //   cordova: Ember.inject.service()\n    //\n    //   init: function() {\n    //     cordova.on('resume', function() { console.log('i am resumed'); });\n    //   }\n    // });\n    // ```\n    __exports__[\"default\"] = Ember.Service.extend(\n      Ember.Evented, {\n\n      setEventTriggers: Ember.on('init', function() {\n        var _this = this;\n\n        CORDOVA_EVENTS.forEach(function(eventName) {\n          Ember.$(document).on(eventName, function() {\n            _this.trigger(eventName);\n          });\n        });\n      })\n    });\n  });","define(\"ember-cli-cordova/utils/redirect\", \n  [\"ember\",\"exports\"],\n  function(__dependency1__, __exports__) {\n    \"use strict\";\n    var Ember = __dependency1__[\"default\"];\n\n    __exports__[\"default\"] = function(url) {\n      if(window.location.href.indexOf('file://') > -1) {\n        Ember.run.later(function() {\n          window.location.replace(url);\n        }, 50);\n      }\n    }\n  });","define(\"ember-cli-cordova\", [\"ember-cli-cordova/index\",\"exports\"], function(__index__, __exports__) {\n  \"use strict\";\n  Object.keys(__index__).forEach(function(key){\n    __exports__[key] = __index__[key];\n  });\n});\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;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;;ACtCA;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;;AC3DA;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;;AClFA;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;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;","file":"ember-cli-cordova.js"}