@kubik-cms/wysiwyg 0.1.10 → 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -971,7 +971,19 @@ class kubik_widget_controller_default extends Controller {
971
971
  }
972
972
  updateField(event) {
973
973
  const name = event.currentTarget.name;
974
- const duplicateData = set_1(this.dataValue, name, event.currentTarget.value);
974
+ let v = event.currentTarget.value;
975
+ if (event.currentTarget.dataset.boolean === "true" && event.currentTarget.type === "checkbox" && !event.currentTarget.checked) {
976
+ v = 0;
977
+ }
978
+ if (event.currentTarget.dataset.checkbox === "true" && event.currentTarget.type === "checkbox") {
979
+ v = Array.from(event.currentTarget.parentElement.parentElement.querySelectorAll("[name=`${event.currentTarget.name}`]")).map((el) => el.checked ? el.value : null).filter((el) => el !== null);
980
+ }
981
+ const duplicateData = set_1(this.dataValue, name, v);
982
+ this.dataValue = duplicateData;
983
+ }
984
+ updateWysiwygField(event) {
985
+ const name = event.currentTarget.dataset.fieldName;
986
+ const duplicateData = set_1(this.dataValue, name, event.currentTarget.innerHTML);
975
987
  this.dataValue = duplicateData;
976
988
  }
977
989
  selectResult(e) {
@@ -1017,6 +1029,14 @@ kubik_widget_controller_default.values = {
1017
1029
  data: Object,
1018
1030
  maxItems: { type: Number, default: 0 }
1019
1031
  };
1032
+ class kubik_repeater_controller_default extends Controller {
1033
+ connect() {
1034
+ }
1035
+ toggleItem(event) {
1036
+ Array.from(this.element.classList).includes(this.expandedClass) ? this.element.classList.remove(this.expandedClass) : this.element.classList.add(this.expandedClass);
1037
+ }
1038
+ }
1039
+ kubik_repeater_controller_default.classes = ["expanded"];
1020
1040
  function makeElement(tagName, classNames = [], attributes = {}, textContent = "") {
1021
1041
  const el = document.createElement(tagName);
1022
1042
  el.classList.add(...classNames);
@@ -1210,6 +1230,7 @@ const widgetWrapper = function widgetWrapper2(details = {}, data) {
1210
1230
  "data-kubik-widget-setup-value": JSON.stringify(details.setup),
1211
1231
  "data-kubik-widget-data-value": JSON.stringify(data),
1212
1232
  "data-kubik-widget-widget-id-value": details.setup.widget_id,
1233
+ "data-kubik-widget-widget-icon": details.setup.config.icon,
1213
1234
  id: details.setup.widget_id
1214
1235
  };
1215
1236
  if (details.items_limit) {
@@ -1271,6 +1292,7 @@ class PluginFactory {
1271
1292
  }
1272
1293
  var index = {
1273
1294
  KubikWidgetController: kubik_widget_controller_default,
1295
+ KubikRepeaterController: kubik_repeater_controller_default,
1274
1296
  PluginFactory,
1275
1297
  KubikAutocompleteController: kubik_autocomplete_controller_default
1276
1298
  };
@@ -1 +1 @@
1
- (function(f,c){typeof exports=="object"&&typeof module!="undefined"?module.exports=c():typeof define=="function"&&define.amd?define(c):(f=typeof globalThis!="undefined"?globalThis:f||self,f.wysiwyg=c())})(this,function(){"use strict";function f(t){return t.replace(/(?:[_-])([a-z0-9])/g,(e,r)=>r.toUpperCase())}function c(t){return t.charAt(0).toUpperCase()+t.slice(1)}function ut(t){return t.replace(/([A-Z])/g,(e,r)=>`-${r.toLowerCase()}`)}function L(t,e){const r=R(t);return Array.from(r.reduce((a,s)=>(lt(s,e).forEach(n=>a.add(n)),a),new Set))}function ct(t,e){return R(t).reduce((a,s)=>(a.push(...ht(s,e)),a),[])}function R(t){const e=[];for(;t;)e.push(t),t=Object.getPrototypeOf(t);return e.reverse()}function lt(t,e){const r=t[e];return Array.isArray(r)?r:[]}function ht(t,e){const r=t[e];return r?Object.keys(r).map(a=>[a,r[a]]):[]}(()=>{function t(r){function a(){return Reflect.construct(r,arguments,new.target)}return a.prototype=Object.create(r.prototype,{constructor:{value:a}}),Reflect.setPrototypeOf(a,r),a}function e(){const a=t(function(){this.a.call(this)});return a.prototype.a=function(){},new a}try{return e(),t}catch{return a=>class extends a{}}})();function dt(t){return L(t,"classes").reduce((r,a)=>Object.assign(r,ft(a)),{})}function ft(t){return{[`${t}Class`]:{get(){const{classes:e}=this;if(e.has(t))return e.get(t);{const r=e.getAttributeName(t);throw new Error(`Missing attribute "${r}"`)}}},[`${t}Classes`]:{get(){return this.classes.getAll(t)}},[`has${c(t)}Class`]:{get(){return this.classes.has(t)}}}}function pt(t){return L(t,"targets").reduce((r,a)=>Object.assign(r,gt(a)),{})}function gt(t){return{[`${t}Target`]:{get(){const e=this.targets.find(t);if(e)return e;throw new Error(`Missing target element "${t}" for "${this.identifier}" controller`)}},[`${t}Targets`]:{get(){return this.targets.findAll(t)}},[`has${c(t)}Target`]:{get(){return this.targets.has(t)}}}}function vt(t){const e=ct(t,"values"),r={valueDescriptorMap:{get(){return e.reduce((a,s)=>{const n=M(s,this.identifier),o=this.data.getAttributeNameForKey(n.key);return Object.assign(a,{[o]:n})},{})}}};return e.reduce((a,s)=>Object.assign(a,mt(s)),r)}function mt(t,e){const r=M(t,e),{key:a,name:s,reader:n,writer:o}=r;return{[s]:{get(){const i=this.data.get(a);return i!==null?n(i):r.defaultValue},set(i){i===void 0?this.data.delete(a):this.data.set(a,o(i))}},[`has${c(s)}`]:{get(){return this.data.has(a)||r.hasCustomDefaultValue}}}}function M([t,e],r){return $t({controller:r,token:t,typeDefinition:e})}function T(t){switch(t){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function p(t){switch(typeof t){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray(t))return"array";if(Object.prototype.toString.call(t)==="[object Object]")return"object"}function bt(t){const e=T(t.typeObject.type);if(!e)return;const r=p(t.typeObject.default);if(e!==r){const a=t.controller?`${t.controller}.${t.token}`:t.token;throw new Error(`The specified default value for the Stimulus Value "${a}" must match the defined type "${e}". The provided default value of "${t.typeObject.default}" is of type "${r}".`)}return e}function _t(t){const e=bt({controller:t.controller,token:t.token,typeObject:t.typeDefinition}),r=p(t.typeDefinition),a=T(t.typeDefinition),s=e||r||a;if(s)return s;const n=t.controller?`${t.controller}.${t.typeDefinition}`:t.token;throw new Error(`Unknown value type "${n}" for "${t.token}" value`)}function yt(t){const e=T(t);if(e)return wt[e];const r=t.default;return r!==void 0?r:t}function $t(t){const e=`${ut(t.token)}-value`,r=_t(t);return{type:r,key:e,name:f(e),get defaultValue(){return yt(t.typeDefinition)},get hasCustomDefaultValue(){return p(t.typeDefinition)!==void 0},reader:Ot[r],writer:F[r]||F.default}}const wt={get array(){return[]},boolean:!1,number:0,get object(){return{}},string:""},Ot={array(t){const e=JSON.parse(t);if(!Array.isArray(e))throw new TypeError(`expected value of type "array" but instead got value "${t}" of type "${p(e)}"`);return e},boolean(t){return!(t=="0"||String(t).toLowerCase()=="false")},number(t){return Number(t)},object(t){const e=JSON.parse(t);if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError(`expected value of type "object" but instead got value "${t}" of type "${p(e)}"`);return e},string(t){return t}},F={default:Tt,array:H,object:H};function H(t){return JSON.stringify(t)}function Tt(t){return`${t}`}class g{constructor(e){this.context=e}static get shouldLoad(){return!0}get application(){return this.context.application}get scope(){return this.context.scope}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get targets(){return this.scope.targets}get classes(){return this.scope.classes}get data(){return this.scope.data}initialize(){}connect(){}disconnect(){}dispatch(e,{target:r=this.element,detail:a={},prefix:s=this.identifier,bubbles:n=!0,cancelable:o=!0}={}){const i=s?`${s}:${e}`:e,u=new CustomEvent(i,{detail:a,bubbles:n,cancelable:o});return r.dispatchEvent(u),u}}g.blessings=[dt,pt,vt],g.targets=[],g.values={};var m=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},Ct=typeof m=="object"&&m&&m.Object===Object&&m,jt=Ct,St=jt,Vt=typeof self=="object"&&self&&self.Object===Object&&self,At=St||Vt||Function("return this")(),C=At,Dt=C,Pt=Dt.Symbol,j=Pt,z=j,G=Object.prototype,Nt=G.hasOwnProperty,It=G.toString,v=z?z.toStringTag:void 0;function xt(t){var e=Nt.call(t,v),r=t[v];try{t[v]=void 0;var a=!0}catch{}var s=It.call(t);return a&&(e?t[v]=r:delete t[v]),s}var Et=xt,kt=Object.prototype,Lt=kt.toString;function Rt(t){return Lt.call(t)}var Mt=Rt,K=j,Ft=Et,Ht=Mt,zt="[object Null]",Gt="[object Undefined]",U=K?K.toStringTag:void 0;function Kt(t){return t==null?t===void 0?Gt:zt:U&&U in Object(t)?Ft(t):Ht(t)}var J=Kt;function Ut(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var S=Ut,Jt=J,Wt=S,qt="[object AsyncFunction]",Bt="[object Function]",Xt="[object GeneratorFunction]",Zt="[object Proxy]";function Yt(t){if(!Wt(t))return!1;var e=Jt(t);return e==Bt||e==Xt||e==qt||e==Zt}var Qt=Yt,te=C,ee=te["__core-js_shared__"],re=ee,V=re,W=function(){var t=/[^.]+$/.exec(V&&V.keys&&V.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function ae(t){return!!W&&W in t}var se=ae,ne=Function.prototype,ie=ne.toString;function oe(t){if(t!=null){try{return ie.call(t)}catch{}try{return t+""}catch{}}return""}var ue=oe,ce=Qt,le=se,he=S,de=ue,fe=/[\\^$.*+?()[\]{}|]/g,pe=/^\[object .+?Constructor\]$/,ge=Function.prototype,ve=Object.prototype,me=ge.toString,be=ve.hasOwnProperty,_e=RegExp("^"+me.call(be).replace(fe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ye(t){if(!he(t)||le(t))return!1;var e=ce(t)?_e:pe;return e.test(de(t))}var $e=ye;function we(t,e){return t==null?void 0:t[e]}var Oe=we,Te=$e,Ce=Oe;function je(t,e){var r=Ce(t,e);return Te(r)?r:void 0}var A=je,Se=A,Ve=function(){try{var t=Se(Object,"defineProperty");return t({},"",{}),t}catch{}}(),Ae=Ve,q=Ae;function De(t,e,r){e=="__proto__"&&q?q(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}var Pe=De;function Ne(t,e){return t===e||t!==t&&e!==e}var B=Ne,Ie=Pe,xe=B,Ee=Object.prototype,ke=Ee.hasOwnProperty;function Le(t,e,r){var a=t[e];(!(ke.call(t,e)&&xe(a,r))||r===void 0&&!(e in t))&&Ie(t,e,r)}var Re=Le,Me=Array.isArray,D=Me;function Fe(t){return t!=null&&typeof t=="object"}var He=Fe,ze=J,Ge=He,Ke="[object Symbol]";function Ue(t){return typeof t=="symbol"||Ge(t)&&ze(t)==Ke}var P=Ue,Je=D,We=P,qe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Be=/^\w*$/;function Xe(t,e){if(Je(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||We(t)?!0:Be.test(t)||!qe.test(t)||e!=null&&t in Object(e)}var Ze=Xe,Ye=A,Qe=Ye(Object,"create"),b=Qe,X=b;function tr(){this.__data__=X?X(null):{},this.size=0}var er=tr;function rr(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var ar=rr,sr=b,nr="__lodash_hash_undefined__",ir=Object.prototype,or=ir.hasOwnProperty;function ur(t){var e=this.__data__;if(sr){var r=e[t];return r===nr?void 0:r}return or.call(e,t)?e[t]:void 0}var cr=ur,lr=b,hr=Object.prototype,dr=hr.hasOwnProperty;function fr(t){var e=this.__data__;return lr?e[t]!==void 0:dr.call(e,t)}var pr=fr,gr=b,vr="__lodash_hash_undefined__";function mr(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=gr&&e===void 0?vr:e,this}var br=mr,_r=er,yr=ar,$r=cr,wr=pr,Or=br;function l(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var a=t[e];this.set(a[0],a[1])}}l.prototype.clear=_r,l.prototype.delete=yr,l.prototype.get=$r,l.prototype.has=wr,l.prototype.set=Or;var Tr=l;function Cr(){this.__data__=[],this.size=0}var jr=Cr,Sr=B;function Vr(t,e){for(var r=t.length;r--;)if(Sr(t[r][0],e))return r;return-1}var _=Vr,Ar=_,Dr=Array.prototype,Pr=Dr.splice;function Nr(t){var e=this.__data__,r=Ar(e,t);if(r<0)return!1;var a=e.length-1;return r==a?e.pop():Pr.call(e,r,1),--this.size,!0}var Ir=Nr,xr=_;function Er(t){var e=this.__data__,r=xr(e,t);return r<0?void 0:e[r][1]}var kr=Er,Lr=_;function Rr(t){return Lr(this.__data__,t)>-1}var Mr=Rr,Fr=_;function Hr(t,e){var r=this.__data__,a=Fr(r,t);return a<0?(++this.size,r.push([t,e])):r[a][1]=e,this}var zr=Hr,Gr=jr,Kr=Ir,Ur=kr,Jr=Mr,Wr=zr;function h(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var a=t[e];this.set(a[0],a[1])}}h.prototype.clear=Gr,h.prototype.delete=Kr,h.prototype.get=Ur,h.prototype.has=Jr,h.prototype.set=Wr;var qr=h,Br=A,Xr=C,Zr=Br(Xr,"Map"),Yr=Zr,Z=Tr,Qr=qr,ta=Yr;function ea(){this.size=0,this.__data__={hash:new Z,map:new(ta||Qr),string:new Z}}var ra=ea;function aa(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}var sa=aa,na=sa;function ia(t,e){var r=t.__data__;return na(e)?r[typeof e=="string"?"string":"hash"]:r.map}var y=ia,oa=y;function ua(t){var e=oa(this,t).delete(t);return this.size-=e?1:0,e}var ca=ua,la=y;function ha(t){return la(this,t).get(t)}var da=ha,fa=y;function pa(t){return fa(this,t).has(t)}var ga=pa,va=y;function ma(t,e){var r=va(this,t),a=r.size;return r.set(t,e),this.size+=r.size==a?0:1,this}var ba=ma,_a=ra,ya=ca,$a=da,wa=ga,Oa=ba;function d(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var a=t[e];this.set(a[0],a[1])}}d.prototype.clear=_a,d.prototype.delete=ya,d.prototype.get=$a,d.prototype.has=wa,d.prototype.set=Oa;var Ta=d,Y=Ta,Ca="Expected a function";function N(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(Ca);var r=function(){var a=arguments,s=e?e.apply(this,a):a[0],n=r.cache;if(n.has(s))return n.get(s);var o=t.apply(this,a);return r.cache=n.set(s,o)||n,o};return r.cache=new(N.Cache||Y),r}N.Cache=Y;var ja=N,Sa=ja,Va=500;function Aa(t){var e=Sa(t,function(a){return r.size===Va&&r.clear(),a}),r=e.cache;return e}var Da=Aa,Pa=Da,Na=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ia=/\\(\\)?/g,xa=Pa(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(Na,function(r,a,s,n){e.push(s?n.replace(Ia,"$1"):a||r)}),e}),Ea=xa;function ka(t,e){for(var r=-1,a=t==null?0:t.length,s=Array(a);++r<a;)s[r]=e(t[r],r,t);return s}var La=ka,Q=j,Ra=La,Ma=D,Fa=P,Ha=1/0,tt=Q?Q.prototype:void 0,et=tt?tt.toString:void 0;function rt(t){if(typeof t=="string")return t;if(Ma(t))return Ra(t,rt)+"";if(Fa(t))return et?et.call(t):"";var e=t+"";return e=="0"&&1/t==-Ha?"-0":e}var za=rt,Ga=za;function Ka(t){return t==null?"":Ga(t)}var Ua=Ka,Ja=D,Wa=Ze,qa=Ea,Ba=Ua;function Xa(t,e){return Ja(t)?t:Wa(t,e)?[t]:qa(Ba(t))}var Za=Xa,Ya=9007199254740991,Qa=/^(?:0|[1-9]\d*)$/;function ts(t,e){var r=typeof t;return e=e==null?Ya:e,!!e&&(r=="number"||r!="symbol"&&Qa.test(t))&&t>-1&&t%1==0&&t<e}var es=ts,rs=P,as=1/0;function ss(t){if(typeof t=="string"||rs(t))return t;var e=t+"";return e=="0"&&1/t==-as?"-0":e}var ns=ss,is=Re,os=Za,us=es,at=S,cs=ns;function ls(t,e,r,a){if(!at(t))return t;e=os(e,t);for(var s=-1,n=e.length,o=n-1,i=t;i!=null&&++s<n;){var u=cs(e[s]),O=r;if(u==="__proto__"||u==="constructor"||u==="prototype")return t;if(s!=o){var k=i[u];O=a?a(k,u,i):void 0,O===void 0&&(O=at(k)?k:us(e[s+1])?[]:{})}is(i,u,O),i=i[u]}return t}var hs=ls,ds=hs;function fs(t,e,r){return t==null?t:ds(t,e,r)}var $=fs;const I=t=>t instanceof Date,ps=t=>Object.keys(t).length===0,x=t=>t!=null&&typeof t=="object",gs=(t,...e)=>Object.prototype.hasOwnProperty.call(t,...e),E=t=>x(t)&&ps(t),vs=()=>Object.create(null),st=(t,e)=>t===e?{}:!x(t)||!x(e)?e:I(t)||I(e)?t.valueOf()==e.valueOf()?{}:e:Object.keys(e).reduce((r,a)=>{if(gs(t,a)){const s=st(t[a],e[a]);return E(s)&&!I(s)&&(E(t[a])||!E(e[a]))||(r[a]=s),r}return r},vs());function ms(t){return t!==null&&typeof t=="object"&&!(t instanceof Date)}var bs=Array.isArray;function nt(t,e,r,a){return Object.keys(t).forEach(function(s){var n=s.replace(/\./g,"\\.");if(ms(t[s])&&!bs(t[s])){var o=r&&r+"."+n;a&&e.push(r?o:n),nt(t[s],e,o||n,a)}else{var i=r?r+"."+n:n;e.push(i)}}),e}var _s=function(t,e){return nt(t,[],null,e)};function ys(t){return document.head.querySelector(`meta[name="${t}"]`).getAttribute("content")}function $s(t,e,r){if(r>=t.length)for(var a=r-t.length+1;a--;)t.push(void 0);return t.splice(r,0,t.splice(e,1)[0]),t}class it extends g{connect(){this.getNewWidget()}moveItemUp(e){const r=e.currentTarget;this.moveItemToPosition(r,-1)}moveItemDown(e){const r=e.currentTarget;this.moveItemToPosition(r,1)}moveItemToPosition(e,r){const a=parseInt(e.dataset.itemIndex),s=e.dataset.targetList,n=this.dataValue[s].repeated_items,o=$s(n,a,a+r),i=Object.assign({},this.dataValue);i[s].repeated_items=o,this.dataValue=i}removeItem(e){const r=e.currentTarget,a=r.dataset.itemIndex,s=r.dataset.targetList,n=Object.assign({},this.dataValue);n[s].repeated_items.splice(a,1),this.dataValue=n,this.getNewWidget()}addItem(e){const a=e.currentTarget.dataset.targetList;typeof this.dataValue[a]=="undefined"&&(this.dataValue=Object.assign({},this.dataValue,{[a]:{repeated_items:[]}})),this.dataValue=Object.assign({},this.dataValue,{[a]:{repeated_items:[...this.dataValue[a].repeated_items,{}]}}),this.getNewWidget()}dataValueChanged(e,r){const a=st(e,r),s=_s(a);(a.items&&a.items.repeated_items&&JSON.stringify(Object.values(a.items.repeated_items)[0])===JSON.stringify({})||s.filter(o=>o.match(/^id$|\.id$/g)).length>0)&&this.getNewWidget()}updateField(e){const r=e.currentTarget.name,a=$(this.dataValue,r,e.currentTarget.value);this.dataValue=a}selectResult(e){const r=e.currentTarget,a=JSON.parse(r.dataset.returnObject),s=$(this.dataValue,r.dataset.fieldName,a.id);this.dataValue=s,this.getNewWidget()}removeResource(e){const r=e.currentTarget,a=$(this.dataValue,r.dataset.fieldName,null);this.dataValue=a,this.getNewWidget()}receiveModalReturn(e){const r=e,a=$(this.dataValue,r.return_payload.field_name,r.payload.id);this.dataValue=a,this.getNewWidget()}getNewWidget(){fetch(`${this.setupValue.src}.json`,{method:"POST",headers:{"Content-Type":"application/json","X-CSRF-Token":ys("csrf-token")},body:JSON.stringify({widget_id:this.widgetIdValue,data:this.dataValue,setup:this.setupValue,max_items:this.maxItemsValue})}).then(e=>e.json()).then(e=>{this.element.innerHTML=e.html_data})}}it.values={widgetId:String,setup:Object,data:Object,maxItems:{type:Number,default:0}};function ot(t,e=[],r={},a=""){const s=document.createElement(t);s.classList.add(...e);for(const n in r)s.setAttribute(n,r[n]);return typeof a=="string"&&(s.innerText=a),s}class w extends g{connect(){this._loadDefaultResults()}showForm(){this.element.classList.add(this.activeListClass)}cancel(e){e.preventDefault(),this.element.classList.remove(this.activeListClass)}errorValueChanged(){this.errorValue==""?this.element.classList.remove(this.fetchErrorClass):this.element.classList.add(this.fetchErrorClass)}resultActiveValueChanged(){if(this.resultTargets.forEach(e=>{e.classList.remove(this.activeResultClass)}),!isNaN(this.resultActiveValue)){const e=this.resultActiveValue;this.resultTargets[e].classList.add(this.activeResultClass)}}mouseOver(e){const r=e.currentTarget;this.resultActiveValue=parseInt(r.dataset.index)}mouseOut(e){this.resultActiveValue=null}resultsValueChanged(){const e=this.fieldNameValue;this.resultTargets.forEach(r=>r.remove()),this.resultActiveValue=null,this.resultsValue.forEach((r,a)=>{const s=Object.assign({receive_index:this.inputTarget.dataset.itemIndex},r),n=ot("li",["kubik-wysiwyg-component--item-autocomplete-results-list-item"],{"data-kubik-autocomplete-target":"result","data-index":a,"data-return-id":s.id,"data-return-object":JSON.stringify(s),"data-field-name":e,"data-action":"mouseout->kubik-autocomplete#mouseOut mouseover->kubik-autocomplete#mouseOver mousedown->kubik-widget#selectResult mousedown->kubik-autocomplete#blur"},r.return_object.display_name);this.resultsListTarget.insertBefore(n,this.feedbackTarget)}),this.resultActiveValue>this.resultsValue.length&&(this.resultActiveValue=this.resultsValue.length-1)}load(){this._fetchResults()}focus(){this.element.classList.add(this.activeClass)}blur(){this.errorValue="",this.inputTarget.blur(),this.connectionController.abort(),this.element.classList.remove(this.fetchErrorClass),this.element.classList.remove(this.loadingClass),this.element.classList.remove(this.activeClass)}_sourceURL(){const e=[window.location.protocol,window.location.host].join("//"),r=new URLSearchParams({kubik_search:"1",q:this.inputTarget.value});return new URL([this.srcValue,".json?",r.toString()].join(""),e)}_loadDefaultResults(){this._fetchResults()}keyCheck(e){switch(e.key){case"Down":case"ArrowDown":this._nextResult(),e.preventDefault(),e.stopImmediatePropagation();return;case"Up":case"ArrowUp":this._previousResult(),e.preventDefault(),e.stopImmediatePropagation();return;case"Enter":const r=this.resultTargets[this.resultActiveValue];r&&r.dispatchEvent(new Event("mousedown")),e.preventDefault(),e.stopImmediatePropagation();return;case"Backspace":e.stopImmediatePropagation();return}}_previousResult(){isNaN(this.resultActiveValue)?this.resultActiveValue=this.resultTargets.length>1?this.resultTargets.length-1:0:this.resultActiveValue=this.resultActiveValue==0?this.resultTargets.length-1:this.resultActiveValue-1}_nextResult(){isNaN(this.resultActiveValue)?this.resultActiveValue=0:this.resultActiveValue=this.resultActiveValue+1==this.resultTargets.length?0:this.resultActiveValue+1}_fetchResults(){this.errorValue="",this.feedbackTarget.innerHTML="Loading...",this.connectionController=new AbortController,fetch(this._sourceURL(),{headers:{"Content-Type":"application/json"}}).then(e=>e.json()).then(e=>{this.errorValue="",e.length>0&&(this.resultsValue=e,this.queryValue=this.inputTarget.value),this.inputTarget.value==""?(this.queryValue="",this.feedbackTarget.innerHTML="",this.feedbackTarget.insertAdjacentHTML("beforeend",`Showing latest <span>${e.length}</span> results`)):(this.feedbackTarget.innerHTML="",this.queryValue==""?this.feedbackTarget.insertAdjacentHTML("beforeend",`Showing latest <span>${e.length}</span> results`):this.feedbackTarget.insertAdjacentHTML("beforeend",`Showing results for <span>${this.queryValue}</span>`)),this.queryValue==this.inputTarget.value?this.element.classList.remove(this.noResultsClass):this.element.classList.add(this.noResultsClass)}).catch(e=>{this.feedbackTarget.innerHTML="",this.errorValue="Error loading the results"})}}w.classes=["fetchError","loading","active","activeResult","noResults","activeList"],w.targets=["feedback","input","resultsList","result"],w.values={returnController:String,src:String,fieldName:String,query:{type:String,default:""},error:{type:String,default:""},results:{type:Array,default:[]},resultActive:Number};const ws=function(e={},r){let a={"data-controller":"kubik-widget","data-kubik-widget-setup-value":JSON.stringify(e.setup),"data-kubik-widget-data-value":JSON.stringify(r),"data-kubik-widget-widget-id-value":e.setup.widget_id,id:e.setup.widget_id};return e.items_limit&&(a["data-kubik-widget-items-max-items-value"]=e.items_limit),ot("div",["kubik_media_wrapper","kubik-wysiwyg-component"],a)};class Os{static get defaultWidgetConfig(){return{data_src:"/admin/kubik_wysiwyg_widget/show"}}constructor({data:e,api:r}){this.data=e,this.api=r,this.randomString=Math.random().toString(36).substring(2,7),this.label=this.constructor.toolbox.title;const a=this.constructor.defaultWidgetConfig,s=this.constructor.widgetConfig;this.config=Object.assign(a,s)}render(){const e=[this.config.widget_name,this.randomString].join("-");return ws({setup:{label:this.label,widget_model:this.config.widget_model,src:this.config.data_src,widget_id:e,widget_type:this.config.widget_name,config:this.config}},this.data)}save(e){const r=JSON.parse(e.attributes["data-kubik-widget-data-value"].value);let a={};return this.config.tabs.forEach(s=>{a[s.name]=r[s.name]}),a}validate(e){return!0}}var Ts={KubikWidgetController:it,PluginFactory:Os,KubikAutocompleteController:w};return Ts});
1
+ (function(p,u){typeof exports=="object"&&typeof module!="undefined"?module.exports=u():typeof define=="function"&&define.amd?define(u):(p=typeof globalThis!="undefined"?globalThis:p||self,p.wysiwyg=u())})(this,function(){"use strict";function p(e){return e.replace(/(?:[_-])([a-z0-9])/g,(t,r)=>r.toUpperCase())}function u(e){return e.charAt(0).toUpperCase()+e.slice(1)}function ue(e){return e.replace(/([A-Z])/g,(t,r)=>`-${r.toLowerCase()}`)}function L(e,t){const r=R(e);return Array.from(r.reduce((a,s)=>(he(s,t).forEach(n=>a.add(n)),a),new Set))}function le(e,t){return R(e).reduce((a,s)=>(a.push(...de(s,t)),a),[])}function R(e){const t=[];for(;e;)t.push(e),e=Object.getPrototypeOf(e);return t.reverse()}function he(e,t){const r=e[t];return Array.isArray(r)?r:[]}function de(e,t){const r=e[t];return r?Object.keys(r).map(a=>[a,r[a]]):[]}(()=>{function e(r){function a(){return Reflect.construct(r,arguments,new.target)}return a.prototype=Object.create(r.prototype,{constructor:{value:a}}),Reflect.setPrototypeOf(a,r),a}function t(){const a=e(function(){this.a.call(this)});return a.prototype.a=function(){},new a}try{return t(),e}catch{return a=>class extends a{}}})();function fe(e){return L(e,"classes").reduce((r,a)=>Object.assign(r,pe(a)),{})}function pe(e){return{[`${e}Class`]:{get(){const{classes:t}=this;if(t.has(e))return t.get(e);{const r=t.getAttributeName(e);throw new Error(`Missing attribute "${r}"`)}}},[`${e}Classes`]:{get(){return this.classes.getAll(e)}},[`has${u(e)}Class`]:{get(){return this.classes.has(e)}}}}function ge(e){return L(e,"targets").reduce((r,a)=>Object.assign(r,ve(a)),{})}function ve(e){return{[`${e}Target`]:{get(){const t=this.targets.find(e);if(t)return t;throw new Error(`Missing target element "${e}" for "${this.identifier}" controller`)}},[`${e}Targets`]:{get(){return this.targets.findAll(e)}},[`has${u(e)}Target`]:{get(){return this.targets.has(e)}}}}function me(e){const t=le(e,"values"),r={valueDescriptorMap:{get(){return t.reduce((a,s)=>{const n=M(s,this.identifier),o=this.data.getAttributeNameForKey(n.key);return Object.assign(a,{[o]:n})},{})}}};return t.reduce((a,s)=>Object.assign(a,be(s)),r)}function be(e,t){const r=M(e,t),{key:a,name:s,reader:n,writer:o}=r;return{[s]:{get(){const i=this.data.get(a);return i!==null?n(i):r.defaultValue},set(i){i===void 0?this.data.delete(a):this.data.set(a,o(i))}},[`has${u(s)}`]:{get(){return this.data.has(a)||r.hasCustomDefaultValue}}}}function M([e,t],r){return we({controller:r,token:e,typeDefinition:t})}function O(e){switch(e){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function g(e){switch(typeof e){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray(e))return"array";if(Object.prototype.toString.call(e)==="[object Object]")return"object"}function _e(e){const t=O(e.typeObject.type);if(!t)return;const r=g(e.typeObject.default);if(t!==r){const a=e.controller?`${e.controller}.${e.token}`:e.token;throw new Error(`The specified default value for the Stimulus Value "${a}" must match the defined type "${t}". The provided default value of "${e.typeObject.default}" is of type "${r}".`)}return t}function ye(e){const t=_e({controller:e.controller,token:e.token,typeObject:e.typeDefinition}),r=g(e.typeDefinition),a=O(e.typeDefinition),s=t||r||a;if(s)return s;const n=e.controller?`${e.controller}.${e.typeDefinition}`:e.token;throw new Error(`Unknown value type "${n}" for "${e.token}" value`)}function $e(e){const t=O(e);if(t)return Te[t];const r=e.default;return r!==void 0?r:e}function we(e){const t=`${ue(e.token)}-value`,r=ye(e);return{type:r,key:t,name:p(t),get defaultValue(){return $e(e.typeDefinition)},get hasCustomDefaultValue(){return g(e.typeDefinition)!==void 0},reader:Oe[r],writer:F[r]||F.default}}const Te={get array(){return[]},boolean:!1,number:0,get object(){return{}},string:""},Oe={array(e){const t=JSON.parse(e);if(!Array.isArray(t))throw new TypeError(`expected value of type "array" but instead got value "${e}" of type "${g(t)}"`);return t},boolean(e){return!(e=="0"||String(e).toLowerCase()=="false")},number(e){return Number(e)},object(e){const t=JSON.parse(e);if(t===null||typeof t!="object"||Array.isArray(t))throw new TypeError(`expected value of type "object" but instead got value "${e}" of type "${g(t)}"`);return t},string(e){return e}},F={default:Ce,array:H,object:H};function H(e){return JSON.stringify(e)}function Ce(e){return`${e}`}class l{constructor(t){this.context=t}static get shouldLoad(){return!0}get application(){return this.context.application}get scope(){return this.context.scope}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get targets(){return this.scope.targets}get classes(){return this.scope.classes}get data(){return this.scope.data}initialize(){}connect(){}disconnect(){}dispatch(t,{target:r=this.element,detail:a={},prefix:s=this.identifier,bubbles:n=!0,cancelable:o=!0}={}){const i=s?`${s}:${t}`:t,c=new CustomEvent(i,{detail:a,bubbles:n,cancelable:o});return r.dispatchEvent(c),c}}l.blessings=[fe,ge,me],l.targets=[],l.values={};var b=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},je=typeof b=="object"&&b&&b.Object===Object&&b,Se=je,Ve=Se,Ae=typeof self=="object"&&self&&self.Object===Object&&self,De=Ve||Ae||Function("return this")(),C=De,Pe=C,xe=Pe.Symbol,j=xe,z=j,G=Object.prototype,Ne=G.hasOwnProperty,Ie=G.toString,v=z?z.toStringTag:void 0;function ke(e){var t=Ne.call(e,v),r=e[v];try{e[v]=void 0;var a=!0}catch{}var s=Ie.call(e);return a&&(t?e[v]=r:delete e[v]),s}var Ee=ke,Le=Object.prototype,Re=Le.toString;function Me(e){return Re.call(e)}var Fe=Me,K=j,He=Ee,ze=Fe,Ge="[object Null]",Ke="[object Undefined]",U=K?K.toStringTag:void 0;function Ue(e){return e==null?e===void 0?Ke:Ge:U&&U in Object(e)?He(e):ze(e)}var W=Ue;function We(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var S=We,Je=W,qe=S,Be="[object AsyncFunction]",Xe="[object Function]",Ze="[object GeneratorFunction]",Ye="[object Proxy]";function Qe(e){if(!qe(e))return!1;var t=Je(e);return t==Xe||t==Ze||t==Be||t==Ye}var et=Qe,tt=C,rt=tt["__core-js_shared__"],at=rt,V=at,J=function(){var e=/[^.]+$/.exec(V&&V.keys&&V.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function st(e){return!!J&&J in e}var nt=st,it=Function.prototype,ot=it.toString;function ct(e){if(e!=null){try{return ot.call(e)}catch{}try{return e+""}catch{}}return""}var ut=ct,lt=et,ht=nt,dt=S,ft=ut,pt=/[\\^$.*+?()[\]{}|]/g,gt=/^\[object .+?Constructor\]$/,vt=Function.prototype,mt=Object.prototype,bt=vt.toString,_t=mt.hasOwnProperty,yt=RegExp("^"+bt.call(_t).replace(pt,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function $t(e){if(!dt(e)||ht(e))return!1;var t=lt(e)?yt:gt;return t.test(ft(e))}var wt=$t;function Tt(e,t){return e==null?void 0:e[t]}var Ot=Tt,Ct=wt,jt=Ot;function St(e,t){var r=jt(e,t);return Ct(r)?r:void 0}var A=St,Vt=A,At=function(){try{var e=Vt(Object,"defineProperty");return e({},"",{}),e}catch{}}(),Dt=At,q=Dt;function Pt(e,t,r){t=="__proto__"&&q?q(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}var xt=Pt;function Nt(e,t){return e===t||e!==e&&t!==t}var B=Nt,It=xt,kt=B,Et=Object.prototype,Lt=Et.hasOwnProperty;function Rt(e,t,r){var a=e[t];(!(Lt.call(e,t)&&kt(a,r))||r===void 0&&!(t in e))&&It(e,t,r)}var Mt=Rt,Ft=Array.isArray,D=Ft;function Ht(e){return e!=null&&typeof e=="object"}var zt=Ht,Gt=W,Kt=zt,Ut="[object Symbol]";function Wt(e){return typeof e=="symbol"||Kt(e)&&Gt(e)==Ut}var P=Wt,Jt=D,qt=P,Bt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Xt=/^\w*$/;function Zt(e,t){if(Jt(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||qt(e)?!0:Xt.test(e)||!Bt.test(e)||t!=null&&e in Object(t)}var Yt=Zt,Qt=A,er=Qt(Object,"create"),_=er,X=_;function tr(){this.__data__=X?X(null):{},this.size=0}var rr=tr;function ar(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var sr=ar,nr=_,ir="__lodash_hash_undefined__",or=Object.prototype,cr=or.hasOwnProperty;function ur(e){var t=this.__data__;if(nr){var r=t[e];return r===ir?void 0:r}return cr.call(t,e)?t[e]:void 0}var lr=ur,hr=_,dr=Object.prototype,fr=dr.hasOwnProperty;function pr(e){var t=this.__data__;return hr?t[e]!==void 0:fr.call(t,e)}var gr=pr,vr=_,mr="__lodash_hash_undefined__";function br(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=vr&&t===void 0?mr:t,this}var _r=br,yr=rr,$r=sr,wr=lr,Tr=gr,Or=_r;function h(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var a=e[t];this.set(a[0],a[1])}}h.prototype.clear=yr,h.prototype.delete=$r,h.prototype.get=wr,h.prototype.has=Tr,h.prototype.set=Or;var Cr=h;function jr(){this.__data__=[],this.size=0}var Sr=jr,Vr=B;function Ar(e,t){for(var r=e.length;r--;)if(Vr(e[r][0],t))return r;return-1}var y=Ar,Dr=y,Pr=Array.prototype,xr=Pr.splice;function Nr(e){var t=this.__data__,r=Dr(t,e);if(r<0)return!1;var a=t.length-1;return r==a?t.pop():xr.call(t,r,1),--this.size,!0}var Ir=Nr,kr=y;function Er(e){var t=this.__data__,r=kr(t,e);return r<0?void 0:t[r][1]}var Lr=Er,Rr=y;function Mr(e){return Rr(this.__data__,e)>-1}var Fr=Mr,Hr=y;function zr(e,t){var r=this.__data__,a=Hr(r,e);return a<0?(++this.size,r.push([e,t])):r[a][1]=t,this}var Gr=zr,Kr=Sr,Ur=Ir,Wr=Lr,Jr=Fr,qr=Gr;function d(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var a=e[t];this.set(a[0],a[1])}}d.prototype.clear=Kr,d.prototype.delete=Ur,d.prototype.get=Wr,d.prototype.has=Jr,d.prototype.set=qr;var Br=d,Xr=A,Zr=C,Yr=Xr(Zr,"Map"),Qr=Yr,Z=Cr,ea=Br,ta=Qr;function ra(){this.size=0,this.__data__={hash:new Z,map:new(ta||ea),string:new Z}}var aa=ra;function sa(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var na=sa,ia=na;function oa(e,t){var r=e.__data__;return ia(t)?r[typeof t=="string"?"string":"hash"]:r.map}var $=oa,ca=$;function ua(e){var t=ca(this,e).delete(e);return this.size-=t?1:0,t}var la=ua,ha=$;function da(e){return ha(this,e).get(e)}var fa=da,pa=$;function ga(e){return pa(this,e).has(e)}var va=ga,ma=$;function ba(e,t){var r=ma(this,e),a=r.size;return r.set(e,t),this.size+=r.size==a?0:1,this}var _a=ba,ya=aa,$a=la,wa=fa,Ta=va,Oa=_a;function f(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var a=e[t];this.set(a[0],a[1])}}f.prototype.clear=ya,f.prototype.delete=$a,f.prototype.get=wa,f.prototype.has=Ta,f.prototype.set=Oa;var Ca=f,Y=Ca,ja="Expected a function";function x(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(ja);var r=function(){var a=arguments,s=t?t.apply(this,a):a[0],n=r.cache;if(n.has(s))return n.get(s);var o=e.apply(this,a);return r.cache=n.set(s,o)||n,o};return r.cache=new(x.Cache||Y),r}x.Cache=Y;var Sa=x,Va=Sa,Aa=500;function Da(e){var t=Va(e,function(a){return r.size===Aa&&r.clear(),a}),r=t.cache;return t}var Pa=Da,xa=Pa,Na=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ia=/\\(\\)?/g,ka=xa(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Na,function(r,a,s,n){t.push(s?n.replace(Ia,"$1"):a||r)}),t}),Ea=ka;function La(e,t){for(var r=-1,a=e==null?0:e.length,s=Array(a);++r<a;)s[r]=t(e[r],r,e);return s}var Ra=La,Q=j,Ma=Ra,Fa=D,Ha=P,za=1/0,ee=Q?Q.prototype:void 0,te=ee?ee.toString:void 0;function re(e){if(typeof e=="string")return e;if(Fa(e))return Ma(e,re)+"";if(Ha(e))return te?te.call(e):"";var t=e+"";return t=="0"&&1/e==-za?"-0":t}var Ga=re,Ka=Ga;function Ua(e){return e==null?"":Ka(e)}var Wa=Ua,Ja=D,qa=Yt,Ba=Ea,Xa=Wa;function Za(e,t){return Ja(e)?e:qa(e,t)?[e]:Ba(Xa(e))}var Ya=Za,Qa=9007199254740991,es=/^(?:0|[1-9]\d*)$/;function ts(e,t){var r=typeof e;return t=t==null?Qa:t,!!t&&(r=="number"||r!="symbol"&&es.test(e))&&e>-1&&e%1==0&&e<t}var rs=ts,as=P,ss=1/0;function ns(e){if(typeof e=="string"||as(e))return e;var t=e+"";return t=="0"&&1/e==-ss?"-0":t}var is=ns,os=Mt,cs=Ya,us=rs,ae=S,ls=is;function hs(e,t,r,a){if(!ae(e))return e;t=cs(t,e);for(var s=-1,n=t.length,o=n-1,i=e;i!=null&&++s<n;){var c=ls(t[s]),T=r;if(c==="__proto__"||c==="constructor"||c==="prototype")return e;if(s!=o){var E=i[c];T=a?a(E,c,i):void 0,T===void 0&&(T=ae(E)?E:us(t[s+1])?[]:{})}os(i,c,T),i=i[c]}return e}var ds=hs,fs=ds;function ps(e,t,r){return e==null?e:fs(e,t,r)}var m=ps;const N=e=>e instanceof Date,gs=e=>Object.keys(e).length===0,I=e=>e!=null&&typeof e=="object",vs=(e,...t)=>Object.prototype.hasOwnProperty.call(e,...t),k=e=>I(e)&&gs(e),ms=()=>Object.create(null),se=(e,t)=>e===t?{}:!I(e)||!I(t)?t:N(e)||N(t)?e.valueOf()==t.valueOf()?{}:t:Object.keys(t).reduce((r,a)=>{if(vs(e,a)){const s=se(e[a],t[a]);return k(s)&&!N(s)&&(k(e[a])||!k(t[a]))||(r[a]=s),r}return r},ms());function bs(e){return e!==null&&typeof e=="object"&&!(e instanceof Date)}var _s=Array.isArray;function ne(e,t,r,a){return Object.keys(e).forEach(function(s){var n=s.replace(/\./g,"\\.");if(bs(e[s])&&!_s(e[s])){var o=r&&r+"."+n;a&&t.push(r?o:n),ne(e[s],t,o||n,a)}else{var i=r?r+"."+n:n;t.push(i)}}),t}var ys=function(e,t){return ne(e,[],null,t)};function $s(e){return document.head.querySelector(`meta[name="${e}"]`).getAttribute("content")}function ws(e,t,r){if(r>=e.length)for(var a=r-e.length+1;a--;)e.push(void 0);return e.splice(r,0,e.splice(t,1)[0]),e}class ie extends l{connect(){this.getNewWidget()}moveItemUp(t){const r=t.currentTarget;this.moveItemToPosition(r,-1)}moveItemDown(t){const r=t.currentTarget;this.moveItemToPosition(r,1)}moveItemToPosition(t,r){const a=parseInt(t.dataset.itemIndex),s=t.dataset.targetList,n=this.dataValue[s].repeated_items,o=ws(n,a,a+r),i=Object.assign({},this.dataValue);i[s].repeated_items=o,this.dataValue=i}removeItem(t){const r=t.currentTarget,a=r.dataset.itemIndex,s=r.dataset.targetList,n=Object.assign({},this.dataValue);n[s].repeated_items.splice(a,1),this.dataValue=n,this.getNewWidget()}addItem(t){const a=t.currentTarget.dataset.targetList;typeof this.dataValue[a]=="undefined"&&(this.dataValue=Object.assign({},this.dataValue,{[a]:{repeated_items:[]}})),this.dataValue=Object.assign({},this.dataValue,{[a]:{repeated_items:[...this.dataValue[a].repeated_items,{}]}}),this.getNewWidget()}dataValueChanged(t,r){const a=se(t,r),s=ys(a);(a.items&&a.items.repeated_items&&JSON.stringify(Object.values(a.items.repeated_items)[0])===JSON.stringify({})||s.filter(o=>o.match(/^id$|\.id$/g)).length>0)&&this.getNewWidget()}updateField(t){const r=t.currentTarget.name;let a=t.currentTarget.value;t.currentTarget.dataset.boolean==="true"&&t.currentTarget.type==="checkbox"&&!t.currentTarget.checked&&(a=0),t.currentTarget.dataset.checkbox==="true"&&t.currentTarget.type==="checkbox"&&(a=Array.from(t.currentTarget.parentElement.parentElement.querySelectorAll("[name=`${event.currentTarget.name}`]")).map(n=>n.checked?n.value:null).filter(n=>n!==null));const s=m(this.dataValue,r,a);this.dataValue=s}updateWysiwygField(t){const r=t.currentTarget.dataset.fieldName,a=m(this.dataValue,r,t.currentTarget.innerHTML);this.dataValue=a}selectResult(t){const r=t.currentTarget,a=JSON.parse(r.dataset.returnObject),s=m(this.dataValue,r.dataset.fieldName,a.id);this.dataValue=s,this.getNewWidget()}removeResource(t){const r=t.currentTarget,a=m(this.dataValue,r.dataset.fieldName,null);this.dataValue=a,this.getNewWidget()}receiveModalReturn(t){const r=t,a=m(this.dataValue,r.return_payload.field_name,r.payload.id);this.dataValue=a,this.getNewWidget()}getNewWidget(){fetch(`${this.setupValue.src}.json`,{method:"POST",headers:{"Content-Type":"application/json","X-CSRF-Token":$s("csrf-token")},body:JSON.stringify({widget_id:this.widgetIdValue,data:this.dataValue,setup:this.setupValue,max_items:this.maxItemsValue})}).then(t=>t.json()).then(t=>{this.element.innerHTML=t.html_data})}}ie.values={widgetId:String,setup:Object,data:Object,maxItems:{type:Number,default:0}};class oe extends l{connect(){}toggleItem(t){Array.from(this.element.classList).includes(this.expandedClass)?this.element.classList.remove(this.expandedClass):this.element.classList.add(this.expandedClass)}}oe.classes=["expanded"];function ce(e,t=[],r={},a=""){const s=document.createElement(e);s.classList.add(...t);for(const n in r)s.setAttribute(n,r[n]);return typeof a=="string"&&(s.innerText=a),s}class w extends l{connect(){this._loadDefaultResults()}showForm(){this.element.classList.add(this.activeListClass)}cancel(t){t.preventDefault(),this.element.classList.remove(this.activeListClass)}errorValueChanged(){this.errorValue==""?this.element.classList.remove(this.fetchErrorClass):this.element.classList.add(this.fetchErrorClass)}resultActiveValueChanged(){if(this.resultTargets.forEach(t=>{t.classList.remove(this.activeResultClass)}),!isNaN(this.resultActiveValue)){const t=this.resultActiveValue;this.resultTargets[t].classList.add(this.activeResultClass)}}mouseOver(t){const r=t.currentTarget;this.resultActiveValue=parseInt(r.dataset.index)}mouseOut(t){this.resultActiveValue=null}resultsValueChanged(){const t=this.fieldNameValue;this.resultTargets.forEach(r=>r.remove()),this.resultActiveValue=null,this.resultsValue.forEach((r,a)=>{const s=Object.assign({receive_index:this.inputTarget.dataset.itemIndex},r),n=ce("li",["kubik-wysiwyg-component--item-autocomplete-results-list-item"],{"data-kubik-autocomplete-target":"result","data-index":a,"data-return-id":s.id,"data-return-object":JSON.stringify(s),"data-field-name":t,"data-action":"mouseout->kubik-autocomplete#mouseOut mouseover->kubik-autocomplete#mouseOver mousedown->kubik-widget#selectResult mousedown->kubik-autocomplete#blur"},r.return_object.display_name);this.resultsListTarget.insertBefore(n,this.feedbackTarget)}),this.resultActiveValue>this.resultsValue.length&&(this.resultActiveValue=this.resultsValue.length-1)}load(){this._fetchResults()}focus(){this.element.classList.add(this.activeClass)}blur(){this.errorValue="",this.inputTarget.blur(),this.connectionController.abort(),this.element.classList.remove(this.fetchErrorClass),this.element.classList.remove(this.loadingClass),this.element.classList.remove(this.activeClass)}_sourceURL(){const t=[window.location.protocol,window.location.host].join("//"),r=new URLSearchParams({kubik_search:"1",q:this.inputTarget.value});return new URL([this.srcValue,".json?",r.toString()].join(""),t)}_loadDefaultResults(){this._fetchResults()}keyCheck(t){switch(t.key){case"Down":case"ArrowDown":this._nextResult(),t.preventDefault(),t.stopImmediatePropagation();return;case"Up":case"ArrowUp":this._previousResult(),t.preventDefault(),t.stopImmediatePropagation();return;case"Enter":const r=this.resultTargets[this.resultActiveValue];r&&r.dispatchEvent(new Event("mousedown")),t.preventDefault(),t.stopImmediatePropagation();return;case"Backspace":t.stopImmediatePropagation();return}}_previousResult(){isNaN(this.resultActiveValue)?this.resultActiveValue=this.resultTargets.length>1?this.resultTargets.length-1:0:this.resultActiveValue=this.resultActiveValue==0?this.resultTargets.length-1:this.resultActiveValue-1}_nextResult(){isNaN(this.resultActiveValue)?this.resultActiveValue=0:this.resultActiveValue=this.resultActiveValue+1==this.resultTargets.length?0:this.resultActiveValue+1}_fetchResults(){this.errorValue="",this.feedbackTarget.innerHTML="Loading...",this.connectionController=new AbortController,fetch(this._sourceURL(),{headers:{"Content-Type":"application/json"}}).then(t=>t.json()).then(t=>{this.errorValue="",t.length>0&&(this.resultsValue=t,this.queryValue=this.inputTarget.value),this.inputTarget.value==""?(this.queryValue="",this.feedbackTarget.innerHTML="",this.feedbackTarget.insertAdjacentHTML("beforeend",`Showing latest <span>${t.length}</span> results`)):(this.feedbackTarget.innerHTML="",this.queryValue==""?this.feedbackTarget.insertAdjacentHTML("beforeend",`Showing latest <span>${t.length}</span> results`):this.feedbackTarget.insertAdjacentHTML("beforeend",`Showing results for <span>${this.queryValue}</span>`)),this.queryValue==this.inputTarget.value?this.element.classList.remove(this.noResultsClass):this.element.classList.add(this.noResultsClass)}).catch(t=>{this.feedbackTarget.innerHTML="",this.errorValue="Error loading the results"})}}w.classes=["fetchError","loading","active","activeResult","noResults","activeList"],w.targets=["feedback","input","resultsList","result"],w.values={returnController:String,src:String,fieldName:String,query:{type:String,default:""},error:{type:String,default:""},results:{type:Array,default:[]},resultActive:Number};const Ts=function(t={},r){let a={"data-controller":"kubik-widget","data-kubik-widget-setup-value":JSON.stringify(t.setup),"data-kubik-widget-data-value":JSON.stringify(r),"data-kubik-widget-widget-id-value":t.setup.widget_id,"data-kubik-widget-widget-icon":t.setup.config.icon,id:t.setup.widget_id};return t.items_limit&&(a["data-kubik-widget-items-max-items-value"]=t.items_limit),ce("div",["kubik_media_wrapper","kubik-wysiwyg-component"],a)};class Os{static get defaultWidgetConfig(){return{data_src:"/admin/kubik_wysiwyg_widget/show"}}constructor({data:t,api:r}){this.data=t,this.api=r,this.randomString=Math.random().toString(36).substring(2,7),this.label=this.constructor.toolbox.title;const a=this.constructor.defaultWidgetConfig,s=this.constructor.widgetConfig;this.config=Object.assign(a,s)}render(){const t=[this.config.widget_name,this.randomString].join("-");return Ts({setup:{label:this.label,widget_model:this.config.widget_model,src:this.config.data_src,widget_id:t,widget_type:this.config.widget_name,config:this.config}},this.data)}save(t){const r=JSON.parse(t.attributes["data-kubik-widget-data-value"].value);let a={};return this.config.tabs.forEach(s=>{a[s.name]=r[s.name]}),a}validate(t){return!0}}var Cs={KubikWidgetController:ie,KubikRepeaterController:oe,PluginFactory:Os,KubikAutocompleteController:w};return Cs});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubik-cms/wysiwyg",
3
- "version": "0.1.10",
3
+ "version": "0.1.12",
4
4
  "license": "MIT",
5
5
  "author": "Primate Inc.",
6
6
  "contributors": [