quill-better-table-picker
Version:
Better table module for Quill with support for grid-style table picker
1 lines • 12.5 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("quill")):"function"==typeof define&&define.amd?define(["quill"],t):"object"==typeof exports?exports.quillBetterTable=t(require("quill")):e.quillBetterTable=t(e.Quill)}(window,(function(e){return function(e){var t=window.webpackHotUpdatequillBetterTable;window.webpackHotUpdatequillBetterTable=function(e,r){!function(e,t){if(!g[e]||!O[e])return;for(var r in O[e]=!1,t)Object.prototype.hasOwnProperty.call(t,r)&&(h[r]=t[r]);0==--v&&0===m&&E()}(e,r),t&&t(e,r)};var r,n=!0,o="0910ef85d7ea7c698e63",i={},c=[],a=[];function l(e){var t=D[e];if(!t)return P;var n=function(n){return t.hot.active?(D[n]?-1===D[n].parents.indexOf(e)&&D[n].parents.push(e):(c=[e],r=n),-1===t.children.indexOf(n)&&t.children.push(n)):(console.warn("[HMR] unexpected require("+n+") from disposed module "+e),c=[]),P(n)},o=function(e){return{configurable:!0,enumerable:!0,get:function(){return P[e]},set:function(t){P[e]=t}}};for(var i in P)Object.prototype.hasOwnProperty.call(P,i)&&"e"!==i&&"t"!==i&&Object.defineProperty(n,i,o(i));return n.e=function(e){return"ready"===u&&p("prepare"),m++,P.e(e).then(t,(function(e){throw t(),e}));function t(){m--,"prepare"===u&&(w[e]||x(e),0===m&&0===v&&E())}},n.t=function(e,t){return 1&t&&(e=n(e)),P.t(e,-2&t)},n}function s(t){var n={_acceptedDependencies:{},_declinedDependencies:{},_selfAccepted:!1,_selfDeclined:!1,_selfInvalidated:!1,_disposeHandlers:[],_main:r!==t,active:!0,accept:function(e,t){if(void 0===e)n._selfAccepted=!0;else if("function"==typeof e)n._selfAccepted=e;else if("object"==typeof e)for(var r=0;r<e.length;r++)n._acceptedDependencies[e[r]]=t||function(){};else n._acceptedDependencies[e]=t||function(){}},decline:function(e){if(void 0===e)n._selfDeclined=!0;else if("object"==typeof e)for(var t=0;t<e.length;t++)n._declinedDependencies[e[t]]=!0;else n._declinedDependencies[e]=!0},dispose:function(e){n._disposeHandlers.push(e)},addDisposeHandler:function(e){n._disposeHandlers.push(e)},removeDisposeHandler:function(e){var t=n._disposeHandlers.indexOf(e);t>=0&&n._disposeHandlers.splice(t,1)},invalidate:function(){switch(this._selfInvalidated=!0,u){case"idle":(h={})[t]=e[t],p("ready");break;case"ready":A(t);break;case"prepare":case"check":case"dispose":case"apply":(b=b||[]).push(t)}},check:j,apply:q,status:function(e){if(!e)return u;d.push(e)},addStatusHandler:function(e){d.push(e)},removeStatusHandler:function(e){var t=d.indexOf(e);t>=0&&d.splice(t,1)},data:i[t]};return r=void 0,n}var d=[],u="idle";function p(e){u=e;for(var t=0;t<d.length;t++)d[t].call(null,e)}var f,h,y,b,v=0,m=0,w={},O={},g={};function _(e){return+e+""===e?+e:e}function j(e){if("idle"!==u)throw new Error("check() is only allowed in idle status");return n=e,p("check"),(t=1e4,t=t||1e4,new Promise((function(e,r){if("undefined"==typeof XMLHttpRequest)return r(new Error("No browser support"));try{var n=new XMLHttpRequest,i=P.p+""+o+".hot-update.json";n.open("GET",i,!0),n.timeout=t,n.send(null)}catch(e){return r(e)}n.onreadystatechange=function(){if(4===n.readyState)if(0===n.status)r(new Error("Manifest request to "+i+" timed out."));else if(404===n.status)e();else if(200!==n.status&&304!==n.status)r(new Error("Manifest request to "+i+" failed."));else{try{var t=JSON.parse(n.responseText)}catch(e){return void r(e)}e(t)}}}))).then((function(e){if(!e)return p(I()?"ready":"idle"),null;O={},w={},g=e.c,y=e.h,p("prepare");var t=new Promise((function(e,t){f={resolve:e,reject:t}}));h={};return x(0),"prepare"===u&&0===m&&0===v&&E(),t}));var t}function x(e){g[e]?(O[e]=!0,v++,function(e){var t=document.createElement("script");t.charset="utf-8",t.src=P.p+""+e+"."+o+".hot-update.js",document.head.appendChild(t)}(e)):w[e]=!0}function E(){p("ready");var e=f;if(f=null,e)if(n)Promise.resolve().then((function(){return q(n)})).then((function(t){e.resolve(t)}),(function(t){e.reject(t)}));else{var t=[];for(var r in h)Object.prototype.hasOwnProperty.call(h,r)&&t.push(_(r));e.resolve(t)}}function q(t){if("ready"!==u)throw new Error("apply() is only allowed in ready status");return function t(n){var a,l,s,d,u;function f(e){for(var t=[e],r={},n=t.map((function(e){return{chain:[e],id:e}}));n.length>0;){var o=n.pop(),i=o.id,c=o.chain;if((d=D[i])&&(!d.hot._selfAccepted||d.hot._selfInvalidated)){if(d.hot._selfDeclined)return{type:"self-declined",chain:c,moduleId:i};if(d.hot._main)return{type:"unaccepted",chain:c,moduleId:i};for(var a=0;a<d.parents.length;a++){var l=d.parents[a],s=D[l];if(s){if(s.hot._declinedDependencies[i])return{type:"declined",chain:c.concat([l]),moduleId:i,parentId:l};-1===t.indexOf(l)&&(s.hot._acceptedDependencies[i]?(r[l]||(r[l]=[]),v(r[l],[i])):(delete r[l],t.push(l),n.push({chain:c.concat([l]),id:l})))}}}}return{type:"accepted",moduleId:e,outdatedModules:t,outdatedDependencies:r}}function v(e,t){for(var r=0;r<t.length;r++){var n=t[r];-1===e.indexOf(n)&&e.push(n)}}I();var m={},w=[],O={},j=function(){console.warn("[HMR] unexpected require("+E.moduleId+") to disposed module")};for(var x in h)if(Object.prototype.hasOwnProperty.call(h,x)){var E;u=_(x),E=h[x]?f(u):{type:"disposed",moduleId:x};var q=!1,A=!1,k=!1,H="";switch(E.chain&&(H="\nUpdate propagation: "+E.chain.join(" -> ")),E.type){case"self-declined":n.onDeclined&&n.onDeclined(E),n.ignoreDeclined||(q=new Error("Aborted because of self decline: "+E.moduleId+H));break;case"declined":n.onDeclined&&n.onDeclined(E),n.ignoreDeclined||(q=new Error("Aborted because of declined dependency: "+E.moduleId+" in "+E.parentId+H));break;case"unaccepted":n.onUnaccepted&&n.onUnaccepted(E),n.ignoreUnaccepted||(q=new Error("Aborted because "+u+" is not accepted"+H));break;case"accepted":n.onAccepted&&n.onAccepted(E),A=!0;break;case"disposed":n.onDisposed&&n.onDisposed(E),k=!0;break;default:throw new Error("Unexception type "+E.type)}if(q)return p("abort"),Promise.reject(q);if(A)for(u in O[u]=h[u],v(w,E.outdatedModules),E.outdatedDependencies)Object.prototype.hasOwnProperty.call(E.outdatedDependencies,u)&&(m[u]||(m[u]=[]),v(m[u],E.outdatedDependencies[u]));k&&(v(w,[E.moduleId]),O[u]=j)}var S,M=[];for(l=0;l<w.length;l++)u=w[l],D[u]&&D[u].hot._selfAccepted&&O[u]!==j&&!D[u].hot._selfInvalidated&&M.push({module:u,parents:D[u].parents.slice(),errorHandler:D[u].hot._selfAccepted});p("dispose"),Object.keys(g).forEach((function(e){!1===g[e]&&function(e){delete installedChunks[e]}(e)}));var T,L,U=w.slice();for(;U.length>0;)if(u=U.pop(),d=D[u]){var R={},B=d.hot._disposeHandlers;for(s=0;s<B.length;s++)(a=B[s])(R);for(i[u]=R,d.hot.active=!1,delete D[u],delete m[u],s=0;s<d.children.length;s++){var C=D[d.children[s]];C&&((S=C.parents.indexOf(u))>=0&&C.parents.splice(S,1))}}for(u in m)if(Object.prototype.hasOwnProperty.call(m,u)&&(d=D[u]))for(L=m[u],s=0;s<L.length;s++)T=L[s],(S=d.children.indexOf(T))>=0&&d.children.splice(S,1);p("apply"),void 0!==y&&(o=y,y=void 0);for(u in h=void 0,O)Object.prototype.hasOwnProperty.call(O,u)&&(e[u]=O[u]);var V=null;for(u in m)if(Object.prototype.hasOwnProperty.call(m,u)&&(d=D[u])){L=m[u];var G=[];for(l=0;l<L.length;l++)if(T=L[l],a=d.hot._acceptedDependencies[T]){if(-1!==G.indexOf(a))continue;G.push(a)}for(l=0;l<G.length;l++){a=G[l];try{a(L)}catch(e){n.onErrored&&n.onErrored({type:"accept-errored",moduleId:u,dependencyId:L[l],error:e}),n.ignoreErrored||V||(V=e)}}}for(l=0;l<M.length;l++){var N=M[l];u=N.module,c=N.parents,r=u;try{P(u)}catch(e){if("function"==typeof N.errorHandler)try{N.errorHandler(e)}catch(t){n.onErrored&&n.onErrored({type:"self-accept-error-handler-errored",moduleId:u,error:t,originalError:e}),n.ignoreErrored||V||(V=t),V||(V=e)}else n.onErrored&&n.onErrored({type:"self-accept-errored",moduleId:u,error:e}),n.ignoreErrored||V||(V=e)}}if(V)return p("fail"),Promise.reject(V);if(b)return t(n).then((function(e){return w.forEach((function(t){e.indexOf(t)<0&&e.push(t)})),e}));return p("idle"),new Promise((function(e){e(w)}))}(t=t||{})}function I(){if(b)return h||(h={}),b.forEach(A),b=void 0,!0}function A(t){Object.prototype.hasOwnProperty.call(h,t)||(h[t]=e[t])}var D={};function P(t){if(D[t])return D[t].exports;var r=D[t]={i:t,l:!1,exports:{},hot:s(t),parents:(a=c,c=[],a),children:[]};return e[t].call(r.exports,r,r.exports,l(t)),r.l=!0,r.exports}return P.m=e,P.c=D,P.d=function(e,t,r){P.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},P.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},P.t=function(e,t){if(1&t&&(e=P(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(P.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)P.d(r,n,function(t){return e[t]}.bind(null,n));return r},P.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return P.d(t,"a",t),t},P.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},P.p="",P.h=function(){return o},l(2)(P.s=2)}([function(t,r){t.exports=e},function(e,t,r){"use strict";var n=Object.prototype.hasOwnProperty,o=Object.prototype.toString,i=Object.defineProperty,c=Object.getOwnPropertyDescriptor,a=function(e){return"function"==typeof Array.isArray?Array.isArray(e):"[object Array]"===o.call(e)},l=function(e){if(!e||"[object Object]"!==o.call(e))return!1;var t,r=n.call(e,"constructor"),i=e.constructor&&e.constructor.prototype&&n.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!r&&!i)return!1;for(t in e);return void 0===t||n.call(e,t)},s=function(e,t){i&&"__proto__"===t.name?i(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},d=function(e,t){if("__proto__"===t){if(!n.call(e,t))return;if(c)return c(e,t).value}return e[t]};e.exports=function e(){var t,r,n,o,i,c,u=arguments[0],p=1,f=arguments.length,h=!1;for("boolean"==typeof u&&(h=u,u=arguments[1]||{},p=2),(null==u||"object"!=typeof u&&"function"!=typeof u)&&(u={});p<f;++p)if(null!=(t=arguments[p]))for(r in t)n=d(u,r),u!==(o=d(t,r))&&(h&&o&&(l(o)||(i=a(o)))?(i?(i=!1,c=n&&a(n)?n:[]):c=n&&l(n)?n:{},s(u,{name:r,newValue:e(h,c,o)})):void 0!==o&&s(u,{name:r,newValue:o}));return u}},function(e,t,r){e.exports=r(3)},function(e,t,r){"use strict";r.r(t);var n=r(0),o=r.n(n);const i=o.a.import("ui/picker");var c=class extends i{constructor(e,t){super(e),this.label.innerHTML=t,this.container.classList.add("ql-table-picker")}buildItem(e){const t=super.buildItem(e);return t.addEventListener("mouseover",()=>{let e=t.getAttribute("data-value").split("x"),r=parseInt(e[1]),n=parseInt(e[0]),o=Array.from(this.container.querySelectorAll(".ql-picker-item"));e=this.container.querySelector(".ql-picker-item:last-child").getAttribute("data-value").split("x");let i=parseInt(e[0]);o.forEach(e=>{e.classList.remove("hover")});for(let e=0;e<r;e++)o.slice(e*i,e*i+n).forEach(e=>{e.classList.add("hover")})}),t}selectItem(e,t=!1){super.selectItem(e,t),null!=e&&(e.classList.remove("ql-selected"),e.label&&(e.label.removeAttribute("data-value"),e.label.removeAttribute("data-label")),Array.from(this.container.querySelectorAll(".hover")).forEach(e=>{e.classList.remove("hover")}))}},a=r(1),l=r.n(a);const s=o.a.import("themes/snow");var d=class extends s{constructor(e,t){super(e,t)}buildPickers(e,t){let r=(e=Array.from(e)).map((e,r,n)=>{if(e.classList.contains("ql-better-table")){if(n.splice(r,1),null==e.querySelector("option"))for(let t=1;t<=8;t++)for(let r=1;r<=10;r++){const n=document.createElement("option");n.setAttribute("value",r+"x"+t),e.appendChild(n)}return new c(e,t.table)}});super.buildPickers(e,t),this.pickers=l()([],this.pickers,r)}};const u=o.a.import("modules/table"),p=o.a.import("delta");function f(){return"row-"+Math.random().toString(36).slice(2,6)}t.default=class extends u{static register(){o.a.register("themes/better-table-snow",d,!0),o.a.register("ui/table-picker",c,!0)}constructor(e,t){super(e,t);const r=e.getModule("toolbar"),n=r.container.querySelector("select.ql-better-table");r&&n&&(r.addHandler("better-table",this.insertTableUsingGrid),r.attach(n))}insertTableUsingGrid(e,t){if(!t){if(!e.match(/^\d+x\d+$/))return;{let r=e.split("x");t=parseInt(r[0]),e=parseInt(r[1])}}const r=this.quill.getSelection();if(null==r)return;const n=new Array(e).fill(0).reduce(e=>{const r=new Array(t).fill("\n").join("");return e.insert(r,{table:f()})},(new p).retain(r.index));this.quill.updateContents(n,o.a.sources.USER),this.quill.setSelection(r.index,o.a.sources.SILENT),u.prototype.balanceTables.call(this)}}}]).default}));