@kubik-cms/wysiwyg 0.1.14 → 0.1.17

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.
@@ -1030,12 +1030,14 @@ kubik_widget_controller_default.values = {
1030
1030
  maxItems: { type: Number, default: 0 }
1031
1031
  };
1032
1032
  class kubik_repeater_controller_default extends Controller {
1033
- connect() {
1033
+ updateHeader(event) {
1034
+ this.headerTarget.innerHTML = event.currentTarget.value;
1034
1035
  }
1035
1036
  toggleItem(event) {
1036
1037
  Array.from(this.element.classList).includes(this.expandedClass) ? this.element.classList.remove(this.expandedClass) : this.element.classList.add(this.expandedClass);
1037
1038
  }
1038
1039
  }
1040
+ kubik_repeater_controller_default.targets = ["header"];
1039
1041
  kubik_repeater_controller_default.classes = ["expanded"];
1040
1042
  function makeElement(tagName, classNames = [], attributes = {}, textContent = "") {
1041
1043
  const el = document.createElement(tagName);
@@ -1224,6 +1226,13 @@ kubik_autocomplete_controller_default.values = {
1224
1226
  results: { type: Array, default: [] },
1225
1227
  resultActive: Number
1226
1228
  };
1229
+ class KubikWysiwygController extends Controller {
1230
+ connect() {
1231
+ }
1232
+ change(event) {
1233
+ debugger;
1234
+ }
1235
+ }
1227
1236
  const widgetWrapper = function widgetWrapper2(details = {}, data) {
1228
1237
  let wrapperAttributes = {
1229
1238
  "data-controller": "kubik-widget",
@@ -1294,6 +1303,7 @@ var index = {
1294
1303
  KubikWidgetController: kubik_widget_controller_default,
1295
1304
  KubikRepeaterController: kubik_repeater_controller_default,
1296
1305
  PluginFactory,
1306
+ KubikWysiwygController,
1297
1307
  KubikAutocompleteController: kubik_autocomplete_controller_default
1298
1308
  };
1299
1309
  export { index as default };
@@ -1 +1 @@
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});
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 M(e,t){const r=R(e);return Array.from(r.reduce((a,s)=>(de(s,t).forEach(n=>a.add(n)),a),new Set))}function le(e,t){return R(e).reduce((a,s)=>(a.push(...he(s,t)),a),[])}function R(e){const t=[];for(;e;)t.push(e),e=Object.getPrototypeOf(e);return t.reverse()}function de(e,t){const r=e[t];return Array.isArray(r)?r:[]}function he(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 M(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 M(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=F(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=F(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 F([e,t],r){return we({controller:r,token:e,typeDefinition:t})}function C(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=C(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=C(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=C(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:Ce[r],writer:H[r]||H.default}}const Te={get array(){return[]},boolean:!1,number:0,get object(){return{}},string:""},Ce={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}},H={default:Oe,array:z,object:z};function z(e){return JSON.stringify(e)}function Oe(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")(),O=De,Pe=O,xe=Pe.Symbol,j=xe,G=j,K=Object.prototype,Ne=K.hasOwnProperty,Ie=K.toString,v=G?G.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,Me=Le.toString;function Re(e){return Me.call(e)}var Fe=Re,W=j,He=Ee,ze=Fe,Ge="[object Null]",Ke="[object Undefined]",U=W?W.toStringTag:void 0;function We(e){return e==null?e===void 0?Ke:Ge:U&&U in Object(e)?He(e):ze(e)}var J=We;function Ue(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var S=Ue,Je=J,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=O,rt=tt["__core-js_shared__"],at=rt,V=at,q=function(){var e=/[^.]+$/.exec(V&&V.keys&&V.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function st(e){return!!q&&q 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,dt=nt,ht=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(!ht(e)||dt(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 Ct=Tt,Ot=wt,jt=Ct;function St(e,t){var r=jt(e,t);return Ot(r)?r:void 0}var A=St,Vt=A,At=function(){try{var e=Vt(Object,"defineProperty");return e({},"",{}),e}catch{}}(),Dt=At,B=Dt;function Pt(e,t,r){t=="__proto__"&&B?B(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 X=Nt,It=xt,kt=X,Et=Object.prototype,Lt=Et.hasOwnProperty;function Mt(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 Rt=Mt,Ft=Array.isArray,D=Ft;function Ht(e){return e!=null&&typeof e=="object"}var zt=Ht,Gt=J,Kt=zt,Wt="[object Symbol]";function Ut(e){return typeof e=="symbol"||Kt(e)&&Gt(e)==Wt}var P=Ut,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,Z=_;function tr(){this.__data__=Z?Z(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,dr=_,hr=Object.prototype,fr=hr.hasOwnProperty;function pr(e){var t=this.__data__;return dr?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,Cr=_r;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=yr,d.prototype.delete=$r,d.prototype.get=wr,d.prototype.has=Tr,d.prototype.set=Cr;var Or=d;function jr(){this.__data__=[],this.size=0}var Sr=jr,Vr=X;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,Mr=y;function Rr(e){return Mr(this.__data__,e)>-1}var Fr=Rr,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,Wr=Ir,Ur=Lr,Jr=Fr,qr=Gr;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=Kr,h.prototype.delete=Wr,h.prototype.get=Ur,h.prototype.has=Jr,h.prototype.set=qr;var Br=h,Xr=A,Zr=O,Yr=Xr(Zr,"Map"),Qr=Yr,Y=Or,ea=Br,ta=Qr;function ra(){this.size=0,this.__data__={hash:new Y,map:new(ta||ea),string:new Y}}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,da=$;function ha(e){return da(this,e).get(e)}var fa=ha,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,Ca=_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=Ca;var Oa=f,Q=Oa,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||Q),r}x.Cache=Q;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 Ma=La,ee=j,Ra=Ma,Fa=D,Ha=P,za=1/0,te=ee?ee.prototype:void 0,re=te?te.toString:void 0;function ae(e){if(typeof e=="string")return e;if(Fa(e))return Ra(e,ae)+"";if(Ha(e))return re?re.call(e):"";var t=e+"";return t=="0"&&1/e==-za?"-0":t}var Ga=ae,Ka=Ga;function Wa(e){return e==null?"":Ka(e)}var Ua=Wa,Ja=D,qa=Yt,Ba=Ea,Xa=Ua;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=Rt,cs=Ya,us=rs,se=S,ls=is;function ds(e,t,r,a){if(!se(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 L=i[c];T=a?a(L,c,i):void 0,T===void 0&&(T=se(L)?L:us(t[s+1])?[]:{})}os(i,c,T),i=i[c]}return e}var hs=ds,fs=hs;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),ne=(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=ne(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 ie(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),ie(e[s],t,o||n,a)}else{var i=r?r+"."+n:n;t.push(i)}}),t}var ys=function(e,t){return ie(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 oe 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=ne(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})}}oe.values={widgetId:String,setup:Object,data:Object,maxItems:{type:Number,default:0}};class E extends l{updateHeader(t){this.headerTarget.innerHTML=t.currentTarget.value}toggleItem(t){Array.from(this.element.classList).includes(this.expandedClass)?this.element.classList.remove(this.expandedClass):this.element.classList.add(this.expandedClass)}}E.targets=["header"],E.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};class Ts extends l{connect(){}change(t){debugger}}const Cs=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 Cs({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 js={KubikWidgetController:oe,KubikRepeaterController:E,PluginFactory:Os,KubikWysiwygController:Ts,KubikAutocompleteController:w};return js});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubik-cms/wysiwyg",
3
- "version": "0.1.14",
3
+ "version": "0.1.17",
4
4
  "license": "MIT",
5
5
  "author": "Primate Inc.",
6
6
  "contributors": [