@internetarchive/bookreader 5.0.0-115 → 5.0.0-116
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 -43
- package/BookReader/BookReader.js.map +1 -1
- package/BookReader/ia-bookreader-bundle.js +49 -7
- package/BookReader/ia-bookreader-bundle.js.map +1 -1
- package/BookReader/plugins/plugin.chapters.js +2 -2
- package/BookReader/plugins/plugin.chapters.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 +43 -1
- package/BookReader/plugins/plugin.text_selection.js.map +1 -1
- package/BookReader/plugins/plugin.translate.js +45 -3
- 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/BookReader/plugins/plugin.url.js +1 -1
- package/BookReader/plugins/plugin.url.js.map +1 -1
- package/BookReader/plugins/plugin.vendor-fullscreen.js +1 -1
- package/BookReader/plugins/plugin.vendor-fullscreen.js.map +1 -1
- package/jsconfig.json +2 -3
- package/package.json +7 -4
- package/src/BookReader.js +8 -20
- package/src/plugins/plugin.text_selection.js +4 -90
- package/src/plugins/search/plugin.search.js +2 -0
- package/src/plugins/url/UrlPlugin.js +12 -0
- package/src/util/TextSelectionManager.js +168 -146
- package/src/util/generators.js +89 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*! For license information please see plugin.chapters.js.LICENSE.txt */
|
|
2
|
-
"use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[858],{1041:function(e,t,r){function n(e){return n="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},n(e)}function o(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,i(n.key),n)}}function i(e){var t=function(e){if("object"!=n(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=n(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==n(t)?t:t+""}r.d(t,{S:function(){return a}}),r(2675),r(9463),r(2259),r(5700),r(3792),r(9572),r(8130),r(9085),r(6099),r(7764),r(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){}}])&&o(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}()},2117:function(e,t,r){r(2675),r(9463),r(2259),r(8125),r(113),r(3418),r(4782),r(4554),r(2010),r(4731),r(479),r(2811),r(3851),r(875),r(3362),r(825),r(888),r(7495),r(8781),r(5700),r(8706),r(2008),r(8980),r(3792),r(8598),r(2062),r(4490),r(9572),r(8130),r(9085),r(6099),r(8940),r(7764),r(3500),r(2953),r(8408);var n=r(420),o=r(9696),i=r(4535),a=r(8900),c=n.qy`
|
|
2
|
+
"use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[858],{706:function(e,t,r){var n=r(350).PROPER,o=r(9039),i=r(7452);e.exports=function(e){return o(function(){return!!i[e]()||"
"!=="
"[e]()||n&&i[e].name!==e})}},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}},1041:function(e,t,r){function n(e){return n="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},n(e)}function o(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,i(n.key),n)}}function i(e){var t=function(e){if("object"!=n(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=n(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==n(t)?t:t+""}r.d(t,{S:function(){return a}}),r(2675),r(9463),r(2259),r(5700),r(3792),r(9572),r(8130),r(9085),r(6099),r(7764),r(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){}}])&&o(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}()},2117:function(e,t,r){r(2675),r(9463),r(2259),r(8125),r(113),r(3418),r(4782),r(4554),r(2010),r(4731),r(479),r(2811),r(3851),r(875),r(3362),r(825),r(888),r(7495),r(8781),r(5700),r(8706),r(2008),r(8980),r(3792),r(8598),r(2062),r(4490),r(9572),r(8130),r(9085),r(6099),r(8940),r(7764),r(3500),r(2953),r(8408);var n=r(420),o=r(9696),i=r(4535),a=r(8900),c=n.qy`
|
|
3
3
|
<svg
|
|
4
4
|
viewBox="0 0 24 24"
|
|
5
5
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -19,5 +19,5 @@
|
|
|
19
19
|
.stroke-color {
|
|
20
20
|
stroke: var(--iconStrokeColor);
|
|
21
21
|
}
|
|
22
|
-
`}render(){return c}}customElements.define("ia-icon-toc",s);var l,u,f,p,d,h,y=r(1041),v=r(9073),b=r(8004),m=r(1669);function g(e){return g="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},g(e)}function k(){k=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(!P(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)||O(t)||j(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=$(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:C(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=C(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=$(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 E(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function P(e){return e.decorators&&e.decorators.length}function x(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function C(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 j(e,t){if(e){if("string"==typeof e)return _(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)?_(e,t):void 0}}function O(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _(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 T(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function S(){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 I(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]())):(I(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,I(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return s.prototype=l,I(f,"constructor",l),I(l,"constructor",s),s.displayName="GeneratorFunction",I(l,o,"GeneratorFunction"),I(f),I(f,o,"Generator"),I(f,n,function(){return this}),I(f,"toString",function(){return"[object Generator]"}),(S=function(){return{w:i,m:p}})()}function I(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}I=function(e,t,r,n){function i(t,r){I(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))},I(e,t,r,n)}function A(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 R(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){A(i,n,o,a,c,"next",e)}function c(e){A(i,n,o,a,c,"throw",e)}a(void 0)})}}function D(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function B(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,$(n.key),n)}}function L(e,t,r){return t&&B(e.prototype,t),r&&B(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function z(e,t,r){return t=q(t),function(e,t){if(t&&("object"==g(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||[],q(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 H(e,t,r,n){var o=M(q(1&n?e.prototype:e),t,r);return 2&n&&"function"==typeof o?function(e){return o.apply(r,e)}:o}function M(){return M="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=q(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}},M.apply(null,arguments)}function q(e){return q=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},q(e)}function G(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&&N(e,t)}function N(e,t){return N=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},N(e,t)}function W(e,t,r){return(t=$(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function $(e){var t=function(e){if("object"!=g(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=g(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==g(t)?t:t+""}var U,Z,J,V,X,K,Q,Y=window.BookReader,ee=function(e){function t(){var e;D(this,t);for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return W(e=z(this,t,[].concat(n)),"options",{enabled:!0,openLibraryHost:"https://openlibrary.org",openLibraryId:"",internetArchiveId:"",olHost:"https://openlibrary.org",bookId:"{{bookId}}"}),W(e,"_tocEntries",void 0),W(e,"_chaptersPanel",void 0),e}return G(t,e),L(t,[{key:"setup",value:function(e){H(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=R(S().m(function e(){var t,r,n,o,i=this;return S().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:if(!r){e.n=6;break}if(this._tocEntries=r.map(function(e){return Object.assign({},e,{pageIndex:"number"==typeof e.page_index?e.page_index:"number"==typeof e.leaf?i.br.book.leafNumToIndex(e.leaf):e.pagenum?i.br.book.getPageIndex(e.pagenum):void 0})}),this.br.shell){e.n=5;break}return e.n=5,(0,b.promisifyEvent)(window,"BookReader:PostInit");case 5:this._render(),this.br.bind(Y.eventNames.pageChanged,function(){return i._updateCurrent()});case 6: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=T(['<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=T(['<br-chapters-panel\n .contents="','"\n .jumpToPage="','"\n @connected="','"\n />'])),this._tocEntries,function(t){e._updateCurrent(t),e.br.jumpToIndex(t,{ariaLive:!0})},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=Y.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,{ariaLive:!0})}),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=R(S().m(function e(){var t,r,n,o,i,a;return S().w(function(e){for(;;)switch(e.n){case 0:if(t=(0,v.gT)(this.options.openLibraryHost,this.br.options.vars),!this.options.openLibraryId){e.n=2;break}return r=(0,v.gT)(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.gT)(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 _(e)}(e=this.br.displayedIndices)||O(e)||j(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==Y||Y.registerPlugin("chapters",ee),U=[(0,o.EM)("br-chapters-panel")],Z=n.WF,X=k(),J=function(e){X.initializeInstanceElements(e,Q.elements)},K={F:V=function(e){function t(e){var r;return D(this,t),r=z(this,t),J(r),r.contents=e,r}return G(t,e),L(t)}(Z),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=T(["\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=T(['\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=T(['\n <br />\n <span class="BRTOCElementPage">Page ',"</span>\n "])),e.pagenum):n.s6)}},{kind:"method",key:"connectedCallback",value:function(){H(V,"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=T(["\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 }"])))}}]},Q=X.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(x(i.descriptor)||x(o.descriptor)){if(P(i)||P(o))throw new ReferenceError("Duplicated methods ("+i.key+") can't be decorated.");o.descriptor=i.descriptor}else{if(P(i)){if(P(o))throw new ReferenceError("Decorators can't be placed on different accessors with for the same property ("+i.key+").");o.decorators=i.decorators}E(i,o)}else t.push(i)}return t}(K.d.map(w)),U),X.initializeClassElements(K.F,Q.elements),X.runClassFinishers(K.F,Q.finishers)}},function(e){e(e.s=2117)}]);
|
|
22
|
+
`}render(){return c}}customElements.define("ia-icon-toc",s);var u,l,f,p,d,h,y=r(1041),v=r(9073),m=r(8004),b=r(1669);function g(e){return g="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},g(e)}function k(){k=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(!P(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 u=s.extras;if(u){for(var l=0;l<u.length;l++)this.addElementPlacement(u[l],t);r.push.apply(r,u)}}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)||O(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=W(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:j(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=j(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=W(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 E(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function P(e){return e.decorators&&e.decorators.length}function x(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function j(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 _(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)?_(e,t):void 0}}function O(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _(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 T(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function S(){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,u=Object.create(s.prototype);return I(u,"_invoke",function(r,n,o){var i,c,s,u=0,l=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&&u&&!o&&t<l.length;t++){var o,i=l[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,l,h){if(u>1)throw TypeError("Generator is already running");for(f&&1===l&&d(l,h),c=l,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(u=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{u=1}}return{value:t,done:f}}}(r,o,i),!0),u}var a={};function c(){}function s(){}function u(){}t=Object.getPrototypeOf;var l=[][n]?t(t([][n]())):(I(t={},n,function(){return this}),t),f=u.prototype=c.prototype=Object.create(l);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,u):(e.__proto__=u,I(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return s.prototype=u,I(f,"constructor",u),I(u,"constructor",s),s.displayName="GeneratorFunction",I(u,o,"GeneratorFunction"),I(f),I(f,o,"Generator"),I(f,n,function(){return this}),I(f,"toString",function(){return"[object Generator]"}),(S=function(){return{w:i,m:p}})()}function I(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}I=function(e,t,r,n){function i(t,r){I(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))},I(e,t,r,n)}function A(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 R(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){A(i,n,o,a,c,"next",e)}function c(e){A(i,n,o,a,c,"throw",e)}a(void 0)})}}function D(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function B(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,W(n.key),n)}}function L(e,t,r){return t&&B(e.prototype,t),r&&B(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function z(e,t,r){return t=q(t),function(e,t){if(t&&("object"==g(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||[],q(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 H(e,t,r,n){var o=M(q(1&n?e.prototype:e),t,r);return 2&n&&"function"==typeof o?function(e){return o.apply(r,e)}:o}function M(){return M="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=q(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}},M.apply(null,arguments)}function q(e){return q=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},q(e)}function G(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&&N(e,t)}function N(e,t){return N=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},N(e,t)}function U(e,t,r){return(t=W(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function W(e){var t=function(e){if("object"!=g(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=g(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==g(t)?t:t+""}var $,J,Z,V,X,K,Q,Y=window.BookReader,ee=function(e){function t(){var e;D(this,t);for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return U(e=z(this,t,[].concat(n)),"options",{enabled:!0,openLibraryHost:"https://openlibrary.org",openLibraryId:"",internetArchiveId:"",olHost:"https://openlibrary.org",bookId:"{{bookId}}"}),U(e,"_tocEntries",void 0),U(e,"_chaptersPanel",void 0),e}return G(t,e),L(t,[{key:"setup",value:function(e){H(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=R(S().m(function e(){var t,r,n,o,i=this;return S().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:if(!r){e.n=6;break}if(this._tocEntries=r.map(function(e){return Object.assign({},e,{pageIndex:"number"==typeof e.page_index?e.page_index:"number"==typeof e.leaf?i.br.book.leafNumToIndex(e.leaf):e.pagenum?i.br.book.getPageIndex(e.pagenum):void 0})}),this.br.shell){e.n=5;break}return e.n=5,(0,m.promisifyEvent)(window,"BookReader:PostInit");case 5:this._render(),this.br.bind(Y.eventNames.pageChanged,function(){return i._updateCurrent()});case 6: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)(u||(u=T(['<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)(l||(l=T(['<br-chapters-panel\n .contents="','"\n .jumpToPage="','"\n @connected="','"\n />'])),this._tocEntries,function(t){e._updateCurrent(t),e.br.jumpToIndex(t,{ariaLive:!0})},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=Y.util.cssPercentage(e.pageIndex,this.br.book.getNumLeafs()-1);b("<div></div>").append(b("<div />").text(n).append(b('<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"),b(e.target).addClass("front")}).on("mouseleave",function(e){return b(e.target).removeClass("front")}).on("click",function(){r._updateCurrent(e.pageIndex),r.br.jumpToIndex(e.pageIndex,{ariaLive:!0})}),this.br.$(".BRchapter, .BRsearch").each(function(e,t){var r=b(t);r.on("mouseenter",function(){return r.addClass("front")}).on("mouseleave",function(){return r.removeClass("front")})})}}},{key:"getOpenLibraryRecord",value:(r=R(S().m(function e(){var t,r,n,o,i,a;return S().w(function(e){for(;;)switch(e.n){case 0:if(t=(0,v.gT)(this.options.openLibraryHost,this.br.options.vars),!this.options.openLibraryId){e.n=2;break}return r=(0,v.gT)(this.options.openLibraryId,this.br.options.vars),e.n=1,b.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.gT)(this.options.internetArchiveId,this.br.options.vars),i="".concat(t,"/query.json?type=/type/edition&*=&"),e.n=3,b.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,b.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 _(e)}(e=this.br.displayedIndices)||O(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==Y||Y.registerPlugin("chapters",ee),$=[(0,o.EM)("br-chapters-panel")],J=n.WF,X=k(),Z=function(e){X.initializeInstanceElements(e,Q.elements)},K={F:V=function(e){function t(e){var r;return D(this,t),r=z(this,t),Z(r),r.contents=e,r}return G(t,e),L(t)}(J),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=T(["\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=T(['\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=T(['\n <br />\n <span class="BRTOCElementPage">Page ',"</span>\n "])),e.pagenum):n.s6)}},{kind:"method",key:"connectedCallback",value:function(){H(V,"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=T(["\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 }"])))}}]},Q=X.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(x(i.descriptor)||x(o.descriptor)){if(P(i)||P(o))throw new ReferenceError("Duplicated methods ("+i.key+") can't be decorated.");o.descriptor=i.descriptor}else{if(P(i)){if(P(o))throw new ReferenceError("Decorators can't be placed on different accessors with for the same property ("+i.key+").");o.decorators=i.decorators}E(i,o)}else t.push(i)}return t}(K.d.map(w)),$),X.initializeClassElements(K.F,Q.elements),X.runClassFinishers(K.F,Q.finishers)},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){var t=e.match(/\S+/g);return t?t.length:0}function i(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:a;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],u=n(c).slice(1);if(!(s in r)&&!(s in t))return e;var l=s in r?r[s]:s in t?t[s]:null;return u.map(function(e){return o[e]}).reduce(function(e,t){return t(e)},l&&l.toString())})}r.d(t,{gT:function(){return i},rj: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(1761),r(5440),r(2762),r(2953);var a={urlencode:encodeURIComponent}}},function(e){e(e.s=2117)}]);
|
|
23
23
|
//# sourceMappingURL=plugin.chapters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins/plugin.chapters.js","mappings":"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","sources":["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"],"sourcesContent":["// @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>\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\";\nimport { promisifyEvent } from \"../BookReader/utils.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.page_index === 'number' ? rawTOCEntry.page_index :\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 if (!this.br.shell) {\n await promisifyEvent(window, 'BookReader:PostInit');\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, { ariaLive: true });\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, { ariaLive: true });\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"],"names":["BookReaderPlugin","br","_classCallCheck","this","options","key","value","Object","assign","pageContainer","$toolbarElement","$navBar","icon_toc","lit","qy","IAIconToc","WF","styles","AH","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","page_index","leaf","book","leafNumToIndex","pagenum","getPageIndex","undefined","shell","promisifyEvent","_render","eventNames","pageChanged","_updateCurrent","_this3","menuProviders","id","icon","html","_templateObject","_taggedTemplateLiteral","label","component","_templateObject2","jumpToIndex","ariaLive","_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"],"sourceRoot":""}
|
|
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/./node_modules/core-js/modules/es.string.trim.js","webpack://@internetarchive/bookreader/../src/directives/if-defined.ts","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/./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","'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","// @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>\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\";\nimport { promisifyEvent } from \"../BookReader/utils.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.page_index === 'number' ? rawTOCEntry.page_index :\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 if (!this.br.shell) {\n await promisifyEvent(window, 'BookReader:PostInit');\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, { ariaLive: true });\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, { ariaLive: true });\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","/**\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 * Count whitespace-delimited words in a string.\n * @param {string} text\n * @return {number}\n */\nexport function countWords(text) {\n const matches = text.match(/\\S+/g);\n return matches ? matches.length : 0;\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","__webpack_require__","fails","whitespaces","module","exports","METHOD_NAME","name","$","$trim","target","proto","forced","forcedStringTrimMethod","trim","this","l","t","BookReaderPlugin","br","_classCallCheck","options","key","value","Object","assign","pageContainer","$toolbarElement","$navBar","icon_toc","lit","qy","IAIconToc","WF","styles","AH","render","customElements","define","e","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","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","page_index","leaf","book","leafNumToIndex","pagenum","getPageIndex","undefined","shell","promisifyEvent","_render","eventNames","pageChanged","_updateCurrent","_this3","menuProviders","id","icon","html","_templateObject","_taggedTemplateLiteral","label","component","_templateObject2","jumpToIndex","ariaLive","_chaptersPanel","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","countWords","matches","match","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.search.js.LICENSE.txt */
|
|
2
|
-
"use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[924],{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 a(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,i(r.key),r)}}function i(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 o}}),n(2675),n(9463),n(2259),n(5700),n(3792),n(9572),n(8130),n(9085),n(6099),n(7764),n(2953);var o=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){}}])&&a(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}()},5372:function(e,t,n){n(2675),n(9463),n(2259),n(5700),n(8706),n(113),n(3418),n(3792),n(8598),n(2062),n(4782),n(9572),n(2010),n(8130),n(5506),n(3851),n(875),n(6099),n(8459),n(3362),n(825),n(888),n(7495),n(8781),n(7764),n(5440),n(5746),n(2953),n(8408);var r=n(8004),a=n(4907),i=(n(8940),n(3500),n(1669));function o(e){return o="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},o(e)}function s(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,l(r.key),r)}}function l(e){var t=function(e){if("object"!=o(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=o(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==o(t)?t:t+""}var c=function(){return e=function e(t){var n=t.br,r=t.searchCancelledCallback,a=void 0===r?function(){}:r;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.br=n,this.matches=[],this.cacheDOMElements(),this.cancelSearch=a},t=[{key:"init",value:function(){this.bindEvents()}},{key:"cacheDOMElements",value:function(){this.dom={},this.dom.toolbarSearch=this.buildToolbarSearch()}},{key:"setQuery",value:function(e){this.br.$('[name="query"]').val(e)}},{key:"emptyMatches",value:function(){this.matches=[]}},{key:"removeResultPins",value:function(){this.br.$(".BRnavpos .BRsearch").remove()}},{key:"clearSearchFieldAndResults",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.br.plugins.search.removeSearchResults(),this.removeResultPins(),this.emptyMatches(),this.setQuery(""),this.teardownSearchNavigation(),e&&this.br.trigger("SearchResultsCleared")}},{key:"toggleSidebar",value:function(){this.br.trigger("ToggleSearchMenu")}},{key:"renderSearchNavigation",value:function(){var e="BRsearch-navigation";i(".BRnav.BRnavMain").before('\n <div class="'.concat(e,'">\n <button class="toggle-sidebar">\n <h4>\n <span class="icon icon-search"></span> Results\n </h4>\n </button>\n <div class="pagination">\n <button class="prev" title="Previous result"><span class="icon icon-chevron hflip"></span></button>\n <span data-id="resultsCount">').concat(this.resultsPosition(),'</span>\n <button class="next" title="Next result"><span class="icon icon-chevron"></button>\n </div>\n <button class="clear" title="Clear search results">\n <span class="icon icon-close"></span>\n </button>\n </div>\n ')),this.dom.searchNavigation=i(".".concat(e))}},{key:"resultsPosition",value:function(){var e="".concat(this.matches.length," result").concat(1===this.matches.length?"":"s");return~this.currentMatchIndex&&(e="".concat(this.currentMatchIndex+1," / ").concat(this.matches.length)),e}},{key:"bindSearchNavigationEvents",value:function(){if(this.dom.searchNavigation){var e="searchNavigation";this.dom.searchNavigation.on("click.".concat(e),".clear",this.clearSearchFieldAndResults.bind(this)).on("click.".concat(e),".prev",this.showPrevResult.bind(this)).on("click.".concat(e),".next",this.showNextResult.bind(this)).on("click.".concat(e),".toggle-sidebar",this.toggleSidebar.bind(this)).on("click.".concat(e),!1)}}},{key:"showPrevResult",value:function(){0!==this.currentMatchIndex&&(this.br.mode===this.br.constModeThumb&&this.br.switchMode(this.br.constMode1up),~this.currentMatchIndex||(this.currentMatchIndex=this.getClosestMatchIndex(function(e,t,n){return t[0]>n})+1),this.br.$(".BRnavline .BRsearch").eq(--this.currentMatchIndex).click(),this.updateResultsPosition(),this.updateSearchNavigationButtons())}},{key:"showNextResult",value:function(){this.currentMatchIndex+1!==this.matches.length&&(this.br.mode===this.br.constModeThumb&&this.br.switchMode(this.br.constMode1up),~this.currentMatchIndex||(this.currentMatchIndex=this.getClosestMatchIndex(function(e,t,n){return e[e.length-1]>n})-1),this.br.$(".BRnavline .BRsearch").eq(++this.currentMatchIndex).click(),this.updateResultsPosition(),this.updateSearchNavigationButtons())}},{key:"getClosestMatchIndex",value:function(e){var t=this.matches.map(function(e){return e.par[0].page}),n=this.br.currentIndex()+1,r=function(t,n){if(1===t.length)return t[0];var a=t.slice(0,t.length/2),i=t.slice(t.length/2);return r(e(a,i,n)?a:i,n)},a=r(t,n);return this.matches.indexOf(this.matches.find(function(e){return e.par[0].page===a}))}},{key:"updateResultsPosition",value:function(){this.dom.searchNavigation&&this.dom.searchNavigation.find("[data-id=resultsCount]").text(this.resultsPosition())}},{key:"updateSearchNavigationButtons",value:function(){this.dom.searchNavigation&&(this.dom.searchNavigation.find(".prev").attr("disabled",!this.currentMatchIndex),this.dom.searchNavigation.find(".next").attr("disabled",this.currentMatchIndex+1===this.matches.length))}},{key:"teardownSearchNavigation",value:function(){this.dom.searchNavigation||(this.dom.searchNavigation=i(".BRsearch-navigation")),this.dom.searchNavigation.length&&(this.dom.searchNavigation.off(".searchNavigation").remove(),this.dom.searchNavigation=null,this.br.resize())}},{key:"setCurrentMatchIndex",value:function(){var e;this.br.mode!==this.br.constModeThumb?(e=this.br.mode===this.br.constMode2up?this.find2upMatchingSearchResult():this.find1upMatchingSearchResult(),this.currentMatchIndex=this.matches.indexOf(e)):this.currentMatchIndex=-1}},{key:"find1upMatchingSearchResult",value:function(){var e=this;return this.matches.find(function(t){return e.br.currentIndex()===t.par[0].page-1})}},{key:"find2upMatchingSearchResult",value:function(){var e=this;return this.matches.find(function(t){return e.br._isIndexDisplayed(t.par[0].page-1)})}},{key:"updateSearchNavigation",value:function(){this.matches.length&&(this.setCurrentMatchIndex(),this.updateResultsPosition(),this.updateSearchNavigationButtons())}},{key:"togglePinsFor",value:function(e){var t=e?"visible":"hidden";this.br.refs.$BRfooter.find(".BRsearch").css({visibility:t})}},{key:"buildToolbarSearch",value:function(){var e=document.createElement("span");return e.classList.add("BRtoolbarSection","BRtoolbarSectionSearch"),e.innerHTML='\n <form class="BRbooksearch desktop">\n <input type="search" name="query" class="BRsearchInput" value="" placeholder="Search inside"/>\n <button type="submit" class="BRsearchSubmit">\n <img src="'.concat(this.br.options.imagesBaseURL,'icon_search_button.svg" />\n </button>\n </form>\n '),e}},{key:"renderPins",value:function(e){var t=this;e.forEach(function(e){var n=t.br.book.leafNumToIndex(e.par[0].page),r=t.br.constructor.util.cssPercentage(n,t.br.book.getNumLeafs()-1),a=e.html;if(a.length>200){var o=Math.max(0,a.indexOf("<mark>")-100);0!=o&&(a="…"+e.html.substring(o).replace(/^\S+/,""))}i("<div>").addClass("BRsearch").css({left:r}).attr("title","Search result").append('\n <div class="BRquery">\n <main>'.concat(a,"</main>\n <footer>Page ").concat(e.displayPageNumber,"</footer>\n </div>\n ")).appendTo(t.br.$(".BRnavline")).on("mouseenter",function(e){var t=e.currentTarget,n=t.querySelector(".BRquery"),r=n.getBoundingClientRect(),a=t.getBoundingClientRect(),o=2*parseInt(getComputedStyle(n).paddingLeft);r.x-o<0&&n.style.setProperty("transform","translateX(-".concat(a.left-o,"px)")),i(".BRsearch,.BRchapter").removeClass("front"),i(e.target).addClass("front")}).on("mouseleave",function(e){return i(e.target).removeClass("front")}).on("click",function(){t.br.plugins.search.jumpToMatch(e.matchIndex)})})}},{key:"toggleSearchPending",value:function(){var e=this;arguments.length>0&&void 0!==arguments[0]&&arguments[0]?this.br.showProgressPopup("Search results will appear below...",function(){return e.progressPopupClosed()}):this.br.removeProgressPopup()}},{key:"progressPopupClosed",value:function(){this.toggleSearchPending(),this.cancelSearch()}},{key:"renderErrorModal",value:function(){var e="".concat(arguments.length>0&&void 0!==arguments[0]&&arguments[0]?"":"The text may still be processing. ","Please try again.");this.renderModalMessage("\n Sorry, there was an error with your search.\n <br />\n ".concat(e,"\n ")),this.delayModalRemovalFor(4e3)}},{key:"renderBookNotIndexedModal",value:function(){this.renderModalMessage("\n <p>\n This book hasn't been indexed for searching yet.\n We've just started indexing it, so search should be available soon.\n <br />\n Please try again later. Thanks!\n </p>\n "),this.delayModalRemovalFor(5e3)}},{key:"renderResultsEmptyModal",value:function(){this.renderModalMessage("No matches were found."),this.delayModalRemovalFor(2e3)}},{key:"renderModalMessage",value:function(e){var t=document.createElement("div");t.classList.add("BRprogresspopup","search_modal"),t.innerHTML=e,document.querySelector(this.br.el).append(t)}},{key:"delayModalRemovalFor",value:function(e){setTimeout(this.br.removeProgressPopup.bind(this.br),e)}},{key:"submitHandler",value:function(e){e.preventDefault();var t=e.target.querySelector('[name="query"]').value;return!!t.length&&(this.br.search(t),this.emptyMatches(),this.toggleSearchPending(!0),!1)}},{key:"handleSearchCallback",value:function(e,t){var n=this,r=t.results,a=t.options;this.matches=r.matches,this.setCurrentMatchIndex(),this.teardownSearchNavigation(),this.renderSearchNavigation(),this.bindSearchNavigationEvents(),this.renderPins(r.matches),this.toggleSearchPending(!1),a.goToFirstResult?i(document).one("BookReader:pageChanged",function(){n.br.resize()}):this.br.resize()}},{key:"handleSearchStarted",value:function(){this.emptyMatches(),this.br.plugins.search.removeSearchHilites(),this.removeResultPins(),this.toggleSearchPending(!0),this.teardownSearchNavigation(),this.setQuery(this.br.plugins.search.searchTerm)}},{key:"handleSearchCallbackError",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.toggleSearchPending(!1);var n=null==t||null===(e=t.detail)||void 0===e||null===(e=e.props)||void 0===e||null===(e=e.results)||void 0===e?void 0:e.indexed;this.renderErrorModal(n)}},{key:"handleSearchCallbackBookNotIndexed",value:function(){this.toggleSearchPending(!1),this.renderBookNotIndexedModal()}},{key:"handleSearchCallbackEmpty",value:function(){this.toggleSearchPending(!1),this.renderResultsEmptyModal()}},{key:"bindEvents",value:function(){var e="BookReader:";window.addEventListener("".concat(e,"SearchCallbackError"),this.handleSearchCallbackError.bind(this)),i(document).on("".concat(e,"SearchCallback"),this.handleSearchCallback.bind(this)).on("".concat(e,"SearchStarted"),this.handleSearchStarted.bind(this)).on("".concat(e,"SearchCallbackBookNotIndexed"),this.handleSearchCallbackBookNotIndexed.bind(this)).on("".concat(e,"SearchCallbackEmpty"),this.handleSearchCallbackEmpty.bind(this)).on("".concat(e,"pageChanged"),this.updateSearchNavigation.bind(this)),this.dom.toolbarSearch.querySelector("form").addEventListener("submit",this.submitHandler.bind(this))}}],t&&s(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}(),u=c;function h(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,s=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){c=!0,a=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return s}}(e,t)||f(e,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.")}()}function d(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=f(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}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 i,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,i=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw i}}}}function f(e,t){if(e){if("string"==typeof e)return v(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)?v(e,t):void 0}}function v(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 b(e,t,n){var a=(0,r.escapeRegExp)((0,r.escapeHTML)(t)),i=(0,r.escapeRegExp)((0,r.escapeHTML)(n)),o=new RegExp("".concat(a,"([^]+?)").concat(i),"g");return(0,r.escapeHTML)(e).replace(o,"<mark>$1</mark>").replace(/(\b)- /g,"$1")}n(4864);var g=n(1041),m=n(9073),p=n(4160),y=n(1669),k=n(1669);function S(e){return S="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},S(e)}function w(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,s=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){c=!0,a=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return s}}(e,t)||R(e,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.")}()}function x(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=R(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}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 i,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,i=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw i}}}}function R(e,t){if(e){if("string"==typeof e)return T(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)?T(e,t):void 0}}function T(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 C(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",a=n.toStringTag||"@@toStringTag";function i(n,r,a,i){var l=r&&r.prototype instanceof s?r:s,c=Object.create(l.prototype);return P(c,"_invoke",function(n,r,a){var i,s,l,c=0,u=a||[],h=!1,d={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return i=t,s=0,l=e,d.n=n,o}};function f(n,r){for(s=n,l=r,t=0;!h&&c&&!a&&t<u.length;t++){var a,i=u[t],f=d.p,v=i[2];n>3?(a=v===r)&&(l=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=f&&((a=n<2&&f<i[1])?(s=0,d.v=r,d.n=i[1]):f<v&&(a=n<3||i[0]>r||r>v)&&(i[4]=n,i[5]=r,d.n=v,s=0))}if(a||n>1)return o;throw h=!0,r}return function(a,u,v){if(c>1)throw TypeError("Generator is already running");for(h&&1===u&&f(u,v),s=u,l=v;(t=s<2?e:l)||!h;){i||(s?s<3?(s>1&&(d.n=-1),f(s,l)):d.n=l:d.v=l);try{if(c=2,i){if(s||(a="next"),t=i[a]){if(!(t=t.call(i,l)))throw TypeError("iterator result is not an object");if(!t.done)return t;l=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(l=TypeError("The iterator does not provide a '"+a+"' method"),s=1);i=e}else if((t=(h=d.n<0)?l:n.call(r,d))!==o)break}catch(t){i=e,s=1,l=t}finally{c=1}}return{value:t,done:h}}}(n,a,i),!0),c}var o={};function s(){}function l(){}function c(){}t=Object.getPrototypeOf;var u=[][r]?t(t([][r]())):(P(t={},r,function(){return this}),t),h=c.prototype=s.prototype=Object.create(u);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,P(e,a,"GeneratorFunction")),e.prototype=Object.create(h),e}return l.prototype=c,P(h,"constructor",c),P(c,"constructor",l),l.displayName="GeneratorFunction",P(c,a,"GeneratorFunction"),P(h),P(h,a,"Generator"),P(h,r,function(){return this}),P(h,"toString",function(){return"[object Generator]"}),(C=function(){return{w:i,m:d}})()}function P(e,t,n,r){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}P=function(e,t,n,r){function i(t,n){P(e,t,function(e){return this._invoke(t,n,e)})}t?a?a(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},P(e,t,n,r)}function I(e,t,n,r,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function M(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function o(e){I(i,r,a,o,s,"next",e)}function s(e){I(i,r,a,o,s,"throw",e)}o(void 0)})}}function j(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,A(r.key),r)}}function N(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(N=function(){return!!e})()}function B(e,t,n,r){var a=O(E(1&r?e.prototype:e),t,n);return 2&r&&"function"==typeof a?function(e){return a.apply(n,e)}:a}function O(){return O="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=E(e)););return e}(e,t);if(r){var a=Object.getOwnPropertyDescriptor(r,t);return a.get?a.get.call(arguments.length<3?e:n):a.value}},O.apply(null,arguments)}function E(e){return E=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},E(e)}function _(e,t){return _=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},_(e,t)}function A(e){var t=function(e){if("object"!=S(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=S(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==S(t)?t:t+""}var z=window.BookReader,L=function(e){function t(){var e,n,r,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var i=arguments.length,o=new Array(i),s=0;s<i;s++)o[s]=arguments[s];return e=function(e,t,n){return t=E(t),function(e,t){if(t&&("object"==S(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,N()?Reflect.construct(t,n||[],E(e).constructor):t.apply(e,n))}(this,t,[].concat(o)),n=e,r="options",a={enabled:!0,preTag:"{{{",postTag:"}}}",searchInsideUrl:"/fulltext/inside.php?"+["q={{query|urlencode}}","pre_tag={{preTag|urlencode}}","post_tag={{postTag|urlencode}}"].join("&"),initialSearchTerm:null,goToFirstResult:!1},(r=A(r))in n?Object.defineProperty(n,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):n[r]=a,e}return function(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&&_(e,t)}(t,e),n=t,i=[{key:"setup",value:function(e){var n=this;B(t,"setup",this,3)([e]),this.searchTerm="",this.searchResults=null,this.searchInsideUrl=this.options.searchInsideUrl,this.enabled=this.options.enabled,this.searchXHR=null,this._searchBoxesByIndex={},this.enabled?this.searchView=new u({br:this.br,searchCancelledCallback:function(){n._cancelSearch(),n.br.trigger("SearchCanceled",{term:n.searchTerm,instance:n.br})}}):this.searchView=null}},{key:"init",value:function(){B(t,"init",this,3)([]),this.enabled&&(this.searchView.init(),this.options.initialSearchTerm&&this.search(this.options.initialSearchTerm,{goToFirstResult:this.options.goToFirstResult,suppressFragmentChange:!1}))}},{key:"_configureToolbar",value:function(e){if(this.enabled)return this.searchView.dom.toolbarSearch&&e.find(".BRtoolbarSectionInfo").after(this.searchView.dom.toolbarSearch),e}},{key:"_configurePageContainer",value:function(e){if(this.enabled&&e.page&&e.page.index in this._searchBoxesByIndex){var t=e.page.index,n=this._searchBoxesByIndex[t];(0,a.KL)("searchHiliteLayer",n,e.page,e.$container[0],n.map(function(e){return"match-index-".concat(e.matchIndex)}))}return e}},{key:"search",value:(s=M(C().m(function e(){var t,n,r,a,i,o,s,l=this,c=arguments;return C().w(function(e){for(;;)switch(e.n){case 0:return t=c.length>0&&void 0!==c[0]?c[0]:"",n=c.length>1&&void 0!==c[1]?c[1]:{},r={goToFirstResult:!1,disablePopup:!1,suppressFragmentChange:!1,error:null,success:null},a=y.extend({},r,n),this.suppressFragmentChange=a.suppressFragmentChange,this.searchCancelled=!1,this.searchTerm=t.replace(/\//g," "),a.suppressFragmentChange||this.br.trigger(z.eventNames.fragmentChange),i=(0,m.gT)(this.options.searchInsideUrl,this.br.options.vars,{query:t,preTag:this.options.preTag,postTag:this.options.postTag}),o=function(e){if(!l.searchCancelled){var t=e.error||!e.matches.length,n="function"==typeof a.error,r="function"==typeof a.success;t?(console.error("Search Inside Response Error",e.error||"matches.length == 0"),n?a.error.call(l,e,a):l.BRSearchCallbackError(e)):r?a.success.call(l,e,a):l.BRSearchCallback(e,a)}},this.br.trigger("SearchStarted",{term:this.searchTerm,instance:this.br}),s=o,e.n=1,k.ajax({url:i,cache:!0,xhrFields:{withCredentials:this.br.protected},beforeSend:function(e){l.searchXHR=e}});case 1:s(e.v);case 2:return e.a(2)}},e,this)})),function(){return s.apply(this,arguments)})},{key:"_cancelSearch",value:function(){var e;null===(e=this.searchXHR)||void 0===e||e.abort(),this.searchView.clearSearchFieldAndResults(!1),this.searchTerm="",this.searchXHR=null,this.searchCancelled=!0,this.searchResults=null}},{key:"cancelSearchRequest",value:function(){this.searchCancelled=!0,null!==this.searchXHR&&(this._cancelSearch(),this.searchView.toggleSearchPending(),this.br.trigger("SearchCanceled",{term:this.searchTerm,instance:this.br}))}},{key:"BRSearchCallback",value:function(e,t){var n=this,r=(0,p.YH)(this.br.options.bookLanguage);!function(e,t,n,r,a){var i,o=d(e.matches.entries());try{for(o.s();!(i=o.n()).done;){var s=h(i.value,2),l=s[0],c=s[1];c.matchIndex=l,c.displayPageNumber=t(c.par[0].page),c.html=b(c.text,n,r),c.lang=a;var u,f=d(c.par);try{for(f.s();!(u=f.n()).done;){var v,g=d(u.value.boxes);try{for(g.s();!(v=g.n()).done;)v.value.matchIndex=l}catch(e){g.e(e)}finally{g.f()}}}catch(e){f.e(e)}finally{f.f()}}}catch(e){o.e(e)}finally{o.f()}}(e,function(e){return n.br.book.getPageNum(n.br.book.leafNumToIndex(e))},this.options.preTag,this.options.postTag,r),this.searchResults=e||null,this.updateSearchHilites(),this.br.removeProgressPopup(),t.goToFirstResult&&this.jumpToMatch(0),this.br.trigger("SearchCallback",{results:e,options:t,instance:this.br})}},{key:"BRSearchCallbackError",value:function(e){this._BRSearchCallbackError(e)}},{key:"_BRSearchCallbackError",value:function(e){this.searchResults=e;var t={term:this.searchTerm,results:e,instance:this.br};if(e.error)this.br.trigger("SearchCallbackError",t);else if(0==e.matches.length){if(!1===e.indexed)return void this.br.trigger("SearchCallbackBookNotIndexed",t);this.br.trigger("SearchCallbackEmpty",t)}}},{key:"updateSearchHilites",value:function(){var e,t=(null===(e=this.searchResults)||void 0===e?void 0:e.matches)||[],n={};this.removeSearchHilites();var r,i=x(t);try{for(i.s();!(r=i.n()).done;){var o,s=x(r.value.par[0].boxes);try{for(s.s();!(o=s.n()).done;){var l=o.value,c=this.br.book.leafNumToIndex(l.page);(n[c]||(n[c]=[])).push(l)}}catch(e){s.e(e)}finally{s.f()}}}catch(e){i.e(e)}finally{i.f()}for(var u=0,h=Object.entries(n);u<h.length;u++){var d,f=w(h[u],2),v=f[0],b=f[1],g=parseFloat(v),m=this.br.book.getPage(g),p=x(this.br.getActivePageContainerElementsForIndex(g));try{for(p.s();!(d=p.n()).done;){var y=d.value;(0,a.KL)("searchHiliteLayer",b,m,y,b.map(function(e){return"match-index-".concat(e.matchIndex)}))}}catch(e){p.e(e)}finally{p.f()}}this._searchBoxesByIndex=n}},{key:"removeSearchHilites",value:function(){k(this.br.getActivePageContainerElements()).find(".searchHiliteLayer").remove()}},{key:"jumpToMatch",value:(o=M(C().m(function e(t){var n,a,i,o,s,l,c,u,h,d,f,v;return C().w(function(e){for(;;)switch(e.n){case 0:if(a=null===(n=this.searchResults)||void 0===n?void 0:n.matches[t],i=this.br.book,o=i.leafNumToIndex(a.par[0].page),s=i.getPage(o),l=Math.abs(this.br.currentIndex()-o)<3,c=!1,s.isViewable){e.n=2;break}return e.n=1,fetch("/services/bookreader/request_page?"+new URLSearchParams({id:this.br.options.bookId,subprefix:this.br.options.subPrefix,leafNum:s.leafNum})).then(function(e){return e.json()});case 1:u=e.v,h=x(u.value);try{for(h.s();!(d=h.n()).done;)f=d.value,i.getPage(i.leafNumToIndex(f)).makeViewable()}catch(e){h.e(e)}finally{h.f()}if(u.value.length||(i.getPage(o).makeViewable(),c=!0),this.br._modes.mode1Up.mode1UpLit.updatePages(),this.br.activeMode!=this.br._modes.mode1Up){e.n=2;break}return e.n=2,this.br._modes.mode1Up.mode1UpLit.updateComplete;case 2:return this.br._isIndexDisplayed(o)||(this.suppressFragmentChange=!1,this.br.jumpToIndex(o,{ariaLive:!0})),c&&i.getPage(o).makeViewable(!1),e.n=3,(0,r.poll)(function(){return k("rect.match-index-".concat(a.matchIndex))},{until:function(e){return e.length>0}});case 3:if(!(v=e.v).length){e.n=5;break}return v.css("animation","none"),v[0].scrollIntoView({block:this.br.constMode1up==this.br.mode||this.br.isFullscreenActive?"center":"nearest",inline:"center",behavior:l?"smooth":"auto"}),e.n=4,new Promise(function(e){return setTimeout(e,100)});case 4:v.removeAttr("style");case 5:return e.a(2)}},e,this)})),function(e){return o.apply(this,arguments)})},{key:"removeSearchResults",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.removeSearchHilites(),this.searchTerm=null,this.searchResults=null,e||this.br.trigger(z.eventNames.fragmentChange)}}],i&&j(n.prototype,i),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,i,o,s}(g.S);null==z||z.registerPlugin("search",L)},4160:function(e,t,n){n.d(t,{$x:function(){return b},ND:function(){return v},YH:function(){return h},_4:function(){return d}}),n(2675),n(9463),n(2259),n(3418),n(4423),n(3792),n(4782),n(2010),n(875),n(6099),n(3362),n(7495),n(8781),n(1699),n(7764),n(2953);var r=[],a={},i={},o={};[["Serbian","српски језик","sr","srp","srp"],["Romanian, Moldavian, Moldovan","Română","ro","ron","rum"],["Sichuan Yi, Nuosu","ꆈꌠ꒿ Nuosuhxop","ii","iii","iii"],["Tahitian","Reo Tahiti","ty","tah","tah"],["Tagalog","Wikang Tagalog","tl","tgl","tgl"],["Yiddish","ייִדיש","yi","yid","yid"],["Akan","Akan","ak","aka","aka"],["Malay","Bahasa Melayu, بهاس ملايو","ms","msa","may"],["Arabic","العربية","ar","ara","ara"],["Norwegian","Norsk","no","nor","nor"],["Ojibwa","ᐊᓂᔑᓈᐯᒧᐎᓐ","oj","oji","oji"],["Fulah","Fulfulde, Pulaar, Pular","ff","ful","ful"],["Persian","فارسی","fa","fas","per"],["Albanian","Shqip","sq","sqi","alb"],["Aymara","aymar aru","ay","aym","aym"],["Azerbaijani","azərbaycan dili","az","aze","aze"],["Chinese","中文 (Zhōngwén), 汉语, 漢語","zh","zho","chi"],["Cree","ᓀᐦᐃᔭᐍᐏᐣ","cr","cre","cre"],["Estonian","eesti, eesti keel","et","est","est"],["Guaraní","Avañe'ẽ","gn","grn","grn"],["Inupiaq","Iñupiaq, Iñupiatun","ik","ipk","ipk"],["Inuktitut","ᐃᓄᒃᑎᑐᑦ","iu","iku","iku"],["Kanuri","Kanuri","kr","kau","kau"],["Komi","коми кыв","kv","kom","kom"],["Kongo","Kikongo","kg","kon","kon"],["Kurdish","Kurdî, أۇزبېك","ku","kur","kur"],["Latvian","latviešu valoda","lv","lav","lav"],["Malagasy","fiteny malagasy","mg","mlg","mlg"],["Mongolian","Монгол хэл","mn","mon","mon"],["Oromo","Afaan Oromoo","om","orm","orm"],["Pashto, Pushto","پښتو","ps","pus","pus"],["Quechua","Runa Simi, Kichwa","qu","que","que"],["Sardinian","sardu","sc","srd","srd"],["Swahili","Kiswahili","sw","swa","swa"],["Uzbek","Oʻzbek, Ўзбек, ","uz","uzb","uzb"],["Zhuang, Chuang","Saɯ cueŋƅ, Saw cuengh","za","zha","zha"],["Bislama","Bislama","bi","bis","bis"],["Norwegian Bokmål","Norsk Bokmål","nb","nob","nob"],["Norwegian Nynorsk","Norsk Nynorsk","nn","nno","nno"],["Indonesian","Bahasa Indonesia","id","ind","ind"],["Twi","Twi","tw","twi","twi"],["Esperanto","Esperanto","eo","epo","epo"],["Interlingua","Interlingua","ia","ina","ina"],["Interlingue","Originally called Occidental; then Interlingue after WWII","ie","ile","ile"],["Ido","Ido","io","ido","ido"],["Volapük","Volapük","vo","vol","vol"],["Bihari languages","भोजपुरी","bh","bih","bih"],["Hebrew (modern)","עברית","he","heb","heb"],["Sanskrit","संस्कृतम्","sa","san","san"],["Church Slavic, Church Slavonic, Old Church Slavonic, Old Slavonic, Old Bulgarian","ѩзыкъ словѣньскъ","cu","chu","chu"],["Pali","पाऴि","pi","pli","pli"],["Avestan","avesta","ae","ave","ave"],["Latin","latine, lingua latina","la","lat","lat"],["Armenian","Հայերեն","hy","hye","arm"],["Swati","SiSwati","ss","ssw","ssw"],["Tibetan","བོད་ཡིག","bo","bod","tib"],["South Ndebele","isiNdebele","nr","nbl","nbl"],["Slovene","Slovenski Jezik, Slovenščina","sl","slv","slv"],["Oriya","ଓଡ଼ିଆ","or","ori","ori"],["North Ndebele","isiNdebele","nd","nde","nde"],["Nauru","Dorerin Naoero","na","nau","nau"],["Maori","te reo Māori","mi","mri","mao"],["Marathi","मराठी","mr","mar","mar"],["Luba-Katanga","Kiluba","lu","lub","lub"],["Rundi","Ikirundi","rn","run","run"],["Central Khmer","ខ្មែរ, ខេមរភាសា, ភាសាខ្មែរ","km","khm","khm"],["Western Frisian","Frysk","fy","fry","fry"],["Bengali","বাংলা","bn","ben","ben"],["Avaric","авар мацӀ, магӀарул мацӀ","av","ava","ava"],["Abkhazian","аҧсуа бызшәа, аҧсшәа","ab","abk","abk"],["Afar","Afaraf","aa","aar","aar"],["Afrikaans","Afrikaans","af","afr","afr"],["Amharic","አማርኛ","am","amh","amh"],["Aragonese","aragonés","an","arg","arg"],["Assamese","অসমীয়া","as","asm","asm"],["Bambara","bamanankan","bm","bam","bam"],["Bashkir","башҡорт теле","ba","bak","bak"],["Basque","euskara, euskera","eu","eus","baq"],["Belarusian","беларуская мова","be","bel","bel"],["Bosnian","bosanski jezik","bs","bos","bos"],["Breton","brezhoneg","br","bre","bre"],["Bulgarian","български език","bg","bul","bul"],["Burmese","ဗမာစာ","my","mya","bur"],["Catalan, Valencian","català, valencià","ca","cat","cat"],["Chamorro","Chamoru","ch","cha","cha"],["Chechen","нохчийн мотт","ce","che","che"],["Chichewa, Chewa, Nyanja","chiCheŵa, chinyanja","ny","nya","nya"],["Chuvash","чӑваш чӗлхи","cv","chv","chv"],["Cornish","Kernewek","kw","cor","cor"],["Corsican","corsu, lingua corsa","co","cos","cos"],["Croatian","hrvatski jezik","hr","hrv","hrv"],["Czech","čeština, český jazyk","cs","ces","cze"],["Danish","dansk","da","dan","dan"],["Divehi, Dhivehi, Maldivian","ދިވެހި","dv","div","div"],["Dutch, Flemish","Nederlands, Vlaams","nl","nld","dut"],["Dzongkha","རྫོང་ཁ","dz","dzo","dzo"],["English","English","en","eng","eng"],["Ewe","Eʋegbe","ee","ewe","ewe"],["Faroese","føroyskt","fo","fao","fao"],["Fijian","vosa Vakaviti","fj","fij","fij"],["Finnish","suomi, suomen kieli","fi","fin","fin"],["French","français, langue française","fr","fra","fre"],["Galician","Galego","gl","glg","glg"],["Georgian","ქართული","ka","kat","geo"],["German","Deutsch","de","deu","ger"],["Greek (modern)","ελληνικά","el","ell","gre"],["Gujarati","ગુજરાતી","gu","guj","guj"],["Haitian, Haitian Creole","Kreyòl ayisyen","ht","hat","hat"],["Hausa","(Hausa) هَوُسَ","ha","hau","hau"],["Herero","Otjiherero","hz","her","her"],["Hindi","हिन्दी, हिंदी","hi","hin","hin"],["Hiri Motu","Hiri Motu","ho","hmo","hmo"],["Hungarian","magyar","hu","hun","hun"],["Irish","Gaeilge","ga","gle","gle"],["Igbo","Asụsụ Igbo","ig","ibo","ibo"],["Icelandic","Íslenska","is","isl","ice"],["Italian","Italiano","it","ita","ita"],["Japanese","日本語 (にほんご)","ja","jpn","jpn"],["Javanese","ꦧꦱꦗꦮ, Basa Jawa","jv","jav","jav"],["Kalaallisut, Greenlandic","kalaallisut, kalaallit oqaasii","kl","kal","kal"],["Kannada","ಕನ್ನಡ","kn","kan","kan"],["Kashmiri","कश्मीरी, كشميري","ks","kas","kas"],["Kazakh","қазақ тілі","kk","kaz","kaz"],["Kikuyu, Gikuyu","Gĩkũyũ","ki","kik","kik"],["Kinyarwanda","Ikinyarwanda","rw","kin","kin"],["Kirghiz, Kyrgyz","Кыргызча, Кыргыз тили","ky","kir","kir"],["Korean","한국어","ko","kor","kor"],["Kuanyama, Kwanyama","Kuanyama","kj","kua","kua"],["Luxembourgish, Letzeburgesch","Lëtzebuergesch","lb","ltz","ltz"],["Ganda","Luganda","lg","lug","lug"],["Limburgan, Limburger, Limburgish","Limburgs","li","lim","lim"],["Lingala","Lingála","ln","lin","lin"],["Lao","ພາສາລາວ","lo","lao","lao"],["Lithuanian","lietuvių kalba","lt","lit","lit"],["Manx","Gaelg, Gailck","gv","glv","glv"],["Macedonian","македонски јазик","mk","mkd","mac"],["Malayalam","മലയാളം","ml","mal","mal"],["Maltese","Malti","mt","mlt","mlt"],["Marshallese","Kajin M̧ajeļ","mh","mah","mah"],["Navajo, Navaho","Diné bizaad","nv","nav","nav"],["Nepali","नेपाली","ne","nep","nep"],["Ndonga","Owambo","ng","ndo","ndo"],["Occitan","occitan, lenga d'òc","oc","oci","oci"],["Ossetian, Ossetic","ирон æвзаг","os","oss","oss"],["Panjabi, Punjabi","ਪੰਜਾਬੀ","pa","pan","pan"],["Polish","język polski, polszczyzna","pl","pol","pol"],["Portuguese","Português","pt","por","por"],["Romansh","Rumantsch Grischun","rm","roh","roh"],["Russian","русский","ru","rus","rus"],["Sindhi","सिन्धी, سنڌي، سندھی","sd","snd","snd"],["Northern Sami","Davvisámegiella","se","sme","sme"],["Samoan","gagana fa'a Samoa","sm","smo","smo"],["Sango","yângâ tî sängö","sg","sag","sag"],["Gaelic, Scottish Gaelic","Gàidhlig","gd","gla","gla"],["Shona","chiShona","sn","sna","sna"],["Sinhala, Sinhalese","සිංහල","si","sin","sin"],["Slovak","Slovenčina, Slovenský Jazyk","sk","slk","slo"],["Somali","Soomaaliga, af Soomaali","so","som","som"],["Southern Sotho","Sesotho","st","sot","sot"],["Spanish, Castilian","Español","es","spa","spa"],["Sundanese","Basa Sunda","su","sun","sun"],["Swedish","Svenska","sv","swe","swe"],["Tamil","தமிழ்","ta","tam","tam"],["Telugu","తెలుగు","te","tel","tel"],["Tajik","тоҷикӣ, toçikī, تاجیکی","tg","tgk","tgk"],["Thai","ไทย","th","tha","tha"],["Tigrinya","ትግርኛ","ti","tir","tir"],["Turkmen","Türkmen, Түркмен","tk","tuk","tuk"],["Tswana","Setswana","tn","tsn","tsn"],["Tongan (Tonga Islands)","Faka Tonga","to","ton","ton"],["Turkish","Türkçe","tr","tur","tur"],["Tsonga","Xitsonga","ts","tso","tso"],["Tatar","татар теле, tatar tele","tt","tat","tat"],["Uighur, Uyghur","ئۇيغۇرچە, Uyghurche","ug","uig","uig"],["Ukrainian","Українська","uk","ukr","ukr"],["Urdu","اردو","ur","urd","urd"],["Venda","Tshivenḓa","ve","ven","ven"],["Vietnamese","Tiếng Việt","vi","vie","vie"],["Walloon","Walon","wa","wln","wln"],["Welsh","Cymraeg","cy","cym","wel"],["Wolof","Wollof","wo","wol","wol"],["Xhosa","isiXhosa","xh","xho","xho"],["Yoruba","Yorùbá","yo","yor","yor"],["Zulu","isiZulu","zu","zul","zul"]].forEach(e=>{var t={name:e[0],nativeName:e[1],iso639_1:e[2],iso639_2T:e[3],iso639_2B:e[4]};a[e[2]]=i[e[3]]=o[e[4]]=t,r.push(t)});var s=r;function l(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return c(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)?c(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}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 i,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,i=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw i}}}}function c(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}var u={"zh-hans":"中文 (Zhōngwén)"};function h(e){if(!e)return null;if(e=e.toLocaleLowerCase(),u[e])return e;var t=f(e,["iso639_1"])||f(e,["iso639_2T"])||f(e,["iso639_2B","name","nativeName"]);return t?t.iso639_1:null}function d(e){if(!e)return null;if(e=e.toLocaleLowerCase(),u[e])return u[e];var t=f(e,["iso639_1"])||f(e,["iso639_2T"])||f(e,["iso639_2B","name","nativeName"]);return null!=t&&t.nativeName?t.nativeName.split(", ")[0]:null}function f(e,t){if(!e)return null;e=e.toLowerCase();var n,r=l(s);try{for(r.s();!(n=r.n()).done;){var a,i=n.value,o=l(t);try{for(o.s();!(a=o.n()).done;){var c;if(null!==(c=i[a.value])&&void 0!==c&&c.toLowerCase().split(", ").includes(e))return i}}catch(e){o.e(e)}finally{o.f()}}}catch(e){r.e(e)}finally{r.f()}return null}function v(){try{return!!window.localStorage}catch(e){return!1}}var b=-1!=location.toString().indexOf("_debugReadAloud=true")}},function(e){e(e.s=5372)}]);
|
|
2
|
+
"use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[924],{706:function(e,t,n){var r=n(350).PROPER,a=n(9039),i=n(7452);e.exports=function(e){return a(function(){return!!i[e]()||"
"!=="
"[e]()||r&&i[e].name!==e})}},2762:function(e,t,n){var r=n(6518),a=n(3802).trim;r({target:"String",proto:!0,forced:n(706)("trim")},{trim:function(){return a(this)}})},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 a(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,i(r.key),r)}}function i(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 o}}),n(2675),n(9463),n(2259),n(5700),n(3792),n(9572),n(8130),n(9085),n(6099),n(7764),n(2953);var o=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){}}])&&a(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}()},5372:function(e,t,n){n(2675),n(9463),n(2259),n(5700),n(8706),n(113),n(3418),n(3792),n(8598),n(2062),n(4782),n(9572),n(2010),n(8130),n(5506),n(3851),n(875),n(6099),n(8459),n(3362),n(825),n(888),n(7495),n(8781),n(7764),n(5440),n(5746),n(2953),n(8408);var r=n(8004),a=n(4907),i=(n(8940),n(3500),n(1669));function o(e){return o="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},o(e)}function s(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,l(r.key),r)}}function l(e){var t=function(e){if("object"!=o(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=o(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==o(t)?t:t+""}var u=function(){return e=function e(t){var n=t.br,r=t.searchCancelledCallback,a=void 0===r?function(){}:r;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.br=n,this.matches=[],this.cacheDOMElements(),this.cancelSearch=a},t=[{key:"init",value:function(){this.bindEvents()}},{key:"cacheDOMElements",value:function(){this.dom={},this.dom.toolbarSearch=this.buildToolbarSearch()}},{key:"setQuery",value:function(e){this.br.$('[name="query"]').val(e)}},{key:"emptyMatches",value:function(){this.matches=[]}},{key:"removeResultPins",value:function(){this.br.$(".BRnavpos .BRsearch").remove()}},{key:"clearSearchFieldAndResults",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.br.plugins.search.removeSearchResults(),this.removeResultPins(),this.emptyMatches(),this.setQuery(""),this.teardownSearchNavigation(),e&&this.br.trigger("SearchResultsCleared")}},{key:"toggleSidebar",value:function(){this.br.trigger("ToggleSearchMenu")}},{key:"renderSearchNavigation",value:function(){var e="BRsearch-navigation";i(".BRnav.BRnavMain").before('\n <div class="'.concat(e,'">\n <button class="toggle-sidebar">\n <h4>\n <span class="icon icon-search"></span> Results\n </h4>\n </button>\n <div class="pagination">\n <button class="prev" title="Previous result"><span class="icon icon-chevron hflip"></span></button>\n <span data-id="resultsCount">').concat(this.resultsPosition(),'</span>\n <button class="next" title="Next result"><span class="icon icon-chevron"></button>\n </div>\n <button class="clear" title="Clear search results">\n <span class="icon icon-close"></span>\n </button>\n </div>\n ')),this.dom.searchNavigation=i(".".concat(e))}},{key:"resultsPosition",value:function(){var e="".concat(this.matches.length," result").concat(1===this.matches.length?"":"s");return~this.currentMatchIndex&&(e="".concat(this.currentMatchIndex+1," / ").concat(this.matches.length)),e}},{key:"bindSearchNavigationEvents",value:function(){if(this.dom.searchNavigation){var e="searchNavigation";this.dom.searchNavigation.on("click.".concat(e),".clear",this.clearSearchFieldAndResults.bind(this)).on("click.".concat(e),".prev",this.showPrevResult.bind(this)).on("click.".concat(e),".next",this.showNextResult.bind(this)).on("click.".concat(e),".toggle-sidebar",this.toggleSidebar.bind(this)).on("click.".concat(e),!1)}}},{key:"showPrevResult",value:function(){0!==this.currentMatchIndex&&(this.br.mode===this.br.constModeThumb&&this.br.switchMode(this.br.constMode1up),~this.currentMatchIndex||(this.currentMatchIndex=this.getClosestMatchIndex(function(e,t,n){return t[0]>n})+1),this.br.$(".BRnavline .BRsearch").eq(--this.currentMatchIndex).click(),this.updateResultsPosition(),this.updateSearchNavigationButtons())}},{key:"showNextResult",value:function(){this.currentMatchIndex+1!==this.matches.length&&(this.br.mode===this.br.constModeThumb&&this.br.switchMode(this.br.constMode1up),~this.currentMatchIndex||(this.currentMatchIndex=this.getClosestMatchIndex(function(e,t,n){return e[e.length-1]>n})-1),this.br.$(".BRnavline .BRsearch").eq(++this.currentMatchIndex).click(),this.updateResultsPosition(),this.updateSearchNavigationButtons())}},{key:"getClosestMatchIndex",value:function(e){var t=this.matches.map(function(e){return e.par[0].page}),n=this.br.currentIndex()+1,r=function(t,n){if(1===t.length)return t[0];var a=t.slice(0,t.length/2),i=t.slice(t.length/2);return r(e(a,i,n)?a:i,n)},a=r(t,n);return this.matches.indexOf(this.matches.find(function(e){return e.par[0].page===a}))}},{key:"updateResultsPosition",value:function(){this.dom.searchNavigation&&this.dom.searchNavigation.find("[data-id=resultsCount]").text(this.resultsPosition())}},{key:"updateSearchNavigationButtons",value:function(){this.dom.searchNavigation&&(this.dom.searchNavigation.find(".prev").attr("disabled",!this.currentMatchIndex),this.dom.searchNavigation.find(".next").attr("disabled",this.currentMatchIndex+1===this.matches.length))}},{key:"teardownSearchNavigation",value:function(){this.dom.searchNavigation||(this.dom.searchNavigation=i(".BRsearch-navigation")),this.dom.searchNavigation.length&&(this.dom.searchNavigation.off(".searchNavigation").remove(),this.dom.searchNavigation=null,this.br.resize())}},{key:"setCurrentMatchIndex",value:function(){var e;this.br.mode!==this.br.constModeThumb?(e=this.br.mode===this.br.constMode2up?this.find2upMatchingSearchResult():this.find1upMatchingSearchResult(),this.currentMatchIndex=this.matches.indexOf(e)):this.currentMatchIndex=-1}},{key:"find1upMatchingSearchResult",value:function(){var e=this;return this.matches.find(function(t){return e.br.currentIndex()===t.par[0].page-1})}},{key:"find2upMatchingSearchResult",value:function(){var e=this;return this.matches.find(function(t){return e.br._isIndexDisplayed(t.par[0].page-1)})}},{key:"updateSearchNavigation",value:function(){this.matches.length&&(this.setCurrentMatchIndex(),this.updateResultsPosition(),this.updateSearchNavigationButtons())}},{key:"togglePinsFor",value:function(e){var t=e?"visible":"hidden";this.br.refs.$BRfooter.find(".BRsearch").css({visibility:t})}},{key:"buildToolbarSearch",value:function(){var e=document.createElement("span");return e.classList.add("BRtoolbarSection","BRtoolbarSectionSearch"),e.innerHTML='\n <form class="BRbooksearch desktop">\n <input type="search" name="query" class="BRsearchInput" value="" placeholder="Search inside"/>\n <button type="submit" class="BRsearchSubmit">\n <img src="'.concat(this.br.options.imagesBaseURL,'icon_search_button.svg" />\n </button>\n </form>\n '),e}},{key:"renderPins",value:function(e){var t=this;e.forEach(function(e){var n=t.br.book.leafNumToIndex(e.par[0].page),r=t.br.constructor.util.cssPercentage(n,t.br.book.getNumLeafs()-1),a=e.html;if(a.length>200){var o=Math.max(0,a.indexOf("<mark>")-100);0!=o&&(a="…"+e.html.substring(o).replace(/^\S+/,""))}i("<div>").addClass("BRsearch").css({left:r}).attr("title","Search result").append('\n <div class="BRquery">\n <main>'.concat(a,"</main>\n <footer>Page ").concat(e.displayPageNumber,"</footer>\n </div>\n ")).appendTo(t.br.$(".BRnavline")).on("mouseenter",function(e){var t=e.currentTarget,n=t.querySelector(".BRquery"),r=n.getBoundingClientRect(),a=t.getBoundingClientRect(),o=2*parseInt(getComputedStyle(n).paddingLeft);r.x-o<0&&n.style.setProperty("transform","translateX(-".concat(a.left-o,"px)")),i(".BRsearch,.BRchapter").removeClass("front"),i(e.target).addClass("front")}).on("mouseleave",function(e){return i(e.target).removeClass("front")}).on("click",function(){t.br.plugins.search.jumpToMatch(e.matchIndex)})})}},{key:"toggleSearchPending",value:function(){var e=this;arguments.length>0&&void 0!==arguments[0]&&arguments[0]?this.br.showProgressPopup("Search results will appear below...",function(){return e.progressPopupClosed()}):this.br.removeProgressPopup()}},{key:"progressPopupClosed",value:function(){this.toggleSearchPending(),this.cancelSearch()}},{key:"renderErrorModal",value:function(){var e="".concat(arguments.length>0&&void 0!==arguments[0]&&arguments[0]?"":"The text may still be processing. ","Please try again.");this.renderModalMessage("\n Sorry, there was an error with your search.\n <br />\n ".concat(e,"\n ")),this.delayModalRemovalFor(4e3)}},{key:"renderBookNotIndexedModal",value:function(){this.renderModalMessage("\n <p>\n This book hasn't been indexed for searching yet.\n We've just started indexing it, so search should be available soon.\n <br />\n Please try again later. Thanks!\n </p>\n "),this.delayModalRemovalFor(5e3)}},{key:"renderResultsEmptyModal",value:function(){this.renderModalMessage("No matches were found."),this.delayModalRemovalFor(2e3)}},{key:"renderModalMessage",value:function(e){var t=document.createElement("div");t.classList.add("BRprogresspopup","search_modal"),t.innerHTML=e,document.querySelector(this.br.el).append(t)}},{key:"delayModalRemovalFor",value:function(e){setTimeout(this.br.removeProgressPopup.bind(this.br),e)}},{key:"submitHandler",value:function(e){e.preventDefault();var t=e.target.querySelector('[name="query"]').value;return!!t.length&&(this.br.search(t),this.emptyMatches(),this.toggleSearchPending(!0),!1)}},{key:"handleSearchCallback",value:function(e,t){var n=this,r=t.results,a=t.options;this.matches=r.matches,this.setCurrentMatchIndex(),this.teardownSearchNavigation(),this.renderSearchNavigation(),this.bindSearchNavigationEvents(),this.renderPins(r.matches),this.toggleSearchPending(!1),a.goToFirstResult?i(document).one("BookReader:pageChanged",function(){n.br.resize()}):this.br.resize()}},{key:"handleSearchStarted",value:function(){this.emptyMatches(),this.br.plugins.search.removeSearchHilites(),this.removeResultPins(),this.toggleSearchPending(!0),this.teardownSearchNavigation(),this.setQuery(this.br.plugins.search.searchTerm)}},{key:"handleSearchCallbackError",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.toggleSearchPending(!1);var n=null==t||null===(e=t.detail)||void 0===e||null===(e=e.props)||void 0===e||null===(e=e.results)||void 0===e?void 0:e.indexed;this.renderErrorModal(n)}},{key:"handleSearchCallbackBookNotIndexed",value:function(){this.toggleSearchPending(!1),this.renderBookNotIndexedModal()}},{key:"handleSearchCallbackEmpty",value:function(){this.toggleSearchPending(!1),this.renderResultsEmptyModal()}},{key:"bindEvents",value:function(){var e="BookReader:";window.addEventListener("".concat(e,"SearchCallbackError"),this.handleSearchCallbackError.bind(this)),i(document).on("".concat(e,"SearchCallback"),this.handleSearchCallback.bind(this)).on("".concat(e,"SearchStarted"),this.handleSearchStarted.bind(this)).on("".concat(e,"SearchCallbackBookNotIndexed"),this.handleSearchCallbackBookNotIndexed.bind(this)).on("".concat(e,"SearchCallbackEmpty"),this.handleSearchCallbackEmpty.bind(this)).on("".concat(e,"pageChanged"),this.updateSearchNavigation.bind(this)),this.dom.toolbarSearch.querySelector("form").addEventListener("submit",this.submitHandler.bind(this))}}],t&&s(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}(),c=u;function h(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,s=[],l=!0,u=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){u=!0,a=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(u)throw a}}return s}}(e,t)||d(e,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.")}()}function f(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=d(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}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 i,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,i=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw i}}}}function d(e,t){if(e){if("string"==typeof e)return v(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)?v(e,t):void 0}}function v(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 g(e,t,n){var a=(0,r.escapeRegExp)((0,r.escapeHTML)(t)),i=(0,r.escapeRegExp)((0,r.escapeHTML)(n)),o=new RegExp("".concat(a,"([^]+?)").concat(i),"g");return(0,r.escapeHTML)(e).replace(o,"<mark>$1</mark>").replace(/(\b)- /g,"$1")}n(4864);var b=n(1041),m=n(9073),p=n(4160),y=n(1669),k=n(1669);function S(e){return S="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},S(e)}function w(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,s=[],l=!0,u=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){u=!0,a=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(u)throw a}}return s}}(e,t)||x(e,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.")}()}function R(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=x(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}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 i,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,i=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw i}}}}function x(e,t){if(e){if("string"==typeof e)return T(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)?T(e,t):void 0}}function T(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 C(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",a=n.toStringTag||"@@toStringTag";function i(n,r,a,i){var l=r&&r.prototype instanceof s?r:s,u=Object.create(l.prototype);return P(u,"_invoke",function(n,r,a){var i,s,l,u=0,c=a||[],h=!1,f={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,n){return i=t,s=0,l=e,f.n=n,o}};function d(n,r){for(s=n,l=r,t=0;!h&&u&&!a&&t<c.length;t++){var a,i=c[t],d=f.p,v=i[2];n>3?(a=v===r)&&(l=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=d&&((a=n<2&&d<i[1])?(s=0,f.v=r,f.n=i[1]):d<v&&(a=n<3||i[0]>r||r>v)&&(i[4]=n,i[5]=r,f.n=v,s=0))}if(a||n>1)return o;throw h=!0,r}return function(a,c,v){if(u>1)throw TypeError("Generator is already running");for(h&&1===c&&d(c,v),s=c,l=v;(t=s<2?e:l)||!h;){i||(s?s<3?(s>1&&(f.n=-1),d(s,l)):f.n=l:f.v=l);try{if(u=2,i){if(s||(a="next"),t=i[a]){if(!(t=t.call(i,l)))throw TypeError("iterator result is not an object");if(!t.done)return t;l=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(l=TypeError("The iterator does not provide a '"+a+"' method"),s=1);i=e}else if((t=(h=f.n<0)?l:n.call(r,f))!==o)break}catch(t){i=e,s=1,l=t}finally{u=1}}return{value:t,done:h}}}(n,a,i),!0),u}var o={};function s(){}function l(){}function u(){}t=Object.getPrototypeOf;var c=[][r]?t(t([][r]())):(P(t={},r,function(){return this}),t),h=u.prototype=s.prototype=Object.create(c);function f(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,u):(e.__proto__=u,P(e,a,"GeneratorFunction")),e.prototype=Object.create(h),e}return l.prototype=u,P(h,"constructor",u),P(u,"constructor",l),l.displayName="GeneratorFunction",P(u,a,"GeneratorFunction"),P(h),P(h,a,"Generator"),P(h,r,function(){return this}),P(h,"toString",function(){return"[object Generator]"}),(C=function(){return{w:i,m:f}})()}function P(e,t,n,r){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}P=function(e,t,n,r){function i(t,n){P(e,t,function(e){return this._invoke(t,n,e)})}t?a?a(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},P(e,t,n,r)}function I(e,t,n,r,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function M(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function o(e){I(i,r,a,o,s,"next",e)}function s(e){I(i,r,a,o,s,"throw",e)}o(void 0)})}}function j(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,_(r.key),r)}}function N(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(N=function(){return!!e})()}function B(e,t,n,r){var a=O(E(1&r?e.prototype:e),t,n);return 2&r&&"function"==typeof a?function(e){return a.apply(n,e)}:a}function O(){return O="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=E(e)););return e}(e,t);if(r){var a=Object.getOwnPropertyDescriptor(r,t);return a.get?a.get.call(arguments.length<3?e:n):a.value}},O.apply(null,arguments)}function E(e){return E=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},E(e)}function A(e,t){return A=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},A(e,t)}function _(e){var t=function(e){if("object"!=S(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=S(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==S(t)?t:t+""}var z=window.BookReader,L=function(e){function t(){var e,n,r,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var i=arguments.length,o=new Array(i),s=0;s<i;s++)o[s]=arguments[s];return e=function(e,t,n){return t=E(t),function(e,t){if(t&&("object"==S(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,N()?Reflect.construct(t,n||[],E(e).constructor):t.apply(e,n))}(this,t,[].concat(o)),n=e,r="options",a={enabled:!0,preTag:"{{{",postTag:"}}}",searchInsideUrl:"/fulltext/inside.php?"+["q={{query|urlencode}}","pre_tag={{preTag|urlencode}}","post_tag={{postTag|urlencode}}"].join("&"),initialSearchTerm:null,goToFirstResult:!1},(r=_(r))in n?Object.defineProperty(n,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):n[r]=a,e}return function(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&&A(e,t)}(t,e),n=t,i=[{key:"setup",value:function(e){var n=this;B(t,"setup",this,3)([e]),this.searchTerm="",this.searchResults=null,this.searchInsideUrl=this.options.searchInsideUrl,this.enabled=this.options.enabled,this.searchXHR=null,this._searchBoxesByIndex={},this.enabled?this.searchView=new c({br:this.br,searchCancelledCallback:function(){n._cancelSearch(),n.br.trigger("SearchCanceled",{term:n.searchTerm,instance:n.br})}}):this.searchView=null}},{key:"init",value:function(){var e;B(t,"init",this,3)([]),this.enabled&&(this.searchView.init(),this.options.initialSearchTerm?this.search(this.options.initialSearchTerm,{goToFirstResult:this.options.goToFirstResult,suppressFragmentChange:!1}):"search"===(null===(e=this.br.urlPlugin)||void 0===e?void 0:e.getUrlParam("focus"))&&this.searchView.toggleSidebar())}},{key:"_configureToolbar",value:function(e){if(this.enabled)return this.searchView.dom.toolbarSearch&&e.find(".BRtoolbarSectionInfo").after(this.searchView.dom.toolbarSearch),e}},{key:"_configurePageContainer",value:function(e){if(this.enabled&&e.page&&e.page.index in this._searchBoxesByIndex){var t=e.page.index,n=this._searchBoxesByIndex[t];(0,a.KL)("searchHiliteLayer",n,e.page,e.$container[0],n.map(function(e){return"match-index-".concat(e.matchIndex)}))}return e}},{key:"search",value:(s=M(C().m(function e(){var t,n,r,a,i,o,s,l=this,u=arguments;return C().w(function(e){for(;;)switch(e.n){case 0:return t=u.length>0&&void 0!==u[0]?u[0]:"",n=u.length>1&&void 0!==u[1]?u[1]:{},r={goToFirstResult:!1,disablePopup:!1,suppressFragmentChange:!1,error:null,success:null},a=y.extend({},r,n),this.suppressFragmentChange=a.suppressFragmentChange,this.searchCancelled=!1,this.searchTerm=t.replace(/\//g," "),a.suppressFragmentChange||this.br.trigger(z.eventNames.fragmentChange),i=(0,m.gT)(this.options.searchInsideUrl,this.br.options.vars,{query:t,preTag:this.options.preTag,postTag:this.options.postTag}),o=function(e){if(!l.searchCancelled){var t=e.error||!e.matches.length,n="function"==typeof a.error,r="function"==typeof a.success;t?(console.error("Search Inside Response Error",e.error||"matches.length == 0"),n?a.error.call(l,e,a):l.BRSearchCallbackError(e)):r?a.success.call(l,e,a):l.BRSearchCallback(e,a)}},this.br.trigger("SearchStarted",{term:this.searchTerm,instance:this.br}),s=o,e.n=1,k.ajax({url:i,cache:!0,xhrFields:{withCredentials:this.br.protected},beforeSend:function(e){l.searchXHR=e}});case 1:s(e.v);case 2:return e.a(2)}},e,this)})),function(){return s.apply(this,arguments)})},{key:"_cancelSearch",value:function(){var e;null===(e=this.searchXHR)||void 0===e||e.abort(),this.searchView.clearSearchFieldAndResults(!1),this.searchTerm="",this.searchXHR=null,this.searchCancelled=!0,this.searchResults=null}},{key:"cancelSearchRequest",value:function(){this.searchCancelled=!0,null!==this.searchXHR&&(this._cancelSearch(),this.searchView.toggleSearchPending(),this.br.trigger("SearchCanceled",{term:this.searchTerm,instance:this.br}))}},{key:"BRSearchCallback",value:function(e,t){var n=this,r=(0,p.YH)(this.br.options.bookLanguage);!function(e,t,n,r,a){var i,o=f(e.matches.entries());try{for(o.s();!(i=o.n()).done;){var s=h(i.value,2),l=s[0],u=s[1];u.matchIndex=l,u.displayPageNumber=t(u.par[0].page),u.html=g(u.text,n,r),u.lang=a;var c,d=f(u.par);try{for(d.s();!(c=d.n()).done;){var v,b=f(c.value.boxes);try{for(b.s();!(v=b.n()).done;)v.value.matchIndex=l}catch(e){b.e(e)}finally{b.f()}}}catch(e){d.e(e)}finally{d.f()}}}catch(e){o.e(e)}finally{o.f()}}(e,function(e){return n.br.book.getPageNum(n.br.book.leafNumToIndex(e))},this.options.preTag,this.options.postTag,r),this.searchResults=e||null,this.updateSearchHilites(),this.br.removeProgressPopup(),t.goToFirstResult&&this.jumpToMatch(0),this.br.trigger("SearchCallback",{results:e,options:t,instance:this.br})}},{key:"BRSearchCallbackError",value:function(e){this._BRSearchCallbackError(e)}},{key:"_BRSearchCallbackError",value:function(e){this.searchResults=e;var t={term:this.searchTerm,results:e,instance:this.br};if(e.error)this.br.trigger("SearchCallbackError",t);else if(0==e.matches.length){if(!1===e.indexed)return void this.br.trigger("SearchCallbackBookNotIndexed",t);this.br.trigger("SearchCallbackEmpty",t)}}},{key:"updateSearchHilites",value:function(){var e,t=(null===(e=this.searchResults)||void 0===e?void 0:e.matches)||[],n={};this.removeSearchHilites();var r,i=R(t);try{for(i.s();!(r=i.n()).done;){var o,s=R(r.value.par[0].boxes);try{for(s.s();!(o=s.n()).done;){var l=o.value,u=this.br.book.leafNumToIndex(l.page);(n[u]||(n[u]=[])).push(l)}}catch(e){s.e(e)}finally{s.f()}}}catch(e){i.e(e)}finally{i.f()}for(var c=0,h=Object.entries(n);c<h.length;c++){var f,d=w(h[c],2),v=d[0],g=d[1],b=parseFloat(v),m=this.br.book.getPage(b),p=R(this.br.getActivePageContainerElementsForIndex(b));try{for(p.s();!(f=p.n()).done;){var y=f.value;(0,a.KL)("searchHiliteLayer",g,m,y,g.map(function(e){return"match-index-".concat(e.matchIndex)}))}}catch(e){p.e(e)}finally{p.f()}}this._searchBoxesByIndex=n}},{key:"removeSearchHilites",value:function(){k(this.br.getActivePageContainerElements()).find(".searchHiliteLayer").remove()}},{key:"jumpToMatch",value:(o=M(C().m(function e(t){var n,a,i,o,s,l,u,c,h,f,d,v;return C().w(function(e){for(;;)switch(e.n){case 0:if(a=null===(n=this.searchResults)||void 0===n?void 0:n.matches[t],i=this.br.book,o=i.leafNumToIndex(a.par[0].page),s=i.getPage(o),l=Math.abs(this.br.currentIndex()-o)<3,u=!1,s.isViewable){e.n=2;break}return e.n=1,fetch("/services/bookreader/request_page?"+new URLSearchParams({id:this.br.options.bookId,subprefix:this.br.options.subPrefix,leafNum:s.leafNum})).then(function(e){return e.json()});case 1:c=e.v,h=R(c.value);try{for(h.s();!(f=h.n()).done;)d=f.value,i.getPage(i.leafNumToIndex(d)).makeViewable()}catch(e){h.e(e)}finally{h.f()}if(c.value.length||(i.getPage(o).makeViewable(),u=!0),this.br._modes.mode1Up.mode1UpLit.updatePages(),this.br.activeMode!=this.br._modes.mode1Up){e.n=2;break}return e.n=2,this.br._modes.mode1Up.mode1UpLit.updateComplete;case 2:return this.br._isIndexDisplayed(o)||(this.suppressFragmentChange=!1,this.br.jumpToIndex(o,{ariaLive:!0})),u&&i.getPage(o).makeViewable(!1),e.n=3,(0,r.poll)(function(){return k("rect.match-index-".concat(a.matchIndex))},{until:function(e){return e.length>0}});case 3:if(!(v=e.v).length){e.n=5;break}return v.css("animation","none"),v[0].scrollIntoView({block:this.br.constMode1up==this.br.mode||this.br.isFullscreenActive?"center":"nearest",inline:"center",behavior:l?"smooth":"auto"}),e.n=4,new Promise(function(e){return setTimeout(e,100)});case 4:v.removeAttr("style");case 5:return e.a(2)}},e,this)})),function(e){return o.apply(this,arguments)})},{key:"removeSearchResults",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.removeSearchHilites(),this.searchTerm=null,this.searchResults=null,e||this.br.trigger(z.eventNames.fragmentChange)}}],i&&j(n.prototype,i),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,i,o,s}(b.S);null==z||z.registerPlugin("search",L)},4160:function(e,t,n){n.d(t,{$x:function(){return g},ND:function(){return v},YH:function(){return h},_4:function(){return f}}),n(2675),n(9463),n(2259),n(3418),n(4423),n(3792),n(4782),n(2010),n(875),n(6099),n(3362),n(7495),n(8781),n(1699),n(7764),n(2953);var r=[],a={},i={},o={};[["Serbian","српски језик","sr","srp","srp"],["Romanian, Moldavian, Moldovan","Română","ro","ron","rum"],["Sichuan Yi, Nuosu","ꆈꌠ꒿ Nuosuhxop","ii","iii","iii"],["Tahitian","Reo Tahiti","ty","tah","tah"],["Tagalog","Wikang Tagalog","tl","tgl","tgl"],["Yiddish","ייִדיש","yi","yid","yid"],["Akan","Akan","ak","aka","aka"],["Malay","Bahasa Melayu, بهاس ملايو","ms","msa","may"],["Arabic","العربية","ar","ara","ara"],["Norwegian","Norsk","no","nor","nor"],["Ojibwa","ᐊᓂᔑᓈᐯᒧᐎᓐ","oj","oji","oji"],["Fulah","Fulfulde, Pulaar, Pular","ff","ful","ful"],["Persian","فارسی","fa","fas","per"],["Albanian","Shqip","sq","sqi","alb"],["Aymara","aymar aru","ay","aym","aym"],["Azerbaijani","azərbaycan dili","az","aze","aze"],["Chinese","中文 (Zhōngwén), 汉语, 漢語","zh","zho","chi"],["Cree","ᓀᐦᐃᔭᐍᐏᐣ","cr","cre","cre"],["Estonian","eesti, eesti keel","et","est","est"],["Guaraní","Avañe'ẽ","gn","grn","grn"],["Inupiaq","Iñupiaq, Iñupiatun","ik","ipk","ipk"],["Inuktitut","ᐃᓄᒃᑎᑐᑦ","iu","iku","iku"],["Kanuri","Kanuri","kr","kau","kau"],["Komi","коми кыв","kv","kom","kom"],["Kongo","Kikongo","kg","kon","kon"],["Kurdish","Kurdî, أۇزبېك","ku","kur","kur"],["Latvian","latviešu valoda","lv","lav","lav"],["Malagasy","fiteny malagasy","mg","mlg","mlg"],["Mongolian","Монгол хэл","mn","mon","mon"],["Oromo","Afaan Oromoo","om","orm","orm"],["Pashto, Pushto","پښتو","ps","pus","pus"],["Quechua","Runa Simi, Kichwa","qu","que","que"],["Sardinian","sardu","sc","srd","srd"],["Swahili","Kiswahili","sw","swa","swa"],["Uzbek","Oʻzbek, Ўзбек, ","uz","uzb","uzb"],["Zhuang, Chuang","Saɯ cueŋƅ, Saw cuengh","za","zha","zha"],["Bislama","Bislama","bi","bis","bis"],["Norwegian Bokmål","Norsk Bokmål","nb","nob","nob"],["Norwegian Nynorsk","Norsk Nynorsk","nn","nno","nno"],["Indonesian","Bahasa Indonesia","id","ind","ind"],["Twi","Twi","tw","twi","twi"],["Esperanto","Esperanto","eo","epo","epo"],["Interlingua","Interlingua","ia","ina","ina"],["Interlingue","Originally called Occidental; then Interlingue after WWII","ie","ile","ile"],["Ido","Ido","io","ido","ido"],["Volapük","Volapük","vo","vol","vol"],["Bihari languages","भोजपुरी","bh","bih","bih"],["Hebrew (modern)","עברית","he","heb","heb"],["Sanskrit","संस्कृतम्","sa","san","san"],["Church Slavic, Church Slavonic, Old Church Slavonic, Old Slavonic, Old Bulgarian","ѩзыкъ словѣньскъ","cu","chu","chu"],["Pali","पाऴि","pi","pli","pli"],["Avestan","avesta","ae","ave","ave"],["Latin","latine, lingua latina","la","lat","lat"],["Armenian","Հայերեն","hy","hye","arm"],["Swati","SiSwati","ss","ssw","ssw"],["Tibetan","བོད་ཡིག","bo","bod","tib"],["South Ndebele","isiNdebele","nr","nbl","nbl"],["Slovene","Slovenski Jezik, Slovenščina","sl","slv","slv"],["Oriya","ଓଡ଼ିଆ","or","ori","ori"],["North Ndebele","isiNdebele","nd","nde","nde"],["Nauru","Dorerin Naoero","na","nau","nau"],["Maori","te reo Māori","mi","mri","mao"],["Marathi","मराठी","mr","mar","mar"],["Luba-Katanga","Kiluba","lu","lub","lub"],["Rundi","Ikirundi","rn","run","run"],["Central Khmer","ខ្មែរ, ខេមរភាសា, ភាសាខ្មែរ","km","khm","khm"],["Western Frisian","Frysk","fy","fry","fry"],["Bengali","বাংলা","bn","ben","ben"],["Avaric","авар мацӀ, магӀарул мацӀ","av","ava","ava"],["Abkhazian","аҧсуа бызшәа, аҧсшәа","ab","abk","abk"],["Afar","Afaraf","aa","aar","aar"],["Afrikaans","Afrikaans","af","afr","afr"],["Amharic","አማርኛ","am","amh","amh"],["Aragonese","aragonés","an","arg","arg"],["Assamese","অসমীয়া","as","asm","asm"],["Bambara","bamanankan","bm","bam","bam"],["Bashkir","башҡорт теле","ba","bak","bak"],["Basque","euskara, euskera","eu","eus","baq"],["Belarusian","беларуская мова","be","bel","bel"],["Bosnian","bosanski jezik","bs","bos","bos"],["Breton","brezhoneg","br","bre","bre"],["Bulgarian","български език","bg","bul","bul"],["Burmese","ဗမာစာ","my","mya","bur"],["Catalan, Valencian","català, valencià","ca","cat","cat"],["Chamorro","Chamoru","ch","cha","cha"],["Chechen","нохчийн мотт","ce","che","che"],["Chichewa, Chewa, Nyanja","chiCheŵa, chinyanja","ny","nya","nya"],["Chuvash","чӑваш чӗлхи","cv","chv","chv"],["Cornish","Kernewek","kw","cor","cor"],["Corsican","corsu, lingua corsa","co","cos","cos"],["Croatian","hrvatski jezik","hr","hrv","hrv"],["Czech","čeština, český jazyk","cs","ces","cze"],["Danish","dansk","da","dan","dan"],["Divehi, Dhivehi, Maldivian","ދިވެހި","dv","div","div"],["Dutch, Flemish","Nederlands, Vlaams","nl","nld","dut"],["Dzongkha","རྫོང་ཁ","dz","dzo","dzo"],["English","English","en","eng","eng"],["Ewe","Eʋegbe","ee","ewe","ewe"],["Faroese","føroyskt","fo","fao","fao"],["Fijian","vosa Vakaviti","fj","fij","fij"],["Finnish","suomi, suomen kieli","fi","fin","fin"],["French","français, langue française","fr","fra","fre"],["Galician","Galego","gl","glg","glg"],["Georgian","ქართული","ka","kat","geo"],["German","Deutsch","de","deu","ger"],["Greek (modern)","ελληνικά","el","ell","gre"],["Gujarati","ગુજરાતી","gu","guj","guj"],["Haitian, Haitian Creole","Kreyòl ayisyen","ht","hat","hat"],["Hausa","(Hausa) هَوُسَ","ha","hau","hau"],["Herero","Otjiherero","hz","her","her"],["Hindi","हिन्दी, हिंदी","hi","hin","hin"],["Hiri Motu","Hiri Motu","ho","hmo","hmo"],["Hungarian","magyar","hu","hun","hun"],["Irish","Gaeilge","ga","gle","gle"],["Igbo","Asụsụ Igbo","ig","ibo","ibo"],["Icelandic","Íslenska","is","isl","ice"],["Italian","Italiano","it","ita","ita"],["Japanese","日本語 (にほんご)","ja","jpn","jpn"],["Javanese","ꦧꦱꦗꦮ, Basa Jawa","jv","jav","jav"],["Kalaallisut, Greenlandic","kalaallisut, kalaallit oqaasii","kl","kal","kal"],["Kannada","ಕನ್ನಡ","kn","kan","kan"],["Kashmiri","कश्मीरी, كشميري","ks","kas","kas"],["Kazakh","қазақ тілі","kk","kaz","kaz"],["Kikuyu, Gikuyu","Gĩkũyũ","ki","kik","kik"],["Kinyarwanda","Ikinyarwanda","rw","kin","kin"],["Kirghiz, Kyrgyz","Кыргызча, Кыргыз тили","ky","kir","kir"],["Korean","한국어","ko","kor","kor"],["Kuanyama, Kwanyama","Kuanyama","kj","kua","kua"],["Luxembourgish, Letzeburgesch","Lëtzebuergesch","lb","ltz","ltz"],["Ganda","Luganda","lg","lug","lug"],["Limburgan, Limburger, Limburgish","Limburgs","li","lim","lim"],["Lingala","Lingála","ln","lin","lin"],["Lao","ພາສາລາວ","lo","lao","lao"],["Lithuanian","lietuvių kalba","lt","lit","lit"],["Manx","Gaelg, Gailck","gv","glv","glv"],["Macedonian","македонски јазик","mk","mkd","mac"],["Malayalam","മലയാളം","ml","mal","mal"],["Maltese","Malti","mt","mlt","mlt"],["Marshallese","Kajin M̧ajeļ","mh","mah","mah"],["Navajo, Navaho","Diné bizaad","nv","nav","nav"],["Nepali","नेपाली","ne","nep","nep"],["Ndonga","Owambo","ng","ndo","ndo"],["Occitan","occitan, lenga d'òc","oc","oci","oci"],["Ossetian, Ossetic","ирон æвзаг","os","oss","oss"],["Panjabi, Punjabi","ਪੰਜਾਬੀ","pa","pan","pan"],["Polish","język polski, polszczyzna","pl","pol","pol"],["Portuguese","Português","pt","por","por"],["Romansh","Rumantsch Grischun","rm","roh","roh"],["Russian","русский","ru","rus","rus"],["Sindhi","सिन्धी, سنڌي، سندھی","sd","snd","snd"],["Northern Sami","Davvisámegiella","se","sme","sme"],["Samoan","gagana fa'a Samoa","sm","smo","smo"],["Sango","yângâ tî sängö","sg","sag","sag"],["Gaelic, Scottish Gaelic","Gàidhlig","gd","gla","gla"],["Shona","chiShona","sn","sna","sna"],["Sinhala, Sinhalese","සිංහල","si","sin","sin"],["Slovak","Slovenčina, Slovenský Jazyk","sk","slk","slo"],["Somali","Soomaaliga, af Soomaali","so","som","som"],["Southern Sotho","Sesotho","st","sot","sot"],["Spanish, Castilian","Español","es","spa","spa"],["Sundanese","Basa Sunda","su","sun","sun"],["Swedish","Svenska","sv","swe","swe"],["Tamil","தமிழ்","ta","tam","tam"],["Telugu","తెలుగు","te","tel","tel"],["Tajik","тоҷикӣ, toçikī, تاجیکی","tg","tgk","tgk"],["Thai","ไทย","th","tha","tha"],["Tigrinya","ትግርኛ","ti","tir","tir"],["Turkmen","Türkmen, Түркмен","tk","tuk","tuk"],["Tswana","Setswana","tn","tsn","tsn"],["Tongan (Tonga Islands)","Faka Tonga","to","ton","ton"],["Turkish","Türkçe","tr","tur","tur"],["Tsonga","Xitsonga","ts","tso","tso"],["Tatar","татар теле, tatar tele","tt","tat","tat"],["Uighur, Uyghur","ئۇيغۇرچە, Uyghurche","ug","uig","uig"],["Ukrainian","Українська","uk","ukr","ukr"],["Urdu","اردو","ur","urd","urd"],["Venda","Tshivenḓa","ve","ven","ven"],["Vietnamese","Tiếng Việt","vi","vie","vie"],["Walloon","Walon","wa","wln","wln"],["Welsh","Cymraeg","cy","cym","wel"],["Wolof","Wollof","wo","wol","wol"],["Xhosa","isiXhosa","xh","xho","xho"],["Yoruba","Yorùbá","yo","yor","yor"],["Zulu","isiZulu","zu","zul","zul"]].forEach(e=>{var t={name:e[0],nativeName:e[1],iso639_1:e[2],iso639_2T:e[3],iso639_2B:e[4]};a[e[2]]=i[e[3]]=o[e[4]]=t,r.push(t)});var s=r;function l(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return u(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)?u(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}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 i,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,i=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw i}}}}function u(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}var c={"zh-hans":"中文 (Zhōngwén)"};function h(e){if(!e)return null;if(e=e.toLocaleLowerCase(),c[e])return e;var t=d(e,["iso639_1"])||d(e,["iso639_2T"])||d(e,["iso639_2B","name","nativeName"]);return t?t.iso639_1:null}function f(e){if(!e)return null;if(e=e.toLocaleLowerCase(),c[e])return c[e];var t=d(e,["iso639_1"])||d(e,["iso639_2T"])||d(e,["iso639_2B","name","nativeName"]);return null!=t&&t.nativeName?t.nativeName.split(", ")[0]:null}function d(e,t){if(!e)return null;e=e.toLowerCase();var n,r=l(s);try{for(r.s();!(n=r.n()).done;){var a,i=n.value,o=l(t);try{for(o.s();!(a=o.n()).done;){var u;if(null!==(u=i[a.value])&&void 0!==u&&u.toLowerCase().split(", ").includes(e))return i}}catch(e){o.e(e)}finally{o.f()}}}catch(e){r.e(e)}finally{r.f()}return null}function v(){try{return!!window.localStorage}catch(e){return!1}}var g=-1!=location.toString().indexOf("_debugReadAloud=true")},9073:function(e,t,n){function r(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 a(e){var t=e.match(/\S+/g);return t?t.length:0}function i(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:o;return null==e?void 0:e.replace(/\{\{([^}]*?)\}\}/g,function(e,i){if(!i)return e;var o,s=function(e){if(Array.isArray(e))return e}(o=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)}(o)||function(e,t){if(e){if("string"==typeof e)return r(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)?r(e,t):void 0}}(o)||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.")}(),l=s[0],u=r(s).slice(1);if(!(l in n)&&!(l in t))return e;var c=l in n?n[l]:l in t?t[l]:null;return u.map(function(e){return a[e]}).reduce(function(e,t){return t(e)},c&&c.toString())})}n.d(t,{gT:function(){return i},rj:function(){return a}}),n(2675),n(9463),n(2259),n(3418),n(3792),n(2062),n(2712),n(4782),n(2010),n(6099),n(7495),n(8781),n(7764),n(1761),n(5440),n(2762),n(2953);var o={urlencode:encodeURIComponent}}},function(e){e(e.s=5372)}]);
|
|
3
3
|
//# sourceMappingURL=plugin.search.js.map
|