{"version":3,"sources":["components/directives/form/d_smartslider.js"],"names":["angular","module","directive","initValue","appConfig","$q","scope","x","model","startX","sliderwidth","savebtn","options","withButtons","kCallback","kCallbackParams","restrict","templateUrl","supressApply","getPercentFromValue","value","min","max","steps","link","delta","parseFloat","element","deltaval","attrs","controller","label","touchMove","container","eq","handle","find","progress","$watch","info","undefined","newleft","touchConfig","touchStart","maxWidth","touchEnd","interact","css","position","width","min-width","Object","keys","length","max-width","infoStyleInt","renderSliderByValue","event","originalEvent","preventDefault","stopPropagation","renderSliderByMouseLeft","touch","touches","clientX","$document","on","e","mousemove","smartHandleDown","smartContainerDown","removeClass","addClass","rawDom","mouseup","mouseLeft","$digest","percent","elm","count","onestep","document","documentElement","body","renderSlider","scrollTop","left","getBoundingClientRect","scrollX","top","scrollY","offset","Math","round","toString","window","pageYOffset","found","o","i","key","hasOwnProperty","off","defer","stopImmediatePropagation","dragging","writeToModel","promise","params","then","aktVal","$apply","resetValue","config","optionsCount","obj","setVars"],"mappings":"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","file":"d_smartslider.js","sourcesContent":["\r\n// -------------------------------------------//\r\n// Kermi Smart Slider\r\n// -------------------------------------------//\r\n\r\n\r\nangular.module('app.directives.smartslider',[]).\r\ndirective('kermiSmartSlider',\r\n\t[\r\n\t\t'$document', 'appConfig','$q',\r\n\t\tfunction($document, appConfig, $q) {\r\n\t\t\tvar obj = {\r\n\t\t\t\tx : 0,\r\n\t\t\t\tstartX : 0,\r\n\t\t\t\tinitValue : 0,\r\n\t\t\t\tscope:\r\n\t\t\t\t{\r\n\t\t\t\t\tmodel:\"=model\",\r\n\t\t\t\t\tsavebtn: '@',\r\n\t\t\t\t\t//Options\r\n\t\t\t\t\toptions:\"=kOptions\",\r\n\t\t\t\t\t// Slider Withd\r\n\t\t\t\t\tsliderwidth:'=sliderWidth',\r\n\t\t\t\t\t// Show Buttons (Savebuttons)\r\n\t\t\t\t\twithButtons: '=withButtons',\r\n\t\t\t\t\t// CallBack when saved\r\n\t\t\t\t\tkCallback: '=kCallback',\r\n\t\t\t\t\t// CallBack when saved\r\n\t\t\t\t\tkCallbackParams: '=kCallbackParams',\r\n\t\t\t\t\t// Hide Info\r\n\t\t\t\t\thideInfo : '=hideInfo',\r\n\t\t\t\t\tmaxWidth : '=maxWidth',\r\n\t\t\t\t\t// Suppress Apply on Write model\r\n\t\t\t\t\tsupressApply : '=supressApply'\r\n\t\t\t\t},\r\n\t\t\t\trestrict:'AE',\r\n\t\t\t\ttemplateUrl: 'views/form/smartslider.html',\r\n\r\n\r\n\r\n\t\t\t\t// -------------------------------------------//\r\n\t\t\t\t// Calculate Functions\r\n\t\t\t\t// -------------------------------------------//\r\n\t\t\t\tgetPercentFromValue : function(value,min,max,steps)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar delta = parseFloat(max) - parseFloat(min);\r\n\t\t\t\t\tvar deltaval = parseFloat(value) - parseFloat(min);\r\n\t\t\t\t\t//alert('max' + max + 'min' +min + 'delta:'+delta + 'deltaval:'+deltaval + 'ergebnis %' + ((deltaval/delta) * 100));\r\n\t\t\t\t\tvar back = (parseFloat(deltaval)/parseFloat(delta)) * 100;\r\n\r\n\t\t\t\t\treturn back;\r\n\t\t\t\t},\r\n\r\n\r\n\t\t\t\t// -------------------------------------------//\r\n\t\t\t\t// Link Function\r\n\t\t\t\t// -------------------------------------------//\r\n\t\t\t\tlink: function(scope,element, attrs, controller)\r\n\t\t\t\t{\r\n\r\n\r\n\t\t\t\t\t// -------------------------------------------//\r\n\t\t\t\t\t// Init\r\n\t\t\t\t\t// -------------------------------------------//\r\n\t\t\t\t //var startX = offset(element);\r\n\t\t\t\t\t//let startY = 0;\r\n\t\t\t\t let x = 0;\r\n\t\t\t\t //let y = 0;\r\n\r\n\r\n\r\n\r\n\r\n\t\t\t\t\t/* Prepare incoming Data */\r\n\r\n\r\n\t\t\t\t\t//var datapoint = scope.datapoint;\r\n\t\t\t\t\t//var DatapointConfigId = 0;\r\n\t\t\t\t\tvar min = 0;\r\n\t\t\t\t\t//var max = 1;\r\n\t\t\t\t\t//var value = 1;\r\n\t\t\t\t\t//var unit = '';\r\n\t\t\t\t\t//var DeviceId = 0;\r\n\t\t\t\t\tvar container = element.find('div').eq(0);\r\n\t\t\t\t\tvar handle = element.find('div').eq(2);\r\n\t\t\t\t\tvar progress = element.find('div').eq(1);\r\n\t\t\t\t\tvar label = element.find('span').eq(0);\r\n\t\t\t\t\tvar info = element.find('span').eq(1);\r\n\t\t\t\t\t//var buttons = element.find('div').eq(3);\r\n\t\t\t\t\tvar byHandle = false;\r\n\t\t\t\t\t//var saveclear = false;\r\n\t\t\t\t\tvar initValue = undefined;\r\n var newleft = 0;\r\n\t\t\t\t\t//var objtype = 0;\r\n\t\t\t\t\t//var flags = 0;\r\n\t\t\t\t\tvar steps = 1.0;\r\n\t\t\t\t\tvar touchConfig = appConfig();\r\n\t\t\t\t\tvar touchStart = touchConfig.touchStart;\r\n\t\t\t\t\tvar touchMove = touchConfig.touchMove;\r\n\t\t\t\t\tvar touchEnd =touchConfig.touchEnd;\r\n\r\n\t\t\t\t\tscope.interact = false;\r\n\t\t\t\t\tcontainer.css({\r\n\t\t\t\t\t\tposition: 'relative',\r\n\t\t\t\t\t\t'width' : scope.sliderwidth + 'px',\r\n\t\t\t\t\t\t'min-width' : scope.sliderwidth + 'px'\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tscope.$watch('options', function(value){\r\n\t\t\t\t\t\t//console.log('watch options',value);\r\n\t\t\t\t\t\tif(!scope.interact && value != undefined)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(Object.keys(scope.options).length == 2){\r\n\t\t\t\t\t\t\t\tscope.sliderwidth = 30;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tcontainer.css({\r\n\t\t\t\t\t\t\t\tposition: 'relative',\r\n\t\t\t\t\t\t\t\t'width' : scope.sliderwidth + 'px',\r\n\t\t\t\t\t\t\t\t'min-width' : scope.sliderwidth + 'px'\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tvar maxWidth;\r\n\r\n\t\t\t\t\t\t\tif(!scope.maxWidth){\r\n\t\t\t\t\t\t\t\tmaxWidth = 200;\r\n\t\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t\tmaxWidth = scope.maxWidth;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tlabel.css({\r\n\t\t\t\t\t\t\t\t'max-width': (maxWidth -scope.sliderwidth)+'px'\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tif(scope.infoStyle == 'show'){ scope.infoStyleInt = 'show'; };\r\n\t\t\t\t\t\t\t// datapoint = value;\r\n\t\t\t\t\t\t\trenderSliderByValue(scope.model);\r\n\t\t\t\t\t\t\t//scope.toggleButton(false);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tscope.$watch('model', function(value){\r\n\t\t\t\t\t\tif(!scope.interact )\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t// datapoint = value;\r\n\t\t\t\t\t\t\tscope.model = value;\r\n\t\t\t\t\t\t\tscope.value = scope.model;\r\n\r\n\t\t\t\t\t\t\trenderSliderByValue(scope.value);\r\n\r\n\t\t\t\t\t\t\t//scope.toggleButton(false);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t});\r\n\r\n\r\n\t\t\t\t\t// -------------------------------------------//\r\n\t\t\t\t\t// Set all Vars\r\n\t\t\t\t\t// -------------------------------------------//\r\n\t\t\t\t\tfunction setVars(value,config)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tscope.min = min = 0;\r\n\t\t\t\t\t\tif(scope.options){\r\n\t\t\t\t\t\t\tscope.max = Object.keys(scope.options).length;\r\n\t\t\t\t\t\t\tscope.optionsCount = Object.keys(scope.options).length -1;\r\n\t\t\t\t\t\t\tscope.firstKey = Object.keys(scope.options)[0];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tsteps = 1;\r\n\t\t\t\t\t\tif(value != undefined)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tscope.value = value;\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tscope.value = min;\r\n\t\t\t\t\t\t\tinitValue = min;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tnewleft = obj.getPercentFromValue(scope.value , min, scope.optionsCount );\r\n\t\t\t\t\t\trenderSliderByValue( scope.value );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// -------------------------------------------//\r\n\t\t\t\t\t// Init Function\r\n\t\t\t\t\t// -------------------------------------------//\r\n\t\t\t\t\tfunction initSlider(value,config){\r\n\t\t\t\t\t\tsetVars(value,config);\r\n\r\n\t\t\t\t\t\tif(newleft < 0){newleft = 0;};\r\n\t\t\t\t\t\tif(newleft > 100){newleft = 100;};\r\n\r\n\t\t\t\t\t\thandle.css({\r\n\t\t\t\t\t\t\t'left': newleft + '%'\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tprogress.css({\r\n\t\t\t\t\t\t\twidth: newleft + '%'\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t/*info.css({\r\n\t\t\t\t\t\t\twidth: (parseInt(scope.sliderwidth) + 20 ) + 'px',\r\n\t\t\t\t\t\t\t'margin-left':-((parseInt(scope.sliderwidth) + 20 )/2)+'px'\r\n\t\t\t\t\t\t});*/\r\n\r\n\r\n\r\n\t\t\t\t\t};\r\n\r\n\r\n\r\n\t\t\t\t\tvar smartContainerDown = function(event)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tevent.originalEvent.preventDefault();\r\n\t\t\t\t\t\tevent.originalEvent.stopPropagation();\r\n\t\t\t\t\t\tscope.interact = true;\r\n\t\t\t\t\t\tbyHandle = false;\r\n\r\n\t\t\t\t\t\trenderSliderByMouseLeft(touchConfig.touch(event).touches[0].clientX);\r\n\t\t\t\t\t\tinfo.addClass('show');\r\n\t\t\t\t\t\tscope.$digest();\r\n\t\t\t\t\t\t$document.on(touchMove, function(e){ touchConfig.touch(e,mousemove) });\r\n\t\t\t\t\t\t$document.on(touchEnd, function(e){ touchConfig.touch(e,mouseup) });\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcontainer.on(touchStart, function(e){ touchConfig.touch(e,smartContainerDown) });\r\n\r\n\r\n\r\n\t\t\t\t\t// -------------------------------------------//\r\n\t\t\t\t\t// Handle down\r\n\t\t\t\t\t// -------------------------------------------//\r\n\r\n\r\n\r\n\t\t\t\t\t var smartHandleDown = function(event) {\r\n\t\t\t\t\t\tscope.interact = true;\r\n\t\t\t\t\t\tevent.originalEvent.preventDefault();\r\n\t\t\t\t\t\tevent.originalEvent.stopPropagation();\r\n\t\t\t\t\t\t// Prevent default dragging of selected content\r\n\t\t\t\t\t\telement.removeClass('manual');\r\n\t\t\t\t\t\tinfo.addClass('show');\r\n\r\n\t\t\t\t\t\tbyHandle = true;\r\n\t\t\t\t\t\t//initValue = scope.value;\r\n\t\t\t\t\t\t// Add Eventlistener move + up;\r\n\r\n\r\n\r\n\t\t\t\t\t\t$document.on(touchMove, function(e){ touchConfig.touch(e,mousemove) });\r\n\t\t\t\t\t\t$document.on(touchEnd, function(e){ touchConfig.touch(e,mouseup) });\r\n\t\t\t\t\t\trenderSliderByMouseLeft(touchConfig.touch(event).touches[0].clientX);\r\n\r\n\r\n\t\t\t\t\t};\r\n\t\t\t\t\thandle.on(touchStart, function(e){ touchConfig.touch(e,smartHandleDown) });\r\n/*\r\n\r\n\t\t\t\t\tfunction onMouseMove(e) {\r\n\t\t\t\t\t\te.touches = [{clientX: e.clientX, clientY: e.clientY}];\r\n\t\t\t\t\t\tmousemove(e);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// -------------------------------------------//\r\n\t\t\t\t\t// Routing //\r\n\t\t\t\t\t// -------------------------------------------//\r\n\t\t\t\t\t/* Functions */\r\n\t\t\t\t\tfunction mousemove(event) {\r\n\t\t\t\t\t\trenderSliderByMouseLeft(event.touches[0].clientX);\r\n\t\t\t\t\t\tscope.$digest();\r\n\t\t\t\t\t}\r\n\r\n\r\n\r\n\r\n\t\t\t\t\t// -------------------------------------------//\r\n\t\t\t\t\t// Get Element Offset\r\n\t\t\t\t\t// -------------------------------------------//\r\n\r\n\t\t\t\t\tfunction offset(elm) {\r\n\t\t\t\t\t\ttry {return elm.offset();} catch(e) {}\r\n\t\t\t\t\t\tvar rawDom = elm[0];\r\n\t\t\t\t\t\tvar _x = 0;\r\n\t\t\t\t\t\tvar _y = 0;\r\n\t\t\t\t\t\tvar body = document.documentElement || document.body;\r\n\t\t\t\t\t\tvar scrollX = window.pageXOffset || body.scrollLeft;\r\n\t\t\t\t\t\tvar scrollY = window.pageYOffset || body.scrollTop;\r\n\t\t\t\t\t\t_x = rawDom.getBoundingClientRect().left + scrollX;\r\n\t\t\t\t\t\t_y = rawDom.getBoundingClientRect().top + scrollY;\r\n\t\t\t\t\t\treturn { left: _x, top:_y };\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t// -------------------------------------------//\r\n\t\t\t\t\t// Render Slider by Mouse Left\r\n\t\t\t\t\t// -------------------------------------------//\r\n\t\t\t\t\tfunction renderSliderByMouseLeft(mouseLeft)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// IE Fires last event with NAN\r\n\t\t\t\t\t\tif(mouseLeft)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar percent = ( ( mouseLeft - offset(container).left) / scope.sliderwidth ) * 100;\r\n\r\n\t\t\t\t\t\t\tif(percent < 0)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpercent = 0;\r\n\t\t\t\t\t\t\t}else if(percent > 100)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpercent = 100;\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t//console.log(scope.sliderwidth);\r\n\r\n\t\t\t\t\t\t\tvar count = Object.keys(scope.options).length - 1;\r\n\t\t\t\t\t\t\tvar onestep = 100/ count;\r\n\t\t\t\t\t\t\tvar value = Math.round( percent / onestep ) ;\r\n\t\t\t\t\t\t\tscope.value = Object.keys( scope.options )[ value ];\r\n\t\t\t\t\t\t\tpercent = (value * onestep);\r\n\t\t\t\t\t\t\tscope.model = Object.keys( scope.options )[ value ];\r\n\r\n\t\t\t\t\t\t\trenderSlider(percent);\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// -------------------------------------------//\r\n\t\t\t\t\t// Reder Slider by Value\r\n\t\t\t\t\t// -------------------------------------------//\r\n\t\t\t\t\tvar renderSliderByValue = function(value)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(value == undefined){ return };\r\n\t\t\t\t\t\t//console.log('value is da');\r\n\r\n\t\t\t\t\t\tif(scope.options == undefined || value == undefined){ return };\r\n\t\t\t\t\t\tvar o = Object.keys(scope.options);\r\n\r\n\r\n\t\t\t\t\t\t//console.log(value);\r\n\t\t\t\t\t\tvar found = false;\r\n\t\t\t\t\t\t//console.log(scope.options);\r\n\t\t\t\t\t\tvar i = 0;\r\n\t\t\t\t\t\tfor(var key in scope.options)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(scope.options.hasOwnProperty(key))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t//console.log(key +'-'+scope.options[key]+'--'+value);\r\n\t\t\t\t\t\t\t\t//console.log(typeof value);\r\n\t\t\t\t\t\t\t\t//console.log(typeof key);\r\n\t\t\t\t\t\t\t\tvar a,b;\r\n\t\t\t\t\t\t\t\t//console.log( key.toString() +'-+++-'+ value.toString());\r\n\t\t\t\t\t\t\t\tif( key.toString() == value.toString() )\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tfound = {'i':i,'value':value};\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\ti++;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/*for(var i = 0; i < o.length; i++)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tconsole.log(o[i]+'-'+ value);\r\n\r\n\t\t\t\t\t\t}*/\r\n\r\n\t\t\t\t\t\tif(found != false)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t//console.log('found it on '+value+'-'+found.i);\r\n\r\n\t\t\t\t\t\t\tx = ( 100 / ( o.length - 1) ) * found.i;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif(x < 0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tx = 0;\r\n\t\t\t\t\t\t}else if(x > 100)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tx = 100;\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t renderSlider(x);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// -------------------------------------------//\r\n\t\t\t\t\t// Render -> Set CSS\r\n\t\t\t\t\t// -------------------------------------------//\r\n\t\t\t\t\tfunction renderSlider(x)\r\n\t\t\t\t\t{\r\n\r\n\t\t\t\t\t\tprogress.css({\r\n\t\t\t\t\t\t\twidth: x + '%'\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\thandle.css({\r\n\t\t\t\t\t\t\tleft: x + '%'\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\tfunction mouseup(event) {\r\n\t\t\t\t\t\tevent.originalEvent.preventDefault();\r\n\t\t\t\t\t\tevent.originalEvent.stopPropagation();\r\n\t\t\t\t\t\tevent.originalEvent.stopImmediatePropagation();\r\n\r\n\t\t\t\t\t\tscope.dragging = false;\r\n\t\t\t\t\t\tinfo.removeClass('show');\r\n\t\t\t\t\t\telement.addClass('manual');\r\n\t\t\t\t\t\t$document.off(touchMove);\r\n\t\t\t\t\t\t$document.off(touchEnd);\r\n\t\t\t\t\t\thandle.off(touchEnd);\r\n\t\t\t\t\t\t/*var t = touchConfig.touch(event).touches;\r\n\t\t\t\t\t\tif(t && t.length > 0){\r\n\t\t\t\t\t\t\trenderSliderByMouseLeft( t[0].clientX);\r\n\t\t\t\t\t\t}*/\r\n\r\n\r\n\t\t\t\t\t\t\tscope.writeToModel();\r\n\r\n\t\t\t\t\t\tscope.$digest(function () {\r\n\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tscope.writeToModel = function (){\r\n\r\n\t\t\t\t\t\tif(typeof scope.kCallback == 'function')\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar defer = $q.defer();\r\n\t\t\t\t\t\t\tscope.kCallback({promise:defer,params : scope.kCallbackParams,value:scope.value, withButtons : scope.withButtons});\r\n\t\t\t\t\t\t\t// Write to Model if return value == true;\r\n\t\t\t\t\t\t\tdefer.promise.then(function(aktVal){\r\n\t\t\t\t\t\t\t\t// scope.model = scope.value;\r\n\t\t\t\t\t\t\t\tscope.interact = false;\r\n\t\t\t\t\t\t\t\t// We need to render by new model, because scope.model $watch does not fire in fact of scope.interact is true\r\n\t\t\t\t\t\t\t\t// This is important if we change by Slider and datapoint directive shows buttons for save and clear\r\n\t\t\t\t\t\t\t\t// While Buttons were shown no new data (e.g. interval) were parsed.\r\n\t\t\t\t\t\t\t\tscope.model = aktVal;\r\n\t\t\t\t\t\t\t\tscope.value = scope.model;\r\n\t\t\t\t\t\t\t\trenderSliderByValue(scope.model);\r\n\r\n\t\t\t\t\t\t\t},function(){\r\n\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t// Nothing to check;\r\n\t\t\t\t\t\t\tscope.model = scope.value;\r\n\t\t\t\t\t\t\tscope.interact = false;\r\n\t\t\t\t\t\t\t// Careful using this.\r\n\t\t\t\t\t\t\t// Without a callback (Scenes SetDatapoint) we can run into performance issues\r\n\t\t\t\t\t\t\t// But we need this because Parent Object needs dirtyCheck cycle to display current value\r\n\t\t\t\t\t\t\t// Todo: In future use pherhaps implement a scope.supressApply to handle this\r\n\t\t\t\t\t\t\tif(scope.supressApply){ return };\r\n\t\t\t\t\t\t\tscope.$apply();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// -------------------------------------------//\r\n\t\t\t\t\t// Reset Value\r\n\t\t\t\t\t// -------------------------------------------//\r\n\t\t\t\t\tscope.resetValue = function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tscope.value = initValue;\r\n\t\t\t\t\t\trenderSliderByValue(initValue);\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\tinitSlider(scope.model);\r\n\t\t\t\t}\r\n\r\n\t\t\t};\r\n\t\t\treturn obj ;\r\n\r\n\r\n\t\t}]);\r\n"],"sourceRoot":"../../../../../app"}