'use strict';'require view';'require uci';'require rpc';'require form';'require fs';const callLeds=rpc.declare({object:'luci',method:'getLEDs',expect:{'':{}}});return view.extend({load(){return Promise.all([callLeds(),L.resolveDefault(fs.list('/www'+L.resource('view/system/led-trigger')),[])]).then(function([leds,plugins]){const tasks=[];for(let p of plugins){const m=p.name.match(/^(.+)\.js$/);if(p.type!='file'||m==null)
continue;tasks.push(L.require('view.system.led-trigger.'+m[1]).then(L.bind(function(name){return L.resolveDefault(L.require('view.system.led-trigger.'+name)).then(function(form){return{name:name,form:form,};});},this,m[1])));}
return Promise.all(tasks).then(function(plugins){return[leds,plugins];});});},render([leds,plugins]){let m,s,o;const triggers=[];for(let k in leds)
for(let t of leds[k].triggers)
triggers.push(t);m=new form.Map('system',_('<abbr title="Light Emitting Diode">LED</abbr> Configuration'),_('Customizes the behaviour of the device <abbr title="Light Emitting Diode">LED</abbr>s if possible.'));s=m.section(form.GridSection,'led','');s.anonymous=true;s.addremove=true;s.sortable=true;s.addbtntitle=_('Add LED action');s.nodescriptions=true;s.option(form.Value,'name',_('Name'));o=s.option(form.ListValue,'sysfs',_('<abbr title="Light Emitting Diode">LED</abbr> Name'));Object.keys(leds).sort().forEach(function(name){o.value(name)});o=s.option(form.ListValue,'trigger',_('Trigger'));for(let plugin of plugins){if(plugin.form.kernel==false){o.value(plugin.name,plugin.form.trigger);}
else{if(triggers.indexOf(plugin.name)>=0)
o.value(plugin.name,plugin.form.trigger);}}
o.onchange=function(ev,section,value){const nes=this.map.findElement('id','cbid.system.%s.trigger'.format(section)).nextElementSibling;for(let plugin of plugins){if(plugin.name===value&&nes)
nes.innerText=plugin.form.description||'';}}
o.load=function(section_id){const trigger=uci.get('system',section_id,'trigger');for(let plugin of plugins){if(plugin.name===trigger)
this.description=plugin.form.description||' ';}
return trigger;};s.addModalOptions=function(s){for(let plugin of plugins){plugin.form.addFormOptions(s);}
const opts=s.getOption();const removeIfNoneActive=function(original_remove_fn,section_id){let isAnyActive=false;for(let optname in opts){if(opts[optname].ucioption!=this.ucioption)
continue;if(!opts[optname].isActive(section_id))
continue;isAnyActive=true;break;}
if(!isAnyActive)
original_remove_fn.call(this,section_id);};for(let optname in opts){if(!opts[optname].ucioption||optname==opts[optname].ucioption)
continue;opts[optname].remove=removeIfNoneActive.bind(opts[optname],opts[optname].remove);}};o=s.option(form.Value,'interval',_('Interval'),_('milliseconds'));o.placeholder='50';return m.render();}});