@xiee/utils 1.13.67 → 1.13.69

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/css/pages.css CHANGED
@@ -41,9 +41,7 @@
41
41
  height: var(--paper-height);
42
42
  padding: var(--paper-margin-top) var(--paper-margin-right) var(--paper-margin-bottom) var(--paper-margin-left);
43
43
  break-after: page;
44
- &:not(.pagesjs-done) {
45
- display: flex;
46
- }
44
+ display: flex;
47
45
  flex-direction: column;
48
46
  justify-content: space-between;
49
47
  overflow: hidden;
@@ -57,7 +55,7 @@
57
55
  border: none;
58
56
  padding: 0;
59
57
  margin-left: auto;
60
- &:not(.pagesjs-page:has(#TOC) ~ .pagesjs-page *)::before {
58
+ &:not(.chapter-toc):is(.fragment-first, :not(.pagesjs-fragmented))::before {
61
59
  content: "Contents";
62
60
  display: block;
63
61
  font-weight: bold;
@@ -84,12 +82,12 @@
84
82
  }
85
83
  }
86
84
  & > .pagesjs-body > .pagesjs-fragmented {
87
- &:first-child {
85
+ &:not(.fragment-first) {
88
86
  &, & .pagesjs-fragmented {
89
87
  border-top: none;
90
88
  }
91
89
  }
92
- &:last-child {
90
+ &:not(.fragment-last) {
93
91
  &, & .pagesjs-fragmented {
94
92
  border-bottom: none;
95
93
  }
package/css/pages.min.css CHANGED
@@ -1,2 +1,2 @@
1
- :root{--paper-width:210mm;--paper-height:297mm;--paper-margin-top:40px;--paper-margin-right:80px;--paper-margin-bottom:40px;--paper-margin-left:80px;--page-header-height:40px;--page-header-bottom:40px;--page-footer-height:40px;--page-footer-top:40px}@page{size:var(--paper-width)var(--paper-height);margin:0}@page multiple{margin-top:var(--paper-margin-top);margin-bottom:var(--paper-margin-bottom)}.page-multiple{page:multiple}.pagesjs{flex-wrap:wrap;justify-content:center;gap:5mm;max-width:100%;margin:5mm;padding:0;display:flex;& .frontmatter,& .chapter{min-height:unset;box-shadow:none}&>*,&:not(:has(.frontmatter)):has(.chapter-toc) #TOC:not(.chapter-toc){display:none}& .pagesjs-page{width:var(--paper-width);height:var(--paper-height);padding:var(--paper-margin-top)var(--paper-margin-right)var(--paper-margin-bottom)var(--paper-margin-left);break-after:page;flex-direction:column;justify-content:space-between;overflow:hidden;&:not(.pagesjs-done){display:flex}& img{max-width:100%}& .chapter-before,& .chapter-after,& .buttons:has(+.chapter-before){display:none}& #TOC{border:none;margin-left:auto;padding:0;&:not(.pagesjs-page:has(#TOC)~.pagesjs-page *):before{content:"Contents";margin-bottom:1em;font-size:1.5em;font-weight:700;display:block}&>ul{columns:18em}& a{display:flex;&:after{content:attr(data-page-number);align-self:end}& .section-number{margin-right:.3em}& .dot-leader{border-bottom:1px dashed;flex:1 0 2em;margin:0 1ex 1ex}}}&>.pagesjs-body>.pagesjs-fragmented{&:first-child{&,& .pagesjs-fragmented{border-top:none}}&:last-child{&,& .pagesjs-fragmented{border-bottom:none}}}& .fullwidth{float:none;max-width:none;width:var(--paper-width);margin-left:calc(0px - var(--paper-margin-left));transform:none}& .footnotes:before{content:"";border-top:1px solid;max-width:20em;display:block}&:has(.side-left,.embed-left) .pagesjs-body{padding-left:calc(0px - var(--side-margin));& .fullwidth{transform:translate(var(--side-margin))}}&:has(.side-right,.embed-right) .pagesjs-body{padding-right:calc(0px - var(--side-margin))}& .side{background:0 0;font-size:.9em}}}.pagesjs-header,.pagesjs-footer{justify-content:space-between;font-size:.9em;display:flex}.pagesjs-header{flex:0 0 var(--page-header-height);margin-bottom:var(--page-header-bottom);align-items:end;&:before{content:attr(data-main-title)}&:after{content:attr(data-page-title)}}.pagesjs-footer{flex:0 0 var(--page-footer-height);margin-top:var(--page-footer-top);align-items:start;&:before{content:" "}&:after{content:attr(data-page-number)}}.pagesjs-body{flex-grow:1;position:relative}@media only screen{.pagesjs{&:has(.pagesjs-page){background:#f7f7f7}& .pagesjs-page{background:#fff}& .page-multiple{overflow-y:auto}}.pagesjs-filling{display:block;& .pagesjs-page{height:auto;& .pagesjs-body:has(.footnotes){margin-bottom:1em}}}}@media print{.pagesjs{gap:0;margin:0;& .page-multiple{height:auto;padding-top:0;padding-bottom:0}}}
1
+ :root{--paper-width:210mm;--paper-height:297mm;--paper-margin-top:40px;--paper-margin-right:80px;--paper-margin-bottom:40px;--paper-margin-left:80px;--page-header-height:40px;--page-header-bottom:40px;--page-footer-height:40px;--page-footer-top:40px}@page{size:var(--paper-width)var(--paper-height);margin:0}@page multiple{margin-top:var(--paper-margin-top);margin-bottom:var(--paper-margin-bottom)}.page-multiple{page:multiple}.pagesjs{flex-wrap:wrap;justify-content:center;gap:5mm;max-width:100%;margin:5mm;padding:0;display:flex;& .frontmatter,& .chapter{min-height:unset;box-shadow:none}&>*,&:not(:has(.frontmatter)):has(.chapter-toc) #TOC:not(.chapter-toc){display:none}& .pagesjs-page{width:var(--paper-width);height:var(--paper-height);padding:var(--paper-margin-top)var(--paper-margin-right)var(--paper-margin-bottom)var(--paper-margin-left);break-after:page;flex-direction:column;justify-content:space-between;display:flex;overflow:hidden;& img{max-width:100%}& .chapter-before,& .chapter-after,& .buttons:has(+.chapter-before){display:none}& #TOC{border:none;margin-left:auto;padding:0;&:not(.chapter-toc):is(.fragment-first,:not(.pagesjs-fragmented)):before{content:"Contents";margin-bottom:1em;font-size:1.5em;font-weight:700;display:block}&>ul{columns:18em}& a{display:flex;&:after{content:attr(data-page-number);align-self:end}& .section-number{margin-right:.3em}& .dot-leader{border-bottom:1px dashed;flex:1 0 2em;margin:0 1ex 1ex}}}&>.pagesjs-body>.pagesjs-fragmented{&:not(.fragment-first){&,& .pagesjs-fragmented{border-top:none}}&:not(.fragment-last){&,& .pagesjs-fragmented{border-bottom:none}}}& .fullwidth{float:none;max-width:none;width:var(--paper-width);margin-left:calc(0px - var(--paper-margin-left));transform:none}& .footnotes:before{content:"";border-top:1px solid;max-width:20em;display:block}&:has(.side-left,.embed-left) .pagesjs-body{padding-left:calc(0px - var(--side-margin));& .fullwidth{transform:translate(var(--side-margin))}}&:has(.side-right,.embed-right) .pagesjs-body{padding-right:calc(0px - var(--side-margin))}& .side{background:0 0;font-size:.9em}}}.pagesjs-header,.pagesjs-footer{justify-content:space-between;font-size:.9em;display:flex}.pagesjs-header{flex:0 0 var(--page-header-height);margin-bottom:var(--page-header-bottom);align-items:end;&:before{content:attr(data-main-title)}&:after{content:attr(data-page-title)}}.pagesjs-footer{flex:0 0 var(--page-footer-height);margin-top:var(--page-footer-top);align-items:start;&:before{content:" "}&:after{content:attr(data-page-number)}}.pagesjs-body{flex-grow:1;position:relative}@media only screen{.pagesjs{&:has(.pagesjs-page){background:#f7f7f7}& .pagesjs-page{background:#fff}& .page-multiple{overflow-y:auto}}.pagesjs-filling{display:block;& .pagesjs-page{height:auto;& .pagesjs-body:has(.footnotes){margin-bottom:1em}}}}@media print{.pagesjs{gap:0;margin:0;& .page-multiple{height:auto;padding-top:0;padding-bottom:0}}}
2
2
  /*# sourceMappingURL=pages.min.css.map */
@@ -1 +1 @@
1
- {"version":3,"mappings":"AAAA,0PAYA,0DAIA,2FAIA,6BAGA,wGAQE,2DAIA,oFAGA,oQAKE,kCAMA,qBAGA,iFAGA,8CAIE,yIAOA,kBAGA,iBAEE,sDAIA,oCAGA,uEAOJ,oCACE,cACE,yCAIF,aACE,6CAKJ,gIAOA,iFAMA,wFAEE,sDAIF,2FAGA,wCAMJ,0FAKA,2GAIE,uCAGA,uCAIF,uGAIE,qBAGA,wCAIF,4CAIA,mBACE,SACE,wCAGA,gCAGA,kCAIF,+BAEE,4BAEE,qDAMN,aACE,wBAGE","sources":["pages.css"],"sourcesContent":[":root {\n --paper-width: 210mm;\n --paper-height: 297mm;\n --paper-margin-top: 40px;\n --paper-margin-right: 80px;\n --paper-margin-bottom: 40px;\n --paper-margin-left: 80px;\n --page-header-height: 40px;\n --page-header-bottom: 40px;\n --page-footer-height: 40px;\n --page-footer-top: 40px;\n}\n@page {\n size: var(--paper-width) var(--paper-height);\n margin: 0;\n}\n@page multiple {\n margin-top: var(--paper-margin-top);\n margin-bottom: var(--paper-margin-bottom);\n}\n.page-multiple {\n page: multiple;\n}\n.pagesjs {\n padding: 0;\n max-width: 100%;\n margin: 5mm;\n display: flex;\n justify-content: center;\n flex-wrap: wrap;\n gap: 5mm;\n .frontmatter, .chapter {\n min-height: unset;\n box-shadow: none;\n }\n & > *, &:not(:has(.frontmatter)):has(.chapter-toc) #TOC:not(.chapter-toc) {\n display: none;\n }\n .pagesjs-page {\n width: var(--paper-width);\n height: var(--paper-height);\n padding: var(--paper-margin-top) var(--paper-margin-right) var(--paper-margin-bottom) var(--paper-margin-left);\n break-after: page;\n &:not(.pagesjs-done) {\n display: flex;\n }\n flex-direction: column;\n justify-content: space-between;\n overflow: hidden;\n img {\n max-width: 100%;\n }\n .chapter-before, .chapter-after, .buttons:has(+ .chapter-before) {\n display: none;\n }\n #TOC {\n border: none;\n padding: 0;\n margin-left: auto;\n &:not(.pagesjs-page:has(#TOC) ~ .pagesjs-page *)::before {\n content: \"Contents\";\n display: block;\n font-weight: bold;\n font-size: 1.5em;\n margin-bottom: 1em;\n }\n & > ul {\n columns: 18em;\n }\n a {\n display: flex;\n &::after {\n content: attr(data-page-number);\n align-self: end;\n }\n .section-number {\n margin-right: .3em;\n }\n .dot-leader {\n flex: 1 0 2em;\n border-bottom: dashed 1px;\n margin: 0 1ex 1ex;\n }\n }\n }\n & > .pagesjs-body > .pagesjs-fragmented {\n &:first-child {\n &, & .pagesjs-fragmented {\n border-top: none;\n }\n }\n &:last-child {\n &, & .pagesjs-fragmented {\n border-bottom: none;\n }\n }\n }\n .fullwidth {\n float: none;\n max-width: none;\n width: var(--paper-width);\n margin-left: calc(0px - var(--paper-margin-left));\n transform: none;\n }\n .footnotes::before {\n content: \"\";\n display: block;\n max-width: 20em;\n border-top: solid 1px;\n }\n &:has(.side-left, .embed-left) .pagesjs-body {\n padding-left: calc(0px - var(--side-margin));\n .fullwidth {\n transform: translate(var(--side-margin));\n }\n }\n &:has(.side-right, .embed-right) .pagesjs-body {\n padding-right: calc(0px - var(--side-margin));\n }\n .side {\n font-size: .9em;\n background: none;\n }\n }\n}\n.pagesjs-header, .pagesjs-footer {\n font-size: .9em;\n display: flex;\n justify-content: space-between;\n}\n.pagesjs-header {\n flex: 0 0 var(--page-header-height);\n margin-bottom: var(--page-header-bottom);\n align-items: end;\n &::before {\n content: attr(data-main-title);\n }\n &::after {\n content: attr(data-page-title);\n }\n}\n.pagesjs-footer {\n flex: 0 0 var(--page-footer-height);\n margin-top: var(--page-footer-top);\n align-items: start;\n &::before {\n content: \" \";\n }\n &::after {\n content: attr(data-page-number);\n }\n}\n.pagesjs-body {\n flex-grow: 1;\n position: relative;\n}\n@media only screen {\n .pagesjs {\n &:has(.pagesjs-page) {\n background: #f7f7f7;\n }\n .pagesjs-page {\n background: white;\n }\n .page-multiple {\n overflow-y: auto;\n }\n }\n .pagesjs-filling {\n display: block;\n .pagesjs-page {\n height: auto;\n .pagesjs-body:has(.footnotes) {\n margin-bottom: 1em;\n }\n }\n }\n}\n@media print {\n .pagesjs {\n margin: 0;\n gap: 0;\n .page-multiple {\n padding-top: 0;\n padding-bottom: 0;\n height: auto;\n }\n }\n}\n"],"names":[]}
1
+ {"version":3,"mappings":"AAAA,0PAYA,0DAIA,2FAIA,6BAGA,wGAQE,2DAIA,oFAGA,iRASE,qBAGA,iFAGA,8CAIE,4JAOA,kBAGA,iBAEE,sDAIA,oCAGA,uEAOJ,oCACE,uBACE,yCAIF,sBACE,6CAKJ,gIAOA,iFAMA,wFAEE,sDAIF,2FAGA,wCAMJ,0FAKA,2GAIE,uCAGA,uCAIF,uGAIE,qBAGA,wCAIF,4CAIA,mBACE,SACE,wCAGA,gCAGA,kCAIF,+BAEE,4BAEE,qDAMN,aACE,wBAGE","sources":["pages.css"],"sourcesContent":[":root {\n --paper-width: 210mm;\n --paper-height: 297mm;\n --paper-margin-top: 40px;\n --paper-margin-right: 80px;\n --paper-margin-bottom: 40px;\n --paper-margin-left: 80px;\n --page-header-height: 40px;\n --page-header-bottom: 40px;\n --page-footer-height: 40px;\n --page-footer-top: 40px;\n}\n@page {\n size: var(--paper-width) var(--paper-height);\n margin: 0;\n}\n@page multiple {\n margin-top: var(--paper-margin-top);\n margin-bottom: var(--paper-margin-bottom);\n}\n.page-multiple {\n page: multiple;\n}\n.pagesjs {\n padding: 0;\n max-width: 100%;\n margin: 5mm;\n display: flex;\n justify-content: center;\n flex-wrap: wrap;\n gap: 5mm;\n .frontmatter, .chapter {\n min-height: unset;\n box-shadow: none;\n }\n & > *, &:not(:has(.frontmatter)):has(.chapter-toc) #TOC:not(.chapter-toc) {\n display: none;\n }\n .pagesjs-page {\n width: var(--paper-width);\n height: var(--paper-height);\n padding: var(--paper-margin-top) var(--paper-margin-right) var(--paper-margin-bottom) var(--paper-margin-left);\n break-after: page;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n overflow: hidden;\n img {\n max-width: 100%;\n }\n .chapter-before, .chapter-after, .buttons:has(+ .chapter-before) {\n display: none;\n }\n #TOC {\n border: none;\n padding: 0;\n margin-left: auto;\n &:not(.chapter-toc):is(.fragment-first, :not(.pagesjs-fragmented))::before {\n content: \"Contents\";\n display: block;\n font-weight: bold;\n font-size: 1.5em;\n margin-bottom: 1em;\n }\n & > ul {\n columns: 18em;\n }\n a {\n display: flex;\n &::after {\n content: attr(data-page-number);\n align-self: end;\n }\n .section-number {\n margin-right: .3em;\n }\n .dot-leader {\n flex: 1 0 2em;\n border-bottom: dashed 1px;\n margin: 0 1ex 1ex;\n }\n }\n }\n & > .pagesjs-body > .pagesjs-fragmented {\n &:not(.fragment-first) {\n &, & .pagesjs-fragmented {\n border-top: none;\n }\n }\n &:not(.fragment-last) {\n &, & .pagesjs-fragmented {\n border-bottom: none;\n }\n }\n }\n .fullwidth {\n float: none;\n max-width: none;\n width: var(--paper-width);\n margin-left: calc(0px - var(--paper-margin-left));\n transform: none;\n }\n .footnotes::before {\n content: \"\";\n display: block;\n max-width: 20em;\n border-top: solid 1px;\n }\n &:has(.side-left, .embed-left) .pagesjs-body {\n padding-left: calc(0px - var(--side-margin));\n .fullwidth {\n transform: translate(var(--side-margin));\n }\n }\n &:has(.side-right, .embed-right) .pagesjs-body {\n padding-right: calc(0px - var(--side-margin));\n }\n .side {\n font-size: .9em;\n background: none;\n }\n }\n}\n.pagesjs-header, .pagesjs-footer {\n font-size: .9em;\n display: flex;\n justify-content: space-between;\n}\n.pagesjs-header {\n flex: 0 0 var(--page-header-height);\n margin-bottom: var(--page-header-bottom);\n align-items: end;\n &::before {\n content: attr(data-main-title);\n }\n &::after {\n content: attr(data-page-title);\n }\n}\n.pagesjs-footer {\n flex: 0 0 var(--page-footer-height);\n margin-top: var(--page-footer-top);\n align-items: start;\n &::before {\n content: \" \";\n }\n &::after {\n content: attr(data-page-number);\n }\n}\n.pagesjs-body {\n flex-grow: 1;\n position: relative;\n}\n@media only screen {\n .pagesjs {\n &:has(.pagesjs-page) {\n background: #f7f7f7;\n }\n .pagesjs-page {\n background: white;\n }\n .page-multiple {\n overflow-y: auto;\n }\n }\n .pagesjs-filling {\n display: block;\n .pagesjs-page {\n height: auto;\n .pagesjs-body:has(.footnotes) {\n margin-bottom: 1em;\n }\n }\n }\n}\n@media print {\n .pagesjs {\n margin: 0;\n gap: 0;\n .page-multiple {\n padding-top: 0;\n padding-bottom: 0;\n height: auto;\n }\n }\n}\n"],"names":[]}
package/js/math-code.js CHANGED
@@ -1,8 +1,8 @@
1
1
  // <code>$math$</code> to \(math\), and <code>$$math$$</code> to $$math$$:
2
2
  // https://yihui.org/en/2018/07/latex-math-markdown/
3
- [...document.getElementsByTagName('code')].forEach(code => {
3
+ document.querySelectorAll(':not(pre) > code:not(.nolatex)').forEach(code => {
4
4
  // skip <pre> tags and <code> that has children or the nolatex class
5
- if (code.parentNode.tagName === 'PRE' || code.childElementCount > 0 || code.classList.contains('nolatex')) return;
5
+ if (code.childElementCount > 0) return;
6
6
  let text = code.textContent;
7
7
  if (/^\$[^$]/.test(text) && /[^$]\$$/.test(text)) {
8
8
  text = text.replace(/^\$/, '\\(').replace(/\$$/, '\\)');
@@ -1,2 +1,2 @@
1
- [...document.getElementsByTagName("code")].forEach((t=>{if("PRE"===t.parentNode.tagName||t.childElementCount>0||t.classList.contains("nolatex"))return;let e=t.textContent;/^\$[^$]/.test(e)&&/[^$]\$$/.test(e)&&(e=e.replace(/^\$/,"\\(").replace(/\$$/,"\\)"),t.textContent=e),(/^\\\((.|\s)+\\\)$/.test(e)||/^\\\[(.|\s)+\\\]$/.test(e)||/^\$(.|\s)+\$$/.test(e)||/^\\begin\{([^}]+)\}(.|\s)+\\end\{[^}]+\}$/.test(e))&&(t.outerHTML=t.innerHTML)}));
1
+ document.querySelectorAll(":not(pre) > code:not(.nolatex)").forEach((t=>{if(t.childElementCount>0)return;let e=t.textContent;/^\$[^$]/.test(e)&&/[^$]\$$/.test(e)&&(e=e.replace(/^\$/,"\\(").replace(/\$$/,"\\)"),t.textContent=e),(/^\\\((.|\s)+\\\)$/.test(e)||/^\\\[(.|\s)+\\\]$/.test(e)||/^\$(.|\s)+\$$/.test(e)||/^\\begin\{([^}]+)\}(.|\s)+\\end\{[^}]+\}$/.test(e))&&(t.outerHTML=t.innerHTML)}));
2
2
  //# sourceMappingURL=math-code.min.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["document","getElementsByTagName","forEach","code","parentNode","tagName","childElementCount","classList","contains","text","textContent","test","replace","outerHTML","innerHTML"],"sources":["math-code.js"],"mappings":"AAEA,IAAIA,SAASC,qBAAqB,SAASC,SAAQC,IAEjD,GAAgC,QAA5BA,EAAKC,WAAWC,SAAqBF,EAAKG,kBAAoB,GAAKH,EAAKI,UAAUC,SAAS,WAAY,OAC3G,IAAIC,EAAON,EAAKO,YACZ,UAAUC,KAAKF,IAAS,UAAUE,KAAKF,KACzCA,EAAOA,EAAKG,QAAQ,MAAO,OAAOA,QAAQ,MAAO,OACjDT,EAAKO,YAAcD,IAEjB,oBAAoBE,KAAKF,IAAS,oBAAoBE,KAAKF,IAC3D,gBAAgBE,KAAKF,IACrB,4CAA4CE,KAAKF,MACnDN,EAAKU,UAAYV,EAAKW,UACxB","ignoreList":[]}
1
+ {"version":3,"names":["document","querySelectorAll","forEach","code","childElementCount","text","textContent","test","replace","outerHTML","innerHTML"],"sources":["math-code.js"],"mappings":"AAEAA,SAASC,iBAAiB,kCAAkCC,SAAQC,IAElE,GAAIA,EAAKC,kBAAoB,EAAG,OAChC,IAAIC,EAAOF,EAAKG,YACZ,UAAUC,KAAKF,IAAS,UAAUE,KAAKF,KACzCA,EAAOA,EAAKG,QAAQ,MAAO,OAAOA,QAAQ,MAAO,OACjDL,EAAKG,YAAcD,IAEjB,oBAAoBE,KAAKF,IAAS,oBAAoBE,KAAKF,IAC3D,gBAAgBE,KAAKF,IACrB,4CAA4CE,KAAKF,MACnDF,EAAKM,UAAYN,EAAKO,UACxB","ignoreList":[]}
package/js/pages.js CHANGED
@@ -6,8 +6,8 @@
6
6
  function nChild(el) { return el.childElementCount; }
7
7
 
8
8
  const tpl = d.createElement('div'), book = $$('h1').length > 1, boxes = [],
9
- cd_cls = String.fromCharCode(...Array(10).fill(0).map(x => 97 + Math.random() * 26)),
10
- fr_cls = 'pagesjs-fragmented', tb = ['top', 'bottom'].map(i => {
9
+ fr_cls = 'pagesjs-fragmented', fr_1 = 'fragment-first', fr_2 = 'fragment-last',
10
+ tb = ['top', 'bottom'].map(i => {
11
11
  const v = getComputedStyle(d.documentElement).getPropertyValue(`--paper-margin-${i}`);
12
12
  return +v.replace('px', '') || 0;
13
13
  }); // top/bottom page margin
@@ -15,30 +15,36 @@
15
15
  tpl.innerHTML = `<div class="pagesjs-header"></div>
16
16
  <div class="pagesjs-body"></div>
17
17
  <div class="pagesjs-footer"></div>`;
18
- let box, box_body, H, box_cls = [];
18
+ let box, box_body, box_cls = [], box_n = 0, H, h_code, l_code = [];
19
19
  function newPage(el) {
20
+ const n = boxes.length;
21
+ // finish previous n - 1 boxes
22
+ if (n - box_n > 1) {
23
+ boxes.slice(box_n, n - 1).forEach(finish);
24
+ box_n = n - 1;
25
+ }
20
26
  el && !$('.pagesjs-body', el) && el.insertAdjacentHTML('afterbegin', tpl.innerHTML);
21
27
  box = el || tpl.cloneNode(true); box_body = box.children[1];
22
28
  box_cls.length && box.classList.add(...box_cls);
23
- boxes.push(box); // store new pages in boxes
29
+ boxes.includes(box) || boxes.push(box); // store new pages in boxes
24
30
  return box;
25
31
  }
26
- function addOffset(box) {
32
+ // compute page numbers and temporarily remove the box
33
+ function finish(box) {
27
34
  const h = box.scrollHeight;
28
35
  if (h > H && !box.dataset.pagesOffset) {
29
36
  const n = calcPages(box, h);
30
37
  if (n > 1) box.dataset.pagesOffset = n;
31
38
  }
32
- box.classList.add('pagesjs-done');
39
+ box.remove();
33
40
  }
34
- function removeBlank(el) {
41
+ function removeBlank(el, html = false) {
35
42
  if (!el) return false;
36
- const v = el.innerText.trim() === '';
43
+ const v = (html ? el.innerHTML : el.innerText).trim() === '';
37
44
  v && el.remove();
38
45
  return v;
39
46
  }
40
47
  function fill(el) {
41
- const n1 = boxes.length;
42
48
  // if the element is already a page, just use it as the box
43
49
  if (el.classList.contains('pagesjs-page')) {
44
50
  box.after(newPage(el));
@@ -49,26 +55,31 @@
49
55
  box.after(newPage()); // create a new empty page
50
56
  }
51
57
  } else {
52
- // create a new box when too much content (exceeding original height)
53
- if (box.scrollHeight > H) {
54
- const [box2, box_body2] = [box, box_body]; // store old box
55
- box2.after(newPage());
56
- // if there's more than one child in the box, move the last child to next box
57
- nChild(box_body2) > 1 && box_body.append(box_body2.lastChild);
58
- }
59
58
  box_body.append(el);
59
+ if (box.scrollHeight <= H) return;
60
+ const cls = el.classList, h0 = el.innerHTML, n0 = boxes.length;
60
61
  fragment(el);
62
+ // remove empty pages
63
+ if (el.tagName === 'PRE') for (let i = boxes.length - 1; i >= n0; i--) {
64
+ removeBlank(boxes[i]) && boxes.splice(i, 1);
65
+ }
66
+ // if el can be fragmented, add class *-last, otherwise remove class (e.g.,
67
+ // current box can't even hold el's first child so move whole el to new box)
68
+ (cls.contains(fr_cls) && el.innerHTML !== h0) ? cls.add(fr_2) :
69
+ [el].concat(...$$(`.${fr_cls}`, el)).forEach(el => el.classList.remove(fr_cls, fr_1));
70
+ l_code = []; // clean up code lines
61
71
  }
62
- const n2 = boxes.length;
63
- // mark all boxes (except the last one) with class 'pagesjs-done'
64
- n2 > n1 && n2 > 1 && boxes.splice(0, n2 - 1).forEach(addOffset);
72
+ }
73
+ function fillCode(el, i1, i2) {
74
+ el.innerHTML = l_code.slice(i1, i2).join('\n');
65
75
  }
66
76
  // break elements that are relatively easy to break (such as <ul>)
67
77
  function fragment(el, container, parent, page) {
68
- const tag = el.tagName, is_code = tag === 'CODE';
78
+ const tag = el.tagName, cls = el.classList, frag = cls.contains(fr_cls);
79
+ parent || frag && cls.remove(fr_1);
69
80
  // if <code>, keep fragmenting; otherwise exit when box fits
70
- if (!(is_code && container) && box.scrollHeight <= H) return;
71
- el.classList.add(fr_cls);
81
+ if (!l_code.length && box.scrollHeight <= H) return;
82
+ parent ? cls.add(fr_cls) : (frag || cls.add(fr_cls, fr_1));
72
83
  const box_cur = page || box, el2 = el.cloneNode(); // shallow clone (wrapper only)
73
84
  // add the clone to current box, and move original el to next box
74
85
  container ? container.append(el2) : (
@@ -77,21 +88,36 @@
77
88
  // fragment <pre>'s <code> and <div>'s single child (e.g., #TOC > ul)
78
89
  if (tag === 'PRE') {
79
90
  const code = el.firstElementChild;
80
- if (code?.tagName === 'CODE') {
81
- const lines = code.innerHTML.replace(/\n$/, '').split('\n');
82
- if (lines.length > 1) {
83
- // add <i> to each line to measure the line heights
84
- code.innerHTML = lines.concat('').map(x => `<i class="${cd_cls}"></i>${x}`).join('\n');
85
- $$(`i.${cd_cls}`, code).forEach(i => i.dataset.top = i.offsetTop);
86
- fragment(code, el2, el, box_cur);
87
- }
91
+ if (code?.tagName == 'CODE') {
92
+ const initial = l_code.length;
93
+ // store all lines in l_code
94
+ if (!initial) l_code = code.innerHTML.split('\n');
95
+ let n_code = l_code.length;
96
+ if (n_code > 1 && l_code[n_code - 1] === '') n_code -= 1; // ignore trailing \n
97
+ if (n_code > 1) {
98
+ if (!initial) h_code = code.offsetHeight / n_code; // approx line height
99
+ code.innerHTML = ''; // temporarily empty <code>; will use l_code
100
+ if (fragment(code, el2, el, box_cur)) {
101
+ // exit if the rest of lines are empty
102
+ if (l_code.join('').trim() === '') {
103
+ el2.before(el); el.innerHTML = el2.innerHTML; el2.remove();
104
+ boxes.pop().remove(); newPage(boxes[boxes.length - 1]); l_code = [];
105
+ }
106
+ if (!l_code.length) return; fragment(el);
107
+ } else {
108
+ // the current page can't hold the block; fragment it on next page
109
+ el2.remove(); [code, el].forEach(el => el.classList.remove(fr_cls, fr_1));
110
+ fragment(el);
111
+ }
112
+ } else fillCode(code, 0);
88
113
  }
114
+ return removeBlank(el2);
89
115
  } else if (tag === 'DIV' && nChild(el) === 1) {
90
116
  fragment(el.firstElementChild, el2, el, box_cur);
91
117
  }
92
118
  const prev = el2.previousElementSibling;
93
119
  // keep moving el's first item to el2 until page height > H
94
- if (['UL', 'OL', 'BLOCKQUOTE'].includes(tag) && nChild(el) > 1) while (true) {
120
+ if (['UL', 'OL', 'BLOCKQUOTE', 'FIELDSET'].includes(tag) && nChild(el) > 1) while (true) {
95
121
  const item = el.firstChild;
96
122
  if (!item) break;
97
123
  el2.append(item);
@@ -106,37 +132,40 @@
106
132
  }
107
133
  }
108
134
  // split lines in <code> and try to move as many lines into el2 as possible
109
- if (is_code) {
110
- const code = el.innerHTML.split('\n'), delta = H - box_cur.scrollHeight,
111
- tops = [...$$(`i.${cd_cls}`, el)].map(i => i.dataset.top);
112
- //if (el.innerHTML.match('Humpty')) debugger;
113
- let i = 0;
114
- function fillCode() {
115
- el2.innerHTML = code.slice(0, i).join('\n');
116
- }
117
- if (delta > 0) {
118
- for (i = 0; i < tops.length; i++) {
119
- if (tops[i + 1] - tops[0] > delta) break;
135
+ if (container && tag === 'CODE') {
136
+ // figure out how many lines can fit the box via bisection
137
+ let i = 0, i1 = 1, i2 = n = l_code.length;
138
+ const sols = []; // solutions tried
139
+ while (i2 - i1 > 1) {
140
+ fillCode(el2, 0, i || 1);
141
+ const delta = H - box_cur.offsetHeight;
142
+ if (delta === 0) {
143
+ i1 = i || 1; break;
120
144
  }
121
- if (i > 0) fillCode();
122
- }
123
- // remove/add lines from el2 one by one if box is too long/short
124
- const dir = box_cur.scrollHeight > H ? -1 : 1;
125
- while (i > 0 && i <= code.length) {
126
- i += dir; fillCode();
127
- if (box_cur.scrollHeight > H) {
128
- i += -1; fillCode(); break;
145
+ if (delta < 0) {
146
+ if (i <= 0) break;
147
+ i2 = i;
148
+ } else {
149
+ i1 = i;
129
150
  }
151
+ sols.push(i);
152
+ // estimate the number of (more or less) lines needed
153
+ const i3 = i + Math.round(delta / h_code);
154
+ // if a solution has been tried, shorten step and (in/de)crement by 1
155
+ i = sols.includes(i3) ? i + (delta > 0 ? 1 : -1) : i3;
156
+ (delta > 0 && i >= n) && (i2 = n + 1, i = n); // solution may be n
130
157
  }
131
158
  if (i > 0) {
132
- el.innerHTML = code.slice(i).join('\n');
133
- if (removeBlank(parent)) return; // exit if <pre> is empty
159
+ fillCode(el2, 0, i1); l_code.splice(0, i1);
160
+ } else {
161
+ el2.innerHTML = ''; fillCode(el, 0); l_code = []; // not fragmented
134
162
  }
163
+ return i > 0;
135
164
  }
136
- const el2_empty = removeBlank(el2);
165
+ const el2_empty = removeBlank(el2, true);
166
+ el2_empty && cls.remove(fr_cls, fr_1);
137
167
  // if the clone is empty, remove it, otherwise keep fragmenting the remaining el
138
- el2_empty && el.classList.remove(fr_cls);
139
- if (!el2_empty || is_code || prev) fragment(container ? parent : el);
168
+ if (!el2_empty || prev) fragment(container ? parent : el);
140
169
  }
141
170
 
142
171
  // use data-short-title of a header if exists, and fall back to inner text
@@ -193,26 +222,29 @@
193
222
  a.dataset.pageNumber = '000'; // placeholder for page numbers
194
223
  });
195
224
 
225
+ const els = [];
226
+ $$('.body').forEach(el => {
227
+ const ch = [...el.children];
228
+ els.push(ch); ch.forEach(el => el.remove());
229
+ });
196
230
  // iteratively add elements to pages
197
- [$('.frontmatter'), $('#TOC'), $('.abstract')].forEach(el => {
198
- el && (fill(el), book && box.after(newPage()));
231
+ $$('.frontmatter, .abstract, #TOC:not(.chapter-toc)').forEach(el => {
232
+ (fill(el), book && box.after(newPage()));
199
233
  });
200
- $$('.body').forEach(el => {
234
+ $$('.body').forEach((el, i) => {
201
235
  // preserve book chapter classes if exist
202
236
  box_cls = ['chapter', 'appendix'].filter(i => el.classList.contains(i));
203
237
  book && (box.innerText === '' ? newPage(box) : box.after(newPage()));
204
- [...el.children].map(fill);
238
+ els[i].forEach(fill);
205
239
  // clean up container and self if empty
206
240
  removeBlank(el.parentNode); removeBlank(el);
207
241
  });
208
- boxes.forEach(addOffset); // mark the rest of pages as done
209
- $$(`pre > code i.${cd_cls}`).forEach(el => el.remove());
242
+ boxes.slice(box_n).forEach(finish); // finish the rest of pages
210
243
  cls.remove('pagesjs-filling');
211
244
 
212
245
  // add page number, title, etc. to data-* attributes of page elements
213
246
  let page_title, i = 0;
214
- $$('.pagesjs-page').forEach(box => {
215
- if (removeBlank(box)) return; // remove empty pages
247
+ boxes.forEach(box => {
216
248
  if (book) {
217
249
  if ($('.frontmatter', box)) return; // skip book frontmatter page
218
250
  $(ps, box) && (page_title = ''); // empty title for first page of chapter
@@ -236,15 +268,15 @@
236
268
  });
237
269
  });
238
270
 
271
+ // unhide all pages
272
+ d.body.prepend(...boxes);
273
+
239
274
  // add page numbers to TOC with data-* attributes
240
275
  $$('#TOC a[href^="#"]').forEach(a => {
241
276
  const id = CSS.escape(a.getAttribute('href').replace(/^#/, '')),
242
277
  p = $(`.pagesjs-page:has(#${id}) .pagesjs-header`);
243
278
  a.dataset.pageNumber = p ? p.dataset.pageNumber : '';
244
279
  });
245
-
246
- // unhide all pages
247
- $$('.pagesjs-done').forEach(box => box.classList.remove('pagesjs-done'));
248
280
  }
249
281
  addEventListener('beforeprint', paginate);
250
282
  // persistent pagination upon page reload (press p again to cancel it)
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 s(e){return e.childElementCount}const a=e.createElement("div"),r=n("h1").length>1,i=[],o=String.fromCharCode(...Array(10).fill(0).map((e=>97+26*Math.random()))),c="pagesjs-fragmented",l=["top","bottom"].map((t=>+getComputedStyle(e.documentElement).getPropertyValue(`--paper-margin-${t}`).replace("px","")||0));a.className="pagesjs-page",a.innerHTML='<div class="pagesjs-header"></div>\n<div class="pagesjs-body"></div>\n<div class="pagesjs-footer"></div>';let f,d,p,g=[];function h(e){return e&&!t(".pagesjs-body",e)&&e.insertAdjacentHTML("afterbegin",a.innerHTML),f=e||a.cloneNode(!0),d=f.children[1],g.length&&f.classList.add(...g),i.push(f),f}function m(e){const t=e.scrollHeight;if(t>p&&!e.dataset.pagesOffset){const s=function(e,t){let s=+e.dataset.pagesOffset;if(s)return s;if(s=Math.ceil(t/p),s<=1)return s;const a=l.concat([...n("thead",e)].map((e=>+e.offsetHeight))).reduce(((e,t)=>e+t));if(!a)return s;function r(){return Math.ceil((t+(s-1)*a)/p)}let i=r();for(;i>s;)s=i,i=r();return s}(e,t);s>1&&(e.dataset.pagesOffset=s)}e.classList.add("pagesjs-done")}function u(e){if(!e)return!1;const t=""===e.innerText.trim();return t&&e.remove(),t}function E(e){const t=i.length;if(e.classList.contains("pagesjs-page"))f.after(h(e)),s(e)>3&&(d.append(...[...e.children].slice(3)),f.after(h()));else{if(f.scrollHeight>p){const[e,t]=[f,d];e.after(h()),s(t)>1&&d.append(t.lastChild)}d.append(e),L(e)}const n=i.length;n>t&&n>1&&i.splice(0,n-1).forEach(m)}function L(e,t,a,r){const i=e.tagName,l="CODE"===i;if((!l||!t)&&f.scrollHeight<=p)return;e.classList.add(c);const g=r||f,m=e.cloneNode();if(t?t.append(m):(d.append(m),g.after(h()),d.append(e)),"PRE"===i){const T=e.firstElementChild;if("CODE"===T?.tagName){const H=T.innerHTML.replace(/\n$/,"").split("\n");H.length>1&&(T.innerHTML=H.concat("").map((e=>`<i class="${o}"></i>${e}`)).join("\n"),n(`i.${o}`,T).forEach((e=>e.dataset.top=e.offsetTop)),L(T,m,e,g))}}else"DIV"===i&&1===s(e)&&L(e.firstElementChild,m,e,g);const E=m.previousElementSibling;if(["UL","OL","BLOCKQUOTE"].includes(i)&&s(e)>1)for(;;){const v=e.firstChild;if(!v)break;if(m.append(v),!v.nodeName.startsWith("#")&&g.scrollHeight>p){(E||s(m)>1)&&e.insertBefore(v,e.firstChild),"OL"===i&&(e.start+=s(m));break}}if(l){const C=e.innerHTML.split("\n"),O=p-g.scrollHeight,y=[...n(`i.${o}`,e)].map((e=>e.dataset.top));let M=0;function j(){m.innerHTML=C.slice(0,M).join("\n")}if(O>0){for(M=0;M<y.length&&!(y[M+1]-y[0]>O);M++);M>0&&j()}const S=g.scrollHeight>p?-1:1;for(;M>0&&M<=C.length;)if(M+=S,j(),g.scrollHeight>p){M+=-1,j();break}if(M>0&&(e.innerHTML=C.slice(M).join("\n"),u(a)))return}const b=u(m);b&&e.classList.remove(c),(!b||l||E)&&L(t?a:e)}function j(e){return e&&(e.dataset.shortTitle||e.innerText)}const b=j(t("h1.title, .frontmatter h1, .title, h1")),T=(r?"h1":"h2")+":not(.frontmatter *)";function H(){if("complete"!==e.readyState)return setTimeout(H,10);const s=e.body.classList;if(s.contains("pagesjs"))return;s.add("pagesjs"),e.body.insertAdjacentElement("afterbegin",h()),p=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")})),s.add("pagesjs-filling"),n('#TOC a[href^="#"]').forEach((t=>{const n=e.createElement("span"),s=t.firstElementChild;for(s?.classList.contains("section-number")?s.after(n):t.insertAdjacentElement("afterbegin",n);n.nextSibling;)n.append(n.nextSibling);t.insertAdjacentHTML("beforeend",'<span class="dot-leader"></span>'),t.dataset.pageNumber="000"})),[t(".frontmatter"),t("#TOC"),t(".abstract")].forEach((e=>{e&&(E(e),r&&f.after(h()))})),n(".body").forEach((e=>{g=["chapter","appendix"].filter((t=>e.classList.contains(t))),r&&(""===f.innerText?h(f):f.after(h())),[...e.children].map(E),u(e.parentNode),u(e)})),i.forEach(m),n(`pre > code i.${o}`).forEach((e=>e.remove())),s.remove("pagesjs-filling");let a,c=0;n(".pagesjs-page").forEach((e=>{if(u(e))return;if(r){if(t(".frontmatter",e))return;t(T,e)&&(a="")}const s=+e.dataset.pagesOffset||1;s>1&&e.classList.add("page-multiple"),c+=s,e.classList.add("page-"+(c%2==0?"even":"odd"));const i={pageNumber:c,mainTitle:b,pageTitle:a};let o;[e.children[0],e.children[2]].forEach((e=>{for(const t in i)i[t]&&(e.dataset[t]=i[t])})),a=j([...n(T,e)].pop())||a,n(".footnotes",e).forEach(((t,n)=>{0===n?(o=t,e.children[1].after(t)):(o.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:""})),n(".pagesjs-done").forEach((e=>e.classList.remove("pagesjs-done")))}addEventListener("beforeprint",H);let v=sessionStorage.getItem("pagesjs");v&&H(),addEventListener("keypress",(e=>"p"===e.key&&(H(),v=v?"":"1",sessionStorage.setItem("pagesjs",v),v||location.reload())))})(document);
1
+ (e=>{function t(t,n=e){return n?.querySelector(t)}function s(t,n=e){return n?n.querySelectorAll(t):[]}function r(e){return e.childElementCount}const a=e.createElement("div"),i=s("h1").length>1,o=[],c="pagesjs-fragmented",l="fragment-first",f=["top","bottom"].map((t=>+getComputedStyle(e.documentElement).getPropertyValue(`--paper-margin-${t}`).replace("px","")||0));a.className="pagesjs-page",a.innerHTML='<div class="pagesjs-header"></div>\n<div class="pagesjs-body"></div>\n<div class="pagesjs-footer"></div>';let d,p,h,g,u=[],m=0,E=[];function L(e){const n=o.length;return n-m>1&&(o.slice(m,n-1).forEach(b),m=n-1),e&&!t(".pagesjs-body",e)&&e.insertAdjacentHTML("afterbegin",a.innerHTML),d=e||a.cloneNode(!0),p=d.children[1],u.length&&d.classList.add(...u),o.includes(d)||o.push(d),d}function b(e){const t=e.scrollHeight;if(t>h&&!e.dataset.pagesOffset){const n=function(e,t){let n=+e.dataset.pagesOffset;if(n)return n;if(n=Math.ceil(t/h),n<=1)return n;const r=f.concat([...s("thead",e)].map((e=>+e.offsetHeight))).reduce(((e,t)=>e+t));if(!r)return n;function a(){return Math.ceil((t+(n-1)*r)/h)}let i=a();for(;i>n;)n=i,i=a();return n}(e,t);n>1&&(e.dataset.pagesOffset=n)}e.remove()}function T(e,t=!1){if(!e)return!1;const n=""===(t?e.innerHTML:e.innerText).trim();return n&&e.remove(),n}function v(e){if(e.classList.contains("pagesjs-page"))d.after(L(e)),r(e)>3&&(p.append(...[...e.children].slice(3)),d.after(L()));else{if(p.append(e),d.scrollHeight<=h)return;const t=e.classList,n=e.innerHTML,r=o.length;if(j(e),"PRE"===e.tagName)for(let e=o.length-1;e>=r;e--)T(o[e])&&o.splice(e,1);t.contains(c)&&e.innerHTML!==n?t.add("fragment-last"):[e].concat(...s(`.${c}`,e)).forEach((e=>e.classList.remove(c,l))),E=[]}}function H(e,t,n){e.innerHTML=E.slice(t,n).join("\n")}function j(e,t,s,a){const i=e.tagName,f=e.classList,u=f.contains(c);if(s||u&&f.remove(l),!E.length&&d.scrollHeight<=h)return;s?f.add(c):u||f.add(c,l);const m=a||d,b=e.cloneNode();if(t?t.append(b):(p.append(b),m.after(L()),p.append(e)),"PRE"===i){const t=e.firstElementChild;if("CODE"==t?.tagName){const n=E.length;n||(E=t.innerHTML.split("\n"));let s=E.length;if(s>1&&""===E[s-1]&&(s-=1),s>1)if(n||(g=t.offsetHeight/s),t.innerHTML="",j(t,b,e,m)){if(""===E.join("").trim()&&(b.before(e),e.innerHTML=b.innerHTML,b.remove(),o.pop().remove(),L(o[o.length-1]),E=[]),!E.length)return;j(e)}else b.remove(),[t,e].forEach((e=>e.classList.remove(c,l))),j(e);else H(t,0)}return T(b)}"DIV"===i&&1===r(e)&&j(e.firstElementChild,b,e,m);const v=b.previousElementSibling;if(["UL","OL","BLOCKQUOTE","FIELDSET"].includes(i)&&r(e)>1)for(;;){const t=e.firstChild;if(!t)break;if(b.append(t),!t.nodeName.startsWith("#")&&m.scrollHeight>h){(v||r(b)>1)&&e.insertBefore(t,e.firstChild),"OL"===i&&(e.start+=r(b));break}}if(t&&"CODE"===i){let t=0,s=1,r=n=E.length;const a=[];for(;r-s>1;){H(b,0,t||1);const e=h-m.offsetHeight;if(0===e){s=t||1;break}if(e<0){if(t<=0)break;r=t}else s=t;a.push(t);const i=t+Math.round(e/g);t=a.includes(i)?t+(e>0?1:-1):i,e>0&&t>=n&&(r=n+1,t=n)}return t>0?(H(b,0,s),E.splice(0,s)):(b.innerHTML="",H(e,0),E=[]),t>0}const M=T(b,!0);M&&f.remove(c,l),M&&!v||j(t?s:e)}function M(e){return e&&(e.dataset.shortTitle||e.innerText)}const C=M(t("h1.title, .frontmatter h1, .title, h1")),y=(i?"h1":"h2")+":not(.frontmatter *)";function O(){if("complete"!==e.readyState)return setTimeout(O,10);const n=e.body.classList;if(n.contains("pagesjs"))return;n.add("pagesjs"),e.body.insertAdjacentElement("afterbegin",L()),h=d.clientHeight||window.innerHeight,s(":is(#TOC, .footnotes, .chapter-before, .chapter-after):is(.side-left, .side-right).side").forEach((e=>{e.classList.remove("side","side-left","side-right")})),n.add("pagesjs-filling"),s('#TOC a[href^="#"]').forEach((t=>{const n=e.createElement("span"),s=t.firstElementChild;for(s?.classList.contains("section-number")?s.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 r=[];s(".body").forEach((e=>{const t=[...e.children];r.push(t),t.forEach((e=>e.remove()))})),s(".frontmatter, .abstract, #TOC:not(.chapter-toc)").forEach((e=>{v(e),i&&d.after(L())})),s(".body").forEach(((e,t)=>{u=["chapter","appendix"].filter((t=>e.classList.contains(t))),i&&(""===d.innerText?L(d):d.after(L())),r[t].forEach(v),T(e.parentNode),T(e)})),o.slice(m).forEach(b),n.remove("pagesjs-filling");let a,c=0;o.forEach((e=>{if(i){if(t(".frontmatter",e))return;t(y,e)&&(a="")}const n=+e.dataset.pagesOffset||1;n>1&&e.classList.add("page-multiple"),c+=n,e.classList.add("page-"+(c%2==0?"even":"odd"));const r={pageNumber:c,mainTitle:C,pageTitle:a};let o;[e.children[0],e.children[2]].forEach((e=>{for(const t in r)r[t]&&(e.dataset[t]=r[t])})),a=M([...s(y,e)].pop())||a,s(".footnotes",e).forEach(((t,n)=>{0===n?(o=t,e.children[1].after(t)):(o.append(...t.children),t.remove())}))})),e.body.prepend(...o),s('#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",O);let N=sessionStorage.getItem("pagesjs");N&&O(),addEventListener("keypress",(e=>"p"===e.key&&(O(),N=N?"":"1",sessionStorage.setItem("pagesjs",N),N||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","cd_cls","String","fromCharCode","Array","fill","map","x","Math","random","fr_cls","tb","i","getComputedStyle","documentElement","getPropertyValue","replace","className","innerHTML","box","box_body","H","box_cls","newPage","insertAdjacentHTML","cloneNode","children","classList","add","push","addOffset","h","scrollHeight","dataset","pagesOffset","n","ceil","m","concat","offsetHeight","reduce","m1","m2","newPages","n2","calcPages","removeBlank","v","innerText","trim","remove","n1","contains","after","append","slice","box2","box_body2","lastChild","fragment","splice","forEach","container","parent","page","tag","tagName","is_code","box_cur","el2","code","firstElementChild","lines","split","join","top","offsetTop","prev","previousElementSibling","includes","item","firstChild","nodeName","startsWith","insertBefore","start","delta","tops","fillCode","dir","el2_empty","shortTitle","main","ps","paginate","readyState","setTimeout","cls","body","insertAdjacentElement","clientHeight","window","innerHeight","a","nextSibling","pageNumber","filter","parentNode","page_title","N","info","mainTitle","pageTitle","ft","key","pop","p","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_cls","fr_1","tb","map","i","getComputedStyle","documentElement","getPropertyValue","replace","className","innerHTML","box","box_body","H","h_code","box_cls","box_n","l_code","newPage","n","slice","forEach","finish","insertAdjacentHTML","cloneNode","children","classList","add","includes","push","h","scrollHeight","dataset","pagesOffset","Math","ceil","m","concat","offsetHeight","reduce","m1","m2","newPages","n2","calcPages","remove","removeBlank","html","v","innerText","trim","fill","contains","after","append","cls","h0","n0","fragment","tagName","splice","fillCode","i1","i2","join","container","parent","page","tag","frag","box_cur","el2","code","firstElementChild","initial","split","n_code","before","pop","prev","previousElementSibling","item","firstChild","nodeName","startsWith","insertBefore","start","sols","delta","i3","round","el2_empty","shortTitle","main","ps","paginate","readyState","setTimeout","body","insertAdjacentElement","clientHeight","window","innerHeight","a","nextSibling","pageNumber","els","ch","filter","parentNode","page_title","N","info","mainTitle","pageTitle","ft","key","prepend","p","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.13.67",
3
+ "version": "1.13.69",
4
4
  "description": "Miscellaneous tools and utilities to manipulate HTML pages",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"