@xiee/utils
Advanced tools
Comparing version 1.13.28 to 1.13.29
@@ -107,2 +107,5 @@ // move elements into page boxes such that each box contains as many elements as | ||
function paginate() { | ||
// we need to wait for all resources to be fully loaded before paginating | ||
if (d.readyState !== 'complete') return setTimeout(paginate, 10); | ||
const cls = d.body.classList; | ||
@@ -109,0 +112,0 @@ if (cls.contains('pagesjs')) return; // already paginated |
@@ -1,1 +0,1 @@ | ||
(e=>{function t(t,n=e){return n?.querySelector(t)}function n(t,n=e){return n?n.querySelectorAll(t):[]}function r(e){return e.childElementCount}const a=e.createElement("div"),s=n("h1").length>1;a.className="pagesjs-page",a.innerHTML='<div class="pagesjs-header"></div>\n<div class="pagesjs-body"></div>\n<div class="pagesjs-footer"></div>';let i,o,c,d=[];function l(e){return e&&!t(".pagesjs-body",e)&&e.insertAdjacentHTML("afterbegin",a.innerHTML),i=e||a.cloneNode(!0),o=i.children[1],d.length&&i.classList.add(...d),i}function f(e){if(!e)return!1;const t=""===e.innerText.trim();return t&&e.remove(),t}function p(e){if(e.classList.contains("pagesjs-page"))return i.after(l(e)),void(r(e)>3&&(o.append(...[...e.children].slice(3)),i.after(l())));if(i.scrollHeight>c){const[e,t]=[i,o];e.after(l()),r(t)>1&&o.append(t.lastChild)}o.append(e),g(e)}function g(e,t,n,a){if(i.scrollHeight<=c)return;const s=a||i,d=e.cloneNode();if(t?t.append(d):(o.append(d),s.after(l()),o.append(e)),"DIV"===e.tagName&&1===r(e)&&g(e.firstElementChild,d,e,s),["UL","BLOCKQUOTE"].indexOf(e.tagName)>-1&&r(e)>1)for(;;){const t=e.firstChild;if(!t)break;if(d.append(t),s.scrollHeight>c){(d.previousElementSibling||r(d)>1)&&e.insertBefore(t,e.firstChild);break}}f(d)||g(t?n:e)}function h(e){return e&&(e.dataset.shortTitle||e.innerText)}const u=h(t("h1.title, .frontmatter h1, .title, h1")),m=(s?"h1":"h2")+":not(.frontmatter *)",b=["top","bottom"].map((t=>+getComputedStyle(e.documentElement).getPropertyValue(`--paper-margin-${t}`).replace("px","")||0));function E(){const r=e.body.classList;if(r.contains("pagesjs"))return;r.add("pagesjs"),s&&r.add("page-book"),e.body.insertAdjacentElement("afterbegin",l()),c=i.clientHeight||window.innerHeight,n(":is(#TOC, .footnotes, .chapter-before, .chapter-after):is(.side-left, .side-right).side").forEach((e=>{e.classList.remove("side","side-left","side-right")})),r.add("pagesjs-filling"),n(".frontmatter, #TOC, .abstract").forEach((e=>(p(e),s&&i.after(l())))),n(".body").forEach((e=>{d=["chapter","appendix"].filter((t=>e.classList.contains(t))),s&&(""===i.innerText?l(i):i.after(l())),[...e.children].map(p),f(e.parentNode),f(e)})),r.remove("pagesjs-filling"),n('#TOC a[href^="#"]').forEach((t=>{const n=e.createElement("span"),r=t.firstElementChild;for(r?.classList.contains("section-number")?r.after(n):t.insertAdjacentElement("afterbegin",n);n.nextSibling;)n.append(n.nextSibling);t.insertAdjacentHTML("beforeend",'<span class="dot-leader"></span>'),t.dataset.pageNumber="000"}));let a,o=0;n(".pagesjs-page").forEach((e=>{if(f(e))return;if(s){if(t(".frontmatter",e))return;t(m,e)&&(a="")}const r=function(e){let t=+e.dataset.pagesOffset;if(t)return t;const r=e.scrollHeight;if(t=Math.ceil(r/c),t<=1)return t;const a=b.concat([...n("thead",e)].map((e=>+e.offsetHeight))).reduce(((e,t)=>e+t));if(!a)return t;function s(){return Math.ceil((r+(t-1)*a)/c)}let i=s();for(;i>t;)t=i,i=s();return t}(e);r>1&&e.classList.add("page-multiple"),o+=r,e.classList.add("page-"+(o%2==0?"even":"odd"));const i={pageNumber:o,mainTitle:u,pageTitle:a};let d;[e.children[0],e.children[2]].forEach((e=>{for(const t in i)i[t]&&(e.dataset[t]=i[t])})),a=h([...n(m,e)].pop())||a,n(".footnotes",e).forEach(((t,n)=>{0===n?(d=t,e.children[1].after(t)):(d.append(...t.children),t.remove())}))})),n('#TOC a[href^="#"]').forEach((e=>{const n=t(`.pagesjs-page:has(${e.getAttribute("href")}) .pagesjs-header`);e.dataset.pageNumber=n?n.dataset.pageNumber:""}))}addEventListener("beforeprint",E);let j=sessionStorage.getItem("pagesjs");j&&E(),addEventListener("keypress",(e=>"p"===e.key&&(E(),j=j?"":"1",sessionStorage.setItem("pagesjs",j),j||location.reload())))})(document); | ||
(e=>{function t(t,n=e){return n?.querySelector(t)}function n(t,n=e){return n?n.querySelectorAll(t):[]}function r(e){return e.childElementCount}const a=e.createElement("div"),s=n("h1").length>1;a.className="pagesjs-page",a.innerHTML='<div class="pagesjs-header"></div>\n<div class="pagesjs-body"></div>\n<div class="pagesjs-footer"></div>';let i,o,c,d=[];function l(e){return e&&!t(".pagesjs-body",e)&&e.insertAdjacentHTML("afterbegin",a.innerHTML),i=e||a.cloneNode(!0),o=i.children[1],d.length&&i.classList.add(...d),i}function f(e){if(!e)return!1;const t=""===e.innerText.trim();return t&&e.remove(),t}function p(e){if(e.classList.contains("pagesjs-page"))return i.after(l(e)),void(r(e)>3&&(o.append(...[...e.children].slice(3)),i.after(l())));if(i.scrollHeight>c){const[e,t]=[i,o];e.after(l()),r(t)>1&&o.append(t.lastChild)}o.append(e),g(e)}function g(e,t,n,a){if(i.scrollHeight<=c)return;const s=a||i,d=e.cloneNode();if(t?t.append(d):(o.append(d),s.after(l()),o.append(e)),"DIV"===e.tagName&&1===r(e)&&g(e.firstElementChild,d,e,s),["UL","BLOCKQUOTE"].indexOf(e.tagName)>-1&&r(e)>1)for(;;){const t=e.firstChild;if(!t)break;if(d.append(t),s.scrollHeight>c){(d.previousElementSibling||r(d)>1)&&e.insertBefore(t,e.firstChild);break}}f(d)||g(t?n:e)}function h(e){return e&&(e.dataset.shortTitle||e.innerText)}const u=h(t("h1.title, .frontmatter h1, .title, h1")),m=(s?"h1":"h2")+":not(.frontmatter *)",b=["top","bottom"].map((t=>+getComputedStyle(e.documentElement).getPropertyValue(`--paper-margin-${t}`).replace("px","")||0));function E(){if("complete"!==e.readyState)return setTimeout(E,10);const r=e.body.classList;if(r.contains("pagesjs"))return;r.add("pagesjs"),s&&r.add("page-book"),e.body.insertAdjacentElement("afterbegin",l()),c=i.clientHeight||window.innerHeight,n(":is(#TOC, .footnotes, .chapter-before, .chapter-after):is(.side-left, .side-right).side").forEach((e=>{e.classList.remove("side","side-left","side-right")})),r.add("pagesjs-filling"),n(".frontmatter, #TOC, .abstract").forEach((e=>(p(e),s&&i.after(l())))),n(".body").forEach((e=>{d=["chapter","appendix"].filter((t=>e.classList.contains(t))),s&&(""===i.innerText?l(i):i.after(l())),[...e.children].map(p),f(e.parentNode),f(e)})),r.remove("pagesjs-filling"),n('#TOC a[href^="#"]').forEach((t=>{const n=e.createElement("span"),r=t.firstElementChild;for(r?.classList.contains("section-number")?r.after(n):t.insertAdjacentElement("afterbegin",n);n.nextSibling;)n.append(n.nextSibling);t.insertAdjacentHTML("beforeend",'<span class="dot-leader"></span>'),t.dataset.pageNumber="000"}));let a,o=0;n(".pagesjs-page").forEach((e=>{if(f(e))return;if(s){if(t(".frontmatter",e))return;t(m,e)&&(a="")}const r=function(e){let t=+e.dataset.pagesOffset;if(t)return t;const r=e.scrollHeight;if(t=Math.ceil(r/c),t<=1)return t;const a=b.concat([...n("thead",e)].map((e=>+e.offsetHeight))).reduce(((e,t)=>e+t));if(!a)return t;function s(){return Math.ceil((r+(t-1)*a)/c)}let i=s();for(;i>t;)t=i,i=s();return t}(e);r>1&&e.classList.add("page-multiple"),o+=r,e.classList.add("page-"+(o%2==0?"even":"odd"));const i={pageNumber:o,mainTitle:u,pageTitle:a};let d;[e.children[0],e.children[2]].forEach((e=>{for(const t in i)i[t]&&(e.dataset[t]=i[t])})),a=h([...n(m,e)].pop())||a,n(".footnotes",e).forEach(((t,n)=>{0===n?(d=t,e.children[1].after(t)):(d.append(...t.children),t.remove())}))})),n('#TOC a[href^="#"]').forEach((e=>{const n=t(`.pagesjs-page:has(${e.getAttribute("href")}) .pagesjs-header`);e.dataset.pageNumber=n?n.dataset.pageNumber:""}))}addEventListener("beforeprint",E);let j=sessionStorage.getItem("pagesjs");j&&E(),addEventListener("keypress",(e=>"p"===e.key&&(E(),j=j?"":"1",sessionStorage.setItem("pagesjs",j),j||location.reload())))})(document); |
{ | ||
"name": "@xiee/utils", | ||
"version": "1.13.28", | ||
"version": "1.13.29", | ||
"description": "Miscellaneous tools and utilities to manipulate HTML pages", | ||
@@ -5,0 +5,0 @@ "scripts": { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
210016
2389