-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
1 lines (1 loc) · 1.48 KB
/
index.js
1
(()=>{(function(){"use strict";function p(n,c,d){var a,i;const r=n[c];return r?d>=((a=r.min)!=null?a:0)&&d<=((i=r.max)!=null?i:1/0):!0}panel.plugin("rasteiner/conditionalblocks",{use:[function(n){const c=n.component("k-layout-field").options,a=c.components["k-block-layouts"].components["k-layout"].components["k-layout-column"],i=n.component("k-block-selector").options,l=n.component("k-blocks").options;n.component("k-layout-field",{extends:c,provide(){return{constraints:this.requires&&!Array.isArray(this.requires)?this.requires:{}}},props:{requires:{type:Object|Array,required:!1}}}),a.provide=function(){const[t,s]=this.width.split("/");return{cwidth:parseInt(t)/parseInt(s)}};const u={constraints:{from:"constraints",default:{}},cwidth:{from:"cwidth",default:1}};n.component("k-blocks",{extends:l,inject:u,methods:{append(t,s){this.constraints&&this.cwidth&&Array.isArray(t)&&(t=t.filter(o=>p(this.constraints,o.type,this.cwidth))),l.methods.append.call(this,t,s)}},computed:{draggableOptions(){const t=l.computed.draggableOptions.call(this);return this.constraints&&this.cwidth&&(t.data.fieldsets=Object.fromEntries(Object.entries(t.data.fieldsets).filter(([s])=>p(this.constraints,s,this.cwidth)))),t}}}),i.inject=u;const h=i.methods.open;i.methods.open=function(){if(h.call(this,...arguments),!this.constraints||!this.cwidth)return;const t=this.cwidth,s=Object.entries(this.constraints).filter(([o,e])=>e.min&&t<e.min||e.max&&t>e.max).map(([o,e])=>o);this.disabled=[...this.disabled,...s]}}]})})();})();