big update, light switch in top navigation, bug fixes, LOTS of mobie work - almost there
BIN
assets/splashscreen.psd
Normal file
|
|
@ -13,10 +13,10 @@
|
|||
|
||||
{{content-for 'head'}}
|
||||
|
||||
<link href='//fonts.googleapis.com/css?family=Slabo+27px|Open+Sans' rel='stylesheet' type='text/css'>
|
||||
<link href='https://fonts.googleapis.com/css?family=Slabo+27px|Open+Sans' rel='stylesheet' type='text/css'>
|
||||
|
||||
<link rel="stylesheet" integrity="" href="{{rootURL}}assets/vendor.css">
|
||||
<link rel="stylesheet" integrity="" href="{{rootURL}}assets/huegasm_mobile.css">
|
||||
<link rel="stylesheet" integrity="" href="assets/vendor.css">
|
||||
<link rel="stylesheet" integrity="" href="assets/huegasm_mobile.css">
|
||||
|
||||
{{content-for 'head-footer'}}
|
||||
|
||||
|
|
@ -26,7 +26,7 @@
|
|||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
ga('create', 'UA-69470561-1', 'auto');
|
||||
ga('send', 'pageview');
|
||||
|
|
@ -35,8 +35,8 @@
|
|||
<body>
|
||||
{{content-for 'body'}}
|
||||
|
||||
<script src="{{rootURL}}assets/vendor.js"></script>
|
||||
<script src="{{rootURL}}assets/huegasm_mobile.js"></script>
|
||||
<script src="assets/vendor.js"></script>
|
||||
<script src="assets/huegasm_mobile.js"></script>
|
||||
|
||||
{{content-for 'body-footer'}}
|
||||
</body>
|
||||
|
|
|
|||
5
mobile/app/pods/application/route.js
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
import Ember from 'ember';
|
||||
import SplashscreenMixin from 'ember-cordova/mixins/device/splashscreen';
|
||||
|
||||
export default Ember.Route.extend(SplashscreenMixin, {
|
||||
});
|
||||
|
|
@ -8,16 +8,15 @@
|
|||
{{else}}
|
||||
<img src="assets/images/pressButtonBridge.png" id="press-bridge-button-img">
|
||||
{{paper-progress-linear warn=true value=bridgeUserNamePingIntervalProgress}}
|
||||
|
||||
{{#if isAuthenticating}}
|
||||
<p>
|
||||
<p class="bridge-finder-bottom">
|
||||
{{#if isAuthenticating}}
|
||||
Your bridge IP is <b>{{bridgeIp}}</b>
|
||||
<br>
|
||||
Press the button on your bridge to authenticate this application.
|
||||
</p>
|
||||
{{else}}
|
||||
<p>You failed to press the button in time. <a class="no-text-decoration" href="#" {{action 'retry'}}>RETRY</a></p>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
You failed to press the button in time. <a class="no-text-decoration" href="#" {{action 'retry'}}>RETRY</a>
|
||||
{{/if}}
|
||||
</p>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
{{#unless bridgeFindStatus}}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ export default Component.extend({
|
|||
lightsData: null,
|
||||
activeLights: A(),
|
||||
tabList: ["Lights", "Music"],
|
||||
selectedTab: 1,
|
||||
selectedTab: 0,
|
||||
pauseLightUpdates: false,
|
||||
|
||||
lightsTabSelected: computed.equal('selectedTab', 0),
|
||||
|
|
@ -176,32 +176,24 @@ export default Component.extend({
|
|||
'You may toggle a light\'s state by clicking on it.'
|
||||
},
|
||||
{
|
||||
element: '#settings',
|
||||
element: $('#navigation .ember-basic-dropdown-trigger')[0],
|
||||
intro: 'A few miscellaneous settings can be found here.<br><br>' +
|
||||
'<b>WARNING</b>: clearing application settings will restore the application to its original state. This will even delete your playlist and any saved song beat preferences.',
|
||||
position: 'bottom'
|
||||
position: 'left'
|
||||
},
|
||||
{
|
||||
element: '#dimmer',
|
||||
intro: 'And that\'s it...Hope you enjoy the application. ;)<br><br>' +
|
||||
'<i><b>TIP</b>: click on the icon to switch to a darker theme.</i>',
|
||||
position: 'bottom'
|
||||
'<i><b>TIP</b>: click on the lightswitch to switch to a darker theme.</i>',
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
// it's VERY ugly but it works... the jQuery massacre :'(
|
||||
intro.onchange((element) => {
|
||||
if(element.id === 'music-tab' || element.id === 'playlist' || element.id === 'player-area' || element.id === 'beat-option-row' || element.id === 'beat-option-button-group' || element.id === 'beat-container'){
|
||||
$('#music-tab').removeClass('hidden');
|
||||
$('#lights-tab').addClass('hidden');
|
||||
$('.navigation-item').eq(0).removeClass('active');
|
||||
$('.navigation-item').eq(1).addClass('active');
|
||||
if(element.id === 'music-tab' || element.id === 'playlist' || element.id === 'player-area' || element.id === 'beat-option-row' || element.id === 'beat-option-button-group' || element.id === 'beat-container' || element.id === 'using-mic-audio-tooltip'){
|
||||
$('.navigation-item').eq(1).click();
|
||||
} else {
|
||||
$('#lights-tab').removeClass('hidden');
|
||||
$('#music-tab').addClass('hidden');
|
||||
$('.navigation-item').eq(1).removeClass('active');
|
||||
$('.navigation-item').eq(0).addClass('active');
|
||||
$('.navigation-item').eq(0).click();
|
||||
}
|
||||
|
||||
if(element.id === 'music-tab' || element.id === 'playlist' || element.id === 'player-area'){
|
||||
|
|
@ -221,27 +213,6 @@ export default Component.extend({
|
|||
}
|
||||
});
|
||||
|
||||
let onFinish = ()=>{
|
||||
this.set('activeTab', 1);
|
||||
$('#music-tab').removeClass('hidden');
|
||||
$('#lights-tab').addClass('hidden');
|
||||
$('.navigation-item').eq(0).removeClass('active');
|
||||
$('.navigation-item').eq(1).addClass('active');
|
||||
}, onExit = ()=>{
|
||||
let dimmer = $('#dimmer');
|
||||
|
||||
onFinish();
|
||||
dimmer.popover({
|
||||
trigger: 'manual',
|
||||
placement: 'right',
|
||||
content: 'Click on this icon to toggle the dark theme.'
|
||||
}).popover('show');
|
||||
|
||||
setTimeout(()=>{
|
||||
dimmer.popover('hide');
|
||||
}, 5000);
|
||||
};
|
||||
|
||||
// skip hidden/missing elements
|
||||
intro.onafterchange((element)=>{
|
||||
let elem = $(element);
|
||||
|
|
@ -252,7 +223,7 @@ export default Component.extend({
|
|||
run.later(this, function() {
|
||||
$('.introjs-tooltip').velocity('scroll');
|
||||
}, 500);
|
||||
}).onexit(onExit).oncomplete(onFinish).start();
|
||||
}).start();
|
||||
},
|
||||
toggleDimmer(){
|
||||
this.toggleProperty('dimmerOn');
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
{{#if ready}}
|
||||
<div id="navigation">
|
||||
<div id="dimmer" {{action "toggleDimmer"}} class={{dimmerOnClass}}></div>
|
||||
<div id="dimmer" class={{dimmerOnClass}} {{action "toggleDimmer"}}>
|
||||
<div id="dimmer-switch"></div>
|
||||
</div>
|
||||
|
||||
{{#each tabData as |tab|}}
|
||||
<span class="navigation-item text-uppercase {{if tab.selected "active"}}" {{action "changeTab" tab.name}}>{{tab.name}}</span>
|
||||
|
|
@ -9,7 +11,7 @@
|
|||
{{#paper-menu as |menu|}}
|
||||
{{#menu.trigger}}
|
||||
{{#paper-button iconButton=true}}
|
||||
{{paper-icon "settings-icon" class=dimmerOnClass size=28}}
|
||||
{{paper-icon "settings-icon" class=dimmerOnClass size=28}}
|
||||
{{/paper-button}}
|
||||
{{/menu.trigger}}
|
||||
{{#menu.content width=3 as |content|}}
|
||||
|
|
@ -26,11 +28,11 @@
|
|||
{{/content.menu-item}}
|
||||
{{/menu.content}}
|
||||
{{/paper-menu}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{light-group lightsData=lightsData activeLights=activeLights syncLight=syncLight apiURL=apiURL dimmerOn=dimmerOn storage=storage}}
|
||||
|
||||
{{lights-tab apiURL=apiURL lightsData=lightsData activeLights=activeLights syncLight=syncLight trial=trial active=lightsTabSelected colorLoopOn=colorLoopOn dimmerOn=dimmerOn}}
|
||||
{{lights-tab apiURL=apiURL lightsData=lightsData activeLights=activeLights syncLight=syncLight trial=trial active=lightsTabSelected colorLoopOn=colorLoopOn dimmerOn=dimmerOn strobeOn=pauseLightUpdates}}
|
||||
|
||||
{{music-tab apiURL=apiURL lightsData=lightsData activeLights=activeLights active=musicTabSelected pauseLightUpdates=pauseLightUpdates dimmerOn=dimmerOn storage=storage colorLoopOn=colorLoopOn action="startIntro"}}
|
||||
{{/if}}
|
||||
|
|
@ -17,7 +17,6 @@ export default Component.extend({
|
|||
|
||||
lightsOn: false,
|
||||
|
||||
// COLOR LOOP related stuff
|
||||
colorLoopOn: false,
|
||||
|
||||
lightsOnTxt: computed('lightsOn', function(){
|
||||
|
|
@ -192,7 +191,7 @@ export default Component.extend({
|
|||
}
|
||||
}
|
||||
|
||||
this.set('strobeOnInervalHandle', setInterval(this.strobeStep.bind(this), 200));
|
||||
this.set('strobeOnInervalHandle', setInterval(this.strobeStep.bind(this), 500));
|
||||
} else { // revert the light system to pre-strobe
|
||||
let preStrobeOnLightsDataCache = this.get('preStrobeOnLightsDataCache'), updateLight = (lightIndex)=> {
|
||||
$.ajax(this.get('apiURL') + '/lights/' + lightIndex + '/state', {
|
||||
|
|
|
|||
|
|
@ -1,15 +1,14 @@
|
|||
{{#if isShowingModal}}
|
||||
{{#modal-dialog close="close" alignment="center" translucentOverlay=true attachment="center" targetAttachment="center"}}
|
||||
|
||||
<p>Enter a <a href="https://soundcloud.com" target="_blank" rel="noopener noreferrer">SoundCloud</a> track or playlist/set URL</p>
|
||||
<p>Enter a <a href="https://soundcloud.com" onclick="window.open('https://soundcloud.com', '_system');">SoundCloud</a> track or playlist/set URL</p>
|
||||
<p>( ex. https://soundcloud.com/mrsuicidesheep/tracks )</p>
|
||||
|
||||
{{paper-input label="SoundCloud URL" icon="search" value=url onChange=(action (mut url))}}
|
||||
|
||||
<div>
|
||||
{{paper-button onClick=(action "close") label="Close"}}
|
||||
{{paper-button onClick=(action "close") label="Close"}}
|
||||
{{paper-button class="pull-right" onClick=(action "add") disabled=saveDisabled primary=true label="Add Music"}}
|
||||
</div>
|
||||
|
||||
{{/modal-dialog}}
|
||||
{{/if}}
|
||||
|
|
@ -331,7 +331,7 @@ export default Component.extend(helperMixin, visualizerMixin, {
|
|||
this.set('usingMicSupported', false);
|
||||
}
|
||||
|
||||
['volume', 'shuffle', 'repeat', 'volumeMuted', 'threshold', 'playerBottomDisplayed', 'audioMode', 'songBeatPreferences', 'firstVisit', 'currentVisName', 'playQueue', 'playQueuePointer', 'micBoost', 'flashingTransitions', 'colorloopMode', 'ambienceMode', 'hueRange'].forEach((item)=>{
|
||||
['volume', 'shuffle', 'repeat', 'threshold', 'playerBottomDisplayed', 'audioMode', 'songBeatPreferences', 'firstVisit', 'currentVisName', 'playQueue', 'playQueuePointer', 'micBoost', 'flashingTransitions', 'colorloopMode', 'ambienceMode', 'hueRange'].forEach((item)=>{
|
||||
if (!isNone(storage.get('huegasm.' + item))) {
|
||||
let itemVal = storage.get('huegasm.' + item);
|
||||
|
||||
|
|
@ -399,9 +399,6 @@ export default Component.extend(helperMixin, visualizerMixin, {
|
|||
},
|
||||
|
||||
actions: {
|
||||
clearPlaylist(){
|
||||
this.get('playQueue').clear();
|
||||
},
|
||||
setVisName(name){
|
||||
this.set('currentVisName', name);
|
||||
},
|
||||
|
|
@ -618,12 +615,6 @@ export default Component.extend(helperMixin, visualizerMixin, {
|
|||
} else {
|
||||
let timeTotal = this.get('timeTotal');
|
||||
|
||||
if(this.get('volumeMuted')) {
|
||||
dancer.setVolume(0);
|
||||
} else {
|
||||
dancer.setVolume(this.get('volume')/100);
|
||||
}
|
||||
|
||||
// replay song
|
||||
if(this.get('timeElapsed') === timeTotal && timeTotal !== 0){
|
||||
this.send('next', true);
|
||||
|
|
@ -644,10 +635,6 @@ export default Component.extend(helperMixin, visualizerMixin, {
|
|||
if(this.get('playing')) {
|
||||
this.get('dancer').setVolume(value/100);
|
||||
}
|
||||
|
||||
if(this.get('volume') > 0 && this.get('volumeMuted')){
|
||||
this.changePlayerControl('volumeMuted', false);
|
||||
}
|
||||
},
|
||||
next(repeatAll) {
|
||||
let playQueuePointer = this.get('playQueuePointer'),
|
||||
|
|
@ -736,20 +723,6 @@ export default Component.extend(helperMixin, visualizerMixin, {
|
|||
dancer.audio.currentTime = Math.floor(this.get('timeTotal') * position / 100);
|
||||
}
|
||||
},
|
||||
volumeMutedChanged(value) {
|
||||
let dancer = this.get('dancer'),
|
||||
volumeMuted = isNone(value) ? !this.get('volumeMuted') : value;
|
||||
|
||||
this.changePlayerControl('volumeMuted', volumeMuted);
|
||||
|
||||
if(this.get('playing')){
|
||||
if(volumeMuted){
|
||||
dancer.setVolume(0);
|
||||
} else {
|
||||
dancer.setVolume(this.get('volume')/100);
|
||||
}
|
||||
}
|
||||
},
|
||||
addLocalAudio: function () {
|
||||
$('#file-input').click();
|
||||
},
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ const {
|
|||
computed,
|
||||
isNone,
|
||||
inject,
|
||||
on,
|
||||
A
|
||||
} = Ember;
|
||||
|
||||
|
|
@ -117,7 +116,6 @@ export default Mixin.create({
|
|||
// 0 - no repeat, 1 - repeat all, 2 - repeat one
|
||||
repeat: 0,
|
||||
shuffle: false,
|
||||
volumeMuted: false,
|
||||
volume: 100,
|
||||
// beat detection related pausing
|
||||
paused: false,
|
||||
|
|
@ -267,16 +265,6 @@ export default Mixin.create({
|
|||
return this.get('dimmerOn') ? 'dimmerOn' : null;
|
||||
}),
|
||||
|
||||
volumeMutedClass: computed('volumeMuted', function(){
|
||||
let classes = 'player-control-icon volumeButton';
|
||||
|
||||
if(this.get('volumeMuted')){
|
||||
classes += ' active';
|
||||
}
|
||||
|
||||
return classes;
|
||||
}),
|
||||
|
||||
usingLocalAudioClass: computed('usingLocalAudio', function(){
|
||||
return this.get('usingLocalAudio') ? 'player-control-icon active' : 'player-control-icon';
|
||||
}),
|
||||
|
|
@ -293,20 +281,6 @@ export default Mixin.create({
|
|||
return this.get('shuffle') ? 'player-control-icon active' : 'player-control-icon';
|
||||
}),
|
||||
|
||||
volumeIcon: computed('volumeMuted', 'volume', function() {
|
||||
let volume = this.get('volume');
|
||||
|
||||
if (this.get('volumeMuted')) {
|
||||
return "volume-off";
|
||||
} else if (volume >= 70) {
|
||||
return "volume-up";
|
||||
} else if (volume > 10) {
|
||||
return "volume-down";
|
||||
} else {
|
||||
return 'volume-mute';
|
||||
}
|
||||
}),
|
||||
|
||||
beatDetectionAreaArrowIcon: computed('playerBottomDisplayed', function(){
|
||||
if(!this.get('playerBottomDisplayed')){
|
||||
return 'keyboard-arrow-down';
|
||||
|
|
@ -334,22 +308,6 @@ export default Mixin.create({
|
|||
this.get('storage').set('huegasm.' + option, this.get(option));
|
||||
}),
|
||||
|
||||
onVolumeMutedChange: on('init', observer('volumeMuted', function() {
|
||||
let volumeMuted = this.get('volumeMuted'),
|
||||
dancer = this.get('dancer'),
|
||||
volume=0;
|
||||
|
||||
if (volumeMuted) {
|
||||
volume = 0;
|
||||
} else {
|
||||
volume = this.get('volume')/100;
|
||||
}
|
||||
|
||||
if(this.get('playing')){
|
||||
dancer.setVolume(volume);
|
||||
}
|
||||
})),
|
||||
|
||||
formatTime(time){
|
||||
return this.pad(Math.floor(time/60), 2) + ':' + this.pad(time%60, 2);
|
||||
},
|
||||
|
|
|
|||
|
|
@ -18,9 +18,7 @@
|
|||
--><span {{action "play"}}>{{paper-icon playingIcon class="player-control-icon"}}</span><!--
|
||||
-->{{#if playQueueMultiple}}<!--
|
||||
--><span {{action "next" true}}>{{paper-icon "skip-next" action="" class="player-control-icon"}}</span><!--
|
||||
-->{{/if}}<!--
|
||||
--><span {{action "volumeMutedChanged"}}>{{paper-icon icon=volumeIcon class=volumeMutedClass}}</span><!--
|
||||
-->{{range-slider start=volume min=0 max=100 connect=filledConnect on-slide="volumeChanged" id="volume-bar" class="hidden-xs"}}
|
||||
-->{{/if}}
|
||||
|
||||
<div id="player-time-controls">{{timeElapsedTxt}} / {{timeTotalTxt}}</div>
|
||||
{{/if}}
|
||||
|
|
@ -82,7 +80,6 @@
|
|||
{{#if usingLocalAudio}}
|
||||
<span {{action "shuffleChanged"}}>{{paper-icon "shuffle" class=shuffleClass}}</span>
|
||||
<span {{action "repeatChanged"}}>{{paper-icon repeatIcon class=repeatClass}}</span>
|
||||
<span {{action "clearPlaylist"}}>{{paper-icon "clear-all" class="player-control-icon"}}</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
|
|
@ -147,14 +144,6 @@
|
|||
{{/if}}
|
||||
|
||||
<div class="row" id="beat-option-row">
|
||||
<div class="beat-option col-xs-6">
|
||||
<span class="option-description">
|
||||
Sensitivity
|
||||
</span>
|
||||
|
||||
{{range-slider start=threshold orientation="vertical" step=beatOptions.threshold.step range=beatOptions.threshold.range on-slide="thresholdChanged" pips=beatOptions.threshold.pips}}
|
||||
</div>
|
||||
|
||||
<div class="beat-option col-xs-6">
|
||||
<span class="option-description">
|
||||
Hue Range
|
||||
|
|
@ -163,6 +152,14 @@
|
|||
{{range-slider start=hueRange orientation="vertical" step=beatOptions.hueRange.step range=beatOptions.hueRange.range connect=hueRangeConnect on-slide="hueRangeChanged" pips=beatOptions.hueRange.pips}}
|
||||
</div>
|
||||
|
||||
<div class="beat-option col-xs-6">
|
||||
<span class="option-description">
|
||||
Sensitivity
|
||||
</span>
|
||||
|
||||
{{range-slider start=threshold orientation="vertical" step=beatOptions.threshold.step range=beatOptions.threshold.range on-slide="thresholdChanged" pips=beatOptions.threshold.pips}}
|
||||
</div>
|
||||
|
||||
{{#if usingMicAudio}}
|
||||
<div class="beat-option col-xs-4">
|
||||
<span class="option-description">
|
||||
|
|
|
|||
|
|
@ -53,32 +53,8 @@ div.ember-modal-dialog {
|
|||
}
|
||||
|
||||
.title {
|
||||
margin-bottom: 30px;
|
||||
margin-bottom: 50px;
|
||||
img {
|
||||
width: 200px;
|
||||
}
|
||||
}
|
||||
|
||||
// fancy webkit scrollbars
|
||||
::-webkit-scrollbar {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar:vertical {
|
||||
width: 12px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar:horizontal {
|
||||
height: 12px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background-color: rgba(0, 0, 0, .5);
|
||||
border-radius: 10px;
|
||||
border: 2px solid #ffffff;
|
||||
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.5);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,10 +17,16 @@
|
|||
|
||||
#bridge-finder {
|
||||
text-align: center;
|
||||
padding: 10px 15px 0;
|
||||
padding: 20px 15px 0;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#bridge-finder .md-bar {
|
||||
background-color: $secondaryThemeColor !important;
|
||||
}
|
||||
|
||||
.bridge-finder-bottom {
|
||||
margin-top: 30px;
|
||||
width: 100%;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,15 +59,26 @@ body.dimmerOn {
|
|||
}
|
||||
|
||||
.paper-icon.dimmerOn {
|
||||
color: inherit !important;
|
||||
text-shadow: $glowingText;
|
||||
opacity: 0.9 !important;
|
||||
}
|
||||
|
||||
#dimmer {
|
||||
background: url(images/lightswitch.png) !important;
|
||||
width: 14px;
|
||||
height: 34px;
|
||||
display: inline-block;
|
||||
float: left;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
background: url(images/huegasm.png) center center no-repeat !important;
|
||||
background-size: 30px 30px !important;
|
||||
margin-left: 15px;
|
||||
&.dimmerOn #dimmer-switch {
|
||||
opacity: 0;
|
||||
}
|
||||
#dimmer-switch {
|
||||
background: url(images/lightswitch.png) -14px 0px;
|
||||
width: 14px;
|
||||
height: 34px;
|
||||
transition: opacity 0.4s;
|
||||
float: left;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
#lights-tab {
|
||||
margin-top: 4vh;
|
||||
padding: 0;
|
||||
.paper-icon {
|
||||
line-height: 0.8 !important;
|
||||
}
|
||||
|
|
@ -19,12 +21,12 @@
|
|||
}
|
||||
|
||||
#navigation {
|
||||
padding: 15px 0;
|
||||
padding: 15px 0 20px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.navigation-item {
|
||||
font-size: 18px;
|
||||
font-size: 20px;
|
||||
padding: 0 10px 0 10px;
|
||||
&.active {
|
||||
font-weight: bold;
|
||||
|
|
@ -64,7 +66,7 @@
|
|||
position: absolute;
|
||||
left: 33px;
|
||||
top: 15px;
|
||||
font-size: 16px;
|
||||
font-size: 16px !important;
|
||||
}
|
||||
|
||||
#navigation .ember-basic-dropdown-trigger {
|
||||
|
|
@ -72,4 +74,6 @@
|
|||
text-align: right;
|
||||
float: right;
|
||||
position: relative;
|
||||
bottom: 10px;
|
||||
transform: scale(1.1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
left: 5px;
|
||||
font-size: 40px;
|
||||
color: rgba(255, 0, 0, 0.37);
|
||||
font-family: cursive;
|
||||
font-family: Tahoma, Geneva, sans-serif;
|
||||
}
|
||||
|
||||
.horizontal-light-group {
|
||||
|
|
|
|||
|
|
@ -305,7 +305,7 @@
|
|||
position: absolute;
|
||||
top: 3px;
|
||||
z-index: 1000;
|
||||
right: 5px;
|
||||
left: 5px;
|
||||
md-icon {
|
||||
color: $secondaryThemeColor !important;
|
||||
font-size: 25px;
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ md-checkbox.md-default-theme.md-checked .md-icon {
|
|||
|
||||
md-checkbox .md-label {
|
||||
width: 125px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.md-button {
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ module.exports = function(environment) {
|
|||
};
|
||||
|
||||
if (environment === 'development') {
|
||||
ENV.ignoreFailures = true;
|
||||
// ENV.ignoreFailures = true;
|
||||
// ENV.APP.LOG_RESOLVER = true;
|
||||
// ENV.APP.LOG_ACTIVE_GENERATION = true;
|
||||
// ENV.APP.LOG_TRANSITIONS = true;
|
||||
|
|
|
|||
|
|
@ -1,13 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<widget id="com.nidratech.huegasm" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
|
||||
<name>huegasm_mobile</name>
|
||||
<name>Huegasm</name>
|
||||
<description>
|
||||
A sample Apache Cordova application that responds to the deviceready event.
|
||||
</description>
|
||||
<author email="dev@cordova.apache.org" href="http://cordova.io">
|
||||
Apache Cordova Team
|
||||
</author>
|
||||
Huegasm is a free web application for managing and synchronizing your Philips Hue lights with the beat of your music.
|
||||
</description>
|
||||
<author email="philippovegor@gmail.com" href="http://www.egorphilippov.me/">
|
||||
Egor Philippov
|
||||
</author>
|
||||
<content src="index.html"/>
|
||||
<allow-navigation href="*"/>
|
||||
<plugin name="cordova-plugin-whitelist" spec="1"/>
|
||||
<plugin name="cordova-plugin-crosswalk-webview" spec="~2.1.0">
|
||||
<variable name="XWALK_VERSION" value="21+"/>
|
||||
|
|
@ -17,6 +18,7 @@
|
|||
<variable name="XWALK_MULTIPLEAPK" value="true"/>
|
||||
</plugin>
|
||||
<plugin name="cordova-plugin-splashscreen" spec="~4.0.0"/>
|
||||
<plugin name="ionic-plugin-keyboard" spec="~2.2.1"/>
|
||||
<access origin="*"/>
|
||||
<allow-intent href="http://*/*"/>
|
||||
<allow-intent href="https://*/*"/>
|
||||
|
|
@ -24,36 +26,6 @@
|
|||
<allow-intent href="sms:*"/>
|
||||
<allow-intent href="mailto:*"/>
|
||||
<allow-intent href="geo:*"/>
|
||||
<platform name="ios">
|
||||
<allow-intent href="itms:*"/>
|
||||
<allow-intent href="itms-apps:*"/>
|
||||
<icon src="res/icon/ios/icon-40.png" height="40" width="40"/>
|
||||
<icon src="res/icon/ios/icon.png" height="57" width="57"/>
|
||||
<icon src="res/icon/ios/icon-40@2x.png" height="80" width="80"/>
|
||||
<icon src="res/icon/ios/icon-40@3x.png" height="120" width="120"/>
|
||||
<icon src="res/icon/ios/icon-60.png" height="60" width="60"/>
|
||||
<icon src="res/icon/ios/icon-60@2x.png" height="120" width="120"/>
|
||||
<icon src="res/icon/ios/icon-60@3x.png" height="180" width="180"/>
|
||||
<icon src="res/icon/ios/icon@2x.png" height="114" width="114"/>
|
||||
<icon src="res/icon/ios/icon-small.png" height="29" width="29"/>
|
||||
<icon src="res/icon/ios/icon-small@2x.png" height="58" width="58"/>
|
||||
<icon src="res/icon/ios/icon-small@3x.png" height="87" width="87"/>
|
||||
<icon src="res/icon/ios/icon-76@2x.png" height="152" width="152"/>
|
||||
<icon src="res/icon/ios/icon-76.png" height="76" width="76"/>
|
||||
<icon src="res/icon/ios/icon-72.png" height="72" width="72"/>
|
||||
<icon src="res/icon/ios/icon-72@2x.png" height="144" width="144"/>
|
||||
<icon src="res/icon/ios/icon-50.png" height="50" width="50"/>
|
||||
<icon src="res/icon/ios/icon-50@2x.png" height="100" width="100"/>
|
||||
</platform>
|
||||
<platform name="android">
|
||||
<allow-intent href="market:*"/>
|
||||
<icon src="res/icon/android/ldpi.png" density="ldpi"/>
|
||||
<icon src="res/icon/android/mdpi.png" density="mdpi"/>
|
||||
<icon src="res/icon/android/hdpi.png" density="hdpi"/>
|
||||
<icon src="res/icon/android/xhdpi.png" density="xhdpi"/>
|
||||
<icon src="res/icon/android/xxhdpi.png" density="xxhdpi"/>
|
||||
<icon src="res/icon/android/xxxhdpi.png" density="xxxhdpi"/>
|
||||
</platform>
|
||||
<platform name="windows">
|
||||
<icon src="res/icon/windows/StoreLogo.png" target="StoreLogo"/>
|
||||
<icon src="res/icon/windows/smalllogo.png" target="Square30x30Logo"/>
|
||||
|
|
@ -67,5 +39,62 @@
|
|||
<icon src="res/icon/blackberry/icon-86.png"/>
|
||||
<icon src="res/icon/blackberry/icon-150.png"/>
|
||||
</platform>
|
||||
<platform name="ios">
|
||||
<allow-intent href="itms:*"/>
|
||||
<allow-intent href="itms-apps:*"/>
|
||||
<icon height="40" src="res/icon/ios/icon-40.png" width="40"/>
|
||||
<icon height="57" src="res/icon/ios/icon.png" width="57"/>
|
||||
<icon height="80" src="res/icon/ios/icon-40@2x.png" width="80"/>
|
||||
<icon height="120" src="res/icon/ios/icon-40@3x.png" width="120"/>
|
||||
<icon height="60" src="res/icon/ios/icon-60.png" width="60"/>
|
||||
<icon height="120" src="res/icon/ios/icon-60@2x.png" width="120"/>
|
||||
<icon height="180" src="res/icon/ios/icon-60@3x.png" width="180"/>
|
||||
<icon height="114" src="res/icon/ios/icon@2x.png" width="114"/>
|
||||
<icon height="29" src="res/icon/ios/icon-small.png" width="29"/>
|
||||
<icon height="58" src="res/icon/ios/icon-small@2x.png" width="58"/>
|
||||
<icon height="87" src="res/icon/ios/icon-small@3x.png" width="87"/>
|
||||
<icon height="152" src="res/icon/ios/icon-76@2x.png" width="152"/>
|
||||
<icon height="76" src="res/icon/ios/icon-76.png" width="76"/>
|
||||
<icon height="72" src="res/icon/ios/icon-72.png" width="72"/>
|
||||
<icon height="144" src="res/icon/ios/icon-72@2x.png" width="144"/>
|
||||
<icon height="50" src="res/icon/ios/icon-50.png" width="50"/>
|
||||
<icon height="100" src="res/icon/ios/icon-50@2x.png" width="100"/>
|
||||
<splash src="res/screen/ios/640-960.png" width="640" height="960"/>
|
||||
<splash src="res/screen/ios/960-640.png" width="960" height="640"/>
|
||||
<splash src="res/screen/ios/640-1136.png" width="640" height="1136"/>
|
||||
<splash src="res/screen/ios/1136-640.png" width="1136" height="640"/>
|
||||
<splash src="res/screen/ios/750-1334.png" width="750" height="1334"/>
|
||||
<splash src="res/screen/ios/1334-750.png" width="1334" height="750"/>
|
||||
<splash src="res/screen/ios/1242-2208.png" width="1242" height="2208"/>
|
||||
<splash src="res/screen/ios/2208-1242.png" width="2208" height="1242"/>
|
||||
<splash src="res/screen/ios/768-1024.png" width="768" height="1024"/>
|
||||
<splash src="res/screen/ios/1024-768.png" width="1024" height="768"/>
|
||||
<splash src="res/screen/ios/1536-2048.png" width="1536" height="2048"/>
|
||||
<splash src="res/screen/ios/2048-1536.png" width="2048" height="1536"/>
|
||||
<splash src="res/screen/ios/2048-2732.png" width="2048" height="2732"/>
|
||||
<splash src="res/screen/ios/2732-2048.png" width="2732" height="2048"/>
|
||||
</platform>
|
||||
<platform name="android">
|
||||
<allow-intent href="market:*"/>
|
||||
<icon density="ldpi" src="res/icon/android/ldpi.png"/>
|
||||
<icon density="mdpi" src="res/icon/android/mdpi.png"/>
|
||||
<icon density="hdpi" src="res/icon/android/hdpi.png"/>
|
||||
<icon density="xhdpi" src="res/icon/android/xhdpi.png"/>
|
||||
<icon density="xxhdpi" src="res/icon/android/xxhdpi.png"/>
|
||||
<icon density="xxxhdpi" src="res/icon/android/xxxhdpi.png"/>
|
||||
<splash src="res/screen/android/port-ldpi.png" density="port-ldpi"/>
|
||||
<splash src="res/screen/android/land-ldpi.png" density="land-ldpi"/>
|
||||
<splash src="res/screen/android/port-mdpi.png" density="port-mdpi"/>
|
||||
<splash src="res/screen/android/land-mdpi.png" density="land-mdpi"/>
|
||||
<splash src="res/screen/android/port-hdpi.png" density="port-hdpi"/>
|
||||
<splash src="res/screen/android/land-hdpi.png" density="land-hdpi"/>
|
||||
<splash src="res/screen/android/port-xhdpi.png" density="port-xhdpi"/>
|
||||
<splash src="res/screen/android/land-xhdpi.png" density="land-xhdpi"/>
|
||||
<splash src="res/screen/android/port-xxhdpi.png" density="port-xxhdpi"/>
|
||||
<splash src="res/screen/android/land-xxhdpi.png" density="land-xxhdpi"/>
|
||||
<splash src="res/screen/android/port-xxxhdpi.png" density="port-xxxhdpi"/>
|
||||
<splash src="res/screen/android/land-xxxhdpi.png" density="land-xxxhdpi"/>
|
||||
</platform>
|
||||
<engine name="android" spec="~5.2.2"/>
|
||||
<preference name="ShowSplashScreenSpinner" value="false"/>
|
||||
</widget>
|
||||
|
|
|
|||
BIN
mobile/ember-cordova/cordova/res/screen/android/land-hdpi.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
mobile/ember-cordova/cordova/res/screen/android/land-ldpi.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
mobile/ember-cordova/cordova/res/screen/android/land-mdpi.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
mobile/ember-cordova/cordova/res/screen/android/land-xhdpi.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
mobile/ember-cordova/cordova/res/screen/android/land-xxhdpi.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
mobile/ember-cordova/cordova/res/screen/android/land-xxxhdpi.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
mobile/ember-cordova/cordova/res/screen/android/port-hdpi.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
mobile/ember-cordova/cordova/res/screen/android/port-ldpi.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
mobile/ember-cordova/cordova/res/screen/android/port-mdpi.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
mobile/ember-cordova/cordova/res/screen/android/port-xhdpi.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
mobile/ember-cordova/cordova/res/screen/android/port-xxhdpi.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
mobile/ember-cordova/cordova/res/screen/android/port-xxxhdpi.png
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
mobile/ember-cordova/cordova/res/screen/ios/1024-768.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
mobile/ember-cordova/cordova/res/screen/ios/1136-640.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
mobile/ember-cordova/cordova/res/screen/ios/1242-2208.png
Normal file
|
After Width: | Height: | Size: 61 KiB |
BIN
mobile/ember-cordova/cordova/res/screen/ios/1334-750.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
mobile/ember-cordova/cordova/res/screen/ios/1536-2048.png
Normal file
|
After Width: | Height: | Size: 61 KiB |
BIN
mobile/ember-cordova/cordova/res/screen/ios/2048-1536.png
Normal file
|
After Width: | Height: | Size: 62 KiB |
BIN
mobile/ember-cordova/cordova/res/screen/ios/2048-2732.png
Normal file
|
After Width: | Height: | Size: 87 KiB |
BIN
mobile/ember-cordova/cordova/res/screen/ios/2208-1242.png
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
mobile/ember-cordova/cordova/res/screen/ios/2732-2048.png
Normal file
|
After Width: | Height: | Size: 89 KiB |
BIN
mobile/ember-cordova/cordova/res/screen/ios/640-1136.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
mobile/ember-cordova/cordova/res/screen/ios/640-960.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
mobile/ember-cordova/cordova/res/screen/ios/750-1334.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
mobile/ember-cordova/cordova/res/screen/ios/768-1024.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
mobile/ember-cordova/cordova/res/screen/ios/960-640.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
228
mobile/ember-cordova/splash.svg
Normal file
|
|
@ -0,0 +1,228 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 17.9 612 759.1" style="enable-background:new 0 17.9 612 759.1;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:url(#SVGID_1_);}
|
||||
.st1{fill:#020202;}
|
||||
</style>
|
||||
<g>
|
||||
|
||||
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="203.6162" y1="340.0756" x2="419.5191" y2="340.0756" gradientTransform="matrix(1 0 0 1 0 5.8553)">
|
||||
<stop offset="0" style="stop-color:#EB2227"/>
|
||||
<stop offset="0.5" style="stop-color:#FCEE21"/>
|
||||
<stop offset="1" style="stop-color:#29ABE2"/>
|
||||
</linearGradient>
|
||||
<path class="st0" d="M410.2,247.2c-3-5.9-6.8-10.9-12.3-14.8c-2.4-1.7-4.9-3.1-7.8-4c-0.1-0.1-0.1-0.1-0.2-0.1
|
||||
c-0.4-0.1-0.6-0.2-1-0.3c-0.1-0.1-0.2-0.1-0.4-0.1c-1-0.3-1.9-0.6-2.9-0.9c-1.1-0.3-2.3-0.6-3.5-0.9c-0.1-0.1-0.2-0.1-0.3-0.1
|
||||
c-0.1,0-0.3,0-0.4-0.1c-0.1,0-0.1-0.1-0.1-0.1c-0.1,0-0.4,0-0.5-0.1c-0.1,0-0.1-0.1-0.2-0.1c-0.1,0-0.3,0-0.5-0.1
|
||||
c0,0-0.1,0-0.1-0.1c-0.2,0-0.4-0.1-0.6-0.1c-0.1,0-0.2-0.1-0.3-0.1c-0.1,0-0.3,0-0.4,0c-0.1-0.1-0.1-0.1-0.3-0.1
|
||||
c-1.6-0.3-3.2-0.6-4.9-0.8c-1.4-0.2-2.8-0.4-4.2-0.6c-1.3-0.2-2.7-0.4-4-0.6c-1.2-0.1-2.3-0.3-3.5-0.4c-0.1,0-0.1,0-0.2-0.1
|
||||
c-0.1,0-0.1-0.1-0.2-0.1c-0.6-0.1-1.3-0.1-2-0.2c-0.1,0-0.3-0.1-0.4-0.1c-0.3,0-0.6,0-0.8-0.1c-0.1,0-0.3-0.1-0.4-0.1
|
||||
c-0.3,0-0.5,0-0.8,0c-0.1,0-0.3-0.1-0.4-0.1c-0.4,0-0.7-0.1-1.1-0.1c-0.1,0-0.1,0-0.2-0.1c-0.2,0-0.4,0-0.6,0
|
||||
c-1.1-0.1-2.2-0.1-3.2-0.3c-0.2,0-0.5-0.1-0.7-0.1c-0.1,0-0.3,0-0.4-0.1c-0.5,0-1-0.1-1.5-0.1c-0.2,0-0.4,0-0.6-0.1
|
||||
c-1.1-0.1-2-0.1-3.1-0.1c-0.8-0.1-1.6-0.1-2.5-0.1c-0.3-0.1-0.6-0.1-0.9-0.1c-1.2-0.1-2.3-0.1-3.5-0.1c-0.8-0.1-1.8-0.1-2.6-0.1
|
||||
c-0.4-0.1-0.8-0.1-1.2-0.1c-2.2-0.1-4.3-0.2-6.5-0.3c-0.4-0.1-0.8-0.1-1.3-0.1c-1.1-0.1-2.3-0.1-3.4-0.2c-0.1,0-0.3-0.1-0.4-0.1
|
||||
c-2.6,0-5.2,0-7.8,0c-4.1,0-8.1,0-12.2,0c-3.9,0.1-7.8,0.2-11.6,0.3c-1.8,0.1-3.5,0.1-5.3,0.1c-0.2,0-0.5-0.1-0.7,0
|
||||
c-3.2,0.1-6.4,0.3-9.5,0.4c-1.5,0.1-3,0.2-4.4,0.3c-0.1,0-0.1,0-0.1,0c-0.4,0.1-0.8,0.1-1.3,0.1c-0.6,0.1-1.1,0.1-1.6,0.1
|
||||
c-0.1,0-0.1,0-0.1,0c-1.5,0.1-3,0.3-4.4,0.4c-1.2,0.1-2.3,0.2-3.5,0.3c-0.1,0-0.2,0-0.3,0.1c-0.3,0-0.6,0.1-0.9,0.1
|
||||
c-0.1,0-0.2,0.1-0.3,0.1c-0.2,0-0.4,0.1-0.6,0.1c-1.3,0.1-2.7,0.3-4,0.4c-1.1,0.1-2,0.4-3.1,0.5c-0.2,0-0.4,0-0.6,0
|
||||
c-0.1,0-0.2,0.1-0.3,0.1c-0.2,0-0.4,0-0.6,0.1c-0.1,0.1-0.2,0.1-0.3,0.1c-1.6,0.3-3.1,0.6-4.7,0.9c-0.1,0-0.2,0-0.3,0
|
||||
c-0.1,0.1-0.2,0.1-0.3,0.1c-1.7,0.4-3.3,0.7-5,1.2c-3,0.8-5.9,1.9-8.7,3.2c-0.1,0-0.2,0.1-0.3,0.1c-3.2,1.6-6.1,3.5-8.7,5.8
|
||||
c-1,0.9-1.8,1.9-2.8,2.7c-0.5,0.5-1,1-1.4,1.5c-4.5,5.5-6.9,11.8-7.6,18.8c-0.4,3.3-0.1,6.6,0.6,9.9c0.8,3.9,2,7.7,3.8,11.3
|
||||
c1.4,2.9,3,5.7,4.4,8.6c0.4,0.8,0.7,1.6,1.1,2.4c2.2,4.1,4.4,8.2,6.6,12.3c1.3,2.4,2.7,4.8,4,7.2c0.3,0.6,0.6,1.2,0.9,1.7
|
||||
c1.8,3.5,3.6,6.9,4.7,10.7c0.8,2.6,1.8,5.1,2.8,7.6c0,0.1,0.1,0.2,0.1,0.3c0.1,0.1,0.1,0.3,0.1,0.4c0.1,0.2,0.1,0.4,0.1,0.6
|
||||
c1.3,4.5,2.6,8.9,3.9,13.3c0.5,1.7,0.8,3.4,1.3,5c0.1,0.1,0.1,0.3,0.1,0.5c0,0.1,0,0.3,0.1,0.4c0.1,0.1,0.1,0.2,0.1,0.3
|
||||
c0,0.1,0,0.1,0,0.1c0.1,0.1,0.1,0.4,0.1,0.5c0,0.1,0,0.1,0,0.2c0.1,0.1,0.1,0.3,0.1,0.5c0,0.1,0,0.1,0,0.1c0,0.1,0,0.4,0.1,0.5
|
||||
c0.3,1.6,0.6,3.2,0.9,4.8c0.5,3,1.1,6,1.5,9c0.3,1.9,0.5,4,0.8,5.9c0.1,1.4,0.4,2.9,0.5,4.4c0.1,1.4,0.3,2.8,0.4,4.2
|
||||
c0.1,2.1,0.3,4.2,0.4,6.3c0.1,2.2,0.4,4.2,0.5,6.4c0.2,2.3,0.6,4.5,1.6,6.6c0.1,0.1,0.1,0.2,0.1,0.3l0,0c0.6,1.8,1.6,3.5,2.8,5
|
||||
c1.1,1.2,2.3,2.3,3.5,3.5c0.2,0.1,0.4,0.4,0.6,0.5c1.2,0.8,2.3,1.7,3,3.3c-0.1,0.6-0.1,1.4-0.3,2.2c-0.8,2.6-1,5.3-0.6,7.9
|
||||
c0.1,0.8,0.3,1.6,0.2,2.3c-0.4,2.4-0.5,4.8-0.1,7.3c0.2,1,0.5,2,0.6,3c0.1,1.4,0,2.9,0.2,4.3c0.3,2.2,0.9,4.2,2,6
|
||||
c0.1,0.3,0.2,0.5,0.4,0.8c2,3.3,5.1,5.6,7.7,8.4c1.7,1.9,3.6,3.6,5.8,5c0.1,0.1,0.3,0.1,0.4,0.3l0,0c0.2,0.1,0.4,0.2,0.6,0.3
|
||||
c0.6,0.3,1.1,0.6,1.7,0.9c0.4,0.2,0.7,0.4,0.9,0.6c0.7,0.9,1.4,1.7,2.1,2.6c0,0.1,0,0.1,0.1,0.1l0.1,0.1c0.1,0.1,0.1,0.1,0.1,0.1
|
||||
v0.1c0,0.1,0.1,0.1,0.1,0.1l0,0c0.1,0.1,0.1,0.1,0.1,0.1l0,0c0.1,0.1,0.1,0.1,0.1,0.1l0,0c0.1,0.1,0.1,0.1,0.1,0.1l0,0
|
||||
c0.1,0.1,0.1,0.1,0.1,0.1l0,0c0.1,0.1,0.1,0.1,0.1,0.1l0,0c0.1,0,0.1,0.1,0.1,0.1l0.1,0.1l0.1,0.1c0,0,0,0.1,0.1,0.1l0.1,0.1
|
||||
c2.4,2.2,5.2,3.7,8.4,4.3c0.1,0,0.1,0,0.2,0c0.1,0.1,0.2,0.1,0.4,0.1c2.1,0.4,4.2,0.6,6.4,1c0.4,0.1,0.8,0.1,1.3,0.1
|
||||
c3.7,0.1,7.3,0.1,10.9,0.3c3-0.1,6-0.1,9-0.1c1.3-0.1,2.5-0.2,3.7-0.3c0.2-0.1,0.4-0.1,0.6-0.1c1.5-0.3,3-0.6,4.4-0.9
|
||||
c1.3-0.4,2.5-0.8,3.8-1.2c0.1,0,0.1-0.1,0.1-0.1l0,0c1.2-0.6,2.5-1.4,3.7-2c1.1-0.9,2.3-1.9,3.3-2.9c0.8-1,1.7-2,2.6-3.1
|
||||
c0.8-0.4,1.8-0.9,2.8-1.4c1.3-0.9,2.5-1.9,3.8-2.9c0.3-0.3,0.6-0.5,0.8-0.8c1-1.1,2-2.2,3-3.2c1.4-1.4,2.8-3,3.7-4.8
|
||||
c0.1-0.1,0.1-0.1,0.1-0.2c0.1-0.1,0.1-0.3,0.2-0.4c0.1-0.3,0.4-0.6,0.5-0.9c1.5-3.4,2.4-6.9,2.6-10.7c0-0.1,0-0.1,0-0.1
|
||||
s0-0.2,0-0.3c0-0.1,0-0.3,0-0.4c0-0.1,0-0.3,0-0.4c0.3-0.6,0.6-1.2,0.9-1.8c1.3-2.9,2-5.8,1.8-9c-0.1-1.6-0.2-3.2,0.1-4.8
|
||||
c0.2-1.6,0.1-3.3-0.1-5c-0.4-2.4-0.4-2.4,1-3.8c3.6-2.2,6.3-5.4,8.1-9.1c0.1-0.1,0.1-0.2,0.2-0.3c1.9-3.7,2.2-7.8,2.5-12
|
||||
c0.1-1.4,0.2-2.7,0.5-4c0.6-2.6,1.4-5.1,2.1-7.6c0.2-0.6,0.4-1.2,0.6-1.7c0.5-1.8,1-3.6,1.5-5.4c0.1-0.1,0.1-0.1,0.1-0.1
|
||||
c0-0.1,0-0.2,0-0.3c0-0.1,0.1-0.2,0.1-0.3c0-0.1,0.1-0.2,0.1-0.3c0-0.1,0.1-0.1,0.1-0.1c0-0.1,0-0.2,0.1-0.3c0-0.1,0.1-0.1,0.1-0.1
|
||||
c0.6-2.2,1.3-4.5,2-6.8c1.1-4,2.3-8,3.4-12c4-10.6,7.8-21.1,11.8-31.8c-1.4-0.1-2.7-0.1-4-0.1c-2.8-0.1-5.5-0.1-8.2-0.2
|
||||
c-2.6,0-5.2,0-7.8,0c-1.8,0-3.5,0-5.3,0c-2.8,0-5.6,0-8.4,0c-1.2,0-2.3,0-3.5,0c-1.1,0-2.2,0-3.2,0c-2.3,0-4.6,0-6.9,0
|
||||
c-1.7,0-3.3,0-5,0c-1.5,0-3,0-4.4,0c-1.2,0-2.5,0-3.7,0s-2.5,0-3.7,0c-2.3,0-4.5,0-6.8,0c-1.8,0-3.6,0-5.4,0c-1.9,0-3.8,0-5.7,0
|
||||
c-3.8,0-7.5,0-11.4,0c0.1,0.3,0.1,0.6,0.1,0.8c1.6,8.6,3.3,17.2,4.9,25.9c0.4,2.2,0.8,4.4,1.3,6.6c0.3,0.1,0.6,0.1,0.8,0.1
|
||||
c13.2,0,26.4,0,39.6,0c0.3,0,0.6,0,0.9,0c-0.4,1.2-0.8,2.2-1.2,3.2c-0.5,1.3-1,2.6-1.5,3.9c-0.1,0.4-0.2,0.8-0.3,1.2
|
||||
c0,0.1-0.1,0.1-0.1,0.1c0,0.1,0,0.3-0.1,0.4c0,0.1-0.1,0.1-0.1,0.1c0,0.1,0,0.2,0,0.4c-0.1,0.1-0.1,0.1-0.1,0.2
|
||||
c0,0.1,0,0.2-0.1,0.3c0,0.1-0.1,0.1-0.1,0.1c0,0.1-0.1,0.2-0.1,0.4c0,0.1-0.1,0.1-0.1,0.2c0,0.1-0.1,0.2-0.1,0.3
|
||||
c0,0.1-0.1,0.1-0.1,0.1s-0.1,0.2-0.1,0.3h-0.1v0.1c0,0.1-0.1,0.2-0.1,0.3h-0.1v0.1c0,0.1-0.1,0.2-0.1,0.4c-0.1,0.1-0.1,0.3-0.1,0.4
|
||||
c-0.4,1.2-0.8,2.4-1.3,3.7c0,0.1,0,0.1,0,0.1c-0.4,2-0.7,4-1,6c0,0.4,0,0.8-0.1,1.2c0,0.2-0.1,0.5-0.1,0.7c0,0.4,0,0.9-0.1,1.3
|
||||
c0,0.2-0.1,0.4-0.1,0.6c0,0.4-0.1,0.7-0.1,1.2c0,0.1-0.1,0.3-0.1,0.4c0,0.4-0.1,0.8-0.1,1.2c0,0.1-0.1,0.3-0.1,0.4
|
||||
c0,0.4-0.1,0.9-0.1,1.3c0,0.1-0.1,0.2-0.1,0.3c0,0.5-0.1,1-0.1,1.4c0,0.1-0.1,0.3-0.1,0.4c0,0.3-0.1,0.6-0.1,0.9
|
||||
c-1.7,1.2-3.3,2.5-4.5,4.2l-0.1,0.1c-0.1,0.1-0.1,0.1-0.1,0.2c-0.1,0.1-0.1,0.1-0.2,0.2c-0.1,0.1-0.2,0.2-0.4,0.4
|
||||
c-0.8,0.8-1.6,1.6-2.4,2.3c-1.8,1.9-2.9,4.1-3.5,6.6c-0.1,0.6-0.3,1.3-0.4,1.9c-0.1,0.1-0.1,0.3-0.1,0.4c0,0.1,0,0.3,0,0.4
|
||||
c-0.1,0.2-0.1,0.4-0.1,0.6c-0.1,0.9-0.1,1.7-0.6,2.4c-0.3,0.5-0.5,1-0.7,1.6c-1.2,3.2-1.6,6.3-1.1,9.7c0.1,0.7,0.1,1.4,0.1,2.2
|
||||
c0,1.7-0.1,3.4-0.1,5.1c0,0.9,0.1,1.7,0,2.4c-0.1,1.2-0.5,2.4-0.7,3.7c-0.1,0.7-0.3,1.4-0.5,2.1c-1.6,0.6-3.3,1.2-4.8,2.1
|
||||
c-1.3,0.7-2.3,1.9-3.5,2.8c-0.7,0.9-1.3,1.7-2,2.7c-1.4,0-2.9,0-4.4,0c-0.8,0-1.6,0.1-2.4,0.1c-0.3,0-0.6-0.1-0.8-0.1
|
||||
c-2.3-0.1-4.7-0.1-6.7-0.1c-1.5-1.5-2.8-2.8-4-4.1c-1.5-1.4-3.2-2.2-5.2-2.9c-0.1,0-0.1-0.1-0.2-0.1c-0.1,0-0.1,0-0.3-0.1
|
||||
c-0.1,0-0.1-0.1-0.2-0.1s-0.2,0-0.3-0.1c-0.1,0-0.1-0.1-0.1-0.1s-0.1-0.1-0.1-0.1c-0.1-0.1-0.1-0.3-0.1-0.5c0-0.1,0-0.4,0-0.5
|
||||
c-0.1-0.1-0.1-0.3-0.1-0.4c0-0.1,0-0.2,0-0.3c-0.1-0.1-0.1-0.3-0.1-0.4c0-0.1,0-0.1,0-0.1c0.1-0.1,0.1-0.2,0.1-0.4
|
||||
c0-0.1,0-0.3,0-0.4c0.1-0.1,0.1-0.3,0.1-0.4c0-0.2,0-0.4,0-0.6c0.1-0.2,0.1-0.5,0.1-0.7c0-1.2,0-2.3,0-3.5
|
||||
c-0.1-0.2-0.1-0.5-0.1-0.7c0.1-0.4,0.1-0.6,0.1-1c0.1-0.1,0.1-0.2,0.1-0.4c0-0.1,0-0.3,0-0.4c0.1-0.1,0.1-0.3,0.1-0.4
|
||||
c0-0.1,0-0.3,0-0.4c0.1-0.2,0.1-0.4,0.1-0.6c0-0.3,0-0.5,0-0.8c0-0.9,0-1.7,0-2.6c0-0.3,0-0.6,0-0.9c-0.1-0.1-0.1-0.3-0.1-0.5
|
||||
c0-0.1,0-0.4,0-0.5c-0.1-0.1-0.1-0.2-0.1-0.4c-0.2-0.8-0.4-1.5-0.6-2.3c-0.2-0.5-0.4-1.1-0.6-1.6c-0.4-0.8-0.5-1.6-0.4-2.4
|
||||
c0.2-3.8-0.4-7.6-2.1-11c-1.6-3.2-4.3-5.6-6.8-8.1c-1.1-0.9-2.1-1.9-3.2-3c-0.2-3-0.5-6.2-0.7-9.4c-0.1-0.3-0.1-0.6-0.1-0.9
|
||||
c0-0.1,0-0.1,0-0.2c0-0.1,0-0.1,0-0.1c0-0.1,0-0.3,0-0.4c-0.1-0.3-0.1-0.6-0.1-0.9c0-0.1,0-0.1,0-0.2c0.1-0.1,0.1-0.1,0-0.1
|
||||
c0-0.2,0-0.4,0-0.6c-0.1-0.3-0.1-0.6-0.1-0.8c0-0.1,0-0.1,0-0.2c0,0,0,0,0-0.1v-0.1c0-0.1,0-0.3,0-0.4c0-0.2-0.1-0.4-0.1-0.6
|
||||
c0-0.2,0-0.5,0-0.7c0-0.1-0.1-0.3-0.1-0.4c0-0.1-0.1-0.2-0.1-0.3c0.1-0.1,0.1-0.1,0-0.1c0-0.1,0-0.2,0-0.3c0-0.1-0.1-0.3-0.1-0.4
|
||||
c0-0.2,0-0.5-0.1-0.7c0-0.1-0.1-0.2-0.1-0.3c0-0.2,0-0.4,0-0.6c0-0.1-0.1-0.2-0.1-0.3c0-0.2,0-0.4-0.1-0.6
|
||||
c-0.1-0.1-0.1-0.3-0.1-0.4c0-0.2,0-0.4-0.1-0.6c0-0.1-0.1-0.2-0.1-0.3c0-0.2,0-0.4-0.1-0.6c0-0.1-0.1-0.1-0.1-0.2
|
||||
c0-0.2-0.1-0.4-0.1-0.6v-0.1l-0.1-0.1l0,0c-0.4-2.3-0.6-4.5-1.1-6.8c-1-5.3-2-10.5-3.1-15.8c-0.6-2.7-1.3-5.3-2-8
|
||||
c0-0.1,0-0.1,0-0.2c-2-6.1-4-12.2-6.1-18.4c-0.1-0.1-0.1-0.4-0.2-0.5c0-0.1,0-0.1,0-0.2c-0.1-0.1-0.1-0.1-0.1-0.2
|
||||
c0-0.1,0-0.1,0-0.2v-0.1l-0.1-0.1c0-0.1-0.1-0.2-0.1-0.4l0,0h-0.1c0-0.1-0.1-0.1-0.1-0.2c0-0.1-0.1-0.1-0.1-0.1
|
||||
c0-0.1-0.1-0.2-0.1-0.3v-0.1h-0.1c-0.1-0.2-0.1-0.4-0.2-0.6c0-0.1-0.1-0.1-0.1-0.1c-0.1-0.1-0.1-0.3-0.2-0.4
|
||||
c-0.2-0.5-0.5-1-0.7-1.5c-1.5-3-3-5.9-4.4-8.8c-0.4-0.8-0.8-1.6-1.2-2.4c-0.1-0.1-0.1-0.1-0.1-0.2v-0.1h-0.1v-0.1
|
||||
c-0.1-0.1-0.1-0.1-0.1-0.3c-1.2-2.4-2.4-5-3.6-7.4c-0.7-1.4-1.4-2.7-2.1-4.1c0-0.1,0-0.1-0.1-0.1c-0.1-0.1-0.1-0.1-0.1-0.2
|
||||
c-0.7-1.4-1.5-3-2.2-4.4c-1.4-2.7-2.9-5.5-4.4-8.2l0,0c-0.1-0.1-0.1-0.2-0.1-0.3l0,0c-0.1-0.1-0.1-0.2-0.1-0.3l0,0
|
||||
c-0.1-0.1-0.1-0.2-0.1-0.4v-0.1H245c-0.1-0.1-0.1-0.1-0.1-0.2c-0.8-1.6-1.6-3.1-2.4-4.7c-0.6-1.3-3.5-6.8-3.5-6.8l20.7-2.8
|
||||
c1.6-0.2,3.3-0.4,4.9-0.6c0.5-0.1,1-0.1,1.5-0.1c0.1,0,0.3-0.1,0.5-0.1c0.3,0,0.6-0.1,0.8-0.1c0.1,0,0.3-0.1,0.5-0.1
|
||||
c0.4,0,0.7,0,1.1-0.1c0.1,0,0.3-0.1,0.4-0.1c0.4,0,0.8-0.1,1.1-0.1c0.2,0,0.4-0.1,0.6-0.1c0.1,0,0.3-0.1,0.4-0.1c0.2,0,0.5,0,0.7,0
|
||||
c0.3,0,0.6-0.1,0.9-0.1c0.4,0,0.8,0,1.3-0.1c0.4-0.1,0.8-0.1,1.2-0.1c0.4,0,0.8,0,1.1,0c0.4,0,0.8-0.1,1.2-0.1c0.6,0,1.1,0,1.6,0
|
||||
c0.4-0.1,0.8-0.1,1.2-0.1c0.5,0,1,0,1.5,0c0.5-0.1,1-0.1,1.5-0.1c0.5,0,1,0,1.5,0c0.6-0.1,1.1-0.1,1.6-0.1l0,0c0.6,0,1.1,0,1.6,0
|
||||
c0.5,0,0.9-0.1,1.4-0.1c0.7,0,1.4,0,2.1-0.1c0.1,0,0.3,0,0.4,0c0.8,0,1.5-0.1,2.3-0.1c2.8,0,5.6,0,8.5-0.1c7,0.1,14,0.1,21,0.1
|
||||
c1,0,2,0.1,3,0.1c1.5,0.1,3,0.1,4.4,0.2c0.3,0.1,0.6,0.1,0.8,0.1c0.4,0,0.8,0,1.3,0.1c0.3,0,0.6,0.1,0.9,0.1c0.4,0,0.8,0,1.2,0
|
||||
c0.3,0,0.6,0.1,0.8,0.1c0.4,0,0.8,0,1.2,0c0.3,0,0.6,0.1,0.8,0.1c0.4,0,0.8,0,1.2,0c0.3,0.1,0.6,0.1,0.8,0.1c0.4,0,0.9,0,1.3,0.1
|
||||
c0.2,0,0.5,0.1,0.7,0.1c0.5,0,1,0,1.5,0.1c0.4,0,0.7,0.1,1,0.1c0.4,0,0.9,0,1.3,0.1c0.2,0,0.4,0.1,0.6,0.1c0.5,0,1,0.1,1.5,0.1
|
||||
c0.1,0,0.3,0,0.4,0.1c0.4,0,0.9,0.1,1.3,0.1c0.1,0,0.2,0,0.4,0.1c0.3,0,0.5,0,0.8,0c1.2,0.1,2.4,0.3,3.6,0.4
|
||||
c0.8,0.1,1.7,0.2,2.6,0.3c0.1,0,0.2,0.1,0.4,0.1c1.3,0.1,2.7,0.3,4,0.4c1.2,0.1,2.3,0.4,3.5,0.5c1.4,0.2,2.8,0.4,4.2,0.6
|
||||
c3,0.6,5.9,1.2,8.8,1.8c0.2,0.1,0.4,0.1,0.6,0.2c2,0.6,3.1,1.9,3.8,3.8c0.8,2.1,1.8,4,2.7,6c0,0.1,0.1,0.1,0.1,0.2v0.1h0.1
|
||||
c0,0.1,0.1,0.1,0.1,0.2c0,0.1,0.1,0.1,0.1,0.1l0,0c0.1,0,0.2,0,0.4,0c1-0.4,2-0.7,3-1c0.1-0.1,0.1-0.1,0.2-0.1h0.1h0.1
|
||||
c0.4-0.1,0.8-0.3,1.1-0.4c0.1,0,0.1,0,0.2,0c0.3-0.1,0.6-0.2,0.9-0.3c0.1,0,0.2-0.1,0.4-0.1h0.1v-0.1c0.1,0,0.1,0,0.2-0.1
|
||||
c0.1-0.1,0.1-0.1,0.2-0.1c0.1,0,0.1,0,0.2,0s0.1-0.1,0.1-0.1c2.1-0.7,4.2-1.4,6.4-2.2c4-1.4,8-2.8,12-4.2c0.8-0.3,1.7-0.6,2.6-0.9
|
||||
c-0.2-1.3-0.4-2.5-0.6-3.7C412.7,253.4,411.7,250.2,410.2,247.2z"/>
|
||||
<path class="st1" d="M411.5,237.8c-2-2.8-4.2-5.3-6.9-7.6c-2.8-2.3-5.6-4.3-8.8-5.9c-5-2.4-10.4-3.6-15.7-4.6
|
||||
c-3.5-0.6-7.1-1.2-10.6-1.8c-2.3-0.4-4.7-0.6-6.9-0.9c-2.1-0.3-4.2-0.5-6.3-0.7c-1.8-0.2-3.7-0.4-5.6-0.5c-2.3-0.1-4.7-0.3-7-0.4
|
||||
c-2.7-0.1-5.4-0.4-8-0.6c-1.6-0.1-3-0.2-4.6-0.3c-3-0.1-6.1-0.4-9.1-0.4c-4.1-0.1-8.2-0.1-12.3,0c-4.7,0-9.3,0.1-14,0.1
|
||||
c-2.2,0-4.4,0.1-6.6,0.1c-2.1,0.1-4.3,0.1-6.4,0.1c-0.1,0-0.1,0-0.1,0c-3,0.2-5.9,0.4-8.8,0.6c-1.6,0.1-3.2,0.1-4.9,0.3
|
||||
c-3.1,0.3-6.1,0.6-9.2,0.9c-3.1,0.4-6.2,0.6-9.2,1.2c-3.1,0.5-6.2,1.2-9.2,1.9c-5.4,1.2-10.7,2.8-15.5,5.6
|
||||
c-4.6,2.7-8.8,5.8-12.2,9.9c-3.5,4.2-6.3,8.9-7.7,14.2c-0.7,2.9-1.5,5.8-1.8,8.7c-0.3,3.4-0.2,6.8,0.5,10.1
|
||||
c1.1,5.2,2.5,10.2,4.9,14.9c2.3,4.6,4.7,9.1,7.2,13.8c1.7,3.2,3.5,6.5,5.2,9.7c1.2,2.2,2.5,4.5,3.7,6.7c1.3,2.6,2.9,5,3.9,7.8
|
||||
c2.2,5.8,4.1,11.7,6.1,17.6c2.3,6.7,3.5,13.5,4.8,20.5c0.6,2.9,0.9,5.8,1.3,8.6c0.4,2.4,0.7,4.9,1,7.3c0.3,2.4,0.4,4.8,0.6,7.2
|
||||
c0.3,3.2,0.6,6.3,0.8,9.5c0.1,2.4,0.5,4.7,1.1,7c1.3,5.6,4.1,10.3,8.5,14.1c0.6,0.6,1.3,1.1,2,1.7c0,0.1,0,0.2-0.1,0.3
|
||||
c-0.7,2.8-1,5.7-0.6,8.6c0.1,0.8,0.1,1.7,0.1,2.4c-0.3,2.3-0.4,4.5,0,6.8c0.1,0.9,0.6,1.9,0.5,2.8c-0.1,2.7,0.3,5.2,0.8,7.7
|
||||
c0.8,3.6,2.4,6.8,4.9,9.6c2.8,3,5.7,6,8.7,8.7c1.8,1.6,3.9,2.9,5.8,4.2c0.5,0.4,1.1,0.6,1.5,1c1.3,1.4,2.5,2.9,4,4.1
|
||||
c2.7,2.4,5.8,4.1,9.3,5c4.4,1.1,8.9,2,13.5,2.1c6.2,0.1,12.5-0.1,18.7-0.1c0.6,0,1.2-0.1,1.8-0.1c2.2-0.4,4.4-0.8,6.6-1.3
|
||||
c6.5-1.4,11.9-4.7,15.9-10c0.1-0.2,0.4-0.4,0.6-0.5c2.5-1.4,4.9-3,7-5c1.5-1.4,2.8-3,4.2-4.4c2-2,3.7-4.3,4.9-6.8
|
||||
c1.7-3.5,2.3-7.3,3.1-11c0.2-0.9,0.1-1.9,0.4-2.6c0.8-1.9,1.4-3.8,1.8-5.8c0.5-2.1,0.8-4.2,0.6-6.4c-0.1-0.9-0.3-1.9-0.1-2.7
|
||||
c0.4-2.3,0.6-4.5,0.2-6.6c1.6-1.7,3.2-3.2,4.7-4.8c1.7-1.9,3.2-4.1,4.2-6.6c1.8-4.4,2.5-9.1,2.9-13.8c0.1-1.2,0.2-2.4,0.5-3.7
|
||||
c0.6-2.2,1.2-4.2,1.8-6.4c1.9-6.6,3.8-13.3,5.7-19.9c0.8-3,1.7-6,2.7-9c1.2-3.5,2.6-7,3.9-10.4c2.3-6.1,4.6-12.2,6.8-18.4
|
||||
c0.6-1.7,1.1-3.5,0.4-5.3c-0.6-1.7-1.8-2.9-3.5-3.4c-3-0.9-6-0.9-9-0.9c-28.5-0.1-57-0.1-85.5-0.1c-1.6,0-3.2,0.3-4.5,1.4
|
||||
c-1.6,1.3-2.2,3-2,4.8c0.3,2.8,1,5.6,1.5,8.5c0.8,4.4,1.6,8.7,2.5,13.1c0.8,4.5,1.8,8.9,2.8,13.4c0.2,0.9,0.8,1.7,1.5,2.3
|
||||
c1.2,1.2,2.9,1.5,4.5,1.5c10.5,0,21,0,31.5,0c0.3,0,0.6,0,1,0c-0.5,1.5-0.8,3-1.4,4.3c-1.8,4.4-2.6,8.9-3,13.7
|
||||
c-0.1,2-0.3,4.1-0.4,6.1c-0.1,0.5-0.2,1-0.7,1.4c-0.4,0.3-0.8,0.6-1.1,1c-1.1,1.1-2.1,2.2-3.2,3.4c-0.4,0.4-0.8,0.7-1.2,1.2
|
||||
c-2.5,3-4.5,6.3-5.3,10.3c-0.3,1.3-0.5,2.6-0.8,3.9c-0.6,1.9-1.3,3.7-1.8,5.6c-0.6,2.4-0.9,4.8-0.6,7.2c0.1,1,0.1,2.1,0.1,3.2
|
||||
c0,1.6-0.2,3.2-0.1,4.8c0.1,1.4,0.1,2.7-0.3,3.9c-3.2,1.5-6.1,3.5-8.4,6.2c-2.9,0-5.7,0-8.5,0c-2-2.4-4.5-4.2-7.2-5.7
|
||||
c0-1.6,0-3.1,0-4.6c0-0.4,0-0.8,0.1-1.2c0.4-2,0.8-4,0.4-6c-0.4-2.6-1.2-5.2-1.8-7.7c-0.1-0.2-0.1-0.4-0.1-0.6
|
||||
c0.1-2.6-0.2-5.1-0.8-7.7c-0.8-3.7-2.2-7.2-4.7-10.1c-2.1-2.4-4.4-4.6-6.6-7c-0.1-0.1-0.4-0.4-0.4-0.6c-0.2-2.6-0.4-5.2-0.6-7.8
|
||||
c-0.2-2.5-0.4-5-0.7-7.5c-0.6-4.3-1.4-8.6-2.1-13c-1.3-8.2-3-16.3-5.3-24.3c-1.5-5-3.2-10-4.8-15c-1-2.9-2-5.7-3.2-8.5
|
||||
c-1.1-2.4-2.3-4.8-3.5-7.1c-2.9-5.8-5.7-11.7-8.6-17.5c-2-3.9-4-7.7-6.1-11.5c-1-1.9-1.9-3.7-3-5.7c1.3-0.3,2.6-0.6,3.9-0.8
|
||||
c4.8-0.6,9.6-1.4,14.4-1.9c3.2-0.4,6.5-0.6,9.7-0.9c2.7-0.2,5.4-0.3,8.1-0.4c2.3-0.1,4.7-0.2,7-0.3c3.1-0.1,6.3-0.1,9.4-0.1
|
||||
c5.9,0,11.9,0,17.9,0c1.3,0,2.5,0.1,3.7,0.1c3.5,0.1,7,0.3,10.4,0.4c1.6,0.1,3.1,0.2,4.7,0.3c2.6,0.1,5.2,0.4,7.8,0.6
|
||||
c1.6,0.1,3.2,0.1,4.7,0.3c3.4,0.4,6.7,0.7,10.1,1.2c3.7,0.5,7.5,1,11.3,1.6c2,0.3,4,0.8,5.7,1.2c1.3,2.8,2.3,5.3,3.5,7.6
|
||||
c0.6,1.3,1.7,2.4,3,3c1.8,0.7,3.5,0.6,5.3,0c3.2-1.1,6.4-2.2,9.5-3.3c5.4-1.9,10.7-3.7,16-5.6c1.1-0.4,2.2-0.7,3.2-1.5
|
||||
c1.6-1.3,2.2-3.1,2.2-5c0-1.7-0.4-3.4-0.7-5C417.8,248.6,415.1,243,411.5,237.8z M411.1,261.4c-4,1.4-8,2.8-12,4.2
|
||||
c-2.1,0.7-4.2,1.4-6.4,2.2c-0.1,0-0.1,0.1-0.1,0.1c-0.1,0-0.1,0-0.2,0c-0.1,0.1-0.1,0.1-0.2,0.1c-0.1,0-0.1,0-0.2,0.1v0.1h-0.1
|
||||
c-0.1,0-0.2,0.1-0.4,0.1c-0.3,0.1-0.6,0.2-0.9,0.3c-0.1,0-0.1,0-0.2,0c-0.4,0.1-0.8,0.3-1.1,0.4h-0.1h-0.1
|
||||
c-0.1,0.1-0.1,0.1-0.2,0.1c-1,0.4-2,0.7-3,1c-0.1,0-0.2,0-0.4,0l0,0c0-0.1-0.1-0.1-0.1-0.1c0-0.1-0.1-0.1-0.1-0.2h-0.1v-0.1
|
||||
c0-0.1-0.1-0.1-0.1-0.2c-0.9-2-1.9-4-2.7-6c-0.7-1.9-1.8-3.2-3.8-3.8c-0.2-0.1-0.4-0.1-0.6-0.2c-3-0.6-5.9-1.2-8.8-1.8
|
||||
c-1.4-0.2-2.8-0.4-4.2-0.6c-1.2-0.1-2.3-0.4-3.5-0.5c-1.3-0.1-2.7-0.3-4-0.4c-0.1,0-0.2-0.1-0.4-0.1c-0.8-0.1-1.7-0.2-2.6-0.3
|
||||
c-1.2-0.1-2.4-0.3-3.6-0.4c-0.3,0-0.5,0-0.8,0c-0.1,0-0.2,0-0.4-0.1c-0.4,0-0.9-0.1-1.3-0.1c-0.1,0-0.3,0-0.4-0.1
|
||||
c-0.5,0-1-0.1-1.5-0.1c-0.2,0-0.4-0.1-0.6-0.1c-0.4,0-0.9,0-1.3-0.1c-0.4,0-0.7-0.1-1-0.1c-0.5,0-1,0-1.5-0.1
|
||||
c-0.2,0-0.5-0.1-0.7-0.1c-0.4,0-0.9,0-1.3-0.1c-0.3-0.1-0.6-0.1-0.8-0.1c-0.4,0-0.8,0-1.2,0c-0.3,0-0.6-0.1-0.8-0.1
|
||||
c-0.4,0-0.8,0-1.2,0c-0.3,0-0.6-0.1-0.8-0.1c-0.4,0-0.8,0-1.2,0c-0.3,0-0.6-0.1-0.9-0.1c-0.4,0-0.8,0-1.3-0.1
|
||||
c-0.3-0.1-0.6-0.1-0.8-0.1c-1.5-0.1-3-0.1-4.4-0.2c-1,0-2-0.1-3-0.1c-7-0.1-14-0.1-21-0.1c-2.8,0-5.6,0-8.5,0.1
|
||||
c-0.8,0-1.5,0.1-2.3,0.1c-0.1,0-0.3,0-0.4,0c-0.7,0-1.4,0-2.1,0.1c-0.5,0-0.9,0.1-1.4,0.1c-0.6,0-1.1,0-1.6,0l0,0
|
||||
c-0.6,0.1-1.1,0.1-1.6,0.1c-0.5,0-1,0-1.5,0c-0.5,0.1-1,0.1-1.5,0.1c-0.5,0-1,0-1.5,0c-0.4,0.1-0.8,0.1-1.2,0.1c-0.6,0-1.1,0-1.6,0
|
||||
c-0.4,0-0.8,0.1-1.2,0.1c-0.4,0-0.8,0-1.1,0c-0.4,0.1-0.8,0.1-1.2,0.1c-0.4,0-0.8,0-1.3,0.1c-0.3,0-0.6,0.1-0.9,0.1
|
||||
c-0.2,0-0.5,0-0.7,0c-0.1,0-0.3,0.1-0.4,0.1c-0.2,0-0.4,0.1-0.6,0.1c-0.4,0-0.8,0.1-1.1,0.1c-0.1,0-0.3,0.1-0.4,0.1
|
||||
c-0.4,0-0.7,0-1.1,0.1c-0.1,0-0.3,0.1-0.5,0.1c-0.3,0-0.6,0.1-0.8,0.1c-0.1,0-0.3,0.1-0.5,0.1c-0.5,0.1-1,0.1-1.5,0.1
|
||||
c-1.6,0.2-3.3,0.4-4.9,0.6l-20.7,2.8c0,0,2.9,5.5,3.5,6.8c0.7,1.6,1.6,3.2,2.4,4.7c0.1,0.1,0.1,0.1,0.1,0.2h0.1v0.1
|
||||
c0.1,0.1,0.1,0.2,0.1,0.4l0,0c0.1,0.1,0.1,0.2,0.1,0.3l0,0c0.1,0.1,0.1,0.2,0.1,0.3l0,0c1.5,2.7,2.9,5.5,4.4,8.2
|
||||
c0.8,1.4,1.5,2.9,2.2,4.4c0.1,0.1,0.1,0.1,0.1,0.2c0.1,0,0.1,0.1,0.1,0.1c0.7,1.4,1.4,2.7,2.1,4.1c1.2,2.4,2.4,5,3.6,7.4
|
||||
c0.1,0.1,0.1,0.1,0.1,0.3v0.1h0.1v0.1c0.1,0.1,0.1,0.1,0.1,0.2c0.4,0.8,0.8,1.6,1.2,2.4c1.5,3,3,5.9,4.4,8.8c0.2,0.5,0.5,1,0.7,1.5
|
||||
c0.1,0.1,0.1,0.3,0.2,0.4c0,0.1,0.1,0.1,0.1,0.1c0.1,0.2,0.1,0.4,0.2,0.6h0.1v0.1c0,0.1,0.1,0.2,0.1,0.3c0,0.1,0.1,0.1,0.1,0.1
|
||||
c0,0.1,0.1,0.1,0.1,0.2h0.1l0,0c0,0.1,0.1,0.2,0.1,0.4l0.1,0.1v0.1c0,0.1,0,0.1,0,0.2c0.1,0.1,0.1,0.1,0.1,0.2c0,0.1,0,0.1,0,0.2
|
||||
c0.1,0.1,0.1,0.4,0.2,0.5c2,6.1,4,12.2,6.1,18.4c0,0.1,0,0.1,0,0.2c0.7,2.7,1.4,5.3,2,8c1.1,5.3,2.1,10.5,3.1,15.8
|
||||
c0.4,2.2,0.7,4.5,1.1,6.8l0,0l0.1,0.1v0.1c0,0.2,0.1,0.4,0.1,0.6c0,0.1,0.1,0.1,0.1,0.2c0,0.2,0,0.4,0.1,0.6c0,0.1,0.1,0.2,0.1,0.3
|
||||
c0,0.2,0,0.4,0.1,0.6c0.1,0.1,0.1,0.3,0.1,0.4c0,0.2,0,0.4,0.1,0.6c0,0.1,0.1,0.2,0.1,0.3c0,0.2,0,0.4,0,0.6c0,0.1,0.1,0.2,0.1,0.3
|
||||
c0,0.2,0,0.5,0.1,0.7c0,0.1,0.1,0.3,0.1,0.4c0,0.1,0,0.2,0,0.3c0,0.1,0,0.1,0,0.1s0.1,0.2,0.1,0.3c0,0.1,0.1,0.3,0.1,0.4
|
||||
c0,0.2,0,0.5,0,0.7c0,0.2,0.1,0.4,0.1,0.6c0,0.1,0,0.3,0,0.4v0.1c0,0,0,0,0,0.1c0,0.1,0,0.1,0,0.2c0.1,0.3,0.1,0.6,0.1,0.8
|
||||
c0,0.2,0,0.4,0,0.6c0.1,0.1,0.1,0.1,0,0.1c0,0.1,0,0.1,0,0.2c0.1,0.3,0.1,0.6,0.1,0.9c0,0.1,0,0.3,0,0.4c0,0.1,0,0.1,0,0.1
|
||||
c0,0.1,0,0.1,0,0.2c0.1,0.3,0.1,0.6,0.1,0.9c0.2,3.2,0.5,6.3,0.7,9.4c1.1,1,2.2,2,3.2,3c2.5,2.6,5.2,5,6.8,8.1
|
||||
c1.8,3.5,2.3,7.2,2.1,11c-0.1,0.9,0.1,1.7,0.4,2.4c0.3,0.5,0.4,1.1,0.6,1.6c0.2,0.8,0.4,1.5,0.6,2.3c0.1,0.1,0.1,0.2,0.1,0.4
|
||||
c0,0.1,0,0.4,0,0.5c0.1,0.1,0.1,0.3,0.1,0.5c0,0.3,0,0.6,0,0.9c0,0.9,0,1.7,0,2.6c0,0.3,0,0.5,0,0.8c-0.1,0.2-0.1,0.4-0.1,0.6
|
||||
c0,0.1,0,0.3,0,0.4c-0.1,0.1-0.1,0.3-0.1,0.4c0,0.1,0,0.3,0,0.4c-0.1,0.1-0.1,0.2-0.1,0.4c-0.1,0.4-0.1,0.6-0.1,1
|
||||
c0.1,0.2,0.1,0.5,0.1,0.7c0,1.2,0,2.3,0,3.5c-0.1,0.2-0.1,0.5-0.1,0.7c0,0.2,0,0.4,0,0.6c-0.1,0.1-0.1,0.3-0.1,0.4
|
||||
c0,0.1,0,0.3,0,0.4c-0.1,0.1-0.1,0.2-0.1,0.4c0,0.1,0,0.1,0,0.1c0.1,0.1,0.1,0.3,0.1,0.4c0,0.1,0,0.2,0,0.3
|
||||
c0.1,0.1,0.1,0.3,0.1,0.4c0,0.1,0,0.4,0,0.5c0.1,0.1,0.1,0.3,0.1,0.5c0.1,0,0.1,0,0.1,0.1c0.1,0,0.1,0.1,0.1,0.1
|
||||
c0.1,0,0.2,0,0.3,0.1c0.1,0,0.1,0.1,0.2,0.1s0.1,0,0.3,0.1c0.1,0,0.1,0.1,0.2,0.1c1.9,0.6,3.7,1.5,5.2,2.9c1.3,1.3,2.5,2.6,4,4.1
|
||||
c2,0.1,4.3,0.1,6.7,0.1c0.3,0,0.6,0.1,0.8,0.1c0.8-0.1,1.6-0.1,2.4-0.1c1.5,0,3,0,4.4,0c0.7-0.9,1.4-1.8,2-2.7
|
||||
c1.2-0.9,2.3-2.1,3.5-2.8c1.5-0.9,3.2-1.4,4.8-2.1c0.1-0.7,0.4-1.4,0.5-2.1c0.3-1.2,0.6-2.4,0.7-3.7c0.1-0.8,0-1.7,0-2.4
|
||||
c0-1.7,0.1-3.4,0.1-5.1c0-0.7,0-1.4-0.1-2.2c-0.6-3.3-0.1-6.6,1.1-9.7c0.2-0.5,0.4-1.1,0.7-1.6c0.4-0.7,0.6-1.6,0.6-2.4
|
||||
c0.1-0.2,0.1-0.4,0.1-0.6c0-0.1,0-0.3,0-0.4c0.1-0.1,0.1-0.3,0.1-0.4c0.1-0.6,0.3-1.3,0.4-1.9c0.6-2.4,1.8-4.7,3.5-6.6
|
||||
c0.8-0.8,1.6-1.6,2.4-2.3c0.1-0.1,0.2-0.2,0.4-0.4c0.1-0.1,0.1-0.1,0.2-0.2c0.1-0.1,0.1-0.1,0.1-0.2l0.1-0.1c1.2-1.7,2.8-3,4.5-4.2
|
||||
c0-0.4,0.1-0.6,0.1-0.9c0-0.1,0.1-0.3,0.1-0.4c0-0.5,0.1-1,0.1-1.4c0-0.1,0.1-0.2,0.1-0.3c0-0.4,0.1-0.9,0.1-1.3
|
||||
c0-0.1,0.1-0.3,0.1-0.4c0-0.4,0.1-0.8,0.1-1.2c0-0.1,0.1-0.3,0.1-0.4c0-0.4,0.1-0.7,0.1-1.2c0-0.2,0.1-0.4,0.1-0.6
|
||||
c0-0.4,0-0.9,0.1-1.3c0-0.2,0.1-0.5,0.1-0.7c0-0.4,0-0.8,0.1-1.2c0.4-2,0.7-4,1-6c0-0.1,0-0.1,0-0.1c0.4-1.2,0.8-2.4,1.3-3.7
|
||||
c0.1-0.1,0.1-0.3,0.1-0.4c0-0.1,0.1-0.2,0.1-0.4v-0.1c0,0,0,0,0.1,0c0-0.1,0.1-0.2,0.1-0.3v-0.1h0.1c0-0.1,0.1-0.2,0.1-0.3
|
||||
s0.1-0.1,0.1-0.1c0-0.1,0.1-0.2,0.1-0.3c0-0.1,0.1-0.1,0.1-0.2c0-0.1,0.1-0.2,0.1-0.4c0-0.1,0.1-0.1,0.1-0.1s0-0.2,0.1-0.3
|
||||
c0.1-0.1,0.1-0.1,0.1-0.2c0-0.1,0-0.2,0-0.4c0-0.1,0.1-0.1,0.1-0.1c0-0.1,0-0.3,0.1-0.4c0-0.1,0.1-0.1,0.1-0.1
|
||||
c0.1-0.4,0.2-0.8,0.3-1.2c0.5-1.3,1-2.6,1.5-3.9c0.4-1,0.8-2.1,1.2-3.2c-0.4,0-0.6,0-0.9,0c-13.2,0-26.4,0-39.6,0
|
||||
c-0.3,0-0.6-0.1-0.8-0.1c-0.4-2.2-0.9-4.4-1.3-6.6c-1.6-8.6-3.3-17.2-4.9-25.9c-0.1-0.2-0.1-0.5-0.1-0.8c3.8,0,7.6,0,11.4,0
|
||||
c1.9,0,3.8,0,5.7,0c1.8,0,3.6,0,5.4,0c2.3,0,4.5,0,6.8,0c1.2,0,2.5,0,3.7,0s2.5,0,3.7,0c1.5,0,3,0,4.4,0c1.7,0,3.3,0,5,0
|
||||
c2.3,0,4.6,0,6.9,0c1.1,0,2.2,0,3.2,0c1.2,0,2.3,0,3.5,0c2.8,0,5.6,0,8.4,0c1.8,0,3.5,0,5.3,0c2.6,0,5.2,0,7.8,0
|
||||
c2.8,0.1,5.5,0.1,8.2,0.2c1.3,0.1,2.6,0.1,4,0.1c-4,10.7-7.9,21.2-11.8,31.8c-1.1,4-2.3,8-3.4,12c-0.6,2.2-1.3,4.5-2,6.8
|
||||
c0,0.1-0.1,0.1-0.1,0.1s0,0.2-0.1,0.3c0,0.1-0.1,0.1-0.1,0.1c0,0.1-0.1,0.2-0.1,0.3c0,0.1-0.1,0.2-0.1,0.3c0,0.1,0,0.2,0,0.3
|
||||
c-0.1,0.1-0.1,0.1-0.1,0.1c-0.5,1.8-1,3.6-1.5,5.4c-0.1,0.6-0.4,1.2-0.6,1.7c-0.7,2.5-1.5,5.1-2.1,7.6c-0.4,1.3-0.4,2.7-0.5,4
|
||||
c-0.4,4.1-0.6,8.2-2.5,12c-0.1,0.1-0.1,0.2-0.2,0.3c-1.9,3.7-4.5,6.9-8.1,9.1c-1.4,1.5-1.3,1.4-1,3.8c0.2,1.7,0.4,3.3,0.1,5
|
||||
c-0.2,1.6-0.1,3.2-0.1,4.8c0.2,3.2-0.4,6.1-1.8,9c-0.3,0.6-0.6,1.2-0.9,1.8c0,0.1,0,0.3,0,0.4c0,0.1,0,0.3,0,0.4c0,0.1,0,0.2,0,0.3
|
||||
c0,0.1,0,0.1,0,0.1c-0.2,3.7-1.1,7.3-2.6,10.7c-0.1,0.3-0.4,0.6-0.5,0.9c-0.1,0.1-0.1,0.3-0.2,0.4c-0.1,0.1-0.1,0.1-0.1,0.2
|
||||
c-1,1.8-2.3,3.3-3.7,4.8c-1.1,1.1-2,2.2-3,3.2c-0.3,0.3-0.6,0.5-0.8,0.8c-1.3,0.9-2.5,1.9-3.8,2.9c-0.9,0.5-1.9,1-2.8,1.4
|
||||
c-0.9,1.1-1.8,2.1-2.6,3.1c-1.1,0.9-2.3,1.9-3.3,2.9c-1.2,0.6-2.5,1.4-3.7,2l0,0c-0.1,0-0.1,0.1-0.1,0.1c-1.3,0.4-2.5,0.8-3.8,1.2
|
||||
c-1.5,0.3-3,0.6-4.4,0.9c-0.2,0.1-0.4,0.1-0.6,0.1c-1.3,0.1-2.5,0.2-3.7,0.3c-3,0.1-6,0.1-9,0.1c-3.7-0.1-7.3-0.1-10.9-0.3
|
||||
c-0.4,0-0.8-0.1-1.3-0.1c-2.1-0.4-4.2-0.6-6.4-1c-0.1-0.1-0.2-0.1-0.4-0.1c-0.1,0-0.1,0-0.2,0c-3.2-0.6-5.9-2.2-8.4-4.3l-0.1-0.1
|
||||
c0,0-0.1,0-0.1-0.1l-0.1-0.1l-0.1-0.1c-0.1,0-0.1-0.1-0.1-0.1l0,0c-0.1-0.1-0.1-0.1-0.1-0.1l0,0c-0.1-0.1-0.1-0.1-0.1-0.1l0,0
|
||||
c-0.1-0.1-0.1-0.1-0.1-0.1l0,0c-0.1-0.1-0.1-0.1-0.1-0.1l0,0c-0.1-0.1-0.1-0.1-0.1-0.1l0,0c0-0.1-0.1-0.1-0.1-0.1v-0.1
|
||||
c-0.1-0.1-0.1-0.1-0.1-0.1l-0.1-0.1c-0.1,0-0.1,0-0.1-0.1c-0.7-0.9-1.4-1.8-2.1-2.6c-0.2-0.3-0.6-0.4-0.9-0.6
|
||||
c-0.6-0.4-1.1-0.6-1.7-0.9c-0.2-0.1-0.4-0.2-0.6-0.3l0,0c-0.1-0.1-0.3-0.1-0.4-0.3c-2.2-1.4-4.1-3-5.8-5c-2.6-2.7-5.7-5-7.7-8.4
|
||||
c-0.1-0.2-0.3-0.5-0.4-0.8c-1.1-1.9-1.8-3.9-2-6c-0.1-1.4-0.1-2.9-0.2-4.3c-0.1-1-0.4-2-0.6-3c-0.4-2.4-0.3-4.8,0.1-7.3
|
||||
c0.1-0.7-0.1-1.6-0.2-2.3c-0.4-2.7-0.1-5.3,0.6-7.9c0.2-0.8,0.2-1.7,0.3-2.2c-0.7-1.7-1.8-2.5-3-3.3c-0.2-0.1-0.4-0.3-0.6-0.5
|
||||
c-1.2-1.2-2.4-2.2-3.5-3.5c-1.3-1.4-2.2-3.2-2.8-5l0,0c-0.1-0.1-0.1-0.2-0.1-0.3c-0.9-2.1-1.4-4.3-1.6-6.6
|
||||
c-0.1-2.2-0.4-4.2-0.5-6.4c-0.1-2.1-0.3-4.2-0.4-6.3c-0.1-1.4-0.2-2.8-0.4-4.2c-0.1-1.4-0.3-3-0.5-4.4c-0.2-1.9-0.4-4-0.8-5.9
|
||||
c-0.5-3-1-6-1.5-9c-0.3-1.6-0.6-3.2-0.9-4.8c0-0.1,0-0.4-0.1-0.5c0,0-0.1-0.1,0-0.1c-0.1-0.1-0.1-0.3-0.1-0.5c0-0.1,0-0.1,0-0.2
|
||||
c-0.1-0.1-0.1-0.4-0.1-0.5c0-0.1,0-0.1,0-0.1c-0.1-0.1-0.1-0.2-0.1-0.3c0-0.1,0-0.3-0.1-0.4c-0.1-0.1-0.1-0.3-0.1-0.5
|
||||
c-0.4-1.7-0.8-3.4-1.3-5c-1.3-4.5-2.6-8.9-3.9-13.3c-0.1-0.2-0.1-0.4-0.1-0.6c-0.1-0.1-0.1-0.3-0.1-0.4c0-0.1-0.1-0.2-0.1-0.3
|
||||
c-0.9-2.5-2-5-2.8-7.6c-1.1-3.8-2.9-7.3-4.7-10.7c-0.3-0.6-0.6-1.2-0.9-1.7c-1.3-2.4-2.7-4.8-4-7.2c-2.2-4.1-4.4-8.2-6.6-12.3
|
||||
c-0.4-0.8-0.8-1.6-1.1-2.4c-1.5-2.9-3-5.7-4.4-8.6c-1.8-3.6-3-7.4-3.8-11.3c-0.7-3.3-0.9-6.6-0.6-9.9c0.7-7,3.1-13.3,7.6-18.8
|
||||
c0.4-0.5,1-1,1.4-1.5c0.9-0.9,1.8-1.9,2.8-2.7c2.6-2.3,5.6-4.2,8.7-5.8c0.1-0.1,0.2-0.1,0.3-0.1c2.8-1.4,5.6-2.5,8.7-3.2
|
||||
c1.7-0.4,3.3-0.7,5-1.2c0.1-0.1,0.2-0.1,0.3-0.1c0.1,0,0.2,0,0.3,0c1.6-0.3,3.1-0.6,4.7-0.9c0.1-0.1,0.2-0.1,0.3-0.1
|
||||
c0.2,0,0.4,0,0.6-0.1c0.1,0,0.2-0.1,0.3-0.1c0.2,0,0.4,0,0.6,0c1.1-0.1,2-0.4,3.1-0.5c1.3-0.1,2.7-0.3,4-0.4c0.2,0,0.4-0.1,0.6-0.1
|
||||
c0.1,0,0.2-0.1,0.3-0.1c0.3,0,0.6-0.1,0.9-0.1c0.1,0,0.2,0,0.3-0.1c1.2-0.1,2.3-0.2,3.5-0.3c1.5-0.1,3-0.3,4.4-0.4
|
||||
c0.1,0,0.1,0,0.1,0c0.6-0.1,1.1-0.1,1.6-0.1c0.4-0.1,0.8-0.1,1.3-0.1c0.1,0,0.1,0,0.1,0c1.5-0.1,3-0.2,4.4-0.3
|
||||
c3.2-0.1,6.4-0.3,9.5-0.4c0.2,0,0.5,0,0.7,0c1.8-0.1,3.5-0.1,5.3-0.1c3.9-0.1,7.8-0.2,11.6-0.3c4.1,0,8.1,0,12.2,0
|
||||
c2.6,0,5.2,0,7.8,0c0.1,0,0.3,0.1,0.4,0.1c1.1,0.1,2.3,0.1,3.4,0.2c0.4,0.1,0.8,0.1,1.3,0.1c2.2,0.1,4.3,0.2,6.5,0.3
|
||||
c0.4,0.1,0.8,0.1,1.2,0.1c0.8,0.1,1.8,0.1,2.6,0.1c1.2,0.1,2.3,0.1,3.5,0.1c0.3,0.1,0.6,0.1,0.9,0.1c0.8,0.1,1.6,0.1,2.5,0.1
|
||||
c1.1,0.1,2,0.1,3.1,0.1c0.2,0,0.4,0,0.6,0.1c0.5,0,1,0.1,1.5,0.1c0.1,0,0.3,0,0.4,0.1c0.2,0,0.5,0.1,0.7,0.1
|
||||
c1.1,0.1,2.2,0.1,3.2,0.3c0.2,0,0.4,0,0.6,0c0.1,0,0.1,0,0.2,0.1c0.4,0,0.7,0.1,1.1,0.1c0.1,0,0.3,0.1,0.4,0.1c0.3,0,0.5,0,0.8,0
|
||||
c0.1,0,0.3,0.1,0.4,0.1c0.3,0,0.6,0,0.8,0.1c0.1,0,0.3,0.1,0.4,0.1c0.6,0.1,1.3,0.1,2,0.2c0.1,0,0.1,0.1,0.2,0.1
|
||||
c0.1,0,0.1,0,0.2,0.1c1.2,0.1,2.3,0.3,3.5,0.4c1.3,0.2,2.7,0.4,4,0.6c1.4,0.2,2.8,0.4,4.2,0.6c1.6,0.2,3.2,0.5,4.9,0.8
|
||||
c0.1,0,0.1,0.1,0.3,0.1c0.1,0,0.3,0,0.4,0c0.1,0,0.2,0.1,0.3,0.1c0.2,0,0.4,0.1,0.6,0.1c0,0,0.1,0,0.1,0.1c0.1,0,0.3,0,0.5,0.1
|
||||
c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.4,0,0.5,0.1c0.1,0,0.1,0.1,0.1,0.1c0.1,0,0.3,0,0.4,0.1c0.1,0.1,0.2,0.1,0.3,0.1
|
||||
c1.1,0.3,2.3,0.6,3.5,0.9c1,0.3,2,0.6,2.9,0.9c0.1,0.1,0.2,0.1,0.4,0.1c0.4,0.1,0.6,0.2,1,0.3c0.1,0.1,0.1,0.1,0.2,0.1
|
||||
c2.8,0.9,5.4,2.4,7.8,4c5.5,3.8,9.4,8.9,12.3,14.8c1.5,3,2.5,6.2,3,9.6c0.1,1.2,0.4,2.4,0.6,3.7C412.8,260.8,412,261.1,411.1,261.4
|
||||
z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 25 KiB |
|
|
@ -9,8 +9,9 @@
|
|||
},
|
||||
"scripts": {
|
||||
"start": "ember server",
|
||||
"build": "ember build",
|
||||
"build": "ember cordova:build --platform=android --environment=production --release",
|
||||
"test": "ember test",
|
||||
"cordova": "ember cdv:serve --platform=android"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.10.0"
|
||||
|
|
@ -35,6 +36,7 @@
|
|||
"ember-cli-test-loader": "^1.1.0",
|
||||
"ember-cli-uglify": "^1.2.0",
|
||||
"ember-cordova": "^0.3.5",
|
||||
"ember-cordova-keyboard": "0.0.1",
|
||||
"ember-export-application-global": "^1.0.4",
|
||||
"ember-load-initializers": "^0.5.0",
|
||||
"ember-modal-dialog": "^0.9.0",
|
||||
|
|
|
|||
BIN
mobile/public/assets/images/lightswitch.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
|
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
|
||||
<cross-domain-policy>
|
||||
<!-- Read this: www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html -->
|
||||
|
||||
<!-- Most restrictive policy: -->
|
||||
<site-control permitted-cross-domain-policies="none"/>
|
||||
|
||||
<!-- Least restrictive policy: -->
|
||||
<!--
|
||||
<site-control permitted-cross-domain-policies="all"/>
|
||||
<allow-access-from domain="*" to-ports="*" secure="false"/>
|
||||
<allow-http-request-headers-from domain="*" headers="*" secure="false"/>
|
||||
-->
|
||||
</cross-domain-policy>
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
/* TEAM */
|
||||
Your title: Egor Philippov
|
||||
Site: https://www.linkedin.com/pub/egor-philippov/7b/220/148
|
||||
Location: Vancouver, Canada.
|
||||
|
||||
/* THANKS */
|
||||
Edmond Cheung - favicons + huegasm logo
|
||||
Liviu Antonescu - filming + video editing of the intro
|
||||
Olamide Omorodion - business consultation
|
||||
|
||||
/* SITE */
|
||||
Last update: 2015
|
||||
Standards: HTML5, CSS3
|
||||
Components: ember, jQuery, bootstrap, font-awesome, intro.js, locallyjs, nouislider, dancer.js, ember paper, ember notify, JavaScript-ID3-Reader
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
# http://www.robotstxt.org
|
||||
User-agent: *
|
||||
Disallow:
|
||||
11
mobile/tests/unit/pods/application/route-test.js
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
import { moduleFor, test } from 'ember-qunit';
|
||||
|
||||
moduleFor('route:application', 'Unit | Route | application', {
|
||||
// Specify the other units that are required for this test.
|
||||
// needs: ['controller:foo']
|
||||
});
|
||||
|
||||
test('it exists', function(assert) {
|
||||
let route = this.subject();
|
||||
assert.ok(route);
|
||||
});
|
||||
|
|
@ -114,6 +114,9 @@ export default Component.extend({
|
|||
storage.remove('huegasm.bridgeIp');
|
||||
location.reload();
|
||||
},
|
||||
toggleDimmer() {
|
||||
this.sendAction("toggleDimmer");
|
||||
},
|
||||
clearAllSettings() {
|
||||
this.get('storage').clear();
|
||||
location.reload();
|
||||
|
|
@ -173,32 +176,23 @@ export default Component.extend({
|
|||
'You may toggle a light\'s state by clicking on it.'
|
||||
},
|
||||
{
|
||||
element: '#settings',
|
||||
element: $('#navigation .ember-basic-dropdown-trigger')[0],
|
||||
intro: 'A few miscellaneous settings can be found here.<br><br>' +
|
||||
'<b>WARNING</b>: clearing application settings will restore the application to its original state. This will even delete your playlist and any saved song beat preferences.',
|
||||
position: 'bottom'
|
||||
},
|
||||
{
|
||||
element: '#dimmer',
|
||||
intro: 'And that\'s it...Hope you enjoy the application. ;)<br><br>' +
|
||||
'<i><b>TIP</b>: click on the icon to switch to a darker theme.</i>',
|
||||
position: 'top'
|
||||
'<i><b>TIP</b>: click on the lightswitch to switch to a darker theme.</i>'
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
// it's VERY ugly but it works... the jQuery massacre :'(
|
||||
intro.onchange((element) => {
|
||||
if(element.id === 'music-tab' || element.id === 'playlist' || element.id === 'player-area' || element.id === 'beat-option-row' || element.id === 'beat-option-button-group' || element.id === 'beat-container' || element.id === 'using-mic-audio-tooltip'){
|
||||
$('#music-tab').removeClass('hidden');
|
||||
$('#lights-tab').addClass('hidden');
|
||||
$('.navigation-item').eq(0).removeClass('active');
|
||||
$('.navigation-item').eq(1).addClass('active');
|
||||
$('.navigation-item').eq(0).click();
|
||||
} else {
|
||||
$('#lights-tab').removeClass('hidden');
|
||||
$('#music-tab').addClass('hidden');
|
||||
$('.navigation-item').eq(1).removeClass('active');
|
||||
$('.navigation-item').eq(0).addClass('active');
|
||||
$('.navigation-item').eq(1).click();
|
||||
}
|
||||
|
||||
if(element.id === 'music-tab' || element.id === 'playlist' || element.id === 'player-area'){
|
||||
|
|
@ -210,27 +204,6 @@ export default Component.extend({
|
|||
}
|
||||
});
|
||||
|
||||
let onFinish = ()=>{
|
||||
this.set('activeTab', 1);
|
||||
$('#music-tab').removeClass('hidden');
|
||||
$('#lights-tab').addClass('hidden');
|
||||
$('.navigation-item').eq(0).removeClass('active');
|
||||
$('.navigation-item').eq(1).addClass('active');
|
||||
}, onExit = ()=>{
|
||||
let dimmer = $('#dimmer');
|
||||
|
||||
onFinish();
|
||||
dimmer.popover({
|
||||
trigger: 'manual',
|
||||
placement: 'top',
|
||||
content: 'Click on this icon to toggle the dark theme.'
|
||||
}).popover('show');
|
||||
|
||||
setTimeout(()=>{
|
||||
dimmer.popover('hide');
|
||||
}, 5000);
|
||||
};
|
||||
|
||||
// skip hidden/missing elements
|
||||
intro.onafterchange((element)=>{
|
||||
let elem = $(element);
|
||||
|
|
@ -241,7 +214,7 @@ export default Component.extend({
|
|||
run.later(this, function() {
|
||||
$('.introjs-tooltip').velocity('scroll');
|
||||
}, 500);
|
||||
}).onexit(onExit).oncomplete(onFinish).start();
|
||||
}).start();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
{{#if ready}}
|
||||
<div id="navigation">
|
||||
<div id="dimmer" class={{dimmerOnClass}} {{action "toggleDimmer"}}>
|
||||
<div id="dimmer-switch"></div>
|
||||
</div>
|
||||
|
||||
{{#each tabData as |tab|}}
|
||||
<span class="navigation-item pointer text-uppercase {{if tab.selected "active"}}" {{action "changeTab" tab.name}}>{{tab.name}}</span>
|
||||
{{/each}}
|
||||
|
|
@ -28,8 +32,8 @@
|
|||
{{light-group lightsData=lightsData activeLights=activeLights syncLight=syncLight apiURL=apiURL dimmerOn=dimmerOn storage=storage}}
|
||||
|
||||
<div class="row">
|
||||
{{lights-tab apiURL=apiURL lightsData=lightsData activeLights=activeLights syncLight=syncLight trial=trial active=lightsTabSelected colorLoopOn=colorLoopOn dimmerOn=dimmerOn}}
|
||||
{{lights-tab apiURL=apiURL lightsData=lightsData activeLights=activeLights syncLight=syncLight trial=trial active=lightsTabSelected colorLoopOn=colorLoopOn dimmerOn=dimmerOn strobeOn=pauseLightUpdates toggleDimmer="toggleDimmer"}}
|
||||
|
||||
{{music-tab apiURL=apiURL lightsData=lightsData activeLights=activeLights active=musicTabSelected pauseLightUpdates=pauseLightUpdates dimmerOn=dimmerOn storage=storage colorLoopOn=colorLoopOn action="startIntro"}}
|
||||
{{music-tab apiURL=apiURL lightsData=lightsData activeLights=activeLights active=musicTabSelected pauseLightUpdates=pauseLightUpdates dimmerOn=dimmerOn storage=storage colorLoopOn=colorLoopOn toggleDimmer="toggleDimmer" action="startIntro"}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
|
@ -2,7 +2,6 @@ import Ember from 'ember';
|
|||
|
||||
const {
|
||||
Component,
|
||||
computed,
|
||||
isEmpty,
|
||||
isNone,
|
||||
$
|
||||
|
|
@ -12,41 +11,18 @@ export default Component.extend({
|
|||
bridgeIp: null,
|
||||
bridgeUsername: null,
|
||||
trial: false,
|
||||
storage: null,
|
||||
dimmerOn: false,
|
||||
ready: false,
|
||||
|
||||
year: computed(function(){
|
||||
return new Date().getFullYear();
|
||||
}),
|
||||
|
||||
dimmerOnClass: computed('dimmerOn', function(){
|
||||
let dimmerOn = this.get('dimmerOn'),
|
||||
storage = this.get('storage'),
|
||||
dimmerOnClass = null;
|
||||
|
||||
if (dimmerOn) {
|
||||
$('body').addClass('dimmerOn');
|
||||
$('html').addClass('dimmerOn');
|
||||
dimmerOnClass = 'active';
|
||||
} else {
|
||||
$('body').removeClass('dimmerOn');
|
||||
$('html').removeClass('dimmerOn');
|
||||
}
|
||||
|
||||
storage.set('huegasm.dimmerOn', dimmerOn);
|
||||
|
||||
return dimmerOnClass;
|
||||
}),
|
||||
|
||||
init(){
|
||||
this._super(...arguments);
|
||||
|
||||
let storage = new window.Locally.Store({compress: true});
|
||||
let storage = new window.Locally.Store({compress: true}),
|
||||
dimmerOn = storage.get('huegasm.dimmerOn');
|
||||
this.set('storage', storage);
|
||||
|
||||
if (!isNone(storage.get('huegasm.dimmerOn'))) {
|
||||
this.set('dimmerOn', storage.get('huegasm.dimmerOn'));
|
||||
if (!isNone(dimmerOn) && dimmerOn) {
|
||||
this.send('toggleDimmer');
|
||||
}
|
||||
|
||||
if (!isEmpty(storage.get('huegasm.bridgeIp')) && !isEmpty(storage.get('huegasm.bridgeUsername'))) {
|
||||
|
|
@ -60,7 +36,20 @@ export default Component.extend({
|
|||
actions: {
|
||||
toggleDimmer(){
|
||||
this.toggleProperty('dimmerOn');
|
||||
|
||||
let dimmerOn = this.get('dimmerOn');
|
||||
|
||||
if (dimmerOn) {
|
||||
$('body').addClass('dimmerOn');
|
||||
$('html').addClass('dimmerOn');
|
||||
} else {
|
||||
$('body').removeClass('dimmerOn');
|
||||
$('html').removeClass('dimmerOn');
|
||||
}
|
||||
|
||||
this.get('storage').set('huegasm.dimmerOn', dimmerOn);
|
||||
},
|
||||
|
||||
isReady(){
|
||||
this.set('ready', true);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
{{#if bridgeUsername}}
|
||||
{{hue-controls bridgeIp=bridgeIp bridgeUsername=bridgeUsername trial=trial dimmerOn=dimmerOn storage=storage}}
|
||||
{{hue-controls bridgeIp=bridgeIp bridgeUsername=bridgeUsername trial=trial dimmerOn=dimmerOn storage=storage toggleDimmer="toggleDimmer"}}
|
||||
{{else}}
|
||||
{{#if ready}}
|
||||
{{bridge-finder bridgeIp=bridgeIp bridgeUsername=bridgeUsername trial=trial storage=storage}}
|
||||
|
|
@ -24,16 +24,4 @@
|
|||
{{paper-button raised=true primary=true onClick=(action "isReady") class="go-button center-block" label="Go!"}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
<footer id="footer">
|
||||
<div id="dimmer" {{action "toggleDimmer"}} class={{dimmerOnClass}}></div>
|
||||
|
||||
<div id="footer-text">
|
||||
© {{year}}
|
||||
|
||||
<a href="http://www.egorphilippov.me" target="_blank" rel="noopener noreferrer">
|
||||
Egor Philippov
|
||||
</a>
|
||||
</div>
|
||||
</footer>
|
||||
{{/if}}
|
||||
21
web/app/pods/components/huegasm-footer/component.js
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
import Ember from 'ember';
|
||||
|
||||
const {
|
||||
Component,
|
||||
computed
|
||||
} = Ember;
|
||||
|
||||
export default Component.extend({
|
||||
tagName: 'footer',
|
||||
classNames: ['footer'],
|
||||
|
||||
year: computed(function(){
|
||||
return new Date().getFullYear();
|
||||
}),
|
||||
|
||||
actions: {
|
||||
toggleDimmer(){
|
||||
this.sendAction('toggleDimmer');
|
||||
}
|
||||
}
|
||||
});
|
||||
9
web/app/pods/components/huegasm-footer/template.hbs
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<div class="logo" {{action "toggleDimmer"}}></div>
|
||||
|
||||
<div class="footer-text">
|
||||
© {{year}}
|
||||
|
||||
<a href="http://www.egorphilippov.me" target="_blank" rel="noopener noreferrer">
|
||||
Egor Philippov
|
||||
</a>
|
||||
</div>
|
||||
|
|
@ -192,7 +192,7 @@ export default Component.extend({
|
|||
}
|
||||
}
|
||||
|
||||
this.set('strobeOnInervalHandle', setInterval(this.strobeStep.bind(this), 200));
|
||||
this.set('strobeOnInervalHandle', setInterval(this.strobeStep.bind(this), 500));
|
||||
} else { // revert the light system to pre-strobe
|
||||
let preStrobeOnLightsDataCache = this.get('preStrobeOnLightsDataCache'), updateLight = (lightIndex)=> {
|
||||
$.ajax(this.get('apiURL') + '/lights/' + lightIndex + '/state', {
|
||||
|
|
@ -247,6 +247,12 @@ export default Component.extend({
|
|||
return this.get('dimmerOn') ? 'dimmerOn' : null;
|
||||
}),
|
||||
|
||||
actions: {
|
||||
toggleDimmer(){
|
||||
this.sendAction('toggleDimmer');
|
||||
}
|
||||
},
|
||||
|
||||
// **************** STROBE LIGHT FINISH ****************
|
||||
// http://www.developers.meethue.com/documentation/color-conversions-rgb-xy
|
||||
rgbToXy(red, green, blue){
|
||||
|
|
|
|||
|
|
@ -40,4 +40,6 @@
|
|||
<p data-toggle="tooltip" data-placement="top auto" class="bootstrap-tooltip lights-control-tooltip" data-title="Selected lights will slowly cycle through all the colors">Colorloop</p>
|
||||
{{paper-switch value=colorLoopOn onChange=(action (mut colorLoopOn)) disabled=trial skipProxy=trial label=colorloopOnTxt}}
|
||||
{{/paper-item}}
|
||||
{{/paper-list}}
|
||||
{{/paper-list}}
|
||||
|
||||
{{huegasm-footer toggleDimmer="toggleDimmer"}}
|
||||
|
|
@ -888,6 +888,9 @@ export default Component.extend(helperMixin, visualizerMixin, {
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
toggleDimmer(){
|
||||
this.sendAction('toggleDimmer');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@
|
|||
{{#if usingLocalAudio}}
|
||||
<span data-toggle="tooltip" data-placement="top auto" class="bootstrap-tooltip" id="shuffleTooltip" data-title={{shuffleTooltipTxt}} {{action "shuffleChanged"}}>{{paper-icon "shuffle" class=shuffleClass}}</span>
|
||||
<span data-toggle="tooltip" data-placement="top auto" class="bootstrap-tooltip" id="repeatTooltip" data-title={{repeatTooltipTxt}} {{action "repeatChanged"}}>{{paper-icon repeatIcon class=repeatClass}}</span>
|
||||
<span data-toggle="tooltip" data-placement="top auto" class="bootstrap-tooltip" data-title="Clear playlist" {{action "clearPlaylist"}}>{{paper-icon "clear-all" class="player-control-icon"}}</span>
|
||||
<span data-toggle="tooltip" data-placement="top auto" class="bootstrap-tooltip hidden-xs" data-title="Clear playlist" {{action "clearPlaylist"}}>{{paper-icon "clear-all" class="player-control-icon"}}</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
|
|
@ -155,14 +155,6 @@
|
|||
{{/if}}
|
||||
|
||||
<div class="row" id="beat-option-row">
|
||||
<div class="beat-option col-sm-4 col-xs-6">
|
||||
<span data-toggle="tooltip" data-placement="top" data-title="The sensitivity of the beat detector ( more sensitivity results in more registered beats )" class="option-description bootstrap-tooltip">
|
||||
Sensitivity
|
||||
</span>
|
||||
|
||||
{{range-slider start=threshold orientation="vertical" step=beatOptions.threshold.step range=beatOptions.threshold.range on-slide="thresholdChanged" pips=beatOptions.threshold.pips}}
|
||||
</div>
|
||||
|
||||
<div class="beat-option col-sm-4 col-xs-6">
|
||||
<span data-toggle="tooltip" data-placement="top" data-title="The range of hues ( colors ) that the lights may change to on beat." class="option-description bootstrap-tooltip">
|
||||
Hue Range
|
||||
|
|
@ -171,6 +163,14 @@
|
|||
{{range-slider start=hueRange orientation="vertical" step=beatOptions.hueRange.step range=beatOptions.hueRange.range connect=hueRangeConnect on-slide="hueRangeChanged" pips=beatOptions.hueRange.pips}}
|
||||
</div>
|
||||
|
||||
<div class="beat-option col-sm-4 col-xs-6">
|
||||
<span data-toggle="tooltip" data-placement="top" data-title="The sensitivity of the beat detector ( more sensitivity results in more registered beats )" class="option-description bootstrap-tooltip">
|
||||
Sensitivity
|
||||
</span>
|
||||
|
||||
{{range-slider start=threshold orientation="vertical" step=beatOptions.threshold.step range=beatOptions.threshold.range on-slide="thresholdChanged" pips=beatOptions.threshold.pips}}
|
||||
</div>
|
||||
|
||||
{{#if usingMicAudio}}
|
||||
<div class="beat-option col-xs-4">
|
||||
<span data-toggle="tooltip" data-placement="top" data-title="The coefficient to boost the microphone signal by" class="option-description bootstrap-tooltip">
|
||||
|
|
@ -217,4 +217,6 @@
|
|||
|
||||
{{ember-notify messageStyle='bootstrap' closeAfter=5000}}
|
||||
|
||||
{{music-tab/add-soundcloud-sound-modal action="handleNewSoundCloudURL" isShowingModal=isShowingAddSoundCloudModal}}
|
||||
{{music-tab/add-soundcloud-sound-modal action="handleNewSoundCloudURL" isShowingModal=isShowingAddSoundCloudModal}}
|
||||
|
||||
{{huegasm-footer toggleDimmer="toggleDimmer"}}
|
||||
|
|
@ -24,13 +24,13 @@ body, button {
|
|||
padding-bottom: 50px;
|
||||
}
|
||||
|
||||
#footer {
|
||||
.footer {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
#footer-text {
|
||||
.footer-text {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
bottom: 10px;
|
||||
|
|
|
|||
|
|
@ -65,12 +65,11 @@ body.dimmerOn {
|
|||
}
|
||||
|
||||
.paper-icon.dimmerOn {
|
||||
color: inherit !important;
|
||||
text-shadow: $glowingText;
|
||||
opacity: 0.9 !important;
|
||||
}
|
||||
|
||||
#dimmer {
|
||||
.logo {
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
width: 40px;
|
||||
|
|
@ -78,3 +77,24 @@ body.dimmerOn {
|
|||
background: url(images/huegasm.png) center center no-repeat;
|
||||
background-size: 40px 40px;
|
||||
}
|
||||
|
||||
#dimmer {
|
||||
background: url(images/lightswitch.png) !important;
|
||||
width: 14px;
|
||||
height: 34px;
|
||||
display: inline-block;
|
||||
float: left;
|
||||
margin-left: 15px;
|
||||
cursor: pointer;
|
||||
&.dimmerOn #dimmer-switch {
|
||||
opacity: 0;
|
||||
}
|
||||
#dimmer-switch {
|
||||
background: url(images/lightswitch.png) -14px 0px;
|
||||
width: 14px;
|
||||
height: 34px;
|
||||
transition: opacity 0.4s;
|
||||
float: left;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#lights-tab {
|
||||
padding: 0;
|
||||
min-height: 350px;
|
||||
.paper-icon {
|
||||
line-height: 0.8 !important;
|
||||
|
|
@ -84,7 +85,7 @@
|
|||
position: absolute;
|
||||
left: 33px;
|
||||
top: 15px;
|
||||
font-size: 16px;
|
||||
font-size: 16px !important;
|
||||
}
|
||||
|
||||
#navigation .ember-basic-dropdown-trigger {
|
||||
|
|
@ -92,6 +93,8 @@
|
|||
text-align: right;
|
||||
float: right;
|
||||
position: relative;
|
||||
bottom: 10px;
|
||||
transform: scale(1.1);
|
||||
}
|
||||
|
||||
@media(min-width:767px) {
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ module.exports = function(environment) {
|
|||
};
|
||||
|
||||
if (environment === 'development') {
|
||||
ENV.ignoreFailures = true;
|
||||
// ENV.ignoreFailures = true;
|
||||
// ENV.APP.LOG_RESOLVER = true;
|
||||
// ENV.APP.LOG_ACTIVE_GENERATION = true;
|
||||
// ENV.APP.LOG_TRANSITIONS = true;
|
||||
|
|
|
|||
BIN
web/public/assets/images/lightswitch.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
|
|
@ -0,0 +1,24 @@
|
|||
import { moduleForComponent, test } from 'ember-qunit';
|
||||
import hbs from 'htmlbars-inline-precompile';
|
||||
|
||||
moduleForComponent('huegasm-footer', 'Integration | Component | huegasm footer', {
|
||||
integration: true
|
||||
});
|
||||
|
||||
test('it renders', function(assert) {
|
||||
// Set any properties with this.set('myProperty', 'value');
|
||||
// Handle any actions with this.on('myAction', function(val) { ... });
|
||||
|
||||
this.render(hbs`{{huegasm-footer}}`);
|
||||
|
||||
assert.equal(this.$().text().trim(), '');
|
||||
|
||||
// Template block usage:
|
||||
this.render(hbs`
|
||||
{{#huegasm-footer}}
|
||||
template block text
|
||||
{{/huegasm-footer}}
|
||||
`);
|
||||
|
||||
assert.equal(this.$().text().trim(), 'template block text');
|
||||
});
|
||||
11
web/tests/unit/pods/application/route-test.js
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
import { moduleFor, test } from 'ember-qunit';
|
||||
|
||||
moduleFor('route:application', 'Unit | Route | application', {
|
||||
// Specify the other units that are required for this test.
|
||||
// needs: ['controller:foo']
|
||||
});
|
||||
|
||||
test('it exists', function(assert) {
|
||||
let route = this.subject();
|
||||
assert.ok(route);
|
||||
});
|
||||