{"version":3,"sources":["components/scheduler.js"],"names":["dmx","Component","initialData","running","percent","attributes","delay","type","Number","default","unit","String","norepeat","Boolean","noload","methods","start","this","stop","events","tick","Event","render","node","props","set","_startTime","Date","getTime","data","elapsed","total","Math","ceil","dispatchEvent","requestAnimationFrame","bind"],"mappings":";;;;;;AAAAA,IAAAC,UAAA,aAEAC,aACAC,SAAA,EACAC,QAAA,GAGAC,YACAC,OACAC,KAAAC,OACAC,QAAA,IAGAC,MACAH,KAAAI,OACAF,QAAA,WAGAG,UACAL,KAAAM,QACAJ,SAAA,GAGAK,QACAP,KAAAM,QACAJ,SAAA,IAIAM,SACAC,MAAA,WACAC,KAAAD,SAGAE,KAAA,WACAD,KAAAC,SAIAC,QACAC,KAAAC,OAGAC,OAAA,SAAAC,GACAN,KAAAO,MAAAV,QACAG,KAAAD,SAIAA,MAAA,WACAC,KAAAQ,IAAA,WAAA,GACAR,KAAAS,YAAA,GAAAC,OAAAC,UACAX,KAAAG,QAGAF,KAAA,WACAD,KAAAQ,IAAA,WAAA,GACAR,KAAAQ,IAAA,UAAA,IAGAL,KAAA,WACA,GAAAH,KAAAY,KAAA1B,QAAA,CAIA,GAAA2B,GAAA,GAAAH,MAAAV,KAAAS,WACAK,EAAAd,KAAAX,OAIA,OAFAW,MAAAQ,IAAA,UAAAO,KAAAC,KAAA,IAAAH,EAAAC,IAEAD,GAAAC,GACAd,KAAAQ,IAAA,UAAA,KAEAR,KAAAiB,cAAA,aAEAjB,KAAAO,MAAAZ,SACAK,KAAAC,OAEAD,KAAAD,cAMAmB,uBAAAlB,KAAAG,KAAAgB,KAAAnB,SAGAX,MAAA,WACA,OAAAW,KAAAO,MAAAd,MACA,IAAA,cACA,MAAAO,MAAAO,MAAAlB,KACA,KAAA,UACA,MAAA,KAAAW,KAAAO,MAAAlB,KACA,KAAA,QACA,MAAA,MAAAW,KAAAO,MAAAlB,KACA,KAAA,OACA,MAAA,OAAAW,KAAAO,MAAAlB,KACA,SAEA,MAAA,KAAAW,KAAAO,MAAAlB","file":"../dmxScheduler/dmxScheduler.js","sourcesContent":["dmx.Component('scheduler', {\r\n\r\n initialData: {\r\n running: false,\r\n percent: 0\r\n },\r\n\r\n attributes: {\r\n delay: {\r\n type: Number,\r\n default: 60\r\n },\r\n\r\n unit: {\r\n type: String,\r\n default: 'seconds' // miliseconds, seconds, minutes, hours, days\r\n },\r\n\r\n norepeat: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n noload: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n\r\n methods: {\r\n start: function() {\r\n this.start();\r\n },\r\n\r\n stop: function() {\r\n this.stop();\r\n }\r\n },\r\n\r\n events: {\r\n tick: Event\r\n },\r\n\r\n render: function(node) {\r\n if (!this.props.noload) {\r\n this.start();\r\n }\r\n },\r\n\r\n start: function() {\r\n this.set('running', true);\r\n this._startTime = (new Date()).getTime();\r\n this.tick();\r\n },\r\n\r\n stop: function() {\r\n this.set('running', false);\r\n this.set('percent', 0);\r\n },\r\n\r\n tick: function() {\r\n if (!this.data.running) {\r\n return;\r\n }\r\n\r\n var elapsed = new Date() - this._startTime;\r\n var total = this.delay();\r\n\r\n this.set('percent', Math.ceil(100 * elapsed / total));\r\n\r\n if (elapsed >= total) {\r\n this.set('percent', 100);\r\n\r\n this.dispatchEvent('tick');\r\n\r\n if (this.props.norepeat) {\r\n this.stop();\r\n } else {\r\n this.start();\r\n }\r\n\r\n return;\r\n }\r\n\r\n requestAnimationFrame(this.tick.bind(this));\r\n },\r\n\r\n delay: function() {\r\n switch (this.props.unit) {\r\n case 'miliseconds':\r\n return this.props.delay;\r\n case 'minutes':\r\n return this.props.delay * 60000;\r\n case 'hours':\r\n return this.props.delay * 3600000;\r\n case 'days':\r\n return this.props.delay * 86400000;\r\n default:\r\n // default seconds\r\n return this.props.delay * 1000;\r\n }\r\n }\r\n\r\n});\r\n"]}