UNPKG

@albatarnik/editorjs-table

Version:

Table for Editor.js ( forked version )

1 lines 34.7 kB
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Table=e():t.Table=e()}(window,function(){return function(t){var e={};function o(n){if(e[n])return e[n].exports;var l=e[n]={i:n,l:!1,exports:{}};return t[n].call(l.exports,l,l.exports,o),l.l=!0,l.exports}return o.m=t,o.c=e,o.d=function(t,e,n){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},o.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var l in t)o.d(n,l,function(e){return t[e]}.bind(null,l));return n},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="",o(o.s=9)}([function(t,e){t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var o=function(t,e){var o=t[1]||"",n=t[3];if(!n)return o;if(e&&"function"==typeof btoa){var l=(r=n,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */"),i=n.sources.map(function(t){return"/*# sourceURL="+n.sourceRoot+t+" */"});return[o].concat(i).concat([l]).join("\n")}var r;return[o].join("\n")}(e,t);return e[2]?"@media "+e[2]+"{"+o+"}":o}).join("")},e.i=function(t,o){"string"==typeof t&&(t=[[null,t,""]]);for(var n={},l=0;l<this.length;l++){var i=this[l][0];"number"==typeof i&&(n[i]=!0)}for(l=0;l<t.length;l++){var r=t[l];"number"==typeof r[0]&&n[r[0]]||(o&&!r[2]?r[2]=o:o&&(r[2]="("+r[2]+") and ("+o+")"),e.push(r))}},e}},function(t,e,o){var n,l,i={},r=(n=function(){return window&&document&&document.all&&!window.atob},function(){return void 0===l&&(l=n.apply(this,arguments)),l}),s=function(t){var e={};return function(t,o){if("function"==typeof t)return t();if(void 0===e[t]){var n=function(t,e){return e?e.querySelector(t):document.querySelector(t)}.call(this,t,o);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}e[t]=n}return e[t]}}(),a=null,c=0,d=[],u=o(12);function h(t,e){for(var o=0;o<t.length;o++){var n=t[o],l=i[n.id];if(l){l.refs++;for(var r=0;r<l.parts.length;r++)l.parts[r](n.parts[r]);for(;r<n.parts.length;r++)l.parts.push(w(n.parts[r],e))}else{var s=[];for(r=0;r<n.parts.length;r++)s.push(w(n.parts[r],e));i[n.id]={id:n.id,refs:1,parts:s}}}}function f(t,e){for(var o=[],n={},l=0;l<t.length;l++){var i=t[l],r=e.base?i[0]+e.base:i[0],s={css:i[1],media:i[2],sourceMap:i[3]};n[r]?n[r].parts.push(s):o.push(n[r]={id:r,parts:[s]})}return o}function p(t,e){var o=s(t.insertInto);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var n=d[d.length-1];if("top"===t.insertAt)n?n.nextSibling?o.insertBefore(e,n.nextSibling):o.appendChild(e):o.insertBefore(e,o.firstChild),d.push(e);else if("bottom"===t.insertAt)o.appendChild(e);else{if("object"!=typeof t.insertAt||!t.insertAt.before)throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");var l=s(t.insertAt.before,o);o.insertBefore(e,l)}}function b(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t);var e=d.indexOf(t);e>=0&&d.splice(e,1)}function m(t){var e=document.createElement("style");if(void 0===t.attrs.type&&(t.attrs.type="text/css"),void 0===t.attrs.nonce){var n=function(){0;return o.nc}();n&&(t.attrs.nonce=n)}return x(e,t.attrs),p(t,e),e}function x(t,e){Object.keys(e).forEach(function(o){t.setAttribute(o,e[o])})}function w(t,e){var o,n,l,i;if(e.transform&&t.css){if(!(i="function"==typeof e.transform?e.transform(t.css):e.transform.default(t.css)))return function(){};t.css=i}if(e.singleton){var r=c++;o=a||(a=m(e)),n=v.bind(null,o,r,!1),l=v.bind(null,o,r,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(o=function(t){var e=document.createElement("link");return void 0===t.attrs.type&&(t.attrs.type="text/css"),t.attrs.rel="stylesheet",x(e,t.attrs),p(t,e),e}(e),n=function(t,e,o){var n=o.css,l=o.sourceMap,i=void 0===e.convertToAbsoluteUrls&&l;(e.convertToAbsoluteUrls||i)&&(n=u(n));l&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(l))))+" */");var r=new Blob([n],{type:"text/css"}),s=t.href;t.href=URL.createObjectURL(r),s&&URL.revokeObjectURL(s)}.bind(null,o,e),l=function(){b(o),o.href&&URL.revokeObjectURL(o.href)}):(o=m(e),n=function(t,e){var o=e.css,n=e.media;n&&t.setAttribute("media",n);if(t.styleSheet)t.styleSheet.cssText=o;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(o))}}.bind(null,o),l=function(){b(o)});return n(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;n(t=e)}else l()}}t.exports=function(t,e){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(e=e||{}).attrs="object"==typeof e.attrs?e.attrs:{},e.singleton||"boolean"==typeof e.singleton||(e.singleton=r()),e.insertInto||(e.insertInto="head"),e.insertAt||(e.insertAt="bottom");var o=f(t,e);return h(o,e),function(t){for(var n=[],l=0;l<o.length;l++){var r=o[l];(s=i[r.id]).refs--,n.push(s)}t&&h(f(t,e),e);for(l=0;l<n.length;l++){var s;if(0===(s=n[l]).refs){for(var a=0;a<s.parts.length;a++)s.parts[a]();delete i[s.id]}}}};var g,_=(g=[],function(t,e){return g[t]=e,g.filter(Boolean).join("\n")});function v(t,e,o,n){var l=o?"":n.css;if(t.styleSheet)t.styleSheet.cssText=_(e,l);else{var i=document.createTextNode(l),r=t.childNodes;r[e]&&t.removeChild(r[e]),r.length?t.insertBefore(i,r[e]):t.appendChild(i)}}},function(t,e){t.exports='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16"><defs><path id="prefix__a" d="M5.54 0a.9.9 0 01.9.9l-.001 3.74h3.701a.9.9 0 010 1.8l-3.701-.001.001 3.701a.9.9 0 01-1.8 0V6.439L.9 6.44a.9.9 0 010-1.8h3.74V.9a.9.9 0 01.9-.9z"></path></defs><g transform="translate(2.48 2.48)" fill="none" fill-rule="evenodd"><mask id="prefix__b" fill="#fff"><use xlink:href="#prefix__a"></use></mask><use fill="#000" xlink:href="#prefix__a"></use><g fill="#7B7E89" mask="url(#prefix__b)"><path d="M-2.48-2.44h16v16h-16z"></path></g></g></svg>'},function(t,e){t.exports='<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18"><g fill="none" fill-rule="evenodd"><rect width="18" height="18" fill="#F4F5F7" rx="2"></rect><circle cx="11.5" cy="6.5" r="1.5" fill="#7B7E89"></circle><circle cx="11.5" cy="11.5" r="1.5" fill="#7B7E89"></circle><circle cx="6.5" cy="6.5" r="1.5" fill="#7B7E89"></circle><circle cx="6.5" cy="11.5" r="1.5" fill="#7B7E89"></circle></g></svg>'},function(t,e){t.exports='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16"><defs><path id="g0mzx22voa" d="M8.54 2.52c.497 0 .9.403.9.9l-.001 4.219 4.221.001c.497 0 .9.403.9.9s-.403.9-.9.9l-4.221-.001.001 4.221c0 .497-.403.9-.9.9s-.9-.403-.9-.9l-.001-4.221-4.219.001c-.497 0-.9-.403-.9-.9s.403-.9.9-.9l4.219-.001.001-4.219c0-.497.403-.9.9-.9z"></path></defs><g fill="none" fill-rule="evenodd"><g><g><g><g><g transform="translate(-555 -1050) translate(361 981) translate(182) translate(11 68) translate(.48 .48)"><mask id="tlfk20utyb" fill="#fff"><use xlink:href="#g0mzx22voa"></use></mask><use fill="#000" transform="rotate(45 8.54 8.54)" xlink:href="#g0mzx22voa"></use></g></g></g></g></g></g></svg>'},function(t,e){t.exports='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16"><defs><path id="mzuueez9ua" d="M8.728-.038l.01.012 2.52 3.503c.124.171.178.372.169.568v.067c.003.227-.08.456-.249.632l-.01.012-3.064 3.093c-.35.354-.92.357-1.272.007-.35-.346-.356-.907-.018-1.261l.011-.012 1.877-1.896c-1.824-.204-3.232.063-4.242.767-1.279.892-2.035 2.571-2.222 5.112-.037.496-.468.868-.964.832-.496-.037-.868-.468-.832-.964.224-3.035 1.205-5.212 2.988-6.456 1.342-.936 3.072-1.296 5.173-1.11L7.276 1.027C6.986.622 7.077.06 7.481-.23c.395-.285.943-.203 1.238.18l.01.012z"></path></defs><g fill="none" fill-rule="evenodd"><g><g><g><g><g transform="translate(-555 -993) translate(361 981) translate(182) translate(12 12) translate(2.08 2.48)"><mask id="tyga0qnalb" fill="#fff"><use xlink:href="#mzuueez9ua"></use></mask><use fill="#1D202B" fill-rule="nonzero" transform="matrix(0 1 1 0 .434 -.434)" xlink:href="#mzuueez9ua"></use></g></g></g></g></g></g></svg>'},function(t,e){t.exports='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16"><defs><path id="lzazjo4fda" d="M8.728-.038l.01.012 2.52 3.503c.124.171.178.372.169.568v.067c.003.227-.08.456-.249.632l-.01.012-3.064 3.093c-.35.354-.92.357-1.272.007-.35-.346-.356-.907-.018-1.261l.011-.012 1.877-1.896c-1.824-.204-3.232.063-4.242.767-1.279.892-2.035 2.571-2.222 5.112-.037.496-.468.868-.964.832-.496-.037-.868-.468-.832-.964.224-3.035 1.205-5.212 2.988-6.456 1.342-.936 3.072-1.296 5.173-1.11L7.276 1.027C6.986.622 7.077.06 7.481-.23c.395-.285.943-.203 1.238.18l.01.012z"></path></defs><g fill="none" fill-rule="evenodd"><g><g><g><g><g transform="translate(-555 -1021) translate(361 981) translate(182) translate(12 40) translate(2.08 2.48)"><mask id="agebrw7egb" fill="#fff"><use xlink:href="#lzazjo4fda"></use></mask><use fill="#1D202B" fill-rule="nonzero" transform="rotate(90 5.934 5.5)" xlink:href="#lzazjo4fda"></use></g></g></g></g></g></g></svg>'},function(t,e){t.exports='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16"><defs><path id="bo7ut1aqka" d="M8.288.362l.01.012 2.52 3.503c.124.171.178.372.169.568v.067c.003.227-.08.456-.249.632l-.01.012-3.064 3.093c-.35.354-.92.357-1.272.007-.35-.346-.356-.907-.018-1.261l.011-.012 1.877-1.896c-1.824-.204-3.232.063-4.242.767-1.279.892-2.035 2.571-2.222 5.112-.037.496-.468.868-.964.832-.496-.037-.868-.468-.832-.964.224-3.035 1.205-5.212 2.988-6.456 1.342-.936 3.072-1.296 5.173-1.11L6.836 1.427c-.29-.404-.199-.966.205-1.256.395-.285.943-.203 1.238.18l.01.012z"></path></defs><g fill="none" fill-rule="evenodd"><g><g><g><g><g transform="translate(-373 -786) translate(331 730) translate(30 44) translate(12 12) translate(2.52 2.08)"><mask id="28xpt6yqwb" fill="#fff"><use xlink:href="#bo7ut1aqka"></use></mask><use fill="#1D202B" fill-rule="nonzero" xlink:href="#bo7ut1aqka"></use><g fill="#1D202B" mask="url(#28xpt6yqwb)"><path d="M0 0H16V16H0z" transform="translate(-2.52 -2.04)"></path></g></g></g></g></g></g></g></svg>'},function(t,e){t.exports='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16"><defs><path id="006kfvgdia" d="M8.288.362l.01.012 2.52 3.503c.124.171.178.372.169.568v.067c.003.227-.08.456-.249.632l-.01.012-3.064 3.093c-.35.354-.92.357-1.272.007-.35-.346-.356-.907-.018-1.261l.011-.012 1.877-1.896c-1.824-.204-3.232.063-4.242.767-1.279.892-2.035 2.571-2.222 5.112-.037.496-.468.868-.964.832-.496-.037-.868-.468-.832-.964.224-3.035 1.205-5.212 2.988-6.456 1.342-.936 3.072-1.296 5.173-1.11L6.836 1.427c-.29-.404-.199-.966.205-1.256.395-.285.943-.203 1.238.18l.01.012z"></path></defs><g fill="none" fill-rule="evenodd"><g><g><g><g><g transform="translate(-373 -814) translate(331 730) translate(30 44) translate(12 40) translate(2.52 2.08)"><mask id="9sw534t73b" fill="#fff"><use xlink:href="#006kfvgdia"></use></mask><use fill="#1D202B" fill-rule="nonzero" transform="matrix(1 0 0 -1 0 11.8)" xlink:href="#006kfvgdia"></use></g></g></g></g></g></g></svg>'},function(t,e,o){const n=o(24).TableConstructor,l=o(21),i=o(22),r=o(23),s={input:"tc-table__inp",setting:"tc-setting",settingActive:"tc-setting--active"},a={withHeadings:"With headings",withoutHeadings:"Without headings"};t.exports=class{static get isReadOnlySupported(){return!0}static get enableLineBreaks(){return!0}static get toolbox(){return{icon:l,title:"Table"}}constructor({data:t,config:e,api:o,readOnly:l}){this.api=o,this.readOnly=l,this.data={withHeadings:!(!t||!t.withHeadings)&&t.withHeadings},this._tableConstructor=new n(t,e,o,l),this._tableConstructor.useHeadings(this.data.withHeadings)}render(){return this._tableConstructor.htmlElement}renderSettings(){const t={withHeadings:{name:a.withHeadings,icon:i},withoutHeadings:{name:a.withoutHeadings,icon:r}},e=document.createElement("div");let o=document.createElement("div");o.classList.add(s.setting),o.innerHTML=t.withHeadings.icon;let n=document.createElement("div");return n.classList.add(s.setting),n.innerHTML=t.withoutHeadings.icon,this.data.withHeadings?o.classList.add(s.settingActive):n.classList.add(s.settingActive),o.addEventListener("click",()=>{this._toggleTune(o,n)}),n.addEventListener("click",()=>{this._toggleTune(o,n)}),e.append(o,n),this.api.tooltip.onHover(o,"With headings",{placement:"top"}),this.api.tooltip.onHover(n,"Without headings",{placement:"top"}),e}save(t){const e=t.querySelector(".tc-table"),o=[],n=e.childElementCount;for(let t=1;t<=n;t++){const n=e.querySelector(`.tc-row:nth-child(${t})`),l=Array.from(n.querySelectorAll(".tc-cell"));l.every(this._isEmpty)||o.push(l.map(t=>t.innerHTML))}let l={};return this.data.withHeadings&&(l.withHeadings=!0),l.content=o,l}_isEmpty(t){return!t.textContent.trim()}_toggleTune(t,e){t.classList.contains(s.settingActive)?this.data.withHeadings=!1:this.data.withHeadings=!0,t.classList.toggle(s.settingActive),e.classList.toggle(s.settingActive),this._tableConstructor.useHeadings(this.data.withHeadings)}}},function(t,e,o){var n=o(11);"string"==typeof n&&(n=[[t.i,n,""]]);var l={hmr:!0,transform:void 0,insertInto:void 0};o(1)(n,l);n.locals&&(t.exports=n.locals)},function(t,e,o){(t.exports=o(0)(!1)).push([t.i,".tc-editor{padding:10px;position:relative;box-sizing:content-box;width:100%;left:-10px}",""])},function(t,e){t.exports=function(t){var e="undefined"!=typeof window&&window.location;if(!e)throw new Error("fixUrls requires window.location");if(!t||"string"!=typeof t)return t;var o=e.protocol+"//"+e.host,n=o+e.pathname.replace(/\/[^\/]*$/,"/");return t.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(t,e){var l,i=e.trim().replace(/^"(.*)"$/,function(t,e){return e}).replace(/^'(.*)'$/,function(t,e){return e});return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(i)?t:(l=0===i.indexOf("//")?i:0===i.indexOf("/")?o+i:n+i.replace(/^\.\//,""),"url("+JSON.stringify(l)+")")})}},function(t,e,o){var n=o(14);"string"==typeof n&&(n=[[t.i,n,""]]);var l={hmr:!0,transform:void 0,insertInto:void 0};o(1)(n,l);n.locals&&(t.exports=n.locals)},function(t,e,o){(t.exports=o(0)(!1)).push([t.i,'.tc-table{position:relative;width:100%;height:100%;display:grid;font-size:14px;border-top:1px solid #e8e8eb;line-height:1.4;}.tc-table__wrap{border-left:0;position:relative;height:100%;width:100%;margin-top:18px;box-sizing:border-box;display:grid;grid-template-columns:calc(100% - 34px) 34px}.tc-table:after{width:33px;height:100%;left:-33px;top:0}.tc-table:after,.tc-table:before{position:absolute;content:""}.tc-table:before{width:100%;height:30px;top:-30px;left:0}.tc-table__wrap svg{vertical-align:top}.tc-table--heading .tc-row:first-child{font-weight:500;border-bottom:2px solid #e8e8eb;}.tc-table--heading .tc-row:first-child:after{bottom:-2px;border-bottom:2px solid #e8e8eb}.tc-table--heading .tc-row:first-child [contenteditable]:empty:before{content:"Heading";color:#7b7e89}.tc-add-column{display:flex;padding:9px 0;justify-content:center;border-top:1px solid #e8e8eb}.tc-add-row{height:34px;display:flex;align-items:center;padding-left:.6em;position:relative;}.tc-add-row:before{content:"";transition:0s;position:absolute;right:-34px;width:34px;height:100%}.tc-add-column,.tc-add-row{transition:0s;cursor:pointer;}.tc-add-column:hover,.tc-add-row:hover{transition:.1s;background:#f9f9fb}.tc-add-row:hover:before{transition:.1s;background:#f9f9fb}.tc-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(10px,1fr));position:relative;border-bottom:1px solid #e8e8eb;}.tc-row:after{content:"";pointer-events:none;position:absolute;width:34px;height:100%;bottom:-1px;right:-34px;border-bottom:1px solid #e8e8eb}.tc-row--selected{background:#f9f9fb}.tc-row--selected:after{background:#f9f9fb}.tc-cell{min-height:21px;border-right:1px solid #e8e8eb;clear:both;padding:6px 2px 6px 12px;overflow:hidden;outline:none;line-break:normal;}.tc-cell--selected{background:#f9f9fb}',""])},function(t,e,o){var n=o(16);"string"==typeof n&&(n=[[t.i,n,""]]);var l={hmr:!0,transform:void 0,insertInto:void 0};o(1)(n,l);n.locals&&(t.exports=n.locals)},function(t,e,o){(t.exports=o(0)(!1)).push([t.i,'.tc-toolbox-row{left:-30px;transform:translateY(-50%)}.tc-toolbox-column,.tc-toolbox-row{position:absolute;cursor:pointer;z-index:1;opacity:0;transition:opacity .1s}.tc-toolbox-column{top:-24px;transform:translateX(-50%)}.tc-toolbox-column__menu,.tc-toolbox-row__menu{position:absolute;left:30px;top:0;background:#fff;border:1px solid #eaeaea;box-shadow:0 3px 15px -3px rgba(13,20,33,.13);border-radius:4px;display:grid;will-change:transform,opacity;}.tc-toolbox-column__menu:before,.tc-toolbox-row__menu:before{content:"";position:absolute;left:-30px;top:0;width:30px;height:100%}.tc-toolbox-row__menu{width:165px}.tc-toolbox-column__menu{width:190px}.tc-toolbox-column__option,.tc-toolbox-row__option{font-size:.9em;display:grid;grid-template-columns:auto 1fr;grid-column-gap:11px;align-items:center;padding:7px 12px;}.tc-toolbox-column__option:hover,.tc-toolbox-row__option:hover{background:#f7f7f7}.tc-toolbox-column__option:first-child,.tc-toolbox-row__option:first-child{padding-top:14px}.tc-toolbox-column__option:last-child,.tc-toolbox-row__option:last-child{padding-bottom:14px}.tc-menu-animation{-webkit-animation-name:menuShowing;animation-name:menuShowing;-webkit-animation-duration:.1s;animation-duration:.1s}@-webkit-keyframes menuShowing{0%{opacity:0;transform:translateY(-8px) scale(.9)}70%{opacity:1;transform:translateY(2px)}to{transform:translateY(0)}}@keyframes menuShowing{0%{opacity:0;transform:translateY(-8px) scale(.9)}70%{opacity:1;transform:translateY(2px)}to{transform:translateY(0)}}',""])},function(t,e,o){var n=o(18);"string"==typeof n&&(n=[[t.i,n,""]]);var l={hmr:!0,transform:void 0,insertInto:void 0};o(1)(n,l);n.locals&&(t.exports=n.locals)},function(t,e,o){(t.exports=o(0)(!1)).push([t.i,".tc-hidden{visibility:hidden}.tc-none{display:none}",""])},function(t,e,o){var n=o(20);"string"==typeof n&&(n=[[t.i,n,""]]);var l={hmr:!0,transform:void 0,insertInto:void 0};o(1)(n,l);n.locals&&(t.exports=n.locals)},function(t,e,o){(t.exports=o(0)(!1)).push([t.i,".tc-setting{width:52px;height:34px;line-height:34px;display:inline-flex;align-items:center;justify-content:center;padding:0!important;text-align:center;border-radius:3px;cursor:pointer;border:0;outline:none;background-color:transparent;vertical-align:bottom;color:#000;margin:0;transition:background-color .3s ease;will-change:background-color;}.tc-setting--active{color:#388ae5}.tc-setting:first-child{margin-right:4px}.tc-setting:hover{background-color:#eff2f5;transition:background-color 0s}",""])},function(t,e){t.exports='<svg width="18" height="14"><path d="M2.833 8v1.95a1.7 1.7 0 0 0 1.7 1.7h3.45V8h-5.15zm0-2h5.15V2.35h-3.45a1.7 1.7 0 0 0-1.7 1.7V6zm12.3 2h-5.15v3.65h3.45a1.7 1.7 0 0 0 1.7-1.7V8zm0-2V4.05a1.7 1.7 0 0 0-1.7-1.7h-3.45V6h5.15zM4.533.1h8.9a3.95 3.95 0 0 1 3.95 3.95v5.9a3.95 3.95 0 0 1-3.95 3.95h-8.9a3.95 3.95 0 0 1-3.95-3.95v-5.9A3.95 3.95 0 0 1 4.533.1z"></path></svg>'},function(t,e){t.exports='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="15" height="13" viewBox="0 0 15 13"><path id="0d3hrkr6ka" d="M14.74 10.175c.608 0 1.1.492 1.1 1.1 0 .608-.492 1.1-1.1 1.1H1.1c-.608 0-1.1-.492-1.1-1.1 0-.608.492-1.1 1.1-1.1h13.64zm0-4.235c.608 0 1.1.492 1.1 1.1 0 .608-.492 1.1-1.1 1.1H1.1c-.608 0-1.1-.492-1.1-1.1 0-.608.492-1.1 1.1-1.1h13.64zM13.887 0c1.079 0 1.953.874 1.953 1.952 0 1.079-.874 1.953-1.953 1.953H1.954C.874 3.905 0 3.031 0 1.953 0 .873.874 0 1.952 0h11.935z"></path></svg>'},function(t,e){t.exports='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="15" height="13" viewBox="0 0 15 13"><path id="q7x34m83ca" d="M14.602 9.9c.684 0 1.238.554 1.238 1.237 0 .684-.554 1.238-1.238 1.238H1.238C.554 12.375 0 11.821 0 11.137 0 10.454.554 9.9 1.238 9.9h13.364zm0-4.95c.684 0 1.238.554 1.238 1.237 0 .684-.554 1.238-1.238 1.238H1.238C.554 7.425 0 6.871 0 6.188 0 5.503.554 4.95 1.238 4.95h13.364zm0-4.95c.684 0 1.238.554 1.238 1.238 0 .683-.554 1.237-1.238 1.237H1.238C.554 2.475 0 1.921 0 1.237 0 .554.554 0 1.238 0h13.364z"></path></svg>'},function(t,e,o){"use strict";o.r(e);o(10);function n(t){return!(null==t)}function l(t,e=null,o=null,l=null){const i=document.createElement(t);if(n(e))for(let t=0;t<e.length;t++)n(e[t])&&i.classList.add(e[t]);if(n(o))for(let t in o)i.setAttribute(t,o[t]);if(n(l))for(let t=0;t<l.length;t++)n(l[t])&&i.appendChild(l[t]);return i}function i(t){const e=t.getBoundingClientRect();return{y1:Math.floor(e.top+window.pageYOffset),x1:Math.floor(e.left+window.pageXOffset),x2:Math.floor(e.right+window.pageXOffset),y2:Math.floor(e.bottom+window.pageYOffset)}}function r(t,e){const o=i(t),n=i(e);return{fromTopBorder:n.y1-o.y1,fromLeftBorder:n.x1-o.x1,fromRightBorder:o.x2-n.x2,fromBottomBorder:o.y2-n.y2}}function s(t,e){return e.parentNode.insertBefore(t,e.nextSibling)}function a(t,e){return e.parentNode.insertBefore(t,e)}o(13),o(15),o(17),o(19);var c=o(2),d=o.n(c),u=o(3),h=o.n(u),f=o(5),p=o.n(f),b=o(6),m=o.n(b),x=o(7),w=o.n(x),g=o(8),_=o.n(g),v=o(4),y=o.n(v);const C={hidden:"tc-hidden",none:"tc-none",toolboxRow:"tc-toolbox-row",toolboxRowMenu:"tc-toolbox-row__menu",toolboxColumn:"tc-toolbox-column",toolboxColumnMenu:"tc-toolbox-column__menu",toolboxAddColumnRight:"tc-toolbox-add-column-right",toolboxAddColumnLeft:"tc-toolbox-add-column-left",toolboxAddRowAbove:"tc-toolbox-add-row-above",toolboxAddRowBelow:"tc-toolbox-add-row-below",toolboxDelete:"tc-toolbox-delete",toolboxDeleteColumn:"tc-toolbox-delete--column",toolboxDeleteRow:"tc-toolbox-delete--row",toolboxOption:"tc-toolbox-row__option",menuAnimation:"tc-menu-animation"};class R{constructor(){this._toolboxRow=this.createToolboxRow(),this._toolboxColumn=this.createToolboxColumn(),this._toolboxRowMenu=this._toolboxRow.querySelector(`.${C.toolboxRowMenu}`),this._toolboxColumnMenu=this._toolboxColumn.querySelector(`.${C.toolboxColumnMenu}`),this._row=0,this._column=0}createToolboxRow(){let t=this._createRowMenu(),e=l("div",[C.toolboxRow]);return e.innerHTML=h.a,e.append(t),e}createToolboxColumn(){let t=this._createColumnMenu(),e=l("div",[C.toolboxColumn]);return e.innerHTML=h.a,e.append(t),e}_createRowMenu(){let t=l("span"),e=l("span"),o=l("span");t.textContent="Add row above",e.textContent="Add row below",o.textContent="Delete row";let n=l("div",[C.toolboxAddRowAbove,C.toolboxOption]);n.innerHTML=w.a,n.append(t);let i=l("div",[C.toolboxAddRowBelow,C.toolboxOption]);i.innerHTML=_.a,i.append(e);let r=l("div",[C.toolboxDelete,C.toolboxOption,C.toolboxDeleteRow]);return r.innerHTML=y.a,r.append(o),l("div",[C.toolboxRowMenu,C.hidden],null,[n,i,r])}_createColumnMenu(){let t=l("span"),e=l("span"),o=l("span");t.textContent="Add column to left",e.textContent="Add column to right",o.textContent="Delete column";let n=l("div",[C.toolboxAddColumnRight,C.toolboxOption]);n.innerHTML=m.a,n.append(e);let i=l("div",[C.toolboxAddColumnLeft,C.toolboxOption]);i.innerHTML=p.a,i.append(t);let r=l("div",[C.toolboxDelete,C.toolboxOption,C.toolboxDeleteColumn]);return r.innerHTML=y.a,r.append(o),l("div",[C.toolboxColumnMenu,C.hidden],null,[i,n,r])}get toolboxRow(){return this._toolboxRow}get toolboxColumn(){return this._toolboxColumn}hideDeleteColumnButton(){this._toolboxColumnMenu.querySelector(`.${C.toolboxDeleteColumn}`).classList.add(C.none)}unhideDeleteColumnButton(){this._toolboxColumnMenu.querySelector(`.${C.toolboxDeleteColumn}`).classList.remove(C.none)}hideDeleteRowButton(){this._toolboxRowMenu.querySelector(`.${C.toolboxDeleteRow}`).classList.add(C.none)}unhideDeleteRowButton(){this._toolboxRowMenu.querySelector(`.${C.toolboxDeleteRow}`).classList.remove(C.none)}openToolboxRowMenu(){this._toolboxRowMenu.classList.add(C.menuAnimation),this._toolboxRowMenu.classList.remove(C.hidden)}closeToolboxRowMenu(){this._toolboxRowMenu.classList.remove(C.menuAnimation),this._toolboxRowMenu.classList.add(C.hidden)}openToolboxColumnMenu(){this._toolboxColumnMenu.classList.add(C.menuAnimation),this._toolboxColumnMenu.classList.remove(C.hidden)}closeToolboxColumnMenu(){this._toolboxColumnMenu.classList.remove(C.menuAnimation),this._toolboxColumnMenu.classList.add(C.hidden)}updateToolboxColumnPosition(t=0,e=this._column){this._column=e,this._column<=0||this._column>t?this._toolboxColumn.style.opacity="0":this._toolboxColumn.style.cssText="opacity: 1; "+`left: calc((100% - 35px) / (${t} * 2) * (1 + (${e} - 1) * 2))`,1==t?this.hideDeleteColumnButton():this.unhideDeleteColumnButton()}updateToolboxRowPosition(t=0,e=this._row,o){if(this._row=e,this._row<=0||this._row>t)this._toolboxRow.style.opacity="0";else{const t=o.querySelector(`.tc-row:nth-child(${this._row})`),{fromTopBorder:e}=r(o,t),{height:n}=t.getBoundingClientRect();this._toolboxRow.style.opacity="1",this._toolboxRow.style.top=`${e+n/2}px`}1==t?this.hideDeleteRowButton():this.unhideDeleteRowButton()}}const k={table:"tc-table",row:"tc-row",withHeadings:"tc-table--heading",rowSelected:"tc-row--selected",cell:"tc-cell",cellSelected:"tc-cell--selected",addRow:"tc-add-row",addColumn:"tc-add-column",wrapper:"tc-table__wrap",toolboxAddColumnRight:"tc-toolbox-add-column-right",toolboxAddColumnLeft:"tc-toolbox-add-column-left",toolboxDeleteColumn:"tc-toolbox-delete--column",toolboxAddRowAbove:"tc-toolbox-add-row-above",toolboxAddRowBelow:"tc-toolbox-add-row-below",toolboxDeleteRow:"tc-toolbox-delete--row"};class L{constructor(t){this.readOnly=t,this._numberOfColumns=0,this._numberOfRows=0,this._toolbox=new R,this._element=this._createTableWrapper(),this._table=this._element.querySelector(`.${k.table}`),this._hoveredRow=0,this._hoveredColumn=0,this._lastSelectedRow=0,this._lastSelectedColumn=0,this._focusedCell={row:0,column:0},this._fillAddButtons(),this.readOnly||this._hangEvents()}addColumn(t=-1){this._numberOfColumns++;for(let e=1;e<=this._numberOfRows;e++){let o;const n=l("div",[k.cell],{contenteditable:!this.readOnly});t>0?(o=this._table.querySelector(`.${k.row}:nth-child(${e}) .${k.cell}:nth-child(${t})`))?a(n,o):s(n,o=this._table.querySelector(`.${k.row}:nth-child(${e}) .${k.cell}:nth-child(${t-1})`)):o=this._table.querySelector(`.${k.row}:nth-child(${e})`).appendChild(n)}}addRow(t=-1){let e;this._numberOfRows++;let o=l("div",[k.row]);if(t>0){let n=this._table.querySelector(`.${k.row}:nth-child(${t})`);e=n?a(o,n):s(o,n=this._table.querySelector(`.${k.row}:nth-child(${t-1})`))}else e=this._table.appendChild(o);return this._fillRow(e),e}deleteColumn(t){for(let e=1;e<=this._numberOfRows;e++){const o=this._table.querySelector(`.${k.row}:nth-child(${e}) .${k.cell}:nth-child(${t})`);if(!o)return;o.remove()}this._numberOfColumns--}deleteRow(t){this._table.querySelector(`.${k.row}:nth-child(${t})`).remove(),this._numberOfRows--}_fillAddButtons(){this._element.querySelector(`.${k.addColumn}`).innerHTML=d.a,this._element.querySelector(`.${k.addRow}`).innerHTML=d.a}get htmlElement(){return this._element}get body(){return this._table}_createTableWrapper(){return l("div",[k.wrapper],null,[this._toolbox.toolboxRow,this._toolbox.toolboxColumn,l("div",[k.table]),l("div",[k.addColumn]),l("div",[k.addRow])])}_fillRow(t){for(let e=1;e<=this._numberOfColumns;e++){const e=l("div",[k.cell],{contenteditable:!this.readOnly});t.appendChild(e)}}_hangEvents(){this._table.addEventListener("mousemove",t=>{const{row:e,column:o}=this._hoveredCell(t);this._updateToolboxesPosition(e,o)},!0),this._element.addEventListener("mouseleave",t=>{this._toolbox.closeToolboxColumnMenu(),this._toolbox.closeToolboxRowMenu(),this._updateToolboxesPosition()}),this._element.querySelector(`.${k.addColumn}`).addEventListener("mouseover",t=>{this._updateToolboxesPosition()}),this._element.querySelector(`.${k.addRow}`).addEventListener("mouseover",t=>{this._updateToolboxesPosition()}),this._toolbox.toolboxColumn.querySelector(`.${k.toolboxAddColumnRight}`).addEventListener("click",t=>{t.stopPropagation(),this.addColumn(this._hoveredColumn+1),this._updateToolboxesPosition()}),this._toolbox.toolboxColumn.querySelector(`.${k.toolboxAddColumnLeft}`).addEventListener("click",t=>{t.stopPropagation(),this.addColumn(this._hoveredColumn),this._updateToolboxesPosition()}),this._toolbox.toolboxRow.querySelector(`.${k.toolboxAddRowAbove}`).addEventListener("click",t=>{t.stopPropagation(),this.addRow(this._hoveredRow),this._updateToolboxesPosition()}),this._toolbox.toolboxRow.querySelector(`.${k.toolboxAddRowBelow}`).addEventListener("click",t=>{t.stopPropagation(),this.addRow(this._hoveredRow+1),this._updateToolboxesPosition()}),this._toolbox.toolboxColumn.querySelector(`.${k.toolboxDeleteColumn}`).addEventListener("click",t=>{this.deleteColumn(this._hoveredColumn),this._updateToolboxesPosition()}),this._toolbox.toolboxRow.querySelector(`.${k.toolboxDeleteRow}`).addEventListener("click",t=>{this.deleteRow(this._hoveredRow),this._updateToolboxesPosition()}),this._toolbox.toolboxRow.addEventListener("click",t=>{if(this._hoveredRow==this._lastSelectedRow)return this._unselectRow(),void this._toolbox.closeToolboxRowMenu();this._selectRow(this._hoveredRow),this._toolbox.openToolboxRowMenu()}),this._toolbox.toolboxColumn.addEventListener("click",t=>{if(this._hoveredColumn==this._lastSelectedColumn)return this._unselectColumn(),void this._toolbox.closeToolboxColumnMenu();this._selectColumn(this._hoveredColumn),this._toolbox.openToolboxColumnMenu()}),this._table.onkeypress=(t=>!("Enter"!=t.key||!t.shiftKey)||("Enter"==t.key&&(this._focusedCell.row!=this._numberOfRows?(this._focusedCell.row+=1,this._focusCell(this._focusedCell)):(this.addRow(),this._focusedCell.row+=1,this._focusCell(this._focusedCell),this._updateToolboxesPosition(0,0))),"Enter"!=t.key)),this._table.addEventListener("keydown",t=>{"Tab"==t.key&&t.stopPropagation()}),this._table.addEventListener("focusin",t=>{const e=t.target,o=e.parentElement;this._focusedCell={row:Array.from(this._table.querySelectorAll(`.${k.row}`)).indexOf(o)+1,column:Array.from(o.querySelectorAll(`.${k.cell}`)).indexOf(e)+1}})}_focusCell(){this._focusedCellElem.focus()}get _focusedCellElem(){const{row:t,column:e}=this._focusedCell;return this._table.querySelector(`.${k.row}:nth-child(${t}) .${k.cell}:nth-child(${e})`)}_updateToolboxesPosition(t=0,e=0){this._hoveredRow==t&&this._hoveredColumn==e||(this._hoveredColumn!=e&&(this._unselectColumn(),this._toolbox.closeToolboxColumnMenu()),this._hoveredRow!=t&&(this._unselectRow(),this._toolbox.closeToolboxRowMenu()),this._hoveredRow=t,this._hoveredColumn=e,this._toolbox.updateToolboxColumnPosition(this._numberOfColumns,e),this._toolbox.updateToolboxRowPosition(this._numberOfRows,t,this._table))}useHeadings(t){t?this._table.classList.add(k.withHeadings):this._table.classList.remove(k.withHeadings)}_selectRow(t){this._lastSelectedRow=t;const e=this._table.querySelector(`.${k.row}:nth-child(${t})`);e&&e.classList.add(k.rowSelected)}_unselectRow(){if(this._lastSelectedRow<=0)return;const t=this._table.querySelector(`.${k.rowSelected}`);t&&t.classList.remove(k.rowSelected),this._lastSelectedRow=0}_selectColumn(t){for(let e=1;e<=this._numberOfRows;e++){const o=this._table.querySelector(`.${k.row}:nth-child(${e}) .${k.cell}:nth-child(${t})`);o&&o.classList.add(k.cellSelected)}this._lastSelectedColumn=t}_unselectColumn(){if(this._lastSelectedColumn<=0)return;let t=this._table.querySelectorAll(`.${k.cellSelected}`);Array.from(t).forEach(t=>{t.classList.remove(k.cellSelected)}),this._lastSelectedColumn=0}_hoveredCell(t){let e=0,o=0;const{width:n,height:l,x:i,y:s}=function(t,e){const o=t.getBoundingClientRect(),{width:n,height:l,x:i,y:r}=o,{clientX:s,clientY:a}=e;return{width:n,height:l,x:s-i,y:a-r}}(this._table,t);for(let t=1;t<=this._numberOfColumns;t++){const e=this._table.querySelector(`.${k.row}:first-child .${k.cell}:nth-child(${t})`),{fromRightBorder:l}=r(this._table,e);if(i<n-l){o=t;break}}for(let t=1;t<=this._numberOfRows;t++){const o=this._table.querySelector(`.${k.row}:nth-child(${t})`),{fromBottomBorder:n}=r(this._table,o);if(s<l-n){e=t;break}}return{row:e,column:o}}}o.d(e,"TableConstructor",function(){return M});const S={editor:"tc-editor",toolBarHor:"tc-toolbar--hor",toolBarVer:"tc-toolbar--ver",inputField:"tc-table__inp",addRow:"tc-add-row",addColumn:"tc-add-column",row:"tc-row",cell:"tc-cell"};class M{constructor(t,e,o,n){this.readOnly=n,this._table=new L(n);const i=this._resizeTable(t,e);let r=null;o&&o.styles&&o.styles.block&&(r=o.styles.block),this._container=l("div",[S.editor,r],null,[this._table.htmlElement]),this._fillTable(t,i),this._hoveredCell=null,this._hoveredCellSide=null,this.readOnly||this._hangEvents()}get htmlElement(){return this._container}_fillTable(t,e){if(void 0!==t.content)for(let o=0;o<e.rows&&o<t.content.length;o++)for(let n=0;n<e.cols&&n<t.content[o].length;n++){this._container.querySelector(`.${S.row}:nth-child(${o+1}) .${S.cell}:nth-child(${n+1})`).innerHTML=t.content[o][n]}}_resizeTable(t,e){const o=Array.isArray(t.content),n=!!o&&t.content.length,l=o?t.content.length:void 0,i=n?t.content[0].length:void 0,r=Number.parseInt(e.rows),s=Number.parseInt(e.cols),a=!isNaN(r)&&r>0?r:void 0,c=!isNaN(s)&&s>0?s:void 0,d=l||a||2,u=i||c||2;for(let t=0;t<d;t++)this._table.addRow();for(let t=0;t<u;t++)this._table.addColumn();return{rows:d,cols:u}}_hangEvents(){this._container.querySelector(`.${S.addColumn}`).addEventListener("click",t=>{this._table.addColumn()}),this._container.querySelector(`.${S.addRow}`).addEventListener("click",t=>{this._table.addRow()})}useHeadings(t){this._table.useHeadings(t)}}}])});