PluginProbe
Tableberg – Simple Gutenberg Table Block / 1.1.0
Tableberg – Simple Gutenberg Table Block v1.1.0
1.1.5 1.1.4 1.1.3 1.1.2 1.1.1 1.1.0 1.0.5 1.0.4 1.0.3 1.0.2 1.0.1 trunk 0.0.2 0.2.1 0.3.2 0.3.3 0.4.1 0.5.0 0.5.1 0.5.2 0.5.3 0.5.4 0.5.5 0.5.6 0.5.7 All 42 releases
tableberg / build / view.js

view.js in Tableberg – Simple Gutenberg Table Block 1.1.0, at build/view.js

1 lines 16.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 (()=>{"use strict";const e="tableberg:rows-changed";function t(e){return"text"===e||"number"===e||"date"===e}function r(e){const t=e.getAttribute("data-cell-col");if(!t)return null;const r=Number.parseInt(t,10);return Number.isNaN(r)?null:r}function n(e,t){const r=e.querySelector(`[data-cell-col="${t}"]`);return(r?.textContent||"").trim()}function a(e,t){if("number"===t){const t=e.replace(/[^0-9.-]/g,""),r=Number.parseFloat(t);return Number.isNaN(r)?0:r}if("date"===t){const t=Date.parse(e);return Number.isNaN(t)?0:t}return e.toLowerCase()}function o(e){const t=Array.from(e.tbody.rows),r=e.headerEnabled&&t.length>0?t[0]:null,n=e.footerEnabled&&t.length>(r?1:0)?t[t.length-1]:null,a=r?1:0,o=n?t.length-1:t.length;return{headerRow:r,footerRow:n,dataRows:t.slice(a,Math.max(a,o))}}function l(e){const t=e.querySelector(".tableberg-sort-indicator");if(t)return t;const r=document.createElement("span");return r.className="tableberg-sort-indicator",r.setAttribute("aria-hidden","true"),r.textContent="▲▼",e.appendChild(r),r}function s(e){const{headerRow:t}=o(e);if(!t)return;const n=Array.from(t.querySelectorAll("th[data-sortable]"));for(const t of n){const n=r(t);if(null===n)continue;const a=l(t);e.currentColumn===n&&null!==e.currentOrder?(a.textContent="asc"===e.currentOrder?"":"",a.classList.add("tableberg-sort-indicator--active"),t.setAttribute("aria-sort","asc"===e.currentOrder?"ascending":"descending")):(a.textContent="▲▼",a.classList.remove("tableberg-sort-indicator--active"),t.setAttribute("aria-sort","none"))}}function i(t,r){const{headerRow:n,footerRow:a}=o(t),l=[];n&&l.push(n),l.push(...r),a&&l.push(a);for(const e of l)t.tbody.appendChild(e);s(t),t.table.dispatchEvent(new CustomEvent(e))}function c(e){const{currentColumn:t,currentOrder:r}=e;if(null===t||null===r)return void i(e,e.originalRows.slice());const o=e.sortableColumns.get(t);if(!o)return void i(e,e.originalRows.slice());const l=e.originalRows.slice().sort((e,l)=>function(e,t,r,o,l){const s=a(n(e,r),o),i=a(n(t,r),o);let c=0;return c="number"==typeof s&&"number"==typeof i?s-i:String(s).localeCompare(String(i)),"asc"===l?c:-c}(e,l,t,o,r));i(e,l)}function u(e,t){return e.currentColumn!==t?(e.currentColumn=t,e.currentOrder="asc",void c(e)):"asc"===e.currentOrder?(e.currentOrder="desc",void c(e)):(e.currentColumn=null,e.currentOrder=null,void c(e))}function d(e){if("true"===e.dataset.tablebergSortingInitialized)return;const n=e.tBodies.item(0);if(!n)return;const a="true"===e.dataset.tablebergHeader;if(!a||0===n.rows.length)return;const l=n.rows[0],i=Array.from(l.querySelectorAll("th[data-sortable]"));if(0===i.length)return;const c={table:e,tbody:n,headerEnabled:a,footerEnabled:"true"===e.dataset.tablebergFooter,sortableColumns:new Map,originalRows:[],currentColumn:null,currentOrder:null};for(const e of i){const n=e.getAttribute("data-sortable");if(!t(n))continue;const a=r(e);if(null===a)continue;c.sortableColumns.set(a,n),e.setAttribute("role","button"),e.setAttribute("tabindex","0"),e.setAttribute("aria-sort","none");const o=()=>{u(c,a)};e.addEventListener("click",o),e.addEventListener("keydown",e=>{"Enter"!==e.key&&" "!==e.key&&"Spacebar"!==e.key||(e.preventDefault(),o())})}const{dataRows:d}=o(c);c.originalRows=d.slice(),s(c),e.dataset.tablebergSortingInitialized="true"}const b="tableberg:search-changed",f="tableberg-search-highlight";function g(e){return Array.from(e.querySelectorAll(".tableberg-text-element"))}function h(e,t){if(!t)return!0;const r=g(e);return 0!==r.length&&r.some(e=>(e.textContent||"").toLowerCase().includes(t))}function p(e){e.querySelectorAll(`mark.${f}`).forEach(e=>{const t=document.createTextNode(e.textContent||"");e.replaceWith(t)}),e.normalize()}function m(e,t){if(!t)return;const r=g(e);if(0===r.length)return;const n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");r.forEach(e=>{!function(e,t){const r=[],n=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,{acceptNode:e=>e.nodeValue&&e.nodeValue.trim()&&e.parentElement?e.parentElement.closest(`mark.${f}`)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT});let a=n.nextNode();for(;a;)r.push(a),a=n.nextNode();r.forEach(e=>{const r=e.nodeValue||"",n=new RegExp(`(${t})`,"gi"),a=r.split(n);if(a.length<=1)return;const o=document.createDocumentFragment();a.forEach((e,t)=>{if(e){if(t%2==1){const t=document.createElement("mark");return t.className=f,t.textContent=e,void o.appendChild(t)}o.appendChild(document.createTextNode(e))}}),e.replaceWith(o)})}(e,n)})}function E(e){const t=e.inputEl.value.trim(),r=t.toLowerCase().trim(),{dataRows:n}=function(e){const t=Array.from(e.tbody.rows),r=e.headerEnabled?1:0,n=e.footerEnabled?1:0,a=t.length-n;return{dataRows:t.slice(r,Math.max(r,a))}}(e);let a=0;for(const e of n){p(e);const n=h(e,r);e.dataset.tablebergSearchMatch=n?"true":"false",e.classList.toggle("tableberg-search-row--hidden",!n),n&&(a++,r&&m(e,t))}e.clearButtonEl.hidden=0===r.length,function(e,t,r){if(!t)return e.resultsEl.hidden=!0,void(e.resultsEl.textContent="");e.resultsEl.hidden=!1,e.resultsEl.textContent=function(e){return e<=0?"No results found":1===e?"1 result":`${e} results`}(r)}(e,r,a),e.table.dispatchEvent(new CustomEvent(b,{detail:{searchTerm:r,matchCount:a}}))}function w(e){if("true"===e.dataset.tablebergSearchInitialized)return;const t=function(e){const t="true"===e.dataset.tablebergSearchEnabled,r="right"===e.dataset.tablebergSearchPosition?"right":"left";return{enabled:t,placeholder:e.dataset.tablebergSearchPlaceholder||"Search...",position:r,highlightColor:e.dataset.tablebergSearchHighlightColor||""}}(e);if(!t.enabled)return;const r=e.tBodies.item(0);if(!r)return;const n={table:e,tbody:r,headerEnabled:"true"===e.dataset.tablebergHeader,footerEnabled:"true"===e.dataset.tablebergFooter,config:t,inputEl:document.createElement("input"),clearButtonEl:document.createElement("button"),resultsEl:document.createElement("span")};n.config.highlightColor&&e.style.setProperty("--tableberg-search-highlight-color",n.config.highlightColor);const a=function(e){const t=document.createElement("div");t.className="tableberg-search",t.style.justifyContent="right"===e.config.position?"flex-end":"flex-start";const r=document.createElement("div");r.className="tableberg-search__input-wrapper";const n=document.createElement("span");return n.className="tableberg-search__icon",n.setAttribute("aria-hidden","true"),n.innerHTML="<svg width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='8'></circle><path d='M21 21l-4.35-4.35'></path></svg>",e.inputEl.className="tableberg-search__input",e.inputEl.type="text",e.inputEl.placeholder=e.config.placeholder,e.clearButtonEl.className="tableberg-search__clear",e.clearButtonEl.type="button",e.clearButtonEl.setAttribute("aria-label","Clear search"),e.clearButtonEl.hidden=!0,e.clearButtonEl.innerHTML="<svg width='16' height='16' viewBox='0 0 24 24' fill='currentColor'><path d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'></path></svg>",e.resultsEl.className="tableberg-search__results",e.resultsEl.hidden=!0,r.appendChild(n),r.appendChild(e.inputEl),r.appendChild(e.clearButtonEl),t.appendChild(r),t.appendChild(e.resultsEl),t}(n);e.insertAdjacentElement("beforebegin",a),n.inputEl.addEventListener("input",()=>{E(n)}),n.clearButtonEl.addEventListener("click",()=>{n.inputEl.value="",E(n),n.inputEl.focus()}),E(n),e.dataset.tablebergSearchInitialized="true"}function C(e){const t=Array.from(e.tbody.rows),r=e.headerEnabled&&t.length>0?t[0]:null,n=e.footerEnabled&&t.length>(r?1:0)?t[t.length-1]:null,a=r?1:0,o=n?t.length-1:t.length;return{headerRow:r,footerRow:n,dataRows:t.slice(a,Math.max(a,o))}}function v(e,t){return e<=0||t<=0?1:Math.ceil(e/t)}function y(e,t){return t<=1||e<0?0:e>t-1?t-1:e}function A(e){return e.filter(e=>"false"!==e.dataset.tablebergSearchMatch)}function L(e,t,r,n){const a=document.createElement("button");return a.type="button",a.className=t,n?.disabled&&(a.disabled=!0),n?.ariaLabel&&a.setAttribute("aria-label",n.ariaLabel),a.textContent=e,a.addEventListener("click",r),a}function N(e){const{headerRow:t,footerRow:r,dataRows:n}=C(e),a=A(n),o=v(a.length,e.config.pageSize);e.currentPage=y(e.currentPage,o),t&&(t.hidden=!1),r&&(r.hidden=!1),function(e,t,r,n){const a=new Set(t),o=n*r,l=o+r;let s=0;e.forEach(e=>{a.has(e)?(e.hidden=s<o||s>=l,s++):e.hidden=!0})}(n,a,e.config.pageSize,e.currentPage),function(e,t){const{controlsEl:r,config:n,currentPage:a}=e,{showPageNumbers:o,showPrevNext:l}=n;if(r.replaceChildren(),t<=1||!o&&!l)return void(r.hidden=!0);r.hidden=!1;const s=a>0,i=a<t-1,c="tableberg-pagination__button";if(l&&r.appendChild(L("",`${c} ${c}--arrow`,()=>{S(e,a-1)},{disabled:!s,ariaLabel:"Previous page"})),o){const n=function(e,t){const r=[];if(t<=5){for(let e=0;e<t;e++)r.push(e);return r}r.push(0),e>2&&r.push("ellipsis");const n=Math.max(1,e-1),a=Math.min(t-2,e+1);for(let e=n;e<=a;e++)r.includes(e)||r.push(e);return e<t-3&&r.push("ellipsis"),r.includes(t-1)||r.push(t-1),r}(a,t);n.forEach(t=>{if("ellipsis"===t){const e=document.createElement("span");return e.className="tableberg-pagination__ellipsis",e.textContent="...",e.setAttribute("aria-hidden","true"),void r.appendChild(e)}const n=a===t;r.appendChild(L(String(t+1),n?`${c} ${c}--active`:c,()=>{S(e,t)}))})}l&&r.appendChild(L("",`${c} ${c}--arrow`,()=>{S(e,a+1)},{disabled:!i,ariaLabel:"Next page"}))}(e,o)}function S(e,t){const{dataRows:r}=C(e),n=y(t,v(A(r).length,e.config.pageSize));n!==e.currentPage&&(e.currentPage=n,N(e))}function x(t){if("true"===t.dataset.tablebergPaginationInitialized)return;const r=function(e){const t=e.dataset.tablebergPagination;if(!t)return null;let r;try{r=JSON.parse(t)}catch{return null}if(!r||"object"!=typeof r)return null;const n=r,a=Number(n.pageSize),o=Number.isFinite(a)&&a>0?Math.floor(a):10;return{enabled:!0===n.enabled,pageSize:o,showPageNumbers:!1!==n.showPageNumbers,showPrevNext:!1!==n.showPrevNext}}(t);if(!r||!r.enabled)return;const n=t.tBodies.item(0);if(!n||function(e){return Array.from(e.rows).some(e=>Array.from(e.cells).some(e=>e.rowSpan>1))}(n))return;const a=document.createElement("div");a.className="tableberg-pagination",t.insertAdjacentElement("afterend",a);const o={table:t,tbody:n,headerEnabled:"true"===t.dataset.tablebergHeader,footerEnabled:"true"===t.dataset.tablebergFooter,config:r,currentPage:0,controlsEl:a};t.addEventListener(e,()=>{N(o)}),t.addEventListener(b,()=>{o.currentPage=0,N(o)}),N(o),t.dataset.tablebergPaginationInitialized="true"}const R="tableberg:responsive-changed";function k(e,t){const r=Number.parseInt(e||"",10);return Number.isNaN(r)||r<1?t:r}function M(e){return"true"===e||"1"===e}function T(e,t){const r=Number.parseInt(e||"",10);return Number.isNaN(r)||r<0?t:r}function $(e){return T(e.getAttribute("data-cell-row")||void 0,0)}function B(e){return T(e.getAttribute("data-cell-col")||void 0,0)}function F(e){return k(e.dataset.tablebergRows,e.tBodies[0]?.rows.length||1)}function P(e){return k(e.dataset.tablebergCols,1)}function _(e){return e.closest(".tableberg-table-wrapper")}function q(e,t){["tableberg-rowstack-table","tableberg-colstack-table"].forEach(t=>e.classList.remove(t)),t&&e.classList.add(t)}function H(e,t){["tableberg-even-row-cell","tableberg-header-cell","tableberg-footer-cell","tableberg-odd-row-cell"].forEach(t=>e.classList.remove(t)),e.classList.add(`tableberg-${t}-cell`)}function z(e,t){["tableberg-even-row","tableberg-header","tableberg-footer","tableberg-odd-row"].forEach(t=>e.classList.remove(t)),e.classList.add(`tableberg-${t}`)}function I(e,t,r,n){if(r&&0===e)return"header";if(n&&e===t-1)return"footer";let a=e;return r&&e>0&&(a+=1),a%2?"even-row":"odd-row"}function O(e,t){const r="mobile"===t?"tablebergMobile":"tablebergTablet",n=M(e.dataset[`${r}Enabled`]),a=k(e.dataset[`${r}Width`],"mobile"===t?700:1024),o=e.dataset[`${r}Mode`]||"",l="scroll"===o||"stack"===o?o:"",s=M(e.dataset[`${r}Transpose`])||"row"===e.dataset[`${r}Direction`],i=M(e.dataset[`${r}RepeatFirstCol`])||M(e.dataset[`${r}Header`]);return{enabled:n,maxWidth:a,mode:l,transpose:s,stackCount:k(e.dataset[`${r}Count`],1),repeatFirstCol:i}}function W(e){const t=e.dataset.tablebergLast;if(!t)return;delete e.dataset.tablebergLast;const r=_(e);if(r?.classList.remove("tableberg-scroll-x"),e.querySelectorAll("[data-tableberg-tmp='1']").forEach(e=>e.remove()),!t.includes("stack"))return void q(e);q(e);const n=e.querySelector("colgroup");n&&n.removeAttribute("style");const a=Array.from(e.querySelectorAll("th, td"));a.sort((e,t)=>{const r=$(e)-$(t);return 0!==r?r:B(e)-B(t)});const o=e.tBodies.item(0);if(!o)return;o.innerHTML="";const l=F(e),s=M(e.dataset.tablebergHeader),i=M(e.dataset.tablebergFooter);let c=-1,u=null;for(const e of a){const t=$(e);c!==t&&(c=t,u=document.createElement("tr"),z(u,I(t,l,s,i)),o.appendChild(u)),u?.appendChild(e)}}function j(){!function(){const e=Array.from(document.querySelectorAll(".wp-block-tableberg[data-tableberg-responsive='true']"));if(0===e.length)return;const t=()=>{e.forEach(e=>{!function(e){const t=function(e){const t=O(e,"mobile"),r=O(e,"tablet"),n=window.innerWidth;return t.enabled&&n<=t.maxWidth?t:r.enabled&&n<=r.maxWidth?r:null}(e);if(!t||""===t.mode)return void W(e);if("scroll"===t.mode)return function(e){"scroll"!==e.dataset.tablebergLast&&(e.dataset.tablebergLast&&W(e),e.dataset.tablebergLast="scroll",_(e)?.classList.add("tableberg-scroll-x"))}(e),void e.dispatchEvent(new CustomEvent(R));const r=`stack-${t.transpose?"transpose":"normal"}-${t.stackCount}-${t.repeatFirstCol?"repeat-first-col":"none"}`;t.transpose?function(e,t,r,n){if(e.dataset.tablebergLast===n)return;W(e),q(e,"tableberg-rowstack-table"),e.dataset.tablebergLast=n;const a=e.querySelector("colgroup");a&&(a.style.display="none");const o=e.tBodies.item(0);if(!o)return;const l=Array.from(e.querySelectorAll("th, td"));o.innerHTML="";const s=M(e.dataset.tablebergHeader),i=M(e.dataset.tablebergFooter),c=F(e),u=P(e),d=[],b=t?Math.max(2,r):Math.max(1,r);if(t)for(const e of l){if($(e)>0)break;d.push(e)}const f=new Map;for(const e of l){const r=$(e),n=B(e);H(e,I(r,c,s,i));const a=f.get(n);if(!a){const t=document.createElement("tr");f.set(n,{count:1,rowElement:t}),t.appendChild(e),o.appendChild(t);continue}if(a.count>=b){const r=document.createElement("tr");let a=1;if(t&&d[n]){const e=d[n].cloneNode(!0);e.setAttribute("data-tableberg-tmp","1"),r.appendChild(e),a+=1}r.appendChild(e),o.appendChild(r),f.set(n,{count:a,rowElement:r});continue}a.count+=1,a.rowElement.appendChild(e)}u>0&&(e.dataset.tablebergResponsiveColumns=String(u))}(e,t.repeatFirstCol,t.stackCount,r):function(e,t,r,n){const a=e.dataset.tablebergLast;if(a===n)return;W(e),e.dataset.tablebergLast=n,q(e,"tableberg-colstack-table");let o=Array.from(e.querySelectorAll("th, td"));a&&a.includes("stack-row")&&o.sort((e,t)=>{const r=$(e)-$(t);return 0!==r?r:B(e)-B(t)});const l=e.tBodies.item(0);if(!l)return;l.innerHTML="";const s=F(e),i=P(e),c=t?Math.max(2,r):Math.max(1,r),u=t?Math.max(1,c-1):c,d=M(e.dataset.tablebergHeader),b=M(e.dataset.tablebergFooter),f=t?i-1:i;if(f<1)return;const g=s*Math.ceil(f/u),h=Array.from({length:g},()=>""),p=e=>{H(e,I($(e),s,d,b))};if(t){const e=o.filter(e=>0===B(e)),t=o.filter(e=>0!==B(e)),r=[];e.forEach(e=>{r.push(e);const t=k(e.getAttribute("rowspan")||void 0,1);for(let e=1;e<t;e++)r.push("gap")}),o=t;for(let e=0;e<g;e++){const t=r[e%s];t&&"gap"!==t&&(e>s-1&&t.setAttribute("data-tableberg-tmp","1"),p(t),h[e]+=t.outerHTML)}}o.forEach(e=>{const r=t?B(e)-1:B(e),n=$(e),a=s*(Math.ceil((r+1)/u)-1)+n;p(e),a>=0&&a<h.length&&(h[a]+=e.outerHTML)});let m="";for(let e=0;e<g;e++){let t;t=d&&e%s===0?"header":b&&e%s===s-1?"footer":e%2==0?"even-row":"odd-row",m+=`<tr class="tableberg-${t}">${h[e]}</tr>`}const E=e.querySelector("colgroup");E&&(E.style.display="none"),l.innerHTML=m}(e,t.repeatFirstCol,t.stackCount,r),e.dispatchEvent(new CustomEvent(R))}(e)})};let r;t(),window.addEventListener("resize",()=>{r&&window.clearTimeout(r),r=window.setTimeout(()=>{t()},120)})}(),Boolean(function(){if("undefined"!=typeof globalThis){const e=globalThis.TABLEBERG_CFG;if(e)return e}if("undefined"!=typeof window)try{const e=window.parent?.TABLEBERG_CFG;if(e)return e}catch{}return{}}().IS_PRO)&&(function(){const e=Array.from(document.querySelectorAll(".wp-block-tableberg[data-tableberg-sortable='true']"));for(const t of e)d(t)}(),function(){const e=Array.from(document.querySelectorAll(".wp-block-tableberg[data-tableberg-search-enabled='true']"));for(const t of e)w(t)}(),Array.from(document.querySelectorAll(".wp-block-tableberg[data-tableberg-pagination]")).forEach(x))}"loading"===document.readyState?document.addEventListener("DOMContentLoaded",j):j()})();