@pie-element/complex-rubric 2.10.2-next.30 → 2.10.2-next.32

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.
Files changed (24) hide show
  1. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/code/editable-html/editor.js +39 -22
  2. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/code/editable-html/editor.js.map +1 -1
  3. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/image/component.js +4 -18
  4. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/image/component.js.map +1 -1
  5. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/list/index.js +12 -4
  6. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/list/index.js.map +1 -1
  7. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/table/index.js +0 -17
  8. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/table/index.js.map +1 -1
  9. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/code/plot/label.js +2 -2
  10. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/code/plot/label.js.map +1 -1
  11. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/code/plot/root.js +3 -3
  12. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/code/plot/root.js.map +1 -1
  13. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/package.json +2 -2
  14. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/editor.jsx +39 -23
  15. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/image/component.jsx +4 -13
  16. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/list/index.jsx +9 -4
  17. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/table/index.jsx +0 -8
  18. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/src/code/plot/label.jsx +1 -1
  19. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/src/code/plot/root.jsx +3 -3
  20. package/module/configure.js +2 -2
  21. package/module/element.js +2 -2
  22. package/module/manifest.json +2 -2
  23. package/module/print.js +2 -2
  24. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/code/editable-html/plugins/image/component.jsx"],"names":["log","size","s","Component","percent","multiplier","img","naturalWidth","naturalHeight","width","floored","parseInt","toFixed","props","node","editor","update","data","w","resizePercent","getPercentFromWidth","selection","Editor","parent","nodePath","apply","type","path","properties","newProperties","window","addEventListener","startResizing","stopResizing","maxImageWidth","maxImageHeight","box","style","dimensions","height","updateImageDimensions","setState","e","bounds","target","getBoundingClientRect","clientX","left","clientY","top","hasMinimumWidth","hasDimensionsConstraints","removeEventListener","initialDim","nextDim","keepAspectRatio","resizeType","imageAspectRatio","applySizeData","resizeHandle","resize","initialiseResize","objectFit","focused","classes","attributes","children","onFocus","active","alignment","alt","deleteStatus","loaded","src","isLoaded","justifyContent","getSize","className","root","loading","pendingDelete","progressClasses","progress","hideProgress","imageContainer","image","ref","loadImage","React","PropTypes","shape","string","array","object","isRequired","bool","change","func","value","onBlur","number","styles","theme","portal","position","opacity","transition","floatingButtonRow","backgroundColor","palette","background","paper","borderRadius","display","padding","border","grey","boxShadow","common","white","right","alignItems","primary","main","cursor","marginLeft","marginRight","drawableHeight","minHeight"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,gDAAN,CAAZ;;AAEA,IAAMC,IAAI,GAAG,SAAPA,IAAO,CAACC,CAAD;AAAA,SAAQA,CAAC,aAAMA,CAAN,UAAc,MAAvB;AAAA,CAAb;;IAEaC,S;;;;;;;;;;;;;;;iGAoBA,UAACC,OAAD,EAAa;AACtB,UAAMC,UAAU,GAAGD,OAAO,GAAG,GAA7B;AACA,aAAO,MAAKE,GAAL,CAASC,YAAT,GAAwBF,UAA/B;AACD,K;kGAEW,UAACD,OAAD,EAAa;AACvB,UAAMC,UAAU,GAAGD,OAAO,GAAG,GAA7B;AACA,aAAO,MAAKE,GAAL,CAASE,aAAT,GAAyBH,UAAhC;AACD,K;4GAEqB,UAACI,KAAD,EAAW;AAC/B,UAAIC,OAAO,GAAID,KAAK,GAAG,MAAKH,GAAL,CAASC,YAAlB,GAAkC,CAAhD;AACA,aAAOI,QAAQ,CAACD,OAAO,CAACE,OAAR,CAAgB,CAAhB,IAAqB,EAAtB,EAA0B,EAA1B,CAAf;AACD,K;sGAEe,YAAM;AACpB,wBAAyB,MAAKC,KAA9B;AAAA,UAAQC,IAAR,eAAQA,IAAR;AAAA,UAAcC,MAAd,eAAcA,MAAd;AAEA,UAAIC,MAAM,GAAG,2BAAUF,IAAI,CAACG,IAAf,CAAb;AAEA,UAAMC,CAAC,GAAGF,MAAM,CAACP,KAAjB;;AAEA,UAAIS,CAAJ,EAAO;AACLF,QAAAA,MAAM,CAACG,aAAP,GAAuB,MAAKC,mBAAL,CAAyBF,CAAzB,CAAvB;AACD;;AAEDlB,MAAAA,GAAG,CAAC,0BAAD,EAA6BgB,MAA7B,CAAH;;AAEA,UAAID,MAAM,CAACM,SAAP,IAAoB,CAAC,yBAAQL,MAAR,EAAgBF,IAAI,CAACG,IAArB,CAAzB,EAAqD;AACnD,6BAAqBK,cAAOC,MAAP,CAAcR,MAAd,EAAsBA,MAAM,CAACM,SAA7B,CAArB;AAAA;AAAA,YAASG,QAAT;;AAEAT,QAAAA,MAAM,CAACU,KAAP,CAAa;AACXC,UAAAA,IAAI,EAAE,UADK;AAEXC,UAAAA,IAAI,EAAEH,QAFK;AAGXI,UAAAA,UAAU,EAAE;AACVX,YAAAA,IAAI,EAAEH,IAAI,CAACG;AADD,WAHD;AAMXY,UAAAA,aAAa,EAAE;AAAEZ,YAAAA,IAAI,EAAED;AAAR;AANJ,SAAb;AAQD;AACF,K;yGAEkB,YAAM;AACvBc,MAAAA,MAAM,CAACC,gBAAP,CAAwB,WAAxB,EAAqC,MAAKC,aAA1C,EAAyD,KAAzD;AACAF,MAAAA,MAAM,CAACC,gBAAP,CAAwB,SAAxB,EAAmC,MAAKE,YAAxC,EAAsD,KAAtD;AACD,K;kGAwBW,YAAM;AAChB,iBAAwC,MAAKpB,KAAL,IAAc,EAAtD;AAAA,UAAMqB,aAAN,QAAMA,aAAN;AAAA,UAAqBC,cAArB,QAAqBA,cAArB;;AACAD,MAAAA,aAAa,GAAGA,aAAa,IAAI,GAAjC;AACAC,MAAAA,cAAc,GAAGA,cAAc,IAAI,GAAnC;AAEA,UAAMC,GAAG,GAAG,MAAK9B,GAAjB,CALgB,CAOhB;;AACA,UAAI,CAAC8B,GAAG,CAACC,KAAJ,CAAU5B,KAAX,IAAoB2B,GAAG,CAACC,KAAJ,CAAU5B,KAAV,KAAoB,MAA5C,EAAoD;AAClD,YAAM6B,UAAU,GAAG;AACjB7B,UAAAA,KAAK,EAAG2B,GAAG,IAAIA,GAAG,CAAC7B,YAAZ,IAA6B,GADnB;AAEjBgC,UAAAA,MAAM,EAAGH,GAAG,IAAIA,GAAG,CAAC5B,aAAZ,IAA8B;AAFrB,SAAnB;;AAKA,oCAA0B,MAAKgC,qBAAL,CACxBF,UADwB,EAExB;AACE7B,UAAAA,KAAK,EAAE6B,UAAU,CAAC7B,KAAX,GAAmByB,aAAnB,GAAmCI,UAAU,CAAC7B,KAA9C,GAAsDyB,aAD/D;AAEEK,UAAAA,MAAM,EAAED,UAAU,CAACC,MAAX,GAAoBJ,cAApB,GAAqCG,UAAU,CAACC,MAAhD,GAAyDJ;AAFnE,SAFwB,EAMxB,IANwB,CAA1B;AAAA,YAAQ1B,KAAR,yBAAQA,KAAR;AAAA,YAAe8B,MAAf,yBAAeA,MAAf;;AASAH,QAAAA,GAAG,CAACC,KAAJ,CAAU5B,KAAV,aAAqBA,KAArB;AACA2B,QAAAA,GAAG,CAACC,KAAJ,CAAUE,MAAV,aAAsBA,MAAtB;;AAEA,cAAKE,QAAL,CAAc;AACZH,UAAAA,UAAU,EAAE;AAAEC,YAAAA,MAAM,EAAEA,MAAV;AAAkB9B,YAAAA,KAAK,EAAEA;AAAzB;AADA,SAAd;;AAIA,2BAAyB,MAAKI,KAA9B;AAAA,YAAQC,IAAR,gBAAQA,IAAR;AAAA,YAAcC,MAAd,gBAAcA,MAAd;AAEA,YAAMC,MAAM,GAAG,2BAAUF,IAAI,CAACG,IAAf,CAAf;AAEAD,QAAAA,MAAM,CAACP,KAAP,GAAeA,KAAf;AACAO,QAAAA,MAAM,CAACuB,MAAP,GAAgBA,MAAhB;;AAEA,YAAIxB,MAAM,CAACM,SAAP,IAAoB,CAAC,yBAAQL,MAAR,EAAgBF,IAAI,CAACG,IAArB,CAAzB,EAAqD;AACnD,gCAAqBK,cAAOC,MAAP,CAAcR,MAAd,EAAsBA,MAAM,CAACM,SAA7B,CAArB;AAAA;AAAA,cAASG,QAAT;;AAEAT,UAAAA,MAAM,CAACU,KAAP,CAAa;AACXC,YAAAA,IAAI,EAAE,UADK;AAEXC,YAAAA,IAAI,EAAEH,QAFK;AAGXI,YAAAA,UAAU,EAAE;AACVX,cAAAA,IAAI,EAAEH,IAAI,CAACG;AADD,aAHD;AAMXY,YAAAA,aAAa,EAAE;AAAEZ,cAAAA,IAAI,EAAED;AAAR;AANJ,WAAb;AAQD;AACF;AACF,K;sGAEe,UAAC0B,CAAD,EAAO;AACrB,UAAMC,MAAM,GAAGD,CAAC,CAACE,MAAF,CAASC,qBAAT,EAAf;AACA,UAAMT,GAAG,GAAG,MAAK9B,GAAjB;AACA,UAAMgC,UAAU,GAAG;AACjB7B,QAAAA,KAAK,EAAG2B,GAAG,IAAIA,GAAG,CAAC7B,YAAZ,IAA6B,GADnB;AAEjBgC,QAAAA,MAAM,EAAGH,GAAG,IAAIA,GAAG,CAAC5B,aAAZ,IAA8B;AAFrB,OAAnB;;AAKA,mCAA0B,MAAKgC,qBAAL,CACxBF,UADwB,EAExB;AACE7B,QAAAA,KAAK,EAAEiC,CAAC,CAACI,OAAF,GAAYH,MAAM,CAACI,IAD5B;AAEER,QAAAA,MAAM,EAAEG,CAAC,CAACM,OAAF,GAAYL,MAAM,CAACM;AAF7B,OAFwB,EAMxB,IANwB,CAA1B;AAAA,UAAQxC,KAAR,0BAAQA,KAAR;AAAA,UAAe8B,MAAf,0BAAeA,MAAf;;AASA,UAAMW,eAAe,GAAGzC,KAAK,GAAG,EAAR,IAAc8B,MAAM,GAAG,EAA/C;AACA,UAAMY,wBAAwB,GAAG1C,KAAK,IAAI,GAAT,IAAgB8B,MAAM,IAAI,GAA3D;;AAEA,UAAIW,eAAe,IAAIC,wBAAnB,IAA+Cf,GAAnD,EAAwD;AACtDA,QAAAA,GAAG,CAACC,KAAJ,CAAU5B,KAAV,aAAqBA,KAArB;AACA2B,QAAAA,GAAG,CAACC,KAAJ,CAAUE,MAAV,aAAsBA,MAAtB;;AAEA,cAAKE,QAAL,CAAc;AACZH,UAAAA,UAAU,EAAE;AAAEC,YAAAA,MAAM,EAAEA,MAAV;AAAkB9B,YAAAA,KAAK,EAAEA;AAAzB;AADA,SAAd;;AAIA,2BAAyB,MAAKI,KAA9B;AAAA,YAAQC,IAAR,gBAAQA,IAAR;AAAA,YAAcC,MAAd,gBAAcA,MAAd;;AAEA,YAAMC,MAAM,mCACPF,IAAI,CAACG,IADE;AAEVR,UAAAA,KAAK,EAALA,KAFU;AAGV8B,UAAAA,MAAM,EAANA;AAHU,UAAZ;;AAMA,YAAI,CAAC,yBAAQvB,MAAR,EAAgBF,IAAI,CAACG,IAArB,CAAL,EAAiC;AAC/B,gCAAqBK,cAAOC,MAAP,CAAcR,MAAd,EAAsBA,MAAM,CAACM,SAA7B,CAArB;AAAA;AAAA,cAASG,QAAT;;AAEAT,UAAAA,MAAM,CAACU,KAAP,CAAa;AACXC,YAAAA,IAAI,EAAE,UADK;AAEXC,YAAAA,IAAI,EAAEH,QAFK;AAGXI,YAAAA,UAAU,EAAE;AACVX,cAAAA,IAAI,EAAEH,IAAI,CAACG;AADD,aAHD;AAMXY,YAAAA,aAAa,EAAE;AAAEZ,cAAAA,IAAI,EAAED;AAAR;AANJ,WAAb;AAQD;AACF;AACF,K;qGAEc,YAAM;AACnBc,MAAAA,MAAM,CAACsB,mBAAP,CAA2B,WAA3B,EAAwC,MAAKpB,aAA7C,EAA4D,KAA5D;AACAF,MAAAA,MAAM,CAACsB,mBAAP,CAA2B,SAA3B,EAAsC,MAAKnB,YAA3C,EAAyD,KAAzD;AACD,K;8GAEuB,UAACoB,UAAD,EAAaC,OAAb,EAAsBC,eAAtB,EAAuCC,UAAvC,EAAsD;AAC5E;AACA,UAAID,eAAJ,EAAqB;AACnB,YAAME,gBAAgB,GAAGJ,UAAU,CAAC5C,KAAX,GAAmB4C,UAAU,CAACd,MAAvD;;AAEA,YAAIiB,UAAU,KAAK,QAAnB,EAA6B;AAC3B;AACA,iBAAO;AACL/C,YAAAA,KAAK,EAAE6C,OAAO,CAACf,MAAR,GAAiBkB,gBADnB;AAELlB,YAAAA,MAAM,EAAEe,OAAO,CAACf;AAFX,WAAP;AAID,SATkB,CAWnB;;;AACA,eAAO;AACL9B,UAAAA,KAAK,EAAE6C,OAAO,CAAC7C,KADV;AAEL8B,UAAAA,MAAM,EAAEe,OAAO,CAAC7C,KAAR,GAAgBgD;AAFnB,SAAP;AAID,OAlB2E,CAoB5E;;;AACA,aAAO;AACLhD,QAAAA,KAAK,EAAE6C,OAAO,CAAC7C,KADV;AAEL8B,QAAAA,MAAM,EAAEe,OAAO,CAACf;AAFX,OAAP;AAID,K;;;;;;WA3JD,6BAAoB;AAClB,WAAKmB,aAAL;AAEA,UAAMC,YAAY,GAAG,KAAKC,MAA1B;;AAEA,UAAID,YAAJ,EAAkB;AAChBA,QAAAA,YAAY,CAAC5B,gBAAb,CAA8B,WAA9B,EAA2C,KAAK8B,gBAAhD,EAAkE,KAAlE;AACD;AACF;;;WAED,8BAAqB;AACnB,WAAKH,aAAL;AACD;;;WAED,iBAAQzC,IAAR,EAAc;AACZ,aAAO;AACLR,QAAAA,KAAK,EAAER,IAAI,CAACgB,IAAI,CAACR,KAAN,CADN;AAEL8B,QAAAA,MAAM,EAAEtC,IAAI,CAACgB,IAAI,CAACsB,MAAN,CAFP;AAGLuB,QAAAA,SAAS,EAAE;AAHN,OAAP;AAKD;;;WAyID,kBAAS;AAAA;AAAA;;AACP,yBAAkE,KAAKjD,KAAvE;AAAA,UAAQC,IAAR,gBAAQA,IAAR;AAAA,UAAciD,OAAd,gBAAcA,OAAd;AAAA,UAAuBC,OAAvB,gBAAuBA,OAAvB;AAAA,UAAgCC,UAAhC,gBAAgCA,UAAhC;AAAA,UAA4CC,QAA5C,gBAA4CA,QAA5C;AAAA,UAAsDC,OAAtD,gBAAsDA,OAAtD;AACA,UAAMC,MAAM,GAAGL,OAAf;AACA,uBAA+DjD,IAAI,CAACG,IAApE;AAAA,UAAQoD,SAAR,cAAQA,SAAR;AAAA,UAAmBC,GAAnB,cAAmBA,GAAnB;AAAA,UAAwBC,YAAxB,cAAwBA,YAAxB;AAAA,UAAsCC,MAAtC,cAAsCA,MAAtC;AAAA,UAA8CpE,OAA9C,cAA8CA,OAA9C;AAAA,UAAuDqE,GAAvD,cAAuDA,GAAvD;AACA,UAAMC,QAAQ,GAAGF,MAAM,KAAK,KAA5B;AACA,UAAIG,cAAJ;;AAEA,cAAQN,SAAR;AACE,aAAK,MAAL;AACEM,UAAAA,cAAc,GAAG,YAAjB;AACA;;AAEF,aAAK,QAAL;AACEA,UAAAA,cAAc,GAAG,QAAjB;AACA;;AAEF,aAAK,OAAL;AACEA,UAAAA,cAAc,GAAG,UAAjB;AACA;;AAEF;AACEA,UAAAA,cAAc,GAAG,YAAjB;AACA;AAfJ;;AAiBA3E,MAAAA,GAAG,CAAC,qBAAD,EAAwBc,IAAI,CAACG,IAA7B,CAAH;AAEA,UAAMhB,IAAI,GAAG,KAAK2E,OAAL,CAAa9D,IAAI,CAACG,IAAlB,CAAb;AAEAjB,MAAAA,GAAG,CAAC,iBAAD,EAAoBC,IAApB,CAAH;AAEA,UAAM4E,SAAS,GAAG,4BAAWb,OAAO,CAACc,IAAnB,mEACfd,OAAO,CAACe,OADO,EACG,CAACL,QADJ,iDAEfV,OAAO,CAACgB,aAFO,EAEST,YAAY,KAAK,SAF1B,gBAAlB;AAKA,UAAMU,eAAe,GAAG,4BAAWjB,OAAO,CAACkB,QAAnB,uCACrBlB,OAAO,CAACmB,YADa,EACET,QADF,EAAxB;AAIA,0BACE;AAAK,QAAA,OAAO,EAAEP,OAAd;AAAuB,QAAA,SAAS,EAAEU,SAAlC;AAA6C,QAAA,KAAK,EAAE;AAAEF,UAAAA,cAAc,EAAdA;AAAF;AAApD,SAA4EV,UAA5E,GACGC,QADH,eAEE,gCAAC,0BAAD;AAAgB,QAAA,IAAI,EAAC,aAArB;AAAmC,QAAA,KAAK,EAAE9D,OAAO,GAAG,CAAV,GAAcA,OAAd,GAAwB,CAAlE;AAAqE,QAAA,SAAS,EAAE6E;AAAhF,QAFF,eAGE;AAAK,QAAA,SAAS,EAAEjB,OAAO,CAACoB;AAAxB,sBACE;AACE,QAAA,SAAS,EAAE,4BAAWpB,OAAO,CAACqB,KAAnB,uCAA6BrB,OAAO,CAACI,MAArC,EAA8CA,MAA9C,EADb;AAEE,QAAA,GAAG,EAAE,aAACkB,KAAD,EAAS;AACZ,UAAA,MAAI,CAAChF,GAAL,GAAWgF,KAAX;AACD,SAJH;AAKE,QAAA,GAAG,EAAEb,GALP;AAME,QAAA,KAAK,EAAExE,IANT;AAOE,QAAA,MAAM,EAAE,KAAKsF,SAPf;AAQE,QAAA,GAAG,EAAEjB;AARP,QADF,eAWE;AACE,QAAA,GAAG,EAAE,aAACgB,KAAD,EAAS;AACZ,UAAA,MAAI,CAAC1B,MAAL,GAAc0B,KAAd;AACD,SAHH;AAIE,QAAA,SAAS,EAAE,4BAAWtB,OAAO,CAACJ,MAAnB,EAA2B,QAA3B;AAJb,QAXF,CAHF,CADF;AAwBD;;;EA/R4B4B,kBAAMrF,S;;;iCAAxBA,S,eACQ;AACjBW,EAAAA,IAAI,EAAE2E,sBAAUC,KAAV,CAAgB;AACpBhE,IAAAA,IAAI,EAAE+D,sBAAUE,MADI;AAEpBzB,IAAAA,QAAQ,EAAEuB,sBAAUG,KAFA;AAGpB3E,IAAAA,IAAI,EAAEwE,sBAAUI;AAHI,GAAhB,EAIHC,UALc;AAMjB/B,EAAAA,OAAO,EAAE0B,sBAAUM,IANF;AAOjBhF,EAAAA,MAAM,EAAE0E,sBAAUC,KAAV,CAAgB;AACtBM,IAAAA,MAAM,EAAEP,sBAAUQ,IAAV,CAAeH,UADD;AAEtBI,IAAAA,KAAK,EAAET,sBAAUI;AAFK,GAAhB,EAGLC,UAVc;AAWjB9B,EAAAA,OAAO,EAAEyB,sBAAUI,MAAV,CAAiBC,UAXT;AAYjB7B,EAAAA,UAAU,EAAEwB,sBAAUI,MAZL;AAajB1B,EAAAA,OAAO,EAAEsB,sBAAUQ,IAbF;AAcjBE,EAAAA,MAAM,EAAEV,sBAAUQ,IAdD;AAejB/D,EAAAA,aAAa,EAAEuD,sBAAUW,MAfR;AAgBjBjE,EAAAA,cAAc,EAAEsD,sBAAUW;AAhBT,C;;AAiSrB,IAAMC,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBC,IAAAA,MAAM,EAAE;AACNC,MAAAA,QAAQ,EAAE,UADJ;AAENC,MAAAA,OAAO,EAAE,CAFH;AAGNC,MAAAA,UAAU,EAAE;AAHN,KADiB;AAMzBC,IAAAA,iBAAiB,EAAE;AACjBC,MAAAA,eAAe,EAAEN,KAAK,CAACO,OAAN,CAAcC,UAAd,CAAyBC,KADzB;AAEjBC,MAAAA,YAAY,EAAE,KAFG;AAGjBC,MAAAA,OAAO,EAAE,MAHQ;AAIjBC,MAAAA,OAAO,EAAE,MAJQ;AAKjBC,MAAAA,MAAM,sBAAeb,KAAK,CAACO,OAAN,CAAcO,IAAd,CAAmB,GAAnB,CAAf,CALW;AAMjBC,MAAAA,SAAS,EACP;AAPe,KANM;AAezBnC,IAAAA,QAAQ,EAAE;AACRsB,MAAAA,QAAQ,EAAE,UADF;AAERzD,MAAAA,IAAI,EAAE,GAFE;AAGRtC,MAAAA,KAAK,EAAE,aAHC;AAIRwC,MAAAA,GAAG,EAAE,IAJG;AAKRyD,MAAAA,UAAU,EAAE;AALJ,KAfe;AAsBzBvB,IAAAA,YAAY,EAAE;AACZsB,MAAAA,OAAO,EAAE;AADG,KAtBW;AAyBzB1B,IAAAA,OAAO,EAAE;AACP0B,MAAAA,OAAO,EAAE;AADF,KAzBgB;AA4BzBzB,IAAAA,aAAa,EAAE;AACbyB,MAAAA,OAAO,EAAE;AADI,KA5BU;AA+BzB3B,IAAAA,IAAI,EAAE;AACJ0B,MAAAA,QAAQ,EAAE,UADN;AAEJW,MAAAA,MAAM,sBAAeb,KAAK,CAACO,OAAN,CAAcS,MAAd,CAAqBC,KAApC,CAFF;AAGJN,MAAAA,OAAO,EAAE,MAHL;AAIJP,MAAAA,UAAU,EAAE,sBAJR;AAKJjG,MAAAA,KAAK,EAAE;AALH,KA/BmB;AAsCzB,cAAQ;AACN+F,MAAAA,QAAQ,EAAE,UADJ;AAENgB,MAAAA,KAAK,EAAE;AAFD,KAtCiB;AA0CzBpC,IAAAA,cAAc,EAAE;AACdoB,MAAAA,QAAQ,EAAE,UADI;AAEd/F,MAAAA,KAAK,EAAE,aAFO;AAGdwG,MAAAA,OAAO,EAAE,MAHK;AAIdQ,MAAAA,UAAU,EAAE,QAJE;AAMd,4BAAsB;AACpBR,QAAAA,OAAO,EAAE;AADW;AANR,KA1CS;AAoDzB7C,IAAAA,MAAM,EAAE;AACN+C,MAAAA,MAAM,sBAAeb,KAAK,CAACO,OAAN,CAAca,OAAd,CAAsBC,IAArC;AADA,KApDiB;AAuDzB/D,IAAAA,MAAM,EAAE;AACNgD,MAAAA,eAAe,EAAEN,KAAK,CAACO,OAAN,CAAca,OAAd,CAAsBC,IADjC;AAENC,MAAAA,MAAM,EAAE,YAFF;AAGNrF,MAAAA,MAAM,EAAE,MAHF;AAIN9B,MAAAA,KAAK,EAAE,KAJD;AAKNuG,MAAAA,YAAY,EAAE,CALR;AAMNa,MAAAA,UAAU,EAAE,KANN;AAONC,MAAAA,WAAW,EAAE,MAPP;AAQNb,MAAAA,OAAO,EAAE;AARH,KAvDiB;AAiEzBc,IAAAA,cAAc,EAAE;AACdC,MAAAA,SAAS,EAAE;AADG;AAjES,GAAZ;AAAA,CAAf;;eAsEe,wBAAW3B,MAAX,EAAmBlG,SAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport debug from 'debug';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Editor } from 'slate';\n\nconst log = debug('@pie-lib:editable-html:plugins:image:component');\n\nconst size = (s) => (s ? `${s}px` : 'auto');\n\nexport class Component extends React.Component {\n static propTypes = {\n node: PropTypes.shape({\n type: PropTypes.string,\n children: PropTypes.array,\n data: PropTypes.object,\n }).isRequired,\n focused: PropTypes.bool,\n editor: PropTypes.shape({\n change: PropTypes.func.isRequired,\n value: PropTypes.object,\n }).isRequired,\n classes: PropTypes.object.isRequired,\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n maxImageWidth: PropTypes.number,\n maxImageHeight: PropTypes.number,\n };\n\n getWidth = (percent) => {\n const multiplier = percent / 100;\n return this.img.naturalWidth * multiplier;\n };\n\n getHeight = (percent) => {\n const multiplier = percent / 100;\n return this.img.naturalHeight * multiplier;\n };\n\n getPercentFromWidth = (width) => {\n var floored = (width / this.img.naturalWidth) * 4;\n return parseInt(floored.toFixed(0) * 25, 10);\n };\n\n applySizeData = () => {\n const { node, editor } = this.props;\n\n let update = cloneDeep(node.data);\n\n const w = update.width;\n\n if (w) {\n update.resizePercent = this.getPercentFromWidth(w);\n }\n\n log('[applySizeData] update: ', update);\n\n if (editor.selection && !isEqual(update, node.data)) {\n const [, nodePath] = Editor.parent(editor, editor.selection);\n\n editor.apply({\n type: 'set_node',\n path: nodePath,\n properties: {\n data: node.data,\n },\n newProperties: { data: update },\n });\n }\n };\n\n initialiseResize = () => {\n window.addEventListener('mousemove', this.startResizing, false);\n window.addEventListener('mouseup', this.stopResizing, false);\n };\n\n componentDidMount() {\n this.applySizeData();\n\n const resizeHandle = this.resize;\n\n if (resizeHandle) {\n resizeHandle.addEventListener('mousedown', this.initialiseResize, false);\n }\n }\n\n componentDidUpdate() {\n this.applySizeData();\n }\n\n getSize(data) {\n return {\n width: size(data.width),\n height: size(data.height),\n objectFit: 'contain',\n };\n }\n\n loadImage = () => {\n let { maxImageWidth, maxImageHeight } = this.props || {};\n maxImageWidth = maxImageWidth || 700;\n maxImageHeight = maxImageHeight || 900;\n\n const box = this.img;\n\n //on first load\n if (!box.style.width || box.style.width === 'auto') {\n const dimensions = {\n width: (box && box.naturalWidth) || 100,\n height: (box && box.naturalHeight) || 100,\n };\n\n const { width, height } = this.updateImageDimensions(\n dimensions,\n {\n width: dimensions.width < maxImageWidth ? dimensions.width : maxImageWidth,\n height: dimensions.height < maxImageHeight ? dimensions.height : maxImageHeight,\n },\n true,\n );\n\n box.style.width = `${width}px`;\n box.style.height = `${height}px`;\n\n this.setState({\n dimensions: { height: height, width: width },\n });\n\n const { node, editor } = this.props;\n\n const update = cloneDeep(node.data);\n\n update.width = width;\n update.height = height;\n\n if (editor.selection && !isEqual(update, node.data)) {\n const [, nodePath] = Editor.parent(editor, editor.selection);\n\n editor.apply({\n type: 'set_node',\n path: nodePath,\n properties: {\n data: node.data,\n },\n newProperties: { data: update },\n });\n }\n }\n };\n\n startResizing = (e) => {\n const bounds = e.target.getBoundingClientRect();\n const box = this.img;\n const dimensions = {\n width: (box && box.naturalWidth) || 100,\n height: (box && box.naturalHeight) || 100,\n };\n\n const { width, height } = this.updateImageDimensions(\n dimensions,\n {\n width: e.clientX - bounds.left,\n height: e.clientY - bounds.top,\n },\n true,\n );\n\n const hasMinimumWidth = width > 50 && height > 50;\n const hasDimensionsConstraints = width <= 700 && height <= 900;\n\n if (hasMinimumWidth && hasDimensionsConstraints && box) {\n box.style.width = `${width}px`;\n box.style.height = `${height}px`;\n\n this.setState({\n dimensions: { height: height, width: width },\n });\n\n const { node, editor } = this.props;\n\n const update = {\n ...node.data,\n width,\n height,\n };\n\n if (!isEqual(update, node.data)) {\n const [, nodePath] = Editor.parent(editor, editor.selection);\n\n editor.apply({\n type: 'set_node',\n path: nodePath,\n properties: {\n data: node.data,\n },\n newProperties: { data: update },\n });\n }\n }\n };\n\n stopResizing = () => {\n window.removeEventListener('mousemove', this.startResizing, false);\n window.removeEventListener('mouseup', this.stopResizing, false);\n };\n\n updateImageDimensions = (initialDim, nextDim, keepAspectRatio, resizeType) => {\n // if we want to keep image aspect ratio\n if (keepAspectRatio) {\n const imageAspectRatio = initialDim.width / initialDim.height;\n\n if (resizeType === 'height') {\n // if we want to change image height => we update the width accordingly\n return {\n width: nextDim.height * imageAspectRatio,\n height: nextDim.height,\n };\n }\n\n // if we want to change image width => we update the height accordingly\n return {\n width: nextDim.width,\n height: nextDim.width / imageAspectRatio,\n };\n }\n\n // if we don't want to keep aspect ratio, we just update both values\n return {\n width: nextDim.width,\n height: nextDim.height,\n };\n };\n\n render() {\n const { node, focused, classes, attributes, children, onFocus } = this.props;\n const active = focused;\n const { alignment, alt, deleteStatus, loaded, percent, src } = node.data;\n const isLoaded = loaded !== false;\n let justifyContent;\n\n switch (alignment) {\n case 'left':\n justifyContent = 'flex-start';\n break;\n\n case 'center':\n justifyContent = 'center';\n break;\n\n case 'right':\n justifyContent = 'flex-end';\n break;\n\n default:\n justifyContent = 'flex-start';\n break;\n }\n log('[render] node.data:', node.data);\n\n const size = this.getSize(node.data);\n\n log('[render] style:', size);\n\n const className = classNames(classes.root, {\n [classes.loading]: !isLoaded,\n [classes.pendingDelete]: deleteStatus === 'pending',\n });\n\n const progressClasses = classNames(classes.progress, {\n [classes.hideProgress]: isLoaded,\n });\n\n return (\n <div onFocus={onFocus} className={className} style={{ justifyContent }} {...attributes}>\n {children}\n <LinearProgress mode=\"determinate\" value={percent > 0 ? percent : 0} className={progressClasses} />\n <div className={classes.imageContainer}>\n <img\n className={classNames(classes.image, { [classes.active]: active })}\n ref={(ref) => {\n this.img = ref;\n }}\n src={src}\n style={size}\n onLoad={this.loadImage}\n alt={alt}\n />\n <div\n ref={(ref) => {\n this.resize = ref;\n }}\n className={classNames(classes.resize, 'resize')}\n />\n </div>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n portal: {\n position: 'absolute',\n opacity: 0,\n transition: 'opacity 200ms linear',\n },\n floatingButtonRow: {\n backgroundColor: theme.palette.background.paper,\n borderRadius: '1px',\n display: 'flex',\n padding: '10px',\n border: `solid 1px ${theme.palette.grey[200]}`,\n boxShadow:\n '0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)',\n },\n progress: {\n position: 'absolute',\n left: '0',\n width: 'fit-content',\n top: '0%',\n transition: 'opacity 200ms linear',\n },\n hideProgress: {\n opacity: 0,\n },\n loading: {\n opacity: 0.3,\n },\n pendingDelete: {\n opacity: 0.3,\n },\n root: {\n position: 'relative',\n border: `solid 1px ${theme.palette.common.white}`,\n display: 'flex',\n transition: 'opacity 200ms linear',\n width: '100%',\n },\n delete: {\n position: 'absolute',\n right: 0,\n },\n imageContainer: {\n position: 'relative',\n width: 'fit-content',\n display: 'flex',\n alignItems: 'center',\n\n '&&:hover > .resize': {\n display: 'block',\n },\n },\n active: {\n border: `solid 1px ${theme.palette.primary.main}`,\n },\n resize: {\n backgroundColor: theme.palette.primary.main,\n cursor: 'col-resize',\n height: '35px',\n width: '5px',\n borderRadius: 8,\n marginLeft: '5px',\n marginRight: '10px',\n display: 'none',\n },\n drawableHeight: {\n minHeight: 350,\n },\n});\n\nexport default withStyles(styles)(Component);\n"],"file":"component.js"}
1
+ {"version":3,"sources":["../../../../src/code/editable-html/plugins/image/component.jsx"],"names":["log","size","s","Component","percent","multiplier","img","naturalWidth","naturalHeight","width","floored","parseInt","toFixed","props","node","nodePath","editor","update","data","w","resizePercent","getPercentFromWidth","selection","apply","type","path","properties","newProperties","window","addEventListener","startResizing","stopResizing","maxImageWidth","maxImageHeight","box","style","dimensions","height","updateImageDimensions","setState","e","bounds","target","getBoundingClientRect","clientX","left","clientY","top","hasMinimumWidth","hasDimensionsConstraints","removeEventListener","initialDim","nextDim","keepAspectRatio","resizeType","imageAspectRatio","applySizeData","resizeHandle","resize","initialiseResize","objectFit","focused","classes","attributes","children","onFocus","active","alignment","alt","deleteStatus","loaded","src","isLoaded","justifyContent","getSize","className","root","loading","pendingDelete","progressClasses","progress","hideProgress","imageContainer","image","ref","loadImage","React","PropTypes","shape","string","array","object","isRequired","bool","func","onBlur","number","styles","theme","portal","position","opacity","transition","floatingButtonRow","backgroundColor","palette","background","paper","borderRadius","display","padding","border","grey","boxShadow","common","white","right","alignItems","primary","main","cursor","marginLeft","marginRight","drawableHeight","minHeight"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport debug from 'debug';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Editor } from 'slate';\n\nconst log = debug('@pie-lib:editable-html:plugins:image:component');\n\nconst size = (s) => (s ? `${s}px` : 'auto');\n\nexport class Component extends React.Component {\n static propTypes = {\n node: PropTypes.shape({\n type: PropTypes.string,\n children: PropTypes.array,\n data: PropTypes.object,\n }).isRequired,\n focused: PropTypes.bool,\n editor: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n maxImageWidth: PropTypes.number,\n maxImageHeight: PropTypes.number,\n };\n\n getWidth = (percent) => {\n const multiplier = percent / 100;\n return this.img.naturalWidth * multiplier;\n };\n\n getHeight = (percent) => {\n const multiplier = percent / 100;\n return this.img.naturalHeight * multiplier;\n };\n\n getPercentFromWidth = (width) => {\n var floored = (width / this.img.naturalWidth) * 4;\n return parseInt(floored.toFixed(0) * 25, 10);\n };\n\n applySizeData = () => {\n const { node, nodePath, editor } = this.props;\n\n let update = cloneDeep(node.data);\n\n const w = update.width;\n\n if (w) {\n update.resizePercent = this.getPercentFromWidth(w);\n }\n\n log('[applySizeData] update: ', update);\n\n if (editor.selection && !isEqual(update, node.data)) {\n editor.apply({\n type: 'set_node',\n path: nodePath,\n properties: {\n data: node.data,\n },\n newProperties: { data: update },\n });\n }\n };\n\n initialiseResize = () => {\n window.addEventListener('mousemove', this.startResizing, false);\n window.addEventListener('mouseup', this.stopResizing, false);\n };\n\n componentDidMount() {\n this.applySizeData();\n\n const resizeHandle = this.resize;\n\n if (resizeHandle) {\n resizeHandle.addEventListener('mousedown', this.initialiseResize, false);\n }\n }\n\n componentDidUpdate() {\n this.applySizeData();\n }\n\n getSize(data) {\n return {\n width: size(data.width),\n height: size(data.height),\n objectFit: 'contain',\n };\n }\n\n loadImage = () => {\n let { maxImageWidth, maxImageHeight } = this.props || {};\n maxImageWidth = maxImageWidth || 700;\n maxImageHeight = maxImageHeight || 900;\n\n const box = this.img;\n\n //on first load\n if (!box.style.width || box.style.width === 'auto') {\n const dimensions = {\n width: (box && box.naturalWidth) || 100,\n height: (box && box.naturalHeight) || 100,\n };\n\n const { width, height } = this.updateImageDimensions(\n dimensions,\n {\n width: dimensions.width < maxImageWidth ? dimensions.width : maxImageWidth,\n height: dimensions.height < maxImageHeight ? dimensions.height : maxImageHeight,\n },\n true,\n );\n\n box.style.width = `${width}px`;\n box.style.height = `${height}px`;\n\n this.setState({\n dimensions: { height: height, width: width },\n });\n\n const { node, nodePath, editor } = this.props;\n\n const update = cloneDeep(node.data);\n\n update.width = width;\n update.height = height;\n\n if (editor.selection && !isEqual(update, node.data)) {\n editor.apply({\n type: 'set_node',\n path: nodePath,\n properties: {\n data: node.data,\n },\n newProperties: { data: update },\n });\n }\n }\n };\n\n startResizing = (e) => {\n const bounds = e.target.getBoundingClientRect();\n const box = this.img;\n const dimensions = {\n width: (box && box.naturalWidth) || 100,\n height: (box && box.naturalHeight) || 100,\n };\n\n const { width, height } = this.updateImageDimensions(\n dimensions,\n {\n width: e.clientX - bounds.left,\n height: e.clientY - bounds.top,\n },\n true,\n );\n\n const hasMinimumWidth = width > 50 && height > 50;\n const hasDimensionsConstraints = width <= 700 && height <= 900;\n\n if (hasMinimumWidth && hasDimensionsConstraints && box) {\n box.style.width = `${width}px`;\n box.style.height = `${height}px`;\n\n this.setState({\n dimensions: { height: height, width: width },\n });\n\n const { node, nodePath, editor } = this.props;\n\n const update = {\n ...node.data,\n width,\n height,\n };\n\n if (!isEqual(update, node.data)) {\n editor.apply({\n type: 'set_node',\n path: nodePath,\n properties: {\n data: node.data,\n },\n newProperties: { data: update },\n });\n }\n }\n };\n\n stopResizing = () => {\n window.removeEventListener('mousemove', this.startResizing, false);\n window.removeEventListener('mouseup', this.stopResizing, false);\n };\n\n updateImageDimensions = (initialDim, nextDim, keepAspectRatio, resizeType) => {\n // if we want to keep image aspect ratio\n if (keepAspectRatio) {\n const imageAspectRatio = initialDim.width / initialDim.height;\n\n if (resizeType === 'height') {\n // if we want to change image height => we update the width accordingly\n return {\n width: nextDim.height * imageAspectRatio,\n height: nextDim.height,\n };\n }\n\n // if we want to change image width => we update the height accordingly\n return {\n width: nextDim.width,\n height: nextDim.width / imageAspectRatio,\n };\n }\n\n // if we don't want to keep aspect ratio, we just update both values\n return {\n width: nextDim.width,\n height: nextDim.height,\n };\n };\n\n render() {\n const { node, focused, classes, attributes, children, onFocus } = this.props;\n const active = focused;\n const { alignment, alt, deleteStatus, loaded, percent, src } = node.data;\n const isLoaded = loaded !== false;\n let justifyContent;\n\n switch (alignment) {\n case 'left':\n justifyContent = 'flex-start';\n break;\n\n case 'center':\n justifyContent = 'center';\n break;\n\n case 'right':\n justifyContent = 'flex-end';\n break;\n\n default:\n justifyContent = 'flex-start';\n break;\n }\n log('[render] node.data:', node.data);\n\n const size = this.getSize(node.data);\n\n log('[render] style:', size);\n\n const className = classNames(classes.root, {\n [classes.loading]: !isLoaded,\n [classes.pendingDelete]: deleteStatus === 'pending',\n });\n\n const progressClasses = classNames(classes.progress, {\n [classes.hideProgress]: isLoaded,\n });\n\n return (\n <div onFocus={onFocus} className={className} style={{ justifyContent }} {...attributes}>\n {children}\n <LinearProgress mode=\"determinate\" value={percent > 0 ? percent : 0} className={progressClasses} />\n <div className={classes.imageContainer}>\n <img\n className={classNames(classes.image, { [classes.active]: active })}\n ref={(ref) => {\n this.img = ref;\n }}\n src={src}\n style={size}\n onLoad={this.loadImage}\n alt={alt}\n />\n <div\n ref={(ref) => {\n this.resize = ref;\n }}\n className={classNames(classes.resize, 'resize')}\n />\n </div>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n portal: {\n position: 'absolute',\n opacity: 0,\n transition: 'opacity 200ms linear',\n },\n floatingButtonRow: {\n backgroundColor: theme.palette.background.paper,\n borderRadius: '1px',\n display: 'flex',\n padding: '10px',\n border: `solid 1px ${theme.palette.grey[200]}`,\n boxShadow:\n '0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)',\n },\n progress: {\n position: 'absolute',\n left: '0',\n width: 'fit-content',\n top: '0%',\n transition: 'opacity 200ms linear',\n },\n hideProgress: {\n opacity: 0,\n },\n loading: {\n opacity: 0.3,\n },\n pendingDelete: {\n opacity: 0.3,\n },\n root: {\n position: 'relative',\n border: `solid 1px ${theme.palette.common.white}`,\n display: 'flex',\n transition: 'opacity 200ms linear',\n width: '100%',\n },\n delete: {\n position: 'absolute',\n right: 0,\n },\n imageContainer: {\n position: 'relative',\n width: 'fit-content',\n display: 'flex',\n alignItems: 'center',\n\n '&&:hover > .resize': {\n display: 'block',\n },\n },\n active: {\n border: `solid 1px ${theme.palette.primary.main}`,\n },\n resize: {\n backgroundColor: theme.palette.primary.main,\n cursor: 'col-resize',\n height: '35px',\n width: '5px',\n borderRadius: 8,\n marginLeft: '5px',\n marginRight: '10px',\n display: 'none',\n },\n drawableHeight: {\n minHeight: 350,\n },\n});\n\nexport default withStyles(styles)(Component);\n"],"file":"component.js"}
@@ -534,7 +534,9 @@ var _default = function _default(options) {
534
534
  _ref6 = (0, _slicedToArray2["default"])(_ref5, 1),
535
535
  parentListItem = _ref6[0];
536
536
 
537
- if (parentListItem) {
537
+ var isListItem = parentListItem && parentListItem.type === 'li';
538
+
539
+ if (isListItem) {
538
540
  return decreaseItemDepth(editor);
539
541
  } // Exit list
540
542
 
@@ -548,7 +550,7 @@ var _default = function _default(options) {
548
550
  editor.apply({
549
551
  type: 'split_node',
550
552
  path: pathToSplit,
551
- position: 1,
553
+ position: currentLi.children.length,
552
554
  properties: {
553
555
  type: 'li'
554
556
  }
@@ -585,7 +587,11 @@ var _default = function _default(options) {
585
587
  core.onBackSpace = function (editor, event) {
586
588
  var startRange = _slate.Range.start(editor.selection);
587
589
 
588
- if (startRange.offset !== 0) {
590
+ var isNotOnTheFirstNode = startRange.path[startRange.path.length - 1] !== 0;
591
+ var isNotOnTheFirstIndex = startRange.offset !== 0;
592
+ var isAtStartOfListItem = isNotOnTheFirstNode || isNotOnTheFirstIndex;
593
+
594
+ if (isAtStartOfListItem) {
589
595
  return;
590
596
  }
591
597
 
@@ -609,7 +615,9 @@ var _default = function _default(options) {
609
615
  _ref8 = (0, _slicedToArray2["default"])(_ref7, 1),
610
616
  parentListItem = _ref8[0];
611
617
 
612
- if (parentListItem) {
618
+ var isListItem = parentListItem && parentListItem.type === 'li';
619
+
620
+ if (isListItem) {
613
621
  return decreaseItemDepth(editor);
614
622
  }
615
623
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/code/editable-html/plugins/list/index.jsx"],"names":["log","b","type","next","childNodes","object","nodes","serialization","deserialize","el","name","tagName","toLowerCase","children","length","Array","from","serialize","key","ReactEditor","findKey","undefined","getListParent","editor","pathRange","Editor","unhangRange","selection","ancestors","SlateNode","anchor","path","reverse","parentList","find","node","includes","e","isBlockActive","format","createEditList","core","changes","wrapInList","isActive","isList","LIST_TYPES","unwrapList","listSelected","Transforms","unwrapNodes","match","n","isEditor","SlateElement","isElement","split","newProperties","setNodes","block","wrapNodes","switchMap","ul","ol","listNode","listPath","at","KEY_TAB","KEY_ENTER","KEY_BACKSPACE","options","icon","supports","renderNode","props","attributes","toolbar","isMark","onClick","propTypes","PropTypes","func","getAncestorByType","ancestor","ancestorPath","increaseItemDepth","currentLiPath","prevResult","previous","prevLi","prevLiPath","parent","list","lastItem","itemPath","moveNodes","to","listItemContent","get","Text","isText","newList","insertNode","decreaseItemDepth","currentLi","subList","subListPath","parentLi","parentLiPath","parentListPath","index","indexOf","followingItems","reduce","acc","item","skip","push","forEach","liPath","last","lastPlacePath","removeNodes","window","unwrapListByKey","nodeInfo","withoutNormalizing","splitItemPath","slice","splitNodes","always","newListPath","furthestListItems","onEnter","event","preventDefault","Range","isExpanded","range","isEmpty","parentListItem","pathToSplit","apply","position","properties","newLiPath","select","onTab","result","shiftKey","setTimeout","focus","onBackSpace","startRange","start","offset","onKeyDown"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,qCAAN,CAAZ;;AAEA,IAAMC,CAAC,GAAG,SAAJA,CAAI,CAACC,IAAD,EAAOC,IAAP,EAAaC,UAAb;AAAA,SAA6B;AACrCC,IAAAA,MAAM,EAAE,OAD6B;AAErCH,IAAAA,IAAI,EAAJA,IAFqC;AAGrCI,IAAAA,KAAK,EAAEH,IAAI,CAACC,UAAD;AAH0B,GAA7B;AAAA,CAAV;;AAMO,IAAMG,aAAa,GAAG;AAC3BC,EAAAA,WAD2B,uBACfC,EADe,EACXN,IADW,EACL;AACpB,QAAMO,IAAI,GAAGD,EAAE,CAACE,OAAH,CAAWC,WAAX,EAAb;AACA,QAAMC,QAAQ,GAAGJ,EAAE,CAACI,QAAH,CAAYC,MAAZ,GAAqBC,KAAK,CAACC,IAAN,CAAWP,EAAE,CAACI,QAAd,CAArB,GAA+CJ,EAAE,CAACL,UAAnE;;AAEA,QAAIM,IAAI,KAAK,IAAb,EAAmB;AACjB,aAAO,2BACL,SADK,EAEL;AACER,QAAAA,IAAI,EAAE;AADR,OAFK,EAKLC,IAAI,CAACU,QAAD,CALC,CAAP;AAOD;;AAED,QAAIH,IAAI,KAAK,IAAb,EAAmB;AACjB,aAAO,2BACL,SADK,EAEL;AACER,QAAAA,IAAI,EAAE;AADR,OAFK,EAKLC,IAAI,CAACU,QAAD,CALC,CAAP;AAOD;;AAED,QAAIH,IAAI,KAAK,IAAb,EAAmB;AACjB,aAAO,2BACL,SADK,EAEL;AACER,QAAAA,IAAI,EAAE;AADR,OAFK,EAKLC,IAAI,CAACU,QAAD,CALC,CAAP;AAOD;AACF,GAlC0B;AAmC3BI,EAAAA,SAnC2B,qBAmCjBZ,MAnCiB,EAmCTQ,QAnCS,EAmCC;AAC1B,QAAMK,GAAG,GAAGC,wBAAYC,OAAZ,CAAoBC,SAApB,EAA+BhB,MAA/B,CAAZ;;AAEA,QAAIA,MAAM,CAACH,IAAP,KAAgB,IAApB,EAA0B;AACxB,0BAAO;AAAI,QAAA,GAAG,EAAEgB;AAAT,SAAeL,QAAf,CAAP;AACD;;AAED,QAAIR,MAAM,CAACH,IAAP,KAAgB,IAApB,EAA0B;AACxB,0BAAO;AAAI,QAAA,GAAG,EAAEgB;AAAT,SAAeL,QAAf,CAAP;AACD;;AAED,QAAIR,MAAM,CAACH,IAAP,KAAgB,IAApB,EAA0B;AACxB,0BAAO;AAAI,QAAA,GAAG,EAAEgB;AAAT,SAAeL,QAAf,CAAP;AACD;AACF;AAjD0B,CAAtB;;;AAoDP,IAAMS,aAAa,GAAG,SAAhBA,aAAgB,CAACC,MAAD,EAAY;AAChC,MAAI;AACF,QAAMC,SAAS,GAAGC,cAAOC,WAAP,CAAmBH,MAAnB,EAA2BA,MAAM,CAACI,SAAlC,CAAlB;;AACA,QAAMC,SAAS,GAAGb,KAAK,CAACC,IAAN,CAAWa,YAAUD,SAAV,CAAoBL,MAApB,EAA4BC,SAAS,CAACM,MAAV,CAAiBC,IAA7C,EAAmD;AAAEC,MAAAA,OAAO,EAAE;AAAX,KAAnD,CAAX,CAAlB;AACA,QAAMC,UAAU,GAAGL,SAAS,CAACM,IAAV,CAAe;AAAA;AAAA,UAAEC,IAAF;;AAAA,aAAY,CAAC,IAAD,EAAO,IAAP,EAAaC,QAAb,CAAsBD,IAAI,CAACjC,IAA3B,CAAZ;AAAA,KAAf,CAAnB;AAEA,WAAO+B,UAAP;AACD,GAND,CAME,OAAOI,CAAP,EAAU;AACV,WAAO,IAAP;AACD;AACF,CAVD;;AAYA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACf,MAAD,EAASgB,MAAT,EAAoB;AACxC,MAAQZ,SAAR,GAAsBJ,MAAtB,CAAQI,SAAR;;AAEA,MAAI,CAACA,SAAL,EAAgB;AACd,WAAO,KAAP;AACD;;AAED,MAAMM,UAAU,GAAGX,aAAa,CAACC,MAAD,CAAhC;;AAEA,MAAI,CAACU,UAAL,EAAiB;AACf,WAAO,KAAP;AACD;;AAED,SAAOA,UAAU,CAAC,CAAD,CAAV,CAAc/B,IAAd,KAAuBqC,MAA9B;AACD,CAdD;;AAgBA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,GAAM;AAC3B,MAAMC,IAAI,GAAG;AACXC,IAAAA,OAAO,EAAE;AADE,GAAb;;AAIAD,EAAAA,IAAI,CAACC,OAAL,CAAaC,UAAb,GAA0B,UAACpB,MAAD,EAASgB,MAAT,EAAoB;AAC5C,QAAMK,QAAQ,GAAGN,aAAa,CAACf,MAAD,EAASgB,MAAT,CAA9B;AACA,QAAMM,MAAM,GAAGC,UAAU,CAACV,QAAX,CAAoBG,MAApB,CAAf;;AAEA,QAAIK,QAAQ,IAAIC,MAAhB,EAAwB;AACtBE,MAAAA,UAAU,CAACxB,MAAD,CAAV;AACA;AACD;;AAED,QAAMyB,YAAY,GAAG1B,aAAa,CAACC,MAAD,CAAlC;;AAEA,QAAI,CAACyB,YAAL,EAAmB;AACjBC,wBAAWC,WAAX,CAAuB3B,MAAvB,EAA+B;AAC7B4B,QAAAA,KAAK,EAAE,eAACC,CAAD;AAAA,iBAAO,CAAC3B,cAAO4B,QAAP,CAAgBD,CAAhB,CAAD,IAAuBE,eAAaC,SAAb,CAAuBH,CAAvB,CAAvB,IAAoDN,UAAU,CAACV,QAAX,CAAoBgB,CAAC,CAAClD,IAAtB,CAA3D;AAAA,SADsB;AAE7BsD,QAAAA,KAAK,EAAE;AAFsB,OAA/B;;AAKA,UAAMC,aAAa,GAAG;AACpBvD,QAAAA,IAAI,EAAE0C,QAAQ,GAAG,WAAH,GAAiBC,MAAM,GAAG,IAAH,GAAUN;AAD3B,OAAtB;;AAIAU,wBAAWS,QAAX,CAAoBnC,MAApB,EAA4BkC,aAA5B;;AAEA,UAAI,CAACb,QAAD,IAAaC,MAAjB,EAAyB;AACvB,YAAMc,KAAK,GAAG;AAAEzD,UAAAA,IAAI,EAAEqC,MAAR;AAAgB1B,UAAAA,QAAQ,EAAE;AAA1B,SAAd;;AACAoC,0BAAWW,SAAX,CAAqBrC,MAArB,EAA6BoC,KAA7B,EAAoC;AAClCR,UAAAA,KAAK,EAAE,eAACC,CAAD;AAAA,mBAAO,CAAC3B,cAAO4B,QAAP,CAAgBD,CAAhB,CAAD,IAAuBE,eAAaC,SAAb,CAAuBH,CAAvB,CAAvB,IAAoDN,UAAU,CAACV,QAAX,CAAoBgB,CAAC,CAAClD,IAAtB,CAA3D;AAAA;AAD2B,SAApC;AAGD;AACF,KAlBD,MAkBO;AACL,UAAM2D,SAAS,GAAG;AAChBC,QAAAA,EAAE,EAAE,IADY;AAEhBC,QAAAA,EAAE,EAAE;AAFY,OAAlB;;AAIA,0DAA6Bf,YAA7B;AAAA,UAAOgB,QAAP;AAAA,UAAiBC,QAAjB;;AAEA1C,MAAAA,MAAM,CAACmC,QAAP,CAAgB;AAAExD,QAAAA,IAAI,EAAE2D,SAAS,CAACG,QAAQ,CAAC9D,IAAV;AAAjB,OAAhB,EAAoD;AAAEgE,QAAAA,EAAE,EAAED;AAAN,OAApD;AACD;AACF,GAtCD;;AAwCA,SAAOxB,IAAP;AACD,CA9CD;;AAgDO,IAAMK,UAAU,GAAG,CAAC,IAAD,EAAO,IAAP,EAAa,IAAb,CAAnB;;AAEP,IAAMqB,OAAO,GAAG,KAAhB;AACA,IAAMC,SAAS,GAAG,OAAlB;AACA,IAAMC,aAAa,GAAG,WAAtB;;eAEe,kBAACC,OAAD,EAAa;AAC1B,MAAQpE,IAAR,GAAuBoE,OAAvB,CAAQpE,IAAR;AAAA,MAAcqE,IAAd,GAAuBD,OAAvB,CAAcC,IAAd;AAEA,MAAM9B,IAAI,GAAGD,cAAc,EAA3B;;AAEAC,EAAAA,IAAI,CAAC+B,QAAL,GAAgB,UAACrC,IAAD;AAAA,WAAUW,UAAU,CAACV,QAAX,CAAoBD,IAAI,CAACjC,IAAzB,CAAV;AAAA,GAAhB;;AAEAuC,EAAAA,IAAI,CAACgC,UAAL,GAAkB,UAACC,KAAD,EAAW;AAC3B,QAAQvC,IAAR,GAAuCuC,KAAvC,CAAQvC,IAAR;AAAA,QAAcwC,UAAd,GAAuCD,KAAvC,CAAcC,UAAd;AAAA,QAA0B9D,QAA1B,GAAuC6D,KAAvC,CAA0B7D,QAA1B;;AAEA,YAAQsB,IAAI,CAACjC,IAAb;AACE,WAAK,IAAL;AACE,4BAAO,sCAAQyE,UAAR,EAAqB9D,QAArB,CAAP;;AACF,WAAK,IAAL;AACE,4BAAO,sCAAQ8D,UAAR,EAAqB9D,QAArB,CAAP;;AACF,WAAK,IAAL;AACE,4BAAO,sCAAQ8D,UAAR,EAAqB9D,QAArB,CAAP;AANJ;AAQD,GAXD;;AAaA4B,EAAAA,IAAI,CAACmC,OAAL,GAAe;AACbC,IAAAA,MAAM,EAAE,KADK;AAEb3E,IAAAA,IAAI,EAAJA,IAFa;AAGbqE,IAAAA,IAAI,EAAJA,IAHa;AAIb3B,IAAAA,QAAQ,EAAEN,aAJG;AAKbwC,IAAAA,OAAO,EAAE,iBAACvD,MAAD,EAAY;AACnBkB,MAAAA,IAAI,CAACC,OAAL,CAAaC,UAAb,CAAwBpB,MAAxB,EAAgCrB,IAAhC;AACD;AAPY,GAAf;AAUAuC,EAAAA,IAAI,CAACgC,UAAL,CAAgBM,SAAhB,GAA4B;AAC1B5C,IAAAA,IAAI,EAAE6C,sBAAU3E,MADU;AAE1BsE,IAAAA,UAAU,EAAEK,sBAAU3E,MAFI;AAG1BQ,IAAAA,QAAQ,EAAEmE,sBAAUC;AAHM,GAA5B;;AAMA,MAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAAC3D,MAAD,EAASrB,IAAT,EAAkB;AAC1C,QAAI,CAACqB,MAAD,IAAW,CAACrB,IAAhB,EAAsB;AACpB,aAAO,IAAP;AACD;;AAED,QAAM0B,SAAS,GAAGC,YAAUD,SAAV,CAAoBL,MAApB,EAA4BE,cAAOM,IAAP,CAAYR,MAAZ,EAAoBA,MAAM,CAACI,SAA3B,CAA5B,EAAmE;AACnFK,MAAAA,OAAO,EAAE;AAD0E,KAAnE,CAAlB;;AAL0C,+CASHJ,SATG;AAAA;;AAAA;AAS1C,0DAAkD;AAAA;AAAA,YAAtCuD,QAAsC;AAAA,YAA5BC,YAA4B;;AAChD,YAAID,QAAQ,CAACjF,IAAT,KAAkBA,IAAtB,EAA4B;AAC1B,iBAAO,CAACiF,QAAD,EAAWC,YAAX,CAAP;AACD;AACF;AAbyC;AAAA;AAAA;AAAA;AAAA;;AAe1C,WAAO,IAAP;AACD,GAhBD;;AAkBA,MAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAAC9D,MAAD,EAAY;AACpC,6BAA0B2D,iBAAiB,CAAC3D,MAAD,EAAS,IAAT,CAA3C;AAAA;AAAA,QAAS+D,aAAT;;AACA,QAAMC,UAAU,GAAGhE,MAAM,CAACiE,QAAP,CAAgB;AAAEtB,MAAAA,EAAE,EAAEoB;AAAN,KAAhB,CAAnB;;AAEA,QAAI,CAACC,UAAL,EAAiB;AACf,aAAO,IAAP;AACD;;AAED,sDAA6BA,UAA7B;AAAA,QAAOE,MAAP;AAAA,QAAeC,UAAf;;AACA,yBAAenE,MAAM,CAACoE,MAAP,CAAcD,UAAd,CAAf;AAAA;AAAA,QAAOE,IAAP;;AAEA,QAAI,CAACA,IAAD,IAAS,CAACH,MAAd,EAAsB;AACpB,aAAO,IAAP;AACD;;AAED,QAAMI,QAAQ,GAAGJ,MAAM,CAAC5E,QAAP,CAAgB4E,MAAM,CAAC5E,QAAP,CAAgBC,MAAhB,GAAyB,CAAzC,CAAjB;;AAEA,QAAI+E,QAAQ,IAAIA,QAAQ,CAAC3F,IAAT,KAAkB,IAAlC,EAAwC;AACtC;AACA,UAAM4F,QAAQ,iDAAOJ,UAAP,IAAmB,CAAnB,EAAsBG,QAAQ,CAAChF,QAAT,CAAkBC,MAAxC,EAAd;AAEAS,MAAAA,MAAM,CAACwE,SAAP,CAAiB;AACf7B,QAAAA,EAAE,EAAEoB,aADW;AAEfU,QAAAA,EAAE,EAAEF;AAFW,OAAjB;AAID,KARD,MAQO;AACL,UAAMnC,KAAK,GAAG;AAAEzD,QAAAA,IAAI,EAAE,KAAR;AAAeW,QAAAA,QAAQ,EAAE;AAAzB,OAAd;;AACA,UAAMoF,eAAe,GAAGpE,YAAUqE,GAAV,CAAc3E,MAAd,gDAA0BmE,UAA1B,IAAsC,CAAtC,GAAxB;;AAEA,UAAIS,YAAKC,MAAL,CAAYH,eAAZ,CAAJ,EAAkC;AAChC;AACA1E,QAAAA,MAAM,CAACqC,SAAP,CAAiBD,KAAjB,EAAwB;AACtBO,UAAAA,EAAE,gDAAMwB,UAAN,IAAkB,CAAlB;AADoB,SAAxB;AAGD;;AAED,UAAMW,OAAO,GAAG;AACdnG,QAAAA,IAAI,EAAEA,IADQ;AAEdW,QAAAA,QAAQ,EAAE;AAFI,OAAhB;AAKAU,MAAAA,MAAM,CAAC+E,UAAP,CAAkBD,OAAlB,EAA2B;AACzBnC,QAAAA,EAAE,gDAAMwB,UAAN,IAAkBD,MAAM,CAAC5E,QAAP,CAAgBC,MAAlC;AADuB,OAA3B;;AAIA,UAAMgF,SAAQ,iDAAOJ,UAAP,IAAmBD,MAAM,CAAC5E,QAAP,CAAgBC,MAAnC,EAA2C,CAA3C,EAAd;;AAEAS,MAAAA,MAAM,CAACwE,SAAP,CAAiB;AACf7B,QAAAA,EAAE,EAAEoB,aADW;AAEfU,QAAAA,EAAE,EAAEF;AAFW,OAAjB;AAID;;AAED,WAAO,IAAP;AACD,GAtDD;;AAwDA,MAAMS,iBAAiB,GAAG,SAApBA,iBAAoB,CAAChF,MAAD,EAAY;AACpC,8BAAmC2D,iBAAiB,CAAC3D,MAAD,EAAS,IAAT,CAApD;AAAA;AAAA,QAAOiF,SAAP;AAAA,QAAkBlB,aAAlB;;AAEA,QAAIkB,SAAS,CAACtG,IAAV,KAAmB,IAAvB,EAA6B;AAC3B,aAAO,IAAP;AACD;;AAED,0BAA+BqB,MAAM,CAACoE,MAAP,CAAcL,aAAd,CAA/B;AAAA;AAAA,QAAOmB,OAAP;AAAA,QAAgBC,WAAhB;;AACA,0BAAiCnF,MAAM,CAACoE,MAAP,CAAce,WAAd,CAAjC;AAAA;AAAA,QAAOC,QAAP;AAAA,QAAiBC,YAAjB;;AAEA,QAAI3E,UAAJ;AACA,QAAI4E,cAAJ;;AAEA,QAAIF,QAAQ,CAACzG,IAAT,KAAkB,IAAtB,EAA4B;AAC1B+B,MAAAA,UAAU,GAAGwE,OAAb;AACAI,MAAAA,cAAc,GAAGH,WAAjB;AACD,KAHD,MAGO;AAAA,4BAC0BnF,MAAM,CAACoE,MAAP,CAAciB,YAAd,CAD1B;;AAAA;;AACJ3E,MAAAA,UADI;AACQ4E,MAAAA,cADR;AAEN;;AAED,QAAMC,KAAK,GAAG7E,UAAU,CAACpB,QAAX,CAAoBkG,OAApB,CAA4BJ,QAAQ,CAACzG,IAAT,KAAkB,IAAlB,GAAyBsG,SAAzB,GAAqCG,QAAjE,CAAd;AACA,QAAMK,cAAc,GAAGP,OAAO,CAAC5F,QAAR,CAAiBoG,MAAjB,CACrB,UAACC,GAAD,EAAMC,IAAN,EAAYL,KAAZ,EAAsB;AACpB,UAAIK,IAAI,KAAKX,SAAb,EAAwB;AACtBU,QAAAA,GAAG,CAACE,IAAJ,GAAW,KAAX;AACA,eAAOF,GAAP;AACD;;AAED,UAAI,CAACA,GAAG,CAACE,IAAT,EAAe;AACbF,QAAAA,GAAG,CAACtB,IAAJ,CAASyB,IAAT,CAAc,CAACF,IAAD,gDAAWT,WAAX,IAAwBI,KAAK,GAAG,CAAhC,GAAd;AACD;;AAED,aAAOI,GAAP;AACD,KAZoB,EAarB;AAAEE,MAAAA,IAAI,EAAE,IAAR;AAAcxB,MAAAA,IAAI,EAAE;AAApB,KAbqB,CAAvB;;AAgBA,QAAIoB,cAAc,CAACpB,IAAf,CAAoB9E,MAAxB,EAAgC;AAC9B,UAAMuF,OAAO,GAAG;AACdnG,QAAAA,IAAI,EAAEA,IADQ;AAEdW,QAAAA,QAAQ,EAAE;AAFI,OAAhB;;AAKA,UAAMoF,eAAe,GAAGpE,YAAUqE,GAAV,CAAc3E,MAAd,gDAA0B+D,aAA1B,IAAyC,CAAzC,GAAxB;;AAEA,UAAIa,YAAKC,MAAL,CAAYH,eAAZ,CAAJ,EAAkC;AAChC,YAAMtC,KAAK,GAAG;AAAEzD,UAAAA,IAAI,EAAE,KAAR;AAAeW,UAAAA,QAAQ,EAAE;AAAzB,SAAd,CADgC,CAGhC;;AACAU,QAAAA,MAAM,CAACqC,SAAP,CAAiBD,KAAjB,EAAwB;AACtBO,UAAAA,EAAE,gDAAMoB,aAAN,IAAqB,CAArB;AADoB,SAAxB;AAGD;;AAED/D,MAAAA,MAAM,CAAC+E,UAAP,CAAkBD,OAAlB,EAA2B;AACzBnC,QAAAA,EAAE,gDAAMoB,aAAN,IAAqBkB,SAAS,CAAC3F,QAAV,CAAmBC,MAAxC;AADuB,OAA3B;AAIA,UAAMgF,QAAQ,iDAAOe,cAAP,IAAuBC,KAAK,GAAG,CAA/B,EAAd;AAEAvF,MAAAA,MAAM,CAACwE,SAAP,CAAiB;AACf7B,QAAAA,EAAE,EAAEoB,aADW;AAEfU,QAAAA,EAAE,EAAEF;AAFW,OAAjB,EAvB8B,CA4B9B;;AACAkB,MAAAA,cAAc,CAACpB,IAAf,CAAoB0B,OAApB,CAA4B,iBAAgB;AAAA;AAAA,YAAZC,MAAY;;AAC1C,8BAA0B1F,YAAU2F,IAAV,CAAejG,MAAf,gDAA2BuE,QAA3B,IAAqC,CAArC,GAA1B;AAAA;AAAA,YAAS2B,aAAT;;AAEAlG,QAAAA,MAAM,CAACwE,SAAP,CAAiB;AACf7B,UAAAA,EAAE,EAAEqD,MADW;AAEfvB,UAAAA,EAAE,EAAEyB;AAFW,SAAjB;AAID,OAPD;AAQD,KArCD,MAqCO;AACL;AACA,UAAM3B,UAAQ,iDAAOe,cAAP,IAAuBC,KAAK,GAAG,CAA/B,EAAd;;AAEAvF,MAAAA,MAAM,CAACwE,SAAP,CAAiB;AACf7B,QAAAA,EAAE,EAAEoB,aADW;AAEfU,QAAAA,EAAE,EAAEF;AAFW,OAAjB;AAID;;AAED,QAAIW,OAAO,CAAC5F,QAAR,CAAiBC,MAAjB,KAA4BkG,cAAc,CAACpB,IAAf,CAAoB9E,MAApB,GAA6B,CAA7D,EAAgE;AAC9D;AACA;AACAS,MAAAA,MAAM,CAACmG,WAAP,CAAmB;AACjBxD,QAAAA,EAAE,EAAEwC;AADa,OAAnB;AAGD;;AAED,WAAO,IAAP;AACD,GA7FD;;AA+FAiB,EAAAA,MAAM,CAACpB,iBAAP,GAA2BA,iBAA3B;;AAEA,MAAMqB,eAAe,GAAG,SAAlBA,eAAkB,CAACrG,MAAD,EAASsG,QAAT,EAAsB;AAC5C,oDAA0BA,QAA1B;AAAA,QAASvC,aAAT;;AAEA/D,IAAAA,MAAM,CAACuG,kBAAP,CAA0B,YAAM;AAC9B,UAAMC,aAAa,GAAGzC,aAAa,CAAC0C,KAAd,CAAoB,CAApB,EAAuB1C,aAAa,CAACxE,MAAd,GAAuB,CAA9C,CAAtB;AAEAiH,MAAAA,aAAa,CAACA,aAAa,CAACjH,MAAd,GAAuB,CAAxB,CAAb,IAA2C,CAA3C;;AAEA,UAAIwE,aAAa,CAACA,aAAa,CAACxE,MAAd,GAAuB,CAAxB,CAAb,KAA4C,CAAhD,EAAmD;AACjDS,QAAAA,MAAM,CAAC0G,UAAP,CAAkB;AAAE/D,UAAAA,EAAE,EAAEoB,aAAN;AAAqB4C,UAAAA,MAAM,EAAE;AAA7B,SAAlB;AACD,OAFD,MAEO;AACLH,QAAAA,aAAa,CAACA,aAAa,CAACjH,MAAd,GAAuB,CAAxB,CAAb,IAA2C,CAA3C;AACD;;AAEDS,MAAAA,MAAM,CAACwE,SAAP,CAAiB;AAAE7B,QAAAA,EAAE,gDAAM6D,aAAN,IAAqB,CAArB,EAAJ;AAA6B/B,QAAAA,EAAE,EAAE+B;AAAjC,OAAjB;AACAxG,MAAAA,MAAM,CAACmC,QAAP,CAAgB;AAAExD,QAAAA,IAAI,EAAE;AAAR,OAAhB,EAAiC;AAAEgE,QAAAA,EAAE,EAAE6D;AAAN,OAAjC;AAEA,UAAMI,WAAW,GAAGJ,aAAa,CAACC,KAAd,EAApB;AAEAG,MAAAA,WAAW,CAACA,WAAW,CAACrH,MAAZ,GAAqB,CAAtB,CAAX,IAAuC,CAAvC;;AAEA,yBAAkBS,MAAM,CAACY,IAAP,CAAYgG,WAAZ,CAAlB;AAAA;AAAA,UAAO9B,OAAP;;AAEA,UAAI,CAACA,OAAO,CAACxF,QAAR,CAAiBC,MAAtB,EAA8B;AAC5BS,QAAAA,MAAM,CAACmG,WAAP,CAAmB;AAAExD,UAAAA,EAAE,EAAEiE;AAAN,SAAnB;AACD;AACF,KAvBD;AAwBD,GA3BD;;AA6BAR,EAAAA,MAAM,CAAC9F,SAAP,GAAmBA,WAAnB;;AAEA,MAAMkB,UAAU,GAAG,SAAbA,UAAa,CAACxB,MAAD,EAAY;AAC7B,QAAI6G,iBAAiB,GAAGrH,KAAK,CAACC,IAAN,CACtBS,cAAOnB,KAAP,CAAaiB,MAAb,EAAqB;AACnB2C,MAAAA,EAAE,EAAEzC,cAAOC,WAAP,CAAmBH,MAAnB,EAA2BA,MAAM,CAACI,SAAlC,CADe;AAEnBwB,MAAAA,KAAK,EAAE,eAAChB,IAAD;AAAA,eAAU,CAACV,cAAO4B,QAAP,CAAgBlB,IAAhB,CAAD,IAA0BmB,eAAaC,SAAb,CAAuBpB,IAAvB,CAA1B,IAA0DA,IAAI,CAACjC,IAAL,KAAc,IAAlF;AAAA;AAFY,KAArB,CADsB,CAAxB;;AAOA,WAAOkI,iBAAiB,CAACtH,MAAzB,EAAiC;AAC/B8G,MAAAA,eAAe,CAACrG,MAAD,EAAS6G,iBAAiB,CAAC,CAAD,CAA1B,CAAf;AACAA,MAAAA,iBAAiB,GAAGrH,KAAK,CAACC,IAAN,CAClBS,cAAOnB,KAAP,CAAaiB,MAAb,EAAqB;AACnB2C,QAAAA,EAAE,EAAEzC,cAAOC,WAAP,CAAmBH,MAAnB,EAA2BA,MAAM,CAACI,SAAlC,CADe;AAEnBwB,QAAAA,KAAK,EAAE,eAAChB,IAAD;AAAA,iBAAU,CAACV,cAAO4B,QAAP,CAAgBlB,IAAhB,CAAD,IAA0BmB,eAAaC,SAAb,CAAuBpB,IAAvB,CAA1B,IAA0DA,IAAI,CAACjC,IAAL,KAAc,IAAlF;AAAA;AAFY,OAArB,CADkB,CAApB;AAMD;AACF,GAjBD;;AAmBAyH,EAAAA,MAAM,CAAC5E,UAAP,GAAoBA,UAApB;;AAEA,MAAMsF,OAAO,GAAG,SAAVA,OAAU,CAAC9G,MAAD,EAAS+G,KAAT,EAAmB;AACjCA,IAAAA,KAAK,CAACC,cAAN;;AAEA,QAAIC,aAAMC,UAAN,CAAiBlH,MAAM,CAACmH,KAAP,CAAanH,MAAM,CAACI,SAApB,CAAjB,CAAJ,EAAsD;AACpDJ,MAAAA,MAAM,UAAN;AACD;;AAED,8BAAmC2D,iBAAiB,CAAC3D,MAAD,EAAS,IAAT,CAApD;AAAA;AAAA,QAAOiF,SAAP;AAAA,QAAkBlB,aAAlB;;AAEA,QAAI/D,MAAM,CAACoH,OAAP,CAAenC,SAAf,CAAJ,EAA+B;AAC7B;AACA,4BAAqBjF,MAAM,CAACoE,MAAP,CAAcL,aAAd,CAArB;AAAA;AAAA,UAASrB,QAAT;;AACA,kBAAyBA,QAAQ,CAACnD,MAAT,GAAkB,CAAlB,GAAsBS,MAAM,CAACoE,MAAP,CAAc1B,QAAd,CAAtB,GAAgD,EAAzE;AAAA;AAAA,UAAO2E,cAAP;;AAEA,UAAIA,cAAJ,EAAoB;AAClB,eAAOrC,iBAAiB,CAAChF,MAAD,CAAxB;AACD,OAP4B,CAS7B;;;AACA,aAAOwB,UAAU,CAACxB,MAAD,CAAjB;AACD;;AAED,QAAMsH,WAAW,GAAG1C,YAAKC,MAAL,CAAYI,SAAS,CAAC3F,QAAV,CAAmB,CAAnB,CAAZ,IAAqCyE,aAArC,iDAAyDA,aAAzD,IAAwE,CAAxE,EAApB;;AAEA,QAAIa,YAAKC,MAAL,CAAYI,SAAS,CAAC3F,QAAV,CAAmB,CAAnB,CAAZ,CAAJ,EAAwC;AACtCU,MAAAA,MAAM,CAACuH,KAAP,CAAa;AACX5I,QAAAA,IAAI,EAAE,YADK;AAEX6B,QAAAA,IAAI,EAAE8G,WAFK;AAGXE,QAAAA,QAAQ,EAAE,CAHC;AAIXC,QAAAA,UAAU,EAAE;AAAE9I,UAAAA,IAAI,EAAE;AAAR;AAJD,OAAb;AAOA,UAAM+I,SAAS,GAAG,2BAAUJ,WAAV,CAAlB;AAEAI,MAAAA,SAAS,CAACA,SAAS,CAACnI,MAAV,GAAmB,CAApB,CAAT,GAAkCmI,SAAS,CAACA,SAAS,CAACnI,MAAV,GAAmB,CAApB,CAAT,GAAkC,CAApE;;AACAmC,wBAAWiG,MAAX,CAAkB3H,MAAlB,EAA0B0H,SAA1B;AACD,KAZD,MAYO;AACL1H,MAAAA,MAAM,CAAC0G,UAAP,CAAkB;AAAE/D,QAAAA,EAAE,EAAE2E,WAAN;AAAmBX,QAAAA,MAAM,EAAE;AAA3B,OAAlB;AACD;;AAED,WAAO,IAAP;AACD,GAzCD;;AA2CAzF,EAAAA,IAAI,CAAC0G,KAAL,GAAa,UAAC5H,MAAD,EAAS+G,KAAT,EAAmB;AAC9B,QAAIc,MAAJ;;AAEA,QAAId,KAAK,CAACe,QAAV,EAAoB;AAClBD,MAAAA,MAAM,GAAG7C,iBAAiB,CAAChF,MAAD,CAA1B;AACD,KAFD,MAEO;AACL6H,MAAAA,MAAM,GAAG/D,iBAAiB,CAAC9D,MAAD,CAA1B;AACD;;AAED+H,IAAAA,UAAU,CAAC;AAAA,aAAMnI,wBAAYoI,KAAZ,CAAkBhI,MAAlB,CAAN;AAAA,KAAD,EAAkC,EAAlC,CAAV;AAEA,WAAO6H,MAAP;AACD,GAZD;;AAcA3G,EAAAA,IAAI,CAAC+G,WAAL,GAAmB,UAACjI,MAAD,EAAS+G,KAAT,EAAmB;AACpC,QAAMmB,UAAU,GAAGjB,aAAMkB,KAAN,CAAYnI,MAAM,CAACI,SAAnB,CAAnB;;AAEA,QAAI8H,UAAU,CAACE,MAAX,KAAsB,CAA1B,EAA6B;AAC3B;AACD;;AAED,QAAInB,aAAMC,UAAN,CAAiBlH,MAAM,CAACmH,KAAP,CAAanH,MAAM,CAACI,SAApB,CAAjB,CAAJ,EAAsD;AACpDJ,MAAAA,MAAM,UAAN;AACA;AACD;;AAED+G,IAAAA,KAAK,CAACC,cAAN;;AAEA,8BAA0BrD,iBAAiB,CAAC3D,MAAD,EAAS,IAAT,CAA3C;AAAA;AAAA,QAAS+D,aAAT,0BAdoC,CAepC;;;AACA,2BAAqB/D,MAAM,CAACoE,MAAP,CAAcL,aAAd,CAArB;AAAA;AAAA,QAASrB,QAAT;;AACA,gBAAyBA,QAAQ,CAACnD,MAAT,GAAkB,CAAlB,GAAsBS,MAAM,CAACoE,MAAP,CAAc1B,QAAd,CAAtB,GAAgD,EAAzE;AAAA;AAAA,QAAO2E,cAAP;;AAEA,QAAIA,cAAJ,EAAoB;AAClB,aAAOrC,iBAAiB,CAAChF,MAAD,CAAxB;AACD;;AAEDwB,IAAAA,UAAU,CAACxB,MAAD,CAAV;AAEA,WAAO,IAAP;AACD,GA1BD;;AA4BAkB,EAAAA,IAAI,CAAC4F,OAAL,GAAe,UAAC9G,MAAD,EAAS+G,KAAT,EAAmB;AAChC,QAAIc,MAAJ;;AAEA,QAAId,KAAK,CAACe,QAAV,EAAoB,CAClB;AACD,KAFD,MAEO;AACLD,MAAAA,MAAM,GAAGf,OAAO,CAAC9G,MAAD,EAAS+G,KAAT,CAAhB;AACD;;AAEDgB,IAAAA,UAAU,CAAC;AAAA,aAAMnI,wBAAYoI,KAAZ,CAAkBhI,MAAlB,CAAN;AAAA,KAAD,EAAkC,EAAlC,CAAV;AAEA,WAAO6H,MAAP;AACD,GAZD;;AAcA3G,EAAAA,IAAI,CAACmH,SAAL,GAAiB,UAACrI,MAAD,EAAS+G,KAAT,EAAmB;AAClC,QAAM1F,QAAQ,GAAGN,aAAa,CAACf,MAAD,EAASrB,IAAT,CAA9B;AACA,QAAM2C,MAAM,GAAGC,UAAU,CAACV,QAAX,CAAoBlC,IAApB,CAAf;;AAEA,QAAI0C,QAAQ,IAAIC,MAAhB,EAAwB;AACtB,cAAQyF,KAAK,CAACpH,GAAd;AACE,aAAKiD,OAAL;AACE,iBAAO1B,IAAI,CAAC0G,KAAL,CAAW5H,MAAX,EAAmB+G,KAAnB,CAAP;;AACF,aAAKlE,SAAL;AACE,iBAAO3B,IAAI,CAAC4F,OAAL,CAAa9G,MAAb,EAAqB+G,KAArB,CAAP;;AACF,aAAKjE,aAAL;AACE,iBAAO5B,IAAI,CAAC+G,WAAL,CAAiBjI,MAAjB,EAAyB+G,KAAzB,CAAP;;AACF;AACE,iBAAOjH,SAAP;AARJ;AAUD;AACF,GAhBD;;AAkBA,SAAOoB,IAAP;AACD,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport { Node as SlateNode, Editor, Element as SlateElement, Path, Range, Transforms, Text } from 'slate';\nimport { ReactEditor } from 'slate-react';\nimport { jsx } from 'slate-hyperscript';\nimport cloneDeep from 'lodash/cloneDeep';\n\nconst log = debug('@pie-lib:editable-html:plugins:list');\n\nconst b = (type, next, childNodes) => ({\n object: 'block',\n type,\n nodes: next(childNodes),\n});\n\nexport const serialization = {\n deserialize(el, next) {\n const name = el.tagName.toLowerCase();\n const children = el.children.length ? Array.from(el.children) : el.childNodes;\n\n if (name === 'li') {\n return jsx(\n 'element',\n {\n type: 'li',\n },\n next(children),\n );\n }\n\n if (name === 'ul') {\n return jsx(\n 'element',\n {\n type: 'ul',\n },\n next(children),\n );\n }\n\n if (name === 'ol') {\n return jsx(\n 'element',\n {\n type: 'ol',\n },\n next(children),\n );\n }\n },\n serialize(object, children) {\n const key = ReactEditor.findKey(undefined, object);\n\n if (object.type === 'li') {\n return <li key={key}>{children}</li>;\n }\n\n if (object.type === 'ul') {\n return <ul key={key}>{children}</ul>;\n }\n\n if (object.type === 'ol') {\n return <ol key={key}>{children}</ol>;\n }\n },\n};\n\nconst getListParent = (editor) => {\n try {\n const pathRange = Editor.unhangRange(editor, editor.selection);\n const ancestors = Array.from(SlateNode.ancestors(editor, pathRange.anchor.path, { reverse: true }));\n const parentList = ancestors.find(([node]) => ['ul', 'ol'].includes(node.type));\n\n return parentList;\n } catch (e) {\n return null;\n }\n};\n\nconst isBlockActive = (editor, format) => {\n const { selection } = editor;\n\n if (!selection) {\n return false;\n }\n\n const parentList = getListParent(editor);\n\n if (!parentList) {\n return false;\n }\n\n return parentList[0].type === format;\n};\n\nconst createEditList = () => {\n const core = {\n changes: {},\n };\n\n core.changes.wrapInList = (editor, format) => {\n const isActive = isBlockActive(editor, format);\n const isList = LIST_TYPES.includes(format);\n\n if (isActive && isList) {\n unwrapList(editor);\n return;\n }\n\n const listSelected = getListParent(editor);\n\n if (!listSelected) {\n Transforms.unwrapNodes(editor, {\n match: (n) => !Editor.isEditor(n) && SlateElement.isElement(n) && LIST_TYPES.includes(n.type),\n split: true,\n });\n\n const newProperties = {\n type: isActive ? 'paragraph' : isList ? 'li' : format,\n };\n\n Transforms.setNodes(editor, newProperties);\n\n if (!isActive && isList) {\n const block = { type: format, children: [] };\n Transforms.wrapNodes(editor, block, {\n match: (n) => !Editor.isEditor(n) && SlateElement.isElement(n) && LIST_TYPES.includes(n.type),\n });\n }\n } else {\n const switchMap = {\n ul: 'ol',\n ol: 'ul',\n };\n const [listNode, listPath] = listSelected;\n\n editor.setNodes({ type: switchMap[listNode.type] }, { at: listPath });\n }\n };\n\n return core;\n};\n\nexport const LIST_TYPES = ['ul', 'ol', 'li'];\n\nconst KEY_TAB = 'Tab';\nconst KEY_ENTER = 'Enter';\nconst KEY_BACKSPACE = 'Backspace';\n\nexport default (options) => {\n const { type, icon } = options;\n\n const core = createEditList();\n\n core.supports = (node) => LIST_TYPES.includes(node.type);\n\n core.renderNode = (props) => {\n const { node, attributes, children } = props;\n\n switch (node.type) {\n case 'ul':\n return <ul {...attributes}>{children}</ul>;\n case 'ol':\n return <ol {...attributes}>{children}</ol>;\n case 'li':\n return <li {...attributes}>{children}</li>;\n }\n };\n\n core.toolbar = {\n isMark: false,\n type,\n icon,\n isActive: isBlockActive,\n onClick: (editor) => {\n core.changes.wrapInList(editor, type);\n },\n };\n\n core.renderNode.propTypes = {\n node: PropTypes.object,\n attributes: PropTypes.object,\n children: PropTypes.func,\n };\n\n const getAncestorByType = (editor, type) => {\n if (!editor || !type) {\n return null;\n }\n\n const ancestors = SlateNode.ancestors(editor, Editor.path(editor, editor.selection), {\n reverse: true,\n });\n\n for (const [ancestor, ancestorPath] of ancestors) {\n if (ancestor.type === type) {\n return [ancestor, ancestorPath];\n }\n }\n\n return null;\n };\n\n const increaseItemDepth = (editor) => {\n const [, currentLiPath] = getAncestorByType(editor, 'li');\n const prevResult = editor.previous({ at: currentLiPath });\n\n if (!prevResult) {\n return true;\n }\n\n const [prevLi, prevLiPath] = prevResult;\n const [list] = editor.parent(prevLiPath);\n\n if (!list || !prevLi) {\n return true;\n }\n\n const lastItem = prevLi.children[prevLi.children.length - 1];\n\n if (lastItem && lastItem.type === 'ul') {\n // if it's a list\n const itemPath = [...prevLiPath, 1, lastItem.children.length];\n\n editor.moveNodes({\n at: currentLiPath,\n to: itemPath,\n });\n } else {\n const block = { type: 'div', children: [] };\n const listItemContent = SlateNode.get(editor, [...prevLiPath, 0]);\n\n if (Text.isText(listItemContent)) {\n // wrap text in a block, so we can add a list on the same level\n editor.wrapNodes(block, {\n at: [...prevLiPath, 0],\n });\n }\n\n const newList = {\n type: type,\n children: [],\n };\n\n editor.insertNode(newList, {\n at: [...prevLiPath, prevLi.children.length],\n });\n\n const itemPath = [...prevLiPath, prevLi.children.length, 0];\n\n editor.moveNodes({\n at: currentLiPath,\n to: itemPath,\n });\n }\n\n return true;\n };\n\n const decreaseItemDepth = (editor) => {\n const [currentLi, currentLiPath] = getAncestorByType(editor, 'li');\n\n if (currentLi.type !== 'li') {\n return true;\n }\n\n const [subList, subListPath] = editor.parent(currentLiPath);\n const [parentLi, parentLiPath] = editor.parent(subListPath);\n\n let parentList;\n let parentListPath;\n\n if (parentLi.type !== 'li') {\n parentList = subList;\n parentListPath = subListPath;\n } else {\n [parentList, parentListPath] = editor.parent(parentLiPath);\n }\n\n const index = parentList.children.indexOf(parentLi.type !== 'li' ? currentLi : parentLi);\n const followingItems = subList.children.reduce(\n (acc, item, index) => {\n if (item === currentLi) {\n acc.skip = false;\n return acc;\n }\n\n if (!acc.skip) {\n acc.list.push([item, [...subListPath, index - 1]]);\n }\n\n return acc;\n },\n { skip: true, list: [] },\n );\n\n if (followingItems.list.length) {\n const newList = {\n type: type,\n children: [],\n };\n\n const listItemContent = SlateNode.get(editor, [...currentLiPath, 0]);\n\n if (Text.isText(listItemContent)) {\n const block = { type: 'div', children: [] };\n\n // wrap text in a block, so we can add a list on the same level\n editor.wrapNodes(block, {\n at: [...currentLiPath, 0],\n });\n }\n\n editor.insertNode(newList, {\n at: [...currentLiPath, currentLi.children.length],\n });\n\n const itemPath = [...parentListPath, index + 1];\n\n editor.moveNodes({\n at: currentLiPath,\n to: itemPath,\n });\n\n // otherItems.forEach((item, index) => editor.moveNodeByKey(item.key, newList.key, newList.nodes.size + index));\n followingItems.list.forEach(([, liPath]) => {\n const [, lastPlacePath] = SlateNode.last(editor, [...itemPath, 1]);\n\n editor.moveNodes({\n at: liPath,\n to: lastPlacePath,\n });\n });\n } else {\n // if it's a list\n const itemPath = [...parentListPath, index + 1];\n\n editor.moveNodes({\n at: currentLiPath,\n to: itemPath,\n });\n }\n\n if (subList.children.length === followingItems.list.length + 1) {\n // we already remove one item from the list when we moved it\n // and the reference is not updated => list is empty\n editor.removeNodes({\n at: subListPath,\n });\n }\n\n return true;\n };\n\n window.decreaseItemDepth = decreaseItemDepth;\n\n const unwrapListByKey = (editor, nodeInfo) => {\n const [, currentLiPath] = nodeInfo;\n\n editor.withoutNormalizing(() => {\n const splitItemPath = currentLiPath.slice(0, currentLiPath.length - 1);\n\n splitItemPath[splitItemPath.length - 1] += 1;\n\n if (currentLiPath[currentLiPath.length - 1] !== 0) {\n editor.splitNodes({ at: currentLiPath, always: true });\n } else {\n splitItemPath[splitItemPath.length - 1] -= 1;\n }\n\n editor.moveNodes({ at: [...splitItemPath, 0], to: splitItemPath });\n editor.setNodes({ type: 'div' }, { at: splitItemPath });\n\n const newListPath = splitItemPath.slice();\n\n newListPath[newListPath.length - 1] += 1;\n\n const [newList] = editor.node(newListPath);\n\n if (!newList.children.length) {\n editor.removeNodes({ at: newListPath });\n }\n });\n };\n\n window.SlateNode = SlateNode;\n\n const unwrapList = (editor) => {\n let furthestListItems = Array.from(\n Editor.nodes(editor, {\n at: Editor.unhangRange(editor, editor.selection),\n match: (node) => !Editor.isEditor(node) && SlateElement.isElement(node) && node.type === 'li',\n }),\n );\n\n while (furthestListItems.length) {\n unwrapListByKey(editor, furthestListItems[0]);\n furthestListItems = Array.from(\n Editor.nodes(editor, {\n at: Editor.unhangRange(editor, editor.selection),\n match: (node) => !Editor.isEditor(node) && SlateElement.isElement(node) && node.type === 'li',\n }),\n );\n }\n };\n\n window.unwrapList = unwrapList;\n\n const onEnter = (editor, event) => {\n event.preventDefault();\n\n if (Range.isExpanded(editor.range(editor.selection))) {\n editor.delete();\n }\n\n const [currentLi, currentLiPath] = getAncestorByType(editor, 'li');\n\n if (editor.isEmpty(currentLi)) {\n // Block is empty, we exit the list\n const [, listPath] = editor.parent(currentLiPath);\n const [parentListItem] = listPath.length > 1 ? editor.parent(listPath) : [];\n\n if (parentListItem) {\n return decreaseItemDepth(editor);\n }\n\n // Exit list\n return unwrapList(editor);\n }\n\n const pathToSplit = Text.isText(currentLi.children[0]) ? currentLiPath : [...currentLiPath, 0];\n\n if (Text.isText(currentLi.children[0])) {\n editor.apply({\n type: 'split_node',\n path: pathToSplit,\n position: 1,\n properties: { type: 'li' },\n });\n\n const newLiPath = cloneDeep(pathToSplit);\n\n newLiPath[newLiPath.length - 1] = newLiPath[newLiPath.length - 1] + 1;\n Transforms.select(editor, newLiPath);\n } else {\n editor.splitNodes({ at: pathToSplit, always: true });\n }\n\n return true;\n };\n\n core.onTab = (editor, event) => {\n let result;\n\n if (event.shiftKey) {\n result = decreaseItemDepth(editor);\n } else {\n result = increaseItemDepth(editor);\n }\n\n setTimeout(() => ReactEditor.focus(editor), 50);\n\n return result;\n };\n\n core.onBackSpace = (editor, event) => {\n const startRange = Range.start(editor.selection);\n\n if (startRange.offset !== 0) {\n return;\n }\n\n if (Range.isExpanded(editor.range(editor.selection))) {\n editor.delete();\n return;\n }\n\n event.preventDefault();\n\n const [, currentLiPath] = getAncestorByType(editor, 'li');\n // Block is empty, we exit the list\n const [, listPath] = editor.parent(currentLiPath);\n const [parentListItem] = listPath.length > 1 ? editor.parent(listPath) : [];\n\n if (parentListItem) {\n return decreaseItemDepth(editor);\n }\n\n unwrapList(editor);\n\n return true;\n };\n\n core.onEnter = (editor, event) => {\n let result;\n\n if (event.shiftKey) {\n // this is handled elsewhere already\n } else {\n result = onEnter(editor, event);\n }\n\n setTimeout(() => ReactEditor.focus(editor), 50);\n\n return result;\n };\n\n core.onKeyDown = (editor, event) => {\n const isActive = isBlockActive(editor, type);\n const isList = LIST_TYPES.includes(type);\n\n if (isActive && isList) {\n switch (event.key) {\n case KEY_TAB:\n return core.onTab(editor, event);\n case KEY_ENTER:\n return core.onEnter(editor, event);\n case KEY_BACKSPACE:\n return core.onBackSpace(editor, event);\n default:\n return undefined;\n }\n }\n };\n\n return core;\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/code/editable-html/plugins/list/index.jsx"],"names":["log","b","type","next","childNodes","object","nodes","serialization","deserialize","el","name","tagName","toLowerCase","children","length","Array","from","serialize","key","ReactEditor","findKey","undefined","getListParent","editor","pathRange","Editor","unhangRange","selection","ancestors","SlateNode","anchor","path","reverse","parentList","find","node","includes","e","isBlockActive","format","createEditList","core","changes","wrapInList","isActive","isList","LIST_TYPES","unwrapList","listSelected","Transforms","unwrapNodes","match","n","isEditor","SlateElement","isElement","split","newProperties","setNodes","block","wrapNodes","switchMap","ul","ol","listNode","listPath","at","KEY_TAB","KEY_ENTER","KEY_BACKSPACE","options","icon","supports","renderNode","props","attributes","toolbar","isMark","onClick","propTypes","PropTypes","func","getAncestorByType","ancestor","ancestorPath","increaseItemDepth","currentLiPath","prevResult","previous","prevLi","prevLiPath","parent","list","lastItem","itemPath","moveNodes","to","listItemContent","get","Text","isText","newList","insertNode","decreaseItemDepth","currentLi","subList","subListPath","parentLi","parentLiPath","parentListPath","index","indexOf","followingItems","reduce","acc","item","skip","push","forEach","liPath","last","lastPlacePath","removeNodes","window","unwrapListByKey","nodeInfo","withoutNormalizing","splitItemPath","slice","splitNodes","always","newListPath","furthestListItems","onEnter","event","preventDefault","Range","isExpanded","range","isEmpty","parentListItem","isListItem","pathToSplit","apply","position","properties","newLiPath","select","onTab","result","shiftKey","setTimeout","focus","onBackSpace","startRange","start","isNotOnTheFirstNode","isNotOnTheFirstIndex","offset","isAtStartOfListItem","onKeyDown"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport { Node as SlateNode, Editor, Element as SlateElement, Path, Range, Transforms, Text } from 'slate';\nimport { ReactEditor } from 'slate-react';\nimport { jsx } from 'slate-hyperscript';\nimport cloneDeep from 'lodash/cloneDeep';\n\nconst log = debug('@pie-lib:editable-html:plugins:list');\n\nconst b = (type, next, childNodes) => ({\n object: 'block',\n type,\n nodes: next(childNodes),\n});\n\nexport const serialization = {\n deserialize(el, next) {\n const name = el.tagName.toLowerCase();\n const children = el.children.length ? Array.from(el.children) : el.childNodes;\n\n if (name === 'li') {\n return jsx(\n 'element',\n {\n type: 'li',\n },\n next(children),\n );\n }\n\n if (name === 'ul') {\n return jsx(\n 'element',\n {\n type: 'ul',\n },\n next(children),\n );\n }\n\n if (name === 'ol') {\n return jsx(\n 'element',\n {\n type: 'ol',\n },\n next(children),\n );\n }\n },\n serialize(object, children) {\n const key = ReactEditor.findKey(undefined, object);\n\n if (object.type === 'li') {\n return <li key={key}>{children}</li>;\n }\n\n if (object.type === 'ul') {\n return <ul key={key}>{children}</ul>;\n }\n\n if (object.type === 'ol') {\n return <ol key={key}>{children}</ol>;\n }\n },\n};\n\nconst getListParent = (editor) => {\n try {\n const pathRange = Editor.unhangRange(editor, editor.selection);\n const ancestors = Array.from(SlateNode.ancestors(editor, pathRange.anchor.path, { reverse: true }));\n const parentList = ancestors.find(([node]) => ['ul', 'ol'].includes(node.type));\n\n return parentList;\n } catch (e) {\n return null;\n }\n};\n\nconst isBlockActive = (editor, format) => {\n const { selection } = editor;\n\n if (!selection) {\n return false;\n }\n\n const parentList = getListParent(editor);\n\n if (!parentList) {\n return false;\n }\n\n return parentList[0].type === format;\n};\n\nconst createEditList = () => {\n const core = {\n changes: {},\n };\n\n core.changes.wrapInList = (editor, format) => {\n const isActive = isBlockActive(editor, format);\n const isList = LIST_TYPES.includes(format);\n\n if (isActive && isList) {\n unwrapList(editor);\n return;\n }\n\n const listSelected = getListParent(editor);\n\n if (!listSelected) {\n Transforms.unwrapNodes(editor, {\n match: (n) => !Editor.isEditor(n) && SlateElement.isElement(n) && LIST_TYPES.includes(n.type),\n split: true,\n });\n\n const newProperties = {\n type: isActive ? 'paragraph' : isList ? 'li' : format,\n };\n\n Transforms.setNodes(editor, newProperties);\n\n if (!isActive && isList) {\n const block = { type: format, children: [] };\n Transforms.wrapNodes(editor, block, {\n match: (n) => !Editor.isEditor(n) && SlateElement.isElement(n) && LIST_TYPES.includes(n.type),\n });\n }\n } else {\n const switchMap = {\n ul: 'ol',\n ol: 'ul',\n };\n const [listNode, listPath] = listSelected;\n\n editor.setNodes({ type: switchMap[listNode.type] }, { at: listPath });\n }\n };\n\n return core;\n};\n\nexport const LIST_TYPES = ['ul', 'ol', 'li'];\n\nconst KEY_TAB = 'Tab';\nconst KEY_ENTER = 'Enter';\nconst KEY_BACKSPACE = 'Backspace';\n\nexport default (options) => {\n const { type, icon } = options;\n\n const core = createEditList();\n\n core.supports = (node) => LIST_TYPES.includes(node.type);\n\n core.renderNode = (props) => {\n const { node, attributes, children } = props;\n\n switch (node.type) {\n case 'ul':\n return <ul {...attributes}>{children}</ul>;\n case 'ol':\n return <ol {...attributes}>{children}</ol>;\n case 'li':\n return <li {...attributes}>{children}</li>;\n }\n };\n\n core.toolbar = {\n isMark: false,\n type,\n icon,\n isActive: isBlockActive,\n onClick: (editor) => {\n core.changes.wrapInList(editor, type);\n },\n };\n\n core.renderNode.propTypes = {\n node: PropTypes.object,\n attributes: PropTypes.object,\n children: PropTypes.func,\n };\n\n const getAncestorByType = (editor, type) => {\n if (!editor || !type) {\n return null;\n }\n\n const ancestors = SlateNode.ancestors(editor, Editor.path(editor, editor.selection), {\n reverse: true,\n });\n\n for (const [ancestor, ancestorPath] of ancestors) {\n if (ancestor.type === type) {\n return [ancestor, ancestorPath];\n }\n }\n\n return null;\n };\n\n const increaseItemDepth = (editor) => {\n const [, currentLiPath] = getAncestorByType(editor, 'li');\n const prevResult = editor.previous({ at: currentLiPath });\n\n if (!prevResult) {\n return true;\n }\n\n const [prevLi, prevLiPath] = prevResult;\n const [list] = editor.parent(prevLiPath);\n\n if (!list || !prevLi) {\n return true;\n }\n\n const lastItem = prevLi.children[prevLi.children.length - 1];\n\n if (lastItem && lastItem.type === 'ul') {\n // if it's a list\n const itemPath = [...prevLiPath, 1, lastItem.children.length];\n\n editor.moveNodes({\n at: currentLiPath,\n to: itemPath,\n });\n } else {\n const block = { type: 'div', children: [] };\n const listItemContent = SlateNode.get(editor, [...prevLiPath, 0]);\n\n if (Text.isText(listItemContent)) {\n // wrap text in a block, so we can add a list on the same level\n editor.wrapNodes(block, {\n at: [...prevLiPath, 0],\n });\n }\n\n const newList = {\n type: type,\n children: [],\n };\n\n editor.insertNode(newList, {\n at: [...prevLiPath, prevLi.children.length],\n });\n\n const itemPath = [...prevLiPath, prevLi.children.length, 0];\n\n editor.moveNodes({\n at: currentLiPath,\n to: itemPath,\n });\n }\n\n return true;\n };\n\n const decreaseItemDepth = (editor) => {\n const [currentLi, currentLiPath] = getAncestorByType(editor, 'li');\n\n if (currentLi.type !== 'li') {\n return true;\n }\n\n const [subList, subListPath] = editor.parent(currentLiPath);\n const [parentLi, parentLiPath] = editor.parent(subListPath);\n\n let parentList;\n let parentListPath;\n\n if (parentLi.type !== 'li') {\n parentList = subList;\n parentListPath = subListPath;\n } else {\n [parentList, parentListPath] = editor.parent(parentLiPath);\n }\n\n const index = parentList.children.indexOf(parentLi.type !== 'li' ? currentLi : parentLi);\n const followingItems = subList.children.reduce(\n (acc, item, index) => {\n if (item === currentLi) {\n acc.skip = false;\n return acc;\n }\n\n if (!acc.skip) {\n acc.list.push([item, [...subListPath, index - 1]]);\n }\n\n return acc;\n },\n { skip: true, list: [] },\n );\n\n if (followingItems.list.length) {\n const newList = {\n type: type,\n children: [],\n };\n\n const listItemContent = SlateNode.get(editor, [...currentLiPath, 0]);\n\n if (Text.isText(listItemContent)) {\n const block = { type: 'div', children: [] };\n\n // wrap text in a block, so we can add a list on the same level\n editor.wrapNodes(block, {\n at: [...currentLiPath, 0],\n });\n }\n\n editor.insertNode(newList, {\n at: [...currentLiPath, currentLi.children.length],\n });\n\n const itemPath = [...parentListPath, index + 1];\n\n editor.moveNodes({\n at: currentLiPath,\n to: itemPath,\n });\n\n // otherItems.forEach((item, index) => editor.moveNodeByKey(item.key, newList.key, newList.nodes.size + index));\n followingItems.list.forEach(([, liPath]) => {\n const [, lastPlacePath] = SlateNode.last(editor, [...itemPath, 1]);\n\n editor.moveNodes({\n at: liPath,\n to: lastPlacePath,\n });\n });\n } else {\n // if it's a list\n const itemPath = [...parentListPath, index + 1];\n\n editor.moveNodes({\n at: currentLiPath,\n to: itemPath,\n });\n }\n\n if (subList.children.length === followingItems.list.length + 1) {\n // we already remove one item from the list when we moved it\n // and the reference is not updated => list is empty\n editor.removeNodes({\n at: subListPath,\n });\n }\n\n return true;\n };\n\n window.decreaseItemDepth = decreaseItemDepth;\n\n const unwrapListByKey = (editor, nodeInfo) => {\n const [, currentLiPath] = nodeInfo;\n\n editor.withoutNormalizing(() => {\n const splitItemPath = currentLiPath.slice(0, currentLiPath.length - 1);\n\n splitItemPath[splitItemPath.length - 1] += 1;\n\n if (currentLiPath[currentLiPath.length - 1] !== 0) {\n editor.splitNodes({ at: currentLiPath, always: true });\n } else {\n splitItemPath[splitItemPath.length - 1] -= 1;\n }\n\n editor.moveNodes({ at: [...splitItemPath, 0], to: splitItemPath });\n editor.setNodes({ type: 'div' }, { at: splitItemPath });\n\n const newListPath = splitItemPath.slice();\n\n newListPath[newListPath.length - 1] += 1;\n\n const [newList] = editor.node(newListPath);\n\n if (!newList.children.length) {\n editor.removeNodes({ at: newListPath });\n }\n });\n };\n\n window.SlateNode = SlateNode;\n\n const unwrapList = (editor) => {\n let furthestListItems = Array.from(\n Editor.nodes(editor, {\n at: Editor.unhangRange(editor, editor.selection),\n match: (node) => !Editor.isEditor(node) && SlateElement.isElement(node) && node.type === 'li',\n }),\n );\n\n while (furthestListItems.length) {\n unwrapListByKey(editor, furthestListItems[0]);\n furthestListItems = Array.from(\n Editor.nodes(editor, {\n at: Editor.unhangRange(editor, editor.selection),\n match: (node) => !Editor.isEditor(node) && SlateElement.isElement(node) && node.type === 'li',\n }),\n );\n }\n };\n\n window.unwrapList = unwrapList;\n\n const onEnter = (editor, event) => {\n event.preventDefault();\n\n if (Range.isExpanded(editor.range(editor.selection))) {\n editor.delete();\n }\n\n const [currentLi, currentLiPath] = getAncestorByType(editor, 'li');\n\n if (editor.isEmpty(currentLi)) {\n // Block is empty, we exit the list\n const [, listPath] = editor.parent(currentLiPath);\n const [parentListItem] = listPath.length > 1 ? editor.parent(listPath) : [];\n const isListItem = parentListItem && parentListItem.type === 'li';\n\n if (isListItem) {\n return decreaseItemDepth(editor);\n }\n\n // Exit list\n return unwrapList(editor);\n }\n\n const pathToSplit = Text.isText(currentLi.children[0]) ? currentLiPath : [...currentLiPath, 0];\n\n if (Text.isText(currentLi.children[0])) {\n editor.apply({\n type: 'split_node',\n path: pathToSplit,\n position: currentLi.children.length,\n properties: { type: 'li' },\n });\n\n const newLiPath = cloneDeep(pathToSplit);\n\n newLiPath[newLiPath.length - 1] = newLiPath[newLiPath.length - 1] + 1;\n Transforms.select(editor, newLiPath);\n } else {\n editor.splitNodes({ at: pathToSplit, always: true });\n }\n\n return true;\n };\n\n core.onTab = (editor, event) => {\n let result;\n\n if (event.shiftKey) {\n result = decreaseItemDepth(editor);\n } else {\n result = increaseItemDepth(editor);\n }\n\n setTimeout(() => ReactEditor.focus(editor), 50);\n\n return result;\n };\n\n core.onBackSpace = (editor, event) => {\n const startRange = Range.start(editor.selection);\n const isNotOnTheFirstNode = startRange.path[startRange.path.length - 1] !== 0;\n const isNotOnTheFirstIndex = startRange.offset !== 0;\n const isAtStartOfListItem = isNotOnTheFirstNode || isNotOnTheFirstIndex;\n\n if (isAtStartOfListItem) {\n return;\n }\n\n if (Range.isExpanded(editor.range(editor.selection))) {\n editor.delete();\n return;\n }\n\n event.preventDefault();\n\n const [, currentLiPath] = getAncestorByType(editor, 'li');\n // Block is empty, we exit the list\n const [, listPath] = editor.parent(currentLiPath);\n const [parentListItem] = listPath.length > 1 ? editor.parent(listPath) : [];\n const isListItem = parentListItem && parentListItem.type === 'li';\n\n if (isListItem) {\n return decreaseItemDepth(editor);\n }\n\n unwrapList(editor);\n\n return true;\n };\n\n core.onEnter = (editor, event) => {\n let result;\n\n if (event.shiftKey) {\n // this is handled elsewhere already\n } else {\n result = onEnter(editor, event);\n }\n\n setTimeout(() => ReactEditor.focus(editor), 50);\n\n return result;\n };\n\n core.onKeyDown = (editor, event) => {\n const isActive = isBlockActive(editor, type);\n const isList = LIST_TYPES.includes(type);\n\n if (isActive && isList) {\n switch (event.key) {\n case KEY_TAB:\n return core.onTab(editor, event);\n case KEY_ENTER:\n return core.onEnter(editor, event);\n case KEY_BACKSPACE:\n return core.onBackSpace(editor, event);\n default:\n return undefined;\n }\n }\n };\n\n return core;\n};\n"],"file":"index.js"}
@@ -334,23 +334,6 @@ var _default = function _default(opts, toolbarPlugins
334
334
  newTable: true
335
335
  }
336
336
  });
337
-
338
- var _Editor$node = _slate.Editor.node(editor, editor.selection),
339
- _Editor$node2 = (0, _slicedToArray2["default"])(_Editor$node, 2),
340
- nodeAtSelection = _Editor$node2[0],
341
- nodePath = _Editor$node2[1];
342
-
343
- if (_slate.Text.isText(nodeAtSelection)) {
344
- var block = {
345
- type: 'div',
346
- children: []
347
- };
348
-
349
- _slate.Transforms.wrapNodes(editor, block, {
350
- at: nodePath
351
- });
352
- }
353
-
354
337
  editor.insertNode(newTable);
355
338
  moveToBeginningOfTable(editor, newTable);
356
339
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/code/editable-html/plugins/table/index.jsx"],"names":["log","Table","React","forwardRef","props","nodeAttributes","dataToAttributes","element","data","attrs","attributes","onFocus","onBlur","children","propTypes","PropTypes","object","func","node","shape","type","string","array","oneOfType","arrayOf","isRequired","TableRow","TableBody","useCellStyles","td","minWidth","TableCell","classes","Tag","header","getAncestorByType","editor","ancestors","SlateNode","Editor","path","selection","reverse","ancestor","ancestorPath","moveToBeginningOfTable","tableBlock","tablePath","firstTdPath","descendants","descendant","descendantPath","Transforms","select","TABLE_TYPES","opts","toolbarPlugins","core","utils","rules","normalizeNode","entry","tableNode","tableParent","get","slice","SlateElement","isElement","emptyBlock","text","tableIndex","beforeTablePath","apply","continueNormalization","length","afterTablePath","tBodyNode","wrapNodes","at","anchor","offset","focus","createTable","row","columns","tableRows","rowLength","Array","fill","columnsLength","i","tableRow","j","push","getTableBlock","isSelectionInTable","createTableWithOptions","extra","createdTable","newTable","toolbar","icon","onClick","border","nodeAtSelection","nodePath","Text","isText","block","insertNode","customToolbar","onToolbarDone","hasBorder","addRow","trNode","trPath","newTr","insertNodes","removeRow","tBodyPath","removeNodes","addColumn","emptyTd","trElements","nodes","match","removeColumn","currentPath","columnIndex","removeTable","toggleBorder","update","properties","newProperties","onDone","Tb","c","supports","includes","onKeyDown","event","key","parent","currentNode","preventDefault","Node","renderNode","parseStyleString","s","regex","result","exec","trim","reactAttributes","o","camelize","addUnits","attributesToMap","el","acc","attribute","value","getAttribute","styleString","reactStyleObject","v","name","cellAttributes","serialization","deserialize","next","tag","tagName","toLowerCase","from","reduce","childNodes","serialize","ReactEditor","findKey","undefined"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Node as SlateNode, Element as SlateElement, Editor, Transforms, Text } from 'slate';\nimport { ReactEditor } from 'slate-react';\nimport debug from 'debug';\nimport GridOn from '@material-ui/icons/GridOn';\nimport TableToolbar from './table-toolbar';\nimport PropTypes from 'prop-types';\nimport { jsx } from 'slate-hyperscript';\nimport { makeStyles } from '@material-ui/styles';\nimport convert from 'react-attr-converter';\nimport { object as toStyleObject } from 'to-style';\nimport get from 'lodash/get';\nimport omit from 'lodash/omit';\nimport reduce from 'lodash/reduce';\n\nconst log = debug('@pie-lib:editable-html:plugins:table');\n\nconst Table = React.forwardRef((props) => {\n const nodeAttributes = omit(dataToAttributes(props.element.data), 'newTable');\n const attrs = omit(props.attributes, 'newTable');\n\n return (\n <table {...attrs} {...nodeAttributes} onFocus={props.onFocus} onBlur={props.onBlur}>\n {props.children}\n </table>\n );\n});\n\nTable.propTypes = {\n attributes: PropTypes.object,\n element: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n node: PropTypes.shape({\n type: PropTypes.string,\n children: PropTypes.array,\n data: PropTypes.object,\n }),\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n};\n\nconst TableRow = React.forwardRef((props) => <tr {...props.attributes}>{props.children}</tr>);\n\nTableRow.propTypes = {\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n};\n\nconst TableBody = React.forwardRef((props) => <tbody {...props.attributes}>{props.children}</tbody>);\n\nTableBody.propTypes = {\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n};\n\nconst useCellStyles = makeStyles({\n td: {\n minWidth: '25px',\n },\n});\n\nconst TableCell = React.forwardRef((props) => {\n const classes = useCellStyles();\n const { node } = props;\n const Tag = get(node, 'data.header') ? 'th' : 'td';\n\n const nodeAttributes = dataToAttributes(props.element.data);\n delete nodeAttributes.header;\n\n return (\n <Tag\n {...props.attributes}\n {...nodeAttributes}\n colSpan={get(node, 'data.colspan')}\n className={classes[Tag]}\n onFocus={props.onFocus}\n onBlur={props.onBlur}\n >\n {props.children}\n </Tag>\n );\n});\n\nTableCell.propTypes = {\n node: PropTypes.object,\n element: PropTypes.object,\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n};\n\nconst getAncestorByType = (editor, type) => {\n if (!editor || !type) {\n return null;\n }\n\n const ancestors = SlateNode.ancestors(editor, Editor.path(editor, editor.selection), {\n reverse: true,\n });\n\n for (const [ancestor, ancestorPath] of ancestors) {\n if (ancestor.type === type) {\n return [ancestor, ancestorPath];\n }\n }\n\n return null;\n};\n\nconst moveToBeginningOfTable = (editor) => {\n const [tableBlock, tablePath] = getAncestorByType(editor, 'table');\n let firstTdPath;\n\n for (const [descendant, descendantPath] of SlateNode.descendants(tableBlock, { reverse: true })) {\n if (descendant.type === 'td') {\n firstTdPath = descendantPath;\n }\n }\n\n Transforms.select(editor, [...tablePath, ...firstTdPath]);\n};\n\nconst TABLE_TYPES = ['tbody', 'tr', 'td', 'table'];\n\nexport default (opts, toolbarPlugins /* : {toolbar: {}}[] */) => {\n const core = {\n utils: {},\n rules: (editor) => {\n const { normalizeNode } = editor;\n\n editor.normalizeNode = (entry) => {\n const [tableNode, tablePath] = entry;\n const tableParent = SlateNode.get(editor, tablePath.slice(0, -1));\n\n // If the element is a table, ensure its children are valid.\n if (SlateElement.isElement(tableNode) && tableNode.type === 'table') {\n const emptyBlock = {\n type: 'div',\n children: [{ text: '' }],\n };\n const tableIndex = tablePath.slice(-1)[0];\n\n // if table is the first element, we need to add a space before\n // so users can focus before the table\n if (tableIndex === 0) {\n const beforeTablePath = [...tablePath.slice(0, -1), 0];\n\n editor.apply({\n type: 'insert_node',\n path: beforeTablePath,\n node: emptyBlock,\n });\n editor.continueNormalization();\n return;\n }\n\n // if table is the last element, we add element after it\n if (tableParent.children.length - 1 === tableIndex) {\n const afterTablePath = [...tablePath.slice(0, -1), tableIndex + 1];\n\n editor.apply({\n type: 'insert_node',\n path: afterTablePath,\n node: emptyBlock,\n });\n editor.continueNormalization();\n return;\n }\n\n // if table does not have a tbody, we add it\n if (tableNode.children[0].type !== 'tbody') {\n const tBodyNode = { type: 'tbody', children: [] };\n\n Transforms.wrapNodes(editor, tBodyNode, {\n at: {\n anchor: { path: [...tablePath, 0], offset: 0 },\n focus: { path: [...tablePath, tableNode.children.length], offset: 0 },\n },\n });\n editor.continueNormalization();\n return;\n }\n }\n\n // Fall back to the original `normalizeNode` to enforce other constraints.\n normalizeNode(entry);\n };\n\n return editor;\n },\n };\n\n core.utils.createTable = (row = 2, columns = 2) => {\n const tableRows = [];\n const rowLength = new Array(row).fill(0).length;\n const columnsLength = new Array(columns).fill(0).length;\n\n for (let i = 0; i < rowLength; i++) {\n const tableRow = { type: 'tr', children: [] };\n\n for (let j = 0; j < columnsLength; j++) {\n tableRow.children.push({\n type: 'td',\n children: [\n {\n text: '',\n },\n ],\n });\n }\n\n tableRows.push(tableRow);\n }\n\n return {\n type: 'table',\n children: [\n {\n type: 'tbody',\n children: tableRows,\n },\n ],\n };\n };\n\n core.utils.getTableBlock = (editor) => getAncestorByType(editor, 'table');\n\n core.utils.isSelectionInTable = (editor) => !!core.utils.getTableBlock(editor);\n\n core.utils.createTableWithOptions = (row, columns, extra) => {\n const createdTable = core.utils.createTable(row, columns);\n const newTable = { ...createdTable, ...extra };\n\n return newTable;\n };\n\n core.toolbar = {\n icon: <GridOn />,\n onClick: (editor) => {\n log('insert table');\n const newTable = core.utils.createTableWithOptions(2, 2, {\n data: {\n border: '1',\n newTable: true,\n },\n });\n\n const [nodeAtSelection, nodePath] = Editor.node(editor, editor.selection);\n\n if (Text.isText(nodeAtSelection)) {\n const block = { type: 'div', children: [] };\n\n Transforms.wrapNodes(editor, block, { at: nodePath });\n }\n\n editor.insertNode(newTable);\n moveToBeginningOfTable(editor, newTable);\n },\n /**\n * Note - the node may not be a table node - it may be a node inside a table.\n */\n customToolbar: (node, nodePath, editor, onToolbarDone) => {\n log('[customToolbar] node.data: ', node.data);\n\n const [tableBlock] = core.utils.getTableBlock(editor);\n log('[customToolbar] tableBlock: ', tableBlock);\n\n const hasBorder = () => get(tableBlock, 'data.border') !== '0';\n const addRow = () => {\n const [trNode, trPath] = getAncestorByType(editor, 'tr');\n\n log('[addRow]');\n\n if (trNode) {\n const newTr = { type: 'tr', children: [] };\n const columnsLength = trNode.children.length;\n\n for (let i = 0; i < columnsLength; i++) {\n newTr.children.push({\n type: 'td',\n children: [\n {\n text: '',\n },\n ],\n });\n }\n\n Transforms.insertNodes(editor, [newTr], { at: trPath });\n }\n };\n\n const removeRow = () => {\n const [tBodyNode, tBodyPath] = getAncestorByType(editor, 'tbody');\n\n log('[removeRow]');\n\n if (tBodyPath) {\n if (tBodyNode.children.length > 1) {\n const [, trPath] = getAncestorByType(editor, 'tr');\n\n log('[removeRow]');\n\n if (trPath) {\n Transforms.removeNodes(editor, { at: trPath });\n }\n }\n }\n };\n\n const addColumn = () => {\n const [tBodyNode, tBodyPath] = getAncestorByType(editor, 'tbody');\n\n log('[addColumn]');\n\n if (tBodyNode) {\n const emptyTd = {\n type: 'td',\n children: [{ text: '' }],\n };\n const trElements = Editor.nodes(editor, {\n at: tBodyPath, // Path of Editor\n match: (node) => 'tr' === node.type,\n });\n\n for (const [trNode, nodePath] of trElements) {\n Transforms.insertNodes(editor, [emptyTd], {\n at: [...nodePath, trNode.children.length],\n });\n }\n }\n };\n\n const removeColumn = () => {\n const [tBodyNode, tBodyPath] = getAncestorByType(editor, 'tbody');\n\n log('[addColumn]');\n\n if (tBodyNode) {\n const currentPath = Editor.path(editor, editor.selection);\n const columnIndex = currentPath[currentPath.length - 2];\n const trElements = Editor.nodes(editor, {\n at: tBodyPath, // Path of Editor\n match: (node) => 'tr' === node.type,\n });\n\n for (const [trNode, nodePath] of trElements) {\n if (trNode.children.length > 1) {\n Transforms.removeNodes(editor, { at: [...nodePath, columnIndex] });\n }\n }\n }\n };\n\n const removeTable = () => {\n const [tableNode, tablePath] = getAncestorByType(editor, 'table');\n\n editor.apply({\n type: 'remove_node',\n path: tablePath,\n node: tableNode,\n });\n };\n\n const toggleBorder = () => {\n const { data } = tableBlock;\n const update = {\n ...data,\n border: hasBorder() ? '0' : '1',\n };\n const [, tablePath] = getAncestorByType(editor, 'table');\n\n log('[toggleBorder] update: ', update);\n\n editor.apply({\n type: 'set_node',\n path: tablePath,\n properties: {\n data: node.data,\n },\n newProperties: { data: update },\n });\n };\n\n const onDone = () => {\n log('[onDone] call onToolbarDone...');\n onToolbarDone(true);\n };\n\n const Tb = () => (\n <TableToolbar\n editor={editor}\n plugins={toolbarPlugins}\n onChange={(c) => onToolbarDone(c, false)}\n onAddRow={addRow}\n onRemoveRow={removeRow}\n onAddColumn={addColumn}\n onRemoveColumn={removeColumn}\n onRemoveTable={removeTable}\n hasBorder={hasBorder()}\n onToggleBorder={toggleBorder}\n onDone={onDone}\n />\n );\n return Tb;\n },\n };\n\n core.supports = (node) => TABLE_TYPES.includes(node.type);\n\n core.onKeyDown = (editor, event) => {\n if (event.key === 'Backspace') {\n const [currentNode] = editor.parent(editor.selection.anchor.path);\n\n if (currentNode.type === 'td' && editor.selection.anchor.offset === 0) {\n // user unable to delete td\n event.preventDefault();\n }\n }\n };\n\n const Node = (props) => {\n switch (props.node.type) {\n case 'table':\n return <Table {...props} onFocus={opts.onFocus} onBlur={opts.onBlur} />;\n case 'tbody':\n return <TableBody {...props} onFocus={opts.onFocus} onBlur={opts.onBlur} />;\n case 'tr':\n return <TableRow {...props} />;\n case 'td':\n return <TableCell {...props} onFocus={opts.onFocus} onBlur={opts.onBlur} />;\n default:\n return null;\n }\n };\n Node.propTypes = {\n node: PropTypes.object,\n };\n\n core.renderNode = Node;\n\n return core;\n};\n\nexport const parseStyleString = (s) => {\n const regex = /([\\w-]*)\\s*:\\s*([^;]*)/g;\n let match;\n const result = {};\n while ((match = regex.exec(s))) {\n result[match[1]] = match[2].trim();\n }\n return result;\n};\n\nexport const reactAttributes = (o) => toStyleObject(o, { camelize: true, addUnits: false });\n\nconst attributesToMap = (el) => (acc, attribute) => {\n const value = el.getAttribute(attribute);\n if (value) {\n if (attribute === 'style') {\n const styleString = el.getAttribute(attribute);\n const reactStyleObject = reactAttributes(parseStyleString(styleString));\n acc['style'] = reactStyleObject;\n } else {\n acc[attribute] = el.getAttribute(attribute);\n }\n }\n return acc;\n};\n\nconst dataToAttributes = (data) => {\n return reduce(\n data,\n (acc, v, name) => {\n if (v) {\n acc[convert(name)] = v;\n }\n return acc;\n },\n {},\n );\n};\n\nconst attributes = ['border', 'cellpadding', 'cellspacing', 'class', 'style'];\n\nconst cellAttributes = ['colspan', 'rowspan', 'class', 'style'];\n\nexport const serialization = {\n deserialize(el, next) {\n const tag = el.tagName.toLowerCase();\n\n switch (tag) {\n case 'table': {\n const children =\n el.children.length === 1 && el.children[0].tagName.toLowerCase() === 'tbody'\n ? el.children[0].children\n : el.children;\n const c = Array.from(children);\n\n return jsx(\n 'element',\n {\n type: 'table',\n data: attributes.reduce(attributesToMap(el), {}),\n },\n next(c),\n );\n }\n case 'tbody': {\n return jsx(\n 'element',\n {\n type: 'tbody',\n },\n next(el.childNodes),\n );\n }\n\n case 'th': {\n return jsx(\n 'element',\n {\n type: 'th',\n data: cellAttributes.reduce(attributesToMap(el), { header: true }),\n },\n next(el.childNodes),\n );\n }\n\n case 'tr': {\n return jsx(\n 'element',\n {\n type: 'tr',\n },\n next(Array.from(el.children)),\n );\n }\n\n case 'td': {\n return jsx(\n 'element',\n {\n type: 'td',\n data: cellAttributes.reduce(attributesToMap(el), { header: true }),\n },\n next(el.childNodes),\n );\n }\n }\n },\n serialize(object, children) {\n const key = ReactEditor.findKey(undefined, object);\n\n switch (object.type) {\n case 'table': {\n const attributes = dataToAttributes(object.data);\n\n return (\n <table key={key} {...attributes}>\n {children}\n </table>\n );\n }\n case 'tbody': {\n return <tbody key={key}>{children}</tbody>;\n }\n case 'tr': {\n return <tr key={key}>{children}</tr>;\n }\n case 'td': {\n const attributes = dataToAttributes(object.data);\n return (\n <td key={key} {...attributes}>\n {children}\n </td>\n );\n }\n case 'th': {\n const attributes = dataToAttributes(object.data);\n return (\n <th key={key} {...attributes}>\n {children}\n </th>\n );\n }\n }\n },\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/code/editable-html/plugins/table/index.jsx"],"names":["log","Table","React","forwardRef","props","nodeAttributes","dataToAttributes","element","data","attrs","attributes","onFocus","onBlur","children","propTypes","PropTypes","object","func","node","shape","type","string","array","oneOfType","arrayOf","isRequired","TableRow","TableBody","useCellStyles","td","minWidth","TableCell","classes","Tag","header","getAncestorByType","editor","ancestors","SlateNode","Editor","path","selection","reverse","ancestor","ancestorPath","moveToBeginningOfTable","tableBlock","tablePath","firstTdPath","descendants","descendant","descendantPath","Transforms","select","TABLE_TYPES","opts","toolbarPlugins","core","utils","rules","normalizeNode","entry","tableNode","tableParent","get","slice","SlateElement","isElement","emptyBlock","text","tableIndex","beforeTablePath","apply","continueNormalization","length","afterTablePath","tBodyNode","wrapNodes","at","anchor","offset","focus","createTable","row","columns","tableRows","rowLength","Array","fill","columnsLength","i","tableRow","j","push","getTableBlock","isSelectionInTable","createTableWithOptions","extra","createdTable","newTable","toolbar","icon","onClick","border","insertNode","customToolbar","nodePath","onToolbarDone","hasBorder","addRow","trNode","trPath","newTr","insertNodes","removeRow","tBodyPath","removeNodes","addColumn","emptyTd","trElements","nodes","match","removeColumn","currentPath","columnIndex","removeTable","toggleBorder","update","properties","newProperties","onDone","Tb","c","supports","includes","onKeyDown","event","key","parent","currentNode","preventDefault","Node","renderNode","parseStyleString","s","regex","result","exec","trim","reactAttributes","o","camelize","addUnits","attributesToMap","el","acc","attribute","value","getAttribute","styleString","reactStyleObject","v","name","cellAttributes","serialization","deserialize","next","tag","tagName","toLowerCase","from","reduce","childNodes","serialize","ReactEditor","findKey","undefined"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Node as SlateNode, Element as SlateElement, Editor, Transforms, Text } from 'slate';\nimport { ReactEditor } from 'slate-react';\nimport debug from 'debug';\nimport GridOn from '@material-ui/icons/GridOn';\nimport TableToolbar from './table-toolbar';\nimport PropTypes from 'prop-types';\nimport { jsx } from 'slate-hyperscript';\nimport { makeStyles } from '@material-ui/styles';\nimport convert from 'react-attr-converter';\nimport { object as toStyleObject } from 'to-style';\nimport get from 'lodash/get';\nimport omit from 'lodash/omit';\nimport reduce from 'lodash/reduce';\n\nconst log = debug('@pie-lib:editable-html:plugins:table');\n\nconst Table = React.forwardRef((props) => {\n const nodeAttributes = omit(dataToAttributes(props.element.data), 'newTable');\n const attrs = omit(props.attributes, 'newTable');\n\n return (\n <table {...attrs} {...nodeAttributes} onFocus={props.onFocus} onBlur={props.onBlur}>\n {props.children}\n </table>\n );\n});\n\nTable.propTypes = {\n attributes: PropTypes.object,\n element: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n node: PropTypes.shape({\n type: PropTypes.string,\n children: PropTypes.array,\n data: PropTypes.object,\n }),\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n};\n\nconst TableRow = React.forwardRef((props) => <tr {...props.attributes}>{props.children}</tr>);\n\nTableRow.propTypes = {\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n};\n\nconst TableBody = React.forwardRef((props) => <tbody {...props.attributes}>{props.children}</tbody>);\n\nTableBody.propTypes = {\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n};\n\nconst useCellStyles = makeStyles({\n td: {\n minWidth: '25px',\n },\n});\n\nconst TableCell = React.forwardRef((props) => {\n const classes = useCellStyles();\n const { node } = props;\n const Tag = get(node, 'data.header') ? 'th' : 'td';\n\n const nodeAttributes = dataToAttributes(props.element.data);\n delete nodeAttributes.header;\n\n return (\n <Tag\n {...props.attributes}\n {...nodeAttributes}\n colSpan={get(node, 'data.colspan')}\n className={classes[Tag]}\n onFocus={props.onFocus}\n onBlur={props.onBlur}\n >\n {props.children}\n </Tag>\n );\n});\n\nTableCell.propTypes = {\n node: PropTypes.object,\n element: PropTypes.object,\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n};\n\nconst getAncestorByType = (editor, type) => {\n if (!editor || !type) {\n return null;\n }\n\n const ancestors = SlateNode.ancestors(editor, Editor.path(editor, editor.selection), {\n reverse: true,\n });\n\n for (const [ancestor, ancestorPath] of ancestors) {\n if (ancestor.type === type) {\n return [ancestor, ancestorPath];\n }\n }\n\n return null;\n};\n\nconst moveToBeginningOfTable = (editor) => {\n const [tableBlock, tablePath] = getAncestorByType(editor, 'table');\n let firstTdPath;\n\n for (const [descendant, descendantPath] of SlateNode.descendants(tableBlock, { reverse: true })) {\n if (descendant.type === 'td') {\n firstTdPath = descendantPath;\n }\n }\n\n Transforms.select(editor, [...tablePath, ...firstTdPath]);\n};\n\nconst TABLE_TYPES = ['tbody', 'tr', 'td', 'table'];\n\nexport default (opts, toolbarPlugins /* : {toolbar: {}}[] */) => {\n const core = {\n utils: {},\n rules: (editor) => {\n const { normalizeNode } = editor;\n\n editor.normalizeNode = (entry) => {\n const [tableNode, tablePath] = entry;\n const tableParent = SlateNode.get(editor, tablePath.slice(0, -1));\n\n // If the element is a table, ensure its children are valid.\n if (SlateElement.isElement(tableNode) && tableNode.type === 'table') {\n const emptyBlock = {\n type: 'div',\n children: [{ text: '' }],\n };\n const tableIndex = tablePath.slice(-1)[0];\n\n // if table is the first element, we need to add a space before\n // so users can focus before the table\n if (tableIndex === 0) {\n const beforeTablePath = [...tablePath.slice(0, -1), 0];\n\n editor.apply({\n type: 'insert_node',\n path: beforeTablePath,\n node: emptyBlock,\n });\n editor.continueNormalization();\n return;\n }\n\n // if table is the last element, we add element after it\n if (tableParent.children.length - 1 === tableIndex) {\n const afterTablePath = [...tablePath.slice(0, -1), tableIndex + 1];\n\n editor.apply({\n type: 'insert_node',\n path: afterTablePath,\n node: emptyBlock,\n });\n editor.continueNormalization();\n return;\n }\n\n // if table does not have a tbody, we add it\n if (tableNode.children[0].type !== 'tbody') {\n const tBodyNode = { type: 'tbody', children: [] };\n\n Transforms.wrapNodes(editor, tBodyNode, {\n at: {\n anchor: { path: [...tablePath, 0], offset: 0 },\n focus: { path: [...tablePath, tableNode.children.length], offset: 0 },\n },\n });\n editor.continueNormalization();\n return;\n }\n }\n\n // Fall back to the original `normalizeNode` to enforce other constraints.\n normalizeNode(entry);\n };\n\n return editor;\n },\n };\n\n core.utils.createTable = (row = 2, columns = 2) => {\n const tableRows = [];\n const rowLength = new Array(row).fill(0).length;\n const columnsLength = new Array(columns).fill(0).length;\n\n for (let i = 0; i < rowLength; i++) {\n const tableRow = { type: 'tr', children: [] };\n\n for (let j = 0; j < columnsLength; j++) {\n tableRow.children.push({\n type: 'td',\n children: [\n {\n text: '',\n },\n ],\n });\n }\n\n tableRows.push(tableRow);\n }\n\n return {\n type: 'table',\n children: [\n {\n type: 'tbody',\n children: tableRows,\n },\n ],\n };\n };\n\n core.utils.getTableBlock = (editor) => getAncestorByType(editor, 'table');\n\n core.utils.isSelectionInTable = (editor) => !!core.utils.getTableBlock(editor);\n\n core.utils.createTableWithOptions = (row, columns, extra) => {\n const createdTable = core.utils.createTable(row, columns);\n const newTable = { ...createdTable, ...extra };\n\n return newTable;\n };\n\n core.toolbar = {\n icon: <GridOn />,\n onClick: (editor) => {\n log('insert table');\n const newTable = core.utils.createTableWithOptions(2, 2, {\n data: {\n border: '1',\n newTable: true,\n },\n });\n\n editor.insertNode(newTable);\n moveToBeginningOfTable(editor, newTable);\n },\n /**\n * Note - the node may not be a table node - it may be a node inside a table.\n */\n customToolbar: (node, nodePath, editor, onToolbarDone) => {\n log('[customToolbar] node.data: ', node.data);\n\n const [tableBlock] = core.utils.getTableBlock(editor);\n log('[customToolbar] tableBlock: ', tableBlock);\n\n const hasBorder = () => get(tableBlock, 'data.border') !== '0';\n const addRow = () => {\n const [trNode, trPath] = getAncestorByType(editor, 'tr');\n\n log('[addRow]');\n\n if (trNode) {\n const newTr = { type: 'tr', children: [] };\n const columnsLength = trNode.children.length;\n\n for (let i = 0; i < columnsLength; i++) {\n newTr.children.push({\n type: 'td',\n children: [\n {\n text: '',\n },\n ],\n });\n }\n\n Transforms.insertNodes(editor, [newTr], { at: trPath });\n }\n };\n\n const removeRow = () => {\n const [tBodyNode, tBodyPath] = getAncestorByType(editor, 'tbody');\n\n log('[removeRow]');\n\n if (tBodyPath) {\n if (tBodyNode.children.length > 1) {\n const [, trPath] = getAncestorByType(editor, 'tr');\n\n log('[removeRow]');\n\n if (trPath) {\n Transforms.removeNodes(editor, { at: trPath });\n }\n }\n }\n };\n\n const addColumn = () => {\n const [tBodyNode, tBodyPath] = getAncestorByType(editor, 'tbody');\n\n log('[addColumn]');\n\n if (tBodyNode) {\n const emptyTd = {\n type: 'td',\n children: [{ text: '' }],\n };\n const trElements = Editor.nodes(editor, {\n at: tBodyPath, // Path of Editor\n match: (node) => 'tr' === node.type,\n });\n\n for (const [trNode, nodePath] of trElements) {\n Transforms.insertNodes(editor, [emptyTd], {\n at: [...nodePath, trNode.children.length],\n });\n }\n }\n };\n\n const removeColumn = () => {\n const [tBodyNode, tBodyPath] = getAncestorByType(editor, 'tbody');\n\n log('[addColumn]');\n\n if (tBodyNode) {\n const currentPath = Editor.path(editor, editor.selection);\n const columnIndex = currentPath[currentPath.length - 2];\n const trElements = Editor.nodes(editor, {\n at: tBodyPath, // Path of Editor\n match: (node) => 'tr' === node.type,\n });\n\n for (const [trNode, nodePath] of trElements) {\n if (trNode.children.length > 1) {\n Transforms.removeNodes(editor, { at: [...nodePath, columnIndex] });\n }\n }\n }\n };\n\n const removeTable = () => {\n const [tableNode, tablePath] = getAncestorByType(editor, 'table');\n\n editor.apply({\n type: 'remove_node',\n path: tablePath,\n node: tableNode,\n });\n };\n\n const toggleBorder = () => {\n const { data } = tableBlock;\n const update = {\n ...data,\n border: hasBorder() ? '0' : '1',\n };\n const [, tablePath] = getAncestorByType(editor, 'table');\n\n log('[toggleBorder] update: ', update);\n\n editor.apply({\n type: 'set_node',\n path: tablePath,\n properties: {\n data: node.data,\n },\n newProperties: { data: update },\n });\n };\n\n const onDone = () => {\n log('[onDone] call onToolbarDone...');\n onToolbarDone(true);\n };\n\n const Tb = () => (\n <TableToolbar\n editor={editor}\n plugins={toolbarPlugins}\n onChange={(c) => onToolbarDone(c, false)}\n onAddRow={addRow}\n onRemoveRow={removeRow}\n onAddColumn={addColumn}\n onRemoveColumn={removeColumn}\n onRemoveTable={removeTable}\n hasBorder={hasBorder()}\n onToggleBorder={toggleBorder}\n onDone={onDone}\n />\n );\n return Tb;\n },\n };\n\n core.supports = (node) => TABLE_TYPES.includes(node.type);\n\n core.onKeyDown = (editor, event) => {\n if (event.key === 'Backspace') {\n const [currentNode] = editor.parent(editor.selection.anchor.path);\n\n if (currentNode.type === 'td' && editor.selection.anchor.offset === 0) {\n // user unable to delete td\n event.preventDefault();\n }\n }\n };\n\n const Node = (props) => {\n switch (props.node.type) {\n case 'table':\n return <Table {...props} onFocus={opts.onFocus} onBlur={opts.onBlur} />;\n case 'tbody':\n return <TableBody {...props} onFocus={opts.onFocus} onBlur={opts.onBlur} />;\n case 'tr':\n return <TableRow {...props} />;\n case 'td':\n return <TableCell {...props} onFocus={opts.onFocus} onBlur={opts.onBlur} />;\n default:\n return null;\n }\n };\n Node.propTypes = {\n node: PropTypes.object,\n };\n\n core.renderNode = Node;\n\n return core;\n};\n\nexport const parseStyleString = (s) => {\n const regex = /([\\w-]*)\\s*:\\s*([^;]*)/g;\n let match;\n const result = {};\n while ((match = regex.exec(s))) {\n result[match[1]] = match[2].trim();\n }\n return result;\n};\n\nexport const reactAttributes = (o) => toStyleObject(o, { camelize: true, addUnits: false });\n\nconst attributesToMap = (el) => (acc, attribute) => {\n const value = el.getAttribute(attribute);\n if (value) {\n if (attribute === 'style') {\n const styleString = el.getAttribute(attribute);\n const reactStyleObject = reactAttributes(parseStyleString(styleString));\n acc['style'] = reactStyleObject;\n } else {\n acc[attribute] = el.getAttribute(attribute);\n }\n }\n return acc;\n};\n\nconst dataToAttributes = (data) => {\n return reduce(\n data,\n (acc, v, name) => {\n if (v) {\n acc[convert(name)] = v;\n }\n return acc;\n },\n {},\n );\n};\n\nconst attributes = ['border', 'cellpadding', 'cellspacing', 'class', 'style'];\n\nconst cellAttributes = ['colspan', 'rowspan', 'class', 'style'];\n\nexport const serialization = {\n deserialize(el, next) {\n const tag = el.tagName.toLowerCase();\n\n switch (tag) {\n case 'table': {\n const children =\n el.children.length === 1 && el.children[0].tagName.toLowerCase() === 'tbody'\n ? el.children[0].children\n : el.children;\n const c = Array.from(children);\n\n return jsx(\n 'element',\n {\n type: 'table',\n data: attributes.reduce(attributesToMap(el), {}),\n },\n next(c),\n );\n }\n case 'tbody': {\n return jsx(\n 'element',\n {\n type: 'tbody',\n },\n next(el.childNodes),\n );\n }\n\n case 'th': {\n return jsx(\n 'element',\n {\n type: 'th',\n data: cellAttributes.reduce(attributesToMap(el), { header: true }),\n },\n next(el.childNodes),\n );\n }\n\n case 'tr': {\n return jsx(\n 'element',\n {\n type: 'tr',\n },\n next(Array.from(el.children)),\n );\n }\n\n case 'td': {\n return jsx(\n 'element',\n {\n type: 'td',\n data: cellAttributes.reduce(attributesToMap(el), { header: true }),\n },\n next(el.childNodes),\n );\n }\n }\n },\n serialize(object, children) {\n const key = ReactEditor.findKey(undefined, object);\n\n switch (object.type) {\n case 'table': {\n const attributes = dataToAttributes(object.data);\n\n return (\n <table key={key} {...attributes}>\n {children}\n </table>\n );\n }\n case 'tbody': {\n return <tbody key={key}>{children}</tbody>;\n }\n case 'tr': {\n return <tr key={key}>{children}</tr>;\n }\n case 'td': {\n const attributes = dataToAttributes(object.data);\n return (\n <td key={key} {...attributes}>\n {children}\n </td>\n );\n }\n case 'th': {\n const attributes = dataToAttributes(object.data);\n return (\n <th key={key} {...attributes}>\n {children}\n </th>\n );\n }\n }\n },\n};\n"],"file":"index.js"}
@@ -76,8 +76,7 @@ var LabelComponent = function LabelComponent(props) {
76
76
  "false": true
77
77
  }, /*#__PURE__*/_react["default"].createElement("div", {
78
78
  className: (0, _classnames["default"])(isChart ? classes.chartLabel : classes.axisLabel, (_cn = {}, (0, _defineProperty2["default"])(_cn, classes.rotateLeftLabel, side === 'left' && !rotatedToHorizontal), (0, _defineProperty2["default"])(_cn, classes.rotateRightLabel, side === 'right' && !rotatedToHorizontal), (0, _defineProperty2["default"])(_cn, classes.editLabel, rotatedToHorizontal), (0, _defineProperty2["default"])(_cn, classes.customBottom, isChartBottomLabel || isDefineChartBottomLabel), _cn)),
79
- style: rotatedToHorizontal ? rotatedStyle : defaultStyle,
80
- onClick: rotateLabel
79
+ style: rotatedToHorizontal ? rotatedStyle : defaultStyle
81
80
  }, disabledLabel ? /*#__PURE__*/_react["default"].createElement("div", {
82
81
  className: classes.disabledLabel,
83
82
  dangerouslySetInnerHTML: {
@@ -93,6 +92,7 @@ var LabelComponent = function LabelComponent(props) {
93
92
  },
94
93
  disableScrollbar: true,
95
94
  activePlugins: activePlugins,
95
+ onFocus: rotateLabel,
96
96
  onDone: function onDone() {
97
97
  return setRotatedToHorizontal(false);
98
98
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/code/plot/label.jsx"],"names":["LabelComponent","props","classes","disabledLabel","graphHeight","graphWidth","isChartBottomLabel","isDefineChartBottomLabel","isChartLeftLabel","isDefineChartLeftLabel","placeholder","text","side","onChange","mathMlOptions","charactersLimit","rotatedToHorizontal","setRotatedToHorizontal","activePlugins","isChart","chartValue","defaultStyle","width","top","left","rotatedStyle","rotateLabel","chartLabel","axisLabel","rotateLeftLabel","rotateRightLabel","editLabel","customBottom","__html","position","noBorder","propTypes","PropTypes","object","bool","number","string","func","theme","label","fill","color","secondary","fontSize","typography","textAlign","margin","spacing","unit","padding","pointerEvents","backgroundColor","borderRadius","boxShadow","zIndex","transformOrigin","transformStyle"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport { color, Readable } from '../../render-ui';\nimport cn from 'classnames';\nimport EditableHtml from '../editable-html';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\n\nconst LabelComponent = (props) => {\n const {\n classes,\n disabledLabel,\n graphHeight,\n graphWidth,\n isChartBottomLabel,\n isDefineChartBottomLabel,\n isChartLeftLabel,\n isDefineChartLeftLabel,\n placeholder,\n text,\n side,\n onChange,\n mathMlOptions = {},\n charactersLimit,\n } = props;\n const [rotatedToHorizontal, setRotatedToHorizontal] = useState(false);\n const activePlugins = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough',\n 'math',\n // 'languageCharacters'\n ];\n\n const isChart = isChartBottomLabel || isChartLeftLabel || isDefineChartBottomLabel || isDefineChartLeftLabel;\n\n const chartValue = side === 'left' && isDefineChartLeftLabel && graphHeight - 220;\n const defaultStyle = {\n width: chartValue || (side === 'left' || side === 'right' ? graphHeight - 8 : graphWidth - 8),\n top:\n chartValue ||\n (isChartLeftLabel && `${graphHeight - 70}px`) ||\n (side === 'left' && `${graphHeight - 8}px`) ||\n (isChartBottomLabel && `${graphHeight - 30}px`) ||\n (side === 'bottom' && `${graphHeight - 90}px`) ||\n 0,\n left:\n (side === 'right' && `${graphWidth - 8}px`) ||\n ((isDefineChartLeftLabel || isDefineChartBottomLabel) && '40px') ||\n (isChartBottomLabel && '-10px') ||\n 0,\n };\n\n const rotatedStyle = {\n width: graphWidth - 8,\n top: (side === 'right' && `${graphHeight - 22}px`) || 0,\n left: 0,\n };\n\n const rotateLabel = () => !disabledLabel && (side === 'left' || side === 'right') && setRotatedToHorizontal(true);\n\n return (\n <Readable false>\n <div\n className={cn(isChart ? classes.chartLabel : classes.axisLabel, {\n [classes.rotateLeftLabel]: side === 'left' && !rotatedToHorizontal,\n [classes.rotateRightLabel]: side === 'right' && !rotatedToHorizontal,\n [classes.editLabel]: rotatedToHorizontal,\n [classes.customBottom]: isChartBottomLabel || isDefineChartBottomLabel,\n })}\n style={rotatedToHorizontal ? rotatedStyle : defaultStyle}\n onClick={rotateLabel}\n >\n {disabledLabel ? (\n <div className={classes.disabledLabel} dangerouslySetInnerHTML={{ __html: text || '' }} />\n ) : (\n <EditableHtml\n markup={text || ''}\n onChange={onChange}\n placeholder={!disabledLabel && placeholder}\n toolbarOpts={{\n position: side === 'bottom' ? 'top' : 'bottom',\n noBorder: true,\n }}\n disableScrollbar\n activePlugins={activePlugins}\n onDone={() => setRotatedToHorizontal(false)}\n mathMlOptions={mathMlOptions}\n charactersLimit={charactersLimit}\n />\n )}\n </div>\n </Readable>\n );\n};\nLabelComponent.propTypes = {\n classes: PropTypes.object,\n disabledLabel: PropTypes.bool,\n graphHeight: PropTypes.number,\n graphWidth: PropTypes.number,\n isChartBottomLabel: PropTypes.bool,\n isDefineChartBottomLabel: PropTypes.bool,\n isChartLeftLabel: PropTypes.bool,\n isDefineChartLeftLabel: PropTypes.bool,\n placeholder: PropTypes.string,\n text: PropTypes.string,\n side: PropTypes.string,\n onChange: PropTypes.func,\n mathMlOptions: PropTypes.object,\n charactersLimit: PropTypes.number,\n};\n\nexport default withStyles((theme) => ({\n label: {\n fill: color.secondary(),\n },\n axisLabel: {\n fontSize: theme.typography.fontSize - 2,\n textAlign: 'center',\n margin: theme.spacing.unit / 2,\n padding: `${theme.spacing.unit / 2}px 0`,\n },\n chartLabel: {\n fontSize: theme.typography.fontSize + 2,\n textAlign: 'center',\n margin: theme.spacing.unit / 2,\n padding: `${theme.spacing.unit / 2}px 0`,\n },\n disabledLabel: {\n pointerEvents: 'none',\n width: '100%',\n },\n editLabel: {\n position: 'absolute',\n backgroundColor: 'white',\n borderRadius: '4px',\n boxShadow: '0px 5px 8px rgba(0, 0, 0, 0.15)',\n zIndex: 10,\n },\n rotateLeftLabel: {\n '-webkit-transform': 'rotate(-90deg)',\n transformOrigin: '0 0',\n transformStyle: 'preserve-3d',\n position: 'absolute',\n },\n rotateRightLabel: {\n '-webkit-transform': 'rotate(90deg)',\n transformOrigin: '0 0',\n transformStyle: 'preserve-3d',\n position: 'absolute',\n },\n customBottom: {\n position: 'absolute',\n },\n}))(LabelComponent);\n"],"file":"label.js"}
1
+ {"version":3,"sources":["../../src/code/plot/label.jsx"],"names":["LabelComponent","props","classes","disabledLabel","graphHeight","graphWidth","isChartBottomLabel","isDefineChartBottomLabel","isChartLeftLabel","isDefineChartLeftLabel","placeholder","text","side","onChange","mathMlOptions","charactersLimit","rotatedToHorizontal","setRotatedToHorizontal","activePlugins","isChart","chartValue","defaultStyle","width","top","left","rotatedStyle","rotateLabel","chartLabel","axisLabel","rotateLeftLabel","rotateRightLabel","editLabel","customBottom","__html","position","noBorder","propTypes","PropTypes","object","bool","number","string","func","theme","label","fill","color","secondary","fontSize","typography","textAlign","margin","spacing","unit","padding","pointerEvents","backgroundColor","borderRadius","boxShadow","zIndex","transformOrigin","transformStyle"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport { color, Readable } from '../../render-ui';\nimport cn from 'classnames';\nimport EditableHtml from '../editable-html';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\n\nconst LabelComponent = (props) => {\n const {\n classes,\n disabledLabel,\n graphHeight,\n graphWidth,\n isChartBottomLabel,\n isDefineChartBottomLabel,\n isChartLeftLabel,\n isDefineChartLeftLabel,\n placeholder,\n text,\n side,\n onChange,\n mathMlOptions = {},\n charactersLimit,\n } = props;\n const [rotatedToHorizontal, setRotatedToHorizontal] = useState(false);\n const activePlugins = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough',\n 'math',\n // 'languageCharacters'\n ];\n\n const isChart = isChartBottomLabel || isChartLeftLabel || isDefineChartBottomLabel || isDefineChartLeftLabel;\n\n const chartValue = side === 'left' && isDefineChartLeftLabel && graphHeight - 220;\n const defaultStyle = {\n width: chartValue || (side === 'left' || side === 'right' ? graphHeight - 8 : graphWidth - 8),\n top:\n chartValue ||\n (isChartLeftLabel && `${graphHeight - 70}px`) ||\n (side === 'left' && `${graphHeight - 8}px`) ||\n (isChartBottomLabel && `${graphHeight - 30}px`) ||\n (side === 'bottom' && `${graphHeight - 90}px`) ||\n 0,\n left:\n (side === 'right' && `${graphWidth - 8}px`) ||\n ((isDefineChartLeftLabel || isDefineChartBottomLabel) && '40px') ||\n (isChartBottomLabel && '-10px') ||\n 0,\n };\n\n const rotatedStyle = {\n width: graphWidth - 8,\n top: (side === 'right' && `${graphHeight - 22}px`) || 0,\n left: 0,\n };\n\n const rotateLabel = () => !disabledLabel && (side === 'left' || side === 'right') && setRotatedToHorizontal(true);\n\n return (\n <Readable false>\n <div\n className={cn(isChart ? classes.chartLabel : classes.axisLabel, {\n [classes.rotateLeftLabel]: side === 'left' && !rotatedToHorizontal,\n [classes.rotateRightLabel]: side === 'right' && !rotatedToHorizontal,\n [classes.editLabel]: rotatedToHorizontal,\n [classes.customBottom]: isChartBottomLabel || isDefineChartBottomLabel,\n })}\n style={rotatedToHorizontal ? rotatedStyle : defaultStyle}\n >\n {disabledLabel ? (\n <div className={classes.disabledLabel} dangerouslySetInnerHTML={{ __html: text || '' }} />\n ) : (\n <EditableHtml\n markup={text || ''}\n onChange={onChange}\n placeholder={!disabledLabel && placeholder}\n toolbarOpts={{\n position: side === 'bottom' ? 'top' : 'bottom',\n noBorder: true,\n }}\n disableScrollbar\n activePlugins={activePlugins}\n onFocus={rotateLabel}\n onDone={() => setRotatedToHorizontal(false)}\n mathMlOptions={mathMlOptions}\n charactersLimit={charactersLimit}\n />\n )}\n </div>\n </Readable>\n );\n};\nLabelComponent.propTypes = {\n classes: PropTypes.object,\n disabledLabel: PropTypes.bool,\n graphHeight: PropTypes.number,\n graphWidth: PropTypes.number,\n isChartBottomLabel: PropTypes.bool,\n isDefineChartBottomLabel: PropTypes.bool,\n isChartLeftLabel: PropTypes.bool,\n isDefineChartLeftLabel: PropTypes.bool,\n placeholder: PropTypes.string,\n text: PropTypes.string,\n side: PropTypes.string,\n onChange: PropTypes.func,\n mathMlOptions: PropTypes.object,\n charactersLimit: PropTypes.number,\n};\n\nexport default withStyles((theme) => ({\n label: {\n fill: color.secondary(),\n },\n axisLabel: {\n fontSize: theme.typography.fontSize - 2,\n textAlign: 'center',\n margin: theme.spacing.unit / 2,\n padding: `${theme.spacing.unit / 2}px 0`,\n },\n chartLabel: {\n fontSize: theme.typography.fontSize + 2,\n textAlign: 'center',\n margin: theme.spacing.unit / 2,\n padding: `${theme.spacing.unit / 2}px 0`,\n },\n disabledLabel: {\n pointerEvents: 'none',\n width: '100%',\n },\n editLabel: {\n position: 'absolute',\n backgroundColor: 'white',\n borderRadius: '4px',\n boxShadow: '0px 5px 8px rgba(0, 0, 0, 0.15)',\n zIndex: 10,\n },\n rotateLeftLabel: {\n '-webkit-transform': 'rotate(-90deg)',\n transformOrigin: '0 0',\n transformStyle: 'preserve-3d',\n position: 'absolute',\n },\n rotateRightLabel: {\n '-webkit-transform': 'rotate(90deg)',\n transformOrigin: '0 0',\n transformStyle: 'preserve-3d',\n position: 'absolute',\n },\n customBottom: {\n position: 'absolute',\n },\n}))(LabelComponent);\n"],"file":"label.js"}