@internetarchive/bookreader 5.0.0-102 → 5.0.0-103
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/BookReader/BookReader.js +1 -1
- package/BookReader/BookReader.js.map +1 -1
- package/BookReader/ia-bookreader-bundle.js +141 -102
- package/BookReader/ia-bookreader-bundle.js.LICENSE.txt +6 -0
- package/BookReader/ia-bookreader-bundle.js.map +1 -1
- package/BookReader/plugins/plugin.chapters.js +1 -1
- package/BookReader/plugins/plugin.chapters.js.map +1 -1
- package/BookReader/plugins/plugin.experiments.js +1 -1
- package/BookReader/plugins/plugin.experiments.js.map +1 -1
- package/BookReader/plugins/plugin.search.js +1 -1
- package/BookReader/plugins/plugin.search.js.map +1 -1
- package/BookReader/plugins/plugin.text_selection.js +1 -1
- package/BookReader/plugins/plugin.text_selection.js.map +1 -1
- package/BookReader/plugins/plugin.translate.js +2 -2
- package/BookReader/plugins/plugin.translate.js.map +1 -1
- package/BookReader/plugins/plugin.tts.js +1 -1
- package/BookReader/plugins/plugin.tts.js.map +1 -1
- package/package.json +2 -2
- package/src/BookNavigator/assets/button-base.js +0 -1
- package/src/BookNavigator/bookmarks/bookmarks-provider.js +1 -1
- package/src/BookNavigator/downloads/downloads-provider.js +1 -1
- package/src/BookNavigator/search/search-provider.js +5 -1
- package/src/BookNavigator/visual-adjustments/visual-adjustments-provider.js +1 -1
- package/src/BookReader/Navbar/Navbar.js +10 -5
- package/src/plugins/plugin.chapters.js +1 -1
- package/src/plugins/plugin.experiments.js +1 -1
- package/src/plugins/translate/TranslationManager.js +6 -4
- package/src/plugins/tts/utils.js +43 -17
|
@@ -22,5 +22,5 @@
|
|
|
22
22
|
.stroke-color {
|
|
23
23
|
stroke: var(--iconStrokeColor);
|
|
24
24
|
}
|
|
25
|
-
`}render(){return c}}customElements.define("ia-icon-toc",s);var l,u,f,p,d,h,y=r(1041),v=r(9073),m=r(1669);function b(e){return b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},b(e)}function g(){g=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var o=t.placement;if(t.kind===n&&("static"===o||"prototype"===o)){var i="static"===o?e:r;this.defineClassElement(i,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],o={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,o)},this),e.forEach(function(e){if(!E(e))return r.push(e);var t=this.decorateElement(e,o);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var i=this.decorateConstructor(r,t);return n.push.apply(n,i.finishers),i.finishers=n,i},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],o=e.decorators,i=o.length-1;i>=0;i--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var c=this.fromElementDescriptor(e),s=this.toElementFinisherExtras((0,o[i])(c)||c);e=s.element,this.addElementPlacement(e,t),s.finisher&&n.push(s.finisher);var l=s.extras;if(l){for(var u=0;u<l.length;u++)this.addElementPlacement(l[u],t);r.push.apply(r,l)}}return{element:e,finishers:n,extras:r}},decorateConstructor:function(e,t){for(var r=[],n=t.length-1;n>=0;n--){var o=this.fromClassDescriptor(e),i=this.toClassDescriptor((0,t[n])(o)||o);if(void 0!==i.finisher&&r.push(i.finisher),void 0!==i.elements){e=i.elements;for(var a=0;a<e.length-1;a++)for(var c=a+1;c<e.length;c++)if(e[a].key===e[c].key&&e[a].placement===e[c].placement)throw new TypeError("Duplicated element ("+e[a].key+")")}}return{elements:e,finishers:r}},fromElementDescriptor:function(e){var t={kind:e.kind,key:e.key,placement:e.placement,descriptor:e.descriptor};return Object.defineProperty(t,Symbol.toStringTag,{value:"Descriptor",configurable:!0}),"field"===e.kind&&(t.initializer=e.initializer),t},toElementDescriptors:function(e){if(void 0!==e)return(t=e,function(e){if(Array.isArray(e))return e}(t)||j(t)||C(t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map(function(e){var t=this.toElementDescriptor(e);return this.disallowProperty(e,"finisher","An element descriptor"),this.disallowProperty(e,"extras","An element descriptor"),t},this);var t},toElementDescriptor:function(e){var t=e.kind+"";if("method"!==t&&"field"!==t)throw new TypeError('An element descriptor\'s .kind property must be either "method" or "field", but a decorator created an element descriptor with .kind "'+t+'"');var r=U(e.key),n=e.placement+"";if("static"!==n&&"prototype"!==n&&"own"!==n)throw new TypeError('An element descriptor\'s .placement property must be one of "static", "prototype" or "own", but a decorator created an element descriptor with .placement "'+n+'"');var o=e.descriptor;this.disallowProperty(e,"elements","An element descriptor");var i={kind:t,key:r,placement:n,descriptor:Object.assign({},o)};return"field"!==t?this.disallowProperty(e,"initializer","A method descriptor"):(this.disallowProperty(o,"get","The property descriptor of a field descriptor"),this.disallowProperty(o,"set","The property descriptor of a field descriptor"),this.disallowProperty(o,"value","The property descriptor of a field descriptor"),i.initializer=e.initializer),i},toElementFinisherExtras:function(e){return{element:this.toElementDescriptor(e),finisher:x(e,"finisher"),extras:this.toElementDescriptors(e.extras)}},fromClassDescriptor:function(e){var t={kind:"class",elements:e.map(this.fromElementDescriptor,this)};return Object.defineProperty(t,Symbol.toStringTag,{value:"Descriptor",configurable:!0}),t},toClassDescriptor:function(e){var t=e.kind+"";if("class"!==t)throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator created a class descriptor with .kind "'+t+'"');this.disallowProperty(e,"key","A class descriptor"),this.disallowProperty(e,"placement","A class descriptor"),this.disallowProperty(e,"descriptor","A class descriptor"),this.disallowProperty(e,"initializer","A class descriptor"),this.disallowProperty(e,"extras","A class descriptor");var r=x(e,"finisher");return{elements:this.toElementDescriptors(e.elements),finisher:r}},runClassFinishers:function(e,t){for(var r=0;r<t.length;r++){var n=(0,t[r])(e);if(void 0!==n){if("function"!=typeof n)throw new TypeError("Finishers must return a constructor.");e=n}}return e},disallowProperty:function(e,t,r){if(void 0!==e[t])throw new TypeError(r+" can't have a ."+t+" property.")}};return e}function w(e){var t,r=U(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function k(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function E(e){return e.decorators&&e.decorators.length}function P(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function x(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function C(e,t){if(e){if("string"==typeof e)return O(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?O(e,t):void 0}}function j(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function _(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function T(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var s=n&&n.prototype instanceof c?n:c,l=Object.create(s.prototype);return S(l,"_invoke",function(r,n,o){var i,c,s,l=0,u=o||[],f=!1,p={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,r){return i=t,c=0,s=e,p.n=r,a}};function d(r,n){for(c=r,s=n,t=0;!f&&l&&!o&&t<u.length;t++){var o,i=u[t],d=p.p,h=i[2];r>3?(o=h===n)&&(s=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=d&&((o=r<2&&d<i[1])?(c=0,p.v=n,p.n=i[1]):d<h&&(o=r<3||i[0]>n||n>h)&&(i[4]=r,i[5]=n,p.n=h,c=0))}if(o||r>1)return a;throw f=!0,n}return function(o,u,h){if(l>1)throw TypeError("Generator is already running");for(f&&1===u&&d(u,h),c=u,s=h;(t=c<2?e:s)||!f;){i||(c?c<3?(c>1&&(p.n=-1),d(c,s)):p.n=s:p.v=s);try{if(l=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,s)))throw TypeError("iterator result is not an object");if(!t.done)return t;s=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(s=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=p.n<0)?s:r.call(n,p))!==a)break}catch(t){i=e,c=1,s=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function c(){}function s(){}function l(){}t=Object.getPrototypeOf;var u=[][n]?t(t([][n]())):(S(t={},n,function(){return this}),t),f=l.prototype=c.prototype=Object.create(u);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,S(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return s.prototype=l,S(f,"constructor",l),S(l,"constructor",s),s.displayName="GeneratorFunction",S(l,o,"GeneratorFunction"),S(f),S(f,o,"Generator"),S(f,n,function(){return this}),S(f,"toString",function(){return"[object Generator]"}),(T=function(){return{w:i,m:p}})()}function S(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}S=function(e,t,r,n){function i(t,r){S(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},S(e,t,r,n)}function I(e,t,r,n,o,i,a){try{var c=e[i](a),s=c.value}catch(e){return void r(e)}c.done?t(s):Promise.resolve(s).then(n,o)}function A(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){I(i,n,o,a,c,"next",e)}function c(e){I(i,n,o,a,c,"throw",e)}a(void 0)})}}function R(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function D(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,U(n.key),n)}}function B(e,t,r){return t&&D(e.prototype,t),r&&D(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function z(e,t,r){return t=M(t),function(e,t){if(t&&("object"==b(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,F()?Reflect.construct(t,r||[],M(e).constructor):t.apply(e,r))}function F(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(F=function(){return!!e})()}function L(e,t,r,n){var o=H(M(1&n?e.prototype:e),t,r);return 2&n&&"function"==typeof o?function(e){return o.apply(r,e)}:o}function H(){return H="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=M(e)););return e}(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(arguments.length<3?e:r):o.value}},H.apply(null,arguments)}function M(e){return M=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},M(e)}function q(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&G(e,t)}function G(e,t){return G=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},G(e,t)}function N(e,t,r){return(t=U(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function U(e){var t=function(e){if("object"!=b(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=b(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==b(t)?t:t+""}var W,$,J,Z,V,X,K,Q=window.BookReader,Y=function(e){function t(){var e;R(this,t);for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return N(e=z(this,t,[].concat(n)),"options",{enabled:!0,openLibraryHost:"https://openlibrary.org",openLibraryId:"",internetArchiveId:"",olHost:"https://openlibrary.org",bookId:"{{bookId}}"}),N(e,"_tocEntries",void 0),N(e,"_chaptersPanel",void 0),e}return q(t,e),B(t,[{key:"setup",value:function(e){L(t,"setup",this,3)([e]),this.options.internetArchiveId=this.options.internetArchiveId||this.options.bookId,this.options.openLibraryHost=this.options.openLibraryHost||this.options.olHost}},{key:"init",value:(o=A(T().m(function e(){var t,r,n,o,i=this;return T().w(function(e){for(;;)switch(e.n){case 0:if(this.options.enabled&&"embed"!==this.br.ui){e.n=1;break}return e.a(2);case 1:if(r=null,null===(t=this.br.options.table_of_contents)||void 0===t||!t.length){e.n=2;break}r=this.br.options.table_of_contents,e.n=4;break;case 2:return e.n=3,this.getOpenLibraryRecord();case 3:null!=(o=e.v)&&null!==(n=o.table_of_contents)&&void 0!==n&&n.length&&(r=o.table_of_contents);case 4:r&&(this._tocEntries=r.map(function(e){return Object.assign({},e,{pageIndex:"number"==typeof e.leaf?i.br.book.leafNumToIndex(e.leaf):e.pagenum?i.br.book.getPageIndex(e.pagenum):void 0})}),this._render(),this.br.bind(Q.eventNames.pageChanged,function(){return i._updateCurrent()}));case 5:return e.a(2)}},e,this)})),function(){return o.apply(this,arguments)})},{key:"_render",value:function(){var e=this;this.br.shell.menuProviders.chapters={id:"chapters",icon:(0,n.qy)(l||(l=_(['<ia-icon-toc style="width: var(--iconWidth); height: var(--iconHeight);"></ia-icon-toc>']))),label:"Table of Contents",component:(0,n.qy)(u||(u=_(['<br-chapters-panel\n .contents="','"\n .jumpToPage="','"\n @connected="','"\n />'])),this._tocEntries,function(t){e._updateCurrent(t),e.br.jumpToIndex(t)},function(t){e._chaptersPanel=t.target,e._updateCurrent()})},this.br.shell.addMenuShortcut("chapters"),this.br.shell.updateMenuContents(),this._tocEntries.forEach(function(t,r){return e._renderMarker(t,r)})}},{key:"_renderMarker",value:function(e,t){var r=this;if(null!=e.pageIndex){var n=[e.label,e.title].filter(function(e){return e}).join(" ")||"Chapter ".concat(t+1),o=Q.util.cssPercentage(e.pageIndex,this.br.book.getNumLeafs()-1);m("<div></div>").append(m("<div />").text(n).append(m('<div class="BRchapterPage" />').text(this.br.book.getPageName(e.pageIndex)))).addClass("BRchapter").css({left:o}).appendTo(this.br.$(".BRnavline")).on("mouseenter",function(e){var t=e.currentTarget,n=t.querySelector("div"),o=n.getBoundingClientRect(),i=t.getBoundingClientRect(),a=2*parseInt(getComputedStyle(n).paddingLeft);o.x-a<0&&n.style.setProperty("transform","translateX(-".concat(i.left-a,"px)")),r.br.$(".BRsearch,.BRchapter").removeClass("front"),m(e.target).addClass("front")}).on("mouseleave",function(e){return m(e.target).removeClass("front")}).on("click",function(){r._updateCurrent(e.pageIndex),r.br.jumpToIndex(e.pageIndex)}),this.br.$(".BRchapter, .BRsearch").each(function(e,t){var r=m(t);r.on("mouseenter",function(){return r.addClass("front")}).on("mouseleave",function(){return r.removeClass("front")})})}}},{key:"getOpenLibraryRecord",value:(r=A(T().m(function e(){var t,r,n,o,i,a;return T().w(function(e){for(;;)switch(e.n){case 0:if(t=(0,v.g)(this.options.openLibraryHost,this.br.options.vars),!this.options.openLibraryId){e.n=2;break}return r=(0,v.g)(this.options.openLibraryId,this.br.options.vars),e.n=1,m.ajax({url:"".concat(t,"/books/").concat(r,".json")});case 1:return e.a(2,e.v);case 2:if(!this.options.internetArchiveId){e.n=6;break}return o=(0,v.g)(this.options.internetArchiveId,this.br.options.vars),i="".concat(t,"/query.json?type=/type/edition&*=&"),e.n=3,m.ajax({url:i+new URLSearchParams({ocaid:o,limit:"1"})});case 3:if((a=e.v)&&a.length){e.n=5;break}return e.n=4,m.ajax({url:i+new URLSearchParams({source_records:"ia:".concat(o),limit:"1"})});case 4:a=e.v;case 5:return e.a(2,null===(n=a)||void 0===n?void 0:n[0]);case 6:return e.a(2,null)}},e,this)})),function(){return r.apply(this,arguments)})},{key:"_updateCurrent",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2==this.br.mode?Math.max.apply(Math,function(e){if(Array.isArray(e))return O(e)}(e=this.br.displayedIndices)||j(e)||C(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()):this.br.firstIndex,r=this._tocEntries.filter(function(e){return null!=e.pageIndex}).reverse(),n=r[r.findIndex(function(e){return e.pageIndex<=t})];this._chaptersPanel&&(this._chaptersPanel.currentChapter=n)}}]);var r,o}(y.S);null==Q||Q.registerPlugin("chapters",Y),W=[(0,o.EM)("br-chapters-panel")],$=n.WF,V=g(),J=function(e){V.initializeInstanceElements(e,K.elements)},X={F:Z=function(e){function t(e){var r;return R(this,t),r=z(this,t),J(r),r.contents=e,r}return q(t,e),B(t)}($),d:[{kind:"field",decorators:[(0,o.MZ)({type:Array})],key:"contents",value:function(){return[]}},{kind:"field",decorators:[(0,o.MZ)({type:Object})],key:"currentChapter",value:function(){return{}}},{kind:"field",key:"jumpToPage",value:function(){return function(){}}},{kind:"method",key:"render",value:function(){var e=this;return(0,n.qy)(f||(f=_(["\n <ol>\n ","\n </ol>\n "])),this.contents.map(function(t){return e.renderTOCEntry(t)}))}},{kind:"method",key:"renderTOCEntry",value:function(e){var t=this,r=[e.label,e.title].filter(function(e){return e}).join(" "),o=null!=e.pageIndex;return(0,n.qy)(p||(p=_(['\n <li\n class="\n BRtable-contents-el\n ',"\n ",'\n "\n style="','"\n data-event-click-tracking="','"\n @click="','"\n >\n ',"\n ","\n </li>"])),o?"clickable":"",e==this.currentChapter?"current":"",(0,a.W)({marginLeft:10*(e.level-1)+"px"}),(0,i.J)(o?"BRTOCPanel|GoToChapter":void 0),function(){return t.jumpToPage(e.pageIndex)},r,e.pagenum?(0,n.qy)(d||(d=_(['\n <br />\n <span class="BRTOCElementPage">Page ',"</span>\n "])),e.pagenum):n.s6)}},{kind:"method",key:"connectedCallback",value:function(){L(Z,"connectedCallback",this,3)([]),this.dispatchEvent(new CustomEvent("connected"))}},{kind:"method",key:"updated",value:function(e){var t;e.has("currentChapter")&&(null===(t=this.shadowRoot.querySelector("li.current"))||void 0===t||t.scrollIntoView({block:"nearest",behavior:"smooth"}))}},{kind:"get",static:!0,key:"styles",value:function(){return(0,n.AH)(h||(h=_(["\n ol {\n padding: 0;\n margin: 0;\n margin-right: 5px;\n }\n li {\n padding: 10px;\n overflow: hidden;\n border-radius: 4px;\n }\n li.clickable {\n font-weight: normal;\n cursor: pointer;\n transition: background-color 0.2s;\n }\n\n li.clickable:not(.current):hover {\n background-color: rgba(255,255,255, 0.05);\n }\n\n li.current {\n background-color: rgba(255,255,255,0.9);\n color: #333;\n }\n\n .BRTOCElementPage {\n font-size: 0.85em;\n opacity: .8;\n }"])))}}]},K=V.decorateClass(function(e){for(var t=[],r=function(e){return"method"===e.kind&&e.key===i.key&&e.placement===i.placement},n=0;n<e.length;n++){var o,i=e[n];if("method"===i.kind&&(o=t.find(r)))if(P(i.descriptor)||P(o.descriptor)){if(E(i)||E(o))throw new ReferenceError("Duplicated methods ("+i.key+") can't be decorated.");o.descriptor=i.descriptor}else{if(E(i)){if(E(o))throw new ReferenceError("Decorators can't be placed on different accessors with for the same property ("+i.key+").");o.decorators=i.decorators}k(i,o)}else t.push(i)}return t}(X.d.map(w)),W),V.initializeClassElements(X.F,K.elements),V.runClassFinishers(X.F,K.finishers)},2762:function(e,t,r){var n=r(6518),o=r(3802).trim;n({target:"String",proto:!0,forced:r(706)("trim")},{trim:function(){return o(this)}})},4535:function(e,t,r){r.d(t,{J:function(){return o}});var n=r(6681),o=function(e){return null!=e?e:n.s6}},9073:function(e,t,r){function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function o(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:i;return null==e?void 0:e.replace(/\{\{([^}]*?)\}\}/g,function(e,i){if(!i)return e;var a,c=function(e){if(Array.isArray(e))return e}(a=i.split("|").map(function(e){return e.trim()}))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(a)||function(e,t){if(e){if("string"==typeof e)return n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}(a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),s=c[0],l=n(c).slice(1);if(!(s in r)&&!(s in t))return e;var u=s in r?r[s]:s in t?t[s]:null;return l.map(function(e){return o[e]}).reduce(function(e,t){return t(e)},u&&u.toString())})}r.d(t,{g:function(){return o}}),r(2675),r(9463),r(2259),r(3418),r(3792),r(2062),r(2712),r(4782),r(2010),r(6099),r(7495),r(8781),r(7764),r(5440),r(2762),r(2953);var i={urlencode:encodeURIComponent}}},function(e){e(e.s=2117)}]);
|
|
25
|
+
`}render(){return c}}customElements.define("ia-icon-toc",s);var l,u,f,p,d,h,y=r(1041),v=r(9073),m=r(1669);function b(e){return b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},b(e)}function g(){g=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var o=t.placement;if(t.kind===n&&("static"===o||"prototype"===o)){var i="static"===o?e:r;this.defineClassElement(i,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],o={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,o)},this),e.forEach(function(e){if(!E(e))return r.push(e);var t=this.decorateElement(e,o);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var i=this.decorateConstructor(r,t);return n.push.apply(n,i.finishers),i.finishers=n,i},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],o=e.decorators,i=o.length-1;i>=0;i--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var c=this.fromElementDescriptor(e),s=this.toElementFinisherExtras((0,o[i])(c)||c);e=s.element,this.addElementPlacement(e,t),s.finisher&&n.push(s.finisher);var l=s.extras;if(l){for(var u=0;u<l.length;u++)this.addElementPlacement(l[u],t);r.push.apply(r,l)}}return{element:e,finishers:n,extras:r}},decorateConstructor:function(e,t){for(var r=[],n=t.length-1;n>=0;n--){var o=this.fromClassDescriptor(e),i=this.toClassDescriptor((0,t[n])(o)||o);if(void 0!==i.finisher&&r.push(i.finisher),void 0!==i.elements){e=i.elements;for(var a=0;a<e.length-1;a++)for(var c=a+1;c<e.length;c++)if(e[a].key===e[c].key&&e[a].placement===e[c].placement)throw new TypeError("Duplicated element ("+e[a].key+")")}}return{elements:e,finishers:r}},fromElementDescriptor:function(e){var t={kind:e.kind,key:e.key,placement:e.placement,descriptor:e.descriptor};return Object.defineProperty(t,Symbol.toStringTag,{value:"Descriptor",configurable:!0}),"field"===e.kind&&(t.initializer=e.initializer),t},toElementDescriptors:function(e){if(void 0!==e)return(t=e,function(e){if(Array.isArray(e))return e}(t)||j(t)||C(t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map(function(e){var t=this.toElementDescriptor(e);return this.disallowProperty(e,"finisher","An element descriptor"),this.disallowProperty(e,"extras","An element descriptor"),t},this);var t},toElementDescriptor:function(e){var t=e.kind+"";if("method"!==t&&"field"!==t)throw new TypeError('An element descriptor\'s .kind property must be either "method" or "field", but a decorator created an element descriptor with .kind "'+t+'"');var r=U(e.key),n=e.placement+"";if("static"!==n&&"prototype"!==n&&"own"!==n)throw new TypeError('An element descriptor\'s .placement property must be one of "static", "prototype" or "own", but a decorator created an element descriptor with .placement "'+n+'"');var o=e.descriptor;this.disallowProperty(e,"elements","An element descriptor");var i={kind:t,key:r,placement:n,descriptor:Object.assign({},o)};return"field"!==t?this.disallowProperty(e,"initializer","A method descriptor"):(this.disallowProperty(o,"get","The property descriptor of a field descriptor"),this.disallowProperty(o,"set","The property descriptor of a field descriptor"),this.disallowProperty(o,"value","The property descriptor of a field descriptor"),i.initializer=e.initializer),i},toElementFinisherExtras:function(e){return{element:this.toElementDescriptor(e),finisher:x(e,"finisher"),extras:this.toElementDescriptors(e.extras)}},fromClassDescriptor:function(e){var t={kind:"class",elements:e.map(this.fromElementDescriptor,this)};return Object.defineProperty(t,Symbol.toStringTag,{value:"Descriptor",configurable:!0}),t},toClassDescriptor:function(e){var t=e.kind+"";if("class"!==t)throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator created a class descriptor with .kind "'+t+'"');this.disallowProperty(e,"key","A class descriptor"),this.disallowProperty(e,"placement","A class descriptor"),this.disallowProperty(e,"descriptor","A class descriptor"),this.disallowProperty(e,"initializer","A class descriptor"),this.disallowProperty(e,"extras","A class descriptor");var r=x(e,"finisher");return{elements:this.toElementDescriptors(e.elements),finisher:r}},runClassFinishers:function(e,t){for(var r=0;r<t.length;r++){var n=(0,t[r])(e);if(void 0!==n){if("function"!=typeof n)throw new TypeError("Finishers must return a constructor.");e=n}}return e},disallowProperty:function(e,t,r){if(void 0!==e[t])throw new TypeError(r+" can't have a ."+t+" property.")}};return e}function w(e){var t,r=U(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function k(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function E(e){return e.decorators&&e.decorators.length}function P(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function x(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function C(e,t){if(e){if("string"==typeof e)return O(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?O(e,t):void 0}}function j(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function _(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function T(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var s=n&&n.prototype instanceof c?n:c,l=Object.create(s.prototype);return S(l,"_invoke",function(r,n,o){var i,c,s,l=0,u=o||[],f=!1,p={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,r){return i=t,c=0,s=e,p.n=r,a}};function d(r,n){for(c=r,s=n,t=0;!f&&l&&!o&&t<u.length;t++){var o,i=u[t],d=p.p,h=i[2];r>3?(o=h===n)&&(s=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=d&&((o=r<2&&d<i[1])?(c=0,p.v=n,p.n=i[1]):d<h&&(o=r<3||i[0]>n||n>h)&&(i[4]=r,i[5]=n,p.n=h,c=0))}if(o||r>1)return a;throw f=!0,n}return function(o,u,h){if(l>1)throw TypeError("Generator is already running");for(f&&1===u&&d(u,h),c=u,s=h;(t=c<2?e:s)||!f;){i||(c?c<3?(c>1&&(p.n=-1),d(c,s)):p.n=s:p.v=s);try{if(l=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,s)))throw TypeError("iterator result is not an object");if(!t.done)return t;s=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(s=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=p.n<0)?s:r.call(n,p))!==a)break}catch(t){i=e,c=1,s=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function c(){}function s(){}function l(){}t=Object.getPrototypeOf;var u=[][n]?t(t([][n]())):(S(t={},n,function(){return this}),t),f=l.prototype=c.prototype=Object.create(u);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,S(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return s.prototype=l,S(f,"constructor",l),S(l,"constructor",s),s.displayName="GeneratorFunction",S(l,o,"GeneratorFunction"),S(f),S(f,o,"Generator"),S(f,n,function(){return this}),S(f,"toString",function(){return"[object Generator]"}),(T=function(){return{w:i,m:p}})()}function S(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}S=function(e,t,r,n){function i(t,r){S(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},S(e,t,r,n)}function I(e,t,r,n,o,i,a){try{var c=e[i](a),s=c.value}catch(e){return void r(e)}c.done?t(s):Promise.resolve(s).then(n,o)}function A(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){I(i,n,o,a,c,"next",e)}function c(e){I(i,n,o,a,c,"throw",e)}a(void 0)})}}function R(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function D(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,U(n.key),n)}}function B(e,t,r){return t&&D(e.prototype,t),r&&D(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function z(e,t,r){return t=M(t),function(e,t){if(t&&("object"==b(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,F()?Reflect.construct(t,r||[],M(e).constructor):t.apply(e,r))}function F(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(F=function(){return!!e})()}function L(e,t,r,n){var o=H(M(1&n?e.prototype:e),t,r);return 2&n&&"function"==typeof o?function(e){return o.apply(r,e)}:o}function H(){return H="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=M(e)););return e}(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(arguments.length<3?e:r):o.value}},H.apply(null,arguments)}function M(e){return M=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},M(e)}function q(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&G(e,t)}function G(e,t){return G=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},G(e,t)}function N(e,t,r){return(t=U(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function U(e){var t=function(e){if("object"!=b(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=b(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==b(t)?t:t+""}var W,$,J,Z,V,X,K,Q=window.BookReader,Y=function(e){function t(){var e;R(this,t);for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return N(e=z(this,t,[].concat(n)),"options",{enabled:!0,openLibraryHost:"https://openlibrary.org",openLibraryId:"",internetArchiveId:"",olHost:"https://openlibrary.org",bookId:"{{bookId}}"}),N(e,"_tocEntries",void 0),N(e,"_chaptersPanel",void 0),e}return q(t,e),B(t,[{key:"setup",value:function(e){L(t,"setup",this,3)([e]),this.options.internetArchiveId=this.options.internetArchiveId||this.options.bookId,this.options.openLibraryHost=this.options.openLibraryHost||this.options.olHost}},{key:"init",value:(o=A(T().m(function e(){var t,r,n,o,i=this;return T().w(function(e){for(;;)switch(e.n){case 0:if(this.options.enabled&&"embed"!==this.br.ui){e.n=1;break}return e.a(2);case 1:if(r=null,null===(t=this.br.options.table_of_contents)||void 0===t||!t.length){e.n=2;break}r=this.br.options.table_of_contents,e.n=4;break;case 2:return e.n=3,this.getOpenLibraryRecord();case 3:null!=(o=e.v)&&null!==(n=o.table_of_contents)&&void 0!==n&&n.length&&(r=o.table_of_contents);case 4:r&&(this._tocEntries=r.map(function(e){return Object.assign({},e,{pageIndex:"number"==typeof e.leaf?i.br.book.leafNumToIndex(e.leaf):e.pagenum?i.br.book.getPageIndex(e.pagenum):void 0})}),this._render(),this.br.bind(Q.eventNames.pageChanged,function(){return i._updateCurrent()}));case 5:return e.a(2)}},e,this)})),function(){return o.apply(this,arguments)})},{key:"_render",value:function(){var e=this;this.br.shell.menuProviders.chapters={id:"chapters",icon:(0,n.qy)(l||(l=_(['<ia-icon-toc aria-hidden="true" role="presentation" style="width: var(--iconWidth); height: var(--iconHeight);"></ia-icon-toc>']))),label:"Table of Contents",component:(0,n.qy)(u||(u=_(['<br-chapters-panel\n .contents="','"\n .jumpToPage="','"\n @connected="','"\n />'])),this._tocEntries,function(t){e._updateCurrent(t),e.br.jumpToIndex(t)},function(t){e._chaptersPanel=t.target,e._updateCurrent()})},this.br.shell.addMenuShortcut("chapters"),this.br.shell.updateMenuContents(),this._tocEntries.forEach(function(t,r){return e._renderMarker(t,r)})}},{key:"_renderMarker",value:function(e,t){var r=this;if(null!=e.pageIndex){var n=[e.label,e.title].filter(function(e){return e}).join(" ")||"Chapter ".concat(t+1),o=Q.util.cssPercentage(e.pageIndex,this.br.book.getNumLeafs()-1);m("<div></div>").append(m("<div />").text(n).append(m('<div class="BRchapterPage" />').text(this.br.book.getPageName(e.pageIndex)))).addClass("BRchapter").css({left:o}).appendTo(this.br.$(".BRnavline")).on("mouseenter",function(e){var t=e.currentTarget,n=t.querySelector("div"),o=n.getBoundingClientRect(),i=t.getBoundingClientRect(),a=2*parseInt(getComputedStyle(n).paddingLeft);o.x-a<0&&n.style.setProperty("transform","translateX(-".concat(i.left-a,"px)")),r.br.$(".BRsearch,.BRchapter").removeClass("front"),m(e.target).addClass("front")}).on("mouseleave",function(e){return m(e.target).removeClass("front")}).on("click",function(){r._updateCurrent(e.pageIndex),r.br.jumpToIndex(e.pageIndex)}),this.br.$(".BRchapter, .BRsearch").each(function(e,t){var r=m(t);r.on("mouseenter",function(){return r.addClass("front")}).on("mouseleave",function(){return r.removeClass("front")})})}}},{key:"getOpenLibraryRecord",value:(r=A(T().m(function e(){var t,r,n,o,i,a;return T().w(function(e){for(;;)switch(e.n){case 0:if(t=(0,v.g)(this.options.openLibraryHost,this.br.options.vars),!this.options.openLibraryId){e.n=2;break}return r=(0,v.g)(this.options.openLibraryId,this.br.options.vars),e.n=1,m.ajax({url:"".concat(t,"/books/").concat(r,".json")});case 1:return e.a(2,e.v);case 2:if(!this.options.internetArchiveId){e.n=6;break}return o=(0,v.g)(this.options.internetArchiveId,this.br.options.vars),i="".concat(t,"/query.json?type=/type/edition&*=&"),e.n=3,m.ajax({url:i+new URLSearchParams({ocaid:o,limit:"1"})});case 3:if((a=e.v)&&a.length){e.n=5;break}return e.n=4,m.ajax({url:i+new URLSearchParams({source_records:"ia:".concat(o),limit:"1"})});case 4:a=e.v;case 5:return e.a(2,null===(n=a)||void 0===n?void 0:n[0]);case 6:return e.a(2,null)}},e,this)})),function(){return r.apply(this,arguments)})},{key:"_updateCurrent",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2==this.br.mode?Math.max.apply(Math,function(e){if(Array.isArray(e))return O(e)}(e=this.br.displayedIndices)||j(e)||C(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()):this.br.firstIndex,r=this._tocEntries.filter(function(e){return null!=e.pageIndex}).reverse(),n=r[r.findIndex(function(e){return e.pageIndex<=t})];this._chaptersPanel&&(this._chaptersPanel.currentChapter=n)}}]);var r,o}(y.S);null==Q||Q.registerPlugin("chapters",Y),W=[(0,o.EM)("br-chapters-panel")],$=n.WF,V=g(),J=function(e){V.initializeInstanceElements(e,K.elements)},X={F:Z=function(e){function t(e){var r;return R(this,t),r=z(this,t),J(r),r.contents=e,r}return q(t,e),B(t)}($),d:[{kind:"field",decorators:[(0,o.MZ)({type:Array})],key:"contents",value:function(){return[]}},{kind:"field",decorators:[(0,o.MZ)({type:Object})],key:"currentChapter",value:function(){return{}}},{kind:"field",key:"jumpToPage",value:function(){return function(){}}},{kind:"method",key:"render",value:function(){var e=this;return(0,n.qy)(f||(f=_(["\n <ol>\n ","\n </ol>\n "])),this.contents.map(function(t){return e.renderTOCEntry(t)}))}},{kind:"method",key:"renderTOCEntry",value:function(e){var t=this,r=[e.label,e.title].filter(function(e){return e}).join(" "),o=null!=e.pageIndex;return(0,n.qy)(p||(p=_(['\n <li\n class="\n BRtable-contents-el\n ',"\n ",'\n "\n style="','"\n data-event-click-tracking="','"\n @click="','"\n >\n ',"\n ","\n </li>"])),o?"clickable":"",e==this.currentChapter?"current":"",(0,a.W)({marginLeft:10*(e.level-1)+"px"}),(0,i.J)(o?"BRTOCPanel|GoToChapter":void 0),function(){return t.jumpToPage(e.pageIndex)},r,e.pagenum?(0,n.qy)(d||(d=_(['\n <br />\n <span class="BRTOCElementPage">Page ',"</span>\n "])),e.pagenum):n.s6)}},{kind:"method",key:"connectedCallback",value:function(){L(Z,"connectedCallback",this,3)([]),this.dispatchEvent(new CustomEvent("connected"))}},{kind:"method",key:"updated",value:function(e){var t;e.has("currentChapter")&&(null===(t=this.shadowRoot.querySelector("li.current"))||void 0===t||t.scrollIntoView({block:"nearest",behavior:"smooth"}))}},{kind:"get",static:!0,key:"styles",value:function(){return(0,n.AH)(h||(h=_(["\n ol {\n padding: 0;\n margin: 0;\n margin-right: 5px;\n }\n li {\n padding: 10px;\n overflow: hidden;\n border-radius: 4px;\n }\n li.clickable {\n font-weight: normal;\n cursor: pointer;\n transition: background-color 0.2s;\n }\n\n li.clickable:not(.current):hover {\n background-color: rgba(255,255,255, 0.05);\n }\n\n li.current {\n background-color: rgba(255,255,255,0.9);\n color: #333;\n }\n\n .BRTOCElementPage {\n font-size: 0.85em;\n opacity: .8;\n }"])))}}]},K=V.decorateClass(function(e){for(var t=[],r=function(e){return"method"===e.kind&&e.key===i.key&&e.placement===i.placement},n=0;n<e.length;n++){var o,i=e[n];if("method"===i.kind&&(o=t.find(r)))if(P(i.descriptor)||P(o.descriptor)){if(E(i)||E(o))throw new ReferenceError("Duplicated methods ("+i.key+") can't be decorated.");o.descriptor=i.descriptor}else{if(E(i)){if(E(o))throw new ReferenceError("Decorators can't be placed on different accessors with for the same property ("+i.key+").");o.decorators=i.decorators}k(i,o)}else t.push(i)}return t}(X.d.map(w)),W),V.initializeClassElements(X.F,K.elements),V.runClassFinishers(X.F,K.finishers)},2762:function(e,t,r){var n=r(6518),o=r(3802).trim;n({target:"String",proto:!0,forced:r(706)("trim")},{trim:function(){return o(this)}})},4535:function(e,t,r){r.d(t,{J:function(){return o}});var n=r(6681),o=function(e){return null!=e?e:n.s6}},9073:function(e,t,r){function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function o(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:i;return null==e?void 0:e.replace(/\{\{([^}]*?)\}\}/g,function(e,i){if(!i)return e;var a,c=function(e){if(Array.isArray(e))return e}(a=i.split("|").map(function(e){return e.trim()}))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(a)||function(e,t){if(e){if("string"==typeof e)return n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}(a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),s=c[0],l=n(c).slice(1);if(!(s in r)&&!(s in t))return e;var u=s in r?r[s]:s in t?t[s]:null;return l.map(function(e){return o[e]}).reduce(function(e,t){return t(e)},u&&u.toString())})}r.d(t,{g:function(){return o}}),r(2675),r(9463),r(2259),r(3418),r(3792),r(2062),r(2712),r(4782),r(2010),r(6099),r(7495),r(8781),r(7764),r(5440),r(2762),r(2953);var i={urlencode:encodeURIComponent}}},function(e){e(e.s=2117)}]);
|
|
26
26
|
//# sourceMappingURL=plugin.chapters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins/plugin.chapters.js","mappings":"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","sources":["webpack://@internetarchive/bookreader/./node_modules/core-js/internals/string-trim-forced.js","webpack://@internetarchive/bookreader/./src/BookReaderPlugin.js","webpack://@internetarchive/bookreader/./node_modules/@internetarchive/icon-toc/index.js","webpack://@internetarchive/bookreader/./node_modules/@internetarchive/icon-toc/icon-toc.js","webpack://@internetarchive/bookreader/./src/plugins/plugin.chapters.js","webpack://@internetarchive/bookreader/./node_modules/core-js/modules/es.string.trim.js","webpack://@internetarchive/bookreader/../src/directives/if-defined.ts","webpack://@internetarchive/bookreader/./src/util/strings.js"],"sourcesContent":["'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","// @ts-check\n/** @typedef {import(\"./BookReader.js\").default} BookReader */\n\n/**\n * @template TOptions\n */\nexport class BookReaderPlugin {\n /**\n * @param {BookReader} br\n */\n constructor(br) {\n /** @type {BookReader} */\n this.br = br;\n /** @type {TOptions} */\n this.options;\n }\n\n /**\n * @abstract\n * @param {TOptions} options\n **/\n setup(options) {\n this.options = Object.assign({}, this.options, options);\n }\n\n /** @abstract */\n init() {}\n\n /**\n * @abstract\n * @protected\n * @param {import (\"./BookReader/PageContainer.js\").PageContainer} pageContainer\n */\n _configurePageContainer(pageContainer) {\n }\n\n /**\n * @abstract\n * @protected\n * @param {JQuery<HTMLElement>} $toolbarElement\n */\n _configureToolbar($toolbarElement) {\n }\n\n /** @abstract @protected */\n _bindNavigationHandlers() {}\n\n /**\n * @param {JQuery<HTMLElement>} $navBar\n */\n extendNavBar($navBar) {}\n}\n","import { html } from 'lit';\n\nexport default html`\n<svg\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-labelledby=\"tocTitleID tocDescID\"\n>\n <title id=\"tocTitleID\">Table of contents icon</title>\n <desc id=\"tocDescID\">An illustration of three text list items</desc>\n <g class=\"fill-color\" fill-rule=\"evenodd\"><rect height=\"3\" rx=\"1.5\" width=\"18\" x=\"6\"/><rect height=\"3\" rx=\"1.5\" width=\"18\" x=\"6\" y=\"21\"/><rect height=\"3\" rx=\"1.5\" width=\"18\" x=\"6\" y=\"14\"/><rect height=\"3\" rx=\"1.5\" width=\"18\" x=\"6\" y=\"7\"/><rect height=\"3\" rx=\"1.5\" width=\"4\"/><rect height=\"3\" rx=\"1.5\" width=\"4\" y=\"21\"/><rect height=\"3\" rx=\"1.5\" width=\"4\" y=\"14\"/><rect height=\"3\" rx=\"1.5\" width=\"4\" y=\"7\"/></g>\n</svg>\n`;\n","import icon from './index.js';\nimport { css, LitElement } from 'lit';\n\nclass IAIconToc extends LitElement {\n static get styles() {\n return css`\n :host {\n width: var(--iconWidth, 'auto');\n height: var(--iconHeight, 'auto');\n }\n\n .fill-color {\n fill: var(--iconFillColor);\n }\n\n .stroke-color {\n stroke: var(--iconStrokeColor);\n }\n `;\n }\n\n render() {\n return icon;\n }\n}\n\ncustomElements.define('ia-icon-toc', IAIconToc);\n\nexport default IAIconToc;\n","// @ts-check\nimport { css, html, LitElement, nothing } from \"lit\";\nimport { customElement, property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport '@internetarchive/icon-toc/icon-toc.js';\nimport { BookReaderPlugin } from \"../BookReaderPlugin.js\";\nimport { applyVariables } from \"../util/strings.js\";\n/** @typedef {import('@/src/BookReader/BookModel.js').PageIndex} PageIndex */\n/** @typedef {import('@/src/BookReader/BookModel.js').PageString} PageString */\n/** @typedef {import('@/src/BookReader/BookModel.js').LeafNum} LeafNum */\n\n// @ts-ignore\nconst BookReader = /** @type {typeof import('@/src/BookReader.js').default} */(window.BookReader);\n\n/**\n * Plugin for chapter markers in BookReader. Fetches from openlibrary.org\n * Could be forked, or extended to alter behavior\n */\nexport class ChaptersPlugin extends BookReaderPlugin {\n options = {\n enabled: true,\n\n /**\n * The Open Library host to fetch/query Open Library.\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n openLibraryHost: 'https://openlibrary.org',\n\n /**\n * The Open Library edition to fetch the table of contents from.\n * E.g. 'OL12345M'\n *\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n openLibraryId: '',\n\n /**\n * The Internet Archive identifier to fetch the Open Library table\n * of contents from.\n * E.g. 'goody'\n *\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n internetArchiveId: '',\n\n /**\n * @deprecated\n * Old name for openLibraryHost\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n olHost: 'https://openlibrary.org',\n\n /**\n * @deprecated\n * Old name for internetArchiveId\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n bookId: '{{bookId}}',\n }\n\n /** @type {TocEntry[]} */\n _tocEntries;\n\n /** @type {BRChaptersPanel} */\n _chaptersPanel;\n\n /** @override */\n setup(options) {\n super.setup(options);\n this.options.internetArchiveId = this.options.internetArchiveId || this.options.bookId;\n this.options.openLibraryHost = this.options.openLibraryHost || this.options.olHost;\n }\n\n /** @override Extend to call Open Library for TOC */\n async init() {\n if (!this.options.enabled || this.br.ui === 'embed') {\n return;\n }\n\n let rawTableOfContents = null;\n // Prefer explicit TOC if specified\n if (this.br.options.table_of_contents?.length) {\n rawTableOfContents = this.br.options.table_of_contents;\n } else {\n // Otherwise fetch from OL\n const olEdition = await this.getOpenLibraryRecord();\n if (olEdition?.table_of_contents?.length) {\n rawTableOfContents = olEdition.table_of_contents;\n }\n }\n\n if (rawTableOfContents) {\n this._tocEntries = rawTableOfContents\n .map(rawTOCEntry => (Object.assign({}, rawTOCEntry, {\n pageIndex: (\n typeof(rawTOCEntry.leaf) == 'number' ? this.br.book.leafNumToIndex(rawTOCEntry.leaf) :\n rawTOCEntry.pagenum ? this.br.book.getPageIndex(rawTOCEntry.pagenum) :\n undefined\n ),\n })));\n this._render();\n this.br.bind(BookReader.eventNames.pageChanged, () => this._updateCurrent());\n }\n }\n\n /**\n * Update the table of contents based on array of TOC entries.\n */\n _render() {\n this.br.shell.menuProviders['chapters'] = {\n id: 'chapters',\n icon: html`<ia-icon-toc style=\"width: var(--iconWidth); height: var(--iconHeight);\"></ia-icon-toc>`,\n label: 'Table of Contents',\n component: html`<br-chapters-panel\n .contents=\"${this._tocEntries}\"\n .jumpToPage=\"${(pageIndex) => {\n this._updateCurrent(pageIndex);\n this.br.jumpToIndex(pageIndex);\n }}\"\n @connected=\"${(e) => {\n this._chaptersPanel = e.target;\n this._updateCurrent();\n }}\"\n />`,\n };\n this.br.shell.addMenuShortcut('chapters');\n this.br.shell.updateMenuContents();\n this._tocEntries.forEach((tocEntry, i) => this._renderMarker(tocEntry, i));\n }\n\n /**\n * @param {TocEntry} tocEntry\n * @param {number} entryIndex\n */\n _renderMarker(tocEntry, entryIndex) {\n if (tocEntry.pageIndex == undefined) return;\n\n //creates a string with non-void tocEntry.label and tocEntry.title\n const chapterStr = [tocEntry.label, tocEntry.title]\n .filter(x => x)\n .join(' ') || `Chapter ${entryIndex + 1}`;\n\n const percentThrough = BookReader.util.cssPercentage(tocEntry.pageIndex, this.br.book.getNumLeafs() - 1);\n $(`<div></div>`)\n .append(\n $('<div />')\n .text(chapterStr)\n .append(\n $('<div class=\"BRchapterPage\" />')\n .text(this.br.book.getPageName(tocEntry.pageIndex)),\n ),\n )\n .addClass('BRchapter')\n .css({ left: percentThrough })\n .appendTo(this.br.$('.BRnavline'))\n .on(\"mouseenter\", event => {\n // remove hover effect from other markers then turn on just for this\n const marker = event.currentTarget;\n const tooltip = marker.querySelector('div');\n const tooltipOffset = tooltip.getBoundingClientRect();\n const targetOffset = marker.getBoundingClientRect();\n const boxSizeAdjust = parseInt(getComputedStyle(tooltip).paddingLeft) * 2;\n if (tooltipOffset.x - boxSizeAdjust < 0) {\n tooltip.style.setProperty('transform', `translateX(-${targetOffset.left - boxSizeAdjust}px)`);\n }\n this.br.$('.BRsearch,.BRchapter').removeClass('front');\n $(event.target).addClass('front');\n })\n .on(\"mouseleave\", event => $(event.target).removeClass('front'))\n .on('click', () => {\n this._updateCurrent(tocEntry.pageIndex);\n this.br.jumpToIndex(tocEntry.pageIndex);\n });\n\n this.br.$('.BRchapter, .BRsearch').each((i, el) => {\n const $el = $(el);\n $el\n .on(\"mouseenter\", () => $el.addClass('front'))\n .on(\"mouseleave\", () => $el.removeClass('front'));\n });\n }\n\n /**\n * This makes a call to OL API and calls the given callback function with the\n * response from the API.\n */\n async getOpenLibraryRecord() {\n const olHost = applyVariables(this.options.openLibraryHost, this.br.options.vars);\n\n if (this.options.openLibraryId) {\n const openLibraryId = applyVariables(this.options.openLibraryId, this.br.options.vars);\n return await $.ajax({ url: `${olHost}/books/${openLibraryId}.json` });\n }\n\n if (this.options.internetArchiveId) {\n const ocaid = applyVariables(this.options.internetArchiveId, this.br.options.vars);\n\n // Try looking up by ocaid first, then by source_record\n const baseQueryUrl = `${olHost}/query.json?type=/type/edition&*=&`;\n\n let data = await $.ajax({\n url: baseQueryUrl + new URLSearchParams({ ocaid, limit: '1' }),\n });\n\n if (!data || !data.length) {\n // try source_records\n data = await $.ajax({\n url: baseQueryUrl + new URLSearchParams({ source_records: `ia:${ocaid}`, limit: '1' }),\n });\n }\n\n return data?.[0];\n }\n\n return null;\n }\n\n /**\n * @private\n * Highlights the current chapter based on current page\n * @param {PageIndex} curIndex\n */\n _updateCurrent(\n curIndex = (this.br.mode == 2 ? Math.max(...this.br.displayedIndices) : this.br.firstIndex),\n ) {\n const tocEntriesIndexed = this._tocEntries.filter((el) => el.pageIndex != undefined).reverse();\n const currChapter = tocEntriesIndexed[\n // subtract one so that 2up shows the right label\n tocEntriesIndexed.findIndex((chapter) => chapter.pageIndex <= curIndex)\n ];\n if (this._chaptersPanel) {\n this._chaptersPanel.currentChapter = currChapter;\n }\n }\n}\nBookReader?.registerPlugin('chapters', ChaptersPlugin);\n\n/**\n * @typedef {Object} TocEntry\n * Table of contents entry as defined by Open Library, with some extra values for internal use\n * @property {number} [level]\n * @property {string} [label]\n * @property {string} [title]\n * @property {PageString} [pagenum]\n * @property {LeafNum} [leaf]\n * @property {number} [pageIndex] - Added\n *\n * @example {\n * \"pagenum\": \"17\",\n * \"level\": 1,\n * \"label\": \"CHAPTER I\",\n * \"title\": \"THE COUNTRY AND THE MISSION\"\n * }\n */\n\n@customElement('br-chapters-panel')\nexport class BRChaptersPanel extends LitElement {\n /** @type {TocEntry[]} */\n @property({ type: Array })\n contents = [];\n\n /** @type {TocEntry?} */\n @property({ type: Object })\n currentChapter = {};\n\n /** @type {(pageIndex: PageIndex) => void} */\n jumpToPage = () => {};\n\n /**\n * @param {TocEntry[]} contents\n */\n constructor(contents) {\n super();\n this.contents = contents;\n }\n\n render() {\n return html`\n <ol>\n ${this.contents.map(tocEntry => this.renderTOCEntry(tocEntry))}\n </ol>\n `;\n }\n\n /**\n * @param {TocEntry} tocEntry\n */\n renderTOCEntry(tocEntry) {\n const chapterTitle = [tocEntry.label, tocEntry.title]\n .filter(x => x)\n .join(' ');\n const clickable = tocEntry.pageIndex != undefined;\n // note the click-tracking won't work...\n return html`\n <li\n class=\"\n BRtable-contents-el\n ${clickable ? 'clickable' : ''}\n ${tocEntry == this.currentChapter ? 'current' : ''}\n \"\n style=\"${styleMap({marginLeft: (tocEntry.level - 1) * 10 + 'px'})}\"\n data-event-click-tracking=\"${ifDefined(clickable ? \"BRTOCPanel|GoToChapter\" : undefined)}\"\n @click=\"${() => this.jumpToPage(tocEntry.pageIndex)}\"\n >\n ${chapterTitle}\n ${tocEntry.pagenum ? html`\n <br />\n <span class=\"BRTOCElementPage\">Page ${tocEntry.pagenum}</span>\n ` : nothing}\n </li>`;\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.dispatchEvent(new CustomEvent('connected'));\n }\n\n updated(changedProperties) {\n if (changedProperties.has('currentChapter')) {\n this.shadowRoot.querySelector('li.current')?.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth',\n });\n }\n }\n\n static get styles() {\n return css`\n ol {\n padding: 0;\n margin: 0;\n margin-right: 5px;\n }\n li {\n padding: 10px;\n overflow: hidden;\n border-radius: 4px;\n }\n li.clickable {\n font-weight: normal;\n cursor: pointer;\n transition: background-color 0.2s;\n }\n\n li.clickable:not(.current):hover {\n background-color: rgba(255,255,255, 0.05);\n }\n\n li.current {\n background-color: rgba(255,255,255,0.9);\n color: #333;\n }\n\n .BRTOCElementPage {\n font-size: 0.85em;\n opacity: .8;\n }`;\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {nothing} from '../lit-html.js';\n\n/**\n * For AttributeParts, sets the attribute if the value is defined and removes\n * the attribute if the value is undefined.\n *\n * For other part types, this directive is a no-op.\n */\nexport const ifDefined = <T>(value: T) => value ?? nothing;\n","/**\n * @typedef {String} StringWithVars\n * A template string with {{foo}} style variables\n * Also supports filters, like {{bookPath|urlencode}} (See APPLY_FILTERS for the\n * supported list of filters)\n **/\n\n/**\n * @param {StringWithVars|String} template\n * @param { {[varName: string]: { toString: () => string} } } vars\n * @param { {[varName: string]: { toString: () => string} } } [overrides]\n * @returns {StringWithVars|string}\n */\nexport function applyVariables(template, vars, overrides = {}, possibleFilters = APPLY_FILTERS) {\n return template?.replace(/\\{\\{([^}]*?)\\}\\}/g, ($0, $1) => {\n if (!$1) return $0;\n /** @type {string} */\n const expression = $1;\n const [varName, ...filterNames] = expression.split('|').map(x => x.trim());\n const defined = varName in overrides || varName in vars;\n\n // If it's not defined, don't expand it at all\n if (!defined) return $0;\n\n const value = varName in overrides ? overrides[varName]\n : varName in vars ? vars[varName] : null;\n const filters = filterNames.map(n => possibleFilters[n]);\n return filters.reduce((acc, cur) => cur(acc), value && value.toString());\n });\n}\n\n/** @type { {[filterName: String]:( string => string)} } */\nexport const APPLY_FILTERS = {\n urlencode: encodeURIComponent,\n};\n"],"names":["PROPER_FUNCTION_NAME","fails","whitespaces","module","exports","METHOD_NAME","name","BookReaderPlugin","br","_classCallCheck","this","options","key","value","Object","assign","pageContainer","$toolbarElement","$navBar","IAIconToc","styles","render","customElements","define","e","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","call","done","return","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","_defineProperties","_toPropertyKey","_createClass","_callSuper","_getPrototypeOf","_typeof","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","valueOf","_superPropGet","_get","get","hasOwnProperty","_superPropBase","getOwnPropertyDescriptor","_inherits","_setPrototypeOf","_defineProperty","toPrimitive","String","_toPrimitive","_initialize","BRChaptersPanel","BookReader","window","ChaptersPlugin","_BookReaderPlugin","_this","_len","args","Array","_key","concat","enabled","openLibraryHost","openLibraryId","internetArchiveId","olHost","bookId","_init","_callee","_this$br$options$tabl","rawTableOfContents","_olEdition$table_of_c","olEdition","_this2","_context","ui","table_of_contents","getOpenLibraryRecord","_tocEntries","map","rawTOCEntry","pageIndex","leaf","book","leafNumToIndex","pagenum","getPageIndex","undefined","_render","eventNames","pageChanged","_updateCurrent","_this3","shell","menuProviders","id","icon","html","_templateObject","_taggedTemplateLiteral","label","component","_templateObject2","jumpToIndex","_chaptersPanel","target","addMenuShortcut","updateMenuContents","forEach","tocEntry","_renderMarker","entryIndex","_this4","chapterStr","title","filter","x","join","percentThrough","util","cssPercentage","getNumLeafs","$","append","text","getPageName","addClass","css","left","appendTo","on","event","marker","currentTarget","tooltip","querySelector","tooltipOffset","getBoundingClientRect","targetOffset","boxSizeAdjust","parseInt","getComputedStyle","paddingLeft","style","setProperty","removeClass","each","el","$el","_getOpenLibraryRecord","_callee2","_data","ocaid","baseQueryUrl","data","_context2","applyVariables","vars","ajax","url","URLSearchParams","limit","source_records","curIndex","mode","Math","max","displayedIndices","firstIndex","tocEntriesIndexed","reverse","currChapter","findIndex","chapter","currentChapter","registerPlugin","customElement","LitElement","F","_LitElement2","contents","_this5","kind","decorators","property","type","_this6","_templateObject3","renderTOCEntry","_this7","chapterTitle","clickable","_templateObject4","styleMap","marginLeft","level","ifDefined","jumpToPage","_templateObject5","nothing","dispatchEvent","CustomEvent","changedProperties","_this$shadowRoot$quer","has","shadowRoot","scrollIntoView","block","behavior","static","_templateObject6","$trim","proto","forced","forcedStringTrimMethod","trim","template","overrides","possibleFilters","APPLY_FILTERS","replace","$0","$1","_expression$split$map2","split","varName","filterNames","_arrayLikeToArray","slice","reduce","acc","cur","toString","urlencode","encodeURIComponent"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"plugins/plugin.chapters.js","mappings":";8IACA,IAAIA,EAAuB,cACvBC,EAAQ,EAAQ,MAChBC,EAAc,EAAQ,MAM1BC,EAAOC,QAAU,SAAUC,GACzB,OAAOJ,EAAM,WACX,QAASC,EAAYG,MANf,cAOGA,MACHL,GAAwBE,EAAYG,GAAaC,OAASD,CAClE,EACF,C,izBCTO,IAAME,EAAgB,WAW3B,O,EAPA,SAAAA,EAAYC,I,4FAAIC,CAAA,KAAAF,GAEdG,KAAKF,GAAKA,EAEVE,KAAKC,OACP,G,EAEA,EAAAC,IAAA,QAAAC,MAIA,SAAMF,GACJD,KAAKC,QAAUG,OAAOC,OAAO,CAAC,EAAGL,KAAKC,QAASA,EACjD,GAEA,CAAAC,IAAA,OAAAC,MACA,WAAQ,GAER,CAAAD,IAAA,0BAAAC,MAKA,SAAwBG,GACxB,GAEA,CAAAJ,IAAA,oBAAAC,MAKA,SAAkBI,GAClB,GAEA,CAAAL,IAAA,0BAAAC,MACA,WAA2B,GAE3B,CAAAD,IAAA,eAAAC,MAGA,SAAaK,GAAU,M,6EAAC,CA5CG,E,6VCJ7B,EAAe,IAAI;;;;;;;;;;ECCnB,MAAMC,UAAkB,KACtB,iBAAWC,GACT,OAAO,IAAG;;;;;;;;;;;;;KAcZ,CAEA,MAAAC,GACE,OAAO,CACT,EAGFC,eAAeC,OAAO,cAAeJ,GAErC,I,iwNC3BA,IAAAK,EAAAC,EAAAC,EAAA,mBAAAC,OAAAA,OAAA,GAAAC,EAAAF,EAAAG,UAAA,aAAAC,EAAAJ,EAAAK,aAAA,yBAAAC,EAAAN,EAAAE,EAAAE,EAAAE,GAAA,IAAAC,EAAAL,GAAAA,EAAAM,qBAAAC,EAAAP,EAAAO,EAAAC,EAAAtB,OAAAuB,OAAAJ,EAAAC,WAAA,OAAAI,EAAAF,EAAA,mBAAAV,EAAAE,EAAAE,GAAA,IAAAE,EAAAC,EAAAG,EAAAG,EAAA,EAAAC,EAAAV,GAAA,GAAAW,GAAA,EAAAC,EAAA,CAAAF,EAAA,EAAAZ,EAAA,EAAAe,EAAAnB,EAAAoB,EAAAC,EAAAN,EAAAM,EAAAC,KAAAtB,EAAA,GAAAqB,EAAA,SAAApB,EAAAC,GAAA,OAAAM,EAAAP,EAAAQ,EAAA,EAAAG,EAAAZ,EAAAkB,EAAAd,EAAAF,EAAAkB,CAAA,YAAAC,EAAAnB,EAAAE,GAAA,IAAAK,EAAAP,EAAAU,EAAAR,EAAAH,EAAA,GAAAgB,GAAAF,IAAAT,GAAAL,EAAAe,EAAAO,OAAAtB,IAAA,KAAAK,EAAAE,EAAAQ,EAAAf,GAAAoB,EAAAH,EAAAF,EAAAQ,EAAAhB,EAAA,GAAAN,EAAA,GAAAI,EAAAkB,IAAApB,KAAAQ,EAAAJ,GAAAC,EAAAD,EAAA,OAAAC,EAAA,MAAAD,EAAA,GAAAA,EAAA,GAAAR,GAAAQ,EAAA,IAAAa,KAAAf,EAAAJ,EAAA,GAAAmB,EAAAb,EAAA,KAAAC,EAAA,EAAAS,EAAAC,EAAAf,EAAAc,EAAAd,EAAAI,EAAA,IAAAa,EAAAG,IAAAlB,EAAAJ,EAAA,GAAAM,EAAA,GAAAJ,GAAAA,EAAAoB,KAAAhB,EAAA,GAAAN,EAAAM,EAAA,GAAAJ,EAAAc,EAAAd,EAAAoB,EAAAf,EAAA,OAAAH,GAAAJ,EAAA,SAAAkB,EAAA,MAAAH,GAAA,EAAAb,CAAA,iBAAAE,EAAAU,EAAAQ,GAAA,GAAAT,EAAA,QAAAU,UAAA,oCAAAR,GAAA,IAAAD,GAAAK,EAAAL,EAAAQ,GAAAf,EAAAO,EAAAJ,EAAAY,GAAAvB,EAAAQ,EAAA,EAAAT,EAAAY,KAAAK,GAAA,CAAAT,IAAAC,EAAAA,EAAA,GAAAA,EAAA,IAAAS,EAAAd,GAAA,GAAAiB,EAAAZ,EAAAG,IAAAM,EAAAd,EAAAQ,EAAAM,EAAAC,EAAAP,GAAA,OAAAG,EAAA,EAAAP,EAAA,IAAAC,IAAAH,EAAA,QAAAL,EAAAO,EAAAF,GAAA,MAAAL,EAAAA,EAAAyB,KAAAlB,EAAAI,IAAA,MAAAa,UAAA,wCAAAxB,EAAA0B,KAAA,OAAA1B,EAAAW,EAAAX,EAAAZ,MAAAoB,EAAA,IAAAA,EAAA,YAAAA,IAAAR,EAAAO,EAAAoB,SAAA3B,EAAAyB,KAAAlB,GAAAC,EAAA,IAAAG,EAAAa,UAAA,oCAAAnB,EAAA,YAAAG,EAAA,GAAAD,EAAAR,CAAA,UAAAC,GAAAgB,EAAAC,EAAAd,EAAA,GAAAQ,EAAAV,EAAAwB,KAAAtB,EAAAc,MAAAE,EAAA,YAAAnB,GAAAO,EAAAR,EAAAS,EAAA,EAAAG,EAAAX,CAAA,SAAAc,EAAA,UAAA1B,MAAAY,EAAA0B,KAAAV,EAAA,GAAAf,EAAAI,EAAAE,IAAA,GAAAI,CAAA,KAAAQ,EAAA,YAAAT,IAAA,UAAAkB,IAAA,UAAAC,IAAA,CAAA7B,EAAAX,OAAAyC,eAAA,IAAAtB,EAAA,GAAAL,GAAAH,EAAAA,EAAA,GAAAG,QAAAU,EAAAb,EAAA,GAAAG,EAAA,yBAAAH,GAAAW,EAAAkB,EAAApB,UAAAC,EAAAD,UAAApB,OAAAuB,OAAAJ,GAAA,SAAAM,EAAAf,GAAA,OAAAV,OAAA0C,eAAA1C,OAAA0C,eAAAhC,EAAA8B,IAAA9B,EAAAiC,UAAAH,EAAAhB,EAAAd,EAAAM,EAAA,sBAAAN,EAAAU,UAAApB,OAAAuB,OAAAD,GAAAZ,CAAA,QAAA6B,EAAAnB,UAAAoB,EAAAhB,EAAAF,EAAA,cAAAkB,GAAAhB,EAAAgB,EAAA,cAAAD,GAAAA,EAAAK,YAAA,oBAAApB,EAAAgB,EAAAxB,EAAA,qBAAAQ,EAAAF,GAAAE,EAAAF,EAAAN,EAAA,aAAAQ,EAAAF,EAAAR,EAAA,yBAAAU,EAAAF,EAAA,oDAAAuB,EAAA,kBAAAC,EAAA5B,EAAA6B,EAAAtB,EAAA,cAAAD,EAAAd,EAAAE,EAAAE,EAAAH,GAAA,IAAAO,EAAAlB,OAAAgD,eAAA,IAAA9B,EAAA,gBAAAR,GAAAQ,EAAA,EAAAM,EAAA,SAAAd,EAAAE,EAAAE,EAAAH,GAAA,SAAAK,EAAAJ,EAAAE,GAAAU,EAAAd,EAAAE,EAAA,SAAAF,GAAA,YAAAuC,QAAArC,EAAAE,EAAAJ,EAAA,GAAAE,EAAAM,EAAAA,EAAAR,EAAAE,EAAA,CAAAb,MAAAe,EAAAoC,YAAAvC,EAAAwC,cAAAxC,EAAAyC,UAAAzC,IAAAD,EAAAE,GAAAE,GAAAE,EAAA,UAAAA,EAAA,WAAAA,EAAA,cAAAQ,EAAAd,EAAAE,EAAAE,EAAAH,EAAA,UAAA0C,EAAAvC,EAAAH,EAAAD,EAAAE,EAAAI,EAAAc,EAAAX,GAAA,QAAAD,EAAAJ,EAAAgB,GAAAX,GAAAG,EAAAJ,EAAAnB,KAAA,OAAAe,GAAA,YAAAJ,EAAAI,EAAA,CAAAI,EAAAmB,KAAA1B,EAAAW,GAAAgC,QAAAC,QAAAjC,GAAAkC,KAAA5C,EAAAI,EAAA,UAAAyC,EAAA3C,GAAA,sBAAAH,EAAA,KAAAD,EAAAgD,UAAA,WAAAJ,QAAA,SAAA1C,EAAAI,GAAA,IAAAc,EAAAhB,EAAA6C,MAAAhD,EAAAD,GAAA,SAAAkD,EAAA9C,GAAAuC,EAAAvB,EAAAlB,EAAAI,EAAA4C,EAAAC,EAAA,OAAA/C,EAAA,UAAA+C,EAAA/C,GAAAuC,EAAAvB,EAAAlB,EAAAI,EAAA4C,EAAAC,EAAA,QAAA/C,EAAA,CAAA8C,OAAA,eAAAjE,EAAAmC,EAAAhB,GAAA,KAAAgB,aAAAhB,GAAA,UAAAqB,UAAA,8CAAA2B,EAAApD,EAAAE,GAAA,QAAAD,EAAA,EAAAA,EAAAC,EAAAqB,OAAAtB,IAAA,KAAAK,EAAAJ,EAAAD,GAAAK,EAAAkC,WAAAlC,EAAAkC,aAAA,EAAAlC,EAAAmC,cAAA,YAAAnC,IAAAA,EAAAoC,UAAA,GAAApD,OAAAgD,eAAAtC,EAAAqD,EAAA/C,EAAAlB,KAAAkB,EAAA,WAAAgD,EAAAtD,EAAAE,EAAAD,GAAA,OAAAC,GAAAkD,EAAApD,EAAAU,UAAAR,GAAAD,GAAAmD,EAAApD,EAAAC,GAAAX,OAAAgD,eAAAtC,EAAA,aAAA0C,UAAA,IAAA1C,CAAA,UAAAuD,EAAAtD,EAAAK,EAAAN,GAAA,OAAAM,EAAAkD,EAAAlD,GAAA,SAAAL,EAAAD,GAAA,GAAAA,IAAA,UAAAyD,EAAAzD,IAAA,mBAAAA,GAAA,OAAAA,EAAA,YAAAA,EAAA,UAAAyB,UAAA,4EAAAzB,GAAA,YAAAA,EAAA,UAAA0D,eAAA,oEAAA1D,CAAA,CAAA2D,CAAA1D,EAAA,CAAA2D,CAAA3D,EAAA4D,IAAAC,QAAAC,UAAAzD,EAAAN,GAAA,GAAAwD,EAAAvD,GAAA+D,aAAA1D,EAAA2C,MAAAhD,EAAAD,GAAA,UAAA6D,IAAA,QAAA5D,GAAAgE,QAAAvD,UAAAwD,QAAAxC,KAAAoC,QAAAC,UAAAE,QAAA,wBAAAhE,GAAA,QAAA4D,EAAA,mBAAA5D,CAAA,cAAAkE,EAAAlE,EAAAK,EAAAN,EAAAE,GAAA,IAAAc,EAAAoD,EAAAZ,EAAA,EAAAtD,EAAAD,EAAAS,UAAAT,GAAAK,EAAAN,GAAA,SAAAE,GAAA,mBAAAc,EAAA,SAAAf,GAAA,OAAAe,EAAAiC,MAAAjD,EAAAC,EAAA,EAAAe,CAAA,UAAAoD,IAAA,OAAAA,EAAA,oBAAAN,SAAAA,QAAAO,IAAAP,QAAAO,IAAA/C,OAAA,SAAAtB,EAAAC,EAAAC,GAAA,IAAAc,EAAA,SAAAf,EAAAK,GAAA,SAAAgE,eAAA5C,KAAAzB,EAAAK,IAAA,QAAAL,EAAAuD,EAAAvD,MAAA,OAAAA,CAAA,CAAAsE,CAAAvE,EAAAC,GAAA,GAAAe,EAAA,KAAAZ,EAAAd,OAAAkF,yBAAAxD,EAAAf,GAAA,OAAAG,EAAAiE,IAAAjE,EAAAiE,IAAA3C,KAAAsB,UAAAzB,OAAA,EAAAvB,EAAAE,GAAAE,EAAAf,KAAA,GAAA+E,EAAAnB,MAAA,KAAAD,UAAA,UAAAQ,EAAAvD,GAAA,OAAAuD,EAAAlE,OAAA0C,eAAA1C,OAAAyC,eAAAT,OAAA,SAAArB,GAAA,OAAAA,EAAAgC,WAAA3C,OAAAyC,eAAA9B,EAAA,EAAAuD,EAAAvD,EAAA,UAAAwE,EAAAxE,EAAAD,GAAA,sBAAAA,GAAA,OAAAA,EAAA,UAAAyB,UAAA,sDAAAxB,EAAAS,UAAApB,OAAAuB,OAAAb,GAAAA,EAAAU,UAAA,CAAAsD,YAAA,CAAA3E,MAAAY,EAAAyC,UAAA,EAAAD,cAAA,KAAAnD,OAAAgD,eAAArC,EAAA,aAAAyC,UAAA,IAAA1C,GAAA0E,EAAAzE,EAAAD,EAAA,UAAA0E,EAAAzE,EAAAD,GAAA,OAAA0E,EAAApF,OAAA0C,eAAA1C,OAAA0C,eAAAV,OAAA,SAAArB,EAAAD,GAAA,OAAAC,EAAAgC,UAAAjC,EAAAC,CAAA,EAAAyE,EAAAzE,EAAAD,EAAA,UAAA2E,EAAA3E,EAAAE,EAAAD,GAAA,OAAAC,EAAAmD,EAAAnD,MAAAF,EAAAV,OAAAgD,eAAAtC,EAAAE,EAAA,CAAAb,MAAAY,EAAAuC,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAA1C,EAAAE,GAAAD,EAAAD,CAAA,UAAAqD,EAAApD,GAAA,IAAAO,EAAA,SAAAP,GAAA,aAAAwD,EAAAxD,KAAAA,EAAA,OAAAA,EAAA,IAAAD,EAAAC,EAAAE,OAAAyE,aAAA,YAAA5E,EAAA,KAAAQ,EAAAR,EAAA0B,KAAAzB,EAAAC,UAAA,aAAAuD,EAAAjD,GAAA,OAAAA,EAAA,UAAAiB,UAAA,uDAAAoD,OAAA5E,EAAA,CAAA6E,CAAA7E,GAAA,gBAAAwD,EAAAjD,GAAAA,EAAAA,EAAA,GAYA,I,IAmPmCuE,EACtBC,E,MApPPC,EAAyEC,OAAOD,WAMzEE,EAAc,SAAAC,GAAA,SAAAD,IAAA,IAAAE,EAAApG,EAAA,KAAAkG,GAAA,QAAAG,EAAAtC,UAAAzB,OAAAgE,EAAA,IAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAAF,EAAAE,GAAAzC,UAAAyC,GA6CzB,OA7CyBd,EAAAU,EAAA9B,EAAA,KAAA4B,EAAA,GAAAO,OAAAH,IAAA,UACf,CACRI,SAAS,EAMTC,gBAAiB,0BAQjBC,cAAe,GASfC,kBAAmB,GAOnBC,OAAQ,0BAORC,OAAQ,eAGVrB,EAAAU,EAAA,sBAGAV,EAAAU,EAAA,yBAAAA,CAAA,QAAAZ,EAAAU,EAAAC,GAAA9B,EAAA6B,EAAA,EAAA/F,IAAA,QAAAC,MAIA,SAAMF,GACJgF,EAAAgB,EAAA,eAAAhB,CAAA,CAAYhF,IACZD,KAAKC,QAAQ2G,kBAAoB5G,KAAKC,QAAQ2G,mBAAqB5G,KAAKC,QAAQ6G,OAChF9G,KAAKC,QAAQyG,gBAAkB1G,KAAKC,QAAQyG,iBAAmB1G,KAAKC,QAAQ4G,MAC9E,GAEA,CAAA3G,IAAA,OAAAC,OAAA4G,EAAAlD,EAAAZ,IAAAE,EACA,SAAA6D,IAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,YAAApE,IAAAC,EAAA,SAAAoE,GAAA,cAAAA,EAAApG,GAAA,UACOlB,KAAKC,QAAQwG,SAA0B,UAAfzG,KAAKF,GAAGyH,GAAc,CAAAD,EAAApG,EAAA,eAAAoG,EAAApF,EAAA,UAKnD,GADIgF,EAAqB,KAEY,QADrCD,EACIjH,KAAKF,GAAGG,QAAQuH,yBAAiB,IAAAP,IAAjCA,EAAmC5E,OAAM,CAAAiF,EAAApG,EAAA,QAC3CgG,EAAqBlH,KAAKF,GAAGG,QAAQuH,kBAAkBF,EAAApG,EAAA,sBAAAoG,EAAApG,EAAA,EAG/BlB,KAAKyH,uBAAsB,OAC/CL,OADEA,EAASE,EAAArF,IACiB,QAAnBkF,EAATC,EAAWI,yBAAiB,IAAAL,GAA5BA,EAA8B9E,SAChC6E,EAAqBE,EAAUI,mBAChC,OAGCN,IACFlH,KAAK0H,YAAcR,EAChBS,IAAI,SAAAC,GAAW,OAAKxH,OAAOC,OAAO,CAAC,EAAGuH,EAAa,CAClDC,UAC8B,iBAArBD,EAAYE,KAAoBT,EAAKvH,GAAGiI,KAAKC,eAAeJ,EAAYE,MAC7EF,EAAYK,QAAUZ,EAAKvH,GAAGiI,KAAKG,aAAaN,EAAYK,cAC1DE,GAEN,GACJnI,KAAKoI,UACLpI,KAAKF,GAAGsC,KAAK2D,EAAWsC,WAAWC,YAAa,kBAAMjB,EAAKkB,gBAAgB,IAC5E,cAAAjB,EAAApF,EAAA,KAAA8E,EAAA,SACF,WA7BS,OAAAD,EAAAhD,MAAC,KAADD,UAAA,IA+BV,CAAA5D,IAAA,UAAAC,MAGA,WAAU,IAAAqI,EAAA,KACRxI,KAAKF,GAAG2I,MAAMC,cAAwB,SAAI,CACxCC,GAAI,WACJC,MAAMC,EAAAA,EAAAA,IAAIC,IAAAA,EAAAC,EAAA,sIACVC,MAAO,oBACPC,WAAWJ,EAAAA,EAAAA,IAAIK,IAAAA,EAAAH,EAAA,iHACA/I,KAAK0H,YACH,SAACG,GAChBW,EAAKD,eAAeV,GACpBW,EAAK1I,GAAGqJ,YAAYtB,EACtB,EACgB,SAAC/G,GACf0H,EAAKY,eAAiBtI,EAAEuI,OACxBb,EAAKD,gBACP,IAGFvI,KAAKF,GAAG2I,MAAMa,gBAAgB,YAC9BtJ,KAAKF,GAAG2I,MAAMc,qBACdvJ,KAAK0H,YAAY8B,QAAQ,SAACC,EAAUnI,GAAC,OAAKkH,EAAKkB,cAAcD,EAAUnI,EAAE,EAC3E,GAEA,CAAApB,IAAA,gBAAAC,MAIA,SAAcsJ,EAAUE,GAAY,IAAAC,EAAA,KAClC,GAA0BzB,MAAtBsB,EAAS5B,UAAb,CAGA,IAAMgC,EAAa,CAACJ,EAAST,MAAOS,EAASK,OAC1CC,OAAO,SAAAC,GAAC,OAAIA,CAAC,GACbC,KAAK,MAAQ,WAAJzD,OAAemD,EAAa,GAElCO,EAAiBnE,EAAWoE,KAAKC,cAAcX,EAAS5B,UAAW7H,KAAKF,GAAGiI,KAAKsC,cAAgB,GACtGC,EAAE,eACCC,OACCD,EAAE,WACCE,KAAKX,GACLU,OACCD,EAAE,iCACCE,KAAKxK,KAAKF,GAAGiI,KAAK0C,YAAYhB,EAAS5B,cAG/C6C,SAAS,aACTC,IAAI,CAAEC,KAAMV,IACZW,SAAS7K,KAAKF,GAAGwK,EAAE,eACnBQ,GAAG,aAAc,SAAAC,GAEhB,IAAMC,EAASD,EAAME,cACfC,EAAUF,EAAOG,cAAc,OAC/BC,EAAgBF,EAAQG,wBACxBC,EAAeN,EAAOK,wBACtBE,EAAkE,EAAlDC,SAASC,iBAAiBP,GAASQ,aACrDN,EAAcpB,EAAIuB,EAAgB,GACpCL,EAAQS,MAAMC,YAAY,YAAa,eAAFpF,OAAiB8E,EAAaV,KAAOW,EAAa,QAEzF3B,EAAK9J,GAAGwK,EAAE,wBAAwBuB,YAAY,SAC9CvB,EAAES,EAAM1B,QAAQqB,SAAS,QAC3B,GACCI,GAAG,aAAc,SAAAC,GAAK,OAAIT,EAAES,EAAM1B,QAAQwC,YAAY,QAAQ,GAC9Df,GAAG,QAAS,WACXlB,EAAKrB,eAAekB,EAAS5B,WAC7B+B,EAAK9J,GAAGqJ,YAAYM,EAAS5B,UAC/B,GAEF7H,KAAKF,GAAGwK,EAAE,yBAAyBwB,KAAK,SAACxK,EAAGyK,GAC1C,IAAMC,EAAM1B,EAAEyB,GACdC,EACGlB,GAAG,aAAc,kBAAMkB,EAAItB,SAAS,QAAQ,GAC5CI,GAAG,aAAc,kBAAMkB,EAAIH,YAAY,QAAQ,EACpD,EA5C2C,CA6C7C,GAEA,CAAA3L,IAAA,uBAAAC,OAAA8L,EAAApI,EAAAZ,IAAAE,EAIA,SAAA+I,IAAA,IAAArF,EAAAF,EAAAwF,EAAAC,EAAAC,EAAAC,EAAA,OAAArJ,IAAAC,EAAA,SAAAqJ,GAAA,cAAAA,EAAArL,GAAA,OACmF,GAA3E2F,GAAS2F,EAAAA,EAAAA,GAAexM,KAAKC,QAAQyG,gBAAiB1G,KAAKF,GAAGG,QAAQwM,OAExEzM,KAAKC,QAAQ0G,cAAe,CAAF4F,EAAArL,EAAA,QAC0D,OAAhFyF,GAAgB6F,EAAAA,EAAAA,GAAexM,KAAKC,QAAQ0G,cAAe3G,KAAKF,GAAGG,QAAQwM,MAAKF,EAAArL,EAAA,EACzEoJ,EAAEoC,KAAK,CAAEC,IAAK,GAAFnG,OAAKK,EAAM,WAAAL,OAAUG,EAAa,WAAU,cAAA4F,EAAArK,EAAA,EAAAqK,EAAAtK,GAAA,WAGnEjC,KAAKC,QAAQ2G,kBAAmB,CAAF2F,EAAArL,EAAA,QAIF,OAHxBkL,GAAQI,EAAAA,EAAAA,GAAexM,KAAKC,QAAQ2G,kBAAmB5G,KAAKF,GAAGG,QAAQwM,MAGvEJ,EAAe,GAAH7F,OAAMK,EAAM,sCAAA0F,EAAArL,EAAA,EAEboJ,EAAEoC,KAAK,CACtBC,IAAKN,EAAe,IAAIO,gBAAgB,CAAER,MAAAA,EAAOS,MAAO,QACxD,OAFM,IAAJP,EAAIC,EAAAtK,IAIMqK,EAAKjK,OAAM,CAAAkK,EAAArL,EAAA,eAAAqL,EAAArL,EAAA,EAEVoJ,EAAEoC,KAAK,CAClBC,IAAKN,EAAe,IAAIO,gBAAgB,CAAEE,eAAgB,MAAFtG,OAAQ4F,GAASS,MAAO,QAChF,OAFFP,EAAIC,EAAAtK,EAAA,cAAAsK,EAAArK,EAAA,EAKK,QALLiK,EAKCG,SAAI,IAAAH,OAAA,EAAJA,EAAO,IAAE,cAAAI,EAAArK,EAAA,EAGX,MAAI,EAAAgK,EAAA,SACZ,WA7ByB,OAAAD,EAAAlI,MAAC,KAADD,UAAA,IA+B1B,CAAA5D,IAAA,iBAAAC,MAKA,WAEE,I,EADA4M,EAAQjJ,UAAAzB,OAAA,QAAA8F,IAAArE,UAAA,GAAAA,UAAA,GAAoB,GAAhB9D,KAAKF,GAAGkN,KAAYC,KAAKC,IAAGnJ,MAARkJ,K,+CAAYjN,KAAKF,GAAGqN,mB,uLAAoBnN,KAAKF,GAAGsN,WAE1EC,EAAoBrN,KAAK0H,YAAYqC,OAAO,SAACgC,GAAE,OAAqB5D,MAAhB4D,EAAGlE,SAAsB,GAAEyF,UAC/EC,EAAcF,EAElBA,EAAkBG,UAAU,SAACC,GAAO,OAAKA,EAAQ5F,WAAakF,CAAQ,IAEpE/M,KAAKoJ,iBACPpJ,KAAKoJ,eAAesE,eAAiBH,EAEzC,KAnDA,IAAAtB,EA7GAlF,CAgKC,CAvNwB,CAASlH,EAAAA,GAyNpCkG,SAAAA,EAAY4H,eAAe,WAAY1H,G,EAqBX,EAD3B2H,EAAAA,EAAAA,IAAc,sB,EACsBC,EAAAA,G,MADFhI,E,0DA6BjC,CAAAiI,EA5BWhI,EAAe,SAAAiI,GAe1B,SAAAjI,EAAYkI,GAAU,IAAAC,EAEK,OAFLlO,EAAA,KAAA+F,GACpBmI,EAAA5J,EAAA,KAAAyB,GAAQD,EAAAoI,GACRA,EAAKD,SAAWA,EAASC,CAC3B,CAUA,OAAA1I,EAAAO,EAAAiI,GAAA3J,EAAA0B,EAAA,CA5B0B,C,GAAA3D,EAAA,EAAA+L,KAAA,QAAAC,WAAA,EAEzBC,EAAAA,EAAAA,IAAS,CAAEC,KAAM/H,SAAQpG,IAAA,WAAAC,MAAA,iBACf,EAAE,IAAA+N,KAAA,QAAAC,WAAA,EAGZC,EAAAA,EAAAA,IAAS,CAAEC,KAAMjO,UAASF,IAAA,iBAAAC,MAAA,iBACV,CAAC,CAAC,IAAA+N,KAAA,QAAAhO,IAAA,aAAAC,MAAA,kBAGN,WAAO,CAAC,IAAA+N,KAAA,SAAAhO,IAAA,SAAAC,MAUrB,WAAS,IAAAmO,EAAA,KACP,OAAOzF,EAAAA,EAAAA,IAAI0F,IAAAA,EAAAxF,EAAA,6CAEP/I,KAAKgO,SAASrG,IAAI,SAAA8B,GAAQ,OAAI6E,EAAKE,eAAe/E,EAAS,GAGjE,GAAC,CAAAyE,KAAA,SAAAhO,IAAA,iBAAAC,MAKD,SAAesJ,GAAU,IAAAgF,EAAA,KACjBC,EAAe,CAACjF,EAAST,MAAOS,EAASK,OAC5CC,OAAO,SAAAC,GAAC,OAAIA,CAAC,GACbC,KAAK,KACF0E,EAAkCxG,MAAtBsB,EAAS5B,UAE3B,OAAOgB,EAAAA,EAAAA,IAAI+F,IAAAA,EAAA7F,EAAA,qNAIL4F,EAAY,YAAc,GAC1BlF,GAAYzJ,KAAK0N,eAAiB,UAAY,IAEzCmB,EAAAA,EAAAA,GAAS,CAACC,WAAmC,IAAtBrF,EAASsF,MAAQ,GAAU,QAC9BC,EAAAA,EAAAA,GAAUL,EAAY,8BAA2BxG,GACpE,kBAAMsG,EAAKQ,WAAWxF,EAAS5B,UAAU,EAEjD6G,EACAjF,EAASxB,SAAUY,EAAAA,EAAAA,IAAIqG,IAAAA,EAAAnG,EAAA,uFAEeU,EAASxB,SAC7CkH,EAAAA,GAER,GAAC,CAAAjB,KAAA,SAAAhO,IAAA,oBAAAC,MAED,WACE8E,EAzDSa,EAAe,2BAyDxBb,CAzDwB,IA0DxBjF,KAAKoP,cAAc,IAAIC,YAAY,aACrC,GAAC,CAAAnB,KAAA,SAAAhO,IAAA,UAAAC,MAED,SAAQmP,GACuC,IAAAC,EAAzCD,EAAkBE,IAAI,oBACmB,QAA3CD,EAAAvP,KAAKyP,WAAWtE,cAAc,qBAAa,IAAAoE,GAA3CA,EAA6CG,eAAe,CAC1DC,MAAO,UACPC,SAAU,WAGhB,GAAC,CAAA1B,KAAA,MAAA2B,QAAA,EAAA3P,IAAA,SAAAC,MAED,WACE,OAAOwK,EAAAA,EAAAA,IAAGmF,IAAAA,EAAA/G,EAAA,inBA8BZ,K,upBCrWF,IAAIuB,EAAI,EAAQ,MACZyF,EAAQ,aAKZzF,EAAE,CAAEjB,OAAQ,SAAU2G,OAAO,EAAMC,OAJN,EAAQ,IAIMC,CAAuB,SAAW,CAC3EC,KAAM,WACJ,OAAOJ,EAAM/P,KACf,G,qECIWsC,EAAgB,SAAAA,GAAA,OAAa,MAAAA,EAAAA,EAASvB,EAAAA,EAAA,C,6HCD5C,SAASyL,EAAe4D,EAAU3D,GAAuD,IAAjD4D,EAASvM,UAAAzB,OAAA,QAAA8F,IAAArE,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAGwM,EAAexM,UAAAzB,OAAA,QAAA8F,IAAArE,UAAA,GAAAA,UAAA,GAAGyM,EAC/E,OAAOH,aAAQ,EAARA,EAAUI,QAAQ,oBAAqB,SAACC,EAAIC,GACjD,IAAKA,EAAI,OAAOD,EAEhB,I,EAC0EE,E,4CADvDD,EAC0BE,MAAM,KAAKjJ,IAAI,SAAAqC,GAAC,OAAIA,EAAEmG,MAAM,K,ujBAAlEU,EAAOF,EAAA,GAAKG,EAAWC,EAAAJ,GAAAK,MAAA,GAI9B,KAHgBH,KAAWR,MAAaQ,KAAWpE,GAGrC,OAAOgE,EAErB,IAAMtQ,EAAQ0Q,KAAWR,EAAYA,EAAUQ,GAC3CA,KAAWpE,EAAOA,EAAKoE,GAAW,KAEtC,OADgBC,EAAYnJ,IAAI,SAAAzG,GAAC,OAAIoP,EAAgBpP,EAAE,GACxC+P,OAAO,SAACC,EAAKC,GAAG,OAAKA,EAAID,EAAI,EAAE/Q,GAASA,EAAMiR,WAC/D,EACF,C,gKAGO,IAAMb,EAAgB,CAC3Bc,UAAWC,mB","sources":["webpack://@internetarchive/bookreader/./node_modules/core-js/internals/string-trim-forced.js","webpack://@internetarchive/bookreader/./src/BookReaderPlugin.js","webpack://@internetarchive/bookreader/./node_modules/@internetarchive/icon-toc/index.js","webpack://@internetarchive/bookreader/./node_modules/@internetarchive/icon-toc/icon-toc.js","webpack://@internetarchive/bookreader/./src/plugins/plugin.chapters.js","webpack://@internetarchive/bookreader/./node_modules/core-js/modules/es.string.trim.js","webpack://@internetarchive/bookreader/../src/directives/if-defined.ts","webpack://@internetarchive/bookreader/./src/util/strings.js"],"sourcesContent":["'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","// @ts-check\n/** @typedef {import(\"./BookReader.js\").default} BookReader */\n\n/**\n * @template TOptions\n */\nexport class BookReaderPlugin {\n /**\n * @param {BookReader} br\n */\n constructor(br) {\n /** @type {BookReader} */\n this.br = br;\n /** @type {TOptions} */\n this.options;\n }\n\n /**\n * @abstract\n * @param {TOptions} options\n **/\n setup(options) {\n this.options = Object.assign({}, this.options, options);\n }\n\n /** @abstract */\n init() {}\n\n /**\n * @abstract\n * @protected\n * @param {import (\"./BookReader/PageContainer.js\").PageContainer} pageContainer\n */\n _configurePageContainer(pageContainer) {\n }\n\n /**\n * @abstract\n * @protected\n * @param {JQuery<HTMLElement>} $toolbarElement\n */\n _configureToolbar($toolbarElement) {\n }\n\n /** @abstract @protected */\n _bindNavigationHandlers() {}\n\n /**\n * @param {JQuery<HTMLElement>} $navBar\n */\n extendNavBar($navBar) {}\n}\n","import { html } from 'lit';\n\nexport default html`\n<svg\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-labelledby=\"tocTitleID tocDescID\"\n>\n <title id=\"tocTitleID\">Table of contents icon</title>\n <desc id=\"tocDescID\">An illustration of three text list items</desc>\n <g class=\"fill-color\" fill-rule=\"evenodd\"><rect height=\"3\" rx=\"1.5\" width=\"18\" x=\"6\"/><rect height=\"3\" rx=\"1.5\" width=\"18\" x=\"6\" y=\"21\"/><rect height=\"3\" rx=\"1.5\" width=\"18\" x=\"6\" y=\"14\"/><rect height=\"3\" rx=\"1.5\" width=\"18\" x=\"6\" y=\"7\"/><rect height=\"3\" rx=\"1.5\" width=\"4\"/><rect height=\"3\" rx=\"1.5\" width=\"4\" y=\"21\"/><rect height=\"3\" rx=\"1.5\" width=\"4\" y=\"14\"/><rect height=\"3\" rx=\"1.5\" width=\"4\" y=\"7\"/></g>\n</svg>\n`;\n","import icon from './index.js';\nimport { css, LitElement } from 'lit';\n\nclass IAIconToc extends LitElement {\n static get styles() {\n return css`\n :host {\n width: var(--iconWidth, 'auto');\n height: var(--iconHeight, 'auto');\n }\n\n .fill-color {\n fill: var(--iconFillColor);\n }\n\n .stroke-color {\n stroke: var(--iconStrokeColor);\n }\n `;\n }\n\n render() {\n return icon;\n }\n}\n\ncustomElements.define('ia-icon-toc', IAIconToc);\n\nexport default IAIconToc;\n","// @ts-check\nimport { css, html, LitElement, nothing } from \"lit\";\nimport { customElement, property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport '@internetarchive/icon-toc/icon-toc.js';\nimport { BookReaderPlugin } from \"../BookReaderPlugin.js\";\nimport { applyVariables } from \"../util/strings.js\";\n/** @typedef {import('@/src/BookReader/BookModel.js').PageIndex} PageIndex */\n/** @typedef {import('@/src/BookReader/BookModel.js').PageString} PageString */\n/** @typedef {import('@/src/BookReader/BookModel.js').LeafNum} LeafNum */\n\n// @ts-ignore\nconst BookReader = /** @type {typeof import('@/src/BookReader.js').default} */(window.BookReader);\n\n/**\n * Plugin for chapter markers in BookReader. Fetches from openlibrary.org\n * Could be forked, or extended to alter behavior\n */\nexport class ChaptersPlugin extends BookReaderPlugin {\n options = {\n enabled: true,\n\n /**\n * The Open Library host to fetch/query Open Library.\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n openLibraryHost: 'https://openlibrary.org',\n\n /**\n * The Open Library edition to fetch the table of contents from.\n * E.g. 'OL12345M'\n *\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n openLibraryId: '',\n\n /**\n * The Internet Archive identifier to fetch the Open Library table\n * of contents from.\n * E.g. 'goody'\n *\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n internetArchiveId: '',\n\n /**\n * @deprecated\n * Old name for openLibraryHost\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n olHost: 'https://openlibrary.org',\n\n /**\n * @deprecated\n * Old name for internetArchiveId\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n bookId: '{{bookId}}',\n }\n\n /** @type {TocEntry[]} */\n _tocEntries;\n\n /** @type {BRChaptersPanel} */\n _chaptersPanel;\n\n /** @override */\n setup(options) {\n super.setup(options);\n this.options.internetArchiveId = this.options.internetArchiveId || this.options.bookId;\n this.options.openLibraryHost = this.options.openLibraryHost || this.options.olHost;\n }\n\n /** @override Extend to call Open Library for TOC */\n async init() {\n if (!this.options.enabled || this.br.ui === 'embed') {\n return;\n }\n\n let rawTableOfContents = null;\n // Prefer explicit TOC if specified\n if (this.br.options.table_of_contents?.length) {\n rawTableOfContents = this.br.options.table_of_contents;\n } else {\n // Otherwise fetch from OL\n const olEdition = await this.getOpenLibraryRecord();\n if (olEdition?.table_of_contents?.length) {\n rawTableOfContents = olEdition.table_of_contents;\n }\n }\n\n if (rawTableOfContents) {\n this._tocEntries = rawTableOfContents\n .map(rawTOCEntry => (Object.assign({}, rawTOCEntry, {\n pageIndex: (\n typeof(rawTOCEntry.leaf) == 'number' ? this.br.book.leafNumToIndex(rawTOCEntry.leaf) :\n rawTOCEntry.pagenum ? this.br.book.getPageIndex(rawTOCEntry.pagenum) :\n undefined\n ),\n })));\n this._render();\n this.br.bind(BookReader.eventNames.pageChanged, () => this._updateCurrent());\n }\n }\n\n /**\n * Update the table of contents based on array of TOC entries.\n */\n _render() {\n this.br.shell.menuProviders['chapters'] = {\n id: 'chapters',\n icon: html`<ia-icon-toc aria-hidden=\"true\" role=\"presentation\" style=\"width: var(--iconWidth); height: var(--iconHeight);\"></ia-icon-toc>`,\n label: 'Table of Contents',\n component: html`<br-chapters-panel\n .contents=\"${this._tocEntries}\"\n .jumpToPage=\"${(pageIndex) => {\n this._updateCurrent(pageIndex);\n this.br.jumpToIndex(pageIndex);\n }}\"\n @connected=\"${(e) => {\n this._chaptersPanel = e.target;\n this._updateCurrent();\n }}\"\n />`,\n };\n this.br.shell.addMenuShortcut('chapters');\n this.br.shell.updateMenuContents();\n this._tocEntries.forEach((tocEntry, i) => this._renderMarker(tocEntry, i));\n }\n\n /**\n * @param {TocEntry} tocEntry\n * @param {number} entryIndex\n */\n _renderMarker(tocEntry, entryIndex) {\n if (tocEntry.pageIndex == undefined) return;\n\n //creates a string with non-void tocEntry.label and tocEntry.title\n const chapterStr = [tocEntry.label, tocEntry.title]\n .filter(x => x)\n .join(' ') || `Chapter ${entryIndex + 1}`;\n\n const percentThrough = BookReader.util.cssPercentage(tocEntry.pageIndex, this.br.book.getNumLeafs() - 1);\n $(`<div></div>`)\n .append(\n $('<div />')\n .text(chapterStr)\n .append(\n $('<div class=\"BRchapterPage\" />')\n .text(this.br.book.getPageName(tocEntry.pageIndex)),\n ),\n )\n .addClass('BRchapter')\n .css({ left: percentThrough })\n .appendTo(this.br.$('.BRnavline'))\n .on(\"mouseenter\", event => {\n // remove hover effect from other markers then turn on just for this\n const marker = event.currentTarget;\n const tooltip = marker.querySelector('div');\n const tooltipOffset = tooltip.getBoundingClientRect();\n const targetOffset = marker.getBoundingClientRect();\n const boxSizeAdjust = parseInt(getComputedStyle(tooltip).paddingLeft) * 2;\n if (tooltipOffset.x - boxSizeAdjust < 0) {\n tooltip.style.setProperty('transform', `translateX(-${targetOffset.left - boxSizeAdjust}px)`);\n }\n this.br.$('.BRsearch,.BRchapter').removeClass('front');\n $(event.target).addClass('front');\n })\n .on(\"mouseleave\", event => $(event.target).removeClass('front'))\n .on('click', () => {\n this._updateCurrent(tocEntry.pageIndex);\n this.br.jumpToIndex(tocEntry.pageIndex);\n });\n\n this.br.$('.BRchapter, .BRsearch').each((i, el) => {\n const $el = $(el);\n $el\n .on(\"mouseenter\", () => $el.addClass('front'))\n .on(\"mouseleave\", () => $el.removeClass('front'));\n });\n }\n\n /**\n * This makes a call to OL API and calls the given callback function with the\n * response from the API.\n */\n async getOpenLibraryRecord() {\n const olHost = applyVariables(this.options.openLibraryHost, this.br.options.vars);\n\n if (this.options.openLibraryId) {\n const openLibraryId = applyVariables(this.options.openLibraryId, this.br.options.vars);\n return await $.ajax({ url: `${olHost}/books/${openLibraryId}.json` });\n }\n\n if (this.options.internetArchiveId) {\n const ocaid = applyVariables(this.options.internetArchiveId, this.br.options.vars);\n\n // Try looking up by ocaid first, then by source_record\n const baseQueryUrl = `${olHost}/query.json?type=/type/edition&*=&`;\n\n let data = await $.ajax({\n url: baseQueryUrl + new URLSearchParams({ ocaid, limit: '1' }),\n });\n\n if (!data || !data.length) {\n // try source_records\n data = await $.ajax({\n url: baseQueryUrl + new URLSearchParams({ source_records: `ia:${ocaid}`, limit: '1' }),\n });\n }\n\n return data?.[0];\n }\n\n return null;\n }\n\n /**\n * @private\n * Highlights the current chapter based on current page\n * @param {PageIndex} curIndex\n */\n _updateCurrent(\n curIndex = (this.br.mode == 2 ? Math.max(...this.br.displayedIndices) : this.br.firstIndex),\n ) {\n const tocEntriesIndexed = this._tocEntries.filter((el) => el.pageIndex != undefined).reverse();\n const currChapter = tocEntriesIndexed[\n // subtract one so that 2up shows the right label\n tocEntriesIndexed.findIndex((chapter) => chapter.pageIndex <= curIndex)\n ];\n if (this._chaptersPanel) {\n this._chaptersPanel.currentChapter = currChapter;\n }\n }\n}\nBookReader?.registerPlugin('chapters', ChaptersPlugin);\n\n/**\n * @typedef {Object} TocEntry\n * Table of contents entry as defined by Open Library, with some extra values for internal use\n * @property {number} [level]\n * @property {string} [label]\n * @property {string} [title]\n * @property {PageString} [pagenum]\n * @property {LeafNum} [leaf]\n * @property {number} [pageIndex] - Added\n *\n * @example {\n * \"pagenum\": \"17\",\n * \"level\": 1,\n * \"label\": \"CHAPTER I\",\n * \"title\": \"THE COUNTRY AND THE MISSION\"\n * }\n */\n\n@customElement('br-chapters-panel')\nexport class BRChaptersPanel extends LitElement {\n /** @type {TocEntry[]} */\n @property({ type: Array })\n contents = [];\n\n /** @type {TocEntry?} */\n @property({ type: Object })\n currentChapter = {};\n\n /** @type {(pageIndex: PageIndex) => void} */\n jumpToPage = () => {};\n\n /**\n * @param {TocEntry[]} contents\n */\n constructor(contents) {\n super();\n this.contents = contents;\n }\n\n render() {\n return html`\n <ol>\n ${this.contents.map(tocEntry => this.renderTOCEntry(tocEntry))}\n </ol>\n `;\n }\n\n /**\n * @param {TocEntry} tocEntry\n */\n renderTOCEntry(tocEntry) {\n const chapterTitle = [tocEntry.label, tocEntry.title]\n .filter(x => x)\n .join(' ');\n const clickable = tocEntry.pageIndex != undefined;\n // note the click-tracking won't work...\n return html`\n <li\n class=\"\n BRtable-contents-el\n ${clickable ? 'clickable' : ''}\n ${tocEntry == this.currentChapter ? 'current' : ''}\n \"\n style=\"${styleMap({marginLeft: (tocEntry.level - 1) * 10 + 'px'})}\"\n data-event-click-tracking=\"${ifDefined(clickable ? \"BRTOCPanel|GoToChapter\" : undefined)}\"\n @click=\"${() => this.jumpToPage(tocEntry.pageIndex)}\"\n >\n ${chapterTitle}\n ${tocEntry.pagenum ? html`\n <br />\n <span class=\"BRTOCElementPage\">Page ${tocEntry.pagenum}</span>\n ` : nothing}\n </li>`;\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.dispatchEvent(new CustomEvent('connected'));\n }\n\n updated(changedProperties) {\n if (changedProperties.has('currentChapter')) {\n this.shadowRoot.querySelector('li.current')?.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth',\n });\n }\n }\n\n static get styles() {\n return css`\n ol {\n padding: 0;\n margin: 0;\n margin-right: 5px;\n }\n li {\n padding: 10px;\n overflow: hidden;\n border-radius: 4px;\n }\n li.clickable {\n font-weight: normal;\n cursor: pointer;\n transition: background-color 0.2s;\n }\n\n li.clickable:not(.current):hover {\n background-color: rgba(255,255,255, 0.05);\n }\n\n li.current {\n background-color: rgba(255,255,255,0.9);\n color: #333;\n }\n\n .BRTOCElementPage {\n font-size: 0.85em;\n opacity: .8;\n }`;\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {nothing} from '../lit-html.js';\n\n/**\n * For AttributeParts, sets the attribute if the value is defined and removes\n * the attribute if the value is undefined.\n *\n * For other part types, this directive is a no-op.\n */\nexport const ifDefined = <T>(value: T) => value ?? nothing;\n","/**\n * @typedef {String} StringWithVars\n * A template string with {{foo}} style variables\n * Also supports filters, like {{bookPath|urlencode}} (See APPLY_FILTERS for the\n * supported list of filters)\n **/\n\n/**\n * @param {StringWithVars|String} template\n * @param { {[varName: string]: { toString: () => string} } } vars\n * @param { {[varName: string]: { toString: () => string} } } [overrides]\n * @returns {StringWithVars|string}\n */\nexport function applyVariables(template, vars, overrides = {}, possibleFilters = APPLY_FILTERS) {\n return template?.replace(/\\{\\{([^}]*?)\\}\\}/g, ($0, $1) => {\n if (!$1) return $0;\n /** @type {string} */\n const expression = $1;\n const [varName, ...filterNames] = expression.split('|').map(x => x.trim());\n const defined = varName in overrides || varName in vars;\n\n // If it's not defined, don't expand it at all\n if (!defined) return $0;\n\n const value = varName in overrides ? overrides[varName]\n : varName in vars ? vars[varName] : null;\n const filters = filterNames.map(n => possibleFilters[n]);\n return filters.reduce((acc, cur) => cur(acc), value && value.toString());\n });\n}\n\n/** @type { {[filterName: String]:( string => string)} } */\nexport const APPLY_FILTERS = {\n urlencode: encodeURIComponent,\n};\n"],"names":["PROPER_FUNCTION_NAME","fails","whitespaces","module","exports","METHOD_NAME","name","BookReaderPlugin","br","_classCallCheck","this","options","key","value","Object","assign","pageContainer","$toolbarElement","$navBar","IAIconToc","styles","render","customElements","define","e","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","call","done","return","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","_defineProperties","_toPropertyKey","_createClass","_callSuper","_getPrototypeOf","_typeof","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","valueOf","_superPropGet","_get","get","hasOwnProperty","_superPropBase","getOwnPropertyDescriptor","_inherits","_setPrototypeOf","_defineProperty","toPrimitive","String","_toPrimitive","_initialize","BRChaptersPanel","BookReader","window","ChaptersPlugin","_BookReaderPlugin","_this","_len","args","Array","_key","concat","enabled","openLibraryHost","openLibraryId","internetArchiveId","olHost","bookId","_init","_callee","_this$br$options$tabl","rawTableOfContents","_olEdition$table_of_c","olEdition","_this2","_context","ui","table_of_contents","getOpenLibraryRecord","_tocEntries","map","rawTOCEntry","pageIndex","leaf","book","leafNumToIndex","pagenum","getPageIndex","undefined","_render","eventNames","pageChanged","_updateCurrent","_this3","shell","menuProviders","id","icon","html","_templateObject","_taggedTemplateLiteral","label","component","_templateObject2","jumpToIndex","_chaptersPanel","target","addMenuShortcut","updateMenuContents","forEach","tocEntry","_renderMarker","entryIndex","_this4","chapterStr","title","filter","x","join","percentThrough","util","cssPercentage","getNumLeafs","$","append","text","getPageName","addClass","css","left","appendTo","on","event","marker","currentTarget","tooltip","querySelector","tooltipOffset","getBoundingClientRect","targetOffset","boxSizeAdjust","parseInt","getComputedStyle","paddingLeft","style","setProperty","removeClass","each","el","$el","_getOpenLibraryRecord","_callee2","_data","ocaid","baseQueryUrl","data","_context2","applyVariables","vars","ajax","url","URLSearchParams","limit","source_records","curIndex","mode","Math","max","displayedIndices","firstIndex","tocEntriesIndexed","reverse","currChapter","findIndex","chapter","currentChapter","registerPlugin","customElement","LitElement","F","_LitElement2","contents","_this5","kind","decorators","property","type","_this6","_templateObject3","renderTOCEntry","_this7","chapterTitle","clickable","_templateObject4","styleMap","marginLeft","level","ifDefined","jumpToPage","_templateObject5","nothing","dispatchEvent","CustomEvent","changedProperties","_this$shadowRoot$quer","has","shadowRoot","scrollIntoView","block","behavior","static","_templateObject6","$trim","proto","forced","forcedStringTrimMethod","trim","template","overrides","possibleFilters","APPLY_FILTERS","replace","$0","$1","_expression$split$map2","split","varName","filterNames","_arrayLikeToArray","slice","reduce","acc","cur","toString","urlencode","encodeURIComponent"],"sourceRoot":""}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/*! For license information please see plugin.experiments.js.LICENSE.txt */
|
|
2
|
-
"use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[830],{1041:function(e,t,n){function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,o(r.key),r)}}function o(e){var t=function(e){if("object"!=r(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=r(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==r(t)?t:t+""}n.d(t,{S:function(){return a}}),n(2675),n(9463),n(2259),n(5700),n(3792),n(9572),n(8130),n(9085),n(6099),n(7764),n(2953);var a=function(){return e=function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.br=t,this.options},(t=[{key:"setup",value:function(e){this.options=Object.assign({},this.options,e)}},{key:"init",value:function(){}},{key:"_configurePageContainer",value:function(e){}},{key:"_configureToolbar",value:function(e){}},{key:"_bindNavigationHandlers",value:function(){}},{key:"extendNavBar",value:function(e){}}])&&i(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}()},3921:function(e,t,n){var r=n(6518),i=n(2652),o=n(4659);r({target:"Object",stat:!0},{fromEntries:function(e){var t={};return i(e,function(e,n){o(t,e,n)},{AS_ENTRIES:!0}),t}})},6732:function(e,t,n){n(2675),n(9463),n(2259),n(5700),n(8125),n(8706),n(2008),n(113),n(3418),n(4423),n(3792),n(2062),n(4782),n(4554),n(739),n(9572),n(2010),n(4731),n(479),n(8130),n(9085),n(2811),n(3921),n(3851),n(875),n(9432),n(6099),n(3362),n(825),n(888),n(7495),n(8781),n(1699),n(7764),n(5440),n(3500),n(2953);var r,i,o,a,s,c,l,u=n(420),f=n(1041),p=n(9696),d=n(8004);function h(e){return h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},h(e)}function y(e,t,n,r){var i=m();if(r)for(var o=0;o<r.length;o++)i=r[o](i);var a=t(function(e){i.initializeInstanceElements(e,s.elements)},n),s=i.decorateClass(function(e){for(var t=[],n=function(e){return"method"===e.kind&&e.key===o.key&&e.placement===o.placement},r=0;r<e.length;r++){var i,o=e[r];if("method"===o.kind&&(i=t.find(n)))if(w(o.descriptor)||w(i.descriptor)){if(g(o)||g(i))throw new ReferenceError("Duplicated methods ("+o.key+") can't be decorated.");i.descriptor=o.descriptor}else{if(g(o)){if(g(i))throw new ReferenceError("Decorators can't be placed on different accessors with for the same property ("+o.key+").");i.decorators=o.decorators}b(o,i)}else t.push(o)}return t}(a.d.map(v)),e);return i.initializeClassElements(a.F,s.elements),i.runClassFinishers(a.F,s.finishers)}function m(){m=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(n){t.forEach(function(t){t.kind===n&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var n=e.prototype;["method","field"].forEach(function(r){t.forEach(function(t){var i=t.placement;if(t.kind===r&&("static"===i||"prototype"===i)){var o="static"===i?e:n;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var n=t.descriptor;if("field"===t.kind){var r=t.initializer;n={enumerable:n.enumerable,writable:n.writable,configurable:n.configurable,value:void 0===r?void 0:r.call(e)}}Object.defineProperty(e,t.key,n)},decorateClass:function(e,t){var n=[],r=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!g(e))return n.push(e);var t=this.decorateElement(e,i);n.push(t.element),n.push.apply(n,t.extras),r.push.apply(r,t.finishers)},this),!t)return{elements:n,finishers:r};var o=this.decorateConstructor(n,t);return r.push.apply(r,o.finishers),o.finishers=r,o},addElementPlacement:function(e,t,n){var r=t[e.placement];if(!n&&-1!==r.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");r.push(e.key)},decorateElement:function(e,t){for(var n=[],r=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&r.push(c.finisher);var l=c.extras;if(l){for(var u=0;u<l.length;u++)this.addElementPlacement(l[u],t);n.push.apply(n,l)}}return{element:e,finishers:r,extras:n}},decorateConstructor:function(e,t){for(var n=[],r=t.length-1;r>=0;r--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[r])(i)||i);if(void 0!==o.finisher&&n.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a<e.length-1;a++)for(var s=a+1;s<e.length;s++)if(e[a].key===e[s].key&&e[a].placement===e[s].placement)throw new TypeError("Duplicated element ("+e[a].key+")")}}return{elements:e,finishers:n}},fromElementDescriptor:function(e){var t={kind:e.kind,key:e.key,placement:e.placement,descriptor:e.descriptor};return Object.defineProperty(t,Symbol.toStringTag,{value:"Descriptor",configurable:!0}),"field"===e.kind&&(t.initializer=e.initializer),t},toElementDescriptors:function(e){if(void 0!==e)return(t=e,function(e){if(Array.isArray(e))return e}(t)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||O(t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map(function(e){var t=this.toElementDescriptor(e);return this.disallowProperty(e,"finisher","An element descriptor"),this.disallowProperty(e,"extras","An element descriptor"),t},this);var t},toElementDescriptor:function(e){var t=e.kind+"";if("method"!==t&&"field"!==t)throw new TypeError('An element descriptor\'s .kind property must be either "method" or "field", but a decorator created an element descriptor with .kind "'+t+'"');var n=N(e.key),r=e.placement+"";if("static"!==r&&"prototype"!==r&&"own"!==r)throw new TypeError('An element descriptor\'s .placement property must be one of "static", "prototype" or "own", but a decorator created an element descriptor with .placement "'+r+'"');var i=e.descriptor;this.disallowProperty(e,"elements","An element descriptor");var o={kind:t,key:n,placement:r,descriptor:Object.assign({},i)};return"field"!==t?this.disallowProperty(e,"initializer","A method descriptor"):(this.disallowProperty(i,"get","The property descriptor of a field descriptor"),this.disallowProperty(i,"set","The property descriptor of a field descriptor"),this.disallowProperty(i,"value","The property descriptor of a field descriptor"),o.initializer=e.initializer),o},toElementFinisherExtras:function(e){return{element:this.toElementDescriptor(e),finisher:k(e,"finisher"),extras:this.toElementDescriptors(e.extras)}},fromClassDescriptor:function(e){var t={kind:"class",elements:e.map(this.fromElementDescriptor,this)};return Object.defineProperty(t,Symbol.toStringTag,{value:"Descriptor",configurable:!0}),t},toClassDescriptor:function(e){var t=e.kind+"";if("class"!==t)throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator created a class descriptor with .kind "'+t+'"');this.disallowProperty(e,"key","A class descriptor"),this.disallowProperty(e,"placement","A class descriptor"),this.disallowProperty(e,"descriptor","A class descriptor"),this.disallowProperty(e,"initializer","A class descriptor"),this.disallowProperty(e,"extras","A class descriptor");var n=k(e,"finisher");return{elements:this.toElementDescriptors(e.elements),finisher:n}},runClassFinishers:function(e,t){for(var n=0;n<t.length;n++){var r=(0,t[n])(e);if(void 0!==r){if("function"!=typeof r)throw new TypeError("Finishers must return a constructor.");e=r}}return e},disallowProperty:function(e,t,n){if(void 0!==e[t])throw new TypeError(n+" can't have a ."+t+" property.")}};return e}function v(e){var t,n=N(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var r={kind:"field"===e.kind?"field":"method",key:n,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(r.decorators=e.decorators),"field"===e.kind&&(r.initializer=e.value),r}function b(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function g(e){return e.decorators&&e.decorators.length}function w(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function k(e,t){var n=e[t];if(void 0!==n&&"function"!=typeof n)throw new TypeError("Expected '"+t+"' to be a function");return n}function E(e,t,n,r){var i=x(T(1&r?e.prototype:e),t,n);return 2&r&&"function"==typeof i?function(e){return i.apply(n,e)}:i}function x(){return x="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=T(e)););return e}(e,t);if(r){var i=Object.getOwnPropertyDescriptor(r,t);return i.get?i.get.call(arguments.length<3?e:n):i.value}},x.apply(null,arguments)}function P(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function S(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=O(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function O(e,t){if(e){if("string"==typeof e)return j(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?j(e,t):void 0}}function j(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function _(e,t,n){return t=T(t),function(e,t){if(t&&("object"==h(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,A()?Reflect.construct(t,n||[],T(e).constructor):t.apply(e,n))}function A(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(A=function(){return!!e})()}function T(e){return T=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},T(e)}function C(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&D(e,t)}function D(e,t){return D=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},D(e,t)}function M(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",i=n.toStringTag||"@@toStringTag";function o(n,r,i,o){var c=r&&r.prototype instanceof s?r:s,l=Object.create(c.prototype);return R(l,"_invoke",function(n,r,i){var o,s,c,l=0,u=i||[],f=!1,p={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,n){return o=t,s=0,c=e,p.n=n,a}};function d(n,r){for(s=n,c=r,t=0;!f&&l&&!i&&t<u.length;t++){var i,o=u[t],d=p.p,h=o[2];n>3?(i=h===r)&&(c=o[(s=o[4])?5:(s=3,3)],o[4]=o[5]=e):o[0]<=d&&((i=n<2&&d<o[1])?(s=0,p.v=r,p.n=o[1]):d<h&&(i=n<3||o[0]>r||r>h)&&(o[4]=n,o[5]=r,p.n=h,s=0))}if(i||n>1)return a;throw f=!0,r}return function(i,u,h){if(l>1)throw TypeError("Generator is already running");for(f&&1===u&&d(u,h),s=u,c=h;(t=s<2?e:c)||!f;){o||(s?s<3?(s>1&&(p.n=-1),d(s,c)):p.n=c:p.v=c);try{if(l=2,o){if(s||(i="next"),t=o[i]){if(!(t=t.call(o,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,s<2&&(s=0)}else 1===s&&(t=o.return)&&t.call(o),s<2&&(c=TypeError("The iterator does not provide a '"+i+"' method"),s=1);o=e}else if((t=(f=p.n<0)?c:n.call(r,p))!==a)break}catch(t){o=e,s=1,c=t}finally{l=1}}return{value:t,done:f}}}(n,i,o),!0),l}var a={};function s(){}function c(){}function l(){}t=Object.getPrototypeOf;var u=[][r]?t(t([][r]())):(R(t={},r,function(){return this}),t),f=l.prototype=s.prototype=Object.create(u);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,R(e,i,"GeneratorFunction")),e.prototype=Object.create(f),e}return c.prototype=l,R(f,"constructor",l),R(l,"constructor",c),c.displayName="GeneratorFunction",R(l,i,"GeneratorFunction"),R(f),R(f,i,"Generator"),R(f,r,function(){return this}),R(f,"toString",function(){return"[object Generator]"}),(M=function(){return{w:o,m:p}})()}function R(e,t,n,r){var i=Object.defineProperty;try{i({},"",{})}catch(e){i=0}R=function(e,t,n,r){function o(t,n){R(e,t,function(e){return this._invoke(t,n,e)})}t?i?i(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(o("next",0),o("throw",1),o("return",2))},R(e,t,n,r)}function z(e,t,n,r,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,i)}function F(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var o=e.apply(t,n);function a(e){z(o,r,i,a,s,"next",e)}function s(e){z(o,r,i,a,s,"throw",e)}a(void 0)})}}function L(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function B(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,N(r.key),r)}}function I(e,t,n){return t&&B(e.prototype,t),n&&B(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function q(e,t,n){return(t=N(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function N(e){var t=function(e){if("object"!=h(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=h(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==h(t)?t:t+""}var G=window.BookReader,U=function(){return I(function e(){L(this,e),q(this,"name",void 0),q(this,"title",void 0),q(this,"description",void 0),q(this,"icon",void 0),q(this,"enabled",void 0),q(this,"learnMore",void 0),q(this,"br",void 0),q(this,"assetRoot","/BookReader/"),q(this,"enabledLoading",!1)},[{key:"buildAssetPath",value:function(e){return"".concat(this.assetRoot).concat(e)}},{key:"enable",value:(t=F(M().m(function e(t){return M().w(function(e){for(;;)switch(e.n){case 0:t.manual;case 1:return e.a(2)}},e)})),function(e){return t.apply(this,arguments)})},{key:"disable",value:(e=F(M().m(function e(){return M().w(function(e){for(;;)if(0===e.n)return e.a(2)},e)})),function(){return e.apply(this,arguments)})}]);var e,t}(),Z=function(e){function t(){var e;L(this,t);for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return q(e=_(this,t,[].concat(r)),"options",{enabled:!0,localStorageKey:"BrExperiments",enabledExperiments:["translate"]}),q(e,"allExperiments",[new(function(e){function t(){var e;L(this,t);for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return q(e=_(this,t,[].concat(r)),"name","translate"),q(e,"title","Translate Plugin"),q(e,"description","Translate books directly in your browser."),q(e,"learnMore","https://mozilla.github.io/translations/"),q(e,"icon","images/translate.svg"),q(e,"enabled",!1),e}return C(t,e),I(t,[{key:"enable",value:(r=F(M().m(function e(t){return M().w(function(e){for(;;)switch(e.n){case 0:if(t.manual,!G.PLUGINS.translate){e.n=1;break}return e.a(2);case 1:return e.n=2,H(this.buildAssetPath("plugins/plugin.translate.js"));case 2:this.br.initializePlugin("translate");case 3:return e.a(2)}},e,this)})),function(e){return r.apply(this,arguments)})},{key:"disable",value:(n=F(M().m(function e(){return M().w(function(e){for(;;)switch(e.n){case 0:(0,d.sleep)(0).then(function(){window.location.reload()});case 1:return e.a(2)}},e)})),function(){return n.apply(this,arguments)})}]);var n,r}(U)),new(function(e){function t(){var e;L(this,t);for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return q(e=_(this,t,[].concat(r)),"name","hypothesis"),q(e,"title","Hypothes.is"),q(e,"description","Create public, collaborative, or fully private annotations on books and the web."),q(e,"learnMore","https://web.hypothes.is/about/"),q(e,"icon","images/hypothesis.ico"),q(e,"enabled",!1),e}return C(t,e),I(t,[{key:"enable",value:(r=F(M().m(function e(t){var n,r,i;return M().w(function(e){for(;;)if(0===e.n)return n=t.manual,r=void 0!==n&&n,(i=document.createElement("script")).type="application/json",i.className="js-hypothesis-config",i.textContent=JSON.stringify({openSidebar:r,assetRoot:this.buildAssetPath("hypothesis/")}),document.head.appendChild(i),e.a(2,H(this.buildAssetPath("hypothesis/build/boot.js")))},e,this)})),function(e){return r.apply(this,arguments)})},{key:"disable",value:(n=F(M().m(function e(){return M().w(function(e){for(;;)switch(e.n){case 0:(0,d.sleep)(0).then(function(){window.location.reload()});case 1:return e.a(2)}},e)})),function(){return n.apply(this,arguments)})}]);var n,r}(U))]),q(e,"_panel",void 0),e}return C(t,e),I(t,[{key:"init",value:(o=F(M().m(function e(){var t,n,r;return M().w(function(e){for(;;)switch(e.n){case 0:if(this.options.enabled){e.n=1;break}return e.a(2);case 1:t=S(this.allExperiments);try{for(t.s();!(n=t.n()).done;)(r=n.value).assetRoot=this.br.options.imagesBaseURL.replace(/images\/$/,""),r.icon=r.buildAssetPath(r.icon),r.br=this.br}catch(e){t.e(e)}finally{t.f()}return this._loadExperimentStates(),e.n=2,Promise.resolve();case 2:this._render();case 3:return e.a(2)}},e,this)})),function(){return o.apply(this,arguments)})},{key:"_loadExperimentStates",value:function(){var e=JSON.parse(localStorage.getItem(this.options.localStorageKey)||"{}");this.allExperiments.forEach(function(t){void 0!==e[t.name]&&(t.enabled=e[t.name],t.enabled&&t.enable({manual:!1}))})}},{key:"_saveExperimentStates",value:function(){var e=Object.fromEntries(this.allExperiments.map(function(e){return[e.name,e.enabled]}));localStorage.setItem(this.options.localStorageKey,JSON.stringify(e))}},{key:"_toggleExperiment",value:(n=F(M().m(function e(t,n){var r;return M().w(function(e){for(;;)switch(e.n){case 0:if(t.enabledLoading=!0,null===(r=this.br.plugins.archiveAnalytics)||void 0===r||r.sendEvent("BRExperiment-".concat(t.name),n?"Enable":"Disable"),this._panel.requestUpdate(),!n){e.n=2;break}return e.n=1,t.enable({manual:!0});case 1:e.n=3;break;case 2:return e.n=3,t.disable();case 3:t.enabledLoading=!1,t.enabled=n,this._panel.requestUpdate();case 4:return e.a(2)}},e,this)})),function(e,t){return n.apply(this,arguments)})},{key:"_render",value:function(){var e=this;this.br.shell.menuProviders.experiments={id:"experiments",icon:(0,u.qy)(r||(r=P(['\n <img src="','/icon_experiment.svg" width="26"/>\n '])),this.br.options.imagesBaseURL),label:"Experiments",component:(0,u.qy)(i||(i=P(['<br-experiments-panel\n .experiments="','"\n @connected="','"\n @toggle="','"\n />'])),this.allExperiments.filter(function(t){return e.options.enabledExperiments.includes(t.name)}),function(t){return e._panel=t.target},function(){var t=F(M().m(function t(n){return M().w(function(t){for(;;)switch(t.n){case 0:return t.n=1,e._toggleExperiment(n.detail.experiment,n.detail.enabled);case 1:e._saveExperimentStates();case 2:return t.a(2)}},t)}));return function(e){return t.apply(this,arguments)}}())},this.br.shell.updateMenuContents()}}]);var n,o}(f.S);function H(e){return J.apply(this,arguments)}function J(){return(J=F(M().m(function e(t){return M().w(function(e){for(;;)if(0===e.n)return e.a(2,new Promise(function(e,n){var r=document.createElement("script");r.src=t,r.onload=function(){return e()},r.onerror=function(){return n(new Error("Failed to load script: ".concat(t)))},document.head.appendChild(r)}))},e)}))).apply(this,arguments)}null==G||G.registerPlugin("experiments",Z),y([(0,p.EM)("br-experiments-panel")],function(e,t){var n,r=function(t){function n(){var t;L(this,n);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return t=_(this,n,[].concat(i)),e(t),t}return C(n,t),I(n)}(t);return{F:r,d:[{kind:"field",decorators:[(0,p.MZ)({type:Array})],key:"experiments",value:function(){return[]}},{kind:"method",key:"render",value:function(){var e=this;return(0,u.qy)(o||(o=P(['\n <div style="padding: 10px">\n ',"\n </div>\n "])),this.experiments.map(function(t){return(0,u.qy)(a||(a=P(['\n <br-experiment-toggle\n .icon="','"\n .title="','"\n .description="','"\n .enabled="','"\n .loading="','"\n .learnMore="','"\n @toggle="','"\n ></br-experiment-toggle>\n '])),t.icon,t.title,t.description,t.enabled,t.enabledLoading,t.learnMore,function(n){return e._dispatchToggle(t,n.detail.enabled)})}))}},{kind:"method",key:"_dispatchToggle",value:(n=F(M().m(function e(t,n){return M().w(function(e){for(;;)switch(e.n){case 0:this.dispatchEvent(new CustomEvent("toggle",{detail:{experiment:t,enabled:n}}));case 1:return e.a(2)}},e,this)})),function(e,t){return n.apply(this,arguments)})},{kind:"method",key:"connectedCallback",value:function(){E(r,"connectedCallback",this,3)([]),this.dispatchEvent(new CustomEvent("connected"))}}]}},u.WF),y([(0,p.EM)("br-experiment-toggle")],function(e,t){var n=function(t){function n(){var t;L(this,n);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return t=_(this,n,[].concat(i)),e(t),t}return C(n,t),I(n)}(t);return{F:n,d:[{kind:"field",decorators:[(0,p.MZ)({type:String})],key:"icon",value:function(){return""}},{kind:"field",decorators:[(0,p.MZ)({type:String})],key:"title",value:function(){return""}},{kind:"field",decorators:[(0,p.MZ)({type:String})],key:"description",value:function(){return""}},{kind:"field",decorators:[(0,p.MZ)({type:Boolean})],key:"enabled",value:function(){return!1}},{kind:"field",decorators:[(0,p.MZ)({type:Boolean})],key:"loading",value:function(){return!1}},{kind:"field",decorators:[(0,p.MZ)({type:String})],key:"learnMore",value:function(){return""}},{kind:"field",decorators:[(0,p.wk)()],key:"_longLoading",value:function(){return!1}},{kind:"method",key:"update",value:function(e){var t=this;E(n,"update",this,3)([e]),e.has("loading")&&(this.loading?(0,d.sleep)(500).then(function(){t.loading&&(t._longLoading=!0,t.requestUpdate())}):this._longLoading=!1)}},{kind:"method",key:"render",value:function(){return(0,u.qy)(s||(s=P(['\n <div class="experiment-card" style="margin-bottom: 10px;">\n <div style="display: flex; align-items: center; gap: 10px;">\n <img src="','" style="width: 20px; height: 20px;" alt="" />\n <div style="flex-grow: 1; font-weight: bold;">','</div>\n </div>\n <p style="opacity: 0.9">\n ',"\n ",'\n </p>\n <div style="display: flex">\n <div style="flex-grow: 1;"></div>\n <button @click="','" .disabled="','">\n ',"\n </button>\n </div>\n </div>\n "])),this.icon,this.title,this.description,this.learnMore?(0,u.qy)(c||(c=P(['<a href="','" target="_blank">Learn more</a>.'])),this.learnMore):"",this._dispatchToggle,this.loading,this._longLoading?"Loading…":this.enabled?"Disable":"Enable")}},{kind:"get",static:!0,key:"styles",value:function(){return(0,u.AH)(l||(l=P(["\n .experiment-card {\n border-radius: 8px;\n background-color: #fff2;\n padding: 10px;\n display: flex;\n flex-direction: column;\n }\n\n .experiment-card p {\n margin: 6px 0;\n }\n "])))}},{kind:"method",key:"_dispatchToggle",value:function(){this.dispatchEvent(new CustomEvent("toggle",{detail:{enabled:!this.enabled}}))}}]}},u.WF)}},function(e){e(e.s=6732)}]);
|
|
2
|
+
"use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[830],{1041:function(e,t,n){function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,o(r.key),r)}}function o(e){var t=function(e){if("object"!=r(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=r(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==r(t)?t:t+""}n.d(t,{S:function(){return a}}),n(2675),n(9463),n(2259),n(5700),n(3792),n(9572),n(8130),n(9085),n(6099),n(7764),n(2953);var a=function(){return e=function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.br=t,this.options},(t=[{key:"setup",value:function(e){this.options=Object.assign({},this.options,e)}},{key:"init",value:function(){}},{key:"_configurePageContainer",value:function(e){}},{key:"_configureToolbar",value:function(e){}},{key:"_bindNavigationHandlers",value:function(){}},{key:"extendNavBar",value:function(e){}}])&&i(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}()},3921:function(e,t,n){var r=n(6518),i=n(2652),o=n(4659);r({target:"Object",stat:!0},{fromEntries:function(e){var t={};return i(e,function(e,n){o(t,e,n)},{AS_ENTRIES:!0}),t}})},6732:function(e,t,n){n(2675),n(9463),n(2259),n(5700),n(8125),n(8706),n(2008),n(113),n(3418),n(4423),n(3792),n(2062),n(4782),n(4554),n(739),n(9572),n(2010),n(4731),n(479),n(8130),n(9085),n(2811),n(3921),n(3851),n(875),n(9432),n(6099),n(3362),n(825),n(888),n(7495),n(8781),n(1699),n(7764),n(5440),n(3500),n(2953);var r,i,o,a,s,c,l,u=n(420),f=n(1041),p=n(9696),d=n(8004);function h(e){return h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},h(e)}function y(e,t,n,r){var i=m();if(r)for(var o=0;o<r.length;o++)i=r[o](i);var a=t(function(e){i.initializeInstanceElements(e,s.elements)},n),s=i.decorateClass(function(e){for(var t=[],n=function(e){return"method"===e.kind&&e.key===o.key&&e.placement===o.placement},r=0;r<e.length;r++){var i,o=e[r];if("method"===o.kind&&(i=t.find(n)))if(w(o.descriptor)||w(i.descriptor)){if(g(o)||g(i))throw new ReferenceError("Duplicated methods ("+o.key+") can't be decorated.");i.descriptor=o.descriptor}else{if(g(o)){if(g(i))throw new ReferenceError("Decorators can't be placed on different accessors with for the same property ("+o.key+").");i.decorators=o.decorators}b(o,i)}else t.push(o)}return t}(a.d.map(v)),e);return i.initializeClassElements(a.F,s.elements),i.runClassFinishers(a.F,s.finishers)}function m(){m=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(n){t.forEach(function(t){t.kind===n&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var n=e.prototype;["method","field"].forEach(function(r){t.forEach(function(t){var i=t.placement;if(t.kind===r&&("static"===i||"prototype"===i)){var o="static"===i?e:n;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var n=t.descriptor;if("field"===t.kind){var r=t.initializer;n={enumerable:n.enumerable,writable:n.writable,configurable:n.configurable,value:void 0===r?void 0:r.call(e)}}Object.defineProperty(e,t.key,n)},decorateClass:function(e,t){var n=[],r=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!g(e))return n.push(e);var t=this.decorateElement(e,i);n.push(t.element),n.push.apply(n,t.extras),r.push.apply(r,t.finishers)},this),!t)return{elements:n,finishers:r};var o=this.decorateConstructor(n,t);return r.push.apply(r,o.finishers),o.finishers=r,o},addElementPlacement:function(e,t,n){var r=t[e.placement];if(!n&&-1!==r.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");r.push(e.key)},decorateElement:function(e,t){for(var n=[],r=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&r.push(c.finisher);var l=c.extras;if(l){for(var u=0;u<l.length;u++)this.addElementPlacement(l[u],t);n.push.apply(n,l)}}return{element:e,finishers:r,extras:n}},decorateConstructor:function(e,t){for(var n=[],r=t.length-1;r>=0;r--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[r])(i)||i);if(void 0!==o.finisher&&n.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a<e.length-1;a++)for(var s=a+1;s<e.length;s++)if(e[a].key===e[s].key&&e[a].placement===e[s].placement)throw new TypeError("Duplicated element ("+e[a].key+")")}}return{elements:e,finishers:n}},fromElementDescriptor:function(e){var t={kind:e.kind,key:e.key,placement:e.placement,descriptor:e.descriptor};return Object.defineProperty(t,Symbol.toStringTag,{value:"Descriptor",configurable:!0}),"field"===e.kind&&(t.initializer=e.initializer),t},toElementDescriptors:function(e){if(void 0!==e)return(t=e,function(e){if(Array.isArray(e))return e}(t)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||O(t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map(function(e){var t=this.toElementDescriptor(e);return this.disallowProperty(e,"finisher","An element descriptor"),this.disallowProperty(e,"extras","An element descriptor"),t},this);var t},toElementDescriptor:function(e){var t=e.kind+"";if("method"!==t&&"field"!==t)throw new TypeError('An element descriptor\'s .kind property must be either "method" or "field", but a decorator created an element descriptor with .kind "'+t+'"');var n=N(e.key),r=e.placement+"";if("static"!==r&&"prototype"!==r&&"own"!==r)throw new TypeError('An element descriptor\'s .placement property must be one of "static", "prototype" or "own", but a decorator created an element descriptor with .placement "'+r+'"');var i=e.descriptor;this.disallowProperty(e,"elements","An element descriptor");var o={kind:t,key:n,placement:r,descriptor:Object.assign({},i)};return"field"!==t?this.disallowProperty(e,"initializer","A method descriptor"):(this.disallowProperty(i,"get","The property descriptor of a field descriptor"),this.disallowProperty(i,"set","The property descriptor of a field descriptor"),this.disallowProperty(i,"value","The property descriptor of a field descriptor"),o.initializer=e.initializer),o},toElementFinisherExtras:function(e){return{element:this.toElementDescriptor(e),finisher:k(e,"finisher"),extras:this.toElementDescriptors(e.extras)}},fromClassDescriptor:function(e){var t={kind:"class",elements:e.map(this.fromElementDescriptor,this)};return Object.defineProperty(t,Symbol.toStringTag,{value:"Descriptor",configurable:!0}),t},toClassDescriptor:function(e){var t=e.kind+"";if("class"!==t)throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator created a class descriptor with .kind "'+t+'"');this.disallowProperty(e,"key","A class descriptor"),this.disallowProperty(e,"placement","A class descriptor"),this.disallowProperty(e,"descriptor","A class descriptor"),this.disallowProperty(e,"initializer","A class descriptor"),this.disallowProperty(e,"extras","A class descriptor");var n=k(e,"finisher");return{elements:this.toElementDescriptors(e.elements),finisher:n}},runClassFinishers:function(e,t){for(var n=0;n<t.length;n++){var r=(0,t[n])(e);if(void 0!==r){if("function"!=typeof r)throw new TypeError("Finishers must return a constructor.");e=r}}return e},disallowProperty:function(e,t,n){if(void 0!==e[t])throw new TypeError(n+" can't have a ."+t+" property.")}};return e}function v(e){var t,n=N(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var r={kind:"field"===e.kind?"field":"method",key:n,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(r.decorators=e.decorators),"field"===e.kind&&(r.initializer=e.value),r}function b(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function g(e){return e.decorators&&e.decorators.length}function w(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function k(e,t){var n=e[t];if(void 0!==n&&"function"!=typeof n)throw new TypeError("Expected '"+t+"' to be a function");return n}function E(e,t,n,r){var i=x(T(1&r?e.prototype:e),t,n);return 2&r&&"function"==typeof i?function(e){return i.apply(n,e)}:i}function x(){return x="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=T(e)););return e}(e,t);if(r){var i=Object.getOwnPropertyDescriptor(r,t);return i.get?i.get.call(arguments.length<3?e:n):i.value}},x.apply(null,arguments)}function P(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function S(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=O(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function O(e,t){if(e){if("string"==typeof e)return j(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?j(e,t):void 0}}function j(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function _(e,t,n){return t=T(t),function(e,t){if(t&&("object"==h(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,A()?Reflect.construct(t,n||[],T(e).constructor):t.apply(e,n))}function A(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(A=function(){return!!e})()}function T(e){return T=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},T(e)}function C(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&D(e,t)}function D(e,t){return D=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},D(e,t)}function M(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",i=n.toStringTag||"@@toStringTag";function o(n,r,i,o){var c=r&&r.prototype instanceof s?r:s,l=Object.create(c.prototype);return R(l,"_invoke",function(n,r,i){var o,s,c,l=0,u=i||[],f=!1,p={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,n){return o=t,s=0,c=e,p.n=n,a}};function d(n,r){for(s=n,c=r,t=0;!f&&l&&!i&&t<u.length;t++){var i,o=u[t],d=p.p,h=o[2];n>3?(i=h===r)&&(c=o[(s=o[4])?5:(s=3,3)],o[4]=o[5]=e):o[0]<=d&&((i=n<2&&d<o[1])?(s=0,p.v=r,p.n=o[1]):d<h&&(i=n<3||o[0]>r||r>h)&&(o[4]=n,o[5]=r,p.n=h,s=0))}if(i||n>1)return a;throw f=!0,r}return function(i,u,h){if(l>1)throw TypeError("Generator is already running");for(f&&1===u&&d(u,h),s=u,c=h;(t=s<2?e:c)||!f;){o||(s?s<3?(s>1&&(p.n=-1),d(s,c)):p.n=c:p.v=c);try{if(l=2,o){if(s||(i="next"),t=o[i]){if(!(t=t.call(o,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,s<2&&(s=0)}else 1===s&&(t=o.return)&&t.call(o),s<2&&(c=TypeError("The iterator does not provide a '"+i+"' method"),s=1);o=e}else if((t=(f=p.n<0)?c:n.call(r,p))!==a)break}catch(t){o=e,s=1,c=t}finally{l=1}}return{value:t,done:f}}}(n,i,o),!0),l}var a={};function s(){}function c(){}function l(){}t=Object.getPrototypeOf;var u=[][r]?t(t([][r]())):(R(t={},r,function(){return this}),t),f=l.prototype=s.prototype=Object.create(u);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,R(e,i,"GeneratorFunction")),e.prototype=Object.create(f),e}return c.prototype=l,R(f,"constructor",l),R(l,"constructor",c),c.displayName="GeneratorFunction",R(l,i,"GeneratorFunction"),R(f),R(f,i,"Generator"),R(f,r,function(){return this}),R(f,"toString",function(){return"[object Generator]"}),(M=function(){return{w:o,m:p}})()}function R(e,t,n,r){var i=Object.defineProperty;try{i({},"",{})}catch(e){i=0}R=function(e,t,n,r){function o(t,n){R(e,t,function(e){return this._invoke(t,n,e)})}t?i?i(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(o("next",0),o("throw",1),o("return",2))},R(e,t,n,r)}function z(e,t,n,r,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,i)}function F(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var o=e.apply(t,n);function a(e){z(o,r,i,a,s,"next",e)}function s(e){z(o,r,i,a,s,"throw",e)}a(void 0)})}}function L(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function B(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,N(r.key),r)}}function I(e,t,n){return t&&B(e.prototype,t),n&&B(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function q(e,t,n){return(t=N(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function N(e){var t=function(e){if("object"!=h(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=h(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==h(t)?t:t+""}var G=window.BookReader,U=function(){return I(function e(){L(this,e),q(this,"name",void 0),q(this,"title",void 0),q(this,"description",void 0),q(this,"icon",void 0),q(this,"enabled",void 0),q(this,"learnMore",void 0),q(this,"br",void 0),q(this,"assetRoot","/BookReader/"),q(this,"enabledLoading",!1)},[{key:"buildAssetPath",value:function(e){return"".concat(this.assetRoot).concat(e)}},{key:"enable",value:(t=F(M().m(function e(t){return M().w(function(e){for(;;)switch(e.n){case 0:t.manual;case 1:return e.a(2)}},e)})),function(e){return t.apply(this,arguments)})},{key:"disable",value:(e=F(M().m(function e(){return M().w(function(e){for(;;)if(0===e.n)return e.a(2)},e)})),function(){return e.apply(this,arguments)})}]);var e,t}(),Z=function(e){function t(){var e;L(this,t);for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return q(e=_(this,t,[].concat(r)),"options",{enabled:!0,localStorageKey:"BrExperiments",enabledExperiments:["translate"]}),q(e,"allExperiments",[new(function(e){function t(){var e;L(this,t);for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return q(e=_(this,t,[].concat(r)),"name","translate"),q(e,"title","Translate Plugin"),q(e,"description","Translate books directly in your browser."),q(e,"learnMore","https://mozilla.github.io/translations/"),q(e,"icon","images/translate.svg"),q(e,"enabled",!1),e}return C(t,e),I(t,[{key:"enable",value:(r=F(M().m(function e(t){return M().w(function(e){for(;;)switch(e.n){case 0:if(t.manual,!G.PLUGINS.translate){e.n=1;break}return e.a(2);case 1:return e.n=2,H(this.buildAssetPath("plugins/plugin.translate.js"));case 2:this.br.initializePlugin("translate");case 3:return e.a(2)}},e,this)})),function(e){return r.apply(this,arguments)})},{key:"disable",value:(n=F(M().m(function e(){return M().w(function(e){for(;;)switch(e.n){case 0:(0,d.sleep)(0).then(function(){window.location.reload()});case 1:return e.a(2)}},e)})),function(){return n.apply(this,arguments)})}]);var n,r}(U)),new(function(e){function t(){var e;L(this,t);for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return q(e=_(this,t,[].concat(r)),"name","hypothesis"),q(e,"title","Hypothes.is"),q(e,"description","Create public, collaborative, or fully private annotations on books and the web."),q(e,"learnMore","https://web.hypothes.is/about/"),q(e,"icon","images/hypothesis.ico"),q(e,"enabled",!1),e}return C(t,e),I(t,[{key:"enable",value:(r=F(M().m(function e(t){var n,r,i;return M().w(function(e){for(;;)if(0===e.n)return n=t.manual,r=void 0!==n&&n,(i=document.createElement("script")).type="application/json",i.className="js-hypothesis-config",i.textContent=JSON.stringify({openSidebar:r,assetRoot:this.buildAssetPath("hypothesis/")}),document.head.appendChild(i),e.a(2,H(this.buildAssetPath("hypothesis/build/boot.js")))},e,this)})),function(e){return r.apply(this,arguments)})},{key:"disable",value:(n=F(M().m(function e(){return M().w(function(e){for(;;)switch(e.n){case 0:(0,d.sleep)(0).then(function(){window.location.reload()});case 1:return e.a(2)}},e)})),function(){return n.apply(this,arguments)})}]);var n,r}(U))]),q(e,"_panel",void 0),e}return C(t,e),I(t,[{key:"init",value:(o=F(M().m(function e(){var t,n,r;return M().w(function(e){for(;;)switch(e.n){case 0:if(this.options.enabled){e.n=1;break}return e.a(2);case 1:t=S(this.allExperiments);try{for(t.s();!(n=t.n()).done;)(r=n.value).assetRoot=this.br.options.imagesBaseURL.replace(/images\/$/,""),r.icon=r.buildAssetPath(r.icon),r.br=this.br}catch(e){t.e(e)}finally{t.f()}return this._loadExperimentStates(),e.n=2,Promise.resolve();case 2:this._render();case 3:return e.a(2)}},e,this)})),function(){return o.apply(this,arguments)})},{key:"_loadExperimentStates",value:function(){var e=JSON.parse(localStorage.getItem(this.options.localStorageKey)||"{}");this.allExperiments.forEach(function(t){void 0!==e[t.name]&&(t.enabled=e[t.name],t.enabled&&t.enable({manual:!1}))})}},{key:"_saveExperimentStates",value:function(){var e=Object.fromEntries(this.allExperiments.map(function(e){return[e.name,e.enabled]}));localStorage.setItem(this.options.localStorageKey,JSON.stringify(e))}},{key:"_toggleExperiment",value:(n=F(M().m(function e(t,n){var r;return M().w(function(e){for(;;)switch(e.n){case 0:if(t.enabledLoading=!0,null===(r=this.br.plugins.archiveAnalytics)||void 0===r||r.sendEvent("BRExperiment-".concat(t.name),n?"Enable":"Disable"),this._panel.requestUpdate(),!n){e.n=2;break}return e.n=1,t.enable({manual:!0});case 1:e.n=3;break;case 2:return e.n=3,t.disable();case 3:t.enabledLoading=!1,t.enabled=n,this._panel.requestUpdate();case 4:return e.a(2)}},e,this)})),function(e,t){return n.apply(this,arguments)})},{key:"_render",value:function(){var e=this;this.br.shell.menuProviders.experiments={id:"experiments",icon:(0,u.qy)(r||(r=P(['\n <img src="','/icon_experiment.svg" alt="" width="26"/>\n '])),this.br.options.imagesBaseURL),label:"Experiments",component:(0,u.qy)(i||(i=P(['<br-experiments-panel\n .experiments="','"\n @connected="','"\n @toggle="','"\n />'])),this.allExperiments.filter(function(t){return e.options.enabledExperiments.includes(t.name)}),function(t){return e._panel=t.target},function(){var t=F(M().m(function t(n){return M().w(function(t){for(;;)switch(t.n){case 0:return t.n=1,e._toggleExperiment(n.detail.experiment,n.detail.enabled);case 1:e._saveExperimentStates();case 2:return t.a(2)}},t)}));return function(e){return t.apply(this,arguments)}}())},this.br.shell.updateMenuContents()}}]);var n,o}(f.S);function H(e){return J.apply(this,arguments)}function J(){return(J=F(M().m(function e(t){return M().w(function(e){for(;;)if(0===e.n)return e.a(2,new Promise(function(e,n){var r=document.createElement("script");r.src=t,r.onload=function(){return e()},r.onerror=function(){return n(new Error("Failed to load script: ".concat(t)))},document.head.appendChild(r)}))},e)}))).apply(this,arguments)}null==G||G.registerPlugin("experiments",Z),y([(0,p.EM)("br-experiments-panel")],function(e,t){var n,r=function(t){function n(){var t;L(this,n);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return t=_(this,n,[].concat(i)),e(t),t}return C(n,t),I(n)}(t);return{F:r,d:[{kind:"field",decorators:[(0,p.MZ)({type:Array})],key:"experiments",value:function(){return[]}},{kind:"method",key:"render",value:function(){var e=this;return(0,u.qy)(o||(o=P(['\n <div style="padding: 10px">\n ',"\n </div>\n "])),this.experiments.map(function(t){return(0,u.qy)(a||(a=P(['\n <br-experiment-toggle\n .icon="','"\n .title="','"\n .description="','"\n .enabled="','"\n .loading="','"\n .learnMore="','"\n @toggle="','"\n ></br-experiment-toggle>\n '])),t.icon,t.title,t.description,t.enabled,t.enabledLoading,t.learnMore,function(n){return e._dispatchToggle(t,n.detail.enabled)})}))}},{kind:"method",key:"_dispatchToggle",value:(n=F(M().m(function e(t,n){return M().w(function(e){for(;;)switch(e.n){case 0:this.dispatchEvent(new CustomEvent("toggle",{detail:{experiment:t,enabled:n}}));case 1:return e.a(2)}},e,this)})),function(e,t){return n.apply(this,arguments)})},{kind:"method",key:"connectedCallback",value:function(){E(r,"connectedCallback",this,3)([]),this.dispatchEvent(new CustomEvent("connected"))}}]}},u.WF),y([(0,p.EM)("br-experiment-toggle")],function(e,t){var n=function(t){function n(){var t;L(this,n);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return t=_(this,n,[].concat(i)),e(t),t}return C(n,t),I(n)}(t);return{F:n,d:[{kind:"field",decorators:[(0,p.MZ)({type:String})],key:"icon",value:function(){return""}},{kind:"field",decorators:[(0,p.MZ)({type:String})],key:"title",value:function(){return""}},{kind:"field",decorators:[(0,p.MZ)({type:String})],key:"description",value:function(){return""}},{kind:"field",decorators:[(0,p.MZ)({type:Boolean})],key:"enabled",value:function(){return!1}},{kind:"field",decorators:[(0,p.MZ)({type:Boolean})],key:"loading",value:function(){return!1}},{kind:"field",decorators:[(0,p.MZ)({type:String})],key:"learnMore",value:function(){return""}},{kind:"field",decorators:[(0,p.wk)()],key:"_longLoading",value:function(){return!1}},{kind:"method",key:"update",value:function(e){var t=this;E(n,"update",this,3)([e]),e.has("loading")&&(this.loading?(0,d.sleep)(500).then(function(){t.loading&&(t._longLoading=!0,t.requestUpdate())}):this._longLoading=!1)}},{kind:"method",key:"render",value:function(){return(0,u.qy)(s||(s=P(['\n <div class="experiment-card" style="margin-bottom: 10px;">\n <div style="display: flex; align-items: center; gap: 10px;">\n <img src="','" style="width: 20px; height: 20px;" alt="" />\n <div style="flex-grow: 1; font-weight: bold;">','</div>\n </div>\n <p style="opacity: 0.9">\n ',"\n ",'\n </p>\n <div style="display: flex">\n <div style="flex-grow: 1;"></div>\n <button @click="','" .disabled="','">\n ',"\n </button>\n </div>\n </div>\n "])),this.icon,this.title,this.description,this.learnMore?(0,u.qy)(c||(c=P(['<a href="','" target="_blank">Learn more</a>.'])),this.learnMore):"",this._dispatchToggle,this.loading,this._longLoading?"Loading…":this.enabled?"Disable":"Enable")}},{kind:"get",static:!0,key:"styles",value:function(){return(0,u.AH)(l||(l=P(["\n .experiment-card {\n border-radius: 8px;\n background-color: #fff2;\n padding: 10px;\n display: flex;\n flex-direction: column;\n }\n\n .experiment-card p {\n margin: 6px 0;\n }\n "])))}},{kind:"method",key:"_dispatchToggle",value:function(){this.dispatchEvent(new CustomEvent("toggle",{detail:{enabled:!this.enabled}}))}}]}},u.WF)}},function(e){e(e.s=6732)}]);
|
|
3
3
|
//# sourceMappingURL=plugin.experiments.js.map
|