@internetarchive/bookreader 5.0.0-105 → 5.0.0-107
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BookReader/BookReader.js +1 -1
- package/BookReader/BookReader.js.map +1 -1
- package/BookReader/ia-bookreader-bundle.js +54 -60
- package/BookReader/ia-bookreader-bundle.js.map +1 -1
- package/BookReader/plugins/plugin.chapters.js +1 -4
- package/BookReader/plugins/plugin.chapters.js.map +1 -1
- package/package.json +12 -10
- package/src/BookReader/Navbar/Navbar.js +44 -15
- package/src/BookReader/utils.js +1 -1
- package/src/BookReader.js +1 -1
- package/src/css/icon_checkmark.js +9 -0
- package/src/css/sharedStyles.js +15 -0
- package/src/{BookNavigator → ia-bookreader}/downloads/downloads.js +1 -1
- package/src/ia-bookreader/ia-bookreader.js +513 -71
- package/src/{BookNavigator → ia-bookreader}/viewable-files.js +4 -1
- package/src/{BookNavigator → ia-bookreader}/visual-adjustments/visual-adjustments-provider.js +1 -2
- package/src/{BookNavigator → ia-bookreader}/visual-adjustments/visual-adjustments.js +4 -14
- package/src/{BookNavigator → plugins}/bookmarks/bookmark-button.js +1 -1
- package/src/{BookNavigator → plugins}/bookmarks/bookmark-edit.js +41 -28
- package/src/{BookNavigator → plugins}/bookmarks/bookmarks-list.js +46 -46
- package/src/{BookNavigator → plugins}/bookmarks/bookmarks-loginCTA.js +1 -1
- package/src/{BookNavigator → plugins}/bookmarks/bookmarks-provider.js +1 -1
- package/src/{BookNavigator → plugins}/bookmarks/ia-bookmarks.js +2 -2
- package/src/{BookNavigator → plugins}/search/search-results.js +14 -20
- package/src/util/lit.js +10 -0
- package/src/BookNavigator/assets/ia-logo.js +0 -17
- package/src/BookNavigator/assets/icon_checkmark.js +0 -6
- package/src/BookNavigator/assets/icon_close.js +0 -3
- package/src/BookNavigator/book-navigator.js +0 -620
- /package/src/{BookNavigator/assets → css}/button-base.js +0 -0
- /package/src/{BookNavigator → ia-bookreader}/downloads/downloads-provider.js +0 -0
- /package/src/{BookNavigator → ia-bookreader}/sharing.js +0 -0
- /package/src/{BookNavigator/assets → plugins/bookmarks}/bookmark-colors.js +0 -0
- /package/src/{BookNavigator → plugins/bookmarks}/delete-modal-actions.js +0 -0
- /package/src/{BookNavigator → plugins}/search/search-provider.js +0 -0
|
@@ -3,10 +3,7 @@
|
|
|
3
3
|
<svg
|
|
4
4
|
viewBox="0 0 24 24"
|
|
5
5
|
xmlns="http://www.w3.org/2000/svg"
|
|
6
|
-
aria-labelledby="tocTitleID tocDescID"
|
|
7
6
|
>
|
|
8
|
-
<title id="tocTitleID">Table of contents icon</title>
|
|
9
|
-
<desc id="tocDescID">An illustration of three text list items</desc>
|
|
10
7
|
<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>
|
|
11
8
|
</svg>
|
|
12
9
|
`;class s extends n.WF{static get styles(){return n.AH`
|
|
@@ -22,5 +19,5 @@
|
|
|
22
19
|
.stroke-color {
|
|
23
20
|
stroke: var(--iconStrokeColor);
|
|
24
21
|
}
|
|
25
|
-
`}render(){return c}}customElements.define("ia-icon-toc",s);var l,u,f,p,d,h,y=r(1041),v=r(9073),m=r(1669);function b(e){return b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},b(e)}function g(){g=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var o=t.placement;if(t.kind===n&&("static"===o||"prototype"===o)){var i="static"===o?e:r;this.defineClassElement(i,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],o={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,o)},this),e.forEach(function(e){if(!E(e))return r.push(e);var t=this.decorateElement(e,o);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var i=this.decorateConstructor(r,t);return n.push.apply(n,i.finishers),i.finishers=n,i},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],o=e.decorators,i=o.length-1;i>=0;i--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var c=this.fromElementDescriptor(e),s=this.toElementFinisherExtras((0,o[i])(c)||c);e=s.element,this.addElementPlacement(e,t),s.finisher&&n.push(s.finisher);var l=s.extras;if(l){for(var u=0;u<l.length;u++)this.addElementPlacement(l[u],t);r.push.apply(r,l)}}return{element:e,finishers:n,extras:r}},decorateConstructor:function(e,t){for(var r=[],n=t.length-1;n>=0;n--){var o=this.fromClassDescriptor(e),i=this.toClassDescriptor((0,t[n])(o)||o);if(void 0!==i.finisher&&r.push(i.finisher),void 0!==i.elements){e=i.elements;for(var a=0;a<e.length-1;a++)for(var c=a+1;c<e.length;c++)if(e[a].key===e[c].key&&e[a].placement===e[c].placement)throw new TypeError("Duplicated element ("+e[a].key+")")}}return{elements:e,finishers:r}},fromElementDescriptor:function(e){var t={kind:e.kind,key:e.key,placement:e.placement,descriptor:e.descriptor};return Object.defineProperty(t,Symbol.toStringTag,{value:"Descriptor",configurable:!0}),"field"===e.kind&&(t.initializer=e.initializer),t},toElementDescriptors:function(e){if(void 0!==e)return(t=e,function(e){if(Array.isArray(e))return e}(t)||j(t)||C(t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map(function(e){var t=this.toElementDescriptor(e);return this.disallowProperty(e,"finisher","An element descriptor"),this.disallowProperty(e,"extras","An element descriptor"),t},this);var t},toElementDescriptor:function(e){var t=e.kind+"";if("method"!==t&&"field"!==t)throw new TypeError('An element descriptor\'s .kind property must be either "method" or "field", but a decorator created an element descriptor with .kind "'+t+'"');var r=U(e.key),n=e.placement+"";if("static"!==n&&"prototype"!==n&&"own"!==n)throw new TypeError('An element descriptor\'s .placement property must be one of "static", "prototype" or "own", but a decorator created an element descriptor with .placement "'+n+'"');var o=e.descriptor;this.disallowProperty(e,"elements","An element descriptor");var i={kind:t,key:r,placement:n,descriptor:Object.assign({},o)};return"field"!==t?this.disallowProperty(e,"initializer","A method descriptor"):(this.disallowProperty(o,"get","The property descriptor of a field descriptor"),this.disallowProperty(o,"set","The property descriptor of a field descriptor"),this.disallowProperty(o,"value","The property descriptor of a field descriptor"),i.initializer=e.initializer),i},toElementFinisherExtras:function(e){return{element:this.toElementDescriptor(e),finisher:x(e,"finisher"),extras:this.toElementDescriptors(e.extras)}},fromClassDescriptor:function(e){var t={kind:"class",elements:e.map(this.fromElementDescriptor,this)};return Object.defineProperty(t,Symbol.toStringTag,{value:"Descriptor",configurable:!0}),t},toClassDescriptor:function(e){var t=e.kind+"";if("class"!==t)throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator created a class descriptor with .kind "'+t+'"');this.disallowProperty(e,"key","A class descriptor"),this.disallowProperty(e,"placement","A class descriptor"),this.disallowProperty(e,"descriptor","A class descriptor"),this.disallowProperty(e,"initializer","A class descriptor"),this.disallowProperty(e,"extras","A class descriptor");var r=x(e,"finisher");return{elements:this.toElementDescriptors(e.elements),finisher:r}},runClassFinishers:function(e,t){for(var r=0;r<t.length;r++){var n=(0,t[r])(e);if(void 0!==n){if("function"!=typeof n)throw new TypeError("Finishers must return a constructor.");e=n}}return e},disallowProperty:function(e,t,r){if(void 0!==e[t])throw new TypeError(r+" can't have a ."+t+" property.")}};return e}function w(e){var t,r=U(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function k(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function E(e){return e.decorators&&e.decorators.length}function P(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function x(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function C(e,t){if(e){if("string"==typeof e)return O(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?O(e,t):void 0}}function j(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function _(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function T(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var s=n&&n.prototype instanceof c?n:c,l=Object.create(s.prototype);return S(l,"_invoke",function(r,n,o){var i,c,s,l=0,u=o||[],f=!1,p={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,r){return i=t,c=0,s=e,p.n=r,a}};function d(r,n){for(c=r,s=n,t=0;!f&&l&&!o&&t<u.length;t++){var o,i=u[t],d=p.p,h=i[2];r>3?(o=h===n)&&(s=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=d&&((o=r<2&&d<i[1])?(c=0,p.v=n,p.n=i[1]):d<h&&(o=r<3||i[0]>n||n>h)&&(i[4]=r,i[5]=n,p.n=h,c=0))}if(o||r>1)return a;throw f=!0,n}return function(o,u,h){if(l>1)throw TypeError("Generator is already running");for(f&&1===u&&d(u,h),c=u,s=h;(t=c<2?e:s)||!f;){i||(c?c<3?(c>1&&(p.n=-1),d(c,s)):p.n=s:p.v=s);try{if(l=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,s)))throw TypeError("iterator result is not an object");if(!t.done)return t;s=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(s=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=p.n<0)?s:r.call(n,p))!==a)break}catch(t){i=e,c=1,s=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function c(){}function s(){}function l(){}t=Object.getPrototypeOf;var u=[][n]?t(t([][n]())):(S(t={},n,function(){return this}),t),f=l.prototype=c.prototype=Object.create(u);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,S(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return s.prototype=l,S(f,"constructor",l),S(l,"constructor",s),s.displayName="GeneratorFunction",S(l,o,"GeneratorFunction"),S(f),S(f,o,"Generator"),S(f,n,function(){return this}),S(f,"toString",function(){return"[object Generator]"}),(T=function(){return{w:i,m:p}})()}function S(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}S=function(e,t,r,n){function i(t,r){S(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},S(e,t,r,n)}function I(e,t,r,n,o,i,a){try{var c=e[i](a),s=c.value}catch(e){return void r(e)}c.done?t(s):Promise.resolve(s).then(n,o)}function A(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){I(i,n,o,a,c,"next",e)}function c(e){I(i,n,o,a,c,"throw",e)}a(void 0)})}}function R(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function D(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,U(n.key),n)}}function B(e,t,r){return t&&D(e.prototype,t),r&&D(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function L(e,t,r){return t=M(t),function(e,t){if(t&&("object"==b(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,z()?Reflect.construct(t,r||[],M(e).constructor):t.apply(e,r))}function z(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(z=function(){return!!e})()}function F(e,t,r,n){var o=H(M(1&n?e.prototype:e),t,r);return 2&n&&"function"==typeof o?function(e){return o.apply(r,e)}:o}function H(){return H="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=M(e)););return e}(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(arguments.length<3?e:r):o.value}},H.apply(null,arguments)}function M(e){return M=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},M(e)}function q(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&G(e,t)}function G(e,t){return G=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},G(e,t)}function N(e,t,r){return(t=U(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function U(e){var t=function(e){if("object"!=b(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=b(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==b(t)?t:t+""}var W,$,J,Z,V,X,K,Q=window.BookReader,Y=function(e){function t(){var e;R(this,t);for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return N(e=L(this,t,[].concat(n)),"options",{enabled:!0,openLibraryHost:"https://openlibrary.org",openLibraryId:"",internetArchiveId:"",olHost:"https://openlibrary.org",bookId:"{{bookId}}"}),N(e,"_tocEntries",void 0),N(e,"_chaptersPanel",void 0),e}return q(t,e),B(t,[{key:"setup",value:function(e){F(t,"setup",this,3)([e]),this.options.internetArchiveId=this.options.internetArchiveId||this.options.bookId,this.options.openLibraryHost=this.options.openLibraryHost||this.options.olHost}},{key:"init",value:(o=A(T().m(function e(){var t,r,n,o,i=this;return T().w(function(e){for(;;)switch(e.n){case 0:if(this.options.enabled&&"embed"!==this.br.ui){e.n=1;break}return e.a(2);case 1:if(r=null,null===(t=this.br.options.table_of_contents)||void 0===t||!t.length){e.n=2;break}r=this.br.options.table_of_contents,e.n=4;break;case 2:return e.n=3,this.getOpenLibraryRecord();case 3:null!=(o=e.v)&&null!==(n=o.table_of_contents)&&void 0!==n&&n.length&&(r=o.table_of_contents);case 4:r&&(this._tocEntries=r.map(function(e){return Object.assign({},e,{pageIndex:"number"==typeof e.leaf?i.br.book.leafNumToIndex(e.leaf):e.pagenum?i.br.book.getPageIndex(e.pagenum):void 0})}),this._render(),this.br.bind(Q.eventNames.pageChanged,function(){return i._updateCurrent()}));case 5:return e.a(2)}},e,this)})),function(){return o.apply(this,arguments)})},{key:"_render",value:function(){var e=this;this.br.shell.menuProviders.chapters={id:"chapters",icon:(0,n.qy)(l||(l=_(['<ia-icon-toc aria-hidden="true" role="presentation" style="width: var(--iconWidth); height: var(--iconHeight);"></ia-icon-toc>']))),label:"Table of Contents",component:(0,n.qy)(u||(u=_(['<br-chapters-panel\n .contents="','"\n .jumpToPage="','"\n @connected="','"\n />'])),this._tocEntries,function(t){e._updateCurrent(t),e.br.jumpToIndex(t,{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=Q.util.cssPercentage(e.pageIndex,this.br.book.getNumLeafs()-1);m("<div></div>").append(m("<div />").text(n).append(m('<div class="BRchapterPage" />').text(this.br.book.getPageName(e.pageIndex)))).addClass("BRchapter").css({left:o}).appendTo(this.br.$(".BRnavline")).on("mouseenter",function(e){var t=e.currentTarget,n=t.querySelector("div"),o=n.getBoundingClientRect(),i=t.getBoundingClientRect(),a=2*parseInt(getComputedStyle(n).paddingLeft);o.x-a<0&&n.style.setProperty("transform","translateX(-".concat(i.left-a,"px)")),r.br.$(".BRsearch,.BRchapter").removeClass("front"),m(e.target).addClass("front")}).on("mouseleave",function(e){return m(e.target).removeClass("front")}).on("click",function(){r._updateCurrent(e.pageIndex),r.br.jumpToIndex(e.pageIndex,{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=A(T().m(function e(){var t,r,n,o,i,a;return T().w(function(e){for(;;)switch(e.n){case 0:if(t=(0,v.g)(this.options.openLibraryHost,this.br.options.vars),!this.options.openLibraryId){e.n=2;break}return r=(0,v.g)(this.options.openLibraryId,this.br.options.vars),e.n=1,m.ajax({url:"".concat(t,"/books/").concat(r,".json")});case 1:return e.a(2,e.v);case 2:if(!this.options.internetArchiveId){e.n=6;break}return o=(0,v.g)(this.options.internetArchiveId,this.br.options.vars),i="".concat(t,"/query.json?type=/type/edition&*=&"),e.n=3,m.ajax({url:i+new URLSearchParams({ocaid:o,limit:"1"})});case 3:if((a=e.v)&&a.length){e.n=5;break}return e.n=4,m.ajax({url:i+new URLSearchParams({source_records:"ia:".concat(o),limit:"1"})});case 4:a=e.v;case 5:return e.a(2,null===(n=a)||void 0===n?void 0:n[0]);case 6:return e.a(2,null)}},e,this)})),function(){return r.apply(this,arguments)})},{key:"_updateCurrent",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2==this.br.mode?Math.max.apply(Math,function(e){if(Array.isArray(e))return O(e)}(e=this.br.displayedIndices)||j(e)||C(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()):this.br.firstIndex,r=this._tocEntries.filter(function(e){return null!=e.pageIndex}).reverse(),n=r[r.findIndex(function(e){return e.pageIndex<=t})];this._chaptersPanel&&(this._chaptersPanel.currentChapter=n)}}]);var r,o}(y.S);null==Q||Q.registerPlugin("chapters",Y),W=[(0,o.EM)("br-chapters-panel")],$=n.WF,V=g(),J=function(e){V.initializeInstanceElements(e,K.elements)},X={F:Z=function(e){function t(e){var r;return R(this,t),r=L(this,t),J(r),r.contents=e,r}return q(t,e),B(t)}($),d:[{kind:"field",decorators:[(0,o.MZ)({type:Array})],key:"contents",value:function(){return[]}},{kind:"field",decorators:[(0,o.MZ)({type:Object})],key:"currentChapter",value:function(){return{}}},{kind:"field",key:"jumpToPage",value:function(){return function(){}}},{kind:"method",key:"render",value:function(){var e=this;return(0,n.qy)(f||(f=_(["\n <ol>\n ","\n </ol>\n "])),this.contents.map(function(t){return e.renderTOCEntry(t)}))}},{kind:"method",key:"renderTOCEntry",value:function(e){var t=this,r=[e.label,e.title].filter(function(e){return e}).join(" "),o=null!=e.pageIndex;return(0,n.qy)(p||(p=_(['\n <li\n class="\n BRtable-contents-el\n ',"\n ",'\n "\n style="','"\n data-event-click-tracking="','"\n @click="','"\n >\n ',"\n ","\n </li>"])),o?"clickable":"",e==this.currentChapter?"current":"",(0,a.W)({marginLeft:10*(e.level-1)+"px"}),(0,i.J)(o?"BRTOCPanel|GoToChapter":void 0),function(){return t.jumpToPage(e.pageIndex)},r,e.pagenum?(0,n.qy)(d||(d=_(['\n <br />\n <span class="BRTOCElementPage">Page ',"</span>\n "])),e.pagenum):n.s6)}},{kind:"method",key:"connectedCallback",value:function(){F(Z,"connectedCallback",this,3)([]),this.dispatchEvent(new CustomEvent("connected"))}},{kind:"method",key:"updated",value:function(e){var t;e.has("currentChapter")&&(null===(t=this.shadowRoot.querySelector("li.current"))||void 0===t||t.scrollIntoView({block:"nearest",behavior:"smooth"}))}},{kind:"get",static:!0,key:"styles",value:function(){return(0,n.AH)(h||(h=_(["\n ol {\n padding: 0;\n margin: 0;\n margin-right: 5px;\n }\n li {\n padding: 10px;\n overflow: hidden;\n border-radius: 4px;\n }\n li.clickable {\n font-weight: normal;\n cursor: pointer;\n transition: background-color 0.2s;\n }\n\n li.clickable:not(.current):hover {\n background-color: rgba(255,255,255, 0.05);\n }\n\n li.current {\n background-color: rgba(255,255,255,0.9);\n color: #333;\n }\n\n .BRTOCElementPage {\n font-size: 0.85em;\n opacity: .8;\n }"])))}}]},K=V.decorateClass(function(e){for(var t=[],r=function(e){return"method"===e.kind&&e.key===i.key&&e.placement===i.placement},n=0;n<e.length;n++){var o,i=e[n];if("method"===i.kind&&(o=t.find(r)))if(P(i.descriptor)||P(o.descriptor)){if(E(i)||E(o))throw new ReferenceError("Duplicated methods ("+i.key+") can't be decorated.");o.descriptor=i.descriptor}else{if(E(i)){if(E(o))throw new ReferenceError("Decorators can't be placed on different accessors with for the same property ("+i.key+").");o.decorators=i.decorators}k(i,o)}else t.push(i)}return t}(X.d.map(w)),W),V.initializeClassElements(X.F,K.elements),V.runClassFinishers(X.F,K.finishers)},2762:function(e,t,r){var n=r(6518),o=r(3802).trim;n({target:"String",proto:!0,forced:r(706)("trim")},{trim:function(){return o(this)}})},4535:function(e,t,r){r.d(t,{J:function(){return o}});var n=r(6681),o=function(e){return null!=e?e:n.s6}},9073:function(e,t,r){function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function o(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:i;return null==e?void 0:e.replace(/\{\{([^}]*?)\}\}/g,function(e,i){if(!i)return e;var a,c=function(e){if(Array.isArray(e))return e}(a=i.split("|").map(function(e){return e.trim()}))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(a)||function(e,t){if(e){if("string"==typeof e)return n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}(a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),s=c[0],l=n(c).slice(1);if(!(s in r)&&!(s in t))return e;var u=s in r?r[s]:s in t?t[s]:null;return l.map(function(e){return o[e]}).reduce(function(e,t){return t(e)},u&&u.toString())})}r.d(t,{g:function(){return o}}),r(2675),r(9463),r(2259),r(3418),r(3792),r(2062),r(2712),r(4782),r(2010),r(6099),r(7495),r(8781),r(7764),r(5440),r(2762),r(2953);var i={urlencode:encodeURIComponent}}},function(e){e(e.s=2117)}]);
|
|
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(1669);function b(e){return b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},b(e)}function g(){g=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var o=t.placement;if(t.kind===n&&("static"===o||"prototype"===o)){var i="static"===o?e:r;this.defineClassElement(i,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],o={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,o)},this),e.forEach(function(e){if(!E(e))return r.push(e);var t=this.decorateElement(e,o);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var i=this.decorateConstructor(r,t);return n.push.apply(n,i.finishers),i.finishers=n,i},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],o=e.decorators,i=o.length-1;i>=0;i--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var c=this.fromElementDescriptor(e),s=this.toElementFinisherExtras((0,o[i])(c)||c);e=s.element,this.addElementPlacement(e,t),s.finisher&&n.push(s.finisher);var 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)||j(t)||C(t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map(function(e){var t=this.toElementDescriptor(e);return this.disallowProperty(e,"finisher","An element descriptor"),this.disallowProperty(e,"extras","An element descriptor"),t},this);var t},toElementDescriptor:function(e){var t=e.kind+"";if("method"!==t&&"field"!==t)throw new TypeError('An element descriptor\'s .kind property must be either "method" or "field", but a decorator created an element descriptor with .kind "'+t+'"');var r=U(e.key),n=e.placement+"";if("static"!==n&&"prototype"!==n&&"own"!==n)throw new TypeError('An element descriptor\'s .placement property must be one of "static", "prototype" or "own", but a decorator created an element descriptor with .placement "'+n+'"');var o=e.descriptor;this.disallowProperty(e,"elements","An element descriptor");var i={kind:t,key:r,placement:n,descriptor:Object.assign({},o)};return"field"!==t?this.disallowProperty(e,"initializer","A method descriptor"):(this.disallowProperty(o,"get","The property descriptor of a field descriptor"),this.disallowProperty(o,"set","The property descriptor of a field descriptor"),this.disallowProperty(o,"value","The property descriptor of a field descriptor"),i.initializer=e.initializer),i},toElementFinisherExtras:function(e){return{element:this.toElementDescriptor(e),finisher:x(e,"finisher"),extras:this.toElementDescriptors(e.extras)}},fromClassDescriptor:function(e){var t={kind:"class",elements:e.map(this.fromElementDescriptor,this)};return Object.defineProperty(t,Symbol.toStringTag,{value:"Descriptor",configurable:!0}),t},toClassDescriptor:function(e){var t=e.kind+"";if("class"!==t)throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator created a class descriptor with .kind "'+t+'"');this.disallowProperty(e,"key","A class descriptor"),this.disallowProperty(e,"placement","A class descriptor"),this.disallowProperty(e,"descriptor","A class descriptor"),this.disallowProperty(e,"initializer","A class descriptor"),this.disallowProperty(e,"extras","A class descriptor");var r=x(e,"finisher");return{elements:this.toElementDescriptors(e.elements),finisher:r}},runClassFinishers:function(e,t){for(var r=0;r<t.length;r++){var n=(0,t[r])(e);if(void 0!==n){if("function"!=typeof n)throw new TypeError("Finishers must return a constructor.");e=n}}return e},disallowProperty:function(e,t,r){if(void 0!==e[t])throw new TypeError(r+" can't have a ."+t+" property.")}};return e}function w(e){var t,r=U(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function k(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function E(e){return e.decorators&&e.decorators.length}function P(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function x(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function C(e,t){if(e){if("string"==typeof e)return O(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?O(e,t):void 0}}function j(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function _(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function 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 T(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]())):(T(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,T(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return s.prototype=u,T(f,"constructor",u),T(u,"constructor",s),s.displayName="GeneratorFunction",T(u,o,"GeneratorFunction"),T(f),T(f,o,"Generator"),T(f,n,function(){return this}),T(f,"toString",function(){return"[object Generator]"}),(S=function(){return{w:i,m:p}})()}function T(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}T=function(e,t,r,n){function i(t,r){T(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))},T(e,t,r,n)}function I(e,t,r,n,o,i,a){try{var c=e[i](a),s=c.value}catch(e){return void r(e)}c.done?t(s):Promise.resolve(s).then(n,o)}function A(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){I(i,n,o,a,c,"next",e)}function c(e){I(i,n,o,a,c,"throw",e)}a(void 0)})}}function R(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function D(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,U(n.key),n)}}function B(e,t,r){return t&&D(e.prototype,t),r&&D(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function L(e,t,r){return t=M(t),function(e,t){if(t&&("object"==b(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,z()?Reflect.construct(t,r||[],M(e).constructor):t.apply(e,r))}function z(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(z=function(){return!!e})()}function F(e,t,r,n){var o=H(M(1&n?e.prototype:e),t,r);return 2&n&&"function"==typeof o?function(e){return o.apply(r,e)}:o}function H(){return H="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=M(e)););return e}(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(arguments.length<3?e:r):o.value}},H.apply(null,arguments)}function M(e){return M=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},M(e)}function q(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&G(e,t)}function G(e,t){return G=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},G(e,t)}function N(e,t,r){return(t=U(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function U(e){var t=function(e){if("object"!=b(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=b(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==b(t)?t:t+""}var W,$,J,Z,V,X,K,Q=window.BookReader,Y=function(e){function t(){var e;R(this,t);for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return N(e=L(this,t,[].concat(n)),"options",{enabled:!0,openLibraryHost:"https://openlibrary.org",openLibraryId:"",internetArchiveId:"",olHost:"https://openlibrary.org",bookId:"{{bookId}}"}),N(e,"_tocEntries",void 0),N(e,"_chaptersPanel",void 0),e}return q(t,e),B(t,[{key:"setup",value:function(e){F(t,"setup",this,3)([e]),this.options.internetArchiveId=this.options.internetArchiveId||this.options.bookId,this.options.openLibraryHost=this.options.openLibraryHost||this.options.olHost}},{key:"init",value:(o=A(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:r&&(this._tocEntries=r.map(function(e){return Object.assign({},e,{pageIndex:"number"==typeof e.leaf?i.br.book.leafNumToIndex(e.leaf):e.pagenum?i.br.book.getPageIndex(e.pagenum):void 0})}),this._render(),this.br.bind(Q.eventNames.pageChanged,function(){return i._updateCurrent()}));case 5:return e.a(2)}},e,this)})),function(){return o.apply(this,arguments)})},{key:"_render",value:function(){var e=this;this.br.shell.menuProviders.chapters={id:"chapters",icon:(0,n.qy)(u||(u=_(['<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=_(['<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=Q.util.cssPercentage(e.pageIndex,this.br.book.getNumLeafs()-1);m("<div></div>").append(m("<div />").text(n).append(m('<div class="BRchapterPage" />').text(this.br.book.getPageName(e.pageIndex)))).addClass("BRchapter").css({left:o}).appendTo(this.br.$(".BRnavline")).on("mouseenter",function(e){var t=e.currentTarget,n=t.querySelector("div"),o=n.getBoundingClientRect(),i=t.getBoundingClientRect(),a=2*parseInt(getComputedStyle(n).paddingLeft);o.x-a<0&&n.style.setProperty("transform","translateX(-".concat(i.left-a,"px)")),r.br.$(".BRsearch,.BRchapter").removeClass("front"),m(e.target).addClass("front")}).on("mouseleave",function(e){return m(e.target).removeClass("front")}).on("click",function(){r._updateCurrent(e.pageIndex),r.br.jumpToIndex(e.pageIndex,{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=A(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.g)(this.options.openLibraryHost,this.br.options.vars),!this.options.openLibraryId){e.n=2;break}return r=(0,v.g)(this.options.openLibraryId,this.br.options.vars),e.n=1,m.ajax({url:"".concat(t,"/books/").concat(r,".json")});case 1:return e.a(2,e.v);case 2:if(!this.options.internetArchiveId){e.n=6;break}return o=(0,v.g)(this.options.internetArchiveId,this.br.options.vars),i="".concat(t,"/query.json?type=/type/edition&*=&"),e.n=3,m.ajax({url:i+new URLSearchParams({ocaid:o,limit:"1"})});case 3:if((a=e.v)&&a.length){e.n=5;break}return e.n=4,m.ajax({url:i+new URLSearchParams({source_records:"ia:".concat(o),limit:"1"})});case 4:a=e.v;case 5:return e.a(2,null===(n=a)||void 0===n?void 0:n[0]);case 6:return e.a(2,null)}},e,this)})),function(){return r.apply(this,arguments)})},{key:"_updateCurrent",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2==this.br.mode?Math.max.apply(Math,function(e){if(Array.isArray(e))return O(e)}(e=this.br.displayedIndices)||j(e)||C(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()):this.br.firstIndex,r=this._tocEntries.filter(function(e){return null!=e.pageIndex}).reverse(),n=r[r.findIndex(function(e){return e.pageIndex<=t})];this._chaptersPanel&&(this._chaptersPanel.currentChapter=n)}}]);var r,o}(y.S);null==Q||Q.registerPlugin("chapters",Y),W=[(0,o.EM)("br-chapters-panel")],$=n.WF,V=g(),J=function(e){V.initializeInstanceElements(e,K.elements)},X={F:Z=function(e){function t(e){var r;return R(this,t),r=L(this,t),J(r),r.contents=e,r}return q(t,e),B(t)}($),d:[{kind:"field",decorators:[(0,o.MZ)({type:Array})],key:"contents",value:function(){return[]}},{kind:"field",decorators:[(0,o.MZ)({type:Object})],key:"currentChapter",value:function(){return{}}},{kind:"field",key:"jumpToPage",value:function(){return function(){}}},{kind:"method",key:"render",value:function(){var e=this;return(0,n.qy)(f||(f=_(["\n <ol>\n ","\n </ol>\n "])),this.contents.map(function(t){return e.renderTOCEntry(t)}))}},{kind:"method",key:"renderTOCEntry",value:function(e){var t=this,r=[e.label,e.title].filter(function(e){return e}).join(" "),o=null!=e.pageIndex;return(0,n.qy)(p||(p=_(['\n <li\n class="\n BRtable-contents-el\n ',"\n ",'\n "\n style="','"\n data-event-click-tracking="','"\n @click="','"\n >\n ',"\n ","\n </li>"])),o?"clickable":"",e==this.currentChapter?"current":"",(0,a.W)({marginLeft:10*(e.level-1)+"px"}),(0,i.J)(o?"BRTOCPanel|GoToChapter":void 0),function(){return t.jumpToPage(e.pageIndex)},r,e.pagenum?(0,n.qy)(d||(d=_(['\n <br />\n <span class="BRTOCElementPage">Page ',"</span>\n "])),e.pagenum):n.s6)}},{kind:"method",key:"connectedCallback",value:function(){F(Z,"connectedCallback",this,3)([]),this.dispatchEvent(new CustomEvent("connected"))}},{kind:"method",key:"updated",value:function(e){var t;e.has("currentChapter")&&(null===(t=this.shadowRoot.querySelector("li.current"))||void 0===t||t.scrollIntoView({block:"nearest",behavior:"smooth"}))}},{kind:"get",static:!0,key:"styles",value:function(){return(0,n.AH)(h||(h=_(["\n ol {\n padding: 0;\n margin: 0;\n margin-right: 5px;\n }\n li {\n padding: 10px;\n overflow: hidden;\n border-radius: 4px;\n }\n li.clickable {\n font-weight: normal;\n cursor: pointer;\n transition: background-color 0.2s;\n }\n\n li.clickable:not(.current):hover {\n background-color: rgba(255,255,255, 0.05);\n }\n\n li.current {\n background-color: rgba(255,255,255,0.9);\n color: #333;\n }\n\n .BRTOCElementPage {\n font-size: 0.85em;\n opacity: .8;\n }"])))}}]},K=V.decorateClass(function(e){for(var t=[],r=function(e){return"method"===e.kind&&e.key===i.key&&e.placement===i.placement},n=0;n<e.length;n++){var o,i=e[n];if("method"===i.kind&&(o=t.find(r)))if(P(i.descriptor)||P(o.descriptor)){if(E(i)||E(o))throw new ReferenceError("Duplicated methods ("+i.key+") can't be decorated.");o.descriptor=i.descriptor}else{if(E(i)){if(E(o))throw new ReferenceError("Decorators can't be placed on different accessors with for the same property ("+i.key+").");o.decorators=i.decorators}k(i,o)}else t.push(i)}return t}(X.d.map(w)),W),V.initializeClassElements(X.F,K.elements),V.runClassFinishers(X.F,K.finishers)},2762:function(e,t,r){var n=r(6518),o=r(3802).trim;n({target:"String",proto:!0,forced:r(706)("trim")},{trim:function(){return o(this)}})},4535:function(e,t,r){r.d(t,{J:function(){return o}});var n=r(6681),o=function(e){return null!=e?e:n.s6}},9073:function(e,t,r){function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function o(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:i;return null==e?void 0:e.replace(/\{\{([^}]*?)\}\}/g,function(e,i){if(!i)return e;var a,c=function(e){if(Array.isArray(e))return e}(a=i.split("|").map(function(e){return e.trim()}))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(a)||function(e,t){if(e){if("string"==typeof e)return n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}(a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),s=c[0],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,{g:function(){return o}}),r(2675),r(9463),r(2259),r(3418),r(3792),r(2062),r(2712),r(4782),r(2010),r(6099),r(7495),r(8781),r(7764),r(5440),r(2762),r(2953);var i={urlencode:encodeURIComponent}}},function(e){e(e.s=2117)}]);
|
|
26
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/./node_modules/core-js/internals/string-trim-forced.js","webpack://@internetarchive/bookreader/./src/BookReaderPlugin.js","webpack://@internetarchive/bookreader/./node_modules/@internetarchive/icon-toc/index.js","webpack://@internetarchive/bookreader/./node_modules/@internetarchive/icon-toc/icon-toc.js","webpack://@internetarchive/bookreader/./src/plugins/plugin.chapters.js","webpack://@internetarchive/bookreader/./node_modules/core-js/modules/es.string.trim.js","webpack://@internetarchive/bookreader/../src/directives/if-defined.ts","webpack://@internetarchive/bookreader/./src/util/strings.js"],"sourcesContent":["'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","// @ts-check\n/** @typedef {import(\"./BookReader.js\").default} BookReader */\n\n/**\n * @template TOptions\n */\nexport class BookReaderPlugin {\n /**\n * @param {BookReader} br\n */\n constructor(br) {\n /** @type {BookReader} */\n this.br = br;\n /** @type {TOptions} */\n this.options;\n }\n\n /**\n * @abstract\n * @param {TOptions} options\n **/\n setup(options) {\n this.options = Object.assign({}, this.options, options);\n }\n\n /** @abstract */\n init() {}\n\n /**\n * @abstract\n * @protected\n * @param {import (\"./BookReader/PageContainer.js\").PageContainer} pageContainer\n */\n _configurePageContainer(pageContainer) {\n }\n\n /**\n * @abstract\n * @protected\n * @param {JQuery<HTMLElement>} $toolbarElement\n */\n _configureToolbar($toolbarElement) {\n }\n\n /** @abstract @protected */\n _bindNavigationHandlers() {}\n\n /**\n * @param {JQuery<HTMLElement>} $navBar\n */\n extendNavBar($navBar) {}\n}\n","import { html } from 'lit';\n\nexport default html`\n<svg\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-labelledby=\"tocTitleID tocDescID\"\n>\n <title id=\"tocTitleID\">Table of contents icon</title>\n <desc id=\"tocDescID\">An illustration of three text list items</desc>\n <g class=\"fill-color\" fill-rule=\"evenodd\"><rect height=\"3\" rx=\"1.5\" width=\"18\" x=\"6\"/><rect height=\"3\" rx=\"1.5\" width=\"18\" x=\"6\" y=\"21\"/><rect height=\"3\" rx=\"1.5\" width=\"18\" x=\"6\" y=\"14\"/><rect height=\"3\" rx=\"1.5\" width=\"18\" x=\"6\" y=\"7\"/><rect height=\"3\" rx=\"1.5\" width=\"4\"/><rect height=\"3\" rx=\"1.5\" width=\"4\" y=\"21\"/><rect height=\"3\" rx=\"1.5\" width=\"4\" y=\"14\"/><rect height=\"3\" rx=\"1.5\" width=\"4\" y=\"7\"/></g>\n</svg>\n`;\n","import icon from './index.js';\nimport { css, LitElement } from 'lit';\n\nclass IAIconToc extends LitElement {\n static get styles() {\n return css`\n :host {\n width: var(--iconWidth, 'auto');\n height: var(--iconHeight, 'auto');\n }\n\n .fill-color {\n fill: var(--iconFillColor);\n }\n\n .stroke-color {\n stroke: var(--iconStrokeColor);\n }\n `;\n }\n\n render() {\n return icon;\n }\n}\n\ncustomElements.define('ia-icon-toc', IAIconToc);\n\nexport default IAIconToc;\n","// @ts-check\nimport { css, html, LitElement, nothing } from \"lit\";\nimport { customElement, property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport '@internetarchive/icon-toc/icon-toc.js';\nimport { BookReaderPlugin } from \"../BookReaderPlugin.js\";\nimport { applyVariables } from \"../util/strings.js\";\n/** @typedef {import('@/src/BookReader/BookModel.js').PageIndex} PageIndex */\n/** @typedef {import('@/src/BookReader/BookModel.js').PageString} PageString */\n/** @typedef {import('@/src/BookReader/BookModel.js').LeafNum} LeafNum */\n\n// @ts-ignore\nconst BookReader = /** @type {typeof import('@/src/BookReader.js').default} */(window.BookReader);\n\n/**\n * Plugin for chapter markers in BookReader. Fetches from openlibrary.org\n * Could be forked, or extended to alter behavior\n */\nexport class ChaptersPlugin extends BookReaderPlugin {\n options = {\n enabled: true,\n\n /**\n * The Open Library host to fetch/query Open Library.\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n openLibraryHost: 'https://openlibrary.org',\n\n /**\n * The Open Library edition to fetch the table of contents from.\n * E.g. 'OL12345M'\n *\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n openLibraryId: '',\n\n /**\n * The Internet Archive identifier to fetch the Open Library table\n * of contents from.\n * E.g. 'goody'\n *\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n internetArchiveId: '',\n\n /**\n * @deprecated\n * Old name for openLibraryHost\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n olHost: 'https://openlibrary.org',\n\n /**\n * @deprecated\n * Old name for internetArchiveId\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n bookId: '{{bookId}}',\n }\n\n /** @type {TocEntry[]} */\n _tocEntries;\n\n /** @type {BRChaptersPanel} */\n _chaptersPanel;\n\n /** @override */\n setup(options) {\n super.setup(options);\n this.options.internetArchiveId = this.options.internetArchiveId || this.options.bookId;\n this.options.openLibraryHost = this.options.openLibraryHost || this.options.olHost;\n }\n\n /** @override Extend to call Open Library for TOC */\n async init() {\n if (!this.options.enabled || this.br.ui === 'embed') {\n return;\n }\n\n let rawTableOfContents = null;\n // Prefer explicit TOC if specified\n if (this.br.options.table_of_contents?.length) {\n rawTableOfContents = this.br.options.table_of_contents;\n } else {\n // Otherwise fetch from OL\n const olEdition = await this.getOpenLibraryRecord();\n if (olEdition?.table_of_contents?.length) {\n rawTableOfContents = olEdition.table_of_contents;\n }\n }\n\n if (rawTableOfContents) {\n this._tocEntries = rawTableOfContents\n .map(rawTOCEntry => (Object.assign({}, rawTOCEntry, {\n pageIndex: (\n typeof(rawTOCEntry.leaf) == 'number' ? this.br.book.leafNumToIndex(rawTOCEntry.leaf) :\n rawTOCEntry.pagenum ? this.br.book.getPageIndex(rawTOCEntry.pagenum) :\n undefined\n ),\n })));\n this._render();\n this.br.bind(BookReader.eventNames.pageChanged, () => this._updateCurrent());\n }\n }\n\n /**\n * Update the table of contents based on array of TOC entries.\n */\n _render() {\n this.br.shell.menuProviders['chapters'] = {\n id: 'chapters',\n icon: html`<ia-icon-toc aria-hidden=\"true\" role=\"presentation\" style=\"width: var(--iconWidth); height: var(--iconHeight);\"></ia-icon-toc>`,\n label: 'Table of Contents',\n component: html`<br-chapters-panel\n .contents=\"${this._tocEntries}\"\n .jumpToPage=\"${(pageIndex) => {\n this._updateCurrent(pageIndex);\n this.br.jumpToIndex(pageIndex, { 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","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {nothing} from '../lit-html.js';\n\n/**\n * For AttributeParts, sets the attribute if the value is defined and removes\n * the attribute if the value is undefined.\n *\n * For other part types, this directive is a no-op.\n */\nexport const ifDefined = <T>(value: T) => value ?? nothing;\n","/**\n * @typedef {String} StringWithVars\n * A template string with {{foo}} style variables\n * Also supports filters, like {{bookPath|urlencode}} (See APPLY_FILTERS for the\n * supported list of filters)\n **/\n\n/**\n * @param {StringWithVars|String} template\n * @param { {[varName: string]: { toString: () => string} } } vars\n * @param { {[varName: string]: { toString: () => string} } } [overrides]\n * @returns {StringWithVars|string}\n */\nexport function applyVariables(template, vars, overrides = {}, possibleFilters = APPLY_FILTERS) {\n return template?.replace(/\\{\\{([^}]*?)\\}\\}/g, ($0, $1) => {\n if (!$1) return $0;\n /** @type {string} */\n const expression = $1;\n const [varName, ...filterNames] = expression.split('|').map(x => x.trim());\n const defined = varName in overrides || varName in vars;\n\n // If it's not defined, don't expand it at all\n if (!defined) return $0;\n\n const value = varName in overrides ? overrides[varName]\n : varName in vars ? vars[varName] : null;\n const filters = filterNames.map(n => possibleFilters[n]);\n return filters.reduce((acc, cur) => cur(acc), value && value.toString());\n });\n}\n\n/** @type { {[filterName: String]:( string => string)} } */\nexport const APPLY_FILTERS = {\n urlencode: encodeURIComponent,\n};\n"],"names":["PROPER_FUNCTION_NAME","fails","whitespaces","module","exports","METHOD_NAME","name","BookReaderPlugin","br","_classCallCheck","this","options","key","value","Object","assign","pageContainer","$toolbarElement","$navBar","IAIconToc","styles","render","customElements","define","e","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","call","done","return","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","_defineProperties","_toPropertyKey","_createClass","_callSuper","_getPrototypeOf","_typeof","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","valueOf","_superPropGet","_get","get","hasOwnProperty","_superPropBase","getOwnPropertyDescriptor","_inherits","_setPrototypeOf","_defineProperty","toPrimitive","String","_toPrimitive","_initialize","BRChaptersPanel","BookReader","window","ChaptersPlugin","_BookReaderPlugin","_this","_len","args","Array","_key","concat","enabled","openLibraryHost","openLibraryId","internetArchiveId","olHost","bookId","_init","_callee","_this$br$options$tabl","rawTableOfContents","_olEdition$table_of_c","olEdition","_this2","_context","ui","table_of_contents","getOpenLibraryRecord","_tocEntries","map","rawTOCEntry","pageIndex","leaf","book","leafNumToIndex","pagenum","getPageIndex","undefined","_render","eventNames","pageChanged","_updateCurrent","_this3","shell","menuProviders","id","icon","html","_templateObject","_taggedTemplateLiteral","label","component","_templateObject2","jumpToIndex","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","$trim","proto","forced","forcedStringTrimMethod","trim","template","overrides","possibleFilters","APPLY_FILTERS","replace","$0","$1","_expression$split$map2","split","varName","filterNames","_arrayLikeToArray","slice","reduce","acc","cur","toString","urlencode","encodeURIComponent"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"plugins/plugin.chapters.js","mappings":"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","sources":["webpack://@internetarchive/bookreader/./node_modules/core-js/internals/string-trim-forced.js","webpack://@internetarchive/bookreader/./src/BookReaderPlugin.js","webpack://@internetarchive/bookreader/./node_modules/@internetarchive/icon-toc/index.js","webpack://@internetarchive/bookreader/./node_modules/@internetarchive/icon-toc/icon-toc.js","webpack://@internetarchive/bookreader/./src/plugins/plugin.chapters.js","webpack://@internetarchive/bookreader/./node_modules/core-js/modules/es.string.trim.js","webpack://@internetarchive/bookreader/../src/directives/if-defined.ts","webpack://@internetarchive/bookreader/./src/util/strings.js"],"sourcesContent":["'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","// @ts-check\n/** @typedef {import(\"./BookReader.js\").default} BookReader */\n\n/**\n * @template TOptions\n */\nexport class BookReaderPlugin {\n /**\n * @param {BookReader} br\n */\n constructor(br) {\n /** @type {BookReader} */\n this.br = br;\n /** @type {TOptions} */\n this.options;\n }\n\n /**\n * @abstract\n * @param {TOptions} options\n **/\n setup(options) {\n this.options = Object.assign({}, this.options, options);\n }\n\n /** @abstract */\n init() {}\n\n /**\n * @abstract\n * @protected\n * @param {import (\"./BookReader/PageContainer.js\").PageContainer} pageContainer\n */\n _configurePageContainer(pageContainer) {\n }\n\n /**\n * @abstract\n * @protected\n * @param {JQuery<HTMLElement>} $toolbarElement\n */\n _configureToolbar($toolbarElement) {\n }\n\n /** @abstract @protected */\n _bindNavigationHandlers() {}\n\n /**\n * @param {JQuery<HTMLElement>} $navBar\n */\n extendNavBar($navBar) {}\n}\n","import { html } from 'lit';\n\nexport default html`\n<svg\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <g class=\"fill-color\" fill-rule=\"evenodd\"><rect height=\"3\" rx=\"1.5\" width=\"18\" x=\"6\"/><rect height=\"3\" rx=\"1.5\" width=\"18\" x=\"6\" y=\"21\"/><rect height=\"3\" rx=\"1.5\" width=\"18\" x=\"6\" y=\"14\"/><rect height=\"3\" rx=\"1.5\" width=\"18\" x=\"6\" y=\"7\"/><rect height=\"3\" rx=\"1.5\" width=\"4\"/><rect height=\"3\" rx=\"1.5\" width=\"4\" y=\"21\"/><rect height=\"3\" rx=\"1.5\" width=\"4\" y=\"14\"/><rect height=\"3\" rx=\"1.5\" width=\"4\" y=\"7\"/></g>\n</svg>\n`;\n","import icon from './index.js';\nimport { css, LitElement } from 'lit';\n\nclass IAIconToc extends LitElement {\n static get styles() {\n return css`\n :host {\n width: var(--iconWidth, 'auto');\n height: var(--iconHeight, 'auto');\n }\n\n .fill-color {\n fill: var(--iconFillColor);\n }\n\n .stroke-color {\n stroke: var(--iconStrokeColor);\n }\n `;\n }\n\n render() {\n return icon;\n }\n}\n\ncustomElements.define('ia-icon-toc', IAIconToc);\n\nexport default IAIconToc;\n","// @ts-check\nimport { css, html, LitElement, nothing } from \"lit\";\nimport { customElement, property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport '@internetarchive/icon-toc/icon-toc.js';\nimport { BookReaderPlugin } from \"../BookReaderPlugin.js\";\nimport { applyVariables } from \"../util/strings.js\";\n/** @typedef {import('@/src/BookReader/BookModel.js').PageIndex} PageIndex */\n/** @typedef {import('@/src/BookReader/BookModel.js').PageString} PageString */\n/** @typedef {import('@/src/BookReader/BookModel.js').LeafNum} LeafNum */\n\n// @ts-ignore\nconst BookReader = /** @type {typeof import('@/src/BookReader.js').default} */(window.BookReader);\n\n/**\n * Plugin for chapter markers in BookReader. Fetches from openlibrary.org\n * Could be forked, or extended to alter behavior\n */\nexport class ChaptersPlugin extends BookReaderPlugin {\n options = {\n enabled: true,\n\n /**\n * The Open Library host to fetch/query Open Library.\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n openLibraryHost: 'https://openlibrary.org',\n\n /**\n * The Open Library edition to fetch the table of contents from.\n * E.g. 'OL12345M'\n *\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n openLibraryId: '',\n\n /**\n * The Internet Archive identifier to fetch the Open Library table\n * of contents from.\n * E.g. 'goody'\n *\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n internetArchiveId: '',\n\n /**\n * @deprecated\n * Old name for openLibraryHost\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n olHost: 'https://openlibrary.org',\n\n /**\n * @deprecated\n * Old name for internetArchiveId\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n bookId: '{{bookId}}',\n }\n\n /** @type {TocEntry[]} */\n _tocEntries;\n\n /** @type {BRChaptersPanel} */\n _chaptersPanel;\n\n /** @override */\n setup(options) {\n super.setup(options);\n this.options.internetArchiveId = this.options.internetArchiveId || this.options.bookId;\n this.options.openLibraryHost = this.options.openLibraryHost || this.options.olHost;\n }\n\n /** @override Extend to call Open Library for TOC */\n async init() {\n if (!this.options.enabled || this.br.ui === 'embed') {\n return;\n }\n\n let rawTableOfContents = null;\n // Prefer explicit TOC if specified\n if (this.br.options.table_of_contents?.length) {\n rawTableOfContents = this.br.options.table_of_contents;\n } else {\n // Otherwise fetch from OL\n const olEdition = await this.getOpenLibraryRecord();\n if (olEdition?.table_of_contents?.length) {\n rawTableOfContents = olEdition.table_of_contents;\n }\n }\n\n if (rawTableOfContents) {\n this._tocEntries = rawTableOfContents\n .map(rawTOCEntry => (Object.assign({}, rawTOCEntry, {\n pageIndex: (\n typeof(rawTOCEntry.leaf) == 'number' ? this.br.book.leafNumToIndex(rawTOCEntry.leaf) :\n rawTOCEntry.pagenum ? this.br.book.getPageIndex(rawTOCEntry.pagenum) :\n undefined\n ),\n })));\n this._render();\n this.br.bind(BookReader.eventNames.pageChanged, () => this._updateCurrent());\n }\n }\n\n /**\n * Update the table of contents based on array of TOC entries.\n */\n _render() {\n this.br.shell.menuProviders['chapters'] = {\n id: 'chapters',\n icon: html`<ia-icon-toc aria-hidden=\"true\" role=\"presentation\" style=\"width: var(--iconWidth); height: var(--iconHeight);\"></ia-icon-toc>`,\n label: 'Table of Contents',\n component: html`<br-chapters-panel\n .contents=\"${this._tocEntries}\"\n .jumpToPage=\"${(pageIndex) => {\n this._updateCurrent(pageIndex);\n this.br.jumpToIndex(pageIndex, { 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","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {nothing} from '../lit-html.js';\n\n/**\n * For AttributeParts, sets the attribute if the value is defined and removes\n * the attribute if the value is undefined.\n *\n * For other part types, this directive is a no-op.\n */\nexport const ifDefined = <T>(value: T) => value ?? nothing;\n","/**\n * @typedef {String} StringWithVars\n * A template string with {{foo}} style variables\n * Also supports filters, like {{bookPath|urlencode}} (See APPLY_FILTERS for the\n * supported list of filters)\n **/\n\n/**\n * @param {StringWithVars|String} template\n * @param { {[varName: string]: { toString: () => string} } } vars\n * @param { {[varName: string]: { toString: () => string} } } [overrides]\n * @returns {StringWithVars|string}\n */\nexport function applyVariables(template, vars, overrides = {}, possibleFilters = APPLY_FILTERS) {\n return template?.replace(/\\{\\{([^}]*?)\\}\\}/g, ($0, $1) => {\n if (!$1) return $0;\n /** @type {string} */\n const expression = $1;\n const [varName, ...filterNames] = expression.split('|').map(x => x.trim());\n const defined = varName in overrides || varName in vars;\n\n // If it's not defined, don't expand it at all\n if (!defined) return $0;\n\n const value = varName in overrides ? overrides[varName]\n : varName in vars ? vars[varName] : null;\n const filters = filterNames.map(n => possibleFilters[n]);\n return filters.reduce((acc, cur) => cur(acc), value && value.toString());\n });\n}\n\n/** @type { {[filterName: String]:( string => string)} } */\nexport const APPLY_FILTERS = {\n urlencode: encodeURIComponent,\n};\n"],"names":["PROPER_FUNCTION_NAME","fails","whitespaces","module","exports","METHOD_NAME","name","BookReaderPlugin","br","_classCallCheck","this","options","key","value","Object","assign","pageContainer","$toolbarElement","$navBar","IAIconToc","styles","render","customElements","define","e","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","call","done","return","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","_defineProperties","_toPropertyKey","_createClass","_callSuper","_getPrototypeOf","_typeof","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","valueOf","_superPropGet","_get","get","hasOwnProperty","_superPropBase","getOwnPropertyDescriptor","_inherits","_setPrototypeOf","_defineProperty","toPrimitive","String","_toPrimitive","_initialize","BRChaptersPanel","BookReader","window","ChaptersPlugin","_BookReaderPlugin","_this","_len","args","Array","_key","concat","enabled","openLibraryHost","openLibraryId","internetArchiveId","olHost","bookId","_init","_callee","_this$br$options$tabl","rawTableOfContents","_olEdition$table_of_c","olEdition","_this2","_context","ui","table_of_contents","getOpenLibraryRecord","_tocEntries","map","rawTOCEntry","pageIndex","leaf","book","leafNumToIndex","pagenum","getPageIndex","undefined","_render","eventNames","pageChanged","_updateCurrent","_this3","shell","menuProviders","id","icon","html","_templateObject","_taggedTemplateLiteral","label","component","_templateObject2","jumpToIndex","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","$trim","proto","forced","forcedStringTrimMethod","trim","template","overrides","possibleFilters","APPLY_FILTERS","replace","$0","$1","_expression$split$map2","split","varName","filterNames","_arrayLikeToArray","slice","reduce","acc","cur","toString","urlencode","encodeURIComponent"],"sourceRoot":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@internetarchive/bookreader",
|
|
3
|
-
"version": "5.0.0-
|
|
3
|
+
"version": "5.0.0-107",
|
|
4
4
|
"description": "The Internet Archive BookReader.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -34,14 +34,16 @@
|
|
|
34
34
|
"@internetarchive/bergamot-translator": "^0.4.9-ia.1",
|
|
35
35
|
"@internetarchive/ia-activity-indicator": "^0.0.4",
|
|
36
36
|
"@internetarchive/ia-item-navigator": "2.2.2",
|
|
37
|
-
"@internetarchive/icon-bookmark": "^1.
|
|
38
|
-
"@internetarchive/icon-
|
|
39
|
-
"@internetarchive/icon-
|
|
40
|
-
"@internetarchive/icon-
|
|
41
|
-
"@internetarchive/icon-
|
|
42
|
-
"@internetarchive/icon-
|
|
43
|
-
"@internetarchive/icon-
|
|
44
|
-
"@internetarchive/icon-
|
|
37
|
+
"@internetarchive/icon-bookmark": "^1.4.0",
|
|
38
|
+
"@internetarchive/icon-close": "1.4.0",
|
|
39
|
+
"@internetarchive/icon-dl": "^1.4.0",
|
|
40
|
+
"@internetarchive/icon-edit-pencil": "^1.4.1",
|
|
41
|
+
"@internetarchive/icon-ia-logo": "1.4.0",
|
|
42
|
+
"@internetarchive/icon-magnify-minus": "^1.4.0",
|
|
43
|
+
"@internetarchive/icon-magnify-plus": "^1.4.0",
|
|
44
|
+
"@internetarchive/icon-search": "^1.4.0",
|
|
45
|
+
"@internetarchive/icon-toc": "^1.4.0",
|
|
46
|
+
"@internetarchive/icon-visual-adjustment": "^1.4.0",
|
|
45
47
|
"@internetarchive/modal-manager": "^0.2.12",
|
|
46
48
|
"@internetarchive/shared-resize-observer": "^0.2.0",
|
|
47
49
|
"lit": "^2.5.0"
|
|
@@ -122,7 +124,7 @@
|
|
|
122
124
|
"lint": "npx eslint src/ tests/ *.js *.cjs",
|
|
123
125
|
"lint:fix": "npx eslint --fix src/ tests/ *.js *.cjs",
|
|
124
126
|
"serve": "npx http-server . --port=8000",
|
|
125
|
-
"serve-live": "
|
|
127
|
+
"serve-live": "node scripts/live-server.js",
|
|
126
128
|
"serve-dev": "env NODE_ENV='development' npm run build-css && env NODE_ENV='development' npx concurrently --kill-others npm:serve-live npm:build-*:watch",
|
|
127
129
|
"test": "npx jest --coverage --colors",
|
|
128
130
|
"test:watch": "npx jest --watch",
|
|
@@ -331,30 +331,59 @@ export class Navbar {
|
|
|
331
331
|
// Ignore up/down arrow keys and page up/down keys, since they're confusingly different
|
|
332
332
|
// between slider movement and page movement. Down decreases slider value, which would move
|
|
333
333
|
// the scroll _up_ in 1up.
|
|
334
|
-
$sliders.find('.ui-slider-handle').off('keydown').on('keydown',
|
|
334
|
+
$sliders.find('.ui-slider-handle').off('keydown').on('keydown', (event) => {
|
|
335
335
|
switch (event.keyCode || event.which) {
|
|
336
|
-
case $.ui.keyCode.
|
|
337
|
-
case $.ui.keyCode.
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
336
|
+
case $.ui.keyCode.LEFT:
|
|
337
|
+
case $.ui.keyCode.RIGHT:
|
|
338
|
+
// Forward along to the default handler
|
|
339
|
+
if (isRTL) {
|
|
340
|
+
// Swap left/right for RTL
|
|
341
|
+
if (event.keyCode === $.ui.keyCode.LEFT) {
|
|
342
|
+
event.keyCode = $.ui.keyCode.RIGHT;
|
|
343
|
+
} else {
|
|
344
|
+
event.keyCode = $.ui.keyCode.LEFT;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
$.ui.slider.prototype._handleEvents.keydown.call($(event.target).parent().data('ui-slider'), event);
|
|
348
|
+
event.stopPropagation();
|
|
349
|
+
break;
|
|
341
350
|
default:
|
|
342
|
-
// Forward along to the default handler for other keys
|
|
343
|
-
$.ui.slider.prototype._handleEvents.keydown.call($(this).parent().data('ui-slider'), event);
|
|
344
351
|
return;
|
|
345
352
|
}
|
|
346
353
|
});
|
|
347
354
|
|
|
348
|
-
$sliders.on('slide', (event, ui) =>
|
|
355
|
+
$sliders.on('slide', (event, ui) => {
|
|
356
|
+
if (this.br.mode === this.br.constMode2up) {
|
|
357
|
+
// in 2up, need to go to nearest page that is left page
|
|
358
|
+
const movingForward = ui.value > br.currentIndex();
|
|
359
|
+
const newPage = this.br.book.getPage(ui.value);
|
|
360
|
+
if (isRTL ? newPage.pageSide === 'L' : newPage.pageSide === 'R') {
|
|
361
|
+
ui.value += movingForward ? 1 : -1;
|
|
362
|
+
ui.value = Math.max(0, Math.min(ui.value, br.book.getNumLeafs() - 1));
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
this.updateNavPageNum(ui.value);
|
|
366
|
+
});
|
|
349
367
|
|
|
350
368
|
$sliders.on('slidechange', (event, ui) => {
|
|
351
369
|
// recursion prevention for jumpToIndex
|
|
352
|
-
if (
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
// Don't want this to be aria-live since the slider already announces the value
|
|
356
|
-
br.jumpToIndex(ui.value, {ariaLive: false});
|
|
370
|
+
if ($(event.target).data('swallowchange')) {
|
|
371
|
+
$(event.target).data('swallowchange', false);
|
|
372
|
+
return;
|
|
357
373
|
}
|
|
374
|
+
|
|
375
|
+
if (this.br.mode === this.br.constMode2up) {
|
|
376
|
+
// in 2up, need to go to nearest page that is left page
|
|
377
|
+
const movingForward = ui.value > br.currentIndex();
|
|
378
|
+
const newPage = this.br.book.getPage(ui.value);
|
|
379
|
+
if (isRTL ? newPage.pageSide === 'L' : newPage.pageSide === 'R') {
|
|
380
|
+
ui.value += movingForward ? 1 : -1;
|
|
381
|
+
ui.value = Math.max(0, Math.min(ui.value, br.book.getNumLeafs() - 1));
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
// Don't want this to be aria-live since the slider already announces the value
|
|
386
|
+
this.br.jumpToIndex(ui.value, {ariaLive: false});
|
|
358
387
|
});
|
|
359
388
|
|
|
360
389
|
return this.$nav;
|
|
@@ -409,7 +438,7 @@ export class Navbar {
|
|
|
409
438
|
// We want to update the value, but normally moving the slider
|
|
410
439
|
// triggers jumpToIndex which triggers this method
|
|
411
440
|
index = index !== undefined ? index : this.br.currentIndex();
|
|
412
|
-
this.swallowchange
|
|
441
|
+
this.$root.find('.BRpager').data('swallowchange', true);
|
|
413
442
|
this.$root.find('.BRpager').slider('value', index);
|
|
414
443
|
this.updateNavPageNum(index);
|
|
415
444
|
}
|
package/src/BookReader/utils.js
CHANGED
|
@@ -55,7 +55,7 @@ export function getActiveElement(doc = document, recurseShadowDom = true) {
|
|
|
55
55
|
/** Check if an input field/textarea is active. Also checks shadow DOMs. */
|
|
56
56
|
export function isInputActive(doc = document) {
|
|
57
57
|
const activeEl = getActiveElement(doc);
|
|
58
|
-
return activeEl?.tagName == "INPUT" || activeEl?.tagName == "TEXTAREA"
|
|
58
|
+
return activeEl?.tagName == "INPUT" || activeEl?.tagName == "TEXTAREA";
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
/**
|
package/src/BookReader.js
CHANGED
|
@@ -161,7 +161,7 @@ BookReader.prototype.setup = function(options) {
|
|
|
161
161
|
// Store the options used to setup bookreader
|
|
162
162
|
this.options = options;
|
|
163
163
|
|
|
164
|
-
/** @type {import('@/src/
|
|
164
|
+
/** @type {import('@/src/ia-bookreader/ia-bookreader.js').IaBookReader} */
|
|
165
165
|
this.shell;
|
|
166
166
|
|
|
167
167
|
// Base server used by some api calls
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { html } from 'lit';
|
|
2
|
+
|
|
3
|
+
export default html`
|
|
4
|
+
<svg height="10" viewBox="0 0 13 10" width="13" xmlns="http://www.w3.org/2000/svg">
|
|
5
|
+
<path
|
|
6
|
+
d="m4.33333333 10-4.33333333-4.16666667 1.73333333-1.66666666 2.6 2.5 6.93333337-6.66666667 1.7333333 1.66666667z"
|
|
7
|
+
fill="#fff" fill-rule="evenodd" />
|
|
8
|
+
</svg>
|
|
9
|
+
`;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { css } from "lit";
|
|
2
|
+
|
|
3
|
+
export const sharedStyles = css`
|
|
4
|
+
.sr-only {
|
|
5
|
+
position: absolute !important;
|
|
6
|
+
width: 1px !important;
|
|
7
|
+
height: 1px !important;
|
|
8
|
+
padding: 0 !important;
|
|
9
|
+
margin: -1px !important;
|
|
10
|
+
overflow: hidden !important;
|
|
11
|
+
clip: rect(0 0 0 0) !important;
|
|
12
|
+
white-space: nowrap !important;
|
|
13
|
+
border: 0 !important;
|
|
14
|
+
}
|
|
15
|
+
`;
|