diff --git a/assets/huegasm-d1b6c7e6250abbc6e3a34d848993c5f2.js b/assets/huegasm-7bb787019349facbcd8411e92d213850.js
similarity index 85%
rename from assets/huegasm-d1b6c7e6250abbc6e3a34d848993c5f2.js
rename to assets/huegasm-7bb787019349facbcd8411e92d213850.js
index dbf8302..5e010e9 100644
--- a/assets/huegasm-d1b6c7e6250abbc6e3a34d848993c5f2.js
+++ b/assets/huegasm-7bb787019349facbcd8411e92d213850.js
@@ -1,6 +1,6 @@
"use strict";define("huegasm/app",["exports","ember","ember/resolver","ember/load-initializers","huegasm/config/environment"],function(e,t,n,a,r){var l;t["default"].MODEL_FACTORY_INJECTIONS=!0,l=t["default"].Application.extend({modulePrefix:r["default"].modulePrefix,podModulePrefix:r["default"].podModulePrefix,Resolver:n["default"]}),a["default"](l,r["default"].modulePrefix),e["default"]=l}),define("huegasm/components/app-version",["exports","ember-cli-app-version/components/app-version","huegasm/config/environment"],function(e,t,n){var a=n["default"].APP.name,r=n["default"].APP.version;e["default"]=t["default"].extend({version:r,name:a})}),define("huegasm/components/base-focusable",["exports","ember-paper/components/base-focusable"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/ember-modal-dialog-positioned-container",["exports","ember-modal-dialog/components/positioned-container"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/ember-notify",["exports","ember-notify/components/ember-notify"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/ember-notify/message",["exports","ember-notify/components/ember-notify/message"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/ember-wormhole",["exports","ember-wormhole/components/ember-wormhole"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/modal-dialog-overlay",["exports","ember-modal-dialog/components/modal-dialog-overlay"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/modal-dialog",["exports","ember-modal-dialog/components/modal-dialog"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-autocomplete-highlight",["exports","ember-paper/components/paper-autocomplete-highlight"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-autocomplete-item",["exports","ember-paper/components/paper-autocomplete-item"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-autocomplete-list",["exports","ember-paper/components/paper-autocomplete-list"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-autocomplete",["exports","ember-paper/components/paper-autocomplete"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-backdrop",["exports","ember-paper/components/paper-backdrop"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-button",["exports","ember-paper/components/paper-button"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-card-content",["exports","ember-paper/components/paper-card-content"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-card-footer",["exports","ember-paper/components/paper-card-footer"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-card",["exports","ember-paper/components/paper-card"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-checkbox",["exports","ember-paper/components/paper-checkbox"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-content",["exports","ember-paper/components/paper-content"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-divider",["exports","ember-paper/components/paper-divider"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-icon",["exports","ember-paper/components/paper-icon"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-input",["exports","ember-paper/components/paper-input"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-item",["exports","ember-paper/components/paper-item"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-list",["exports","ember-paper/components/paper-list"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-menu-container-wrap",["exports","ember-paper/components/paper-menu-container-wrap"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-menu-container",["exports","ember-paper/components/paper-menu-container"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-menu-content-pane",["exports","ember-paper/components/paper-menu-content-pane"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-menu-content",["exports","ember-paper/components/paper-menu-content"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-menu-item",["exports","ember-paper/components/paper-menu-item"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-menu",["exports","ember-paper/components/paper-menu"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-nav-container",["exports","ember-paper/components/paper-nav-container"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-optgroup",["exports","ember-paper/components/paper-optgroup"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-option",["exports","ember-paper/components/paper-option"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-progress-circular",["exports","ember-paper/components/paper-progress-circular"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-progress-linear",["exports","ember-paper/components/paper-progress-linear"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-radio",["exports","ember-paper/components/paper-radio"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-select-container",["exports","ember-paper/components/paper-select-container"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-select-core",["exports","ember-paper/components/paper-select-core"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-select-menu",["exports","ember-paper/components/paper-select-menu"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-select-value",["exports","ember-paper/components/paper-select-value"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-select",["exports","ember-paper/components/paper-select"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-sidenav-toggle",["exports","ember-paper/components/paper-sidenav-toggle"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-sidenav",["exports","ember-paper/components/paper-sidenav"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-slider",["exports","ember-paper/components/paper-slider"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-subheader",["exports","ember-paper/components/paper-subheader"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-switch",["exports","ember-paper/components/paper-switch"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/paper-toolbar",["exports","ember-paper/components/paper-toolbar"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/range-slider",["exports","ember-cli-nouislider/components/range-slider"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/tether-dialog",["exports","ember-modal-dialog/components/tether-dialog"],function(e,t){e["default"]=t["default"]}),define("huegasm/components/transition-group",["exports","ember-css-transitions/components/transition-group"],function(e,t){e["default"]=t["default"]}),define("huegasm/controllers/array",["exports","ember"],function(e,t){e["default"]=t["default"].Controller}),define("huegasm/controllers/object",["exports","ember"],function(e,t){e["default"]=t["default"].Controller}),define("huegasm/helpers/and",["exports","ember","ember-truth-helpers/helpers/and"],function(e,t,n){var a=null;t["default"].Helper?a=t["default"].Helper.helper(n.andHelper):t["default"].HTMLBars.makeBoundHelper&&(a=t["default"].HTMLBars.makeBoundHelper(n.andHelper)),e["default"]=a}),define("huegasm/helpers/eq",["exports","ember","ember-truth-helpers/helpers/equal"],function(e,t,n){var a=null;t["default"].Helper?a=t["default"].Helper.helper(n.equalHelper):t["default"].HTMLBars.makeBoundHelper&&(a=t["default"].HTMLBars.makeBoundHelper(n.equalHelper)),e["default"]=a}),define("huegasm/helpers/gt",["exports","ember","ember-truth-helpers/helpers/gt"],function(e,t,n){var a=null;t["default"].Helper?a=t["default"].Helper.helper(n.gtHelper):t["default"].HTMLBars.makeBoundHelper&&(a=t["default"].HTMLBars.makeBoundHelper(n.gtHelper)),e["default"]=a}),define("huegasm/helpers/gte",["exports","ember","ember-truth-helpers/helpers/gte"],function(e,t,n){var a=null;t["default"].Helper?a=t["default"].Helper.helper(n.gteHelper):t["default"].HTMLBars.makeBoundHelper&&(a=t["default"].HTMLBars.makeBoundHelper(n.gteHelper)),e["default"]=a}),define("huegasm/helpers/is-array",["exports","ember","ember-truth-helpers/helpers/is-array"],function(e,t,n){var a=null;t["default"].Helper?a=t["default"].Helper.helper(n.isArrayHelper):t["default"].HTMLBars.makeBoundHelper&&(a=t["default"].HTMLBars.makeBoundHelper(n.isArrayHelper)),e["default"]=a}),define("huegasm/helpers/lt",["exports","ember","ember-truth-helpers/helpers/lt"],function(e,t,n){var a=null;t["default"].Helper?a=t["default"].Helper.helper(n.ltHelper):t["default"].HTMLBars.makeBoundHelper&&(a=t["default"].HTMLBars.makeBoundHelper(n.ltHelper)),e["default"]=a}),define("huegasm/helpers/lte",["exports","ember","ember-truth-helpers/helpers/lte"],function(e,t,n){var a=null;t["default"].Helper?a=t["default"].Helper.helper(n.lteHelper):t["default"].HTMLBars.makeBoundHelper&&(a=t["default"].HTMLBars.makeBoundHelper(n.lteHelper)),e["default"]=a}),define("huegasm/helpers/not-eq",["exports","ember","ember-truth-helpers/helpers/not-equal"],function(e,t,n){var a=null;t["default"].Helper?a=t["default"].Helper.helper(n.notEqualHelper):t["default"].HTMLBars.makeBoundHelper&&(a=t["default"].HTMLBars.makeBoundHelper(n.notEqualHelper)),e["default"]=a}),define("huegasm/helpers/not",["exports","ember","ember-truth-helpers/helpers/not"],function(e,t,n){var a=null;t["default"].Helper?a=t["default"].Helper.helper(n.notHelper):t["default"].HTMLBars.makeBoundHelper&&(a=t["default"].HTMLBars.makeBoundHelper(n.notHelper)),e["default"]=a}),define("huegasm/helpers/or",["exports","ember","ember-truth-helpers/helpers/or"],function(e,t,n){var a=null;t["default"].Helper?a=t["default"].Helper.helper(n.orHelper):t["default"].HTMLBars.makeBoundHelper&&(a=t["default"].HTMLBars.makeBoundHelper(n.orHelper)),e["default"]=a}),define("huegasm/helpers/xor",["exports","ember","ember-truth-helpers/helpers/xor"],function(e,t,n){var a=null;t["default"].Helper?a=t["default"].Helper.helper(n.xorHelper):t["default"].HTMLBars.makeBoundHelper&&(a=t["default"].HTMLBars.makeBoundHelper(n.xorHelper)),e["default"]=a}),define("huegasm/initializers/add-modals-container",["exports","ember-modal-dialog/initializers/add-modals-container"],function(e,t){e["default"]={name:"add-modals-container",initialize:t["default"]}}),define("huegasm/initializers/app-version",["exports","ember-cli-app-version/initializer-factory","huegasm/config/environment"],function(e,t,n){e["default"]={name:"App Version",initialize:t["default"](n["default"].APP.name,n["default"].APP.version)}}),define("huegasm/initializers/export-application-global",["exports","ember","huegasm/config/environment"],function(e,t,n){function a(){var e=arguments[1]||arguments[0];if(n["default"].exportApplicationGlobal!==!1){var a,r=n["default"].exportApplicationGlobal;a="string"==typeof r?r:t["default"].String.classify(n["default"].modulePrefix),window[a]||(window[a]=e,e.reopen({willDestroy:function(){this._super.apply(this,arguments),delete window[a]}}))}}e.initialize=a,e["default"]={name:"export-application-global",initialize:a}}),define("huegasm/initializers/truth-helpers",["exports","ember","ember-truth-helpers/utils/register-helper","ember-truth-helpers/helpers/and","ember-truth-helpers/helpers/or","ember-truth-helpers/helpers/equal","ember-truth-helpers/helpers/not","ember-truth-helpers/helpers/is-array","ember-truth-helpers/helpers/not-equal","ember-truth-helpers/helpers/gt","ember-truth-helpers/helpers/gte","ember-truth-helpers/helpers/lt","ember-truth-helpers/helpers/lte"],function(e,t,n,a,r,l,o,i,s,u,d,c,p){function m(){t["default"].Helper||(n.registerHelper("and",a.andHelper),n.registerHelper("or",r.orHelper),n.registerHelper("eq",l.equalHelper),n.registerHelper("not",o.notHelper),n.registerHelper("is-array",i.isArrayHelper),n.registerHelper("not-eq",s.notEqualHelper),n.registerHelper("gt",u.gtHelper),n.registerHelper("gte",d.gteHelper),n.registerHelper("lt",c.ltHelper),n.registerHelper("lte",p.lteHelper))}e.initialize=m,e["default"]={name:"truth-helpers",initialize:m}}),define("huegasm/mixins/transition-mixin",["exports","ember-css-transitions/mixins/transition-mixin"],function(e,t){e["default"]=t["default"]}),define("huegasm/pods/components/add-group-modal/component",["exports","ember"],function(e,t){e["default"]=t["default"].Component.extend({actions:{close:function(){this.sendAction()},save:function(){var e={name:this.get("groupName"),lights:this.get("selectedLights")},n=this.get("groupsData");t["default"].$.ajax(this.get("apiURL")+"/groups",{data:JSON.stringify(e),contentType:"application/json",type:"POST"}),n[9999]=e,this.setProperties({updateGroupsData:!0,groupsData:n}),this.sendAction()},clickLight:function(e){var t=this.get("selectedLights");t.contains(e)?t.removeObject(e):t.pushObject(e)}},didInsertElement:function(){var e=this;t["default"].$(document).keypress(function(t){e.get("saveDisabled")||13!==t.which||e.send("save")})},groupName:null,selectedLights:[],onIsShowingModalChange:function(){this.get("isShowingModal")&&this.setProperties({selectedLights:[],groupName:null})}.observes("isShowingModal"),saveDisabled:function(){return t["default"].isNone(this.get("groupName"))||t["default"].isEmpty(this.get("selectedLights"))||t["default"].isEmpty(this.get("groupName").trim())}.property("groupName","selectedLights.[]")})}),define("huegasm/pods/components/add-group-modal/template",["exports"],function(e){e["default"]=Ember.HTMLBars.template(function(){var e=function(){var e=function(){var e=function(){return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:8,column:4},end:{line:8,column:41}},moduleName:"huegasm/pods/components/add-group-modal/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode("Close");return e.appendChild(t,n),t},buildRenderNodes:function(){return[]},statements:[],locals:[],templates:[]}}(),t=function(){return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:9,column:4},end:{line:9,column:93}},moduleName:"huegasm/pods/components/add-group-modal/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode("Save");return e.appendChild(t,n),t},buildRenderNodes:function(){return[]},statements:[],locals:[],templates:[]}}();return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:2,column:2},end:{line:11,column:2}},moduleName:"huegasm/pods/components/add-group-modal/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode("\n ");e.appendChild(t,n);var n=e.createComment("");e.appendChild(t,n);var n=e.createTextNode("\n\n ");e.appendChild(t,n);var n=e.createComment("");e.appendChild(t,n);var n=e.createTextNode("\n\n ");e.appendChild(t,n);var n=e.createComment("");e.appendChild(t,n);var n=e.createTextNode("\n ");e.appendChild(t,n);var n=e.createComment("");e.appendChild(t,n);var n=e.createTextNode("\n\n");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=new Array(4);return a[0]=e.createMorphAt(t,1,1,n),a[1]=e.createMorphAt(t,3,3,n),a[2]=e.createMorphAt(t,5,5,n),a[3]=e.createMorphAt(t,7,7,n),a},statements:[["inline","light-group",[],["lightsData",["subexpr","@mut",[["get","lightsData",["loc",[null,[4,29],[4,39]]]]],[],[]],"activeLights",["subexpr","@mut",[["get","selectedLights",["loc",[null,[4,53],[4,67]]]]],[],[]],"action","clickLight","apiURL",["subexpr","@mut",[["get","apiURL",["loc",[null,[4,95],[4,101]]]]],[],[]],"noHover",!0],["loc",[null,[4,4],[4,116]]]],["inline","paper-input",[],["label","Group name","value",["subexpr","@mut",[["get","groupName",["loc",[null,[6,43],[6,52]]]]],[],[]],"max","32","max-errortext","The group name cannot exceed 32 characters"],["loc",[null,[6,4],[6,122]]]],["block","paper-button",[],["action","close"],0,null,["loc",[null,[8,4],[8,58]]]],["block","paper-button",[],["class","pull-right","action","save","disabled",["subexpr","@mut",[["get","saveDisabled",["loc",[null,[9,62],[9,74]]]]],[],[]],"primary",!0],1,null,["loc",[null,[9,4],[9,110]]]]],locals:[],templates:[e,t]}}();return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:1,column:0},end:{line:12,column:0}},moduleName:"huegasm/pods/components/add-group-modal/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createComment("");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=new Array(1);return a[0]=e.createMorphAt(t,0,0,n),e.insertBoundary(t,0),e.insertBoundary(t,null),a},statements:[["block","modal-dialog",[],["close","close","alignment","center","translucentOverlay",!0],0,null,["loc",[null,[2,2],[11,19]]]]],locals:[],templates:[e]}}();return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:1,column:0},end:{line:12,column:7}},moduleName:"huegasm/pods/components/add-group-modal/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createComment("");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=new Array(1);return a[0]=e.createMorphAt(t,0,0,n),e.insertBoundary(t,0),e.insertBoundary(t,null),a},statements:[["block","if",[["get","isShowingModal",["loc",[null,[1,6],[1,20]]]]],[],0,null,["loc",[null,[1,0],[12,7]]]]],locals:[],templates:[e]}}())}),define("huegasm/pods/components/add-soundcloud-sound-modal/component",["exports","ember"],function(e,t){e["default"]=t["default"].Component.extend({actions:{close:function(){this.sendAction()},add:function(){this.sendAction("action",this.get("url"))}},url:null,onIsShowingModalChange:function(){this.get("isShowingModal")&&(this.set("url",null),setTimeout(function(){t["default"].$("md-input-container input").focus()},500))}.observes("isShowingModal"),didInsertElement:function(){var e=this;t["default"].$(document).keypress(function(t){e.get("saveDisabled")||13!==t.which||e.send("add")})},saveDisabled:function(){return t["default"].isNone(this.get("url"))||t["default"].isEmpty(this.get("url").trim())}.property("url")})}),define("huegasm/pods/components/add-soundcloud-sound-modal/template",["exports"],function(e){e["default"]=Ember.HTMLBars.template(function(){var e=function(){var e=function(){var e=function(){return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:9,column:4},end:{line:9,column:41}},moduleName:"huegasm/pods/components/add-soundcloud-sound-modal/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode("Close");return e.appendChild(t,n),t},buildRenderNodes:function(){return[]},statements:[],locals:[],templates:[]}}(),t=function(){return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:10,column:4},end:{line:10,column:97}},moduleName:"huegasm/pods/components/add-soundcloud-sound-modal/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode("Add Music");return e.appendChild(t,n),t},buildRenderNodes:function(){return[]},statements:[],locals:[],templates:[]}}();return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:2,column:2},end:{line:12,column:2}},moduleName:"huegasm/pods/components/add-soundcloud-sound-modal/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode("\n ");e.appendChild(t,n);var n=e.createElement("p"),a=e.createTextNode("Enter a ");e.appendChild(n,a);var a=e.createElement("a");e.setAttribute(a,"href","https://soundcloud.com");var r=e.createTextNode("SoundCloud");e.appendChild(a,r),e.appendChild(n,a);var a=e.createTextNode(" track or playlist/set URL");e.appendChild(n,a),e.appendChild(t,n);var n=e.createTextNode("\n ");e.appendChild(t,n);var n=e.createElement("p"),a=e.createTextNode("( ex. https://soundcloud.com/mrsuicidesheep/tracks )");e.appendChild(n,a),e.appendChild(t,n);var n=e.createTextNode("\n\n ");e.appendChild(t,n);var n=e.createComment("");e.appendChild(t,n);var n=e.createTextNode("\n\n ");e.appendChild(t,n);var n=e.createComment("");e.appendChild(t,n);var n=e.createTextNode("\n ");e.appendChild(t,n);var n=e.createComment("");e.appendChild(t,n);var n=e.createTextNode("\n\n");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=new Array(3);return a[0]=e.createMorphAt(t,5,5,n),a[1]=e.createMorphAt(t,7,7,n),a[2]=e.createMorphAt(t,9,9,n),a},statements:[["inline","paper-input",[],["label","SoundCloud URL","icon","search","value",["subexpr","@mut",[["get","url",["loc",[null,[7,61],[7,64]]]]],[],[]]],["loc",[null,[7,4],[7,66]]]],["block","paper-button",[],["action","close"],0,null,["loc",[null,[9,4],[9,58]]]],["block","paper-button",[],["class","pull-right","action","add","disabled",["subexpr","@mut",[["get","saveDisabled",["loc",[null,[10,61],[10,73]]]]],[],[]],"primary",!0],1,null,["loc",[null,[10,4],[10,114]]]]],locals:[],templates:[e,t]}}();return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:1,column:0},end:{line:13,column:0}},moduleName:"huegasm/pods/components/add-soundcloud-sound-modal/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createComment("");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=new Array(1);return a[0]=e.createMorphAt(t,0,0,n),e.insertBoundary(t,0),e.insertBoundary(t,null),a},statements:[["block","modal-dialog",[],["close","close","alignment","center","translucentOverlay",!0,"attachment","center","targetAttachment","center"],0,null,["loc",[null,[2,2],[12,19]]]]],locals:[],templates:[e]}}();return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:1,column:0},end:{line:13,column:7}},moduleName:"huegasm/pods/components/add-soundcloud-sound-modal/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createComment("");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=new Array(1);return a[0]=e.createMorphAt(t,0,0,n),e.insertBoundary(t,0),e.insertBoundary(t,null),a},statements:[["block","if",[["get","isShowingModal",["loc",[null,[1,6],[1,20]]]]],[],0,null,["loc",[null,[1,0],[13,7]]]]],locals:[],templates:[e]}}())}),define("huegasm/pods/components/bridge-finder/component",["exports","ember"],function(e,t){e["default"]=t["default"].Component.extend({classNames:["container","bridgeFinder"],bridgeIp:null,trial:!1,bridgeUsername:null,bridgeFindStatus:null,bridgeFindSuccess:t["default"].computed.equal("bridgeFindStatus","success"),bridgeFindMultiple:t["default"].computed.equal("bridgeFindStatus","multiple"),bridgeFindFail:t["default"].computed.equal("bridgeFindStatus","fail"),bridgeUsernamePingMaxTime:3e4,bridgeUsernamePingIntervalTime:1e3,bridgeUserNamePingIntervalProgress:0,bridgePingIntervalHandle:null,bridgeAuthenticateReachedStatus:null,manualBridgeIp:null,manualBridgeIpNotFound:!1,multipleBridgeIps:[],actions:{retry:function(){this.onBridgeIpChange()},findBridgeByIp:function(){var e=this.get("manualBridgeIp"),n=this;"trial"===e.toLowerCase()||"offline"===e.toLowerCase()?this.setProperties({trial:!0,bridgeIp:"trial",bridgeUsername:"trial"}):t["default"].$.ajax("http://"+e+"/api",{data:JSON.stringify({devicetype:"huegasm"}),contentType:"application/json",type:"POST"}).fail(function(){n.set("manualBridgeIpNotFound",!0),setTimeout(function(){n.set("manualBridgeIpNotFound",!1)},5e3)}).then(function(){n.set("bridgeIp",e)})}},didInsertElement:function(){var e=this;t["default"].$(document).keypress(function(n){t["default"].isNone(e.get("manualBridgeIp"))||13!==n.which||e.send("findBridgeByIp")})},init:function(){var e=this;this._super(),null===this.get("bridgeIp")&&t["default"].$.ajax("https://www.meethue.com/api/nupnp",{timeout:3e4}).done(function(t,n){var a="fail";if("success"===n&&1===t.length)e.set("bridgeIp",t[0].internalipaddress),e.get("storage").set("huegasm.bridgeIp",t[0].internalipaddress),a="success";else if(t.length>1){var r=e.get("multipleBridgeIps");t.forEach(function(e){r.pushObject(e.internalipaddress)}),a="multiple"}else a="fail";e.set("bridgeFindStatus",a)}).fail(function(){e.set("bridgeFindStatus","fail")})},onBridgeIpChange:function(){this.get("trial")||this.get("isAuthenticating")||this.setProperties({bridgePingIntervalHandle:setInterval(this.pingBridgeUser.bind(this),this.get("bridgeUsernamePingIntervalTime")),bridgeUserNamePingIntervalProgress:0})}.observes("bridgeIp").on("init"),pingBridgeUser:function(){var e=this,n=this.get("bridgeIp"),a=this.get("bridgeUserNamePingIntervalProgress"),r=this.get("bridgeUsernamePingMaxTime");null!==n&&100>a?(t["default"].$.ajax("http://"+n+"/api",{data:JSON.stringify({devicetype:"huegasm"}),contentType:"application/json",type:"POST"}).done(function(t,n){"success"===n&&(t[0].error||(e.setProperties({bridgeUsername:t[0].success.username,bridgePingIntervalHandle:null}),e.get("storage").set("huegasm.bridgeUsername",t[0].success.username),clearInterval(e.get("bridgePingIntervalHandle"))),e.set("bridgeAuthenticateError",t[0].internalipaddress)),e.set("bridgeAuthenticateReachedStatus",n)}),this.incrementProperty("bridgeUserNamePingIntervalProgress",this.get("bridgeUsernamePingIntervalTime")/r*100)):clearInterval(this.get("bridgePingIntervalHandle"))},isAuthenticating:function(){return null!==this.get("bridgePingIntervalHandle")}.property("bridgePingIntervalHandle")})}),define("huegasm/pods/components/bridge-finder/template",["exports"],function(e){e["default"]=Ember.HTMLBars.template(function(){var e=function(){var e=function(){var e=function(){return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:6,column:4},end:{line:9,column:4}},moduleName:"huegasm/pods/components/bridge-finder/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode(" ");e.appendChild(t,n);var n=e.createElement("p"),a=e.createTextNode("Your bridge IP is ");e.appendChild(n,a);var a=e.createElement("b"),r=e.createComment("");e.appendChild(a,r),e.appendChild(n,a);var a=e.createTextNode(" ");e.appendChild(n,a);var a=e.createElement("br");e.appendChild(n,a);var a=e.createTextNode("\n Press the button on your bridge to authenticate this application.");e.appendChild(n,a),e.appendChild(t,n);var n=e.createTextNode("\n");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=new Array(1);return a[0]=e.createMorphAt(e.childAt(t,[1,1]),0,0),a},statements:[["content","bridgeIp",["loc",[null,[7,30],[7,42]]]]],locals:[],templates:[]}}(),t=function(){return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:9,column:4},end:{line:11,column:4}},moduleName:"huegasm/pods/components/bridge-finder/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode(" ");e.appendChild(t,n);var n=e.createElement("p"),a=e.createTextNode("You failed to press the button. ");e.appendChild(n,a);var a=e.createElement("a");e.setAttribute(a,"class","noTextDecoration"),e.setAttribute(a,"href","#");var r=e.createTextNode("RETRY");e.appendChild(a,r),e.appendChild(n,a),e.appendChild(t,n);var n=e.createTextNode("\n");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=e.childAt(t,[1,1]),r=new Array(1);return r[0]=e.createElementMorph(a),r},statements:[["element","action",["retry"],[],["loc",[null,[10,78],[10,96]]]]],locals:[],templates:[]}}();return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:3,column:2},end:{line:12,column:2}},moduleName:"huegasm/pods/components/bridge-finder/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode(" ");e.appendChild(t,n);var n=e.createElement("img");e.setAttribute(n,"src","assets/images/pressButtonBridge-8568d6173bf9f364cd4fdd68788c9103.png"),e.setAttribute(n,"id","pressButtonBridgeImg"),e.appendChild(t,n);var n=e.createTextNode("\n ");e.appendChild(t,n);var n=e.createComment("");e.appendChild(t,n);var n=e.createTextNode("\n");e.appendChild(t,n);var n=e.createComment("");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=new Array(2);return a[0]=e.createMorphAt(t,3,3,n),a[1]=e.createMorphAt(t,5,5,n),e.insertBoundary(t,null),a},statements:[["inline","paper-progress-linear",[],["warn",!0,"value",["subexpr","@mut",[["get","bridgeUserNamePingIntervalProgress",["loc",[null,[5,44],[5,78]]]]],[],[]]],["loc",[null,[5,4],[5,80]]]],["block","if",[["get","isAuthenticating",["loc",[null,[6,10],[6,26]]]]],[],0,1,["loc",[null,[6,4],[11,11]]]]],locals:[],templates:[e,t]}}(),t=function(){var e=function(){return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:13,column:4},end:{line:16,column:4}},moduleName:"huegasm/pods/components/bridge-finder/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode(" ");e.appendChild(t,n);var n=e.createComment("");e.appendChild(t,n);var n=e.createTextNode("\n ");e.appendChild(t,n);var n=e.createElement("p"),a=e.createTextNode("Trying to find your bridge's IP.");e.appendChild(n,a),e.appendChild(t,n);var n=e.createTextNode("\n");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=new Array(1);return a[0]=e.createMorphAt(t,1,1,n),a},statements:[["content","paper-progress-circular",["loc",[null,[14,6],[14,33]]]]],locals:[],templates:[]}}(),t=function(){var e=function(){var e=function(){return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:24,column:10},end:{line:24,column:67}},moduleName:"huegasm/pods/components/bridge-finder/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createComment("");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=new Array(1);return a[0]=e.createMorphAt(t,0,0,n),e.insertBoundary(t,0),e.insertBoundary(t,null),a},statements:[["content","bridge",["loc",[null,[24,57],[24,67]]]]],locals:[],templates:[]}}();return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:23,column:8},end:{line:25,column:8}},moduleName:"huegasm/pods/components/bridge-finder/template.hbs"},isEmpty:!1,arity:1,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode(" ");e.appendChild(t,n);var n=e.createComment("");e.appendChild(t,n);var n=e.createTextNode("\n");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=new Array(1);return a[0]=e.createMorphAt(t,1,1,n),a},statements:[["block","paper-radio",[],["value",["subexpr","@mut",[["get","bridge",["loc",[null,[24,31],[24,37]]]]],[],[]],"selected",["subexpr","@mut",[["get","bridgeIp",["loc",[null,[24,47],[24,55]]]]],[],[]]],0,null,["loc",[null,[24,10],[24,83]]]]],
-locals:["bridge"],templates:[e]}}();return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:18,column:4},end:{line:27,column:4}},moduleName:"huegasm/pods/components/bridge-finder/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode(" ");e.appendChild(t,n);var n=e.createElement("p"),a=e.createTextNode("Found multiple hue bridges. ");e.appendChild(n,a);var a=e.createElement("br");e.appendChild(n,a);var a=e.createTextNode("\n Please select the one you want to use for this application.");e.appendChild(n,a),e.appendChild(t,n);var n=e.createTextNode("\n\n ");e.appendChild(t,n);var n=e.createElement("div");e.setAttribute(n,"id","bridgeButtonGroup");var a=e.createTextNode("\n");e.appendChild(n,a);var a=e.createComment("");e.appendChild(n,a);var a=e.createTextNode(" ");e.appendChild(n,a),e.appendChild(t,n);var n=e.createTextNode("\n");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=new Array(1);return a[0]=e.createMorphAt(e.childAt(t,[3]),1,1),a},statements:[["block","each",[["get","multipleBridgeIps",["loc",[null,[23,16],[23,33]]]]],[],0,null,["loc",[null,[23,8],[25,17]]]]],locals:[],templates:[e]}}(),n=function(){var e=function(){var e=function(){return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:36,column:10},end:{line:36,column:80}},moduleName:"huegasm/pods/components/bridge-finder/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode("Find");return e.appendChild(t,n),t},buildRenderNodes:function(){return[]},statements:[],locals:[],templates:[]}}(),t=function(){return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:39,column:8},end:{line:43,column:8}},moduleName:"huegasm/pods/components/bridge-finder/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode(" ");e.appendChild(t,n);var n=e.createElement("p");e.setAttribute(n,"class","bg-danger");var a=e.createTextNode("\n Could not find a bridge with that IP address.\n ");e.appendChild(n,a),e.appendChild(t,n);var n=e.createTextNode("\n");return e.appendChild(t,n),t},buildRenderNodes:function(){return[]},statements:[],locals:[],templates:[]}}();return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:28,column:6},end:{line:44,column:6}},moduleName:"huegasm/pods/components/bridge-finder/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode(" ");e.appendChild(t,n);var n=e.createElement("p"),a=e.createTextNode("A hue bridge could not be automatically found on your network. ");e.appendChild(n,a);var a=e.createElement("br");e.appendChild(n,a);var a=e.createTextNode("\n Enter one manually? ");e.appendChild(n,a);var a=e.createElement("br");e.appendChild(n,a);var a=e.createElement("br");e.appendChild(n,a);var a=e.createTextNode("\n ( or type ");e.appendChild(n,a);var a=e.createElement("b"),r=e.createTextNode("offline");e.appendChild(a,r),e.appendChild(n,a);var a=e.createTextNode(" to look around )\n ");e.appendChild(n,a),e.appendChild(t,n);var n=e.createTextNode("\n\n ");e.appendChild(t,n);var n=e.createElement("span");e.setAttribute(n,"id","bridgeInput");var a=e.createTextNode("\n ");e.appendChild(n,a);var a=e.createComment("");e.appendChild(n,a);var a=e.createTextNode("\n ");e.appendChild(n,a);var a=e.createComment("");e.appendChild(n,a);var a=e.createTextNode("\n ");e.appendChild(n,a),e.appendChild(t,n);var n=e.createTextNode("\n\n");e.appendChild(t,n);var n=e.createComment("");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=e.childAt(t,[3]),r=new Array(3);return r[0]=e.createMorphAt(a,1,1),r[1]=e.createMorphAt(a,3,3),r[2]=e.createMorphAt(t,5,5,n),e.insertBoundary(t,null),r},statements:[["inline","paper-input",[],["label","Hue bridge IP address","value",["subexpr","@mut",[["get","manualBridgeIp",["loc",[null,[35,60],[35,74]]]]],[],[]]],["loc",[null,[35,10],[35,76]]]],["block","paper-button",[],["action","findBridgeByIp","raised",!0,"primary",!0],0,null,["loc",[null,[36,10],[36,97]]]],["block","if",[["get","manualBridgeIpNotFound",["loc",[null,[39,14],[39,36]]]]],[],1,null,["loc",[null,[39,8],[43,15]]]]],locals:[],templates:[e,t]}}();return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:27,column:4},end:{line:45,column:4}},moduleName:"huegasm/pods/components/bridge-finder/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createComment("");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=new Array(1);return a[0]=e.createMorphAt(t,0,0,n),e.insertBoundary(t,0),e.insertBoundary(t,null),a},statements:[["block","if",[["get","bridgeFindFail",["loc",[null,[28,12],[28,26]]]]],[],0,null,["loc",[null,[28,6],[44,13]]]]],locals:[],templates:[e]}}();return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:12,column:2},end:{line:46,column:2}},moduleName:"huegasm/pods/components/bridge-finder/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createComment("");e.appendChild(t,n);var n=e.createTextNode("\n");e.appendChild(t,n);var n=e.createComment("");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=new Array(2);return a[0]=e.createMorphAt(t,0,0,n),a[1]=e.createMorphAt(t,2,2,n),e.insertBoundary(t,0),e.insertBoundary(t,null),a},statements:[["block","unless",[["get","bridgeFindStatus",["loc",[null,[13,14],[13,30]]]]],[],0,null,["loc",[null,[13,4],[16,15]]]],["block","if",[["get","bridgeFindMultiple",["loc",[null,[18,10],[18,28]]]]],[],1,2,["loc",[null,[18,4],[45,11]]]]],locals:[],templates:[e,t,n]}}();return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:2,column:0},end:{line:47,column:0}},moduleName:"huegasm/pods/components/bridge-finder/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createComment("");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=new Array(1);return a[0]=e.createMorphAt(t,0,0,n),e.insertBoundary(t,0),e.insertBoundary(t,null),a},statements:[["block","if",[["get","bridgeIp",["loc",[null,[3,8],[3,16]]]]],[],0,1,["loc",[null,[3,2],[46,9]]]]],locals:[],templates:[e,t]}}();return{meta:{topLevel:!1,revision:"Ember@2.1.0",loc:{source:null,start:{line:1,column:0},end:{line:47,column:11}},moduleName:"huegasm/pods/components/bridge-finder/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createElement("div");e.setAttribute(n,"class","title");var a=e.createTextNode("Huegasm");e.appendChild(n,a),e.appendChild(t,n);var n=e.createTextNode("\n");e.appendChild(t,n);var n=e.createComment("");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=new Array(1);return a[0]=e.createMorphAt(t,2,2,n),e.insertBoundary(t,null),a},statements:[["block","unless",[["get","bridgeUsername",["loc",[null,[2,10],[2,24]]]]],[],0,null,["loc",[null,[2,0],[47,11]]]]],locals:[],templates:[e]}}())}),define("huegasm/pods/components/color-picker/component",["exports","ember"],function(e,t){e["default"]=t["default"].Component.extend({classNames:["colorpicker"],rgb:null,canvas:null,canvasContext:null,actions:{mouseMove:function(){this.get("pressingDown")&&this.send("colorSelect")},mouseUp:function(){this.set("pressingDown",!1)},colorSelect:function(){var e=t["default"].$(this.get("canvas")).offset(),n=Math.floor(event.pageX-e.left),a=Math.floor(event.pageY-e.top),r=this.get("canvasContext").getImageData(n,a,1,1),l=r.data;this.set("pressingDown",!0),(0!==l[0]||0!==l[1]||0!==l[2])&&this.set("rgb",[l[0],l[1],l[2]])}},pressingDown:!1,didInsertElement:function(){var e=t["default"].$("#picker")[0],n=e.getContext("2d"),a=new Image;a.src="assets/images/colormap-83aafd17086eaab68b229a681c04139b.png",a.onload=function(){n.drawImage(a,0,0,a.width,a.height)},this.setProperties({canvas:e,canvasContext:n})}})}),define("huegasm/pods/components/color-picker/template",["exports"],function(e){e["default"]=Ember.HTMLBars.template(function(){return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:1,column:0},end:{line:1,column:166}},moduleName:"huegasm/pods/components/color-picker/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createElement("canvas");return e.setAttribute(n,"id","picker"),e.setAttribute(n,"width","256"),e.setAttribute(n,"height","256"),e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=e.childAt(t,[0]),r=new Array(3);return r[0]=e.createElementMorph(a),r[1]=e.createElementMorph(a),r[2]=e.createElementMorph(a),r},statements:[["element","action",["colorSelect"],["on","mouseDown"],["loc",[null,[1,45],[1,84]]]],["element","action",["mouseMove"],["on","mouseMove"],["loc",[null,[1,85],[1,122]]]],["element","action",["mouseUp"],["on","mouseUp"],["loc",[null,[1,123],[1,156]]]]],locals:[],templates:[]}}())}),define("huegasm/pods/components/delete-group-modal/component",["exports","ember"],function(e,t){e["default"]=t["default"].Component.extend({actions:{close:function(){this.sendAction()},"delete":function(){var e=this.get("groupId");t["default"].$.ajax(this.get("apiURL")+"/groups/"+e,{contentType:"application/json",type:"DELETE"});var n=this.get("groupsData"),a=[];for(var r in n)n.hasOwnProperty(r)&&n[r].name!==this.get("groupName")&&(a[r]=n[r]);e===this.get("groupIdSelection")&&this.set("groupIdSelection","0"),this.setProperties({updateGroupsData:!0,groupsData:a}),this.sendAction()}}})}),define("huegasm/pods/components/delete-group-modal/template",["exports"],function(e){e["default"]=Ember.HTMLBars.template(function(){var e=function(){var e=function(){var e=function(){return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:6,column:4},end:{line:6,column:41}},moduleName:"huegasm/pods/components/delete-group-modal/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode("Close");return e.appendChild(t,n),t},buildRenderNodes:function(){return[]},statements:[],locals:[],templates:[]}}(),t=function(){return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:7,column:4},end:{line:7,column:75}},moduleName:"huegasm/pods/components/delete-group-modal/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode("Delete");return e.appendChild(t,n),t},buildRenderNodes:function(){return[]},statements:[],locals:[],templates:[]}}();return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:2,column:2},end:{line:9,column:2}},moduleName:"huegasm/pods/components/delete-group-modal/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode("\n ");e.appendChild(t,n);var n=e.createElement("p"),a=e.createTextNode('Are you sure you want to delete group "');e.appendChild(n,a);var a=e.createComment("");e.appendChild(n,a);var a=e.createTextNode('"?');e.appendChild(n,a),e.appendChild(t,n);var n=e.createTextNode("\n\n ");e.appendChild(t,n);var n=e.createComment("");e.appendChild(t,n);var n=e.createTextNode("\n ");e.appendChild(t,n);var n=e.createComment("");e.appendChild(t,n);var n=e.createTextNode("\n\n");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=new Array(3);return a[0]=e.createMorphAt(e.childAt(t,[1]),1,1),a[1]=e.createMorphAt(t,3,3,n),a[2]=e.createMorphAt(t,5,5,n),a},statements:[["content","groupName",["loc",[null,[4,46],[4,59]]]],["block","paper-button",[],["action","close"],0,null,["loc",[null,[6,4],[6,58]]]],["block","paper-button",[],["class","pull-right","action","delete","primary",!0],1,null,["loc",[null,[7,4],[7,92]]]]],locals:[],templates:[e,t]}}();return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:1,column:0},end:{line:10,column:0}},moduleName:"huegasm/pods/components/delete-group-modal/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createComment("");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=new Array(1);return a[0]=e.createMorphAt(t,0,0,n),e.insertBoundary(t,0),e.insertBoundary(t,null),a},statements:[["block","modal-dialog",[],["close","close","alignment","center","translucentOverlay",!0],0,null,["loc",[null,[2,2],[9,19]]]]],locals:[],templates:[e]}}();return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:1,column:0},end:{line:10,column:7}},moduleName:"huegasm/pods/components/delete-group-modal/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createComment("");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=new Array(1);return a[0]=e.createMorphAt(t,0,0,n),e.insertBoundary(t,0),e.insertBoundary(t,null),a},statements:[["block","if",[["get","isShowingModal",["loc",[null,[1,6],[1,20]]]]],[],0,null,["loc",[null,[1,0],[10,7]]]]],locals:[],templates:[e]}}())}),define("huegasm/pods/components/groups-list/component",["exports","ember"],function(e,t){e["default"]=t["default"].Component.extend({classNames:["dropdown-menu"],elementId:"groupList",tagName:null,groupIdSelection:null,actions:{selectGroup:function(e){this.set("groupIdSelection",e)},toggleConfirmDeleteGroupsModal:function(e,t){this.setProperties({deleteGroupName:e,deleteGroupId:t}),this.toggleProperty("isShowingConfirmDeleteModal")},toggleAddGroupsModal:function(){this.toggleProperty("isShowingAddGroupsModal")}},groupsArrData:function(){var e=this.get("groupsData"),t=this.get("lightsData"),n=[],a=[],r=this.get("groupIdSelection");for(var l in t)t.hasOwnProperty(l)&&t[l].state.reachable&&a.push(l);n.push({name:"All",data:{lights:a,key:"0"},rowClass:"0"===r?"groupRow selectedRow":"groupRow",deletable:!1});for(var l in e)if(e.hasOwnProperty(l)){var o="groupRow";l===r&&(o+=" selectedRow"),n.push({name:e[l].name,data:{lights:e[l].lights,key:l},rowClass:o,deletable:!0})}return n}.property("groupsData","groupIdSelection"),onGroupIdSelectionChanged:function(){var e=this.get("groupIdSelection"),n=[];this.get("groupsArrData").some(function(t){return t.data.key===e?(n=t.data.lights,!0):void 0}),this.get("storage").set("huegasm.selectedGroup",e),t["default"].isNone(e)||t["default"].isEmpty(n)||this.set("activeLights",n)}.observes("groupIdSelection","groupsArrData"),didInsertElement:function(){var e="0",t=this.get("storage").get("huegasm.selectedGroup");t&&(e=t),this.set("groupIdSelection",e)}})}),define("huegasm/pods/components/groups-list/template",["exports"],function(e){e["default"]=Ember.HTMLBars.template(function(){var e=function(){var e=function(){return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:2,column:2},end:{line:4,column:2}},moduleName:"huegasm/pods/components/groups-list/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode(" ");e.appendChild(t,n);var n=e.createElement("div");e.setAttribute(n,"class","newGroup");var a=e.createComment("");e.appendChild(n,a);var a=e.createTextNode(" Add a new group");e.appendChild(n,a),e.appendChild(t,n);var n=e.createTextNode("\n");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=e.childAt(t,[1]),r=new Array(2);return r[0]=e.createElementMorph(a),r[1]=e.createMorphAt(a,0,0),r},statements:[["element","action",["toggleAddGroupsModal"],[],["loc",[null,[3,26],[3,59]]]],["inline","paper-icon",[],["icon","group-add"],["loc",[null,[3,60],[3,91]]]]],locals:[],templates:[]}}(),t=function(){var e=function(){var e=function(){return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:8,column:92},end:{line:8,column:346}},moduleName:"huegasm/pods/components/groups-list/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createElement("span");e.setAttribute(n,"data-toggle","tooltip"),e.setAttribute(n,"data-placement","top auto"),e.setAttribute(n,"title","Remove Group"),e.setAttribute(n,"class","bootstrapTooltip removeButton cursorPointer");var a=e.createComment("");return e.appendChild(n,a),e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=e.childAt(t,[0]),r=new Array(2);return r[0]=e.createElementMorph(a),r[1]=e.createMorphAt(a,0,0),r},statements:[["element","action",["toggleConfirmDeleteGroupsModal",["get","group.name",["loc",[null,[8,284],[8,294]]]],["get","group.data.key",["loc",[null,[8,295],[8,309]]]]],[],["loc",[null,[8,242],[8,311]]]],["inline","paper-icon",[],["icon","close"],["loc",[null,[8,312],[8,339]]]]],locals:[],templates:[]}}();return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:7,column:4},end:{line:9,column:4}},moduleName:"huegasm/pods/components/groups-list/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createTextNode(" ");e.appendChild(t,n);var n=e.createElement("div");e.setAttribute(n,"class","groupSelect");var a=e.createComment("");e.appendChild(n,a),e.appendChild(t,n);var n=e.createTextNode(" ");e.appendChild(t,n);var n=e.createComment("");e.appendChild(t,n);var n=e.createTextNode("\n");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=e.childAt(t,[1]),r=new Array(3);return r[0]=e.createElementMorph(a),r[1]=e.createMorphAt(a,0,0),r[2]=e.createMorphAt(t,3,3,n),r},statements:[["element","action",["selectGroup",["get","group.data.key",["loc",[null,[8,54],[8,68]]]]],[],["loc",[null,[8,31],[8,70]]]],["content","group.name",["loc",[null,[8,71],[8,85]]]],["block","if",[["get","group.deletable",["loc",[null,[8,98],[8,113]]]]],[],0,null,["loc",[null,[8,92],[8,353]]]]],locals:[],templates:[e]}}();return{meta:{topLevel:null,revision:"Ember@2.1.0",loc:{source:null,start:{line:6,column:2},end:{line:10,column:2}},moduleName:"huegasm/pods/components/groups-list/template.hbs"},isEmpty:!1,arity:1,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createComment("");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=new Array(1);return a[0]=e.createMorphAt(t,0,0,n),e.insertBoundary(t,0),e.insertBoundary(t,null),a},statements:[["block","paper-item",[],["class",["subexpr","@mut",[["get","group.rowClass",["loc",[null,[7,24],[7,38]]]]],[],[]]],0,null,["loc",[null,[7,4],[9,19]]]]],locals:["group"],templates:[e]}}();return{meta:{topLevel:!1,revision:"Ember@2.1.0",loc:{source:null,start:{line:1,column:0},end:{line:11,column:0}},moduleName:"huegasm/pods/components/groups-list/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createComment("");e.appendChild(t,n);var n=e.createTextNode("\n");e.appendChild(t,n);var n=e.createComment("");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=new Array(2);return a[0]=e.createMorphAt(t,0,0,n),a[1]=e.createMorphAt(t,2,2,n),e.insertBoundary(t,0),e.insertBoundary(t,null),a},statements:[["block","paper-item",[],["class","newGroupRow"],0,null,["loc",[null,[2,2],[4,17]]]],["block","each",[["get","groupsArrData",["loc",[null,[6,10],[6,23]]]]],[],1,null,["loc",[null,[6,2],[10,11]]]]],locals:[],templates:[e,t]}}();return{meta:{topLevel:!1,revision:"Ember@2.1.0",loc:{source:null,start:{line:1,column:0},end:{line:15,column:257}},moduleName:"huegasm/pods/components/groups-list/template.hbs"},isEmpty:!1,arity:0,cachedFragment:null,hasRendered:!1,buildFragment:function(e){var t=e.createDocumentFragment(),n=e.createComment("");e.appendChild(t,n);var n=e.createTextNode("\n");e.appendChild(t,n);var n=e.createComment("");e.appendChild(t,n);var n=e.createTextNode("\n\n");e.appendChild(t,n);var n=e.createComment("");return e.appendChild(t,n),t},buildRenderNodes:function(e,t,n){var a=new Array(3);return a[0]=e.createMorphAt(t,0,0,n),a[1]=e.createMorphAt(t,2,2,n),a[2]=e.createMorphAt(t,4,4,n),e.insertBoundary(t,0),e.insertBoundary(t,null),a},statements:[["block","paper-list",[],[],0,null,["loc",[null,[1,0],[11,15]]]],["inline","add-group-modal",[],["lightsData",["subexpr","@mut",[["get","lightsData",["loc",[null,[13,29],[13,39]]]]],[],[]],"groupsData",["subexpr","@mut",[["get","groupsData",["loc",[null,[13,51],[13,61]]]]],[],[]],"isShowingModal",["subexpr","@mut",[["get","isShowingAddGroupsModal",["loc",[null,[13,77],[13,100]]]]],[],[]],"apiURL",["subexpr","@mut",[["get","apiURL",["loc",[null,[13,108],[13,114]]]]],[],[]],"updateGroupsData",["subexpr","@mut",[["get","updateGroupsData",["loc",[null,[13,132],[13,148]]]]],[],[]],"action","toggleAddGroupsModal"],["loc",[null,[13,0],[13,180]]]],["inline","delete-group-modal",[],["groupName",["subexpr","@mut",[["get","deleteGroupName",["loc",[null,[15,31],[15,46]]]]],[],[]],"groupId",["subexpr","@mut",[["get","deleteGroupId",["loc",[null,[15,55],[15,68]]]]],[],[]],"groupsData",["subexpr","@mut",[["get","groupsData",["loc",[null,[15,80],[15,90]]]]],[],[]],"isShowingModal",["subexpr","@mut",[["get","isShowingConfirmDeleteModal",["loc",[null,[15,106],[15,133]]]]],[],[]],"apiURL",["subexpr","@mut",[["get","apiURL",["loc",[null,[15,141],[15,147]]]]],[],[]],"updateGroupsData",["subexpr","@mut",[["get","updateGroupsData",["loc",[null,[15,165],[15,181]]]]],[],[]],"groupIdSelection",["subexpr","@mut",[["get","groupIdSelection",["loc",[null,[15,199],[15,215]]]]],[],[]],"action","toggleConfirmDeleteGroupsModal"],["loc",[null,[15,0],[15,257]]]]],locals:[],templates:[e]}}())}),define("huegasm/pods/components/hue-controls/component",["exports","ember"],function(e,t){e["default"]=t["default"].Component.extend({classNames:["container-fluid"],elementId:"hueControls",bridgeIp:null,manualBridgeIp:null,bridgeUsername:null,updateGroupsData:!0,groupsData:null,lightsData:null,activeLights:[],actions:{changeTab:function(e){var t=this.get("tabList").indexOf(e);this.set("selectedTab",t),this.get("storage").set("huegasm.selectedTab",t)},clearBridge:function(){var e=this.get("storage");e.remove("huegasm.bridgeUsername"),e.remove("huegasm.bridgeIp"),location.reload()},clearAllSettings:function(){this.get("storage").clear(),location.reload()},startIntro:function(){var e=this,n=introJs(),a=t["default"].$("#playerBottom"),r=t["default"].$("#beatDetectionAreaArrowIcon");n.setOptions({steps:[{element:"#musicTab",intro:"This is the music tab. Here you'll be able to play music and synchronize it with your active lights.
TIP: Control which lights are active through the Lights tab or through the Groups menu dropdown."},{element:"#playlist",intro:"You can add and select music to play from your playlist here. You may listen to local audio files, stream music from soundcloud or stream directly from a connected microphone.
TIP: Songs added through soundcloud will be saved for when you visit this page again."},{element:"#usingMicAudioTooltip",intro:"This icon will trigger the mode in which the application will listen to your microphone. Note that this is a highly experimental feature that will require your authorization to be able to listen to the microphone. Also note that the beat detection will not be nearly as accurate in this mode."},{element:"#playerArea",intro:"The audio playback may be controlled with the controls here. Basic music visualization effects may be shown here by selecting them from the menu ( eyeball icon in the bottom right )."},{element:"#beatOptionRow",intro:"These are the beat detection settings: Beat Threshold - The minimum sound intensity for the beat to register Beat Interval - The minimum amount of time between each registered beat Frequency Range - The frequency range of the sound to listen on for the beat Transition Time - The time it takes for a light to change color or brightness
TIP: Beat settings are saved per song as indicated by the red star icon in the top left corner. These settings they will be restored if you ever listen to the same song again.",position:"top"},{element:"#beatOptionButtonGroup",intro:"Some additional settings: Default - Revert to the default beat detection settings Random/Sequential - The transition order of lights on beat Brightness/Brightness & Color - The properties of the lights to change on beat
TIP: Turn the colorloop 'on' in the Lights tab and set only the brightness to change on beat for a cool visual effect.",position:"top"},{element:"#beatContainer",intro:"An interactive speaker that will bump when a beat is registered. Switch over to the Debug View to see the intesity of all the registered and unregistered beats.
TIP: Click on the center of the speaker to simulate a beat.",position:"top"},{element:"#lightsTab",intro:"This is the lights tab. Here you'll be able to change various light properties: Power - Turn the selected lights on/off Brightness - The brightness level of the selected lights Color - The color of the selected lights Strobe - Selected lights will flash in sequential order Colorloop - Selected lights will slowly cycle through all the colors "},{element:"#activeLights",intro:"These icons represent the hue lights in your system. Active lights will be controlled by the application while the inactive lights will have a red X over them and will not be controlled. You may toggle a light's state by clicking on it."},{element:t["default"].$(".settingsItem")[0],intro:"The Groups menu allows for saving and quickly selecting groups of lights.",position:"left"},{element:t["default"].$(".settingsItem")[1],intro:"A few miscellaneous settings can be found here.
WARNING: clearing application settings will resto re the application to its original state. This will even delete your playlist and any saved song beat preferences.",position:"left"},{element:"#dimmerWrapper",intro:"And that's it...Feel free to reach out to me through the link at the bottom of the page. Hope you enjoy the application. ;)
TIP: Control which lights are active through the Lights tab or through the Groups menu dropdown."},{element:"#playlist",intro:"You can add and select music to play from your playlist here. You may listen to local audio files, stream music from soundcloud or stream directly from a connected microphone.
TIP: Songs added through Soundcloud will be saved for when you visit this page again."},{element:"#usingMicAudioTooltip",intro:"If you're playing music elsewhere, this icon will enable the mode which allows the application to listen to your microphone. Note that this is a highly experimental feature that will require your authorization to be able to listen to the microphone. Also note that the beat detection will not be nearly as accurate in this mode."},{element:"#playerArea",intro:"The audio playback may be controlled with the controls here. Basic music visualization effects may be shown here by selecting them from the menu ( eyeball icon in the bottom right )."},{element:"#beatOptionRow",intro:"These are the beat detection settings: Beat Threshold - The minimum sound intensity for the beat to register Beat Interval - The minimum amount of time between each registered beat Frequency Range - The frequency range of the sound to listen on for the beat Transition Time - The time it takes for a light to change color or brightness
TIP: Beat settings are saved per song as indicated by the red star icon in the top left corner. These settings they will be restored if you ever listen to the same song again.",position:"top"},{element:"#beatOptionButtonGroup",intro:"Some additional settings: Default - Revert to the default beat detection settings Random/Sequential - The transition order of lights on beat Brightness/Brightness & Color - The properties of the lights to change on beat
TIP: Turn the colorloop 'on' in the Lights tab and set only the brightness to change on beat for a cool visual effect.",position:"top"},{element:"#beatContainer",intro:"An interactive speaker that will bump when a beat is registered. Switch over to the Debug View to see the intesity of all the registered and unregistered beats.
TIP: Click on the center of the speaker to simulate a beat.",position:"top"},{element:"#lightsTab",intro:"This is the lights tab. Here you'll be able to change various light properties: Power - Turn the selected lights on/off Brightness - The brightness level of the selected lights Color - The color of the selected lights Strobe - Selected lights will flash in sequential order Colorloop - Selected lights will slowly cycle through all the colors "},{element:"#activeLights",intro:"These icons represent the hue lights in your system. Active lights will be controlled by the application while the inactive lights will have a red X over them and will not be controlled. You may toggle a light's state by clicking on it."},{element:t["default"].$(".settingsItem")[0],intro:"The Groups menu allows for saving and quickly selecting groups of lights.",position:"left"},{element:t["default"].$(".settingsItem")[1],intro:"A few miscellaneous settings can be found here.
WARNING: clearing application settings will resto re the application to its original state. This will even delete your playlist and any saved song beat preferences.",position:"left"},{element:"#dimmerWrapper",intro:"And that's it...Feel free to reach out to me through the link at the bottom of the page. Hope you enjoy the application. ;)