@xiee/utils 1.14.2 → 1.14.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/js/pages.js CHANGED
@@ -8,10 +8,9 @@
8
8
  const tpl = d.createElement('div'), book = $$('h1').length > 1, boxes = [],
9
9
  fr_tag = ['TABLE', 'UL', 'OL', 'BLOCKQUOTE'],
10
10
  fr_cls = 'pagesjs-fragmented', fr_1 = 'fragment-first', fr_2 = 'fragment-last',
11
- tb = ['top', 'bottom'].map(i => {
12
- const v = getComputedStyle(d.documentElement).getPropertyValue(`--paper-margin-${i}`);
13
- return parseFloat(v) || 0;
14
- }); // top/bottom page margin
11
+ tb = ['top', 'bottom'].map(i =>
12
+ parseFloat(getComputedStyle(d.documentElement).getPropertyValue(`--paper-margin-${i}`)) || 0
13
+ ); // top/bottom page margin
15
14
  tpl.className = 'pagesjs-page';
16
15
  tpl.innerHTML = `<div class="pagesjs-header"></div>
17
16
  <div class="pagesjs-body"></div>
@@ -39,7 +38,8 @@
39
38
  }
40
39
  function removeBlank(el) {
41
40
  if (!el || el.tagName === 'BODY') return false;
42
- const v = !el.innerText.trim();
41
+ // for <p>, don't treat it as empty unless its HTML is empty
42
+ const v = !(el.tagName === 'P' ? el.innerHTML : el.innerText).trim();
43
43
  v && el.remove();
44
44
  return v;
45
45
  }
@@ -69,8 +69,7 @@
69
69
  function breakable(el) {
70
70
  l_code = [];
71
71
  const t = el.tagName, c = el.firstElementChild;
72
- if (fr_tag.includes(t)) return true;
73
- if (t === 'P') return el.innerText.trim() && !el.matches(':has(img)');
72
+ if (t === 'P' || fr_tag.includes(t)) return true;
74
73
  if (t === 'DIV') {
75
74
  const cs = el.children;
76
75
  return (cs.length === 1 && fr_tag.includes(c?.tagName)) ||
@@ -90,10 +89,13 @@
90
89
  function fragment(el, container, parent) {
91
90
  const tag = el.tagName, cls = el.classList, frag = cls.contains(fr_cls);
92
91
  parent ? cls.add(fr_cls) : (frag ? cls.remove(fr_1) : cls.add(fr_cls, fr_1));
93
- const el2 = el.cloneNode(); // shallow clone (wrapper only)
92
+ let el2 = el.cloneNode(); // shallow clone (wrapper only)
94
93
  (container || box_body).append(el2);
95
- if (tag === 'P') splitP(el, el2);
96
- const prev = el2.previousElementSibling;
94
+ if (tag === 'P') {
95
+ // fragmentation occurs in el instead of the clone el2, so swap them
96
+ splitP(el, el2) || ([el, el2] = [el2, el]);
97
+ }
98
+ const prev = el2.previousElementSibling || container?.previousElementSibling;
97
99
  function fragChildren(action) {
98
100
  for (let item of [...el.children]) {
99
101
  el2.append(item);
@@ -121,13 +123,13 @@
121
123
  }
122
124
  } else if (tag === 'TABLE') {
123
125
  // when el has no rows left and el2 is not empty, clear el
124
- const has_rows = splitTable(el, el2);
126
+ const has_rows = splitTable(el, el2, prev);
125
127
  el2.innerHTML && (has_rows ? nextPage() : (el.innerHTML = ''));
126
128
  } else {
127
129
  // keep moving el's first item to el2 until page height > H
128
130
  fr_tag.slice(1).includes(tag) && fragChildren(item => {
129
131
  // move item back to el if the clone el2 is not the only element on page or has more than one child
130
- (prev || nChild(el2) > 1 || container?.previousElementSibling) && el.prepend(item);
132
+ (prev || nChild(el2) > 1) && el.prepend(item);
131
133
  // update the start number of <ol> on next page
132
134
  tag === 'OL' && (el.start += nChild(el2));
133
135
  // don't open new page if el2 is empty (will open one below when testing el2_empty)
@@ -153,7 +155,7 @@
153
155
  if ((!el2_empty || prev) && !parent) fragment(el);
154
156
  }
155
157
  // split table rows
156
- function splitTable(el, el2) {
158
+ function splitTable(el, el2, prev) {
157
159
  const tb = el.tBodies[0], tb2 = tb.cloneNode(), rows = [...tb.rows], th = el.tHead;
158
160
  el2.append(tb2);
159
161
  // copy table header and footer
@@ -162,8 +164,9 @@
162
164
  const row = rows[i];
163
165
  tb2.append(row);
164
166
  if (box.offsetHeight > H) {
167
+ if (i > 0 || prev) tb.prepend(row);
165
168
  // clear the clone if current page can't fit even one row
166
- tb.prepend(row); if (i === 0) el2.innerHTML = '';
169
+ if (i === 0 && prev) el2.innerHTML = '';
167
170
  break;
168
171
  }
169
172
  }
@@ -198,41 +201,48 @@
198
201
  if (!el.parentNode) {
199
202
  box_body.append(el); // move el into DOM to measure chars if removed
200
203
  // see if we don't need to split it now
201
- if (box.scrollHeight <= H) {
202
- el2.innerHTML = el.innerHTML; el.innerHTML = ''; return;
203
- }
204
+ if (box.scrollHeight <= H) return;
204
205
  }
205
- const r = d.createRange(), ends = [];
206
+ const r = d.createRange(), ends = [{node: el, i: 0}];
206
207
  // find the break position of each line (exclude block elements like footnotes)
207
- const walker = d.createTreeWalker(el, NodeFilter.SHOW_TEXT);
208
+ const walker = d.createTreeWalker(el, NodeFilter.SHOW_TEXT | NodeFilter.SHOW_ELEMENT);
208
209
  let node, prev;
210
+ function collectEnds(el, i) {
211
+ const rect = el.getBoundingClientRect();
212
+ // if the previous el is at top-right of current el, assume line
213
+ // ends before current el (TODO: how about RTL languages?)
214
+ prev && prev.bottom <= rect.top && prev.right > rect.left && ends.push({node, i});
215
+ prev = rect;
216
+ }
209
217
  while (node = walker.nextNode()) {
210
- const p = node.parentNode;
211
- if (p !== el && p.closest('p div')) continue;
212
- const txt = node.textContent;
213
- if (txt.trim()) for (let i = 0; i < txt.length; i++) {
214
- r.setStart(node, i); r.setEnd(node, i + 1);
215
- const rect = r.getBoundingClientRect();
216
- // if the previous char is at top-right of current char, assume line
217
- // ends before current char (TODO: how about RTL languages?)
218
- prev && prev.bottom <= rect.top && prev.right > rect.left && ends.push({node, i});
219
- prev = rect;
218
+ if (node.tagName) {
219
+ if (node.tagName === 'DIV') {
220
+ node = walker.nextSibling(); // skip DIVs
221
+ if (!node) break;
222
+ }
223
+ if (node.firstChild) continue; // for element nodes, traverse to bottom
224
+ }
225
+ if (node.tagName) {
226
+ collectEnds(node, -1);
227
+ } else {
228
+ const txt = node.textContent;
229
+ if (txt.trim()) for (let i = 0; i < txt.length; i++) {
230
+ r.setStart(node, i); r.setEnd(node, i + 1); collectEnds(r, i);
231
+ }
220
232
  }
221
233
  }
222
- el.remove();
223
- ends.push({node: el, i: el.childNodes.length});
224
- r.setStart(el, 0); // start at beginning of paragraph
225
- function fillLine(i, done) {
226
- el2.innerHTML = '';
227
- if (i < 0) return;
228
- const loc = ends[i]; r.setEnd(loc.node, loc.i);
229
- el2.append(r.cloneContents());
230
- done && (r.deleteContents(), nextPage());
234
+ if (ends.length < 2) {
235
+ el.remove(); nextPage(); return 1; // single-line paragraph
231
236
  }
232
- for (let i = 0; i < ends.length; i++) {
233
- fillLine(i);
234
- if (box.scrollHeight > H) {
235
- fillLine(i - 1, true); break;
237
+ el2.remove();
238
+ // remove lines from the end of paragraph
239
+ for (let i = ends.length - 1; i >= 0; i--) {
240
+ const loc = ends[i];
241
+ loc.i < 0 ? r.setStartBefore(loc.node) : r.setStart(loc.node, loc.i);
242
+ r.setEnd(el, el.childNodes.length);
243
+ el2.prepend(r.extractContents());
244
+ if (box.scrollHeight <= H) {
245
+ nextPage(); break;
236
246
  }
237
247
  }
238
248
  }
@@ -255,10 +265,10 @@
255
265
  // consider top/bottom page margin and table headers (which may be repeated on each page)
256
266
  const m = tb.concat([...$$('thead', box)].map(el => +el.offsetHeight)).reduce((m1, m2) => m1 + m2);
257
267
  if (!m) return n;
258
- function newPages() { return Math.ceil((h + (n - 1) * m)/H); }
259
- let n2 = newPages();
268
+ function nPages() { return Math.ceil((h + (n - 1) * m)/H); }
269
+ let n2 = nPages();
260
270
  while (n2 > n) {
261
- n = n2; n2 = newPages();
271
+ n = n2; n2 = nPages();
262
272
  }
263
273
  return n;
264
274
  }
@@ -299,8 +309,9 @@
299
309
  // temporarily move all elements out of DOM (to speed up rendering single pages)
300
310
  const els = [];
301
311
  $$('.body').forEach(el => {
302
- // move <style> into <head> so it can be applied regardless of its presence in <body>
303
- const ch = [...el.children].filter(el => el.tagName !== 'STYLE' || d.head.append(el));
312
+ // move <style>/<link> into <head> so styles can be applied globally
313
+ const ch = [...el.children]
314
+ .filter(el => !['STYLE', 'LINK'].includes(el.tagName) || d.head.append(el));
304
315
  els.push(ch); ch.forEach(el => el.remove());
305
316
  });
306
317
  // iteratively add elements to pages
package/js/pages.min.js CHANGED
@@ -1,2 +1,2 @@
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 s=e.createElement("div"),i=n("h1").length>1,a=[],o=["TABLE","UL","OL","BLOCKQUOTE"],c="pagesjs-fragmented",l="fragment-first",d=["top","bottom"].map((t=>{const n=getComputedStyle(e.documentElement).getPropertyValue(`--paper-margin-${t}`);return parseFloat(n)||0}));s.className="pagesjs-page",s.innerHTML='<div class="pagesjs-header"></div>\n<div class="pagesjs-body"></div>\n<div class="pagesjs-footer"></div>';let f,p,g,h,u,m=[],E=[];function T(e){return e&&!t(".pagesjs-body",e)&&e.insertAdjacentHTML("afterbegin",s.innerHTML),f=e||s.cloneNode(!0),p=f.children[1],f.classList.add(...m),a.includes(f)||a.push(f),f}function L(e,t){const n=f;n.after(T(e)),t&&t(),H(n)}function H(e){const t=e.scrollHeight;if(t>g&&!e.dataset.pagesOffset){const r=function(e,t){let r=+e.dataset.pagesOffset;if(r)return r;if(r=Math.ceil(t/g),r<=1)return r;const s=d.concat([...n("thead",e)].map((e=>+e.offsetHeight))).reduce(((e,t)=>e+t));if(!s)return r;function i(){return Math.ceil((t+(r-1)*s)/g)}let a=i();for(;a>r;)r=a,a=i();return r}(e,t);r>1&&(e.dataset.pagesOffset=r)}e.remove()}function b(e){if(!e||"BODY"===e.tagName)return!1;const t=!e.innerText.trim();return t&&e.remove(),t}function v(e){e.classList.contains("pagesjs-page")?L(e,(()=>r(e)>3&&(p.append(...[...e.children].slice(3)),L()))):(e.innerText.trim()&&g-f.scrollHeight<h&&L(),p.append(e),f.scrollHeight>g&&(!function(e){E=[];const t=e.tagName,n=e.firstElementChild;if(o.includes(t))return!0;if("P"===t)return e.innerText.trim()&&!e.matches(":has(img)");if("DIV"===t){const t=e.children;return 1===t.length&&o.includes(n?.tagName)||[...t].filter((e=>"TABLE"===e.tagName)).length}if("PRE"!==t)return!1;if("CODE"!==n?.tagName)return!1;E=n.innerHTML.replace(/\n$/,"").split("\n");const r=E.length;return!(r<2)&&(u=n.offsetHeight/r,n.innerHTML="",!0)}(e)?L(0,(()=>p.append(e))):("P"!==e.tagName&&e.remove(),j(e))))}function N(e,t){e.innerHTML=E.slice(0,t).join("\n")}function j(t,n,s){const i=t.tagName,a=t.classList,d=a.contains(c);s?a.add(c):d?a.remove(l):a.add(c,l);const h=t.cloneNode();(n||p).append(h),"P"===i&&function(t,n){if(!t.parentNode&&(p.append(t),f.scrollHeight<=g))return n.innerHTML=t.innerHTML,void(t.innerHTML="");const r=e.createRange(),s=[],i=e.createTreeWalker(t,NodeFilter.SHOW_TEXT);let a,o;for(;a=i.nextNode();){const e=a.parentNode;if(e!==t&&e.closest("p div"))continue;const n=a.textContent;if(n.trim())for(let e=0;e<n.length;e++){r.setStart(a,e),r.setEnd(a,e+1);const t=r.getBoundingClientRect();o&&o.bottom<=t.top&&o.right>t.left&&s.push({node:a,i:e}),o=t}}function c(e,t){if(n.innerHTML="",e<0)return;const i=s[e];r.setEnd(i.node,i.i),n.append(r.cloneContents()),t&&(r.deleteContents(),L())}t.remove(),s.push({node:t,i:t.childNodes.length}),r.setStart(t,0);for(let e=0;e<s.length;e++)if(c(e),f.scrollHeight>g){c(e-1,!0);break}}(t,h);const m=h.previousElementSibling;function T(e){for(let n of[...t.children])if(h.append(n),f.scrollHeight>g){e(n);break}}if("DIV"===i)T((e=>{t.prepend(e),o.includes(e.tagName)?j(e,h,t):r(h)&&L()}));else if("PRE"===i)j(t.firstElementChild,h,t);else if("CODE"===i){const e=function(e){let t=i1=1,n=E.length,r=n+2;const s=[];for(;r>i1+1;){N(e,t);const i=g-f.offsetHeight;if(0===i)return t;if(i<0){if(t<=1)return 0;r=t}else{if(t>=n)return t;i1=t}s.push(t);const a=t+Math.round(i/u);t=s.includes(a)?t+(i>0?1:-1):a,i>0&&t>=n&&(r=n+2,t=n)}return i1}(h);N(h,e),E.splice(0,e),e>0&&(""===E.join("").trim()?E=[]:L())}else if("TABLE"===i){const e=function(e,t){const n=e.tBodies[0],r=n.cloneNode(),s=[...n.rows],i=e.tHead;t.append(r),[i,e.tFoot].forEach((e=>e&&t.append(e.cloneNode(!0))));for(let e=0;e<s.length;e++){const i=s[e];if(r.append(i),f.offsetHeight>g){n.prepend(i),0===e&&(t.innerHTML="");break}}return n.rows.length}(t,h);h.innerHTML&&(e?L():t.innerHTML="")}else o.slice(1).includes(i)&&T((e=>{(m||r(h)>1||n?.previousElementSibling)&&t.prepend(e),"OL"===i&&(t.start+=r(h)),r(h)&&L()}));const H=!E.length&&b(t),v=b(h);if(H){const e=h.classList;s?n.classList.contains(l)&&e.remove(c):e.contains(l)?e.remove(c,l):e.add("fragment-last")}else v&&(a.remove(c,l),s||L()),v&&!m||s||j(t)}function C(e){return e&&(e.dataset.shortTitle||e.innerText)}const M=C(t("h1.title, .frontmatter h1, .title, h1")),O=(i?"h1":"h2")+":not(.frontmatter *)";function S(){if("complete"!==e.readyState)return setTimeout(S,10);const r=e.body.classList;if(r.contains("pagesjs"))return;r.add("pagesjs"),e.body.insertAdjacentElement("afterbegin",T()),g=f.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");const s=e.createElement("p"),o=f.scrollHeight;s.innerText="A",p.append(s),h=f.scrollHeight-o,s.remove(),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"}));const c=[];n(".body").forEach((t=>{const n=[...t.children].filter((t=>"STYLE"!==t.tagName||e.head.append(t)));c.push(n),n.forEach((e=>e.remove()))})),n(".frontmatter, .abstract, #TOC:not(.chapter-toc)").forEach((e=>{v(e),i&&L()})),n(".body").forEach(((e,t)=>{m=["chapter","appendix"].filter((t=>e.classList.contains(t))),i&&(""===f.innerText?T(f):L()),c[t].forEach(v),b(e.parentNode),b(e)})),H(f),r.remove("pagesjs-filling");let l,d=0;a.forEach((e=>{if(i){if(t(".frontmatter",e))return;t(O,e)&&(l="")}const r=+e.dataset.pagesOffset||1;r>1&&e.classList.add("page-multiple"),d+=r,e.classList.add("page-"+(d%2==0?"even":"odd"));const s={pageNumber:d,mainTitle:M,pageTitle:l};let a;[e.children[0],e.children[2]].forEach((e=>{for(const t in s)s[t]&&(e.dataset[t]=s[t])})),l=C([...n(O,e)].pop())||l,n(".footnotes",e).forEach(((t,n)=>{0===n?(a=t,e.children[1].after(t)):(a.append(...t.children),t.remove())}))})),e.body.prepend(...a),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",S);let y=sessionStorage.getItem("pagesjs");y&&S(),addEventListener("keypress",(e=>"p"===e.key&&(S(),y=y?"":"1",sessionStorage.setItem("pagesjs",y),y||location.reload())))})(document);
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 s=e.createElement("div"),i=n("h1").length>1,a=[],o=["TABLE","UL","OL","BLOCKQUOTE"],c="pagesjs-fragmented",l="fragment-first",d=["top","bottom"].map((t=>parseFloat(getComputedStyle(e.documentElement).getPropertyValue(`--paper-margin-${t}`))||0));s.className="pagesjs-page",s.innerHTML='<div class="pagesjs-header"></div>\n<div class="pagesjs-body"></div>\n<div class="pagesjs-footer"></div>';let f,p,g,h,u,m=[],E=[];function L(e){return e&&!t(".pagesjs-body",e)&&e.insertAdjacentHTML("afterbegin",s.innerHTML),f=e||s.cloneNode(!0),p=f.children[1],f.classList.add(...m),a.includes(f)||a.push(f),f}function T(e,t){const n=f;n.after(L(e)),t&&t(),b(n)}function b(e){const t=e.scrollHeight;if(t>g&&!e.dataset.pagesOffset){const r=function(e,t){let r=+e.dataset.pagesOffset;if(r)return r;if(r=Math.ceil(t/g),r<=1)return r;const s=d.concat([...n("thead",e)].map((e=>+e.offsetHeight))).reduce(((e,t)=>e+t));if(!s)return r;function i(){return Math.ceil((t+(r-1)*s)/g)}let a=i();for(;a>r;)r=a,a=i();return r}(e,t);r>1&&(e.dataset.pagesOffset=r)}e.remove()}function N(e){if(!e||"BODY"===e.tagName)return!1;const t=!("P"===e.tagName?e.innerHTML:e.innerText).trim();return t&&e.remove(),t}function H(e){e.classList.contains("pagesjs-page")?T(e,(()=>r(e)>3&&(p.append(...[...e.children].slice(3)),T()))):(e.innerText.trim()&&g-f.scrollHeight<h&&T(),p.append(e),f.scrollHeight>g&&(!function(e){E=[];const t=e.tagName,n=e.firstElementChild;if("P"===t||o.includes(t))return!0;if("DIV"===t){const t=e.children;return 1===t.length&&o.includes(n?.tagName)||[...t].filter((e=>"TABLE"===e.tagName)).length}if("PRE"!==t)return!1;if("CODE"!==n?.tagName)return!1;E=n.innerHTML.replace(/\n$/,"").split("\n");const r=E.length;return!(r<2)&&(u=n.offsetHeight/r,n.innerHTML="",!0)}(e)?T(0,(()=>p.append(e))):("P"!==e.tagName&&e.remove(),j(e))))}function v(e,t){e.innerHTML=E.slice(0,t).join("\n")}function j(t,n,s){const i=t.tagName,a=t.classList,d=a.contains(c);s?a.add(c):d?a.remove(l):a.add(c,l);let h=t.cloneNode();(n||p).append(h),"P"===i&&(function(t,n){if(!t.parentNode&&(p.append(t),f.scrollHeight<=g))return;const r=e.createRange(),s=[{node:t,i:0}],i=e.createTreeWalker(t,NodeFilter.SHOW_TEXT|NodeFilter.SHOW_ELEMENT);let a,o;function c(e,t){const n=e.getBoundingClientRect();o&&o.bottom<=n.top&&o.right>n.left&&s.push({node:a,i:t}),o=n}for(;a=i.nextNode();){if(a.tagName){if("DIV"===a.tagName&&(a=i.nextSibling(),!a))break;if(a.firstChild)continue}if(a.tagName)c(a,-1);else{const e=a.textContent;if(e.trim())for(let t=0;t<e.length;t++)r.setStart(a,t),r.setEnd(a,t+1),c(r,t)}}if(s.length<2)return t.remove(),T(),1;n.remove();for(let e=s.length-1;e>=0;e--){const i=s[e];if(i.i<0?r.setStartBefore(i.node):r.setStart(i.node,i.i),r.setEnd(t,t.childNodes.length),n.prepend(r.extractContents()),f.scrollHeight<=g){T();break}}}(t,h)||([t,h]=[h,t]));const m=h.previousElementSibling||n?.previousElementSibling;function L(e){for(let n of[...t.children])if(h.append(n),f.scrollHeight>g){e(n);break}}if("DIV"===i)L((e=>{t.prepend(e),o.includes(e.tagName)?j(e,h,t):r(h)&&T()}));else if("PRE"===i)j(t.firstElementChild,h,t);else if("CODE"===i){const e=function(e){let t=i1=1,n=E.length,r=n+2;const s=[];for(;r>i1+1;){v(e,t);const i=g-f.offsetHeight;if(0===i)return t;if(i<0){if(t<=1)return 0;r=t}else{if(t>=n)return t;i1=t}s.push(t);const a=t+Math.round(i/u);t=s.includes(a)?t+(i>0?1:-1):a,i>0&&t>=n&&(r=n+2,t=n)}return i1}(h);v(h,e),E.splice(0,e),e>0&&(""===E.join("").trim()?E=[]:T())}else if("TABLE"===i){const e=function(e,t,n){const r=e.tBodies[0],s=r.cloneNode(),i=[...r.rows],a=e.tHead;t.append(s),[a,e.tFoot].forEach((e=>e&&t.append(e.cloneNode(!0))));for(let e=0;e<i.length;e++){const a=i[e];if(s.append(a),f.offsetHeight>g){(e>0||n)&&r.prepend(a),0===e&&n&&(t.innerHTML="");break}}return r.rows.length}(t,h,m);h.innerHTML&&(e?T():t.innerHTML="")}else o.slice(1).includes(i)&&L((e=>{(m||r(h)>1)&&t.prepend(e),"OL"===i&&(t.start+=r(h)),r(h)&&T()}));const b=!E.length&&N(t),H=N(h);if(b){const e=h.classList;s?n.classList.contains(l)&&e.remove(c):e.contains(l)?e.remove(c,l):e.add("fragment-last")}else H&&(a.remove(c,l),s||T()),H&&!m||s||j(t)}function S(e){return e&&(e.dataset.shortTitle||e.innerText)}const C=S(t("h1.title, .frontmatter h1, .title, h1")),O=(i?"h1":"h2")+":not(.frontmatter *)";function M(){if("complete"!==e.readyState)return setTimeout(M,10);const r=e.body.classList;if(r.contains("pagesjs"))return;r.add("pagesjs"),e.body.insertAdjacentElement("afterbegin",L()),g=f.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");const s=e.createElement("p"),o=f.scrollHeight;s.innerText="A",p.append(s),h=f.scrollHeight-o,s.remove(),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"}));const c=[];n(".body").forEach((t=>{const n=[...t.children].filter((t=>!["STYLE","LINK"].includes(t.tagName)||e.head.append(t)));c.push(n),n.forEach((e=>e.remove()))})),n(".frontmatter, .abstract, #TOC:not(.chapter-toc)").forEach((e=>{H(e),i&&T()})),n(".body").forEach(((e,t)=>{m=["chapter","appendix"].filter((t=>e.classList.contains(t))),i&&(""===f.innerText?L(f):T()),c[t].forEach(H),N(e.parentNode),N(e)})),b(f),r.remove("pagesjs-filling");let l,d=0;a.forEach((e=>{if(i){if(t(".frontmatter",e))return;t(O,e)&&(l="")}const r=+e.dataset.pagesOffset||1;r>1&&e.classList.add("page-multiple"),d+=r,e.classList.add("page-"+(d%2==0?"even":"odd"));const s={pageNumber:d,mainTitle:C,pageTitle:l};let a;[e.children[0],e.children[2]].forEach((e=>{for(const t in s)s[t]&&(e.dataset[t]=s[t])})),l=S([...n(O,e)].pop())||l,n(".footnotes",e).forEach(((t,n)=>{0===n?(a=t,e.children[1].after(t)):(a.append(...t.children),t.remove())}))})),e.body.prepend(...a),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",M);let y=sessionStorage.getItem("pagesjs");y&&M(),addEventListener("keypress",(e=>"p"===e.key&&(M(),y=y?"":"1",sessionStorage.setItem("pagesjs",y),y||location.reload())))})(document);
2
2
  //# sourceMappingURL=pages.min.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["d","$","s","el","querySelector","$$","querySelectorAll","nChild","childElementCount","tpl","createElement","book","length","boxes","fr_tag","fr_cls","fr_1","tb","map","i","v","getComputedStyle","documentElement","getPropertyValue","parseFloat","className","innerHTML","box","box_body","H","H_min","h_code","box_cls","l_code","newPage","insertAdjacentHTML","cloneNode","children","classList","add","includes","push","nextPage","callback","cur","after","finish","h","scrollHeight","dataset","pagesOffset","n","Math","ceil","m","concat","offsetHeight","reduce","m1","m2","newPages","n2","calcPages","remove","removeBlank","tagName","innerText","trim","fill","contains","append","slice","t","c","firstElementChild","matches","cs","filter","replace","split","n_code","breakable","fragment","fillCode","join","container","parent","tag","cls","frag","el2","parentNode","r","createRange","ends","walker","createTreeWalker","NodeFilter","SHOW_TEXT","node","prev","nextNode","p","closest","txt","textContent","setStart","setEnd","rect","getBoundingClientRect","bottom","top","right","left","fillLine","done","loc","cloneContents","deleteContents","childNodes","splitP","previousElementSibling","fragChildren","action","item","prepend","i1","i2","sols","delta","i3","round","splitCode","splice","has_rows","tBodies","tb2","rows","th","tHead","tFoot","forEach","row","splitTable","start","el_empty","el2_empty","cls2","shortTitle","main","ps","paginate","readyState","setTimeout","body","insertAdjacentElement","clientHeight","window","innerHeight","H0","a","nextSibling","pageNumber","els","ch","head","page_title","N","info","mainTitle","pageTitle","ft","key","pop","CSS","escape","getAttribute","addEventListener","pg","sessionStorage","getItem","e","setItem","location","reload","document"],"sources":["pages.js"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["d","$","s","el","querySelector","$$","querySelectorAll","nChild","childElementCount","tpl","createElement","book","length","boxes","fr_tag","fr_cls","fr_1","tb","map","i","parseFloat","getComputedStyle","documentElement","getPropertyValue","className","innerHTML","box","box_body","H","H_min","h_code","box_cls","l_code","newPage","insertAdjacentHTML","cloneNode","children","classList","add","includes","push","nextPage","callback","cur","after","finish","h","scrollHeight","dataset","pagesOffset","n","Math","ceil","m","concat","offsetHeight","reduce","m1","m2","nPages","n2","calcPages","remove","removeBlank","tagName","v","innerText","trim","fill","contains","append","slice","t","c","firstElementChild","cs","filter","replace","split","n_code","breakable","fragment","fillCode","join","container","parent","tag","cls","frag","el2","parentNode","r","createRange","ends","node","walker","createTreeWalker","NodeFilter","SHOW_TEXT","SHOW_ELEMENT","prev","collectEnds","rect","getBoundingClientRect","bottom","top","right","left","nextNode","nextSibling","firstChild","txt","textContent","setStart","setEnd","loc","setStartBefore","childNodes","prepend","extractContents","splitP","previousElementSibling","fragChildren","action","item","i1","i2","sols","delta","i3","round","splitCode","splice","has_rows","tBodies","tb2","rows","th","tHead","tFoot","forEach","row","splitTable","start","el_empty","el2_empty","cls2","shortTitle","main","ps","paginate","readyState","setTimeout","body","insertAdjacentElement","clientHeight","window","innerHeight","p","H0","a","pageNumber","els","ch","head","page_title","N","info","mainTitle","pageTitle","ft","key","pop","CSS","escape","getAttribute","addEventListener","pg","sessionStorage","getItem","e","setItem","location","reload","document"],"sources":["pages.js"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xiee/utils",
3
- "version": "1.14.2",
3
+ "version": "1.14.4",
4
4
  "description": "Miscellaneous tools and utilities to manipulate HTML pages",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"