@xiee/utils
Advanced tools
Comparing version 1.13.46 to 1.13.47
@@ -8,3 +8,3 @@ // move elements into page boxes such that each box contains as many elements as | ||
const tpl = d.createElement('div'), book = $$('h1').length > 1; | ||
const tpl = d.createElement('div'), book = $$('h1').length > 1, fr_cls = 'pagesjs-fragmented'; | ||
tpl.className = 'pagesjs-page'; | ||
@@ -54,2 +54,3 @@ tpl.innerHTML = `<div class="pagesjs-header"></div> | ||
if (!(is_code && container) && box.scrollHeight <= H) return; | ||
el.classList.add(fr_cls); | ||
const box_cur = page || box, el2 = el.cloneNode(); // shallow clone (wrapper only) | ||
@@ -96,4 +97,6 @@ // add the clone to current box, and move original el to next box | ||
} | ||
const el2_empty = removeBlank(el2); | ||
// if the clone is empty, remove it, otherwise keep fragmenting the remaining el | ||
if (!removeBlank(el2) || is_code || prev) fragment(container ? parent : el); | ||
el2_empty && el.classList.remove(fr_cls); | ||
if (!el2_empty || is_code || prev) fragment(container ? parent : el); | ||
} | ||
@@ -100,0 +103,0 @@ |
@@ -1,2 +0,2 @@ | ||
(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,l=[];function d(e){return e&&!t(".pagesjs-body",e)&&e.insertAdjacentHTML("afterbegin",a.innerHTML),i=e||a.cloneNode(!0),o=i.children[1],l.length&&i.classList.add(...l),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(d(e)),void(r(e)>3&&(o.append(...[...e.children].slice(3)),i.after(d())));if(i.scrollHeight>c){const[e,t]=[i,o];e.after(d()),r(t)>1&&o.append(t.lastChild)}o.append(e),g(e)}function g(e,t,n,a){const s=e.tagName,l="CODE"===s;if((!l||!t)&&i.scrollHeight<=c)return;const p=a||i,h=e.cloneNode();if(t?t.append(h):(o.append(h),p.after(d()),o.append(e)),"PRE"===s){const t=e.firstElementChild;"CODE"==t?.tagName&&/\n/.test(t.innerHTML)&&g(t,h,e,p)}else"DIV"===s&&1===r(e)&&g(e.firstElementChild,h,e,p);const u=h.previousElementSibling;if(["UL","OL","BLOCKQUOTE"].includes(s)&&r(e)>1)for(;;){const t=e.firstChild;if(!t)break;if(h.append(t),p.scrollHeight>c){(u||r(h)>1)&&e.insertBefore(t,e.firstChild),"OL"===s&&(e.start+=r(h));break}}if(l){const t=e.innerHTML.split("\n"),r=[];for(let e of t)if(r.push(e),h.innerHTML=r.join("\n"),p.scrollHeight>c){r.pop(),h.innerHTML=r.join("\n");break}if(r.length>0&&(e.innerHTML=t.slice(r.length).join("\n"),f(n)))return}(!f(h)||l||u)&&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",d()),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"),[t(".frontmatter"),t("#TOC"),t(".abstract")].forEach((e=>{e&&(p(e),s&&i.after(d()))})),n(".body").forEach((e=>{l=["chapter","appendix"].filter((t=>e.classList.contains(t))),s&&(""===i.innerText?d(i):i.after(d())),[...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 l;[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?(l=t,e.children[1].after(t)):(l.append(...t.children),t.remove())}))})),n('#TOC a[href^="#"]').forEach((e=>{const n=t(`.pagesjs-page:has(#${CSS.escape(e.getAttribute("href").replace(/^#/,""))}) .pagesjs-header`);e.dataset.pageNumber=n?n.dataset.pageNumber:""}))}addEventListener("beforeprint",E);let L=sessionStorage.getItem("pagesjs");L&&E(),addEventListener("keypress",(e=>"p"===e.key&&(E(),L=L?"":"1",sessionStorage.setItem("pagesjs",L),L||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 s=e.createElement("div"),a=n("h1").length>1,i="pagesjs-fragmented";s.className="pagesjs-page",s.innerHTML='<div class="pagesjs-header"></div>\n<div class="pagesjs-body"></div>\n<div class="pagesjs-footer"></div>';let o,c,l,d=[];function f(e){return e&&!t(".pagesjs-body",e)&&e.insertAdjacentHTML("afterbegin",s.innerHTML),o=e||s.cloneNode(!0),c=o.children[1],d.length&&o.classList.add(...d),o}function p(e){if(!e)return!1;const t=""===e.innerText.trim();return t&&e.remove(),t}function g(e){if(e.classList.contains("pagesjs-page"))return o.after(f(e)),void(r(e)>3&&(c.append(...[...e.children].slice(3)),o.after(f())));if(o.scrollHeight>l){const[e,t]=[o,c];e.after(f()),r(t)>1&&c.append(t.lastChild)}c.append(e),h(e)}function h(e,t,n,s){const a=e.tagName,d="CODE"===a;if((!d||!t)&&o.scrollHeight<=l)return;e.classList.add(i);const g=s||o,u=e.cloneNode();if(t?t.append(u):(c.append(u),g.after(f()),c.append(e)),"PRE"===a){const t=e.firstElementChild;"CODE"==t?.tagName&&/\n/.test(t.innerHTML)&&h(t,u,e,g)}else"DIV"===a&&1===r(e)&&h(e.firstElementChild,u,e,g);const m=u.previousElementSibling;if(["UL","OL","BLOCKQUOTE"].includes(a)&&r(e)>1)for(;;){const t=e.firstChild;if(!t)break;if(u.append(t),g.scrollHeight>l){(m||r(u)>1)&&e.insertBefore(t,e.firstChild),"OL"===a&&(e.start+=r(u));break}}if(d){const t=e.innerHTML.split("\n"),r=[];for(let e of t)if(r.push(e),u.innerHTML=r.join("\n"),g.scrollHeight>l){r.pop(),u.innerHTML=r.join("\n");break}if(r.length>0&&(e.innerHTML=t.slice(r.length).join("\n"),p(n)))return}const b=p(u);b&&e.classList.remove(i),(!b||d||m)&&h(t?n:e)}function u(e){return e&&(e.dataset.shortTitle||e.innerText)}const m=u(t("h1.title, .frontmatter h1, .title, h1")),b=(a?"h1":"h2")+":not(.frontmatter *)",L=["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"),a&&r.add("page-book"),e.body.insertAdjacentElement("afterbegin",f()),l=o.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"),[t(".frontmatter"),t("#TOC"),t(".abstract")].forEach((e=>{e&&(g(e),a&&o.after(f()))})),n(".body").forEach((e=>{d=["chapter","appendix"].filter((t=>e.classList.contains(t))),a&&(""===o.innerText?f(o):o.after(f())),[...e.children].map(g),p(e.parentNode),p(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 s,i=0;n(".pagesjs-page").forEach((e=>{if(p(e))return;if(a){if(t(".frontmatter",e))return;t(b,e)&&(s="")}const r=function(e){let t=+e.dataset.pagesOffset;if(t)return t;const r=e.scrollHeight;if(t=Math.ceil(r/l),t<=1)return t;const s=L.concat([...n("thead",e)].map((e=>+e.offsetHeight))).reduce(((e,t)=>e+t));if(!s)return t;function a(){return Math.ceil((r+(t-1)*s)/l)}let i=a();for(;i>t;)t=i,i=a();return t}(e);r>1&&e.classList.add("page-multiple"),i+=r,e.classList.add("page-"+(i%2==0?"even":"odd"));const o={pageNumber:i,mainTitle:m,pageTitle:s};let c;[e.children[0],e.children[2]].forEach((e=>{for(const t in o)o[t]&&(e.dataset[t]=o[t])})),s=u([...n(b,e)].pop())||s,n(".footnotes",e).forEach(((t,n)=>{0===n?(c=t,e.children[1].after(t)):(c.append(...t.children),t.remove())}))})),n('#TOC a[href^="#"]').forEach((e=>{const n=t(`.pagesjs-page:has(#${CSS.escape(e.getAttribute("href").replace(/^#/,""))}) .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); | ||
//# sourceMappingURL=pages.min.js.map |
{ | ||
"name": "@xiee/utils", | ||
"version": "1.13.46", | ||
"version": "1.13.47", | ||
"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
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
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
234154
192
2818