Files
2026-02-09 10:48:21 +01:00

1 line
6.2 KiB
JavaScript

define(["exports"],function(_exports){function _classPrivateMethodInitSpec(e,a){(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e,a),a.add(e)}function _createForOfIteratorHelper(r,e){var o,a,u,n,t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(t)return u=!(a=!0),{s:function(){t=t.call(r)},n:function(){var r=t.next();return a=r.done,r},e:function(r){u=!0,o=r},f:function(){try{a||null==t.return||t.return()}finally{if(u)throw o}}};if(Array.isArray(r)||(t=function(r,a){{var t;if(r)return"string"==typeof r?_arrayLikeToArray(r,a):"Map"===(t="Object"===(t={}.toString.call(r).slice(8,-1))&&r.constructor?r.constructor.name:t)||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}(r))||e&&r&&"number"==typeof r.length)return t&&(r=t),n=0,{s:e=function(){},n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:e};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.TOCProgress=_exports.SectionProgress=void 0;function assignIDs(toc){function assignID(item){if(item.id=id++,item.subitems){var _step,_iterator=_createForOfIteratorHelper(item.subitems);try{for(_iterator.s();!(_step=_iterator.n()).done;){var subitem=_step.value;assignID(subitem)}}catch(err){_iterator.e(err)}finally{_iterator.f()}}}var _step2,id=0,_iterator2=_createForOfIteratorHelper(toc);try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var item=_step2.value;assignID(item)}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}}function flatten(items){return items.map(function(item){var _item$subitems;return null!=(_item$subitems=item.subitems)&&_item$subitems.length?[item,flatten(item.subitems)].flat():item}).flat()}_exports.TOCProgress=function(){return babelHelpers.createClass(function TOCProgress(){babelHelpers.classCallCheck(this,TOCProgress)},[{key:"init",value:async function(_ref){var _step3,toc=_ref.toc,ids=_ref.ids,splitHref=_ref.splitHref,_ref=_ref.getFragment,items=(assignIDs(toc),flatten(toc)),grouped=new Map,_iterator3=_createForOfIteratorHelper(items.entries());try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var _await$splitHref,_step3$value=babelHelpers.slicedToArray(_step3.value,2),i=_step3$value[0],item=_step3$value[1],_ref2=null!=(_await$splitHref=await splitHref(null==item?void 0:item.href))?_await$splitHref:[],_ref3=babelHelpers.slicedToArray(_ref2,2),id=_ref3[0],value={fragment:_ref3[1],item:item};grouped.has(id)?grouped.get(id).items.push(value):grouped.set(id,{prev:items[i-1],items:[value]})}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}var _step4,map=new Map,_iterator4=_createForOfIteratorHelper(ids.entries());try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var _step4$value=babelHelpers.slicedToArray(_step4.value,2),_i=_step4$value[0],_id=_step4$value[1];grouped.has(_id)?map.set(_id,grouped.get(_id)):map.set(_id,map.get(ids[_i-1]))}}catch(err){_iterator4.e(err)}finally{_iterator4.f()}this.ids=ids,this.map=map,this.getFragment=_ref}},{key:"getProgress",value:function(index,range){if(this.ids){index=this.ids[index],index=this.map.get(index);if(!index)return null;var prev=index.prev,items=index.items;if(!items)return prev;if(!range||1===items.length&&!items[0].fragment)return items[0].item;var _step5,doc=range.startContainer.getRootNode(),_iterator5=_createForOfIteratorHelper(items.entries());try{for(_iterator5.s();!(_step5=_iterator5.n()).done;){var _items$item,_items,_step5$value=babelHelpers.slicedToArray(_step5.value,2),i=_step5$value[0],fragment=_step5$value[1].fragment,el=this.getFragment(doc,fragment);if(el&&0<range.comparePoint(el,0))return null!=(_items$item=null==(_items=items[i-1])?void 0:_items.item)?_items$item:prev}}catch(err){_iterator5.e(err)}finally{_iterator5.f()}return items[items.length-1].item}}}])}();var _SectionProgress_brand=new WeakSet;_exports.SectionProgress=function(){return babelHelpers.createClass(function SectionProgress(sections,sizePerLoc,sizePerTimeUnit){babelHelpers.classCallCheck(this,SectionProgress),_classPrivateMethodInitSpec(this,_SectionProgress_brand),this.sizes=sections.map(function(s){return"no"!=s.linear&&0<s.size?s.size:0}),this.sizePerLoc=sizePerLoc,this.sizePerTimeUnit=sizePerTimeUnit,this.sizeTotal=this.sizes.reduce(function(a,b){return a+b},0),this.sectionFractions=function(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}(_SectionProgress_brand,this,_getSectionFractions).call(this)},[{key:"getProgress",value:function(index,fractionInSection){var pageFraction=2<arguments.length&&void 0!==arguments[2]?arguments[2]:0,sizes=this.sizes,sizePerLoc=this.sizePerLoc,sizePerTimeUnit=this.sizePerTimeUnit,sizeTotal=this.sizeTotal,_sizes$index=null!=(_sizes$index=sizes[index])?_sizes$index:0,size=sizes.slice(0,index).reduce(function(a,b){return a+b},0)+fractionInSection*_sizes$index,pageFraction=size+pageFraction*_sizes$index,remainingTotal=sizeTotal-size,_sizes$index=(1-fractionInSection)*_sizes$index;return{fraction:pageFraction/sizeTotal,section:{current:index,total:sizes.length},location:{current:Math.floor(size/sizePerLoc),next:Math.floor(pageFraction/sizePerLoc),total:Math.ceil(sizeTotal/sizePerLoc)},time:{section:_sizes$index/sizePerTimeUnit,total:remainingTotal/sizePerTimeUnit}}}},{key:"getSection",value:function(fraction){if(fraction<=0)return[0,0];if(1<=fraction)return[this.sizes.length-1,1];fraction+=Number.EPSILON;var sizeTotal=this.sizeTotal,index=this.sectionFractions.findIndex(function(x){return fraction<x})-1;if(index<0)return[0,0];for(;!this.sizes[index];)index++;return[index,(fraction-this.sectionFractions[index])/(this.sizes[index]/sizeTotal)]}}])}();function _getSectionFractions(){var _step6,sizeTotal=this.sizeTotal,results=[0],sum=0,_iterator6=_createForOfIteratorHelper(this.sizes);try{for(_iterator6.s();!(_step6=_iterator6.n()).done;){var size=_step6.value;results.push((sum+=size)/sizeTotal)}}catch(err){_iterator6.e(err)}finally{_iterator6.f()}return results}});