UNPKG

magix-components

Version:
1 lines 1.11 kB
define("mx-checkbox/linkage",["$","magix"],function(n,e,t){var i=n("$"),a=n("magix"),r=function(n){var e={};return(n=i(n)).find("input[linkage-parent]").each(function(n,t){var a=i(t).attr("linkage-parent");e[a]=1}),n.find("input[linkage]").each(function(n,t){var a=i(t).attr("linkage");e[a]=1}),a.keys(e)},c=function(n,e,t){var i=n.find("input[linkage="+t+"]"),a=n.find("input[linkage-parent="+t+"]"),r=!1,c=!1,u=i[0]==e,o=e&&e.checked;a.each(function(n,e){u&&(e.checked=o),e.checked?r=!0:c=!0}),i.prop("indeterminate",!1),r&&!c?i.prop("checked",!0):c&&!r?i.prop("checked",!1):r&&i.prop("indeterminate",!0)},u=function(n,e){n=i(n);var t=r(n);if(t.length)for(var a=0,u=t;a<u.length;a++){var o=u[a];c(n,e,o)}};t.exports={ctor:function(){var n=this;n.on("rendered",function(){u("#"+n.id)})},getSelectedIds:function(n){var e=[];return i("#"+this.id+" input:checked").each(function(t,a){var r=a.value,c=i(a).attr("linkage-parent");c&&r&&(!n||n&&n==c)&&e.push(a.value)}),e},"$input[linkage-parent]<change>":function(n){u("#"+this.id,n.eventTarget)},"$input[linkage]<change>":function(n){u("#"+this.id,n.eventTarget)}}});