@xiee/utils 1.13.60 → 1.13.62

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
@@ -39,12 +39,12 @@
39
39
  .pagesjs-page {
40
40
  width: var(--paper-width);
41
41
  height: var(--paper-height);
42
- overflow: hidden;
43
42
  padding: var(--paper-margin-top) var(--paper-margin-right) var(--paper-margin-bottom) var(--paper-margin-left);
44
43
  page-break-after: always;
45
44
  display: flex;
46
45
  flex-direction: column;
47
46
  justify-content: space-between;
47
+ overflow: hidden;
48
48
  img {
49
49
  max-width: 100%;
50
50
  }
@@ -169,6 +169,7 @@
169
169
  .page-multiple {
170
170
  padding-top: 0;
171
171
  padding-bottom: 0;
172
+ height: auto;
172
173
  }
173
174
  }
174
175
  }
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);page-break-after:always;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(.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}}}& .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-color:#f7f7f7}& .pagesjs-page{background-color:#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{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);page-break-after:always;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(.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}}}& .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-color:#f7f7f7}& .pagesjs-page{background-color:#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,gFAGA,wRASE,qBAGA,iFAGA,8CAIE,yIAOA,kBAGA,iBAEE,sDAIA,oCAGA,uEAOJ,gIAOA,iFAMA,wFAEE,sDAIF,2FAGA,wCAMJ,0FAKA,2GAIE,uCAGA,uCAIF,uGAIE,qBAGA,wCAIF,4CAIA,mBACE,SACE,8CAGA,sCAGA,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 overflow: hidden;\n padding: var(--paper-margin-top) var(--paper-margin-right) var(--paper-margin-bottom) var(--paper-margin-left);\n \tpage-break-after: always;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\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 .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-color: #f7f7f7;\n }\n .pagesjs-page {\n background-color: 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 }\n }\n}\n"],"names":[]}
1
+ {"version":3,"mappings":"AAAA,0PAYA,0DAIA,2FAIA,6BAGA,wGAQE,2DAIA,gFAGA,wRASE,qBAGA,iFAGA,8CAIE,yIAOA,kBAGA,iBAEE,sDAIA,oCAGA,uEAOJ,gIAOA,iFAMA,wFAEE,sDAIF,2FAGA,wCAMJ,0FAKA,2GAIE,uCAGA,uCAIF,uGAIE,qBAGA,wCAIF,4CAIA,mBACE,SACE,8CAGA,sCAGA,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 \tpage-break-after: always;\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(.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 .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-color: #f7f7f7;\n }\n .pagesjs-page {\n background-color: 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":[]}
@@ -12,14 +12,4 @@
12
12
  const s = d.createElement('script');
13
13
  s.src = 'https://cdn.jsdelivr.net/npm/@xiee/utils/js/tabsets.min.js';
14
14
  d.body.insertAdjacentElement('beforeend', s);
15
- const links = [...d.querySelectorAll('.tab-link')], N = links.length;
16
- d.addEventListener('keyup', e => {
17
- const dir = ['ArrowLeft', 'ArrowRight'].indexOf(e.key);
18
- if (dir < 0) return;
19
- const a = d.querySelector('.tab-link.active');
20
- let i = links.indexOf(a) + (dir ? 1 : -1);
21
- if (i < 0) i = N - 1;
22
- if (i > N - 1) i = 0;
23
- links[i].click();
24
- });
25
15
  })(document);
@@ -1,2 +1,2 @@
1
- (e=>{const t=e.body.innerText.replace(/^(.|\n)*?(?=Package:)/,"").split(/(^|\n)Package: /).filter((e=>e.trim())).map((e=>`<div class="tab-link">${e.replace(/(.*?)\n/,'$1 <a href="https://cran.r-project.org/web/checks/check_results_$1.html" style="text-decoration: none;" target="_blank">&#8605;</a></div><div class="tab-pane"><pre style="white-space: pre-wrap;">')}</pre></div>`)).join("\n");e.body.innerHTML=`<div class="tabset">${t}</div>`,e.head.insertAdjacentHTML("beforeend",'<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@xiee/utils/css/tabsets.min.css">');const n=e.createElement("script");n.src="https://cdn.jsdelivr.net/npm/@xiee/utils/js/tabsets.min.js",e.body.insertAdjacentElement("beforeend",n);const s=[...e.querySelectorAll(".tab-link")],r=s.length;e.addEventListener("keyup",(t=>{const n=["ArrowLeft","ArrowRight"].indexOf(t.key);if(n<0)return;const i=e.querySelector(".tab-link.active");let c=s.indexOf(i)+(n?1:-1);c<0&&(c=r-1),c>r-1&&(c=0),s[c].click()}))})(document);
1
+ (e=>{const t=e.body.innerText.replace(/^(.|\n)*?(?=Package:)/,"").split(/(^|\n)Package: /).filter((e=>e.trim())).map((e=>`<div class="tab-link">${e.replace(/(.*?)\n/,'$1 <a href="https://cran.r-project.org/web/checks/check_results_$1.html" style="text-decoration: none;" target="_blank">&#8605;</a></div><div class="tab-pane"><pre style="white-space: pre-wrap;">')}</pre></div>`)).join("\n");e.body.innerHTML=`<div class="tabset">${t}</div>`,e.head.insertAdjacentHTML("beforeend",'<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@xiee/utils/css/tabsets.min.css">');const s=e.createElement("script");s.src="https://cdn.jsdelivr.net/npm/@xiee/utils/js/tabsets.min.js",e.body.insertAdjacentElement("beforeend",s)})(document);
2
2
  //# sourceMappingURL=revdep-log-reader.min.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["d","entries","body","innerText","replace","split","filter","x","trim","map","join","innerHTML","head","insertAdjacentHTML","s","createElement","src","insertAdjacentElement","links","querySelectorAll","N","length","addEventListener","e","dir","indexOf","key","a","querySelector","i","click","document"],"sources":["revdep-log-reader.js"],"mappings":"AAEA,CAACA,IACC,MAAMC,EAAUD,EAAEE,KAAKC,UACpBC,QAAQ,wBAAyB,IACjCC,MAAM,mBACNC,QAAOC,GAAKA,EAAEC,SACdC,KAAIF,GAAK,yBAAyBA,EAAEH,QAAQ,UAAW,uNACvDM,KAAK,MACRV,EAAEE,KAAKS,UAAY,uBAAuBV,UAC1CD,EAAEY,KAAKC,mBAAmB,YAAa,+FACvC,MAAMC,EAAId,EAAEe,cAAc,UAC1BD,EAAEE,IAAM,6DACRhB,EAAEE,KAAKe,sBAAsB,YAAaH,GAC1C,MAAMI,EAAQ,IAAIlB,EAAEmB,iBAAiB,cAAeC,EAAIF,EAAMG,OAC9DrB,EAAEsB,iBAAiB,SAASC,IAC1B,MAAMC,EAAM,CAAC,YAAa,cAAcC,QAAQF,EAAEG,KAClD,GAAIF,EAAM,EAAG,OACb,MAAMG,EAAI3B,EAAE4B,cAAc,oBAC1B,IAAIC,EAAIX,EAAMO,QAAQE,IAAMH,EAAM,GAAK,GACnCK,EAAI,IAAGA,EAAIT,EAAI,GACfS,EAAIT,EAAI,IAAGS,EAAI,GACnBX,EAAMW,GAAGC,OAAO,GAEnB,EAtBD,CAsBGC","ignoreList":[]}
1
+ {"version":3,"names":["d","entries","body","innerText","replace","split","filter","x","trim","map","join","innerHTML","head","insertAdjacentHTML","s","createElement","src","insertAdjacentElement","document"],"sources":["revdep-log-reader.js"],"mappings":"AAEA,CAACA,IACC,MAAMC,EAAUD,EAAEE,KAAKC,UACpBC,QAAQ,wBAAyB,IACjCC,MAAM,mBACNC,QAAOC,GAAKA,EAAEC,SACdC,KAAIF,GAAK,yBAAyBA,EAAEH,QAAQ,UAAW,uNACvDM,KAAK,MACRV,EAAEE,KAAKS,UAAY,uBAAuBV,UAC1CD,EAAEY,KAAKC,mBAAmB,YAAa,+FACvC,MAAMC,EAAId,EAAEe,cAAc,UAC1BD,EAAEE,IAAM,6DACRhB,EAAEE,KAAKe,sBAAsB,YAAaH,EAC3C,EAZD,CAYGI","ignoreList":[]}
@@ -1,33 +1,34 @@
1
1
  // highlight a TOC item when scrolling to a corresponding section heading
2
2
  (d => {
3
3
  // assume TOC has these possible IDs (we can also consider other selectors)
4
- const toc = d.querySelector('#TableOfContents, #TOC');
4
+ const s = 'a[href^="#"]', toc = d.querySelector(`:is(#TableOfContents, #TOC):has(${s})`);
5
5
  if (!toc) return;
6
- const links = toc.querySelectorAll('a[href^="#"]');
7
- if (!links.length) return;
8
- const dict = {};
6
+ const links = toc.querySelectorAll(s), dict = {};
9
7
  links.forEach(a => dict[a.getAttribute('href').replace('#', '')] = a);
10
8
  const ids = Object.keys(dict);
11
9
 
12
- // record which elements are currently in the viewport
13
- const stack = [], id2 = [];
10
+ // status: 1 if an id is currently in the viewport, otherwise 0
11
+ const status = Array(ids.length).fill(0);
14
12
  // create a new Intersection Observer instance
15
13
  const observer = new IntersectionObserver(els => els.forEach(el => {
16
- const id = el.target.id, i = stack.indexOf(id);
17
- el.isIntersecting ? stack.push(id) : (i > -1 && stack.splice(i, 1));
14
+ const id = el.target.id, i = ids.indexOf(id);
15
+ if (i < 0) return;
16
+ status[i] = +el.isIntersecting;
18
17
  let id_active;
19
- const n = stack.length;
20
- if (!n) {
18
+ const n = status.indexOf(1); // the first id in view
19
+ if (n > -1) {
20
+ id_active = ids[n];
21
+ } else {
21
22
  if (el.target.getBoundingClientRect().top < 0) return;
22
23
  // if a heading exits from bottom and no heading is in view, activate previous ID
23
24
  const k = ids.indexOf(id) - 1;
24
25
  if (k >= 0) id_active = ids[k];
25
- } else id_active = stack[n - 1];
26
+ }
26
27
  for (const i in dict) {
27
- dict[i].classList[i === id_active ? 'add' : 'remove']('active');
28
+ dict[i].classList.toggle('active', i === id_active);
28
29
  }
29
30
  }));
30
-
31
+
31
32
  // observe all section headings associated with TOC links
32
33
  d.querySelectorAll('h1,h2,h3,h4,h5,h6').forEach(h => {
33
34
  h.nodeType === 1 && dict.hasOwnProperty(h.id) && observer.observe(h);
@@ -1,2 +1,2 @@
1
- (e=>{const t=e.querySelector("#TableOfContents, #TOC");if(!t)return;const r=t.querySelectorAll('a[href^="#"]');if(!r.length)return;const n={};r.forEach((e=>n[e.getAttribute("href").replace("#","")]=e));const o=Object.keys(n),c=[],s=new IntersectionObserver((e=>e.forEach((e=>{const t=e.target.id,r=c.indexOf(t);let s;e.isIntersecting?c.push(t):r>-1&&c.splice(r,1);const i=c.length;if(i)s=c[i-1];else{if(e.target.getBoundingClientRect().top<0)return;const r=o.indexOf(t)-1;r>=0&&(s=o[r])}for(const e in n)n[e].classList[e===s?"add":"remove"]("active")}))));e.querySelectorAll("h1,h2,h3,h4,h5,h6").forEach((e=>{1===e.nodeType&&n.hasOwnProperty(e.id)&&s.observe(e)}))})(document);
1
+ (e=>{const t='a[href^="#"]',r=e.querySelector(`:is(#TableOfContents, #TOC):has(${t})`);if(!r)return;const n=r.querySelectorAll(t),o={};n.forEach((e=>o[e.getAttribute("href").replace("#","")]=e));const c=Object.keys(o),s=Array(c.length).fill(0),i=new IntersectionObserver((e=>e.forEach((e=>{const t=e.target.id,r=c.indexOf(t);if(r<0)return;let n;s[r]=+e.isIntersecting;const i=s.indexOf(1);if(i>-1)n=c[i];else{if(e.target.getBoundingClientRect().top<0)return;const r=c.indexOf(t)-1;r>=0&&(n=c[r])}for(const e in o)o[e].classList.toggle("active",e===n)}))));e.querySelectorAll("h1,h2,h3,h4,h5,h6").forEach((e=>{1===e.nodeType&&o.hasOwnProperty(e.id)&&i.observe(e)}))})(document);
2
2
  //# sourceMappingURL=toc-highlight.min.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["d","toc","querySelector","links","querySelectorAll","length","dict","forEach","a","getAttribute","replace","ids","Object","keys","stack","observer","IntersectionObserver","els","el","id","target","i","indexOf","id_active","isIntersecting","push","splice","n","getBoundingClientRect","top","k","classList","h","nodeType","hasOwnProperty","observe","document"],"sources":["toc-highlight.js"],"mappings":"AACA,CAACA,IAEC,MAAMC,EAAMD,EAAEE,cAAc,0BAC5B,IAAKD,EAAK,OACV,MAAME,EAAQF,EAAIG,iBAAiB,gBACnC,IAAKD,EAAME,OAAQ,OACnB,MAAMC,EAAO,CAAC,EACdH,EAAMI,SAAQC,GAAKF,EAAKE,EAAEC,aAAa,QAAQC,QAAQ,IAAK,KAAOF,IACnE,MAAMG,EAAMC,OAAOC,KAAKP,GAGlBQ,EAAQ,GAERC,EAAW,IAAIC,sBAAqBC,GAAOA,EAAIV,SAAQW,IAC3D,MAAMC,EAAKD,EAAGE,OAAOD,GAAIE,EAAIP,EAAMQ,QAAQH,GAE3C,IAAII,EADJL,EAAGM,eAAiBV,EAAMW,KAAKN,GAAOE,GAAK,GAAKP,EAAMY,OAAOL,EAAG,GAEhE,MAAMM,EAAIb,EAAMT,OAChB,GAAKsB,EAKEJ,EAAYT,EAAMa,EAAI,OALrB,CACN,GAAIT,EAAGE,OAAOQ,wBAAwBC,IAAM,EAAG,OAE/C,MAAMC,EAAInB,EAAIW,QAAQH,GAAM,EACxBW,GAAK,IAAGP,EAAYZ,EAAImB,GAC9B,CACA,IAAK,MAAMT,KAAKf,EACdA,EAAKe,GAAGU,UAAUV,IAAME,EAAY,MAAQ,UAAU,SACxD,MAIFvB,EAAEI,iBAAiB,qBAAqBG,SAAQyB,IAC/B,IAAfA,EAAEC,UAAkB3B,EAAK4B,eAAeF,EAAEb,KAAOJ,EAASoB,QAAQH,EAAE,GAEvE,EAjCD,CAiCGI","ignoreList":[]}
1
+ {"version":3,"names":["d","s","toc","querySelector","links","querySelectorAll","dict","forEach","a","getAttribute","replace","ids","Object","keys","status","Array","length","fill","observer","IntersectionObserver","els","el","id","target","i","indexOf","id_active","isIntersecting","n","getBoundingClientRect","top","k","classList","toggle","h","nodeType","hasOwnProperty","observe","document"],"sources":["toc-highlight.js"],"mappings":"AACA,CAACA,IAEC,MAAMC,EAAI,eAAgBC,EAAMF,EAAEG,cAAc,mCAAmCF,MACnF,IAAKC,EAAK,OACV,MAAME,EAAQF,EAAIG,iBAAiBJ,GAAIK,EAAO,CAAC,EAC/CF,EAAMG,SAAQC,GAAKF,EAAKE,EAAEC,aAAa,QAAQC,QAAQ,IAAK,KAAOF,IACnE,MAAMG,EAAMC,OAAOC,KAAKP,GAGlBQ,EAASC,MAAMJ,EAAIK,QAAQC,KAAK,GAEhCC,EAAW,IAAIC,sBAAqBC,GAAOA,EAAIb,SAAQc,IAC3D,MAAMC,EAAKD,EAAGE,OAAOD,GAAIE,EAAIb,EAAIc,QAAQH,GACzC,GAAIE,EAAI,EAAG,OAEX,IAAIE,EADJZ,EAAOU,IAAMH,EAAGM,eAEhB,MAAMC,EAAId,EAAOW,QAAQ,GACzB,GAAIG,GAAK,EACPF,EAAYf,EAAIiB,OACX,CACL,GAAIP,EAAGE,OAAOM,wBAAwBC,IAAM,EAAG,OAE/C,MAAMC,EAAIpB,EAAIc,QAAQH,GAAM,EACxBS,GAAK,IAAGL,EAAYf,EAAIoB,GAC9B,CACA,IAAK,MAAMP,KAAKlB,EACdA,EAAKkB,GAAGQ,UAAUC,OAAO,SAAUT,IAAME,EAC3C,MAIF1B,EAAEK,iBAAiB,qBAAqBE,SAAQ2B,IAC/B,IAAfA,EAAEC,UAAkB7B,EAAK8B,eAAeF,EAAEZ,KAAOJ,EAASmB,QAAQH,EAAE,GAEvE,EAlCD,CAkCGI","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xiee/utils",
3
- "version": "1.13.60",
3
+ "version": "1.13.62",
4
4
  "description": "Miscellaneous tools and utilities to manipulate HTML pages",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"