@internetarchive/bookreader 5.0.0-91 → 5.0.0-92

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.
Files changed (43) hide show
  1. package/BookReader/BookReader.js +1 -1
  2. package/BookReader/BookReader.js.map +1 -1
  3. package/BookReader/ia-bookreader-bundle.js +2 -2
  4. package/BookReader/ia-bookreader-bundle.js.map +1 -1
  5. package/BookReader/plugins/plugin.archive_analytics.js +1 -1
  6. package/BookReader/plugins/plugin.archive_analytics.js.map +1 -1
  7. package/BookReader/plugins/plugin.autoplay.js +1 -1
  8. package/BookReader/plugins/plugin.autoplay.js.map +1 -1
  9. package/BookReader/plugins/plugin.chapters.js +2 -2
  10. package/BookReader/plugins/plugin.chapters.js.map +1 -1
  11. package/BookReader/plugins/plugin.iiif.js +1 -1
  12. package/BookReader/plugins/plugin.iiif.js.map +1 -1
  13. package/BookReader/plugins/plugin.resume.js +1 -1
  14. package/BookReader/plugins/plugin.resume.js.map +1 -1
  15. package/BookReader/plugins/plugin.search.js +1 -1
  16. package/BookReader/plugins/plugin.search.js.map +1 -1
  17. package/BookReader/plugins/plugin.text_selection.js +1 -1
  18. package/BookReader/plugins/plugin.text_selection.js.map +1 -1
  19. package/BookReader/plugins/plugin.tts.js +1 -1
  20. package/BookReader/plugins/plugin.tts.js.map +1 -1
  21. package/BookReaderDemo/IADemoBr.js +29 -1
  22. package/BookReaderDemo/ia-multiple-volumes-manifest.js +0 -1
  23. package/CHANGELOG.md +12 -0
  24. package/README.md +1 -1
  25. package/package.json +1 -1
  26. package/src/BookNavigator/book-navigator.js +5 -2
  27. package/src/BookNavigator/search/search-provider.js +13 -7
  28. package/src/BookNavigator/sharing.js +1 -1
  29. package/src/BookReader/Toolbar/Toolbar.js +5 -0
  30. package/src/BookReader/options.js +9 -7
  31. package/src/BookReader.js +31 -15
  32. package/src/BookReaderPlugin.js +8 -0
  33. package/src/plugins/plugin.text_selection.js +3 -1
  34. package/src/plugins/search/plugin.search.js +330 -376
  35. package/src/plugins/search/view.js +13 -9
  36. package/tests/e2e/helpers/mockSearch.js +1 -1
  37. package/tests/jest/BookNavigator/book-navigator.test.js +8 -3
  38. package/tests/jest/BookNavigator/search/search-provider.test.js +16 -4
  39. package/tests/jest/BookNavigator/sharing/sharing-provider.test.js +1 -1
  40. package/tests/jest/BookReader.test.js +26 -1
  41. package/tests/jest/plugins/search/plugin.search.test.js +17 -42
  42. package/tests/jest/plugins/search/plugin.search.view.test.js +10 -18
  43. package/tests/jest/plugins/url/plugin.url.test.js +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[623],{472:function(t,e,n){function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}function o(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,i(r.key),r)}}function i(t){var e=function(t,e){if("object"!=r(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,"string");if("object"!=r(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==r(e)?e:e+""}n.d(e,{S:function(){return a}}),n(2675),n(9463),n(2259),n(5700),n(3792),n(9572),n(8130),n(9085),n(6099),n(7764),n(2953);var a=function(){return t=function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.br=e,this.options},(e=[{key:"setup",value:function(t){this.options=Object.assign({},this.options,t)}},{key:"init",value:function(){}},{key:"_configurePageContainer",value:function(t){}},{key:"_bindNavigationHandlers",value:function(){}},{key:"extendNavBar",value:function(t){}}])&&o(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}()},9372:function(t,e,n){n(2675),n(9463),n(2259),n(5700),n(8706),n(3792),n(9572),n(8130),n(875),n(6099),n(825),n(7495),n(7764),n(1761),n(2953);var r=n(472);function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function i(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,s(r.key),r)}}function a(t,e,n){return e=c(e),function(t,e){if(e&&("object"==o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,u()?Reflect.construct(e,n||[],c(t).constructor):e.apply(t,n))}function u(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(u=function(){return!!t})()}function c(t){return c=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},c(t)}function f(t,e){return f=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},f(t,e)}function l(t,e,n){return(e=s(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function s(t){var e=function(t,e){if("object"!=o(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,"string");if("object"!=o(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==o(e)?e:e+""}var y=window.BookReader,p=function(t){function e(){var t;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return l(t=a(this,e,[].concat(r)),"options",{enabled:!0,debug:!1}),l(t,"_prevFragment",null),t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&f(t,e)}(e,t),n=e,r=[{key:"init",value:function(){var t=this;this.options.enabled&&this.br.bind(y.eventNames.fragmentChange,(function(){return t.sendFragmentChange()}))}},{key:"sendFragmentChange",value:function(){if(window.archive_analytics){var t=this._prevFragment,e=this.br.paramsFromCurrent(),n=this.br.fragmentFromParams(e);if(t!=n){var r,o={bookreader:"user_changed_view",itemid:this.br.bookId,cache_bust:Math.random(),offsite:1,details:0};try{o.offsite=window.top.location.hostname.match(/\.archive.org$/)?0:1,o.details=!o.offsite&&window.top.location.pathname.match(/^\/details\//)?1:0}catch(t){}window.archive_analytics.send_ping(o,null,"augment_for_ao_site");var i=null!==(r=this.br.options.lendingInfo)&&void 0!==r&&r.loanId?{loanId:this.br.options.lendingInfo.loanId}:{};window.archive_analytics.send_event("BookReader","UserChangedView",window.location.pathname,i),this._prevFragment=n}}}},{key:"sendEvent",value:function(t,e,n,r){this.options.enabled&&(this.options.debug&&console.log("archiveAnalyticsSendEvent",arguments,window.archive_analytics),window.archive_analytics&&(r=r||{},"number"==typeof n&&(r.ev=n),window.archive_analytics.send_event(t,e,null,r)))}}],r&&i(n.prototype,r),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r}(r.S);null==y||y.registerPlugin("archiveAnalytics",p)}},function(t){t(t.s=9372)}]);
1
+ "use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[623],{472: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 o(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,t){if("object"!=r(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,"string");if("object"!=r(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==r(t)?t:t+""}n.d(t,{S:function(){return a}}),n(2675),n(9463),n(2259),n(5700),n(3792),n(9572),n(8130),n(9085),n(6099),n(7764),n(2953);var a=function(){return e=function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.br=t,this.options},(t=[{key:"setup",value:function(e){this.options=Object.assign({},this.options,e)}},{key:"init",value:function(){}},{key:"_configurePageContainer",value:function(e){}},{key:"_configureToolbar",value:function(e){}},{key:"_bindNavigationHandlers",value:function(){}},{key:"extendNavBar",value:function(e){}}])&&o(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}()},9372:function(e,t,n){n(2675),n(9463),n(2259),n(5700),n(8706),n(3792),n(9572),n(8130),n(875),n(6099),n(825),n(7495),n(7764),n(1761),n(2953);var r=n(472);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 i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,s(r.key),r)}}function a(e,t,n){return t=c(t),function(e,t){if(t&&("object"==o(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,u()?Reflect.construct(t,n||[],c(e).constructor):t.apply(e,n))}function u(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(u=function(){return!!e})()}function c(e){return c=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},c(e)}function f(e,t){return f=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},f(e,t)}function l(e,t,n){return(t=s(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e){var t=function(e,t){if("object"!=o(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=o(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==o(t)?t:t+""}var y=window.BookReader,b=function(e){function t(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return l(e=a(this,t,[].concat(r)),"options",{enabled:!0,debug:!1}),l(e,"_prevFragment",null),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&&f(e,t)}(t,e),n=t,r=[{key:"init",value:function(){var e=this;this.options.enabled&&this.br.bind(y.eventNames.fragmentChange,(function(){return e.sendFragmentChange()}))}},{key:"sendFragmentChange",value:function(){if(window.archive_analytics){var e=this._prevFragment,t=this.br.paramsFromCurrent(),n=this.br.fragmentFromParams(t);if(e!=n){var r,o={bookreader:"user_changed_view",itemid:this.br.bookId,cache_bust:Math.random(),offsite:1,details:0};try{o.offsite=window.top.location.hostname.match(/\.archive.org$/)?0:1,o.details=!o.offsite&&window.top.location.pathname.match(/^\/details\//)?1:0}catch(e){}window.archive_analytics.send_ping(o,null,"augment_for_ao_site");var i=null!==(r=this.br.options.lendingInfo)&&void 0!==r&&r.loanId?{loanId:this.br.options.lendingInfo.loanId}:{};window.archive_analytics.send_event("BookReader","UserChangedView",window.location.pathname,i),this._prevFragment=n}}}},{key:"sendEvent",value:function(e,t,n,r){this.options.enabled&&(this.options.debug&&console.log("archiveAnalyticsSendEvent",arguments,window.archive_analytics),window.archive_analytics&&(r=r||{},"number"==typeof n&&(r.ev=n),window.archive_analytics.send_event(e,t,null,r)))}}],r&&i(n.prototype,r),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r}(r.S);null==y||y.registerPlugin("archiveAnalytics",b)}},function(e){e(e.s=9372)}]);
2
2
  //# sourceMappingURL=plugin.archive_analytics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugins/plugin.archive_analytics.js","mappings":"06BAMO,IAAMA,EAAgB,WAW3B,O,EAPA,SAAAA,EAAYC,I,4FAAIC,CAAA,KAAAF,GAEdG,KAAKF,GAAKA,EAEVE,KAAKC,OACP,G,EAEA,EAAAC,IAAA,QAAAC,MAIA,SAAMF,GACJD,KAAKC,QAAUG,OAAOC,OAAO,CAAC,EAAGL,KAAKC,QAASA,EACjD,GAEA,CAAAC,IAAA,OAAAC,MACA,WAAQ,GAER,CAAAD,IAAA,0BAAAC,MAKA,SAAwBG,GACxB,GAEA,CAAAJ,IAAA,0BAAAC,MACA,WAA2B,GAE3B,CAAAD,IAAA,eAAAC,MAGA,SAAaI,GAAU,M,6EAAC,CApCG,E,qtDCH7B,IAAMC,EAAmEC,OAAOD,WAGnEE,EAAsB,SAAAC,GAAA,SAAAD,IAAA,IAAAE,G,4FAAAb,CAAA,KAAAW,GAAA,QAAAG,EAAAC,UAAAC,OAAAC,EAAA,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAQb,OARaC,EAAAP,EAAAQ,EAAA,KAAAV,EAAA,GAAAW,OAAAL,IAAA,UACvB,CACRM,SAAS,EAETC,OAAO,IAGTJ,EAAAP,EAAA,gBACgB,MAAIA,CAAA,Q,qRAAAY,CAAAd,EAAAC,G,EAAAD,E,EAAA,EAAAR,IAAA,OAAAC,MAGpB,WAAO,IAAAsB,EAAA,KACDzB,KAAKC,QAAQqB,SACftB,KAAKF,GAAG4B,KAAKlB,EAAWmB,WAAWC,gBAAgB,kBAAMH,EAAKI,oBAAoB,GAEtF,GAEA,CAAA3B,IAAA,qBAAAC,MACA,WACE,GAAKM,OAAOqB,kBAAZ,CAIA,IAAMC,EAAe/B,KAAKgC,cAEpBC,EAASjC,KAAKF,GAAGoC,oBACjBC,EAAcnC,KAAKF,GAAGsC,mBAAmBH,GAE/C,GAAIF,GAAgBI,EAAa,KAAAE,EACzBC,EAAS,CACbC,WAAY,oBACZC,OAAQxC,KAAKF,GAAG2C,OAChBC,WAAYC,KAAKC,SAGnBN,QAAiB,EACjBA,QAAiB,GACjB,IACEA,EAAOO,QAAUpC,OAAOqC,IAAIC,SAASC,SAASC,MAAM,kBAChD,EACA,EACJX,EAAOY,SACJZ,EAAOO,SAAWpC,OAAOqC,IAAIC,SAASI,SAASF,MAAM,gBAClD,EACA,CACR,CAAE,MAAOG,GAAK,CAId3C,OAAOqB,kBAAkBuB,UAAUf,EAAQ,KAAM,uBAGjD,IAAMgB,EAAmD,QAA3BjB,EAAArC,KAAKF,GAAGG,QAAQsD,mBAAW,IAAAlB,GAA3BA,EAA6BmB,OACvD,CAAEA,OAAQxD,KAAKF,GAAGG,QAAQsD,YAAYC,QACtC,CAAC,EACL/C,OAAOqB,kBAAkB2B,WAAW,aAAc,kBAAmBhD,OAAOsC,SAASI,SAAUG,GAE/FtD,KAAKgC,cAAgBG,CACvB,CArCA,CAsCF,GAEA,CAAAjC,IAAA,YAAAC,MAOA,SAAUuD,EAAUC,EAAQxD,EAAOmD,GAC5BtD,KAAKC,QAAQqB,UAEdtB,KAAKC,QAAQsB,OACfqC,QAAQC,IAAI,4BAA6B/C,UAAWL,OAAOqB,mBAGxDrB,OAAOqB,oBAEZwB,EAAwBA,GAAyB,CAAC,EAC5B,iBAAVnD,IACVmD,EAAsBQ,GAAK3D,GAE7BM,OAAOqB,kBAAkB2B,WAAWC,EAAUC,EAAQ,KAAML,IAC9D,I,gFAAC,CAlFgC,CAASzD,EAAAA,GAqF5CW,SAAAA,EAAYuD,eAAe,mBAAoBrD,E","sources":["webpack://@internetarchive/bookreader/./src/BookReaderPlugin.js","webpack://@internetarchive/bookreader/./src/plugins/plugin.archive_analytics.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 /** @abstract @protected */\n _bindNavigationHandlers() {}\n\n /**\n * @param {JQuery<HTMLElement>} $navBar\n */\n extendNavBar($navBar) {}\n}\n","// @ts-check\nimport { BookReaderPlugin } from \"../BookReaderPlugin.js\";\n\nconst BookReader = /** @type {typeof import('../BookReader').default} */(window.BookReader);\n\n\nexport class ArchiveAnalyticsPlugin extends BookReaderPlugin {\n options = {\n enabled: true,\n /** Provide a means of debugging, cause otherwise it's impossible to test locally */\n debug: false,\n }\n\n /** @type {string} */\n _prevFragment = null;\n\n /** @override */\n init() {\n if (this.options.enabled) {\n this.br.bind(BookReader.eventNames.fragmentChange, () => this.sendFragmentChange());\n }\n }\n\n /** @private */\n sendFragmentChange() {\n if (!window.archive_analytics) {\n return;\n }\n\n const prevFragment = this._prevFragment;\n\n const params = this.br.paramsFromCurrent();\n const newFragment = this.br.fragmentFromParams(params);\n\n if (prevFragment != newFragment) {\n const values = {\n bookreader: \"user_changed_view\",\n itemid: this.br.bookId,\n cache_bust: Math.random(),\n };\n // EEK! offsite embedding and /details/ page books look the same in analytics, otherwise!\n values.offsite = 1;\n values.details = 0;\n try {\n values.offsite = window.top.location.hostname.match(/\\.archive.org$/)\n ? 0\n : 1;\n values.details =\n !values.offsite && window.top.location.pathname.match(/^\\/details\\//)\n ? 1\n : 0;\n } catch (e) { }\n // avoids embed cross site exceptions -- but on (+) side, means it is and keeps marked offite!\n\n // Send bookreader ping\n window.archive_analytics.send_ping(values, null, \"augment_for_ao_site\");\n\n // Also send tracking event ping\n const additionalEventParams = this.br.options.lendingInfo?.loanId\n ? { loanId: this.br.options.lendingInfo.loanId }\n : {};\n window.archive_analytics.send_event('BookReader', 'UserChangedView', window.location.pathname, additionalEventParams);\n\n this._prevFragment = newFragment;\n }\n }\n\n /**\n * Sends a tracking \"Event\". See https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#events\n * @param {string} category\n * @param {string} action\n * @param {number} [value] (must be an int)\n * @param {Object} [additionalEventParams]\n */\n sendEvent(category, action, value, additionalEventParams) {\n if (!this.options.enabled) return;\n\n if (this.options.debug) {\n console.log(\"archiveAnalyticsSendEvent\", arguments, window.archive_analytics);\n }\n\n if (!window.archive_analytics) return;\n\n additionalEventParams = additionalEventParams || {};\n if (typeof (value) == 'number') {\n additionalEventParams.ev = value;\n }\n window.archive_analytics.send_event(category, action, null, additionalEventParams);\n }\n}\n\nBookReader?.registerPlugin('archiveAnalytics', ArchiveAnalyticsPlugin);\n"],"names":["BookReaderPlugin","br","_classCallCheck","this","options","key","value","Object","assign","pageContainer","$navBar","BookReader","window","ArchiveAnalyticsPlugin","_BookReaderPlugin","_this","_len","arguments","length","args","Array","_key","_defineProperty","_callSuper","concat","enabled","debug","_inherits","_this2","bind","eventNames","fragmentChange","sendFragmentChange","archive_analytics","prevFragment","_prevFragment","params","paramsFromCurrent","newFragment","fragmentFromParams","_this$br$options$lend","values","bookreader","itemid","bookId","cache_bust","Math","random","offsite","top","location","hostname","match","details","pathname","e","send_ping","additionalEventParams","lendingInfo","loanId","send_event","category","action","console","log","ev","registerPlugin"],"sourceRoot":""}
1
+ {"version":3,"file":"plugins/plugin.archive_analytics.js","mappings":"06BAMO,IAAMA,EAAgB,WAW3B,O,EAPA,SAAAA,EAAYC,I,4FAAIC,CAAA,KAAAF,GAEdG,KAAKF,GAAKA,EAEVE,KAAKC,OACP,G,EAEA,EAAAC,IAAA,QAAAC,MAIA,SAAMF,GACJD,KAAKC,QAAUG,OAAOC,OAAO,CAAC,EAAGL,KAAKC,QAASA,EACjD,GAEA,CAAAC,IAAA,OAAAC,MACA,WAAQ,GAER,CAAAD,IAAA,0BAAAC,MAKA,SAAwBG,GACxB,GAEA,CAAAJ,IAAA,oBAAAC,MAKA,SAAkBI,GAClB,GAEA,CAAAL,IAAA,0BAAAC,MACA,WAA2B,GAE3B,CAAAD,IAAA,eAAAC,MAGA,SAAaK,GAAU,M,6EAAC,CA5CG,E,qtDCH7B,IAAMC,EAAmEC,OAAOD,WAGnEE,EAAsB,SAAAC,GAAA,SAAAD,IAAA,IAAAE,G,4FAAAd,CAAA,KAAAY,GAAA,QAAAG,EAAAC,UAAAC,OAAAC,EAAA,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAQb,OARaC,EAAAP,EAAAQ,EAAA,KAAAV,EAAA,GAAAW,OAAAL,IAAA,UACvB,CACRM,SAAS,EAETC,OAAO,IAGTJ,EAAAP,EAAA,gBACgB,MAAIA,CAAA,Q,qRAAAY,CAAAd,EAAAC,G,EAAAD,E,EAAA,EAAAT,IAAA,OAAAC,MAGpB,WAAO,IAAAuB,EAAA,KACD1B,KAAKC,QAAQsB,SACfvB,KAAKF,GAAG6B,KAAKlB,EAAWmB,WAAWC,gBAAgB,kBAAMH,EAAKI,oBAAoB,GAEtF,GAEA,CAAA5B,IAAA,qBAAAC,MACA,WACE,GAAKO,OAAOqB,kBAAZ,CAIA,IAAMC,EAAehC,KAAKiC,cAEpBC,EAASlC,KAAKF,GAAGqC,oBACjBC,EAAcpC,KAAKF,GAAGuC,mBAAmBH,GAE/C,GAAIF,GAAgBI,EAAa,KAAAE,EACzBC,EAAS,CACbC,WAAY,oBACZC,OAAQzC,KAAKF,GAAG4C,OAChBC,WAAYC,KAAKC,SAGnBN,QAAiB,EACjBA,QAAiB,GACjB,IACEA,EAAOO,QAAUpC,OAAOqC,IAAIC,SAASC,SAASC,MAAM,kBAChD,EACA,EACJX,EAAOY,SACJZ,EAAOO,SAAWpC,OAAOqC,IAAIC,SAASI,SAASF,MAAM,gBAClD,EACA,CACR,CAAE,MAAOG,GAAK,CAId3C,OAAOqB,kBAAkBuB,UAAUf,EAAQ,KAAM,uBAGjD,IAAMgB,EAAmD,QAA3BjB,EAAAtC,KAAKF,GAAGG,QAAQuD,mBAAW,IAAAlB,GAA3BA,EAA6BmB,OACvD,CAAEA,OAAQzD,KAAKF,GAAGG,QAAQuD,YAAYC,QACtC,CAAC,EACL/C,OAAOqB,kBAAkB2B,WAAW,aAAc,kBAAmBhD,OAAOsC,SAASI,SAAUG,GAE/FvD,KAAKiC,cAAgBG,CACvB,CArCA,CAsCF,GAEA,CAAAlC,IAAA,YAAAC,MAOA,SAAUwD,EAAUC,EAAQzD,EAAOoD,GAC5BvD,KAAKC,QAAQsB,UAEdvB,KAAKC,QAAQuB,OACfqC,QAAQC,IAAI,4BAA6B/C,UAAWL,OAAOqB,mBAGxDrB,OAAOqB,oBAEZwB,EAAwBA,GAAyB,CAAC,EAC5B,iBAAVpD,IACVoD,EAAsBQ,GAAK5D,GAE7BO,OAAOqB,kBAAkB2B,WAAWC,EAAUC,EAAQ,KAAML,IAC9D,I,gFAAC,CAlFgC,CAAS1D,EAAAA,GAqF5CY,SAAAA,EAAYuD,eAAe,mBAAoBrD,E","sources":["webpack://@internetarchive/bookreader/./src/BookReaderPlugin.js","webpack://@internetarchive/bookreader/./src/plugins/plugin.archive_analytics.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","// @ts-check\nimport { BookReaderPlugin } from \"../BookReaderPlugin.js\";\n\nconst BookReader = /** @type {typeof import('../BookReader').default} */(window.BookReader);\n\n\nexport class ArchiveAnalyticsPlugin extends BookReaderPlugin {\n options = {\n enabled: true,\n /** Provide a means of debugging, cause otherwise it's impossible to test locally */\n debug: false,\n }\n\n /** @type {string} */\n _prevFragment = null;\n\n /** @override */\n init() {\n if (this.options.enabled) {\n this.br.bind(BookReader.eventNames.fragmentChange, () => this.sendFragmentChange());\n }\n }\n\n /** @private */\n sendFragmentChange() {\n if (!window.archive_analytics) {\n return;\n }\n\n const prevFragment = this._prevFragment;\n\n const params = this.br.paramsFromCurrent();\n const newFragment = this.br.fragmentFromParams(params);\n\n if (prevFragment != newFragment) {\n const values = {\n bookreader: \"user_changed_view\",\n itemid: this.br.bookId,\n cache_bust: Math.random(),\n };\n // EEK! offsite embedding and /details/ page books look the same in analytics, otherwise!\n values.offsite = 1;\n values.details = 0;\n try {\n values.offsite = window.top.location.hostname.match(/\\.archive.org$/)\n ? 0\n : 1;\n values.details =\n !values.offsite && window.top.location.pathname.match(/^\\/details\\//)\n ? 1\n : 0;\n } catch (e) { }\n // avoids embed cross site exceptions -- but on (+) side, means it is and keeps marked offite!\n\n // Send bookreader ping\n window.archive_analytics.send_ping(values, null, \"augment_for_ao_site\");\n\n // Also send tracking event ping\n const additionalEventParams = this.br.options.lendingInfo?.loanId\n ? { loanId: this.br.options.lendingInfo.loanId }\n : {};\n window.archive_analytics.send_event('BookReader', 'UserChangedView', window.location.pathname, additionalEventParams);\n\n this._prevFragment = newFragment;\n }\n }\n\n /**\n * Sends a tracking \"Event\". See https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#events\n * @param {string} category\n * @param {string} action\n * @param {number} [value] (must be an int)\n * @param {Object} [additionalEventParams]\n */\n sendEvent(category, action, value, additionalEventParams) {\n if (!this.options.enabled) return;\n\n if (this.options.debug) {\n console.log(\"archiveAnalyticsSendEvent\", arguments, window.archive_analytics);\n }\n\n if (!window.archive_analytics) return;\n\n additionalEventParams = additionalEventParams || {};\n if (typeof (value) == 'number') {\n additionalEventParams.ev = value;\n }\n window.archive_analytics.send_event(category, action, null, additionalEventParams);\n }\n}\n\nBookReader?.registerPlugin('archiveAnalytics', ArchiveAnalyticsPlugin);\n"],"names":["BookReaderPlugin","br","_classCallCheck","this","options","key","value","Object","assign","pageContainer","$toolbarElement","$navBar","BookReader","window","ArchiveAnalyticsPlugin","_BookReaderPlugin","_this","_len","arguments","length","args","Array","_key","_defineProperty","_callSuper","concat","enabled","debug","_inherits","_this2","bind","eventNames","fragmentChange","sendFragmentChange","archive_analytics","prevFragment","_prevFragment","params","paramsFromCurrent","newFragment","fragmentFromParams","_this$br$options$lend","values","bookreader","itemid","bookId","cache_bust","Math","random","offsite","top","location","hostname","match","details","pathname","e","send_ping","additionalEventParams","lendingInfo","loanId","send_event","category","action","console","log","ev","registerPlugin"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[393],{472:function(t,e,n){function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}function o(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,i(r.key),r)}}function i(t){var e=function(t,e){if("object"!=r(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,"string");if("object"!=r(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==r(e)?e:e+""}n.d(e,{S:function(){return u}}),n(2675),n(9463),n(2259),n(5700),n(3792),n(9572),n(8130),n(9085),n(6099),n(7764),n(2953);var u=function(){return t=function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.br=e,this.options},(e=[{key:"setup",value:function(t){this.options=Object.assign({},this.options,t)}},{key:"init",value:function(){}},{key:"_configurePageContainer",value:function(t){}},{key:"_bindNavigationHandlers",value:function(){}},{key:"extendNavBar",value:function(t){}}])&&o(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}()},5964:function(t,e,n){n(2675),n(9463),n(2259),n(5700),n(8706),n(2008),n(3792),n(9572),n(8130),n(9085),n(875),n(6099),n(825),n(7495),n(7764),n(5746),n(2953),n(8408);var r=n(2827),o=n(6257);function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function u(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,f(r.key),r)}}function a(t,e,n){return e=s(e),function(t,e){if(e&&("object"==i(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,l()?Reflect.construct(e,n||[],s(t).constructor):e.apply(t,n))}function l(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(l=function(){return!!t})()}function s(t){return s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},s(t)}function p(t,e){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},p(t,e)}function c(t,e,n){return(e=f(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function f(t){var e=function(t,e){if("object"!=i(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,"string");if("object"!=i(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==i(e)?e:e+""}var b=function(t){function e(){var t;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return c(t=a(this,e,[].concat(r)),"options",{enabled:!0,flipSpeed:1500,flipDelay:5e3,urlParams:!0}),c(t,"timer",null),t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&p(t,e)}(e,t),n=e,i=[{key:"init",value:function(){var t=this;if(this.options.enabled&&(this.br.bind(r.q.stop,(function(){return t.stop()})),this.options.urlParams)){var e=new URLSearchParams(window.location.search);e.get("flipSpeed")&&(this.options.flipSpeed=(0,o.parseAnimationSpeed)(e.get("flipSpeed"))||this.options.flipSpeed),e.get("flipDelay")&&(this.options.flipDelay=(0,o.parseAnimationSpeed)(e.get("flipDelay"))||this.options.flipDelay),"1"===e.get("autoflip")&&this.toggle()}}},{key:"_bindNavigationHandlers",value:function(){var t=this;if(this.options.enabled){var e=this.br.$(".BRicon");e.filter(".play").on("click",(function(){return t.toggle(),!1})),e.filter(".pause").on("click",(function(){return t.toggle(),!1}))}}},{key:"toggle",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(this.options.enabled){Object.assign(this.options,e),this.br.trigger(r.q.stop);var n=!1;this.br.constMode2up!=this.br.mode&&(n=!0,this.br.switchMode(this.br.constMode2up)),null==this.timer?("rl"==this.br.pageProgression&&n||this.br.next({triggerStop:!1,flipSpeed:this.options.flipSpeed}),this.br.$(".play").hide(),this.br.$(".pause").show(),this.timer=setInterval((function(){t.br.animating||(Math.max(t.br.twoPage.currentIndexL,t.br.twoPage.currentIndexR)>=t.br.book.getNumLeafs()-1?t.br.prev({triggerStop:!1,flipSpeed:t.options.flipSpeed}):t.br.next({triggerStop:!1,flipSpeed:t.options.flipSpeed}))}),(0,o.parseAnimationSpeed)(this.options.flipDelay))):this.stop()}}},{key:"stop",value:function(){this.options.enabled&&null!=this.timer&&(clearInterval(this.timer),this.br.$(".pause").hide(),this.br.$(".play").show(),this.timer=null)}}],i&&u(n.prototype,i),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,i}(n(472).S),y=window.BookReader;null==y||y.registerPlugin("autoplay",b)}},function(t){t(t.s=5964)}]);
1
+ "use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[393],{472:function(t,e,n){function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}function o(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,i(r.key),r)}}function i(t){var e=function(t,e){if("object"!=r(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,"string");if("object"!=r(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==r(e)?e:e+""}n.d(e,{S:function(){return u}}),n(2675),n(9463),n(2259),n(5700),n(3792),n(9572),n(8130),n(9085),n(6099),n(7764),n(2953);var u=function(){return t=function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.br=e,this.options},(e=[{key:"setup",value:function(t){this.options=Object.assign({},this.options,t)}},{key:"init",value:function(){}},{key:"_configurePageContainer",value:function(t){}},{key:"_configureToolbar",value:function(t){}},{key:"_bindNavigationHandlers",value:function(){}},{key:"extendNavBar",value:function(t){}}])&&o(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}()},5964:function(t,e,n){n(2675),n(9463),n(2259),n(5700),n(8706),n(2008),n(3792),n(9572),n(8130),n(9085),n(875),n(6099),n(825),n(7495),n(7764),n(5746),n(2953),n(8408);var r=n(2827),o=n(6257);function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function u(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,p(r.key),r)}}function a(t,e,n){return e=s(e),function(t,e){if(e&&("object"==i(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,l()?Reflect.construct(e,n||[],s(t).constructor):e.apply(t,n))}function l(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(l=function(){return!!t})()}function s(t){return s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},s(t)}function c(t,e){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},c(t,e)}function f(t,e,n){return(e=p(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function p(t){var e=function(t,e){if("object"!=i(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,"string");if("object"!=i(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==i(e)?e:e+""}var b=function(t){function e(){var t;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return f(t=a(this,e,[].concat(r)),"options",{enabled:!0,flipSpeed:1500,flipDelay:5e3,urlParams:!0}),f(t,"timer",null),t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&c(t,e)}(e,t),n=e,i=[{key:"init",value:function(){var t=this;if(this.options.enabled&&(this.br.bind(r.q.stop,(function(){return t.stop()})),this.options.urlParams)){var e=new URLSearchParams(window.location.search);e.get("flipSpeed")&&(this.options.flipSpeed=(0,o.parseAnimationSpeed)(e.get("flipSpeed"))||this.options.flipSpeed),e.get("flipDelay")&&(this.options.flipDelay=(0,o.parseAnimationSpeed)(e.get("flipDelay"))||this.options.flipDelay),"1"===e.get("autoflip")&&this.toggle()}}},{key:"_bindNavigationHandlers",value:function(){var t=this;if(this.options.enabled){var e=this.br.$(".BRicon");e.filter(".play").on("click",(function(){return t.toggle(),!1})),e.filter(".pause").on("click",(function(){return t.toggle(),!1}))}}},{key:"toggle",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(this.options.enabled){Object.assign(this.options,e),this.br.trigger(r.q.stop);var n=!1;this.br.constMode2up!=this.br.mode&&(n=!0,this.br.switchMode(this.br.constMode2up)),null==this.timer?("rl"==this.br.pageProgression&&n||this.br.next({triggerStop:!1,flipSpeed:this.options.flipSpeed}),this.br.$(".play").hide(),this.br.$(".pause").show(),this.timer=setInterval((function(){t.br.animating||(Math.max(t.br.twoPage.currentIndexL,t.br.twoPage.currentIndexR)>=t.br.book.getNumLeafs()-1?t.br.prev({triggerStop:!1,flipSpeed:t.options.flipSpeed}):t.br.next({triggerStop:!1,flipSpeed:t.options.flipSpeed}))}),(0,o.parseAnimationSpeed)(this.options.flipDelay))):this.stop()}}},{key:"stop",value:function(){this.options.enabled&&null!=this.timer&&(clearInterval(this.timer),this.br.$(".pause").hide(),this.br.$(".play").show(),this.timer=null)}}],i&&u(n.prototype,i),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,i}(n(472).S),y=window.BookReader;null==y||y.registerPlugin("autoplay",b)}},function(t){t(t.s=5964)}]);
2
2
  //# sourceMappingURL=plugin.autoplay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugins/plugin.autoplay.js","mappings":"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","sources":["webpack://@internetarchive/bookreader/./src/BookReaderPlugin.js","webpack://@internetarchive/bookreader/./src/plugins/plugin.autoplay.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 /** @abstract @protected */\n _bindNavigationHandlers() {}\n\n /**\n * @param {JQuery<HTMLElement>} $navBar\n */\n extendNavBar($navBar) {}\n}\n","// @ts-check\nimport { EVENTS } from \"../BookReader/events\";\nimport { parseAnimationSpeed } from \"../BookReader/utils\";\nimport { BookReaderPlugin } from \"../BookReaderPlugin\";\n\n/**\n * Plugin which adds an autoplay feature. Useful for kiosk situations.\n */\nexport class AutoplayPlugin extends BookReaderPlugin {\n options = {\n enabled: true,\n /**\n * @type {number | 'fast' | 'slow'}\n * How quickly the flip animation should run.\n **/\n flipSpeed: 1500,\n /** How long to pause on each page between flips */\n flipDelay: 5000,\n /** Allow controlling the autoflip/speed/delay from the url */\n urlParams: true,\n }\n\n timer = null;\n\n /** @override */\n init() {\n if (!this.options.enabled) return;\n\n this.br.bind(EVENTS.stop, () => this.stop());\n\n if (this.options.urlParams) {\n const urlParams = new URLSearchParams(window.location.search);\n if (urlParams.get('flipSpeed')) {\n this.options.flipSpeed = parseAnimationSpeed(urlParams.get('flipSpeed')) || this.options.flipSpeed;\n }\n if (urlParams.get('flipDelay')) {\n this.options.flipDelay = parseAnimationSpeed(urlParams.get('flipDelay')) || this.options.flipDelay;\n }\n if (urlParams.get('autoflip') === '1') {\n this.toggle();\n }\n }\n }\n\n /** @override */\n _bindNavigationHandlers() {\n if (!this.options.enabled) return;\n\n const jIcons = this.br.$('.BRicon');\n\n jIcons.filter('.play').on('click', () => {\n this.toggle();\n return false;\n });\n\n jIcons.filter('.pause').on('click', () => {\n this.toggle();\n return false;\n });\n }\n\n /**\n * Starts autoplay mode\n * @param {object} overrides\n * @param {number} overrides.flipSpeed\n * @param {number} overrides.flipDelay\n */\n toggle(overrides = null) {\n if (!this.options.enabled) return;\n\n Object.assign(this.options, overrides);\n this.br.trigger(EVENTS.stop);\n\n let bComingFrom1up = false;\n if (this.br.constMode2up != this.br.mode) {\n bComingFrom1up = true;\n this.br.switchMode(this.br.constMode2up);\n }\n\n if (null == this.timer) {\n // $$$ Draw events currently cause layout problems when they occur during animation.\n // There is a specific problem when changing from 1-up immediately to autoplay in RTL so\n // we workaround for now by not triggering immediate animation in that case.\n // See https://bugs.launchpad.net/gnubook/+bug/328327\n if (('rl' == this.br.pageProgression) && bComingFrom1up) {\n // don't flip immediately -- wait until timer fires\n } else {\n // flip immediately\n this.br.next({ triggerStop: false, flipSpeed: this.options.flipSpeed });\n }\n\n this.br.$('.play').hide();\n this.br.$('.pause').show();\n this.timer = setInterval(() => {\n if (this.br.animating) return;\n\n if (Math.max(this.br.twoPage.currentIndexL, this.br.twoPage.currentIndexR) >= this.br.book.getNumLeafs() - 1) {\n this.br.prev({ triggerStop: false, flipSpeed: this.options.flipSpeed }); // $$$ really what we want?\n } else {\n this.br.next({ triggerStop: false, flipSpeed: this.options.flipSpeed });\n }\n }, parseAnimationSpeed(this.options.flipDelay));\n } else {\n this.stop();\n }\n }\n\n /**\n * Stop autoplay mode, allowing animations to finish\n */\n stop() {\n if (!this.options.enabled) return;\n\n if (null != this.timer) {\n clearInterval(this.timer);\n this.br.$('.pause').hide();\n this.br.$('.play').show();\n this.timer = null;\n }\n }\n}\n\nconst BookReader = /** @type {typeof import('../BookReader').default} */(window.BookReader);\nBookReader?.registerPlugin('autoplay', AutoplayPlugin);\n"],"names":["BookReaderPlugin","br","_classCallCheck","this","options","key","value","Object","assign","pageContainer","$navBar","AutoplayPlugin","_BookReaderPlugin","_this","_len","arguments","length","args","Array","_key","_defineProperty","_callSuper","concat","enabled","flipSpeed","flipDelay","urlParams","_inherits","_this2","bind","EVENTS","stop","URLSearchParams","window","location","search","get","parseAnimationSpeed","toggle","_this3","jIcons","$","filter","on","_this4","overrides","undefined","trigger","bComingFrom1up","constMode2up","mode","switchMode","timer","pageProgression","next","triggerStop","hide","show","setInterval","animating","Math","max","twoPage","currentIndexL","currentIndexR","book","getNumLeafs","prev","clearInterval","BookReader","registerPlugin"],"sourceRoot":""}
1
+ {"version":3,"file":"plugins/plugin.autoplay.js","mappings":"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","sources":["webpack://@internetarchive/bookreader/./src/BookReaderPlugin.js","webpack://@internetarchive/bookreader/./src/plugins/plugin.autoplay.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","// @ts-check\nimport { EVENTS } from \"../BookReader/events\";\nimport { parseAnimationSpeed } from \"../BookReader/utils\";\nimport { BookReaderPlugin } from \"../BookReaderPlugin\";\n\n/**\n * Plugin which adds an autoplay feature. Useful for kiosk situations.\n */\nexport class AutoplayPlugin extends BookReaderPlugin {\n options = {\n enabled: true,\n /**\n * @type {number | 'fast' | 'slow'}\n * How quickly the flip animation should run.\n **/\n flipSpeed: 1500,\n /** How long to pause on each page between flips */\n flipDelay: 5000,\n /** Allow controlling the autoflip/speed/delay from the url */\n urlParams: true,\n }\n\n timer = null;\n\n /** @override */\n init() {\n if (!this.options.enabled) return;\n\n this.br.bind(EVENTS.stop, () => this.stop());\n\n if (this.options.urlParams) {\n const urlParams = new URLSearchParams(window.location.search);\n if (urlParams.get('flipSpeed')) {\n this.options.flipSpeed = parseAnimationSpeed(urlParams.get('flipSpeed')) || this.options.flipSpeed;\n }\n if (urlParams.get('flipDelay')) {\n this.options.flipDelay = parseAnimationSpeed(urlParams.get('flipDelay')) || this.options.flipDelay;\n }\n if (urlParams.get('autoflip') === '1') {\n this.toggle();\n }\n }\n }\n\n /** @override */\n _bindNavigationHandlers() {\n if (!this.options.enabled) return;\n\n const jIcons = this.br.$('.BRicon');\n\n jIcons.filter('.play').on('click', () => {\n this.toggle();\n return false;\n });\n\n jIcons.filter('.pause').on('click', () => {\n this.toggle();\n return false;\n });\n }\n\n /**\n * Starts autoplay mode\n * @param {object} overrides\n * @param {number} overrides.flipSpeed\n * @param {number} overrides.flipDelay\n */\n toggle(overrides = null) {\n if (!this.options.enabled) return;\n\n Object.assign(this.options, overrides);\n this.br.trigger(EVENTS.stop);\n\n let bComingFrom1up = false;\n if (this.br.constMode2up != this.br.mode) {\n bComingFrom1up = true;\n this.br.switchMode(this.br.constMode2up);\n }\n\n if (null == this.timer) {\n // $$$ Draw events currently cause layout problems when they occur during animation.\n // There is a specific problem when changing from 1-up immediately to autoplay in RTL so\n // we workaround for now by not triggering immediate animation in that case.\n // See https://bugs.launchpad.net/gnubook/+bug/328327\n if (('rl' == this.br.pageProgression) && bComingFrom1up) {\n // don't flip immediately -- wait until timer fires\n } else {\n // flip immediately\n this.br.next({ triggerStop: false, flipSpeed: this.options.flipSpeed });\n }\n\n this.br.$('.play').hide();\n this.br.$('.pause').show();\n this.timer = setInterval(() => {\n if (this.br.animating) return;\n\n if (Math.max(this.br.twoPage.currentIndexL, this.br.twoPage.currentIndexR) >= this.br.book.getNumLeafs() - 1) {\n this.br.prev({ triggerStop: false, flipSpeed: this.options.flipSpeed }); // $$$ really what we want?\n } else {\n this.br.next({ triggerStop: false, flipSpeed: this.options.flipSpeed });\n }\n }, parseAnimationSpeed(this.options.flipDelay));\n } else {\n this.stop();\n }\n }\n\n /**\n * Stop autoplay mode, allowing animations to finish\n */\n stop() {\n if (!this.options.enabled) return;\n\n if (null != this.timer) {\n clearInterval(this.timer);\n this.br.$('.pause').hide();\n this.br.$('.play').show();\n this.timer = null;\n }\n }\n}\n\nconst BookReader = /** @type {typeof import('../BookReader').default} */(window.BookReader);\nBookReader?.registerPlugin('autoplay', AutoplayPlugin);\n"],"names":["BookReaderPlugin","br","_classCallCheck","this","options","key","value","Object","assign","pageContainer","$toolbarElement","$navBar","AutoplayPlugin","_BookReaderPlugin","_this","_len","arguments","length","args","Array","_key","_defineProperty","_callSuper","concat","enabled","flipSpeed","flipDelay","urlParams","_inherits","_this2","bind","EVENTS","stop","URLSearchParams","window","location","search","get","parseAnimationSpeed","toggle","_this3","jIcons","$","filter","on","_this4","overrides","undefined","trigger","bComingFrom1up","constMode2up","mode","switchMode","timer","pageProgression","next","triggerStop","hide","show","setInterval","animating","Math","max","twoPage","currentIndexL","currentIndexR","book","getNumLeafs","prev","clearInterval","BookReader","registerPlugin"],"sourceRoot":""}
@@ -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],{472:function(t,e,r){function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,i(n.key),n)}}function i(t){var e=function(t,e){if("object"!=n(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var o=r.call(t,"string");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==n(e)?e:e+""}r.d(e,{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 t=function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.br=e,this.options},(e=[{key:"setup",value:function(t){this.options=Object.assign({},this.options,t)}},{key:"init",value:function(){}},{key:"_configurePageContainer",value:function(t){}},{key:"_bindNavigationHandlers",value:function(){}},{key:"extendNavBar",value:function(t){}}])&&o(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}()},7045:function(t,e,r){r(2675),r(9463),r(6412),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(6681),a=r(8900),c=n.qy`
2
+ "use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[858],{472:function(t,e,r){function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,i(n.key),n)}}function i(t){var e=function(t,e){if("object"!=n(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var o=r.call(t,"string");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==n(e)?e:e+""}r.d(e,{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 t=function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.br=e,this.options},(e=[{key:"setup",value:function(t){this.options=Object.assign({},this.options,t)}},{key:"init",value:function(){}},{key:"_configurePageContainer",value:function(t){}},{key:"_configureToolbar",value:function(t){}},{key:"_bindNavigationHandlers",value:function(){}},{key:"extendNavBar",value:function(t){}}])&&o(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}()},7045:function(t,e,r){r(2675),r(9463),r(6412),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(6681),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"
@@ -22,5 +22,5 @@
22
22
  .stroke-color {
23
23
  stroke: var(--iconStrokeColor);
24
24
  }
25
- `}render(){return c}}customElements.define("ia-icon-toc",s);var u,l,f,p,h,d,y=r(472),v=r(1743),m=r(1669);function b(t){return b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},b(t)}function g(){g=function(){return t};var t={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(t,e){["method","field"].forEach((function(r){e.forEach((function(e){e.kind===r&&"own"===e.placement&&this.defineClassElement(t,e)}),this)}),this)},initializeClassElements:function(t,e){var r=t.prototype;["method","field"].forEach((function(n){e.forEach((function(e){var o=e.placement;if(e.kind===n&&("static"===o||"prototype"===o)){var i="static"===o?t:r;this.defineClassElement(i,e)}}),this)}),this)},defineClassElement:function(t,e){var r=e.descriptor;if("field"===e.kind){var n=e.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(t)}}Object.defineProperty(t,e.key,r)},decorateClass:function(t,e){var r=[],n=[],o={static:[],prototype:[],own:[]};if(t.forEach((function(t){this.addElementPlacement(t,o)}),this),t.forEach((function(t){if(!x(t))return r.push(t);var e=this.decorateElement(t,o);r.push(e.element),r.push.apply(r,e.extras),n.push.apply(n,e.finishers)}),this),!e)return{elements:r,finishers:n};var i=this.decorateConstructor(r,e);return n.push.apply(n,i.finishers),i.finishers=n,i},addElementPlacement:function(t,e,r){var n=e[t.placement];if(!r&&-1!==n.indexOf(t.key))throw new TypeError("Duplicated element ("+t.key+")");n.push(t.key)},decorateElement:function(t,e){for(var r=[],n=[],o=t.decorators,i=o.length-1;i>=0;i--){var a=e[t.placement];a.splice(a.indexOf(t.key),1);var c=this.fromElementDescriptor(t),s=this.toElementFinisherExtras((0,o[i])(c)||c);t=s.element,this.addElementPlacement(t,e),s.finisher&&n.push(s.finisher);var u=s.extras;if(u){for(var l=0;l<u.length;l++)this.addElementPlacement(u[l],e);r.push.apply(r,u)}}return{element:t,finishers:n,extras:r}},decorateConstructor:function(t,e){for(var r=[],n=e.length-1;n>=0;n--){var o=this.fromClassDescriptor(t),i=this.toClassDescriptor((0,e[n])(o)||o);if(void 0!==i.finisher&&r.push(i.finisher),void 0!==i.elements){t=i.elements;for(var a=0;a<t.length-1;a++)for(var c=a+1;c<t.length;c++)if(t[a].key===t[c].key&&t[a].placement===t[c].placement)throw new TypeError("Duplicated element ("+t[a].key+")")}}return{elements:t,finishers:r}},fromElementDescriptor:function(t){var e={kind:t.kind,key:t.key,placement:t.placement,descriptor:t.descriptor};return Object.defineProperty(e,Symbol.toStringTag,{value:"Descriptor",configurable:!0}),"field"===t.kind&&(e.initializer=t.initializer),e},toElementDescriptors:function(t){if(void 0!==t)return(e=t,function(t){if(Array.isArray(t))return t}(e)||O(e)||j(e)||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(t){var e=this.toElementDescriptor(t);return this.disallowProperty(t,"finisher","An element descriptor"),this.disallowProperty(t,"extras","An element descriptor"),e}),this);var e},toElementDescriptor:function(t){var e=t.kind+"";if("method"!==e&&"field"!==e)throw new TypeError('An element descriptor\'s .kind property must be either "method" or "field", but a decorator created an element descriptor with .kind "'+e+'"');var r=G(t.key),n=t.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=t.descriptor;this.disallowProperty(t,"elements","An element descriptor");var i={kind:e,key:r,placement:n,descriptor:Object.assign({},o)};return"field"!==e?this.disallowProperty(t,"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=t.initializer),i},toElementFinisherExtras:function(t){return{element:this.toElementDescriptor(t),finisher:P(t,"finisher"),extras:this.toElementDescriptors(t.extras)}},fromClassDescriptor:function(t){var e={kind:"class",elements:t.map(this.fromElementDescriptor,this)};return Object.defineProperty(e,Symbol.toStringTag,{value:"Descriptor",configurable:!0}),e},toClassDescriptor:function(t){var e=t.kind+"";if("class"!==e)throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator created a class descriptor with .kind "'+e+'"');this.disallowProperty(t,"key","A class descriptor"),this.disallowProperty(t,"placement","A class descriptor"),this.disallowProperty(t,"descriptor","A class descriptor"),this.disallowProperty(t,"initializer","A class descriptor"),this.disallowProperty(t,"extras","A class descriptor");var r=P(t,"finisher");return{elements:this.toElementDescriptors(t.elements),finisher:r}},runClassFinishers:function(t,e){for(var r=0;r<e.length;r++){var n=(0,e[r])(t);if(void 0!==n){if("function"!=typeof n)throw new TypeError("Finishers must return a constructor.");t=n}}return t},disallowProperty:function(t,e,r){if(void 0!==t[e])throw new TypeError(r+" can't have a ."+e+" property.")}};return t}function w(t){var e,r=G(t.key);"method"===t.kind?e={value:t.value,writable:!0,configurable:!0,enumerable:!1}:"get"===t.kind?e={get:t.value,configurable:!0,enumerable:!1}:"set"===t.kind?e={set:t.value,configurable:!0,enumerable:!1}:"field"===t.kind&&(e={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===t.kind?"field":"method",key:r,placement:t.static?"static":"field"===t.kind?"own":"prototype",descriptor:e};return t.decorators&&(n.decorators=t.decorators),"field"===t.kind&&(n.initializer=t.value),n}function k(t,e){void 0!==t.descriptor.get?e.descriptor.get=t.descriptor.get:e.descriptor.set=t.descriptor.set}function x(t){return t.decorators&&t.decorators.length}function E(t){return void 0!==t&&!(void 0===t.value&&void 0===t.writable)}function P(t,e){var r=t[e];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+e+"' to be a function");return r}function j(t,e){if(t){if("string"==typeof t)return C(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?C(t,e):void 0}}function O(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function C(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function _(t,e){return e||(e=t.slice(0)),Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(e)}}))}function I(){I=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var i=e&&e.prototype instanceof m?e:m,a=Object.create(i.prototype),c=new L(n||[]);return o(a,"_invoke",{value:C(t,r,c)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var p="suspendedStart",h="suspendedYield",d="executing",y="completed",v={};function m(){}function g(){}function w(){}var k={};u(k,a,(function(){return this}));var x=Object.getPrototypeOf,E=x&&x(x(A([])));E&&E!==r&&n.call(E,a)&&(k=E);var P=w.prototype=m.prototype=Object.create(k);function j(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function O(t,e){function r(o,i,a,c){var s=f(t[o],t,i);if("throw"!==s.type){var u=s.arg,l=u.value;return l&&"object"==b(l)&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(l).then((function(t){u.value=t,a(u)}),(function(t){return r("throw",t,a,c)}))}c(s.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function C(e,r,n){var o=p;return function(i,a){if(o===d)throw Error("Generator is already running");if(o===y){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var s=_(c,n);if(s){if(s===v)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=y,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=d;var u=f(e,r,n);if("normal"===u.type){if(o=n.done?y:h,u.arg===v)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(o=y,n.method="throw",n.arg=u.arg)}}}function _(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,_(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function S(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function T(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(S,this),this.reset(!0)}function A(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o<e.length;)if(n.call(e,o))return r.value=e[o],r.done=!1,r;return r.value=t,r.done=!0,r};return i.next=i}}throw new TypeError(b(e)+" is not iterable")}return g.prototype=w,o(P,"constructor",{value:w,configurable:!0}),o(w,"constructor",{value:g,configurable:!0}),g.displayName=u(w,s,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===g||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,u(t,s,"GeneratorFunction")),t.prototype=Object.create(P),t},e.awrap=function(t){return{__await:t}},j(O.prototype),u(O.prototype,c,(function(){return this})),e.AsyncIterator=O,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new O(l(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},j(P),u(P,s,"Generator"),u(P,a,(function(){return this})),u(P,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=A,L.prototype={constructor:L,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(T),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function o(n,o){return c.type="throw",c.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var s=n.call(a,"catchLoc"),u=n.call(a,"finallyLoc");if(s&&u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,v):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),v},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),T(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;T(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:A(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}function S(t,e,r,n,o,i,a){try{var c=t[i](a),s=c.value}catch(t){return void r(t)}c.done?e(s):Promise.resolve(s).then(n,o)}function T(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){S(i,n,o,a,c,"next",t)}function c(t){S(i,n,o,a,c,"throw",t)}a(void 0)}))}}function L(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function A(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,G(n.key),n)}}function R(t,e,r){return e&&A(t.prototype,e),r&&A(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function D(t,e,r){return e=N(e),function(t,e){if(e&&("object"==b(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,B()?Reflect.construct(e,r||[],N(t).constructor):e.apply(t,r))}function B(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(B=function(){return!!t})()}function F(t,e,r,n){var o=z(N(1&n?t.prototype:t),e,r);return 2&n&&"function"==typeof o?function(t){return o.apply(r,t)}:o}function z(){return z="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,e,r){var n=function(t,e){for(;!{}.hasOwnProperty.call(t,e)&&null!==(t=N(t)););return t}(t,e);if(n){var o=Object.getOwnPropertyDescriptor(n,e);return o.get?o.get.call(arguments.length<3?t:r):o.value}},z.apply(null,arguments)}function N(t){return N=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},N(t)}function H(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&M(t,e)}function M(t,e){return M=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},M(t,e)}function q(t,e,r){return(e=G(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function G(t){var e=function(t,e){if("object"!=b(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=b(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==b(e)?e:e+""}var U,W,$,Y,Z,V,X,J=window.BookReader,K=function(t){function e(){var t;L(this,e);for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return q(t=D(this,e,[].concat(n)),"options",{enabled:!0,openLibraryHost:"https://openlibrary.org",openLibraryId:"",internetArchiveId:"",olHost:"https://openlibrary.org",bookId:"{{bookId}}"}),q(t,"_tocEntries",void 0),q(t,"_chaptersPanel",void 0),t}return H(e,t),R(e,[{key:"setup",value:function(t){F(e,"setup",this,3)([t]),this.options.internetArchiveId=this.options.internetArchiveId||this.options.bookId,this.options.openLibraryHost=this.options.openLibraryHost||this.options.olHost}},{key:"init",value:(o=T(I().mark((function t(){var e,r,n,o,i=this;return I().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.options.enabled&&"embed"!==this.br.ui){t.next=2;break}return t.abrupt("return");case 2:if(r=null,null===(e=this.br.options.table_of_contents)||void 0===e||!e.length){t.next=7;break}r=this.br.options.table_of_contents,t.next=11;break;case 7:return t.next=9,this.getOpenLibraryRecord();case 9:null!=(o=t.sent)&&null!==(n=o.table_of_contents)&&void 0!==n&&n.length&&(r=o.table_of_contents);case 11:r&&(this._tocEntries=r.map((function(t){return Object.assign({},t,{pageIndex:"number"==typeof t.leaf?i.br.book.leafNumToIndex(t.leaf):t.pagenum?i.br.book.getPageIndex(t.pagenum):void 0})})),this._render(),this.br.bind(J.eventNames.pageChanged,(function(){return i._updateCurrent()})));case 12:case"end":return t.stop()}}),t,this)}))),function(){return o.apply(this,arguments)})},{key:"_render",value:function(){var t=this;this.br.shell.menuProviders.chapters={id:"chapters",icon:(0,n.qy)(u||(u=_(['<ia-icon-toc 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(e){t._updateCurrent(e),t.br.jumpToIndex(e)}),(function(e){t._chaptersPanel=e.target,t._updateCurrent()}))},this.br.shell.addMenuShortcut("chapters"),this.br.shell.updateMenuContents(),this._tocEntries.forEach((function(e,r){return t._renderMarker(e,r)}))}},{key:"_renderMarker",value:function(t,e){var r=this;if(null!=t.pageIndex){var n=[t.label,t.title].filter((function(t){return t})).join(" ")||"Chapter ".concat(e+1),o=J.util.cssPercentage(t.pageIndex,this.br.book.getNumLeafs()-1);m("<div></div>").append(m("<div />").text(n).append(m('<div class="BRchapterPage" />').text(this.br.book.getPageName(t.pageIndex)))).addClass("BRchapter").css({left:o}).appendTo(this.br.$(".BRnavline")).on("mouseenter",(function(t){var e=t.currentTarget,n=e.querySelector("div"),o=n.getBoundingClientRect(),i=e.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(t.target).addClass("front")})).on("mouseleave",(function(t){return m(t.target).removeClass("front")})).on("click",(function(){r._updateCurrent(t.pageIndex),r.br.jumpToIndex(t.pageIndex)})),this.br.$(".BRchapter, .BRsearch").each((function(t,e){var r=m(e);r.on("mouseenter",(function(){return r.addClass("front")})).on("mouseleave",(function(){return r.removeClass("front")}))}))}}},{key:"getOpenLibraryRecord",value:(r=T(I().mark((function t(){var e,r,n,o,i,a;return I().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e=(0,v.g)(this.options.openLibraryHost,this.br.options.vars),!this.options.openLibraryId){t.next=6;break}return r=(0,v.g)(this.options.openLibraryId,this.br.options.vars),t.next=5,m.ajax({url:"".concat(e,"/books/").concat(r,".json")});case 5:return t.abrupt("return",t.sent);case 6:if(!this.options.internetArchiveId){t.next=17;break}return o=(0,v.g)(this.options.internetArchiveId,this.br.options.vars),i="".concat(e,"/query.json?type=/type/edition&*=&"),t.next=11,m.ajax({url:i+new URLSearchParams({ocaid:o,limit:"1"})});case 11:if((a=t.sent)&&a.length){t.next=16;break}return t.next=15,m.ajax({url:i+new URLSearchParams({source_records:"ia:".concat(o),limit:"1"})});case 15:a=t.sent;case 16:return t.abrupt("return",null===(n=a)||void 0===n?void 0:n[0]);case 17:return t.abrupt("return",null);case 18:case"end":return t.stop()}}),t,this)}))),function(){return r.apply(this,arguments)})},{key:"_updateCurrent",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2==this.br.mode?Math.max.apply(Math,function(t){if(Array.isArray(t))return C(t)}(t=this.br.displayedIndices)||O(t)||j(t)||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(t){return null!=t.pageIndex})).reverse(),n=r[r.findIndex((function(t){return t.pageIndex<=e}))];this._chaptersPanel&&(this._chaptersPanel.currentChapter=n)}}]);var r,o}(y.S);null==J||J.registerPlugin("chapters",K),U=[(0,o.EM)("br-chapters-panel")],W=n.WF,Z=g(),$=function(t){Z.initializeInstanceElements(t,X.elements)},V={F:Y=function(t){function e(t){var r;return L(this,e),r=D(this,e),$(r),r.contents=t,r}return H(e,t),R(e)}(W),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 t=this;return(0,n.qy)(f||(f=_(["\n <ol>\n ","\n </ol>\n "])),this.contents.map((function(e){return t.renderTOCEntry(e)})))}},{kind:"method",key:"renderTOCEntry",value:function(t){var e,r=this,o=[t.label,t.title].filter((function(t){return t})).join(" "),c=null!=t.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>"])),c?"clickable":"",t==this.currentChapter?"current":"",(0,a.W)({marginLeft:10*(t.level-1)+"px"}),null!=(e=c?"BRTOCPanel|GoToChapter":void 0)?e:i.s6,(function(){return r.jumpToPage(t.pageIndex)}),o,t.pagenum?(0,n.qy)(h||(h=_(['\n <br />\n <span class="BRTOCElementPage">Page ',"</span>\n "])),t.pagenum):n.s6)}},{kind:"method",key:"connectedCallback",value:function(){F(Y,"connectedCallback",this,3)([]),this.dispatchEvent(new CustomEvent("connected"))}},{kind:"method",key:"updated",value:function(t){var e;t.has("currentChapter")&&(null===(e=this.shadowRoot.querySelector("li.current"))||void 0===e||e.scrollIntoView({block:"nearest",behavior:"smooth"}))}},{kind:"get",static:!0,key:"styles",value:function(){return(0,n.AH)(d||(d=_(["\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 }"])))}}]},X=Z.decorateClass(function(t){for(var e=[],r=function(t){return"method"===t.kind&&t.key===i.key&&t.placement===i.placement},n=0;n<t.length;n++){var o,i=t[n];if("method"===i.kind&&(o=e.find(r)))if(E(i.descriptor)||E(o.descriptor)){if(x(i)||x(o))throw new ReferenceError("Duplicated methods ("+i.key+") can't be decorated.");o.descriptor=i.descriptor}else{if(x(i)){if(x(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 e.push(i)}return e}(V.d.map(w)),U),Z.initializeClassElements(V.F,X.elements),Z.runClassFinishers(V.F,X.finishers)},1743:function(t,e,r){function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function o(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:i;return null==t?void 0:t.replace(/\{\{([^}]*?)\}\}/g,(function(t,i){if(!i)return t;var a,c=function(t){if(Array.isArray(t))return t}(a=i.split("|").map((function(t){return t.trim()})))||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(a)||function(t,e){if(t){if("string"==typeof t)return n(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(t,e):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=c.slice(1);if(!(s in r)&&!(s in e))return t;var l=s in r?r[s]:s in e?e[s]:null;return u.map((function(t){return o[t]})).reduce((function(t,e){return e(t)}),l&&l.toString())}))}r.d(e,{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}},706:function(t,e,r){var n=r(350).PROPER,o=r(9039),i=r(7452);t.exports=function(t){return o((function(){return!!i[t]()||"​…᠎"!=="​…᠎"[t]()||n&&i[t].name!==t}))}},2762:function(t,e,r){var n=r(6518),o=r(3802).trim;n({target:"String",proto:!0,forced:r(706)("trim")},{trim:function(){return o(this)}})}},function(t){t(t.s=7045)}]);
25
+ `}render(){return c}}customElements.define("ia-icon-toc",s);var u,l,f,p,h,d,y=r(472),v=r(1743),m=r(1669);function b(t){return b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},b(t)}function g(){g=function(){return t};var t={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(t,e){["method","field"].forEach((function(r){e.forEach((function(e){e.kind===r&&"own"===e.placement&&this.defineClassElement(t,e)}),this)}),this)},initializeClassElements:function(t,e){var r=t.prototype;["method","field"].forEach((function(n){e.forEach((function(e){var o=e.placement;if(e.kind===n&&("static"===o||"prototype"===o)){var i="static"===o?t:r;this.defineClassElement(i,e)}}),this)}),this)},defineClassElement:function(t,e){var r=e.descriptor;if("field"===e.kind){var n=e.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(t)}}Object.defineProperty(t,e.key,r)},decorateClass:function(t,e){var r=[],n=[],o={static:[],prototype:[],own:[]};if(t.forEach((function(t){this.addElementPlacement(t,o)}),this),t.forEach((function(t){if(!x(t))return r.push(t);var e=this.decorateElement(t,o);r.push(e.element),r.push.apply(r,e.extras),n.push.apply(n,e.finishers)}),this),!e)return{elements:r,finishers:n};var i=this.decorateConstructor(r,e);return n.push.apply(n,i.finishers),i.finishers=n,i},addElementPlacement:function(t,e,r){var n=e[t.placement];if(!r&&-1!==n.indexOf(t.key))throw new TypeError("Duplicated element ("+t.key+")");n.push(t.key)},decorateElement:function(t,e){for(var r=[],n=[],o=t.decorators,i=o.length-1;i>=0;i--){var a=e[t.placement];a.splice(a.indexOf(t.key),1);var c=this.fromElementDescriptor(t),s=this.toElementFinisherExtras((0,o[i])(c)||c);t=s.element,this.addElementPlacement(t,e),s.finisher&&n.push(s.finisher);var u=s.extras;if(u){for(var l=0;l<u.length;l++)this.addElementPlacement(u[l],e);r.push.apply(r,u)}}return{element:t,finishers:n,extras:r}},decorateConstructor:function(t,e){for(var r=[],n=e.length-1;n>=0;n--){var o=this.fromClassDescriptor(t),i=this.toClassDescriptor((0,e[n])(o)||o);if(void 0!==i.finisher&&r.push(i.finisher),void 0!==i.elements){t=i.elements;for(var a=0;a<t.length-1;a++)for(var c=a+1;c<t.length;c++)if(t[a].key===t[c].key&&t[a].placement===t[c].placement)throw new TypeError("Duplicated element ("+t[a].key+")")}}return{elements:t,finishers:r}},fromElementDescriptor:function(t){var e={kind:t.kind,key:t.key,placement:t.placement,descriptor:t.descriptor};return Object.defineProperty(e,Symbol.toStringTag,{value:"Descriptor",configurable:!0}),"field"===t.kind&&(e.initializer=t.initializer),e},toElementDescriptors:function(t){if(void 0!==t)return(e=t,function(t){if(Array.isArray(t))return t}(e)||O(e)||j(e)||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(t){var e=this.toElementDescriptor(t);return this.disallowProperty(t,"finisher","An element descriptor"),this.disallowProperty(t,"extras","An element descriptor"),e}),this);var e},toElementDescriptor:function(t){var e=t.kind+"";if("method"!==e&&"field"!==e)throw new TypeError('An element descriptor\'s .kind property must be either "method" or "field", but a decorator created an element descriptor with .kind "'+e+'"');var r=G(t.key),n=t.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=t.descriptor;this.disallowProperty(t,"elements","An element descriptor");var i={kind:e,key:r,placement:n,descriptor:Object.assign({},o)};return"field"!==e?this.disallowProperty(t,"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=t.initializer),i},toElementFinisherExtras:function(t){return{element:this.toElementDescriptor(t),finisher:P(t,"finisher"),extras:this.toElementDescriptors(t.extras)}},fromClassDescriptor:function(t){var e={kind:"class",elements:t.map(this.fromElementDescriptor,this)};return Object.defineProperty(e,Symbol.toStringTag,{value:"Descriptor",configurable:!0}),e},toClassDescriptor:function(t){var e=t.kind+"";if("class"!==e)throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator created a class descriptor with .kind "'+e+'"');this.disallowProperty(t,"key","A class descriptor"),this.disallowProperty(t,"placement","A class descriptor"),this.disallowProperty(t,"descriptor","A class descriptor"),this.disallowProperty(t,"initializer","A class descriptor"),this.disallowProperty(t,"extras","A class descriptor");var r=P(t,"finisher");return{elements:this.toElementDescriptors(t.elements),finisher:r}},runClassFinishers:function(t,e){for(var r=0;r<e.length;r++){var n=(0,e[r])(t);if(void 0!==n){if("function"!=typeof n)throw new TypeError("Finishers must return a constructor.");t=n}}return t},disallowProperty:function(t,e,r){if(void 0!==t[e])throw new TypeError(r+" can't have a ."+e+" property.")}};return t}function w(t){var e,r=G(t.key);"method"===t.kind?e={value:t.value,writable:!0,configurable:!0,enumerable:!1}:"get"===t.kind?e={get:t.value,configurable:!0,enumerable:!1}:"set"===t.kind?e={set:t.value,configurable:!0,enumerable:!1}:"field"===t.kind&&(e={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===t.kind?"field":"method",key:r,placement:t.static?"static":"field"===t.kind?"own":"prototype",descriptor:e};return t.decorators&&(n.decorators=t.decorators),"field"===t.kind&&(n.initializer=t.value),n}function k(t,e){void 0!==t.descriptor.get?e.descriptor.get=t.descriptor.get:e.descriptor.set=t.descriptor.set}function x(t){return t.decorators&&t.decorators.length}function E(t){return void 0!==t&&!(void 0===t.value&&void 0===t.writable)}function P(t,e){var r=t[e];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+e+"' to be a function");return r}function j(t,e){if(t){if("string"==typeof t)return _(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_(t,e):void 0}}function O(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function _(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function C(t,e){return e||(e=t.slice(0)),Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(e)}}))}function I(){I=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var i=e&&e.prototype instanceof m?e:m,a=Object.create(i.prototype),c=new L(n||[]);return o(a,"_invoke",{value:_(t,r,c)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var p="suspendedStart",h="suspendedYield",d="executing",y="completed",v={};function m(){}function g(){}function w(){}var k={};u(k,a,(function(){return this}));var x=Object.getPrototypeOf,E=x&&x(x(A([])));E&&E!==r&&n.call(E,a)&&(k=E);var P=w.prototype=m.prototype=Object.create(k);function j(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function O(t,e){function r(o,i,a,c){var s=f(t[o],t,i);if("throw"!==s.type){var u=s.arg,l=u.value;return l&&"object"==b(l)&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(l).then((function(t){u.value=t,a(u)}),(function(t){return r("throw",t,a,c)}))}c(s.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function _(e,r,n){var o=p;return function(i,a){if(o===d)throw Error("Generator is already running");if(o===y){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var s=C(c,n);if(s){if(s===v)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=y,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=d;var u=f(e,r,n);if("normal"===u.type){if(o=n.done?y:h,u.arg===v)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(o=y,n.method="throw",n.arg=u.arg)}}}function C(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,C(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function S(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function T(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(S,this),this.reset(!0)}function A(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o<e.length;)if(n.call(e,o))return r.value=e[o],r.done=!1,r;return r.value=t,r.done=!0,r};return i.next=i}}throw new TypeError(b(e)+" is not iterable")}return g.prototype=w,o(P,"constructor",{value:w,configurable:!0}),o(w,"constructor",{value:g,configurable:!0}),g.displayName=u(w,s,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===g||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,u(t,s,"GeneratorFunction")),t.prototype=Object.create(P),t},e.awrap=function(t){return{__await:t}},j(O.prototype),u(O.prototype,c,(function(){return this})),e.AsyncIterator=O,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new O(l(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},j(P),u(P,s,"Generator"),u(P,a,(function(){return this})),u(P,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=A,L.prototype={constructor:L,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(T),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function o(n,o){return c.type="throw",c.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var s=n.call(a,"catchLoc"),u=n.call(a,"finallyLoc");if(s&&u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,v):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),v},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),T(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;T(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:A(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}function S(t,e,r,n,o,i,a){try{var c=t[i](a),s=c.value}catch(t){return void r(t)}c.done?e(s):Promise.resolve(s).then(n,o)}function T(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){S(i,n,o,a,c,"next",t)}function c(t){S(i,n,o,a,c,"throw",t)}a(void 0)}))}}function L(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function A(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,G(n.key),n)}}function R(t,e,r){return e&&A(t.prototype,e),r&&A(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function D(t,e,r){return e=N(e),function(t,e){if(e&&("object"==b(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,B()?Reflect.construct(e,r||[],N(t).constructor):e.apply(t,r))}function B(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(B=function(){return!!t})()}function F(t,e,r,n){var o=z(N(1&n?t.prototype:t),e,r);return 2&n&&"function"==typeof o?function(t){return o.apply(r,t)}:o}function z(){return z="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,e,r){var n=function(t,e){for(;!{}.hasOwnProperty.call(t,e)&&null!==(t=N(t)););return t}(t,e);if(n){var o=Object.getOwnPropertyDescriptor(n,e);return o.get?o.get.call(arguments.length<3?t:r):o.value}},z.apply(null,arguments)}function N(t){return N=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},N(t)}function H(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&M(t,e)}function M(t,e){return M=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},M(t,e)}function q(t,e,r){return(e=G(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function G(t){var e=function(t,e){if("object"!=b(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=b(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==b(e)?e:e+""}var U,W,$,Y,Z,V,X,J=window.BookReader,K=function(t){function e(){var t;L(this,e);for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return q(t=D(this,e,[].concat(n)),"options",{enabled:!0,openLibraryHost:"https://openlibrary.org",openLibraryId:"",internetArchiveId:"",olHost:"https://openlibrary.org",bookId:"{{bookId}}"}),q(t,"_tocEntries",void 0),q(t,"_chaptersPanel",void 0),t}return H(e,t),R(e,[{key:"setup",value:function(t){F(e,"setup",this,3)([t]),this.options.internetArchiveId=this.options.internetArchiveId||this.options.bookId,this.options.openLibraryHost=this.options.openLibraryHost||this.options.olHost}},{key:"init",value:(o=T(I().mark((function t(){var e,r,n,o,i=this;return I().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.options.enabled&&"embed"!==this.br.ui){t.next=2;break}return t.abrupt("return");case 2:if(r=null,null===(e=this.br.options.table_of_contents)||void 0===e||!e.length){t.next=7;break}r=this.br.options.table_of_contents,t.next=11;break;case 7:return t.next=9,this.getOpenLibraryRecord();case 9:null!=(o=t.sent)&&null!==(n=o.table_of_contents)&&void 0!==n&&n.length&&(r=o.table_of_contents);case 11:r&&(this._tocEntries=r.map((function(t){return Object.assign({},t,{pageIndex:"number"==typeof t.leaf?i.br.book.leafNumToIndex(t.leaf):t.pagenum?i.br.book.getPageIndex(t.pagenum):void 0})})),this._render(),this.br.bind(J.eventNames.pageChanged,(function(){return i._updateCurrent()})));case 12:case"end":return t.stop()}}),t,this)}))),function(){return o.apply(this,arguments)})},{key:"_render",value:function(){var t=this;this.br.shell.menuProviders.chapters={id:"chapters",icon:(0,n.qy)(u||(u=C(['<ia-icon-toc style="width: var(--iconWidth); height: var(--iconHeight);"></ia-icon-toc>']))),label:"Table of Contents",component:(0,n.qy)(l||(l=C(['<br-chapters-panel\n .contents="','"\n .jumpToPage="','"\n @connected="','"\n />'])),this._tocEntries,(function(e){t._updateCurrent(e),t.br.jumpToIndex(e)}),(function(e){t._chaptersPanel=e.target,t._updateCurrent()}))},this.br.shell.addMenuShortcut("chapters"),this.br.shell.updateMenuContents(),this._tocEntries.forEach((function(e,r){return t._renderMarker(e,r)}))}},{key:"_renderMarker",value:function(t,e){var r=this;if(null!=t.pageIndex){var n=[t.label,t.title].filter((function(t){return t})).join(" ")||"Chapter ".concat(e+1),o=J.util.cssPercentage(t.pageIndex,this.br.book.getNumLeafs()-1);m("<div></div>").append(m("<div />").text(n).append(m('<div class="BRchapterPage" />').text(this.br.book.getPageName(t.pageIndex)))).addClass("BRchapter").css({left:o}).appendTo(this.br.$(".BRnavline")).on("mouseenter",(function(t){var e=t.currentTarget,n=e.querySelector("div"),o=n.getBoundingClientRect(),i=e.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(t.target).addClass("front")})).on("mouseleave",(function(t){return m(t.target).removeClass("front")})).on("click",(function(){r._updateCurrent(t.pageIndex),r.br.jumpToIndex(t.pageIndex)})),this.br.$(".BRchapter, .BRsearch").each((function(t,e){var r=m(e);r.on("mouseenter",(function(){return r.addClass("front")})).on("mouseleave",(function(){return r.removeClass("front")}))}))}}},{key:"getOpenLibraryRecord",value:(r=T(I().mark((function t(){var e,r,n,o,i,a;return I().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e=(0,v.g)(this.options.openLibraryHost,this.br.options.vars),!this.options.openLibraryId){t.next=6;break}return r=(0,v.g)(this.options.openLibraryId,this.br.options.vars),t.next=5,m.ajax({url:"".concat(e,"/books/").concat(r,".json")});case 5:return t.abrupt("return",t.sent);case 6:if(!this.options.internetArchiveId){t.next=17;break}return o=(0,v.g)(this.options.internetArchiveId,this.br.options.vars),i="".concat(e,"/query.json?type=/type/edition&*=&"),t.next=11,m.ajax({url:i+new URLSearchParams({ocaid:o,limit:"1"})});case 11:if((a=t.sent)&&a.length){t.next=16;break}return t.next=15,m.ajax({url:i+new URLSearchParams({source_records:"ia:".concat(o),limit:"1"})});case 15:a=t.sent;case 16:return t.abrupt("return",null===(n=a)||void 0===n?void 0:n[0]);case 17:return t.abrupt("return",null);case 18:case"end":return t.stop()}}),t,this)}))),function(){return r.apply(this,arguments)})},{key:"_updateCurrent",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2==this.br.mode?Math.max.apply(Math,function(t){if(Array.isArray(t))return _(t)}(t=this.br.displayedIndices)||O(t)||j(t)||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(t){return null!=t.pageIndex})).reverse(),n=r[r.findIndex((function(t){return t.pageIndex<=e}))];this._chaptersPanel&&(this._chaptersPanel.currentChapter=n)}}]);var r,o}(y.S);null==J||J.registerPlugin("chapters",K),U=[(0,o.EM)("br-chapters-panel")],W=n.WF,Z=g(),$=function(t){Z.initializeInstanceElements(t,X.elements)},V={F:Y=function(t){function e(t){var r;return L(this,e),r=D(this,e),$(r),r.contents=t,r}return H(e,t),R(e)}(W),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 t=this;return(0,n.qy)(f||(f=C(["\n <ol>\n ","\n </ol>\n "])),this.contents.map((function(e){return t.renderTOCEntry(e)})))}},{kind:"method",key:"renderTOCEntry",value:function(t){var e,r=this,o=[t.label,t.title].filter((function(t){return t})).join(" "),c=null!=t.pageIndex;return(0,n.qy)(p||(p=C(['\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>"])),c?"clickable":"",t==this.currentChapter?"current":"",(0,a.W)({marginLeft:10*(t.level-1)+"px"}),null!=(e=c?"BRTOCPanel|GoToChapter":void 0)?e:i.s6,(function(){return r.jumpToPage(t.pageIndex)}),o,t.pagenum?(0,n.qy)(h||(h=C(['\n <br />\n <span class="BRTOCElementPage">Page ',"</span>\n "])),t.pagenum):n.s6)}},{kind:"method",key:"connectedCallback",value:function(){F(Y,"connectedCallback",this,3)([]),this.dispatchEvent(new CustomEvent("connected"))}},{kind:"method",key:"updated",value:function(t){var e;t.has("currentChapter")&&(null===(e=this.shadowRoot.querySelector("li.current"))||void 0===e||e.scrollIntoView({block:"nearest",behavior:"smooth"}))}},{kind:"get",static:!0,key:"styles",value:function(){return(0,n.AH)(d||(d=C(["\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 }"])))}}]},X=Z.decorateClass(function(t){for(var e=[],r=function(t){return"method"===t.kind&&t.key===i.key&&t.placement===i.placement},n=0;n<t.length;n++){var o,i=t[n];if("method"===i.kind&&(o=e.find(r)))if(E(i.descriptor)||E(o.descriptor)){if(x(i)||x(o))throw new ReferenceError("Duplicated methods ("+i.key+") can't be decorated.");o.descriptor=i.descriptor}else{if(x(i)){if(x(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 e.push(i)}return e}(V.d.map(w)),U),Z.initializeClassElements(V.F,X.elements),Z.runClassFinishers(V.F,X.finishers)},1743:function(t,e,r){function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function o(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:i;return null==t?void 0:t.replace(/\{\{([^}]*?)\}\}/g,(function(t,i){if(!i)return t;var a,c=function(t){if(Array.isArray(t))return t}(a=i.split("|").map((function(t){return t.trim()})))||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(a)||function(t,e){if(t){if("string"==typeof t)return n(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(t,e):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=c.slice(1);if(!(s in r)&&!(s in e))return t;var l=s in r?r[s]:s in e?e[s]:null;return u.map((function(t){return o[t]})).reduce((function(t,e){return e(t)}),l&&l.toString())}))}r.d(e,{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}},706:function(t,e,r){var n=r(350).PROPER,o=r(9039),i=r(7452);t.exports=function(t){return o((function(){return!!i[t]()||"​…᠎"!=="​…᠎"[t]()||n&&i[t].name!==t}))}},2762:function(t,e,r){var n=r(6518),o=r(3802).trim;n({target:"String",proto:!0,forced:r(706)("trim")},{trim:function(){return o(this)}})}},function(t){t(t.s=7045)}]);
26
26
  //# sourceMappingURL=plugin.chapters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugins/plugin.chapters.js","mappings":"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","sources":["webpack://@internetarchive/bookreader/./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/directives/if-defined.ts","webpack://@internetarchive/bookreader/./src/util/strings.js","webpack://@internetarchive/bookreader/./node_modules/core-js/internals/string-trim-forced.js","webpack://@internetarchive/bookreader/./node_modules/core-js/modules/es.string.trim.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 /** @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';\nimport { BookReaderPlugin } from \"../BookReaderPlugin\";\nimport { applyVariables } from \"../util/strings.js\";\n/** @typedef {import('@/src/BookReader/BookModel.js').PageIndex} PageIndex */\n/** @typedef {import('@/src/BookReader/BookModel.js').PageString} PageString */\n/** @typedef {import('@/src/BookReader/BookModel.js').LeafNum} LeafNum */\n\n// @ts-ignore\nconst BookReader = /** @type {typeof import('@/src/BookReader.js').default} */(window.BookReader);\n\n/**\n * Plugin for chapter markers in BookReader. Fetches from openlibrary.org\n * Could be forked, or extended to alter behavior\n */\nexport class ChaptersPlugin extends BookReaderPlugin {\n options = {\n enabled: true,\n\n /**\n * The Open Library host to fetch/query Open Library.\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n openLibraryHost: 'https://openlibrary.org',\n\n /**\n * The Open Library edition to fetch the table of contents from.\n * E.g. 'OL12345M'\n *\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n openLibraryId: '',\n\n /**\n * The Internet Archive identifier to fetch the Open Library table\n * of contents from.\n * E.g. 'goody'\n *\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n internetArchiveId: '',\n\n /**\n * @deprecated\n * Old name for openLibraryHost\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n olHost: 'https://openlibrary.org',\n\n /**\n * @deprecated\n * Old name for internetArchiveId\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n bookId: '{{bookId}}',\n }\n\n /** @type {TocEntry[]} */\n _tocEntries;\n\n /** @type {BRChaptersPanel} */\n _chaptersPanel;\n\n /** @override */\n setup(options) {\n super.setup(options);\n this.options.internetArchiveId = this.options.internetArchiveId || this.options.bookId;\n this.options.openLibraryHost = this.options.openLibraryHost || this.options.olHost;\n }\n\n /** @override Extend to call Open Library for TOC */\n async init() {\n if (!this.options.enabled || this.br.ui === 'embed') {\n return;\n }\n\n let rawTableOfContents = null;\n // Prefer explicit TOC if specified\n if (this.br.options.table_of_contents?.length) {\n rawTableOfContents = this.br.options.table_of_contents;\n } else {\n // Otherwise fetch from OL\n const olEdition = await this.getOpenLibraryRecord();\n if (olEdition?.table_of_contents?.length) {\n rawTableOfContents = olEdition.table_of_contents;\n }\n }\n\n if (rawTableOfContents) {\n this._tocEntries = rawTableOfContents\n .map(rawTOCEntry => (Object.assign({}, rawTOCEntry, {\n pageIndex: (\n typeof(rawTOCEntry.leaf) == 'number' ? this.br.book.leafNumToIndex(rawTOCEntry.leaf) :\n rawTOCEntry.pagenum ? this.br.book.getPageIndex(rawTOCEntry.pagenum) :\n undefined\n ),\n })));\n this._render();\n this.br.bind(BookReader.eventNames.pageChanged, () => this._updateCurrent());\n }\n }\n\n /**\n * Update the table of contents based on array of TOC entries.\n */\n _render() {\n this.br.shell.menuProviders['chapters'] = {\n id: 'chapters',\n icon: html`<ia-icon-toc style=\"width: var(--iconWidth); height: var(--iconHeight);\"></ia-icon-toc>`,\n label: 'Table of Contents',\n component: html`<br-chapters-panel\n .contents=\"${this._tocEntries}\"\n .jumpToPage=\"${(pageIndex) => {\n this._updateCurrent(pageIndex);\n this.br.jumpToIndex(pageIndex);\n }}\"\n @connected=\"${(e) => {\n this._chaptersPanel = e.target;\n this._updateCurrent();\n }}\"\n />`,\n };\n this.br.shell.addMenuShortcut('chapters');\n this.br.shell.updateMenuContents();\n this._tocEntries.forEach((tocEntry, i) => this._renderMarker(tocEntry, i));\n }\n\n /**\n * @param {TocEntry} tocEntry\n * @param {number} entryIndex\n */\n _renderMarker(tocEntry, entryIndex) {\n if (tocEntry.pageIndex == undefined) return;\n\n //creates a string with non-void tocEntry.label and tocEntry.title\n const chapterStr = [tocEntry.label, tocEntry.title]\n .filter(x => x)\n .join(' ') || `Chapter ${entryIndex + 1}`;\n\n const percentThrough = BookReader.util.cssPercentage(tocEntry.pageIndex, this.br.book.getNumLeafs() - 1);\n $(`<div></div>`)\n .append(\n $('<div />')\n .text(chapterStr)\n .append(\n $('<div class=\"BRchapterPage\" />')\n .text(this.br.book.getPageName(tocEntry.pageIndex)),\n ),\n )\n .addClass('BRchapter')\n .css({ left: percentThrough })\n .appendTo(this.br.$('.BRnavline'))\n .on(\"mouseenter\", event => {\n // remove hover effect from other markers then turn on just for this\n const marker = event.currentTarget;\n const tooltip = marker.querySelector('div');\n const tooltipOffset = tooltip.getBoundingClientRect();\n const targetOffset = marker.getBoundingClientRect();\n const boxSizeAdjust = parseInt(getComputedStyle(tooltip).paddingLeft) * 2;\n if (tooltipOffset.x - boxSizeAdjust < 0) {\n tooltip.style.setProperty('transform', `translateX(-${targetOffset.left - boxSizeAdjust}px)`);\n }\n this.br.$('.BRsearch,.BRchapter').removeClass('front');\n $(event.target).addClass('front');\n })\n .on(\"mouseleave\", event => $(event.target).removeClass('front'))\n .on('click', () => {\n this._updateCurrent(tocEntry.pageIndex);\n this.br.jumpToIndex(tocEntry.pageIndex);\n });\n\n this.br.$('.BRchapter, .BRsearch').each((i, el) => {\n const $el = $(el);\n $el\n .on(\"mouseenter\", () => $el.addClass('front'))\n .on(\"mouseleave\", () => $el.removeClass('front'));\n });\n }\n\n /**\n * This makes a call to OL API and calls the given callback function with the\n * response from the API.\n */\n async getOpenLibraryRecord() {\n const olHost = applyVariables(this.options.openLibraryHost, this.br.options.vars);\n\n if (this.options.openLibraryId) {\n const openLibraryId = applyVariables(this.options.openLibraryId, this.br.options.vars);\n return await $.ajax({ url: `${olHost}/books/${openLibraryId}.json` });\n }\n\n if (this.options.internetArchiveId) {\n const ocaid = applyVariables(this.options.internetArchiveId, this.br.options.vars);\n\n // Try looking up by ocaid first, then by source_record\n const baseQueryUrl = `${olHost}/query.json?type=/type/edition&*=&`;\n\n let data = await $.ajax({\n url: baseQueryUrl + new URLSearchParams({ ocaid, limit: '1' }),\n });\n\n if (!data || !data.length) {\n // try source_records\n data = await $.ajax({\n url: baseQueryUrl + new URLSearchParams({ source_records: `ia:${ocaid}`, limit: '1' }),\n });\n }\n\n return data?.[0];\n }\n\n return null;\n }\n\n /**\n * @private\n * Highlights the current chapter based on current page\n * @param {PageIndex} curIndex\n */\n _updateCurrent(\n curIndex = (this.br.mode == 2 ? Math.max(...this.br.displayedIndices) : this.br.firstIndex),\n ) {\n const tocEntriesIndexed = this._tocEntries.filter((el) => el.pageIndex != undefined).reverse();\n const currChapter = tocEntriesIndexed[\n // subtract one so that 2up shows the right label\n tocEntriesIndexed.findIndex((chapter) => chapter.pageIndex <= curIndex)\n ];\n if (this._chaptersPanel) {\n this._chaptersPanel.currentChapter = currChapter;\n }\n }\n}\nBookReader?.registerPlugin('chapters', ChaptersPlugin);\n\n/**\n * @typedef {Object} TocEntry\n * Table of contents entry as defined by Open Library, with some extra values for internal use\n * @property {number} [level]\n * @property {string} [label]\n * @property {string} [title]\n * @property {PageString} [pagenum]\n * @property {LeafNum} [leaf]\n * @property {number} [pageIndex] - Added\n *\n * @example {\n * \"pagenum\": \"17\",\n * \"level\": 1,\n * \"label\": \"CHAPTER I\",\n * \"title\": \"THE COUNTRY AND THE MISSION\"\n * }\n */\n\n@customElement('br-chapters-panel')\nexport class BRChaptersPanel extends LitElement {\n /** @type {TocEntry[]} */\n @property({ type: Array })\n contents = [];\n\n /** @type {TocEntry?} */\n @property({ type: Object })\n currentChapter = {};\n\n /** @type {(pageIndex: PageIndex) => void} */\n jumpToPage = () => {};\n\n /**\n * @param {TocEntry[]} contents\n */\n constructor(contents) {\n super();\n this.contents = contents;\n }\n\n render() {\n return html`\n <ol>\n ${this.contents.map(tocEntry => this.renderTOCEntry(tocEntry))}\n </ol>\n `;\n }\n\n /**\n * @param {TocEntry} tocEntry\n */\n renderTOCEntry(tocEntry) {\n const chapterTitle = [tocEntry.label, tocEntry.title]\n .filter(x => x)\n .join(' ');\n const clickable = tocEntry.pageIndex != undefined;\n // note the click-tracking won't work...\n return html`\n <li\n class=\"\n BRtable-contents-el\n ${clickable ? 'clickable' : ''}\n ${tocEntry == this.currentChapter ? 'current' : ''}\n \"\n style=\"${styleMap({marginLeft: (tocEntry.level - 1) * 10 + 'px'})}\"\n data-event-click-tracking=\"${ifDefined(clickable ? \"BRTOCPanel|GoToChapter\" : undefined)}\"\n @click=\"${() => this.jumpToPage(tocEntry.pageIndex)}\"\n >\n ${chapterTitle}\n ${tocEntry.pagenum ? html`\n <br />\n <span class=\"BRTOCElementPage\">Page ${tocEntry.pagenum}</span>\n ` : nothing}\n </li>`;\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.dispatchEvent(new CustomEvent('connected'));\n }\n\n updated(changedProperties) {\n if (changedProperties.has('currentChapter')) {\n this.shadowRoot.querySelector('li.current')?.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth',\n });\n }\n }\n\n static get styles() {\n return css`\n ol {\n padding: 0;\n margin: 0;\n margin-right: 5px;\n }\n li {\n padding: 10px;\n overflow: hidden;\n border-radius: 4px;\n }\n li.clickable {\n font-weight: normal;\n cursor: pointer;\n transition: background-color 0.2s;\n }\n\n li.clickable:not(.current):hover {\n background-color: rgba(255,255,255, 0.05);\n }\n\n li.current {\n background-color: rgba(255,255,255,0.9);\n color: #333;\n }\n\n .BRTOCElementPage {\n font-size: 0.85em;\n opacity: .8;\n }`;\n }\n}\n","/**\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","'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"],"names":["BookReaderPlugin","br","_classCallCheck","this","options","key","value","Object","assign","pageContainer","$navBar","IAIconToc","styles","render","customElements","define","_regeneratorRuntime","e","t","r","prototype","n","hasOwnProperty","o","defineProperty","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_next","_throw","_defineProperties","_toPropertyKey","_createClass","_callSuper","_getPrototypeOf","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","Boolean","valueOf","_superPropGet","_get","get","bind","_superPropBase","getOwnPropertyDescriptor","_inherits","_setPrototypeOf","_defineProperty","toPrimitive","String","_toPrimitive","_initialize","BRChaptersPanel","BookReader","window","ChaptersPlugin","_BookReaderPlugin","_this","_len","args","Array","_key","concat","enabled","openLibraryHost","openLibraryId","internetArchiveId","olHost","bookId","_init","_callee","_this$br$options$tabl","rawTableOfContents","_olEdition$table_of_c","olEdition","_this2","_context","ui","table_of_contents","getOpenLibraryRecord","_tocEntries","map","rawTOCEntry","pageIndex","leaf","book","leafNumToIndex","pagenum","getPageIndex","undefined","_render","eventNames","pageChanged","_updateCurrent","_this3","shell","menuProviders","id","icon","html","_templateObject","_taggedTemplateLiteral","label","component","_templateObject2","jumpToIndex","_chaptersPanel","target","addMenuShortcut","updateMenuContents","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","currChapter","findIndex","chapter","currentChapter","registerPlugin","customElement","LitElement","F","_LitElement2","contents","_this5","kind","decorators","property","_this6","_templateObject3","renderTOCEntry","_this7","chapterTitle","clickable","_templateObject4","styleMap","marginLeft","level","jumpToPage","_templateObject5","nothing","dispatchEvent","CustomEvent","changedProperties","_this$shadowRoot$quer","has","shadowRoot","scrollIntoView","block","behavior","static","_templateObject6","template","overrides","possibleFilters","APPLY_FILTERS","replace","$0","$1","_expression$split$map2","split","trim","varName","filterNames","reduce","acc","cur","toString","urlencode","encodeURIComponent","PROPER_FUNCTION_NAME","fails","whitespaces","module","exports","METHOD_NAME","$trim","proto","forced","forcedStringTrimMethod"],"sourceRoot":""}
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","webpack://@internetarchive/bookreader/../src/directives/if-defined.ts","webpack://@internetarchive/bookreader/./src/util/strings.js","webpack://@internetarchive/bookreader/./node_modules/core-js/internals/string-trim-forced.js","webpack://@internetarchive/bookreader/./node_modules/core-js/modules/es.string.trim.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 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';\nimport { BookReaderPlugin } from \"../BookReaderPlugin\";\nimport { applyVariables } from \"../util/strings.js\";\n/** @typedef {import('@/src/BookReader/BookModel.js').PageIndex} PageIndex */\n/** @typedef {import('@/src/BookReader/BookModel.js').PageString} PageString */\n/** @typedef {import('@/src/BookReader/BookModel.js').LeafNum} LeafNum */\n\n// @ts-ignore\nconst BookReader = /** @type {typeof import('@/src/BookReader.js').default} */(window.BookReader);\n\n/**\n * Plugin for chapter markers in BookReader. Fetches from openlibrary.org\n * Could be forked, or extended to alter behavior\n */\nexport class ChaptersPlugin extends BookReaderPlugin {\n options = {\n enabled: true,\n\n /**\n * The Open Library host to fetch/query Open Library.\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n openLibraryHost: 'https://openlibrary.org',\n\n /**\n * The Open Library edition to fetch the table of contents from.\n * E.g. 'OL12345M'\n *\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n openLibraryId: '',\n\n /**\n * The Internet Archive identifier to fetch the Open Library table\n * of contents from.\n * E.g. 'goody'\n *\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n internetArchiveId: '',\n\n /**\n * @deprecated\n * Old name for openLibraryHost\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n olHost: 'https://openlibrary.org',\n\n /**\n * @deprecated\n * Old name for internetArchiveId\n * @type {import('@/src/util/strings.js').StringWithVars}\n */\n bookId: '{{bookId}}',\n }\n\n /** @type {TocEntry[]} */\n _tocEntries;\n\n /** @type {BRChaptersPanel} */\n _chaptersPanel;\n\n /** @override */\n setup(options) {\n super.setup(options);\n this.options.internetArchiveId = this.options.internetArchiveId || this.options.bookId;\n this.options.openLibraryHost = this.options.openLibraryHost || this.options.olHost;\n }\n\n /** @override Extend to call Open Library for TOC */\n async init() {\n if (!this.options.enabled || this.br.ui === 'embed') {\n return;\n }\n\n let rawTableOfContents = null;\n // Prefer explicit TOC if specified\n if (this.br.options.table_of_contents?.length) {\n rawTableOfContents = this.br.options.table_of_contents;\n } else {\n // Otherwise fetch from OL\n const olEdition = await this.getOpenLibraryRecord();\n if (olEdition?.table_of_contents?.length) {\n rawTableOfContents = olEdition.table_of_contents;\n }\n }\n\n if (rawTableOfContents) {\n this._tocEntries = rawTableOfContents\n .map(rawTOCEntry => (Object.assign({}, rawTOCEntry, {\n pageIndex: (\n typeof(rawTOCEntry.leaf) == 'number' ? this.br.book.leafNumToIndex(rawTOCEntry.leaf) :\n rawTOCEntry.pagenum ? this.br.book.getPageIndex(rawTOCEntry.pagenum) :\n undefined\n ),\n })));\n this._render();\n this.br.bind(BookReader.eventNames.pageChanged, () => this._updateCurrent());\n }\n }\n\n /**\n * Update the table of contents based on array of TOC entries.\n */\n _render() {\n this.br.shell.menuProviders['chapters'] = {\n id: 'chapters',\n icon: html`<ia-icon-toc style=\"width: var(--iconWidth); height: var(--iconHeight);\"></ia-icon-toc>`,\n label: 'Table of Contents',\n component: html`<br-chapters-panel\n .contents=\"${this._tocEntries}\"\n .jumpToPage=\"${(pageIndex) => {\n this._updateCurrent(pageIndex);\n this.br.jumpToIndex(pageIndex);\n }}\"\n @connected=\"${(e) => {\n this._chaptersPanel = e.target;\n this._updateCurrent();\n }}\"\n />`,\n };\n this.br.shell.addMenuShortcut('chapters');\n this.br.shell.updateMenuContents();\n this._tocEntries.forEach((tocEntry, i) => this._renderMarker(tocEntry, i));\n }\n\n /**\n * @param {TocEntry} tocEntry\n * @param {number} entryIndex\n */\n _renderMarker(tocEntry, entryIndex) {\n if (tocEntry.pageIndex == undefined) return;\n\n //creates a string with non-void tocEntry.label and tocEntry.title\n const chapterStr = [tocEntry.label, tocEntry.title]\n .filter(x => x)\n .join(' ') || `Chapter ${entryIndex + 1}`;\n\n const percentThrough = BookReader.util.cssPercentage(tocEntry.pageIndex, this.br.book.getNumLeafs() - 1);\n $(`<div></div>`)\n .append(\n $('<div />')\n .text(chapterStr)\n .append(\n $('<div class=\"BRchapterPage\" />')\n .text(this.br.book.getPageName(tocEntry.pageIndex)),\n ),\n )\n .addClass('BRchapter')\n .css({ left: percentThrough })\n .appendTo(this.br.$('.BRnavline'))\n .on(\"mouseenter\", event => {\n // remove hover effect from other markers then turn on just for this\n const marker = event.currentTarget;\n const tooltip = marker.querySelector('div');\n const tooltipOffset = tooltip.getBoundingClientRect();\n const targetOffset = marker.getBoundingClientRect();\n const boxSizeAdjust = parseInt(getComputedStyle(tooltip).paddingLeft) * 2;\n if (tooltipOffset.x - boxSizeAdjust < 0) {\n tooltip.style.setProperty('transform', `translateX(-${targetOffset.left - boxSizeAdjust}px)`);\n }\n this.br.$('.BRsearch,.BRchapter').removeClass('front');\n $(event.target).addClass('front');\n })\n .on(\"mouseleave\", event => $(event.target).removeClass('front'))\n .on('click', () => {\n this._updateCurrent(tocEntry.pageIndex);\n this.br.jumpToIndex(tocEntry.pageIndex);\n });\n\n this.br.$('.BRchapter, .BRsearch').each((i, el) => {\n const $el = $(el);\n $el\n .on(\"mouseenter\", () => $el.addClass('front'))\n .on(\"mouseleave\", () => $el.removeClass('front'));\n });\n }\n\n /**\n * This makes a call to OL API and calls the given callback function with the\n * response from the API.\n */\n async getOpenLibraryRecord() {\n const olHost = applyVariables(this.options.openLibraryHost, this.br.options.vars);\n\n if (this.options.openLibraryId) {\n const openLibraryId = applyVariables(this.options.openLibraryId, this.br.options.vars);\n return await $.ajax({ url: `${olHost}/books/${openLibraryId}.json` });\n }\n\n if (this.options.internetArchiveId) {\n const ocaid = applyVariables(this.options.internetArchiveId, this.br.options.vars);\n\n // Try looking up by ocaid first, then by source_record\n const baseQueryUrl = `${olHost}/query.json?type=/type/edition&*=&`;\n\n let data = await $.ajax({\n url: baseQueryUrl + new URLSearchParams({ ocaid, limit: '1' }),\n });\n\n if (!data || !data.length) {\n // try source_records\n data = await $.ajax({\n url: baseQueryUrl + new URLSearchParams({ source_records: `ia:${ocaid}`, limit: '1' }),\n });\n }\n\n return data?.[0];\n }\n\n return null;\n }\n\n /**\n * @private\n * Highlights the current chapter based on current page\n * @param {PageIndex} curIndex\n */\n _updateCurrent(\n curIndex = (this.br.mode == 2 ? Math.max(...this.br.displayedIndices) : this.br.firstIndex),\n ) {\n const tocEntriesIndexed = this._tocEntries.filter((el) => el.pageIndex != undefined).reverse();\n const currChapter = tocEntriesIndexed[\n // subtract one so that 2up shows the right label\n tocEntriesIndexed.findIndex((chapter) => chapter.pageIndex <= curIndex)\n ];\n if (this._chaptersPanel) {\n this._chaptersPanel.currentChapter = currChapter;\n }\n }\n}\nBookReader?.registerPlugin('chapters', ChaptersPlugin);\n\n/**\n * @typedef {Object} TocEntry\n * Table of contents entry as defined by Open Library, with some extra values for internal use\n * @property {number} [level]\n * @property {string} [label]\n * @property {string} [title]\n * @property {PageString} [pagenum]\n * @property {LeafNum} [leaf]\n * @property {number} [pageIndex] - Added\n *\n * @example {\n * \"pagenum\": \"17\",\n * \"level\": 1,\n * \"label\": \"CHAPTER I\",\n * \"title\": \"THE COUNTRY AND THE MISSION\"\n * }\n */\n\n@customElement('br-chapters-panel')\nexport class BRChaptersPanel extends LitElement {\n /** @type {TocEntry[]} */\n @property({ type: Array })\n contents = [];\n\n /** @type {TocEntry?} */\n @property({ type: Object })\n currentChapter = {};\n\n /** @type {(pageIndex: PageIndex) => void} */\n jumpToPage = () => {};\n\n /**\n * @param {TocEntry[]} contents\n */\n constructor(contents) {\n super();\n this.contents = contents;\n }\n\n render() {\n return html`\n <ol>\n ${this.contents.map(tocEntry => this.renderTOCEntry(tocEntry))}\n </ol>\n `;\n }\n\n /**\n * @param {TocEntry} tocEntry\n */\n renderTOCEntry(tocEntry) {\n const chapterTitle = [tocEntry.label, tocEntry.title]\n .filter(x => x)\n .join(' ');\n const clickable = tocEntry.pageIndex != undefined;\n // note the click-tracking won't work...\n return html`\n <li\n class=\"\n BRtable-contents-el\n ${clickable ? 'clickable' : ''}\n ${tocEntry == this.currentChapter ? 'current' : ''}\n \"\n style=\"${styleMap({marginLeft: (tocEntry.level - 1) * 10 + 'px'})}\"\n data-event-click-tracking=\"${ifDefined(clickable ? \"BRTOCPanel|GoToChapter\" : undefined)}\"\n @click=\"${() => this.jumpToPage(tocEntry.pageIndex)}\"\n >\n ${chapterTitle}\n ${tocEntry.pagenum ? html`\n <br />\n <span class=\"BRTOCElementPage\">Page ${tocEntry.pagenum}</span>\n ` : nothing}\n </li>`;\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.dispatchEvent(new CustomEvent('connected'));\n }\n\n updated(changedProperties) {\n if (changedProperties.has('currentChapter')) {\n this.shadowRoot.querySelector('li.current')?.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth',\n });\n }\n }\n\n static get styles() {\n return css`\n ol {\n padding: 0;\n margin: 0;\n margin-right: 5px;\n }\n li {\n padding: 10px;\n overflow: hidden;\n border-radius: 4px;\n }\n li.clickable {\n font-weight: normal;\n cursor: pointer;\n transition: background-color 0.2s;\n }\n\n li.clickable:not(.current):hover {\n background-color: rgba(255,255,255, 0.05);\n }\n\n li.current {\n background-color: rgba(255,255,255,0.9);\n color: #333;\n }\n\n .BRTOCElementPage {\n font-size: 0.85em;\n opacity: .8;\n }`;\n }\n}\n","/**\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","'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"],"names":["BookReaderPlugin","br","_classCallCheck","this","options","key","value","Object","assign","pageContainer","$toolbarElement","$navBar","IAIconToc","styles","render","customElements","define","_regeneratorRuntime","e","t","r","prototype","n","hasOwnProperty","o","defineProperty","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_next","_throw","_defineProperties","_toPropertyKey","_createClass","_callSuper","_getPrototypeOf","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","Boolean","valueOf","_superPropGet","_get","get","bind","_superPropBase","getOwnPropertyDescriptor","_inherits","_setPrototypeOf","_defineProperty","toPrimitive","String","_toPrimitive","_initialize","BRChaptersPanel","BookReader","window","ChaptersPlugin","_BookReaderPlugin","_this","_len","args","Array","_key","concat","enabled","openLibraryHost","openLibraryId","internetArchiveId","olHost","bookId","_init","_callee","_this$br$options$tabl","rawTableOfContents","_olEdition$table_of_c","olEdition","_this2","_context","ui","table_of_contents","getOpenLibraryRecord","_tocEntries","map","rawTOCEntry","pageIndex","leaf","book","leafNumToIndex","pagenum","getPageIndex","undefined","_render","eventNames","pageChanged","_updateCurrent","_this3","shell","menuProviders","id","icon","html","_templateObject","_taggedTemplateLiteral","label","component","_templateObject2","jumpToIndex","_chaptersPanel","target","addMenuShortcut","updateMenuContents","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","currChapter","findIndex","chapter","currentChapter","registerPlugin","customElement","LitElement","F","_LitElement2","contents","_this5","kind","decorators","property","_this6","_templateObject3","renderTOCEntry","_this7","chapterTitle","clickable","_templateObject4","styleMap","marginLeft","level","jumpToPage","_templateObject5","nothing","dispatchEvent","CustomEvent","changedProperties","_this$shadowRoot$quer","has","shadowRoot","scrollIntoView","block","behavior","static","_templateObject6","template","overrides","possibleFilters","APPLY_FILTERS","replace","$0","$1","_expression$split$map2","split","trim","varName","filterNames","reduce","acc","cur","toString","urlencode","encodeURIComponent","PROPER_FUNCTION_NAME","fails","whitespaces","module","exports","METHOD_NAME","$trim","proto","forced","forcedStringTrimMethod"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[69],{472:function(t,e,n){function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}function o(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,i(r.key),r)}}function i(t){var e=function(t,e){if("object"!=r(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,"string");if("object"!=r(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==r(e)?e:e+""}n.d(e,{S:function(){return a}}),n(2675),n(9463),n(2259),n(5700),n(3792),n(9572),n(8130),n(9085),n(6099),n(7764),n(2953);var a=function(){return t=function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.br=e,this.options},(e=[{key:"setup",value:function(t){this.options=Object.assign({},this.options,t)}},{key:"init",value:function(){}},{key:"_configurePageContainer",value:function(t){}},{key:"_bindNavigationHandlers",value:function(){}},{key:"extendNavBar",value:function(t){}}])&&o(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}()},8:function(t,e,n){n(2675),n(9463),n(2259),n(5700),n(8706),n(3792),n(2062),n(9572),n(8130),n(9085),n(3851),n(875),n(9432),n(6099),n(825),n(888),n(7764),n(3500),n(2953);var r=n(472);function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function i(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,s(r.key),r)}}function a(t,e,n){return e=f(e),function(t,e){if(e&&("object"==o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,u()?Reflect.construct(e,n||[],f(t).constructor):e.apply(t,n))}function u(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(u=function(){return!!t})()}function c(){return c="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,e,n){var r=function(t,e){for(;!{}.hasOwnProperty.call(t,e)&&null!==(t=f(t)););return t}(t,e);if(r){var o=Object.getOwnPropertyDescriptor(r,e);return o.get?o.get.call(arguments.length<3?t:n):o.value}},c.apply(null,arguments)}function f(t){return f=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},f(t)}function l(t,e){return l=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},l(t,e)}function s(t){var e=function(t,e){if("object"!=o(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,"string");if("object"!=o(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==o(e)?e:e+""}var p=window.BookReader,b=function(t){function e(){var t,n,r,o;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);for(var i=arguments.length,u=new Array(i),c=0;c<i;c++)u[c]=arguments[c];return n=t=a(this,e,[].concat(u)),o={enabled:!0,manifest:null},(r=s(r="options"))in n?Object.defineProperty(n,r,{value:o,enumerable:!0,configurable:!0,writable:!0}):n[r]=o,t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&l(t,e)}(e,t),n=e,r=[{key:"setup",value:function(t){var n,r,o;(n=e,r=this,"function"==typeof(o=c(f(1&3?n.prototype:n),"setup",r))?function(t){return o.apply(r,t)}:o)([t]),this.manifest=this.options.manifest,this.options.enabled&&Object.assign(this.br.options,this.load())}},{key:"load",value:function(){if("http://iiif.io/api/presentation/2/context.json"==this.manifest["@context"]){var t=this.manifest;return this.manifestToBookReaderV2(t)}if("http://iiif.io/api/presentation/3/context.json"==this.manifest["@context"]){var e=this.manifest;return this.manifestToBookReaderV3(e)}throw new Error("Unsupported IIIF context "+this.manifest["@context"])}},{key:"manifestToBookReaderV3",value:function(t){var e={bookTitle:y(t.label),pageProgression:"right-to-left"==t.viewingDirection?"rl":"lr",metadata:(t.metadata||[]).map((function(t){return{label:y(t.label),value:y(t.value)}})),data:[],getPageURI:function(e,n,r){var o=Math.floor(100/n),i=t.items[e].items[0].items[0].body,a=(i instanceof Array?i[0]:i).service[0].id;return"".concat(a,"/full/pct:").concat(o,"/0/default.jpg")}};"top-to-bottom"!=t.viewingDirection&&"bottom-to-top"!=t.viewingDirection||console.warn("Unsupported viewingDirection",t.viewingDirection);var n=[];return t.items.forEach((function(r,o){var i=t.items[o].items[0].items[0].body,a={uri:(i instanceof Array?i[0]:i).service[0].id,width:r.width,height:r.height,pageNum:y(r.label)};n.push(a),o%2==0&&(e.data.push(n),n=[])})),n.length>0&&e.data.push(n),e}},{key:"manifestToBookReaderV2",value:function(t){var e,n={bookTitle:t.label,metadata:t.metadata,thumbnail:null===(e=t.thumbnail)||void 0===e?void 0:e["@id"],data:[],getPageURI:function(e,n,r){var o=Math.floor(100/n),i=t.sequences[0].canvases[e].images[0].resource.service["@id"];return"".concat(i,"/full/pct:").concat(o,"/0/default.jpg")}},r=[];return t.sequences[0].canvases.forEach((function(t,e){var o={uri:t.images[0].resource.service["@id"],width:t.width,height:t.height,pageNum:t.label};r.push(o),e%2==0&&(n.data.push(r),r=[])})),r.length>0&&n.data.push(r),n}}],r&&i(n.prototype,r),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r}(r.S);function y(t){var e=Object.keys(t)[0];return(t[navigator.language]||t[e])[0]}null==p||p.registerPlugin("iiif",b)}},function(t){t(t.s=8)}]);
1
+ "use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[69],{472:function(t,e,n){function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function r(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,i(o.key),o)}}function i(t){var e=function(t,e){if("object"!=o(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,"string");if("object"!=o(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==o(e)?e:e+""}n.d(e,{S:function(){return a}}),n(2675),n(9463),n(2259),n(5700),n(3792),n(9572),n(8130),n(9085),n(6099),n(7764),n(2953);var a=function(){return t=function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.br=e,this.options},(e=[{key:"setup",value:function(t){this.options=Object.assign({},this.options,t)}},{key:"init",value:function(){}},{key:"_configurePageContainer",value:function(t){}},{key:"_configureToolbar",value:function(t){}},{key:"_bindNavigationHandlers",value:function(){}},{key:"extendNavBar",value:function(t){}}])&&r(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}()},8:function(t,e,n){n(2675),n(9463),n(2259),n(5700),n(8706),n(3792),n(2062),n(9572),n(8130),n(9085),n(3851),n(875),n(9432),n(6099),n(825),n(888),n(7764),n(3500),n(2953);var o=n(472);function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}function i(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,s(o.key),o)}}function a(t,e,n){return e=f(e),function(t,e){if(e&&("object"==r(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,u()?Reflect.construct(e,n||[],f(t).constructor):e.apply(t,n))}function u(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(u=function(){return!!t})()}function c(){return c="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,e,n){var o=function(t,e){for(;!{}.hasOwnProperty.call(t,e)&&null!==(t=f(t)););return t}(t,e);if(o){var r=Object.getOwnPropertyDescriptor(o,e);return r.get?r.get.call(arguments.length<3?t:n):r.value}},c.apply(null,arguments)}function f(t){return f=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},f(t)}function l(t,e){return l=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},l(t,e)}function s(t){var e=function(t,e){if("object"!=r(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,"string");if("object"!=r(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==r(e)?e:e+""}var p=window.BookReader,b=function(t){function e(){var t,n,o,r;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);for(var i=arguments.length,u=new Array(i),c=0;c<i;c++)u[c]=arguments[c];return n=t=a(this,e,[].concat(u)),r={enabled:!0,manifest:null},(o=s(o="options"))in n?Object.defineProperty(n,o,{value:r,enumerable:!0,configurable:!0,writable:!0}):n[o]=r,t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&l(t,e)}(e,t),n=e,o=[{key:"setup",value:function(t){var n,o,r;(n=e,o=this,"function"==typeof(r=c(f(1&3?n.prototype:n),"setup",o))?function(t){return r.apply(o,t)}:r)([t]),this.manifest=this.options.manifest,this.options.enabled&&Object.assign(this.br.options,this.load())}},{key:"load",value:function(){if("http://iiif.io/api/presentation/2/context.json"==this.manifest["@context"]){var t=this.manifest;return this.manifestToBookReaderV2(t)}if("http://iiif.io/api/presentation/3/context.json"==this.manifest["@context"]){var e=this.manifest;return this.manifestToBookReaderV3(e)}throw new Error("Unsupported IIIF context "+this.manifest["@context"])}},{key:"manifestToBookReaderV3",value:function(t){var e={bookTitle:y(t.label),pageProgression:"right-to-left"==t.viewingDirection?"rl":"lr",metadata:(t.metadata||[]).map((function(t){return{label:y(t.label),value:y(t.value)}})),data:[],getPageURI:function(e,n,o){var r=Math.floor(100/n),i=t.items[e].items[0].items[0].body,a=(i instanceof Array?i[0]:i).service[0].id;return"".concat(a,"/full/pct:").concat(r,"/0/default.jpg")}};"top-to-bottom"!=t.viewingDirection&&"bottom-to-top"!=t.viewingDirection||console.warn("Unsupported viewingDirection",t.viewingDirection);var n=[];return t.items.forEach((function(o,r){var i=t.items[r].items[0].items[0].body,a={uri:(i instanceof Array?i[0]:i).service[0].id,width:o.width,height:o.height,pageNum:y(o.label)};n.push(a),r%2==0&&(e.data.push(n),n=[])})),n.length>0&&e.data.push(n),e}},{key:"manifestToBookReaderV2",value:function(t){var e,n={bookTitle:t.label,metadata:t.metadata,thumbnail:null===(e=t.thumbnail)||void 0===e?void 0:e["@id"],data:[],getPageURI:function(e,n,o){var r=Math.floor(100/n),i=t.sequences[0].canvases[e].images[0].resource.service["@id"];return"".concat(i,"/full/pct:").concat(r,"/0/default.jpg")}},o=[];return t.sequences[0].canvases.forEach((function(t,e){var r={uri:t.images[0].resource.service["@id"],width:t.width,height:t.height,pageNum:t.label};o.push(r),e%2==0&&(n.data.push(o),o=[])})),o.length>0&&n.data.push(o),n}}],o&&i(n.prototype,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,o}(o.S);function y(t){var e=Object.keys(t)[0];return(t[navigator.language]||t[e])[0]}null==p||p.registerPlugin("iiif",b)}},function(t){t(t.s=8)}]);
2
2
  //# sourceMappingURL=plugin.iiif.js.map