UNPKG

pagedjs

Version:

Chunks up a document into paged media flows and applies print styles

4 lines 503 kB
/** * @license Paged.js v0.4.3 | MIT | https://gitlab.coko.foundation/pagedjs/pagedjs */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).PagedPolyfill=t()}(this,(function(){"use strict";function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var t,n,r={exports:{}},a={exports:{}};var i,o,s,l,d=function(){},p=d(),c=function(e){return e!==p&&null!==e};function u(){return l||(l=1,s=(n?t:(n=1,t=function(){try{return Object.keys("primitive"),!0}catch(e){return!1}}))()?Object.keys:function(){if(o)return i;o=1;var e=c,t=Object.keys;return i=function(n){return t(e(n)?Object(n):n)}}()),s}var m,h,g=c,f=function(e){if(!g(e))throw new TypeError("Cannot use null or undefined");return e};var y,b,S=function(){var e,t=Object.assign;return"function"==typeof t&&(t(e={foo:"raz"},{bar:"dwa"},{trzy:"trzy"}),e.foo+e.bar+e.trzy==="razdwatrzy")}()?Object.assign:function(){if(h)return m;h=1;var e=u(),t=f,n=Math.max;return m=function(r,a){var i,o,s,l=n(arguments.length,2);for(r=Object(t(r)),s=function(e){try{r[e]=a[e]}catch(e){i||(i=e)}},o=1;o<l;++o)e(a=arguments[o]).forEach(s);if(void 0!==i)throw i;return r},m}(),v=c,x=Array.prototype.forEach,k=Object.create,w="razdwatrzy";var C,T="function"==typeof w.contains&&!0===w.contains("dwa")&&!1===w.contains("foo")?String.prototype.contains:function(){if(b)return y;b=1;var e=String.prototype.indexOf;return y=function(t){return e.call(this,t,arguments[1])>-1},y}(),_=S,z=function(e){var t=k(null);return x.call(arguments,(function(e){v(e)&&function(e,t){var n;for(n in e)t[n]=e[n]}(Object(e),t)})),t},O=function(e){return"function"==typeof e},A=T;C=a.exports=function(e,t){var n,r,a,i,o;return arguments.length<2||"string"!=typeof e?(i=t,t=e,e=null):i=arguments[2],null==e?(n=a=!0,r=!1):(n=A.call(e,"c"),r=A.call(e,"e"),a=A.call(e,"w")),o={value:t,configurable:n,enumerable:r,writable:a},i?_(z(i),o):o},C.gs=function(e,t,n){var r,a,i,o;return"string"!=typeof e?(i=n,n=t,t=e,e=null):i=arguments[3],null==t?t=void 0:O(t)?null==n?n=void 0:O(n)||(i=n,n=void 0):(i=t,t=n=void 0),null==e?(r=!0,a=!1):(r=A.call(e,"c"),a=A.call(e,"e")),o={get:t,set:n,configurable:r,enumerable:a},i?_(z(i),o):o};var E=a.exports,j=function(e){if("function"!=typeof e)throw new TypeError(e+" is not a function");return e};!function(e,t){var n,r,a,i,o,s,l,d=E,p=j,c=Function.prototype.apply,u=Function.prototype.call,m=Object.create,h=Object.defineProperty,g=Object.defineProperties,f=Object.prototype.hasOwnProperty,y={configurable:!0,enumerable:!1,writable:!0};n=function(e,t){var n;return p(t),f.call(this,"__ee__")?n=this.__ee__:(n=y.value=m(null),h(this,"__ee__",y),y.value=null),n[e]?"object"==typeof n[e]?n[e].push(t):n[e]=[n[e],t]:n[e]=t,this},r=function(e,t){var r,i;return p(t),i=this,n.call(this,e,r=function(){a.call(i,e,r),c.call(t,this,arguments)}),r.__eeOnceListener__=t,this},a=function(e,t){var n,r,a,i;if(p(t),!f.call(this,"__ee__"))return this;if(!(n=this.__ee__)[e])return this;if("object"==typeof(r=n[e]))for(i=0;a=r[i];++i)a!==t&&a.__eeOnceListener__!==t||(2===r.length?n[e]=r[i?0:1]:r.splice(i,1));else r!==t&&r.__eeOnceListener__!==t||delete n[e];return this},i=function(e){var t,n,r,a,i;if(f.call(this,"__ee__")&&(a=this.__ee__[e]))if("object"==typeof a){for(n=arguments.length,i=new Array(n-1),t=1;t<n;++t)i[t-1]=arguments[t];for(a=a.slice(),t=0;r=a[t];++t)c.call(r,this,i)}else switch(arguments.length){case 1:u.call(a,this);break;case 2:u.call(a,this,arguments[1]);break;case 3:u.call(a,this,arguments[1],arguments[2]);break;default:for(n=arguments.length,i=new Array(n-1),t=1;t<n;++t)i[t-1]=arguments[t];c.call(a,this,i)}},o={on:n,once:r,off:a,emit:i},s={on:d(n),once:d(r),off:d(a),emit:d(i)},l=g({},s),e.exports=t=function(e){return null==e?m(l):g(Object(e),s)},t.methods=o}(r,r.exports);var W=r.exports,L=e(W);class B{constructor(e){this.context=e||this,this.hooks=[]}register(){for(var e=0;e<arguments.length;++e)if("function"==typeof arguments[e])this.hooks.push(arguments[e]);else for(var t=0;t<arguments[e].length;++t)this.hooks.push(arguments[e][t])}trigger(){var e=arguments,t=this.context,n=[];return this.hooks.forEach((function(r){var a=r.apply(t,e);a&&"function"==typeof a.then?n.push(a):n.push(new Promise(((e,t)=>{e(a)})))})),Promise.all(n)}triggerSync(){var e=arguments,t=this.context,n=[];return this.hooks.forEach((function(r){var a=r.apply(t,e);n.push(a)})),n}list(){return this.hooks}clear(){return this.hooks=[]}}function P(e){if(!e)return;let t;if(void 0!==e.getBoundingClientRect)t=e.getBoundingClientRect();else{let n=document.createRange();n.selectNode(e),t=n.getBoundingClientRect()}return t}function q(e){if(!e)return;let t;if(void 0!==e.getClientRects)t=e.getClientRects();else{let n=document.createRange();n.selectNode(e),t=n.getClientRects()}return t}function M(){var e=(new Date).getTime();return"undefined"!=typeof performance&&"function"==typeof performance.now&&(e+=performance.now()),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){var n=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"===t?n:3&n|8).toString(16)}))}function I(e,t){for(var n=0;n<t.length;n++)if(e.hasAttribute(t[n]))return e.getAttribute(t[n])}function D(e){if(0==arguments.length)throw new TypeError("`CSS.escape` requires an argument.");for(var t,n=String(e),r=n.length,a=-1,i="",o=n.charCodeAt(0);++a<r;)0!=(t=n.charCodeAt(a))?t>=1&&t<=31||127==t||0==a&&t>=48&&t<=57||1==a&&t>=48&&t<=57&&45==o?i+="\\"+t.toString(16)+" ":0!=a||1!=r||45!=t?46!=t||"#"!=n.charAt(0)?i+=t>=128||45==t||95==t||35==t||46==t||t>=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122?n.charAt(a):"\\"+n.charAt(a):i+="\\.":i+="\\"+n.charAt(a):i+="�";return i}function R(){this.resolve=null,this.reject=null,this.id=M(),this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t})),Object.freeze(this)}const N="undefined"!=typeof window&&("requestIdleCallback"in window?window.requestIdleCallback:window.requestAnimationFrame);function G(e){return e.value+(e.unit||"")}function F(e){return e&&1===e.nodeType}function V(e){return e&&3===e.nodeType}function*U(e,t){let n=e;for(;n;)if(yield n,n.childNodes.length)n=n.firstChild;else if(n.nextSibling){if(t&&n===t){n=void 0;break}n=n.nextSibling}else for(;n;){if(n=n.parentNode,t&&n===t){n=void 0;break}if(n&&n.nextSibling){n=n.nextSibling;break}}}function H(e,t){if(t&&e===t)return;let n=he(e);if(n)return n;if(e.parentNode)for(;e=e.parentNode;){if(t&&e===t)return;if(n=he(e),n)return n}}function $(e,t){if(t&&e===t)return;let n=pe(e);if(n)return n;if(e.parentNode)for(;e=e.parentNode;){if(t&&e===t)return;if(n=pe(e),n)return n}}function Y(e,t){let n=H(e,t);for(;n&&1!==n.nodeType;)n=H(n,t);return n}function K(e,t){let n=$(e,t);for(;n&&1!==n.nodeType;)n=$(n,t);return n}function Z(e,t){let n=Y(e,t);for(;n&&n.dataset.undisplayed;)n=Y(n,t);return n}function Q(e,t){let n=K(e,t);for(;n&&n.dataset.undisplayed;)n=K(n,t);return n}function J(e){let t,n,r=[],a=[],i=document.createDocumentFragment();if("TR"===e.nodeName){let t=e.previousElementSibling,n=1;for(;t;){if(t.childElementCount>e.childElementCount){const r=Array.from(e.children);for(;e.firstChild;)e.firstChild.remove();let a=0;for(let i=0;i<t.children.length;i++){let o=t.children[i];if(o.rowSpan&&o.rowSpan>n){const t=o.cloneNode(!0);t.rowSpan=o.rowSpan-n,e.appendChild(t)}else{const t=r[a++];t&&e.appendChild(t)}}}t=t.previousElementSibling,n++}}let o=e;for(;o.parentNode&&1===o.parentNode.nodeType;)r.unshift(o.parentNode),o=o.parentNode;for(var s=0;s<r.length;s++){if(n=r[s],t=n.cloneNode(!1),t.setAttribute("data-split-from",t.getAttribute("data-ref")),t.hasAttribute("id")){let e=t.getAttribute("id");t.setAttribute("data-id",e),t.removeAttribute("id")}if(t.hasAttribute("data-break-before")&&t.removeAttribute("data-break-before"),t.hasAttribute("data-previous-break-after")&&t.removeAttribute("data-previous-break-after"),a.length){a[a.length-1].appendChild(t)}else i.appendChild(t);if(a.push(t),"TD"===t.nodeName&&n.parentElement.contains(n)){let e=n,r=t;for(;e=e.previousElementSibling;){let n=e.cloneNode(!1);t.parentElement.insertBefore(n,r),r=n}}}return a=void 0,i}function X(e){return void 0!==e&&void 0!==e.dataset&&void 0!==e.dataset.breakBefore&&("always"===e.dataset.breakBefore||"page"===e.dataset.breakBefore||"left"===e.dataset.breakBefore||"right"===e.dataset.breakBefore||"recto"===e.dataset.breakBefore||"verso"===e.dataset.breakBefore)}function ee(e,t){if(void 0===e||!t||de(e))return!1;if(e.dataset&&e.dataset.undisplayed)return!1;let n=t.dataset?t.dataset.page:void 0;if(void 0===n){const e=ce(t);e&&(n=e.dataset.page)}let r=e.dataset?e.dataset.page:void 0;if(void 0===r){const n=ce(e,t);n&&(r=n.dataset.page)}return r!==n}function*te(e){let t,n=e.startContainer,r=n.length,a=e.startOffset;for(;a<r;)t=document.createRange(),t.setStart(n,a),t.setEnd(n,a+1),yield t,a+=1}function ne(e){let t;if(void 0===e.tagName)return!0;if(e.style&&"none"===e.style.display)return!1;switch(e.tagName){case"A":case"ABBR":case"ACRONYM":case"B":case"BDO":case"BIG":case"BR":case"BUTTON":case"CITE":case"CODE":case"DFN":case"EM":case"I":case"IMG":case"INPUT":case"KBD":case"LABEL":case"MAP":case"OBJECT":case"Q":case"SAMP":case"SCRIPT":case"SELECT":case"SMALL":case"SPAN":case"STRONG":case"SUB":case"SUP":case"TEXTAREA":case"TIME":case"TT":case"VAR":case"P":case"H1":case"H2":case"H3":case"H4":case"H5":case"H6":case"FIGCAPTION":case"BLOCKQUOTE":case"PRE":case"LI":case"TD":case"DT":case"DD":case"VIDEO":case"CANVAS":t=!1;break;default:t=!0}return t}function re(e,t,n){return function(e,t,n){return!n&&t.indexOfRefs&&t.indexOfRefs[e]?t.indexOfRefs[e]:t.querySelector(`[data-ref='${e}']`)}(e.getAttribute("data-ref"),t,n)}function ae(e){return!!V(e)||!(!F(e)||!e.dataset.ref)}function ie(e){for(;!ae(e)&&(e=e.previousSibling?e.previousSibling:e.parentNode););return e}function oe(e,t){return e.childNodes[t]}function se(e){return!!F(e)||!(!V(e)||!e.textContent.trim().length)}function le(e,t){if(!V(e))return-1;let n,r=e.textContent,a=-1;for(var i=0;i<t.childNodes.length;i++)if(n=t.childNodes[i],3===n.nodeType){if(t.childNodes[i].textContent.includes(r)){a=i;break}}return a}function de(e){return 8===e.nodeType||3===e.nodeType&&function(e){return!/[^\t\n\r ]/.test(e.textContent)}(e)}function pe(e){for(;e=e.previousSibling;)if(!de(e))return e;return null}function ce(e,t){if(e&&e.dataset&&e.dataset.page)return e;if(e.parentNode)for(;e=e.parentNode;){if(t&&e===t)return;if(e.dataset&&e.dataset.page)return e}return null}function ue(e){for(;e=e.parentNode;)if(e&&e.dataset&&"avoid"===e.dataset.breakInside)return e;return null}function me(e,t,n){if((!n||e!==n)&&e.parentNode)for(;e=e.parentNode;){if(n&&e===n)return;if(e.nodeName===t)return e}}function he(e){for(;e=e.nextSibling;)if(!de(e))return e;return null}function ge(e,t,n){const r=document.createTreeWalker(e||this.dom,n||NodeFilter.SHOW_ALL,t?{acceptNode:t}:null,!1);let a,i;for(a=r.nextNode();a;)i=a,a=r.nextNode(),i.parentNode.removeChild(i)}class fe{constructor(e,t){this.node=e,this.offset=t}equals(e){return!!e&&((!this.node||!e.node||this.node===e.node)&&(!this.offset||!e.offset||this.offset===e.offset))}toJSON(e){let t,n=0;if(!this.node)return{};if(F(this.node)&&this.node.dataset.ref?t=this.node.dataset.ref:e&&(t=this.node.parentElement.dataset.ref),this.node.parentElement){n=Array.from(this.node.parentElement.childNodes).indexOf(this.node)}return JSON.stringify({node:t,index:n,offset:this.offset})}}class ye{constructor(e,t){this.breakToken=e,this.error=t}}class be extends Error{constructor(e,t){super(e),this.items=t}}class Se{constructor(e,t,n){this.element=e,this.bounds=this.element.getBoundingClientRect(),this.parentBounds=this.element.offsetParent.getBoundingClientRect();let r=parseFloat(window.getComputedStyle(this.element).columnGap);if(r){let e=this.bounds.left-this.parentBounds.left;this.gap=r-e}else this.gap=0;t?this.hooks=t:(this.hooks={},this.hooks.onPageLayout=new B,this.hooks.layout=new B,this.hooks.renderNode=new B,this.hooks.layoutNode=new B,this.hooks.beforeOverflow=new B,this.hooks.onOverflow=new B,this.hooks.afterOverflowRemoved=new B,this.hooks.onBreakToken=new B,this.hooks.beforeRenderResult=new B),this.settings=n||{},this.maxChars=this.settings.maxChars||1500,this.forceRenderBreak=!1}async renderTo(e,t,n,r=this.bounds){let a,i,o,s,l,d=this.getStart(t,n),p=U(d,t),c=!1,u=0,m=n||new fe(d);for(this.hooks&&this.hooks.onPageLayout.trigger(e,m,this);!o&&!l;){if(s=p.next(),i=a,a=s.value,o=s.done,!a){this.hooks&&this.hooks.layout.trigger(e,this);let n=e.querySelectorAll("img");return n.length&&await this.waitForImages(n),l=this.findBreakToken(e,t,r,m),l&&l.equals(m)?(console.warn("Unable to layout item: ",i),this.hooks&&this.hooks.beforeRenderResult.trigger(void 0,e,this),new ye(void 0,new be("Unable to layout item",[i]))):(this.rebuildTableFromBreakToken(l,e),this.hooks&&this.hooks.beforeRenderResult.trigger(l,e,this),new ye(l))}if(this.hooks&&this.hooks.layoutNode.trigger(a),c&&this.shouldBreak(a,d)){this.hooks&&this.hooks.layout.trigger(e,this);let n=e.querySelectorAll("img");if(n.length&&await this.waitForImages(n),l=this.findBreakToken(e,t,r,m),l?this.rebuildTableFromBreakToken(l,e):l=this.breakAt(a),l&&l.equals(m)){console.warn("Unable to layout item: ",a);let e=l.node&&H(l.node);if(!e)return new ye(void 0,new be("Unable to layout item",[a]));l=new fe(e)}u=0;break}if(a.dataset&&a.dataset.page){let e=a.dataset.page,t=this.element.closest(".pagedjs_page");t.classList.add("pagedjs_named_page"),t.classList.add("pagedjs_"+e+"_page"),a.dataset.splitFrom||t.classList.add("pagedjs_"+e+"_first_page")}let h=ne(a);if(u+=this.append(a,e,n,h).textContent.length,c||(c=se(a)),h||(p=U(H(a,t),t)),this.forceRenderBreak){this.hooks&&this.hooks.layout.trigger(e,this),l=this.findBreakToken(e,t,r,m),l?this.rebuildTableFromBreakToken(l,e):l=this.breakAt(a),u=0,this.forceRenderBreak=!1;break}if(u>=this.maxChars){this.hooks&&this.hooks.layout.trigger(e,this);let n=e.querySelectorAll("img");if(n.length&&await this.waitForImages(n),l=this.findBreakToken(e,t,r,m),l&&(u=0,this.rebuildTableFromBreakToken(l,e)),l&&l.equals(m)){console.warn("Unable to layout item: ",a);let t=l.node&&H(l.node);if(!t)return this.hooks&&this.hooks.beforeRenderResult.trigger(void 0,e,this),new ye(void 0,new be("Unable to layout item",[a]));l=new fe(t)}}}return this.hooks&&this.hooks.beforeRenderResult.trigger(l,e,this),new ye(l)}breakAt(e,t=0){let n=new fe(e,t);return this.hooks.onBreakToken.triggerSync(n,void 0,e,this).forEach((e=>{void 0!==e&&(n=e)})),n}shouldBreak(e,t){let n,r=$(e,t),a=e.parentNode;return X(e)&&a&&!r&&X(a)&&(n=e.dataset.breakBefore===a.dataset.breakBefore),!n&&X(e)||function(e){return void 0!==e&&void 0!==e.dataset&&void 0!==e.dataset.previousBreakAfter&&("always"===e.dataset.previousBreakAfter||"page"===e.dataset.previousBreakAfter||"left"===e.dataset.previousBreakAfter||"right"===e.dataset.previousBreakAfter||"recto"===e.dataset.previousBreakAfter||"verso"===e.dataset.previousBreakAfter)}(e)||ee(e,r)}forceBreak(){this.forceRenderBreak=!0}getStart(e,t){let n,r=t&&t.node;return n=r||e.firstChild,n}append(e,t,n,r=!0,a=!0){let i=function(e,t=!1){return e.cloneNode(t)}(e,!r);if(e.parentNode&&F(e.parentNode)){let r=re(e.parentNode,t);if(r)r.appendChild(i);else if(a){let a=J(e);r=re(e.parentNode,a),r?n&&V(n.node)&&n.offset>0?(i.textContent=i.textContent.substring(n.offset),r.appendChild(i)):r.appendChild(i):t.appendChild(i),t.appendChild(a)}else t.appendChild(i)}else t.appendChild(i);return i.dataset&&i.dataset.ref&&(t.indexOfRefs||(t.indexOfRefs={}),t.indexOfRefs[i.dataset.ref]=i),this.hooks.renderNode.triggerSync(i,e,this).forEach((e=>{void 0!==e&&(i=e)})),i}rebuildTableFromBreakToken(e,t){if(!e||!e.node)return;let n=e.node,r=F(n)?n.closest("td"):n.parentElement.closest("td");if(r){if(!re(r,t,!0))return;for(;r=r.nextElementSibling;)this.append(r,t,null,!0)}}async waitForImages(e){let t=Array.from(e).map((async e=>this.awaitImageLoaded(e)));await Promise.all(t)}async awaitImageLoaded(e){return new Promise((t=>{if(!0!==e.complete)e.onload=function(){let{width:n,height:r}=window.getComputedStyle(e);t(n,r)},e.onerror=function(n){let{width:r,height:a}=window.getComputedStyle(e);t(r,a,n)};else{let{width:n,height:r}=window.getComputedStyle(e);t(n,r)}}))}avoidBreakInside(e,t){let n;if(e!==t){for(;e.parentNode&&(e=e.parentNode)!==t;)if("avoid"===window.getComputedStyle(e)["break-inside"]){n=e;break}return n}}createBreakToken(e,t,n){let r,a,i,o,s,l=e.startContainer,d=e.startOffset;if(F(l))if(s=oe(l,d),F(s))if(a=re(s,t),a)r=re(a,n),d=0;else{let e=ie(s);if(F(e)||(e=e.parentElement),a=re(e,t),!s.nextSibling){const e=re(a,n);if(!re(document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT).lastChild(),t))return}r=re(a,n).nextSibling,d=0}else a=re(l,t),a||(a=re(ie(l),t)),i=re(a,n),o=le(s,i),0===o?(r=i,d=0):(r=oe(i,o),d=0);else{if(a=re(l.parentNode,t),a||(a=re(ie(l.parentNode),t)),i=re(a,n),o=le(l,i),-1===o)return;r=oe(i,o),d+=r.textContent.indexOf(l.textContent)}if(r)return new fe(r,d)}findBreakToken(e,t,n=this.bounds,r,a=!0){let i,o,s=this.findOverflow(e,n);if(this.hooks.onOverflow.triggerSync(s,e,n,this).forEach((e=>{void 0!==e&&(s=e)})),s){if(i=this.createBreakToken(s,e,t),this.hooks.onBreakToken.triggerSync(i,s,e,this).forEach((e=>{void 0!==e&&(i=e)})),i&&i.equals(r))return i;if(o=i&&i.node&&i.offset&&i.node.textContent?i.node.textContent.charAt(i.offset):void 0,i&&i.node&&a){let t=this.removeOverflow(s,o);this.hooks&&this.hooks.afterOverflowRemoved.trigger(t,e,this)}}return i}hasOverflow(e,t=this.bounds){let n=e&&e.parentNode,{width:r,height:a}=e.getBoundingClientRect(),i=n?n.scrollWidth:0,o=n?n.scrollHeight:0;return Math.max(Math.floor(r),i)>Math.round(t.width)||Math.max(Math.floor(a),o)>Math.round(t.height)}findOverflow(e,t=this.bounds,n=this.gap){if(!this.hasOverflow(e,t))return;let r,a,i,o,s,l,d,p,c,u=Math.floor(t.left),m=Math.round(t.right+n),h=Math.round(t.top),g=Math.round(t.bottom),f=U(e.firstChild,e);for(;!i;)if(a=f.next(),i=a.done,o=a.value,l=!1,d=!1,p=void 0,c=void 0,o){let t=P(o),n=Math.round(t.left),i=Math.floor(t.right),b=Math.round(t.top),S=Math.floor(t.bottom);if(!r&&(n>=m||b>=g)){let t=!1;const n=me(o,"TD",e);if(n&&"avoid"===window.getComputedStyle(n)["break-inside"])p=n.parentElement;else if(F(o)){let n=window.getComputedStyle(o);t="none"!==n.getPropertyValue("float"),l="avoid"===n.getPropertyValue("break-inside"),d="avoid"===o.dataset.breakBefore||"avoid"===o.dataset.previousBreakAfter,p=d&&$(o,e),c="BR"===o.tagName||"WBR"===o.tagName}let a;if(a="TR"===o.nodeName?o:me(o,"TR",e),a){let t=a.parentElement;if(["TBODY","THEAD"].includes(t.nodeName)){"avoid"===window.getComputedStyle(t).getPropertyValue("break-inside")&&(p=t)}const n=me(a,"TABLE",e),r=n.querySelector("[colspan]");if(n&&r){let e=0;for(const t of Array.from(n.rows[0].cells))e+=parseInt(t.getAttribute("colspan")||"1");if(a.cells.length!==e){let t,n=a.previousElementSibling;for(;null!==n;){t=0;for(const e of Array.from(n.cells))t+=parseInt(e.getAttribute("colspan")||"1");if(t===e)break;n=n.previousElementSibling}t===e&&(p=n)}}}if(p){r=document.createRange(),r.selectNode(p);break}if(!c&&!t&&F(o)){r=document.createRange(),r.selectNode(o);break}if(V(o)&&o.textContent.trim().length){r=document.createRange(),r.selectNode(o);break}}if(!r&&V(o)&&o.textContent.trim().length&&!ue(o.parentNode)){let e,t=q(o);n=0,b=0;for(var y=0;y!=t.length;y++)e=t[y],e.width>0&&(!n||e.left>n)&&(n=e.left),e.height>0&&(!b||e.top>b)&&(b=e.top);if(n>=m||b>=g){r=document.createRange(),s=this.textBreak(o,u,m,h,g),s?r.setStart(o,s):r=void 0;break}}(l||i<=m&&S<=g)&&(a=H(o,e),a&&(f=U(a,e)))}return r?(r.setEndAfter(e.lastChild),r):void 0}findEndToken(e,t){if(0===e.childNodes.length)return;let n,r=e.lastChild;for(;r&&r.lastChild;)if(ae(r)){if(!ae(r.lastChild)){r=ie(r.lastChild);break}r=r.lastChild}else r=r.previousSibling;V(r)&&(r.parentNode.dataset.ref?(n=function(e){let t=e.parentNode;return t?Array.prototype.indexOf.call(t.childNodes,e):0}(r),r=r.parentNode):r=r.previousSibling);let a=re(r,t);n&&(a=a.childNodes[n]);let i=H(a);return this.breakAt(i)}textBreak(e,t,n,r,a){let i,o,s,l,d,p=function*(e){let t,n,r=e.nodeValue,a=r.length,i=0;const o=e.parentElement&&"PRE"===e.parentElement.nodeName;for(;i<a;)t=r[i],/^[\S\u202F\u00A0]$/.test(t)||o?n||(n=document.createRange(),n.setStart(e,i)):n&&(n.setEnd(e,i),yield n,n=void 0),i+=1;n&&(n.setEnd(e,i),yield n)}(e),c=0,u=0,m=0,h=0;for(;!s&&(o=p.next(),i=o.value,s=o.done,i);){if(l=P(i),c=Math.floor(l.left),u=Math.floor(l.right),m=Math.floor(l.top),h=Math.floor(l.bottom),c>=n||m>=a){d=i.startOffset;break}if(u>n||h>a){let e,t,r,o=te(i);for(;!r&&(t=o.next(),e=t.value,r=t.done,e);)if(l=P(e),c=Math.floor(l.left),m=Math.floor(l.top),c>=n||m>=a){d=e.startOffset,s=!0;break}}}return d}removeOverflow(e,t){let{startContainer:n}=e,r=e.extractContents();return this.hyphenateAtBreak(n,t),r}hyphenateAtBreak(e,t){if(V(e)){let n=e.textContent,r=n[n.length-1];(t&&/^\w|\u00AD$/.test(r)&&/^\w|\u00AD$/.test(t)||!t&&/^\w|\u00AD$/.test(r))&&(e.parentNode.classList.add("pagedjs_hyphen"),e.textContent+=this.settings.hyphenGlyph||"‑")}}equalTokens(e,t){return!(!e||!t)&&((!e.node||!t.node||e.node===t.node)&&(!e.offset||!t.offset||e.offset===t.offset))}}L(Se.prototype);class ve{constructor(e,t,n,r,a){this.pagesArea=e,this.pageTemplate=t,this.blank=n,this.width=void 0,this.height=void 0,this.hooks=r,this.settings=a||{}}create(e,t){let n,r,a=document.importNode(this.pageTemplate.content,!0);t?(this.pagesArea.insertBefore(a,t.nextElementSibling),r=Array.prototype.indexOf.call(this.pagesArea.children,t.nextElementSibling),n=this.pagesArea.children[r]):(this.pagesArea.appendChild(a),n=this.pagesArea.lastChild);let i=n.querySelector(".pagedjs_pagebox"),o=n.querySelector(".pagedjs_page_content"),s=n.querySelector(".pagedjs_footnote_area"),l=o.getBoundingClientRect();return o.style.columnWidth=Math.round(l.width)+"px",o.style.columnGap="calc(var(--pagedjs-margin-right) + var(--pagedjs-margin-left) + var(--pagedjs-bleed-right) + var(--pagedjs-bleed-left) + var(--pagedjs-column-gap-offset))",this.width=Math.round(l.width),this.height=Math.round(l.height),this.element=n,this.pagebox=i,this.area=o,this.footnotesArea=s,n}createWrapper(){let e=document.createElement("div");return this.area.appendChild(e),this.wrapper=e,e}index(e){this.position=e;let t=this.element,n=e+1,r=`page-${n}`;this.id=r,t.dataset.pageNumber=n,t.setAttribute("id",r),this.name&&t.classList.add("pagedjs_"+this.name+"_page"),this.blank&&t.classList.add("pagedjs_blank_page"),0===e&&t.classList.add("pagedjs_first_page"),e%2!=1?(t.classList.remove("pagedjs_left_page"),t.classList.add("pagedjs_right_page")):(t.classList.remove("pagedjs_right_page"),t.classList.add("pagedjs_left_page"))}async layout(e,t,n){this.clear(),this.startToken=t;let r=this.settings;!r.maxChars&&n&&(r.maxChars=n),this.layoutMethod=new Se(this.area,this.hooks,r);let a=(await this.layoutMethod.renderTo(this.wrapper,e,t)).breakToken;return this.addListeners(e),this.endToken=a,a}async append(e,t){if(!this.layoutMethod)return this.layout(e,t);let n=(await this.layoutMethod.renderTo(this.wrapper,e,t)).breakToken;return this.endToken=n,n}getByParent(e,t){let n;for(var r=0;r<t.length;r++)if(n=t[r],n.dataset.ref===e)return n}onOverflow(e){this._onOverflow=e}onUnderflow(e){this._onUnderflow=e}clear(){this.removeListeners(),this.wrapper&&this.wrapper.remove(),this.createWrapper()}addListeners(e){return"undefined"!=typeof ResizeObserver?this.addResizeObserver(e):(this._checkOverflowAfterResize=this.checkOverflowAfterResize.bind(this,e),this.element.addEventListener("overflow",this._checkOverflowAfterResize,!1),this.element.addEventListener("underflow",this._checkOverflowAfterResize,!1)),this._onScroll=function(){this.listening&&(this.element.scrollLeft=0)}.bind(this),this.element.addEventListener("scroll",this._onScroll),this.listening=!0,!0}removeListeners(){this.listening=!1,"undefined"!=typeof ResizeObserver&&this.ro?this.ro.disconnect():this.element&&(this.element.removeEventListener("overflow",this._checkOverflowAfterResize,!1),this.element.removeEventListener("underflow",this._checkOverflowAfterResize,!1)),this.element&&this.element.removeEventListener("scroll",this._onScroll)}addResizeObserver(e){let t=this.wrapper,n=t.getBoundingClientRect().height;this.ro=new ResizeObserver((r=>{this.listening&&requestAnimationFrame((()=>{for(let a of r){const r=a.contentRect;r.height>n?(this.checkOverflowAfterResize(e),n=t.getBoundingClientRect().height):r.height<n&&(this.checkUnderflowAfterResize(e),n=r.height)}}))})),this.ro.observe(t)}checkOverflowAfterResize(e){if(!this.listening||!this.layoutMethod)return;let t=this.layoutMethod.findBreakToken(this.wrapper,e,this.startToken);t&&(this.endToken=t,this._onOverflow&&this._onOverflow(t))}checkUnderflowAfterResize(e){if(!this.listening||!this.layoutMethod)return;let t=this.layoutMethod.findEndToken(this.wrapper,e);t&&this._onUnderflow&&this._onUnderflow(t)}destroy(){this.removeListeners(),this.element.remove(),this.element=void 0,this.wrapper=void 0}}L(ve.prototype);class xe{constructor(e,t){return e&&e.nodeType?this.dom=this.add(e):"string"==typeof e&&(this.dom=this.parse(e)),this.dom}parse(e,t){let n=document.createRange().createContextualFragment(e);return this.addRefs(n),n}add(e){return this.addRefs(e),e}addRefs(e){var t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,null,!1);let n=t.nextNode();for(;n;){if(!n.hasAttribute("data-ref")){let e=M();n.setAttribute("data-ref",e)}n.id&&n.setAttribute("data-id",n.id),n=t.nextNode()}}find(e){return this.refs[e]}destroy(){this.refs=void 0,this.dom=void 0}}class ke{constructor(e){this._q=[],this.context=e,this.tick=requestAnimationFrame,this.running=!1,this.paused=!1}enqueue(){var e,t,n=[].shift.call(arguments),r=arguments;if(!n)throw new Error("No Task Provided");return t="function"==typeof n?{task:n,args:r,deferred:e=new R,promise:e.promise}:{promise:n},this._q.push(t),0!=this.paused||this.running||this.run(),t.promise}dequeue(){var e,t,n;return!this._q.length||this.paused?((e=new R).deferred.resolve(),e.promise):(t=(e=this._q.shift()).task)?(n=t.apply(this.context,e.args))&&"function"==typeof n.then?n.then(function(){e.deferred.resolve.apply(this.context,arguments)}.bind(this),function(){e.deferred.reject.apply(this.context,arguments)}.bind(this)):(e.deferred.resolve.apply(this.context,n),e.promise):e.promise?e.promise:void 0}dump(){for(;this._q.length;)this.dequeue()}run(){return this.running||(this.running=!0,this.defered=new R),this.tick.call(window,(()=>{this._q.length?this.dequeue().then(function(){this.run()}.bind(this)):(this.defered.resolve(),this.running=void 0)})),1==this.paused&&(this.paused=!1),this.defered.promise}flush(){return this.running?this.running:this._q.length?(this.running=this.dequeue().then(function(){return this.running=void 0,this.flush()}.bind(this)),this.running):void 0}clear(){this._q=[]}length(){return this._q.length}pause(){this.paused=!0}stop(){this._q=[],this.running=!1,this.paused=!0}}class we{constructor(e,t,n){this.settings=n||{},this.hooks={},this.hooks.beforeParsed=new B(this),this.hooks.filter=new B(this),this.hooks.afterParsed=new B(this),this.hooks.beforePageLayout=new B(this),this.hooks.onPageLayout=new B(this),this.hooks.layout=new B(this),this.hooks.renderNode=new B(this),this.hooks.layoutNode=new B(this),this.hooks.onOverflow=new B(this),this.hooks.afterOverflowRemoved=new B(this),this.hooks.onBreakToken=new B,this.hooks.beforeRenderResult=new B(this),this.hooks.afterPageLayout=new B(this),this.hooks.finalizePage=new B(this),this.hooks.afterRendered=new B(this),this.pages=[],this.total=0,this.q=new ke(this),this.stopped=!1,this.rendered=!1,this.content=e,this.charsPerBreak=[],this.maxChars,e&&this.flow(e,t)}setup(e){this.pagesArea=document.createElement("div"),this.pagesArea.classList.add("pagedjs_pages"),e?e.appendChild(this.pagesArea):document.querySelector("body").appendChild(this.pagesArea),this.pageTemplate=document.createElement("template"),this.pageTemplate.innerHTML='\n<div class="pagedjs_page">\n\t<div class="pagedjs_sheet">\n\t\t<div class="pagedjs_bleed pagedjs_bleed-top">\n\t\t\t<div class="pagedjs_marks-crop"></div>\n\t\t\t<div class="pagedjs_marks-middle">\n\t\t\t\t<div class="pagedjs_marks-cross"></div>\n\t\t\t</div>\n\t\t\t<div class="pagedjs_marks-crop"></div>\n\t\t</div>\n\t\t<div class="pagedjs_bleed pagedjs_bleed-bottom">\n\t\t\t<div class="pagedjs_marks-crop"></div>\n\t\t\t<div class="pagedjs_marks-middle">\n\t\t\t\t<div class="pagedjs_marks-cross"></div>\n\t\t\t</div>\t\t<div class="pagedjs_marks-crop"></div>\n\t\t</div>\n\t\t<div class="pagedjs_bleed pagedjs_bleed-left">\n\t\t\t<div class="pagedjs_marks-crop"></div>\n\t\t\t<div class="pagedjs_marks-middle">\n\t\t\t\t<div class="pagedjs_marks-cross"></div>\n\t\t\t</div>\t\t<div class="pagedjs_marks-crop"></div>\n\t\t</div>\n\t\t<div class="pagedjs_bleed pagedjs_bleed-right">\n\t\t\t<div class="pagedjs_marks-crop"></div>\n\t\t\t<div class="pagedjs_marks-middle">\n\t\t\t\t<div class="pagedjs_marks-cross"></div>\n\t\t\t</div>\n\t\t\t<div class="pagedjs_marks-crop"></div>\n\t\t</div>\n\t\t<div class="pagedjs_pagebox">\n\t\t\t<div class="pagedjs_margin-top-left-corner-holder">\n\t\t\t\t<div class="pagedjs_margin pagedjs_margin-top-left-corner"><div class="pagedjs_margin-content"></div></div>\n\t\t\t</div>\n\t\t\t<div class="pagedjs_margin-top">\n\t\t\t\t<div class="pagedjs_margin pagedjs_margin-top-left"><div class="pagedjs_margin-content"></div></div>\n\t\t\t\t<div class="pagedjs_margin pagedjs_margin-top-center"><div class="pagedjs_margin-content"></div></div>\n\t\t\t\t<div class="pagedjs_margin pagedjs_margin-top-right"><div class="pagedjs_margin-content"></div></div>\n\t\t\t</div>\n\t\t\t<div class="pagedjs_margin-top-right-corner-holder">\n\t\t\t\t<div class="pagedjs_margin pagedjs_margin-top-right-corner"><div class="pagedjs_margin-content"></div></div>\n\t\t\t</div>\n\t\t\t<div class="pagedjs_margin-right">\n\t\t\t\t<div class="pagedjs_margin pagedjs_margin-right-top"><div class="pagedjs_margin-content"></div></div>\n\t\t\t\t<div class="pagedjs_margin pagedjs_margin-right-middle"><div class="pagedjs_margin-content"></div></div>\n\t\t\t\t<div class="pagedjs_margin pagedjs_margin-right-bottom"><div class="pagedjs_margin-content"></div></div>\n\t\t\t</div>\n\t\t\t<div class="pagedjs_margin-left">\n\t\t\t\t<div class="pagedjs_margin pagedjs_margin-left-top"><div class="pagedjs_margin-content"></div></div>\n\t\t\t\t<div class="pagedjs_margin pagedjs_margin-left-middle"><div class="pagedjs_margin-content"></div></div>\n\t\t\t\t<div class="pagedjs_margin pagedjs_margin-left-bottom"><div class="pagedjs_margin-content"></div></div>\n\t\t\t</div>\n\t\t\t<div class="pagedjs_margin-bottom-left-corner-holder">\n\t\t\t\t<div class="pagedjs_margin pagedjs_margin-bottom-left-corner"><div class="pagedjs_margin-content"></div></div>\n\t\t\t</div>\n\t\t\t<div class="pagedjs_margin-bottom">\n\t\t\t\t<div class="pagedjs_margin pagedjs_margin-bottom-left"><div class="pagedjs_margin-content"></div></div>\n\t\t\t\t<div class="pagedjs_margin pagedjs_margin-bottom-center"><div class="pagedjs_margin-content"></div></div>\n\t\t\t\t<div class="pagedjs_margin pagedjs_margin-bottom-right"><div class="pagedjs_margin-content"></div></div>\n\t\t\t</div>\n\t\t\t<div class="pagedjs_margin-bottom-right-corner-holder">\n\t\t\t\t<div class="pagedjs_margin pagedjs_margin-bottom-right-corner"><div class="pagedjs_margin-content"></div></div>\n\t\t\t</div>\n\t\t\t<div class="pagedjs_area">\n\t\t\t\t<div class="pagedjs_page_content"></div>\n\t\t\t\t<div class="pagedjs_footnote_area">\n\t\t\t\t\t<div class="pagedjs_footnote_content pagedjs_footnote_empty">\n\t\t\t\t\t\t<div class="pagedjs_footnote_inner_content"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>'}async flow(e,t){let n;await this.hooks.beforeParsed.trigger(e,this),n=new xe(e),this.hooks.filter.triggerSync(n),this.source=n,this.breakToken=void 0,this.pagesArea&&this.pageTemplate?(this.q.clear(),this.removePages()):this.setup(t),this.emit("rendering",n),await this.hooks.afterParsed.trigger(n,this),await this.loadFonts();let r=await this.render(n,this.breakToken);for(;r.canceled;)this.start(),r=await this.render(n,this.breakToken);return this.rendered=!0,this.pagesArea.style.setProperty("--pagedjs-page-count",this.total),await this.hooks.afterRendered.trigger(this.pages,this),this.emit("rendered",this.pages),this}async render(e,t){let n,r=this.layout(e,t),a=!1;for(;!a;)n=await this.q.enqueue((()=>this.renderAsync(r))),a=n.done;return n}start(){this.rendered=!1,this.stopped=!1}stop(){this.stopped=!0}renderOnIdle(e){return new Promise((t=>{N((async()=>{if(this.stopped)return t({done:!0,canceled:!0});let n=await e.next();this.stopped?t({done:!0,canceled:!0}):t(n)}))}))}async renderAsync(e){if(this.stopped)return{done:!0,canceled:!0};let t=await e.next();return this.stopped?{done:!0,canceled:!0}:t}async handleBreaks(e,t){let n,r,a,i=this.total+1,o=i%2==0?"left":"right",s=i%2==0?"verso":"recto";1!==i&&(e&&void 0!==e.dataset&&void 0!==e.dataset.previousBreakAfter&&(n=e.dataset.previousBreakAfter),e&&void 0!==e.dataset&&void 0!==e.dataset.breakBefore&&(r=e.dataset.breakBefore),t?a=this.addPage(!0):(!n||"left"!==n&&"right"!==n||n===o)&&(!n||"verso"!==n&&"recto"!==n||n===s)&&(!r||"left"!==r&&"right"!==r||r===o)&&(!r||"verso"!==r&&"recto"!==r||r===s)||(a=this.addPage(!0)),a&&(await this.hooks.beforePageLayout.trigger(a,void 0,void 0,this),this.emit("page",a),await this.hooks.afterPageLayout.trigger(a.element,a,void 0,this),await this.hooks.finalizePage.trigger(a.element,a,void 0,this),this.emit("renderedPage",a)))}async*layout(e,t){let n=t||!1,r=[];for(;void 0!==n;){n&&n.node?await this.handleBreaks(n.node):await this.handleBreaks(e.firstChild);let t=this.addPage();if(await this.hooks.beforePageLayout.trigger(t,e,n,this),this.emit("page",t),n=await t.layout(e,n,this.maxChars),n){let e=n.toJSON(!0);if(r.lastIndexOf(e)>-1){let e=new be("Layout repeated",[n.node]);return console.error("Layout repeated at: ",n.node),e}r.push(e)}await this.hooks.afterPageLayout.trigger(t.element,t,n,this),await this.hooks.finalizePage.trigger(t.element,t,void 0,this),this.emit("renderedPage",t),this.recoredCharLength(t.wrapper.textContent.length),yield n}}recoredCharLength(e){0!==e&&(this.charsPerBreak.push(e),this.charsPerBreak.length>4&&this.charsPerBreak.shift(),this.maxChars=this.charsPerBreak.reduce(((e,t)=>e+t),0)/this.charsPerBreak.length)}removePages(e=0){if(!(e>=this.pages.length)){for(let t=e;t<this.pages.length;t++)this.pages[t].destroy();e>0?this.pages.splice(e):this.pages=[],this.total=this.pages.length}}addPage(e){let t=this.pages[this.pages.length-1],n=new ve(this.pagesArea,this.pageTemplate,e,this.hooks,this.settings);return this.pages.push(n),n.create(void 0,t&&t.element),n.index(this.total),e||(n.onOverflow((e=>{if(console.warn("overflow on",n.id,e),this.rendered)return;let t=this.pages.indexOf(n)+1;this.stop(),this.breakToken=e,this.removePages(t),!0===this.rendered&&(this.rendered=!1,this.q.enqueue((async()=>{this.start(),await this.render(this.source,this.breakToken),this.rendered=!0})))})),n.onUnderflow((e=>{}))),this.total=this.pages.length,n}async clonePage(e){let t=this.pages[this.pages.length-1],n=new ve(this.pagesArea,this.pageTemplate,!1,this.hooks);this.pages.push(n),n.create(void 0,t&&t.element),n.index(this.total),await this.hooks.beforePageLayout.trigger(n,void 0,void 0,this),this.emit("page",n);for(const t of e.element.classList)"pagedjs_left_page"!==t&&"pagedjs_right_page"!==t&&n.element.classList.add(t);await this.hooks.afterPageLayout.trigger(n.element,n,void 0,this),await this.hooks.finalizePage.trigger(n.element,n,void 0,this),this.emit("renderedPage",n)}loadFonts(){let e=[];return(document.fonts||[]).forEach((t=>{if("loaded"!==t.status){let n=t.load().then((e=>t.family),(e=>(console.warn("Failed to preload font-family:",t.family),t.family)));e.push(n)}})),Promise.all(e).catch((e=>{console.warn(e)}))}destroy(){this.pagesArea.remove(),this.pageTemplate.remove()}}L(we.prototype);var Ce={exports:{}},Te={};function _e(e){return{prev:null,next:null,data:e}}function ze(e,t,n){var r;return null!==Ae?(r=Ae,Ae=Ae.cursor,r.prev=t,r.next=n,r.cursor=e.cursor):r={prev:t,next:n,cursor:e.cursor},e.cursor=r,r}function Oe(e){var t=e.cursor;e.cursor=t.cursor,t.prev=null,t.next=null,t.cursor=Ae,Ae=t}var Ae=null,Ee=function(){this.cursor=null,this.head=null,this.tail=null};Ee.createItem=_e,Ee.prototype.createItem=_e,Ee.prototype.updateCursors=function(e,t,n,r){for(var a=this.cursor;null!==a;)a.prev===e&&(a.prev=t),a.next===n&&(a.next=r),a=a.cursor},Ee.prototype.getSize=function(){for(var e=0,t=this.head;t;)e++,t=t.next;return e},Ee.prototype.fromArray=function(e){var t=null;this.head=null;for(var n=0;n<e.length;n++){var r=_e(e[n]);null!==t?t.next=r:this.head=r,r.prev=t,t=r}return this.tail=t,this},Ee.prototype.toArray=function(){for(var e=this.head,t=[];e;)t.push(e.data),e=e.next;return t},Ee.prototype.toJSON=Ee.prototype.toArray,Ee.prototype.isEmpty=function(){return null===this.head},Ee.prototype.first=function(){return this.head&&this.head.data},Ee.prototype.last=function(){return this.tail&&this.tail.data},Ee.prototype.each=function(e,t){var n;void 0===t&&(t=this);for(var r=ze(this,null,this.head);null!==r.next;)n=r.next,r.next=n.next,e.call(t,n.data,n,this);Oe(this)},Ee.prototype.forEach=Ee.prototype.each,Ee.prototype.eachRight=function(e,t){var n;void 0===t&&(t=this);for(var r=ze(this,this.tail,null);null!==r.prev;)n=r.prev,r.prev=n.prev,e.call(t,n.data,n,this);Oe(this)},Ee.prototype.forEachRight=Ee.prototype.eachRight,Ee.prototype.reduce=function(e,t,n){var r;void 0===n&&(n=this);for(var a=ze(this,null,this.head),i=t;null!==a.next;)r=a.next,a.next=r.next,i=e.call(n,i,r.data,r,this);return Oe(this),i},Ee.prototype.reduceRight=function(e,t,n){var r;void 0===n&&(n=this);for(var a=ze(this,this.tail,null),i=t;null!==a.prev;)r=a.prev,a.prev=r.prev,i=e.call(n,i,r.data,r,this);return Oe(this),i},Ee.prototype.nextUntil=function(e,t,n){if(null!==e){var r;void 0===n&&(n=this);for(var a=ze(this,null,e);null!==a.next&&(r=a.next,a.next=r.next,!t.call(n,r.data,r,this)););Oe(this)}},Ee.prototype.prevUntil=function(e,t,n){if(null!==e){var r;void 0===n&&(n=this);for(var a=ze(this,e,null);null!==a.prev&&(r=a.prev,a.prev=r.prev,!t.call(n,r.data,r,this)););Oe(this)}},Ee.prototype.some=function(e,t){var n=this.head;for(void 0===t&&(t=this);null!==n;){if(e.call(t,n.data,n,this))return!0;n=n.next}return!1},Ee.prototype.map=function(e,t){var n=new Ee,r=this.head;for(void 0===t&&(t=this);null!==r;)n.appendData(e.call(t,r.data,r,this)),r=r.next;return n},Ee.prototype.filter=function(e,t){var n=new Ee,r=this.head;for(void 0===t&&(t=this);null!==r;)e.call(t,r.data,r,this)&&n.appendData(r.data),r=r.next;return n},Ee.prototype.clear=function(){this.head=null,this.tail=null},Ee.prototype.copy=function(){for(var e=new Ee,t=this.head;null!==t;)e.insert(_e(t.data)),t=t.next;return e},Ee.prototype.prepend=function(e){return this.updateCursors(null,e,this.head,e),null!==this.head?(this.head.prev=e,e.next=this.head):this.tail=e,this.head=e,this},Ee.prototype.prependData=function(e){return this.prepend(_e(e))},Ee.prototype.append=function(e){return this.insert(e)},Ee.prototype.appendData=function(e){return this.insert(_e(e))},Ee.prototype.insert=function(e,t){if(null!=t)if(this.updateCursors(t.prev,e,t,e),null===t.prev){if(this.head!==t)throw new Error("before doesn't belong to list");this.head=e,t.prev=e,e.next=t,this.updateCursors(null,e)}else t.prev.next=e,e.prev=t.prev,t.prev=e,e.next=t;else this.updateCursors(this.tail,e,null,e),null!==this.tail?(this.tail.next=e,e.prev=this.tail):this.head=e,this.tail=e;return this},Ee.prototype.insertData=function(e,t){return this.insert(_e(e),t)},Ee.prototype.remove=function(e){if(this.updateCursors(e,e.prev,e,e.next),null!==e.prev)e.prev.next=e.next;else{if(this.head!==e)throw new Error("item doesn't belong to list");this.head=e.next}if(null!==e.next)e.next.prev=e.prev;else{if(this.tail!==e)throw new Error("item doesn't belong to list");this.tail=e.prev}return e.prev=null,e.next=null,e},Ee.prototype.push=function(e){this.insert(_e(e))},Ee.prototype.pop=function(){if(null!==this.tail)return this.remove(this.tail)},Ee.prototype.unshift=function(e){this.prepend(_e(e))},Ee.prototype.shift=function(){if(null!==this.head)return this.remove(this.head)},Ee.prototype.prependList=function(e){return this.insertList(e,this.head)},Ee.prototype.appendList=function(e){return this.insertList(e)},Ee.prototype.insertList=function(e,t){return null===e.head||(null!=t?(this.updateCursors(t.prev,e.tail,t,e.head),null!==t.prev?(t.prev.next=e.head,e.head.prev=t.prev):this.head=e.head,t.prev=e.tail,e.tail.next=t):(this.updateCursors(this.tail,e.tail,null,e.head),null!==this.tail?(this.tail.next=e.head,e.head.prev=this.tail):this.head=e.head,this.tail=e.tail),e.head=null,e.tail=null),this},Ee.prototype.replace=function(e,t){"head"in t?this.insertList(t,e):this.insert(t,e),this.remove(e)};var je=Ee,We=function(e,t){var n=Object.create(SyntaxError.prototype),r=new Error;return n.name=e,n.message=t,Object.defineProperty(n,"stack",{get:function(){return(r.stack||"").replace(/^(.+\n){1,3}/,e+": "+t+"\n")}}),n},Le=We,Be=100,Pe=60,qe=" ";function Me(e,t){function n(e,t){return r.slice(e,t).map((function(t,n){for(var r=String(e+n+1);r.length<l;)r=" "+r;return r+" |"+t})).join("\n")}var r=e.source.split(/\r\n?|\n|\f/),a=e.line,i=e.column,o=Math.max(1,a-t)-1,s=Math.min(a+t,r.length+1),l=Math.max(4,String(s).length)+1,d=0;(i+=(qe.length-1)*(r[a-1].substr(0,i-1).match(/\t/g)||[]).length)>Be&&(d=i-Pe+3,i=Pe-2);for(var p=o;p<=s;p++)p>=0&&p<r.length&&(r[p]=r[p].replace(/\t/g,qe),r[p]=(d>0&&r[p].length>d?"…":"")+r[p].substr(d,Be-2)+(r[p].length>d+Be-1?"…":""));return[n(o,a),new Array(i+l+2).join("-")+"^",n(a,s)].filter(Boolean).join("\n")}var Ie=function(e,t,n,r,a){var i=Le("SyntaxError",e);return i.source=t,i.offset=n,i.line=r,i.column=a,i.sourceFragment=function(e){return Me(i,isNaN(e)?0:e)},Object.defineProperty(i,"formattedMessage",{get:function(){return"Parse error: "+i.message+"\n"+Me(i,2)}}),i.parseError={offset:n,line:r,column:a},i},De={EOF:0,Ident:1,Function:2,AtKeyword:3,Hash:4,String:5,BadString:6,Url:7,BadUrl:8,Delim:9,Number:10,Percentage:11,Dimension:12,WhiteSpace:13,CDO:14,CDC:15,Colon:16,Semicolon:17,Comma:18,LeftSquareBracket:19,RightSquareBracket:20,LeftParenthesis:21,RightParenthesis:22,LeftCurlyBracket:23,RightCurlyBracket:24,Comment:25},Re=Object.keys(De).reduce((function(e,t){return e[De[t]]=t,e}),{}),Ne={TYPE:De,NAME:Re},Ge=0;function Fe(e){return e>=48&&e<=57}function Ve(e){return e>=65&&e<=90}function Ue(e){return e>=97&&e<=122}function He(e){return Ve(e)||Ue(e)}function $e(e){return e>=128}function Ye(e){return He(e)||$e(e)||95===e}function Ke(e){return e>=0&&e<=8||11===e||e>=14&&e<=31||127===e}function Ze(e){return 10===e||13===e||12===e}function Qe(e){return Ze(e)||32===e||9===e}function Je(e,t){return 92===e&&(!Ze(t)&&t!==Ge)}var Xe=new Array(128);tt.Eof=128,tt.WhiteSpace=130,tt.Digit=131,tt.NameStart=132,tt.NonPrintable=133;for(var et=0;et<Xe.length;et++)switch(!0){case Qe(et):Xe[et]=tt.WhiteSpace;break;case Fe(et):Xe[et]=tt.Digit;break;case Ye(et):Xe[et]=tt.NameStart;break;case Ke(et):Xe[et]=tt.NonPrintable;break;default:Xe[et]=et||tt.Eof}function tt(e){return e<128?Xe[e]:tt.NameStart}var nt={isDigit:Fe,isHexDigit:function(e){return Fe(e)||e>=65&&e<=70||e>=97&&e<=102},isUppercaseLetter:Ve,isLowercaseLetter:Ue,isLetter:He,isNonAscii:$e,isNameStart:Ye,isName:function(e){return Ye(e)||Fe(e)||45===e},isNonPrintable:Ke,isNewline:Ze,isWhiteSpace:Qe,isValidEscape:Je,isIdentifierStart:function(e,t,n){return 45===e?Ye(t)||45===t||Je(t,n):!!Ye(e)||92===e&&Je(e,t)},isNumberStart:function(e,t,n){return 43===e||45===e?Fe(t)?2:46===t&&Fe(n)?3:0:46===e?Fe(t)?2:0:Fe(e)?1:0},isBOM:function(e){return 65279===e||65534===e?1:0},charCodeCategory:tt},rt=nt.isDigit,at=nt.isHexDigit,it=nt.isUppercaseLetter,ot=nt.isName,st=nt.isWhiteSpace,lt=nt.isValidEscape;function dt(e,t){return t<e.length?e.charCodeAt(t):0}function pt(e,t,n){return 13===n&&10===dt(e,t+1)?2:1}function ct(e,t,n){var r=e.charCodeAt(t);return it(r)&&(r|=32),r===n}function ut(e,t){for(;t<e.length&&rt(e.charCodeAt(t));t++);return t}function mt(e,t){if(at(dt(e,(t+=2)-1))){for(var n=Math.min(e.length,t+5);t<n&&at(dt(e,t));t++);var r=dt(e,t);st(r)&&(t+=pt(e,t,r))}return t}var ht={consumeEscaped:mt,consumeName:function(e,t){for(;t<e.length;t++){var n=e.charCodeAt(t);if(!ot(n)){if(!lt(n,dt(e,t+1)))break;t=mt(e,t)-1}}return t},consumeNumber:function(e,t){var n=e.charCodeAt(t);if(43!==n&&45!==n||(n=e.charCodeAt(t+=1)),rt(n)&&(t=ut(e,t+1),n=e.charCodeAt(t)),46===n&&rt(e.charCodeAt(t+1))&&(n=e.charCodeAt(t+=2),t=ut(e,t)),ct(e,t,101)){var r=0;45!==(n=e.charCodeAt(t+1))&&43!==n||(r=1,n=e.charCodeAt(t+2)),rt(n)&&(t=ut(e,t+1+r+1))}return t},consumeBadUrlRemnants:function(e,t){for(;t<e.length;t++){var n=e.charCodeAt(t);if(41===n){t++;break}lt(n,dt(e,t+1))&&(t=mt(e,t))}return t},cmpChar:ct,cmpStr:function(e,t,n,r){if(n-t!==r.length)return!1;if(t<0||n>e.length)return!1;for(var a=t;a<n;a++){var i=e.charCodeAt(a),o=r.charCodeAt(a-t);if(it(i)&&(i|=32),i!==o)return!1}return!0},getNewlineLength:pt,findWhiteSpaceStart:function(e,t){for(;t>=0&&st(e.charCodeAt(t));t--);return t+1},findWhiteSpaceEnd:function(e,t){for(;t<e.length&&st(e.charCodeAt(t));t++);return t}},gt=Ne.TYPE,ft=Ne.NAME,yt=ht.cmpStr,bt=gt.EOF,St=gt.WhiteSpace,vt=gt.Comment,xt=16777215,kt=24,wt=function(){this.offsetAndType=null,this.balance=null,this.reset()};wt.prototype={reset:function(){this.eof=!1,this.tokenIndex=-1,this.tokenType=0,this.tokenStart=this.firstCharOffset,this.tokenEnd=this.firstCharOffset},lookupType:function(e){return(e+=this.tokenIndex)<this.tokenCount?this.offsetAndType[e]>>kt:bt},lookupOffset:function(e){return(e+=this.tokenIndex)<this.tokenCount?this.offsetAndType[e-1]&xt:this.source.length},lookupValue:function(e,t){return(e+=this.tokenIndex)<this.tokenCount&&yt(this.source,this.offsetAndType[e-1]&xt,this.offsetAndType[e]&xt,t)},getTokenStart:function(e){return e===this.tokenIndex?this.tokenStart:e>0?e<this.tokenCount?this.offsetAndType[e-1]&xt:this.offsetAndType[this.tokenCount]&xt:this.firstCharOffset},getRawLength:function(e,t){var n,r=e,a=this.offsetAndType[Math.max(r-1,0)]&xt;e:for(;r<this.tokenCount&&!((n=this.balance[r])<e);r++)switch(t(this.offsetAndType[r]>>kt,this.source,a)){case 1:break e;case 2:r++;break e;default:this.balance[n]===r&&(r=n),a=this.offsetAndType[r]&xt}return r-this.tokenIndex},isBalanceEdge:function(e){return this.balance[this.tokenIndex]<e},isDelim:function(e,t){return t?this.lookupType(t)===gt.Delim&&this.source.charCodeAt(this.lookupOffset(t))===e:this.tokenType===gt.Delim&&this.source.charCodeAt(this.tokenStart)===e},getTokenValue:function(){return this.source.substring(this.tokenStart,this.tokenEnd)},getTokenLength:function(){return this.tokenEnd-this.tokenStart},substrToCursor:function(e){return this.source.substring(e,this.tokenStart)},skipWS:function(){for(var e=this.tokenIndex,t=0;e<this.tokenCount&&this.offsetAndType[e]>>kt===St;e++,t++);t>0&&this.skip(t)},skipSC:function(){for(;this.tokenType===St||this.tokenType===vt;)this.next()},skip:function(e){var t=this.tokenIndex+e;t<this.tokenCount?(this.tokenIndex=t,this.tokenStart=this.offsetAndType[t-1]&xt,t=this.offsetAndType[t],this.tokenType=t>>kt,this.tokenEnd=t&xt):(this.tokenIndex=this.tokenCount,this.next())},next:function(){var e=this.tokenIndex+1;e<this.tokenCount?(this.tokenIndex=e,this.tokenStart=this.tokenEnd,e=this.offsetAndType[e],this.tokenType=e>>kt,this.tokenEnd=e&xt):(this.tokenIndex=this.tokenCount,this.eof=!0,this.tokenType=bt,this.tokenStart=this.tokenEnd=this.source.length)},forEachToken(e){for(var t=0,n=this.firstCharOffset;t<this.tokenCount;t++){var r=n,a=this.offsetAndType[t],i=a&xt;n=i,e(a>>kt,r,i,t)}},dump(){var e=new Array(this.tokenCount);return this.forEachToken(((t,n,r,a)=>{e[a]={idx:a,type:ft[t],chunk:this.source.substring(n,r),balance:this.balance[a]}})),e}};var Ct=wt;function Tt(e){return e}function _t(e,t,n,r){var a,i;switch(e.type){case"Group":a=function(e,t,n,r){var a=" "===e.combinator||r?e.combinator:" "+e.combinator+" ",i=e.terms.map((function(e){return _t(e,t,n,r)})).join(a);return(e.explicit||n)&&(i=(r||","===i[0]?"[":"[ ")+i+(r?"]":" ]")),i}(e,t,n,r)+(e.disallowEmpty?"!":"");break;case"Multiplier":return _t(e.term,t,n,r)+t(0===(i=e).min&&0===i.max?"*":0===i.min&&1===i.max?"?":1===i.min&&0===i.max?i.comma?"#":"+":1===i.min&&1===i.max?"":(i.comma?"#":"")+(i.min===i.max?"{"+i.min+"}":"{"+i.min+","+(0!==i.max?i.max:"")+"}"),e);case"Type":a="<"+e.name+(e.opts?t(function(e){if("Range"===e.type)return" ["+(null===e.min?"-∞":e.min)+","+(null===e.max?"∞":e.max)+"]";throw new Error("Unknown node type `"+e.type+"`")}(e.opts),e.opts):"")+">";break;case"Property":a="<'"+e.name+"'>";break;case"Keyword":a=e.name;break;case"AtKeyword":a="@"+e.name;break;case"Function":a=e.name+"(";break;case"String":case"Token":a=e.value;break;case"Comma":a=",";break;default:throw new Error("Unknown node type `"+e.type+"`")}return t(a,e)}var zt=function(e,t){var n=Tt,r=!1,a=!1;return"function"==typeof t?n=t:t&&(r=Boolean(t.forceBraces),a=Boolean(t.compact),"function"==typeof t.decorate&&(n=t.decorate)),_t(e,n,r,a)};const Ot=We,At=zt,Et={offset:0,line:1,column:1};function jt(e,t){const n=e&&e.loc&&e.loc[t];return n?"line"in n?Wt(n):n:null}function Wt({offset:e,line:t,column:n},r){const a={offset:e,line:t,column:n};if(r){const e=r.split(/\n|\r\n?|\f/);a.offset+=r.length,a.line+=e.length-1,a.column=1===e.length?a.column+r.length:e.pop().length+1}return a}var Lt=function(e,t){const n=Ot("SyntaxReferenceError",e+(t?" `"+t+"`":""));return n.reference=t,n},Bt=function(e,t,n,r){const a=Ot("SyntaxMatchError",e),{css:i,mismatchOffset:o,mismatchLength:s,start:l,end