UNPKG

nv-data-selection

Version:

nv-data-selection ============ - nv-data-selection ,nest selection - multi, radio,value,validator - notifier callback

110 lines (84 loc) 3.87 kB
const _V = (validate=(r)=>true,slcted=true,dflt)=>{ if(validate(dflt)) { return({type:"Setter",validate,slcted,dflt}) } else { return({type:"Setter",validate,slcted}) } } const _m = (as='dict',slcted=true)=>({type:'Multi',as,slcted}); const _r = (slcted=true)=>({type:"Radio",slcted}); const _v = (val,slcted=true) => ({type:'Value',val,slcted}); const value = (name,val,slcted=true) => [name,_v(val,slcted) ]; const vali = (name,validate=(r)=>true,slcted=true,dflt) => [name,_V(validate,slcted,dflt) ]; const radio = (name,opts=[], slcted=true) => [name,_r(slcted), opts]; const multi = (name,opts=[], as='dict',slcted=true) => [name,_m(as,slcted), opts]; const multi_as_dict = (name,opts=[],slcted=true) => [name,_m('dict',slcted), opts]; const multi_as_ary = (name,opts=[],slcted=true) => [name,_m('ary',slcted), opts]; const slcted_value = (name,val)=>value(name,val,true); const unslcted_value = (name,val)=>value(name,val,false); const slcted_vali = (name,validate=(r)=>true,dflt) => vali(name,validate,true,dflt); const unslcted_vali = (name,validate=(r)=>true,dflt) => vali(name,validate,false,dflt); const slcted_radio = (name,opts=[]) => radio(name,opts,true); const unslcted_radio = (name,opts=[]) => radio(name,opts,false); const slcted_multi_as_dict = (name,opts=[]) => multi_as_dict(name,opts,true); const slcted_multi_as_ary = (name,opts=[]) => multi_as_ary(name,opts,true); const unslcted_multi_as_dict = (name,opts=[]) => multi_as_dict(name,opts,false); const unslcted_multi_as_ary = (name,opts=[]) => multi_as_ary(name,opts,false); const tru = (slcted) => value('true',true,slcted); const fls = (slcted) => value('false',false,slcted); const slcted_tru = ()=>tru(true); const unslcted_tru = ()=>tru(false); const slcted_fls = ()=>fls(true); const unslcted_fls = ()=>fls(false); const $tru = ()=>true; const $fls = ()=>false; const slcted_radio_bool = (name,dflt=true) =>slcted_radio(name,dflt?[...slcted_tru(),...unslcted_fls()]:[...unslcted_tru(),...slcted_fls()]); const unslcted_radio_bool = (name,dflt=true) =>unslcted_radio(name,dflt?[...slcted_tru(),...unslcted_fls()]:[...unslcted_tru(),...slcted_fls()]); const slcted_radio_bool_dflt_tru = (name) => slcted_radio_bool(name,true); const slcted_radio_bool_dflt_fls = (name) => slcted_radio_bool(name,false); const unslcted_radio_bool_dflt_tru = (name) => unslcted_radio_bool(name,true); const unslcted_radio_bool_dflt_fls = (name) => unslcted_radio_bool(name,false); const slcted_vali_any = (name,dflt) =>slcted_vali(name,$tru,dflt); const unslcted_vali_any = (name,dflt) =>unslcted_vali(name,$tru,dflt); const slcted_vali_none = (name,dflt) =>slcted_vali(name,$fls,dflt); const unslcted_vali_none = (name,dflt) =>unslcted_vali(name,$fls,dflt); module.exports = { _V, _m, _r, _v, value, vali, radio, multi, multi_as_dict, multi_as_ary, slcted_value, unslcted_value, slcted_vali, unslcted_vali, slcted_radio, unslcted_radio, slcted_multi_as_dict, slcted_multi_as_ary, unslcted_multi_as_dict, unslcted_multi_as_ary, tru, fls, slcted_tru, unslcted_tru, slcted_fls, unslcted_fls, $tru, $fls, slcted_radio_bool, unslcted_radio_bool, slcted_radio_bool_dflt_tru, slcted_radio_bool_dflt_fls, unslcted_radio_bool_dflt_tru, unslcted_radio_bool_dflt_fls, slcted_vali_any, unslcted_vali_any, slcted_vali_none, unslcted_vali_none }