counting headers via pagedjs js customizations
This commit is contained in:
parent
9fc7625fc3
commit
3fa570c2aa
3 changed files with 43 additions and 5 deletions
|
@ -2,4 +2,4 @@
|
||||||
<link href="/css/dyn.css" rel="stylesheet" type="text/css">
|
<link href="/css/dyn.css" rel="stylesheet" type="text/css">
|
||||||
<link href="/css/print.css" rel="stylesheet" type="text/css">
|
<link href="/css/print.css" rel="stylesheet" type="text/css">
|
||||||
<script src="/js/paged.polyfill.js"></script>
|
<script src="/js/paged.polyfill.js"></script>
|
||||||
<script src="/js/repeatingHeader.js"></script>
|
<script src="/js/pagedjsCustomizations.js"></script>
|
||||||
|
|
|
@ -1,8 +1,47 @@
|
||||||
class RepeatingTableHeaders extends Paged.Handler {
|
var UID = {
|
||||||
|
_current: 0,
|
||||||
|
getNew: function(){
|
||||||
|
this._current++;
|
||||||
|
return this._current;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
HTMLElement.prototype.pseudoStyle = function(element,prop,value){
|
||||||
|
var _this = this;
|
||||||
|
var _sheetId = "pseudoStyles";
|
||||||
|
var _head = document.head || document.getElementsByTagName('head')[0];
|
||||||
|
var _sheet = document.getElementById(_sheetId) || document.createElement('style');
|
||||||
|
_sheet.id = _sheetId;
|
||||||
|
var className = "pseudoStyle" + UID.getNew();
|
||||||
|
|
||||||
|
_this.className += " "+className;
|
||||||
|
|
||||||
|
_sheet.innerHTML += " ."+className+":"+element+"{"+prop+":"+value+"}";
|
||||||
|
_head.appendChild(_sheet);
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
|
||||||
|
class Sandpoints extends Paged.Handler {
|
||||||
constructor(chunker, polisher, caller) {
|
constructor(chunker, polisher, caller) {
|
||||||
super(chunker, polisher, caller);
|
super(chunker, polisher, caller);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
beforeParsed(content) {
|
||||||
|
var d = {};
|
||||||
|
content.querySelectorAll('*').forEach((n, i)=> {
|
||||||
|
if (n.classList.length > 0 ) {
|
||||||
|
n.classList.forEach((c, i)=>{
|
||||||
|
if (c.startsWith("css-")) {
|
||||||
|
(c in d) ? d[c]++ : d[c] = 1
|
||||||
|
let s = ""
|
||||||
|
Object.keys(d).filter(ks => ks.startsWith(c.slice(0, -1))).forEach((t, i)=> {if (c >= t) {s += `${d[t]}.`}})
|
||||||
|
n.pseudoStyle('before','content', `"${s} "`)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
afterPageLayout(pageElement, page, breakToken, chunker) {
|
afterPageLayout(pageElement, page, breakToken, chunker) {
|
||||||
// Find all split table elements
|
// Find all split table elements
|
||||||
let tables = pageElement.querySelectorAll("table[data-split-from]");
|
let tables = pageElement.querySelectorAll("table[data-split-from]");
|
||||||
|
@ -24,7 +63,6 @@ class RepeatingTableHeaders extends Paged.Handler {
|
||||||
// Find if there is a header
|
// Find if there is a header
|
||||||
let sourceHeader = sourceTable.querySelector("thead");
|
let sourceHeader = sourceTable.querySelector("thead");
|
||||||
if (sourceHeader) {
|
if (sourceHeader) {
|
||||||
console.log("Table header was cloned, because it is splitted.");
|
|
||||||
// Clone the header element
|
// Clone the header element
|
||||||
let clonedHeader = sourceHeader.cloneNode(true);
|
let clonedHeader = sourceHeader.cloneNode(true);
|
||||||
// Insert the header at the start of the split table
|
// Insert the header at the start of the split table
|
||||||
|
@ -55,4 +93,4 @@ class RepeatingTableHeaders extends Paged.Handler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Paged.registerHandlers(RepeatingTableHeaders);
|
Paged.registerHandlers(Sandpoints);
|
|
@ -1 +1 @@
|
||||||
# git.sandpoints.org/Drawwell/SandpointsTheme v0.0.0-20210205231518-7612f79321fb
|
# git.sandpoints.org/Drawwell/SandpointsTheme v0.0.0-20210206114614-2c21080f414b
|
||||||
|
|
Loading…
Add table
Reference in a new issue