@internetarchive/bookreader 5.0.0-82 → 5.0.0-84
Sign up to get free protection for your applications and to get access to all the features.
- package/.eslintrc.js +9 -9
- package/.github/workflows/node.js.yml +9 -7
- package/BookReader/BookReader.css +2 -2
- package/BookReader/BookReader.js +1 -1
- package/BookReader/BookReader.js.map +1 -1
- package/BookReader/ia-bookreader-bundle.js +33 -33
- package/BookReader/ia-bookreader-bundle.js.map +1 -1
- package/BookReader/plugins/plugin.archive_analytics.js.map +1 -1
- package/BookReader/plugins/plugin.autoplay.js.map +1 -1
- package/BookReader/plugins/plugin.chapters.js +1 -1
- package/BookReader/plugins/plugin.chapters.js.map +1 -1
- package/BookReader/plugins/plugin.iframe.js.map +1 -1
- package/BookReader/plugins/plugin.iiif.js +1 -1
- package/BookReader/plugins/plugin.iiif.js.map +1 -1
- package/BookReader/plugins/plugin.search.js +1 -1
- package/BookReader/plugins/plugin.search.js.map +1 -1
- package/BookReader/plugins/plugin.text_selection.js +1 -1
- package/BookReader/plugins/plugin.text_selection.js.map +1 -1
- package/BookReader/plugins/plugin.tts.js +1 -1
- package/BookReader/plugins/plugin.tts.js.map +1 -1
- package/BookReader/plugins/plugin.url.js +1 -1
- package/BookReader/plugins/plugin.url.js.map +1 -1
- package/BookReader/plugins/plugin.vendor-fullscreen.js.map +1 -1
- package/BookReaderDemo/IADemoBr.js +10 -3
- package/BookReaderDemo/demo-iiif.html +1 -1
- package/BookReaderDemo/demo-internetarchive.html +1 -1
- package/CHANGELOG.md +15 -0
- package/babel.config.js +5 -5
- package/package.json +16 -18
- package/renovate.json +1 -1
- package/src/BookNavigator/book-navigator.js +8 -8
- package/src/BookNavigator/bookmarks/bookmarks-loginCTA.js +1 -1
- package/src/BookNavigator/bookmarks/bookmarks-provider.js +1 -1
- package/src/BookNavigator/bookmarks/ia-bookmarks.js +1 -1
- package/src/BookNavigator/downloads/downloads.js +4 -16
- package/src/BookNavigator/search/search-provider.js +2 -2
- package/src/BookNavigator/search/search-results.js +1 -1
- package/src/BookNavigator/sharing.js +1 -1
- package/src/BookNavigator/viewable-files.js +1 -1
- package/src/BookNavigator/visual-adjustments/visual-adjustments.js +3 -3
- package/src/BookReader/BookModel.js +1 -1
- package/src/BookReader/DragScrollable.js +2 -2
- package/src/BookReader/ModeSmoothZoom.js +5 -5
- package/src/BookReader/ModeThumb.js +2 -2
- package/src/BookReader/Navbar/Navbar.js +4 -4
- package/src/BookReader/ReduceSet.js +2 -2
- package/src/BookReader/Toolbar/Toolbar.js +4 -4
- package/src/BookReader/options.js +10 -10
- package/src/BookReader/utils/classes.js +1 -1
- package/src/BookReader.js +12 -12
- package/src/css/_BRicon.scss +8 -2
- package/src/ia-bookreader/ia-bookreader.js +1 -1
- package/src/plugins/plugin.archive_analytics.js +1 -1
- package/src/plugins/plugin.autoplay.js +2 -2
- package/src/plugins/plugin.chapters.js +3 -3
- package/src/plugins/plugin.iframe.js +1 -1
- package/src/plugins/plugin.iiif.js +9 -5
- package/src/plugins/plugin.text_selection.js +2 -2
- package/src/plugins/plugin.vendor-fullscreen.js +3 -3
- package/src/plugins/search/plugin.search.js +16 -11
- package/src/plugins/search/view.js +4 -1
- package/src/plugins/tts/AbstractTTSEngine.js +1 -1
- package/src/plugins/tts/FestivalTTSEngine.js +3 -3
- package/src/plugins/tts/PageChunk.js +2 -2
- package/src/plugins/tts/WebTTSEngine.js +1 -1
- package/src/plugins/tts/plugin.tts.js +1 -1
- package/src/plugins/tts/utils.js +1 -1
- package/src/plugins/url/plugin.url.js +1 -1
- package/tests/e2e/helpers/mockSearch.js +13 -13
- package/tests/jest/BookNavigator/book-navigator.test.js +27 -27
- package/tests/jest/BookNavigator/downloads/downloads-provider.test.js +5 -5
- package/tests/jest/BookNavigator/downloads/downloads.test.js +3 -3
- package/tests/jest/BookNavigator/search/search-provider.test.js +15 -15
- package/tests/jest/BookNavigator/search/search-results.test.js +1 -1
- package/tests/jest/BookNavigator/sharing/sharing-provider.test.js +5 -5
- package/tests/jest/BookNavigator/viewable-files/viewable-files-provider.test.js +8 -8
- package/tests/jest/BookReader/BookReaderPublicFunctions.test.js +3 -3
- package/tests/jest/BookReader/Mode1UpLit.test.js +2 -2
- package/tests/jest/BookReader/Mode2UpLit.test.js +3 -3
- package/tests/jest/BookReader/ModeSmoothZoom.test.js +4 -4
- package/tests/jest/BookReader/Navbar/Navbar.test.js +16 -16
- package/tests/jest/BookReader/Toolbar/Toolbar.test.js +1 -1
- package/tests/jest/BookReader.keyboard.test.js +1 -1
- package/tests/jest/BookReader.options.test.js +1 -1
- package/tests/jest/BookReader.test.js +4 -4
- package/tests/jest/plugins/plugin.chapters.test.js +3 -3
- package/tests/jest/plugins/plugin.iframe.test.js +2 -2
- package/tests/jest/plugins/plugin.text_selection.test.js +1 -1
- package/tests/jest/plugins/search/plugin.search.view.test.js +6 -6
- package/tests/jest/plugins/search/utils.js +3 -3
- package/tests/jest/plugins/tts/AbstractTTSEngine.test.js +1 -1
- package/tests/jest/plugins/tts/WebTTSEngine.test.js +2 -2
- package/tests/jest/plugins/url/UrlPlugin.test.js +2 -2
- package/tests/jest/plugins/url/plugin.url.test.js +6 -6
- package/webpack.config.js +6 -6
@@ -1,3 +1,3 @@
|
|
1
1
|
/*! For license information please see plugin.text_selection.js.LICENSE.txt */
|
2
|
-
"use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[326],{3036:function(t,e,r){r(2675),r(9463),r(6412),r(2259),r(5700),r(8125),r(8706),r(113),r(3418),r(3792),r(8598),r(2062),r(4490),r(4782),r(6910),r(9572),r(2010),r(4731),r(6033),r(479),r(8130),r(9085),r(3851),r(875),r(6099),r(8459),r(3362),r(825),r(888),r(7495),r(8781),r(9449),r(7764),r(2762),r(3500),r(2953);var n=r(1774),o=r(1669);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 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,l(n.key),n)}}function c(t,e,r){return(e=l(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function l(t){var e=function(t,e){if("object"!=i(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=i(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==i(e)?e:e+""}var u=function(){return t=function t(e,r){var n=this;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),c(this,"selecting",!1),c(this,"startedInSelector",!1),c(this,"target",null),c(this,"_onSelectionChange",(function(){var t=window.getSelection();if(!n.selecting&&t.toString()){var e=o(t.anchorNode).closest(n.selector)[0];if(!e)return;n.target=e,n.selecting=!0,n.handler("started",n.target)}!n.selecting||!t.isCollapsed&&t.toString()&&o(t.anchorNode).closest(n.selector)[0]||(n.selecting=!1,n.handler("cleared",n.target))})),this.selector=e,this.handler=r},(e=[{key:"attach",value:function(){document.addEventListener("selectionchange",this._onSelectionChange)}},{key:"detach",value:function(){document.removeEventListener("selectionchange",this._onSelectionChange)}}])&&a(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}();function s(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 f(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:h;return null==t?void 0:t.replace(/\{\{([^}]*?)\}\}/g,(function(t,o){if(!o)return t;var i,a=function(t){if(Array.isArray(t))return t}(i=o.split("|").map((function(t){return t.trim()})))||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(i)||function(t,e){if(t){if("string"==typeof t)return s(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)?s(t,e):void 0}}(i)||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.")}(),c=a[0],l=a.slice(1);if(!(c in r)&&!(c in e))return t;var u=c in r?r[c]:c in e?e[c]:null;return l.map((function(t){return n[t]})).reduce((function(t,e){return e(t)}),u&&u.toString())}))}r(2712),r(5440);var h={urlencode:encodeURIComponent},p=r(1669);function d(t){return d="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},d(t)}var y=O().mark(G),v=O().mark(U),g=O().mark(H);function m(t,e,r){return e=x(e),function(t,e){if(e&&("object"==d(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||[],x(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 w(){return w="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,e,r){var n=function(t,e){for(;!{}.hasOwnProperty.call(t,e)&&null!==(t=x(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}},w.apply(null,arguments)}function x(t){return x=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},x(t)}function S(t,e){return S=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},S(t,e)}function E(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,c=[],l=!0,u=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(c.push(n.value),c.length!==e);l=!0);}catch(t){u=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw o}}return c}}(t,e)||j(t,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.")}()}function P(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=j(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){c=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw i}}}}function j(t,e){if(t){if("string"==typeof t)return k(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)?k(t,e):void 0}}function k(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(){O=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",l=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 s(t,e,r,n){var i=e&&e.prototype instanceof m?e:m,a=Object.create(i.prototype),c=new _(n||[]);return o(a,"_invoke",{value:R(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=s;var h="suspendedStart",p="suspendedYield",y="executing",v="completed",g={};function m(){}function b(){}function w(){}var x={};u(x,a,(function(){return this}));var S=Object.getPrototypeOf,E=S&&S(S(B([])));E&&E!==r&&n.call(E,a)&&(x=E);var P=w.prototype=m.prototype=Object.create(x);function j(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function k(t,e){function r(o,i,a,c){var l=f(t[o],t,i);if("throw"!==l.type){var u=l.arg,s=u.value;return s&&"object"==d(s)&&n.call(s,"__await")?e.resolve(s.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(s).then((function(t){u.value=t,a(u)}),(function(t){return r("throw",t,a,c)}))}c(l.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 R(e,r,n){var o=h;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===v){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var l=L(c,n);if(l){if(l===g)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var u=f(e,r,n);if("normal"===u.type){if(o=n.done?v:p,u.arg===g)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(o=v,n.method="throw",n.arg=u.arg)}}}function L(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,L(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),g;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,g;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,g):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,g)}function C(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 A(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function _(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(C,this),this.reset(!0)}function B(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(d(e)+" is not iterable")}return b.prototype=w,o(P,"constructor",{value:w,configurable:!0}),o(w,"constructor",{value:b,configurable:!0}),b.displayName=u(w,l,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===b||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,u(t,l,"GeneratorFunction")),t.prototype=Object.create(P),t},e.awrap=function(t){return{__await:t}},j(k.prototype),u(k.prototype,c,(function(){return this})),e.AsyncIterator=k,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new k(s(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,l,"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=B,_.prototype={constructor:_,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(A),!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 l=n.call(a,"catchLoc"),u=n.call(a,"finallyLoc");if(l&&u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(l){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,g):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),g},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),A(r),g}},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;A(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:B(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),g}},e}function R(t,e,r,n,o,i,a){try{var c=t[i](a),l=c.value}catch(t){return void r(t)}c.done?e(l):Promise.resolve(l).then(n,o)}function L(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){R(i,n,o,a,c,"next",t)}function c(t){R(i,n,o,a,c,"throw",t)}a(void 0)}))}}function C(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,B(n.key),n)}}function _(t,e,r){return e&&A(t.prototype,e),r&&A(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function B(t){var e=function(t,e){if("object"!=d(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=d(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==d(e)?e:e+""}var T=window.BookReader,I={enabled:!0,fullDjvuXmlUrl:null,singlePageDjvuXmlUrl:null,jsonp:!1},D=function(){return _((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;C(this,t),this.maxSize=e,this.entries=[]}),[{key:"add",value:function(t){this.entries.length>=this.maxSize&&this.entries.shift(),this.entries.push(t)}}])}(),M=function(){return _((function t(){var e,r,n,o=this,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:I,a=arguments.length>1?arguments[1]:void 0,c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"lr";C(this,t),e=this,n=function(t,e){if("started"===t)o.textSelectingMode(e);else{if("cleared"!==t)throw new Error("Unknown type ".concat(t));o.defaultMode(e)}},(r=B(r="_onSelectionChange"))in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,this.options=i,this.optionVariables=a,this.djvuPagesPromise=null,this.rtl="rl"===c,this.pageTextCache=new D,this.maxWordRendered=2500,this.selectionObserver=new u(".BRtextLayer",this._onSelectionChange)}),[{key:"init",value:function(){this.selectionObserver.attach(),this.options.singlePageDjvuXmlUrl||(this.djvuPagesPromise=p.ajax({type:"GET",url:f(this.options.fullDjvuXmlUrl,this.optionVariables),dataType:this.options.jsonp?"jsonp":"html",cache:!0,error:function(t){}}).then((function(t){try{var e=p.parseXML(t);return e&&p(e).find("OBJECT")}catch(t){return}})))}},{key:"getPageText",value:(e=L(O().mark((function t(e){var r,n,o,i,a;return O().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this.options.singlePageDjvuXmlUrl){t.next=19;break}if(!(r=this.pageTextCache.entries.find((function(t){return t.index==e})))){t.next=4;break}return t.abrupt("return",r.response);case 4:return t.next=6,p.ajax({type:"GET",url:f(this.options.singlePageDjvuXmlUrl,this.optionVariables,{pageIndex:e}),dataType:this.options.jsonp?"jsonp":"html",cache:!0,error:function(t){}});case 6:return n=t.sent,t.prev=7,o=p.parseXML(n),i=o&&p(o).find("OBJECT")[0],this.pageTextCache.add({index:e,response:i}),t.abrupt("return",i);case 14:return t.prev=14,t.t0=t.catch(7),t.abrupt("return",void 0);case 17:t.next=24;break;case 19:return t.next=21,this.djvuPagesPromise;case 21:if(!(a=t.sent)){t.next=24;break}return t.abrupt("return",a[e]);case 24:case"end":return t.stop()}}),t,this,[[7,14]])}))),function(t){return e.apply(this,arguments)})},{key:"interceptCopy",value:function(t){t[0].addEventListener("copy",(function(t){var e=document.getSelection();t.clipboardData.setData("text/plain",e.toString()),t.preventDefault()}))}},{key:"defaultMode",value:function(t){var e=this,r=p(t).closest(".BRpagecontainer");t.style.pointerEvents="none",r.find("img").css("pointer-events","auto"),p(t).off(".textSelectPluginHandler");var n=this.mouseIsDown,o=this.mouseIsDown;n&&(t.style.pointerEvents="auto"),p(t).on("mousedown.textSelectPluginHandler",(function(t){e.mouseIsDown=!0,p(t.target).is(".BRwordElement, .BRspace")&&t.stopPropagation()})),p(t).on("mouseup.textSelectPluginHandler",(function(r){e.mouseIsDown=!1,t.style.pointerEvents="none",o&&(o=!1,r.stopPropagation())}))}},{key:"textSelectingMode",value:function(t){var e=this,r=p(t).closest(".BRpagecontainer");t.style.pointerEvents="all",r.find("img").css("pointer-events","none"),p(t).off(".textSelectPluginHandler"),p(t).on("mousedown.textSelectPluginHandler",(function(t){e.mouseIsDown=!0,t.stopPropagation()})),p(t).on("mouseup.textSelectPluginHandler",(function(t){e.mouseIsDown=!1,t.stopPropagation()}))}},{key:"stopPageFlip",value:function(t){var e=this,r=t.find(".BRtextLayer");r.length&&(r.each((function(t,r){return e.defaultMode(r)})),this.interceptCopy(t))}},{key:"createTextLayer",value:(t=L(O().mark((function t(e){var r,o,i,a,c,l,u,s,f,h,d,y,v,g,m,b,w,x,S,j,k,R,L,C,A=this;return O().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.page.index,!(o=e.$container).find(".BRtextLayer").length){t.next=5;break}return t.abrupt("return");case 5:return t.next=7,this.getPageText(r);case 7:if(i=t.sent){t.next=10;break}return t.abrupt("return");case 10:if(X(i),!((a=p(i).find("WORD").length)>this.maxWordRendered)){t.next=15;break}return console.log("Page ".concat(r," has too many words (").concat(a," > ").concat(this.maxWordRendered,"). Not rendering text layer.")),t.abrupt("return");case 15:c=(0,n.Ql)(e.page,"BRtextLayer"),l=parseFloat(e.$container[0].style.width)/e.page.width,u=parseFloat(e.$container[0].style.height)/e.page.height,c.style.transform="scale(".concat(l,", ").concat(u,")"),c.setAttribute("dir",this.rtl?"rtl":"ltr"),s=p(i).find("PARAGRAPH[coords]").toArray(),f=s.map((function(t){var e=A.renderParagraph(t);return c.appendChild(e),e})),h=N(c,".BRparagraphElement"),d=0,y=P(H(s,f));try{for(y.s();!(v=y.n()).done;)g=E(v.value,2),m=g[0],b=g[1],w=p(m).attr("coords").split(",").map(parseFloat),x=h.get(b),S=E(w,4),j=S[0],k=S[2],R=S[3],L=this.rtl?x.right-k:j-x.left,C=R-(x.top+d),b.style[this.rtl?"marginRight":"marginLeft"]="".concat(L,"px"),b.style.marginTop="".concat(C,"px"),d+=C,c.appendChild(b)}catch(t){y.e(t)}finally{y.f()}o.append(c),this.stopPageFlip(o);case 28:case"end":return t.stop()}}),t,this)}))),function(e){return t.apply(this,arguments)})},{key:"renderParagraph",value:function(t){var e=document.createElement("p");e.classList.add("BRparagraphElement");var r=E(p(t).attr("coords").split(",").map(parseFloat),4),n=r[0],o=r[1],i=r[2],a=r[3],c=[],l=p(t).find("LINE[coords]").toArray();if(!l.length)return e;var u,s=P(U(G(l,W)));try{for(s.s();!(u=s.n()).done;){var f=E(u.value,3),h=f[0],d=f[1],y=f[2],v=d.ocrElement==l[l.length-1],g=document.createElement("span");g.classList.add("BRlineElement");var m,b=P(d.words.entries());try{for(b.s();!(m=b.n()).done;){var w=E(m.value,2),x=w[0],S=w[1],O=E(p(S).attr("coords").split(",").map(parseFloat),4),R=O[1],L=O[2],C=O[3],A=R-C;if(c.push(A),0==x&&null!=h&&h.lastWord.textContent.trim().endsWith("-")){var _=E(p((y||h).firstWord).attr("coords").split(",").map(parseFloat),3)[0];p(S).attr("coords","".concat(_,",").concat(R,",").concat(L,",").concat(C))}var B=document.createElement("span");if(B.setAttribute("class","BRwordElement"),B.textContent=S.textContent.trim(),x>0){var T=document.createElement("span");T.classList.add("BRspace"),T.textContent=" ",g.append(T),g.appendChild(document.createTextNode(" "))}g.appendChild(B)}}catch(t){b.e(t)}finally{b.f()}var I=d.lastWord.textContent.trim().endsWith("-"),D=g.children[g.children.length-1];I&&!v&&(D.textContent=D.textContent.trim().slice(0,-1),D.classList.add("BRwordElement--hyphen")),e.appendChild(g),v||I||e.appendChild(document.createTextNode(" "))}}catch(t){s.e(t)}finally{s.f()}c.sort((function(t,e){return t-e}));var M=c[Math.floor(.85*c.length)]+4;e.style.left="".concat(n,"px"),e.style.top="".concat(a,"px"),e.style.width="".concat(i-n,"px"),e.style.height="".concat(o-a,"px"),e.style.fontSize="".concat(M,"px");var F,X=N(e,".BRwordElement"),$=P(H(p(t).find("WORD").toArray(),e.querySelectorAll(".BRwordElement")));try{for($.s();!(F=$.n()).done;){var q=E(F.value,2),z=q[0],V=q[1],Y=X.get(V),J=E(p(z).attr("coords").split(",").map(parseFloat),3),Q=J[0],K=J[2]-Q;z.textContent.endsWith(" ")&&(K=K*(z.textContent.length-1)/z.textContent.length);var Z=K-Y.width;V.style.letterSpacing="".concat(Z/(z.textContent.length-1),"px")}}catch(t){$.e(t)}finally{$.f()}X=N(e,".BRwordElement");var tt,et,rt=N(e,".BRspace"),nt=p(t).find("LINE[coords]").toArray(),ot=Array.from(e.querySelectorAll(".BRlineElement")),it=a,at=P(H(nt,ot));try{for(at.s();!(tt=at.n()).done;){var ct,lt=E(tt.value,2),ut=lt[0],st=lt[1],ft=p(ut).find("WORD").toArray(),ht=this.rtl?i:n,pt=P(H(ft,st.querySelectorAll(".BRwordElement")));try{for(pt.s();!(ct=pt.n()).done;){var dt=E(ct.value,2),yt=dt[0],vt=dt[1],gt=X.get(vt),mt=E(p(yt).attr("coords").split(",").map(parseFloat),3),bt=mt[0],wt=mt[2],xt=this.rtl?-(wt-ht):bt-ht;if(vt.previousElementSibling){var St=vt.previousElementSibling;St.style.letterSpacing="".concat(xt-rt.get(St).width,"px")}else vt.style[this.rtl?"paddingRight":"paddingLeft"]="".concat(xt,"px");this.rtl?ht-=xt+gt.width:ht+=xt+gt.width}}catch(t){pt.e(t)}finally{pt.f()}var Et=Math.min.apply(Math,function(t){if(Array.isArray(t))return k(t)}(et=ft.map((function(t){return parseFloat(p(t).attr("coords").split(",")[3])})))||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(et)||j(et)||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.")}())-it;st.previousElementSibling&&(st.previousElementSibling.style.lineHeight="".concat(Et,"px"),it+=Et)}}catch(t){at.e(t)}finally{at.f()}return ot[ot.length-1].style.lineHeight="".concat(o-it,"px"),e.appendChild(document.createElement("br")),e}}]);var t,e}(),F=function(t){function e(){return C(this,e),m(this,e,arguments)}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&&S(t,e)}(e,t),_(e,[{key:"init",value:function(){var t=this,r=Object.assign({},I,this.options.plugins.textSelection);r.enabled&&(this.textSelectionPlugin=new M(r,this.options.vars,this.pageProgression),this.options.plugins.textSelection=r,this.textSelectionPlugin.init(),new u(".BRtextLayer",(function(e){var r;"started"==e&&(null===(r=t.archiveAnalyticsSendEvent)||void 0===r||r.call(t,"BookReader","SelectStart"),t.refs.$br.find(".BRpagecontainer--hasSelection").removeClass("BRpagecontainer--hasSelection"),p(window.getSelection().anchorNode).closest(".BRpagecontainer").addClass("BRpagecontainer--hasSelection"))})).attach()),w(x(e.prototype),"init",this).call(this)}},{key:"_createPageContainer",value:function(t){var r,n=w(x(e.prototype),"_createPageContainer",this).call(this,t);return this.mode!==this.constModeThumb&&n.page&&(null===(r=this.textSelectionPlugin)||void 0===r||r.createTextLayer(n)),n}}])}(T);function N(t,e){var r={position:t.style.position,visibility:t.style.visibility,top:t.style.top,left:t.style.left,transform:t.style.transform};t.style.position="absolute",t.style.visibility="hidden",t.style.top="0",t.style.left="0",t.style.transform="none",document.body.appendChild(t);var n=new Map(Array.from(t.querySelectorAll(e)).map((function(t){var e=t.getBoundingClientRect();return[t,new $(e.left+window.scrollX,e.top+window.scrollY,e.width,e.height)]})));return document.body.removeChild(t),Object.assign(t.style,r),n}function W(t){var e=p(t).find("WORD").toArray();return{ocrElement:t,words:e,firstWord:e[0],lastWord:e[e.length-1]}}function G(t,e){var r,n,o;return O().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:r=P(t),i.prev=1,r.s();case 3:if((n=r.n()).done){i.next=9;break}return o=n.value,i.next=7,e(o);case 7:i.next=3;break;case 9:i.next=14;break;case 11:i.prev=11,i.t0=i.catch(1),r.e(i.t0);case 14:return i.prev=14,r.f(),i.finish(14);case 17:case"end":return i.stop()}}),y,null,[[1,11,14,17]])}function U(t){var e,r,n,o,i,a;return O().wrap((function(c){for(;;)switch(c.prev=c.next){case 0:e=void 0,r=void 0,n=void 0,o=P(t),c.prev=4,o.s();case 6:if((i=o.n()).done){c.next=17;break}if(a=i.value,void 0===r){c.next=12;break}return n=a,c.next=12,[e,r,n];case 12:e=r,r=a,n=void 0;case 15:c.next=6;break;case 17:c.next=22;break;case 19:c.prev=19,c.t0=c.catch(4),o.e(c.t0);case 22:return c.prev=22,o.f(),c.finish(22);case 25:if(void 0===r){c.next=28;break}return c.next=28,[e,r,n];case 28:case"end":return c.stop()}}),v,null,[[4,19,22,25]])}function H(t,e){var r,n,o,i;return O().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:r=t[Symbol.iterator](),n=e[Symbol.iterator]();case 2:if(o=r.next(),i=n.next(),!o.done||!i.done){a.next=7;break}return a.abrupt("return");case 7:if(!o.done&&!i.done){a.next=9;break}throw new Error("zip: one of the iterators is done");case 9:return a.next=11,[o.value,i.value];case 11:a.next=2;break;case 13:case"end":return a.stop()}}),g)}function X(t){if(!p(t).attr("coords")&&t.children){var e=p(t).children().toArray();if(0!==e.length){var r,n=P(e);try{for(n.s();!(r=n.n()).done;)X(r.value)}catch(t){n.e(t)}finally{n.f()}var o,i=[],a=P(e);try{for(a.s();!(o=a.n()).done;){var c=o.value;p(c).attr("coords")&&i.push(p(c).attr("coords").split(",").map(parseFloat))}}catch(t){a.e(t)}finally{a.f()}var l=function(t){var e,r=1/0,n=-1/0,o=-1/0,i=1/0,a=P(t);try{for(a.s();!(e=a.n()).done;){var c=E(e.value,4),l=c[0],u=c[1],s=c[2],f=c[3];r=Math.min(r,l),n=Math.max(n,u),o=Math.max(o,s),i=Math.min(i,f)}}catch(t){a.e(t)}finally{a.f()}return[r,n,o,i]}(i);Math.abs(l[0])!=1/0&&p(t).attr("coords",l.join(","))}}}window.BookReader=F;var $=function(){return _((function t(e,r,n,o){C(this,t),this.x=e,this.y=r,this.width=n,this.height=o}),[{key:"right",get:function(){return this.x+this.width}},{key:"bottom",get:function(){return this.y+this.height}},{key:"top",get:function(){return this.y}},{key:"left",get:function(){return this.x}}])}()},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=3036)}]);
|
2
|
+
"use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[326],{3036:function(t,e,r){r(2675),r(9463),r(6412),r(2259),r(5700),r(8125),r(8706),r(113),r(3418),r(3792),r(8598),r(2062),r(4490),r(4782),r(6910),r(9572),r(2010),r(4731),r(6033),r(479),r(8130),r(9085),r(3851),r(875),r(6099),r(8459),r(3362),r(825),r(888),r(7495),r(8781),r(9449),r(7764),r(2762),r(3500),r(2953);var n=r(1774),o=r(1669);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 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,l(n.key),n)}}function c(t,e,r){return(e=l(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function l(t){var e=function(t,e){if("object"!=i(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=i(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==i(e)?e:e+""}var u=function(){return t=function t(e,r){var n=this;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),c(this,"selecting",!1),c(this,"startedInSelector",!1),c(this,"target",null),c(this,"_onSelectionChange",(function(){var t=window.getSelection();if(!n.selecting&&t.toString()){var e=o(t.anchorNode).closest(n.selector)[0];if(!e)return;n.target=e,n.selecting=!0,n.handler("started",n.target)}!n.selecting||!t.isCollapsed&&t.toString()&&o(t.anchorNode).closest(n.selector)[0]||(n.selecting=!1,n.handler("cleared",n.target))})),this.selector=e,this.handler=r},(e=[{key:"attach",value:function(){document.addEventListener("selectionchange",this._onSelectionChange)}},{key:"detach",value:function(){document.removeEventListener("selectionchange",this._onSelectionChange)}}])&&a(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}();function s(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 f(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:h;return null==t?void 0:t.replace(/\{\{([^}]*?)\}\}/g,(function(t,o){if(!o)return t;var i,a=function(t){if(Array.isArray(t))return t}(i=o.split("|").map((function(t){return t.trim()})))||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(i)||function(t,e){if(t){if("string"==typeof t)return s(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)?s(t,e):void 0}}(i)||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.")}(),c=a[0],l=a.slice(1);if(!(c in r)&&!(c in e))return t;var u=c in r?r[c]:c in e?e[c]:null;return l.map((function(t){return n[t]})).reduce((function(t,e){return e(t)}),u&&u.toString())}))}r(2712),r(5440);var h={urlencode:encodeURIComponent},p=r(1669);function d(t){return d="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},d(t)}var y=R().mark(U),v=R().mark(H),g=R().mark(X);function m(t,e,r){return e=S(e),function(t,e){if(e&&("object"==d(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||[],S(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 w(t,e,r,n){var o=x(S(1&n?t.prototype:t),e,r);return 2&n&&"function"==typeof o?function(t){return o.apply(r,t)}:o}function x(){return x="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,e,r){var n=function(t,e){for(;!{}.hasOwnProperty.call(t,e)&&null!==(t=S(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}},x.apply(null,arguments)}function S(t){return S=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},S(t)}function E(t,e){return E=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},E(t,e)}function P(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,c=[],l=!0,u=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(c.push(n.value),c.length!==e);l=!0);}catch(t){u=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw o}}return c}}(t,e)||k(t,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.")}()}function j(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=k(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){c=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw i}}}}function k(t,e){if(t){if("string"==typeof t)return O(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)?O(t,e):void 0}}function O(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 R(){R=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",l=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 s(t,e,r,n){var i=e&&e.prototype instanceof m?e:m,a=Object.create(i.prototype),c=new _(n||[]);return o(a,"_invoke",{value:O(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=s;var h="suspendedStart",p="suspendedYield",y="executing",v="completed",g={};function m(){}function b(){}function w(){}var x={};u(x,a,(function(){return this}));var S=Object.getPrototypeOf,E=S&&S(S(B([])));E&&E!==r&&n.call(E,a)&&(x=E);var P=w.prototype=m.prototype=Object.create(x);function j(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function k(t,e){function r(o,i,a,c){var l=f(t[o],t,i);if("throw"!==l.type){var u=l.arg,s=u.value;return s&&"object"==d(s)&&n.call(s,"__await")?e.resolve(s.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(s).then((function(t){u.value=t,a(u)}),(function(t){return r("throw",t,a,c)}))}c(l.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 O(e,r,n){var o=h;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===v){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var l=L(c,n);if(l){if(l===g)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var u=f(e,r,n);if("normal"===u.type){if(o=n.done?v:p,u.arg===g)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(o=v,n.method="throw",n.arg=u.arg)}}}function L(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,L(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),g;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,g;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,g):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,g)}function C(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 A(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function _(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(C,this),this.reset(!0)}function B(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(d(e)+" is not iterable")}return b.prototype=w,o(P,"constructor",{value:w,configurable:!0}),o(w,"constructor",{value:b,configurable:!0}),b.displayName=u(w,l,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===b||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,u(t,l,"GeneratorFunction")),t.prototype=Object.create(P),t},e.awrap=function(t){return{__await:t}},j(k.prototype),u(k.prototype,c,(function(){return this})),e.AsyncIterator=k,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new k(s(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,l,"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=B,_.prototype={constructor:_,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(A),!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 l=n.call(a,"catchLoc"),u=n.call(a,"finallyLoc");if(l&&u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(l){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,g):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),g},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),A(r),g}},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;A(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:B(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),g}},e}function L(t,e,r,n,o,i,a){try{var c=t[i](a),l=c.value}catch(t){return void r(t)}c.done?e(l):Promise.resolve(l).then(n,o)}function C(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){L(i,n,o,a,c,"next",t)}function c(t){L(i,n,o,a,c,"throw",t)}a(void 0)}))}}function A(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _(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,T(n.key),n)}}function B(t,e,r){return e&&_(t.prototype,e),r&&_(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function T(t){var e=function(t,e){if("object"!=d(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=d(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==d(e)?e:e+""}var I=window.BookReader,D={enabled:!0,fullDjvuXmlUrl:null,singlePageDjvuXmlUrl:null,jsonp:!1},M=function(){return B((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;A(this,t),this.maxSize=e,this.entries=[]}),[{key:"add",value:function(t){this.entries.length>=this.maxSize&&this.entries.shift(),this.entries.push(t)}}])}(),F=function(){return B((function t(){var e,r,n,o=this,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:D,a=arguments.length>1?arguments[1]:void 0,c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"lr";A(this,t),e=this,n=function(t,e){if("started"===t)o.textSelectingMode(e);else{if("cleared"!==t)throw new Error("Unknown type ".concat(t));o.defaultMode(e)}},(r=T(r="_onSelectionChange"))in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,this.options=i,this.optionVariables=a,this.djvuPagesPromise=null,this.rtl="rl"===c,this.pageTextCache=new M,this.maxWordRendered=2500,this.selectionObserver=new u(".BRtextLayer",this._onSelectionChange)}),[{key:"init",value:function(){this.selectionObserver.attach(),this.options.singlePageDjvuXmlUrl||(this.djvuPagesPromise=p.ajax({type:"GET",url:f(this.options.fullDjvuXmlUrl,this.optionVariables),dataType:this.options.jsonp?"jsonp":"html",cache:!0,error:function(t){}}).then((function(t){try{var e=p.parseXML(t);return e&&p(e).find("OBJECT")}catch(t){return}})))}},{key:"getPageText",value:(e=C(R().mark((function t(e){var r,n,o,i,a;return R().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this.options.singlePageDjvuXmlUrl){t.next=19;break}if(!(r=this.pageTextCache.entries.find((function(t){return t.index==e})))){t.next=4;break}return t.abrupt("return",r.response);case 4:return t.next=6,p.ajax({type:"GET",url:f(this.options.singlePageDjvuXmlUrl,this.optionVariables,{pageIndex:e}),dataType:this.options.jsonp?"jsonp":"html",cache:!0,error:function(t){}});case 6:return n=t.sent,t.prev=7,o=p.parseXML(n),i=o&&p(o).find("OBJECT")[0],this.pageTextCache.add({index:e,response:i}),t.abrupt("return",i);case 14:return t.prev=14,t.t0=t.catch(7),t.abrupt("return",void 0);case 17:t.next=24;break;case 19:return t.next=21,this.djvuPagesPromise;case 21:if(!(a=t.sent)){t.next=24;break}return t.abrupt("return",a[e]);case 24:case"end":return t.stop()}}),t,this,[[7,14]])}))),function(t){return e.apply(this,arguments)})},{key:"interceptCopy",value:function(t){t[0].addEventListener("copy",(function(t){var e=document.getSelection();t.clipboardData.setData("text/plain",e.toString()),t.preventDefault()}))}},{key:"defaultMode",value:function(t){var e=this,r=p(t).closest(".BRpagecontainer");t.style.pointerEvents="none",r.find("img").css("pointer-events","auto"),p(t).off(".textSelectPluginHandler");var n=this.mouseIsDown,o=this.mouseIsDown;n&&(t.style.pointerEvents="auto"),p(t).on("mousedown.textSelectPluginHandler",(function(t){e.mouseIsDown=!0,p(t.target).is(".BRwordElement, .BRspace")&&t.stopPropagation()})),p(t).on("mouseup.textSelectPluginHandler",(function(r){e.mouseIsDown=!1,t.style.pointerEvents="none",o&&(o=!1,r.stopPropagation())}))}},{key:"textSelectingMode",value:function(t){var e=this,r=p(t).closest(".BRpagecontainer");t.style.pointerEvents="all",r.find("img").css("pointer-events","none"),p(t).off(".textSelectPluginHandler"),p(t).on("mousedown.textSelectPluginHandler",(function(t){e.mouseIsDown=!0,t.stopPropagation()})),p(t).on("mouseup.textSelectPluginHandler",(function(t){e.mouseIsDown=!1,t.stopPropagation()}))}},{key:"stopPageFlip",value:function(t){var e=this,r=t.find(".BRtextLayer");r.length&&(r.each((function(t,r){return e.defaultMode(r)})),this.interceptCopy(t))}},{key:"createTextLayer",value:(t=C(R().mark((function t(e){var r,o,i,a,c,l,u,s,f,h,d,y,v,g,m,b,w,x,S,E,k,O,L,C,A=this;return R().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.page.index,!(o=e.$container).find(".BRtextLayer").length){t.next=5;break}return t.abrupt("return");case 5:return t.next=7,this.getPageText(r);case 7:if(i=t.sent){t.next=10;break}return t.abrupt("return");case 10:if($(i),!((a=p(i).find("WORD").length)>this.maxWordRendered)){t.next=15;break}return console.log("Page ".concat(r," has too many words (").concat(a," > ").concat(this.maxWordRendered,"). Not rendering text layer.")),t.abrupt("return");case 15:c=(0,n.Ql)(e.page,"BRtextLayer"),l=parseFloat(e.$container[0].style.width)/e.page.width,u=parseFloat(e.$container[0].style.height)/e.page.height,c.style.transform="scale(".concat(l,", ").concat(u,")"),c.setAttribute("dir",this.rtl?"rtl":"ltr"),s=p(i).find("PARAGRAPH[coords]").toArray(),f=s.map((function(t){var e=A.renderParagraph(t);return c.appendChild(e),e})),h=W(c,".BRparagraphElement"),d=0,y=j(X(s,f));try{for(y.s();!(v=y.n()).done;)g=P(v.value,2),m=g[0],b=g[1],w=p(m).attr("coords").split(",").map(parseFloat),x=h.get(b),S=P(w,4),E=S[0],k=S[2],O=S[3],L=this.rtl?x.right-k:E-x.left,C=O-(x.top+d),b.style[this.rtl?"marginRight":"marginLeft"]="".concat(L,"px"),b.style.marginTop="".concat(C,"px"),d+=C,c.appendChild(b)}catch(t){y.e(t)}finally{y.f()}o.append(c),this.stopPageFlip(o);case 28:case"end":return t.stop()}}),t,this)}))),function(e){return t.apply(this,arguments)})},{key:"renderParagraph",value:function(t){var e=document.createElement("p");e.classList.add("BRparagraphElement");var r=P(p(t).attr("coords").split(",").map(parseFloat),4),n=r[0],o=r[1],i=r[2],a=r[3],c=[],l=p(t).find("LINE[coords]").toArray();if(!l.length)return e;var u,s=j(H(U(l,G)));try{for(s.s();!(u=s.n()).done;){var f=P(u.value,3),h=f[0],d=f[1],y=f[2],v=d.ocrElement==l[l.length-1],g=document.createElement("span");g.classList.add("BRlineElement");var m,b=j(d.words.entries());try{for(b.s();!(m=b.n()).done;){var w=P(m.value,2),x=w[0],S=w[1],E=P(p(S).attr("coords").split(",").map(parseFloat),4),R=E[1],L=E[2],C=E[3],A=R-C;if(c.push(A),0==x&&null!=h&&h.lastWord.textContent.trim().endsWith("-")){var _=P(p((y||h).firstWord).attr("coords").split(",").map(parseFloat),3)[0];p(S).attr("coords","".concat(_,",").concat(R,",").concat(L,",").concat(C))}var B=document.createElement("span");if(B.setAttribute("class","BRwordElement"),B.textContent=S.textContent.trim(),x>0){var T=document.createElement("span");T.classList.add("BRspace"),T.textContent=" ",g.append(T),g.appendChild(document.createTextNode(" "))}g.appendChild(B)}}catch(t){b.e(t)}finally{b.f()}var I=d.lastWord.textContent.trim().endsWith("-"),D=g.children[g.children.length-1];I&&!v&&(D.textContent=D.textContent.trim().slice(0,-1),D.classList.add("BRwordElement--hyphen")),e.appendChild(g),v||I||e.appendChild(document.createTextNode(" "))}}catch(t){s.e(t)}finally{s.f()}c.sort((function(t,e){return t-e}));var M=c[Math.floor(.85*c.length)]+4;e.style.left="".concat(n,"px"),e.style.top="".concat(a,"px"),e.style.width="".concat(i-n,"px"),e.style.height="".concat(o-a,"px"),e.style.fontSize="".concat(M,"px");var F,N=W(e,".BRwordElement"),$=j(X(p(t).find("WORD").toArray(),e.querySelectorAll(".BRwordElement")));try{for($.s();!(F=$.n()).done;){var q=P(F.value,2),z=q[0],V=q[1],Y=N.get(V),J=P(p(z).attr("coords").split(",").map(parseFloat),3),Q=J[0],K=J[2]-Q;z.textContent.endsWith(" ")&&(K=K*(z.textContent.length-1)/z.textContent.length);var Z=K-Y.width;V.style.letterSpacing="".concat(Z/(z.textContent.length-1),"px")}}catch(t){$.e(t)}finally{$.f()}N=W(e,".BRwordElement");var tt,et,rt=W(e,".BRspace"),nt=p(t).find("LINE[coords]").toArray(),ot=Array.from(e.querySelectorAll(".BRlineElement")),it=a,at=j(X(nt,ot));try{for(at.s();!(tt=at.n()).done;){var ct,lt=P(tt.value,2),ut=lt[0],st=lt[1],ft=p(ut).find("WORD").toArray(),ht=this.rtl?i:n,pt=j(X(ft,st.querySelectorAll(".BRwordElement")));try{for(pt.s();!(ct=pt.n()).done;){var dt=P(ct.value,2),yt=dt[0],vt=dt[1],gt=N.get(vt),mt=P(p(yt).attr("coords").split(",").map(parseFloat),3),bt=mt[0],wt=mt[2],xt=this.rtl?-(wt-ht):bt-ht;if(vt.previousElementSibling){var St=vt.previousElementSibling;St.style.letterSpacing="".concat(xt-rt.get(St).width,"px")}else vt.style[this.rtl?"paddingRight":"paddingLeft"]="".concat(xt,"px");this.rtl?ht-=xt+gt.width:ht+=xt+gt.width}}catch(t){pt.e(t)}finally{pt.f()}var Et=Math.min.apply(Math,function(t){if(Array.isArray(t))return O(t)}(et=ft.map((function(t){return parseFloat(p(t).attr("coords").split(",")[3])})))||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(et)||k(et)||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.")}())-it;st.previousElementSibling&&(st.previousElementSibling.style.lineHeight="".concat(Et,"px"),it+=Et)}}catch(t){at.e(t)}finally{at.f()}return ot[ot.length-1].style.lineHeight="".concat(o-it,"px"),e.appendChild(document.createElement("br")),e}}]);var t,e}(),N=function(t){function e(){return A(this,e),m(this,e,arguments)}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&&E(t,e)}(e,t),B(e,[{key:"init",value:function(){var t=this,r=Object.assign({},D,this.options.plugins.textSelection);r.enabled&&(this.textSelectionPlugin=new F(r,this.options.vars,this.pageProgression),this.options.plugins.textSelection=r,this.textSelectionPlugin.init(),new u(".BRtextLayer",(function(e){var r;"started"==e&&(null===(r=t.archiveAnalyticsSendEvent)||void 0===r||r.call(t,"BookReader","SelectStart"),t.refs.$br.find(".BRpagecontainer--hasSelection").removeClass("BRpagecontainer--hasSelection"),p(window.getSelection().anchorNode).closest(".BRpagecontainer").addClass("BRpagecontainer--hasSelection"))})).attach()),w(e,"init",this,3)([])}},{key:"_createPageContainer",value:function(t){var r,n=w(e,"_createPageContainer",this,3)([t]);return this.mode!==this.constModeThumb&&n.page&&(null===(r=this.textSelectionPlugin)||void 0===r||r.createTextLayer(n)),n}}])}(I);function W(t,e){var r={position:t.style.position,visibility:t.style.visibility,top:t.style.top,left:t.style.left,transform:t.style.transform};t.style.position="absolute",t.style.visibility="hidden",t.style.top="0",t.style.left="0",t.style.transform="none",document.body.appendChild(t);var n=new Map(Array.from(t.querySelectorAll(e)).map((function(t){var e=t.getBoundingClientRect();return[t,new q(e.left+window.scrollX,e.top+window.scrollY,e.width,e.height)]})));return document.body.removeChild(t),Object.assign(t.style,r),n}function G(t){var e=p(t).find("WORD").toArray();return{ocrElement:t,words:e,firstWord:e[0],lastWord:e[e.length-1]}}function U(t,e){var r,n,o;return R().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:r=j(t),i.prev=1,r.s();case 3:if((n=r.n()).done){i.next=9;break}return o=n.value,i.next=7,e(o);case 7:i.next=3;break;case 9:i.next=14;break;case 11:i.prev=11,i.t0=i.catch(1),r.e(i.t0);case 14:return i.prev=14,r.f(),i.finish(14);case 17:case"end":return i.stop()}}),y,null,[[1,11,14,17]])}function H(t){var e,r,n,o,i,a;return R().wrap((function(c){for(;;)switch(c.prev=c.next){case 0:e=void 0,r=void 0,n=void 0,o=j(t),c.prev=4,o.s();case 6:if((i=o.n()).done){c.next=17;break}if(a=i.value,void 0===r){c.next=12;break}return n=a,c.next=12,[e,r,n];case 12:e=r,r=a,n=void 0;case 15:c.next=6;break;case 17:c.next=22;break;case 19:c.prev=19,c.t0=c.catch(4),o.e(c.t0);case 22:return c.prev=22,o.f(),c.finish(22);case 25:if(void 0===r){c.next=28;break}return c.next=28,[e,r,n];case 28:case"end":return c.stop()}}),v,null,[[4,19,22,25]])}function X(t,e){var r,n,o,i;return R().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:r=t[Symbol.iterator](),n=e[Symbol.iterator]();case 2:if(o=r.next(),i=n.next(),!o.done||!i.done){a.next=7;break}return a.abrupt("return");case 7:if(!o.done&&!i.done){a.next=9;break}throw new Error("zip: one of the iterators is done");case 9:return a.next=11,[o.value,i.value];case 11:a.next=2;break;case 13:case"end":return a.stop()}}),g)}function $(t){if(!p(t).attr("coords")&&t.children){var e=p(t).children().toArray();if(0!==e.length){var r,n=j(e);try{for(n.s();!(r=n.n()).done;)$(r.value)}catch(t){n.e(t)}finally{n.f()}var o,i=[],a=j(e);try{for(a.s();!(o=a.n()).done;){var c=o.value;p(c).attr("coords")&&i.push(p(c).attr("coords").split(",").map(parseFloat))}}catch(t){a.e(t)}finally{a.f()}var l=function(t){var e,r=1/0,n=-1/0,o=-1/0,i=1/0,a=j(t);try{for(a.s();!(e=a.n()).done;){var c=P(e.value,4),l=c[0],u=c[1],s=c[2],f=c[3];r=Math.min(r,l),n=Math.max(n,u),o=Math.max(o,s),i=Math.min(i,f)}}catch(t){a.e(t)}finally{a.f()}return[r,n,o,i]}(i);Math.abs(l[0])!=1/0&&p(t).attr("coords",l.join(","))}}}window.BookReader=N;var q=function(){return B((function t(e,r,n,o){A(this,t),this.x=e,this.y=r,this.width=n,this.height=o}),[{key:"right",get:function(){return this.x+this.width}},{key:"bottom",get:function(){return this.y+this.height}},{key:"top",get:function(){return this.y}},{key:"left",get:function(){return this.x}}])}()},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=3036)}]);
|
3
3
|
//# sourceMappingURL=plugin.text_selection.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"plugins/plugin.text_selection.js","mappings":"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","sources":["webpack://@internetarchive/bookreader/./src/BookReader/utils/SelectionObserver.js","webpack://@internetarchive/bookreader/./src/util/strings.js","webpack://@internetarchive/bookreader/./src/plugins/plugin.text_selection.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\nexport class SelectionObserver {\n selecting = false;\n startedInSelector = false;\n /** @type {HTMLElement} */\n target = null;\n\n /**\n * @param {string} selector\n * @param {function('started' | 'cleared', HTMLElement): any} handler\n */\n constructor(selector, handler) {\n this.selector = selector;\n this.handler = handler;\n }\n\n attach() {\n // We can't just use selectstart, because safari on iOS just\n // randomly decides when to fire it 😤\n // document.addEventListener(\"selectstart\", this._onSelectStart);\n // This has to be on document :/\n document.addEventListener(\"selectionchange\", this._onSelectionChange);\n }\n\n detach() {\n document.removeEventListener(\"selectionchange\", this._onSelectionChange);\n }\n\n _onSelectionChange = () => {\n const sel = window.getSelection();\n\n if (!this.selecting && sel.toString()) {\n const target = $(sel.anchorNode).closest(this.selector)[0];\n if (!target) return;\n this.target = target;\n this.selecting = true;\n this.handler('started', this.target);\n }\n\n if (this.selecting && (sel.isCollapsed || !sel.toString() || !$(sel.anchorNode).closest(this.selector)[0])) {\n this.selecting = false;\n this.handler('cleared', this.target);\n }\n };\n}\n","/**\n * @typedef {String} StringWithVars\n * A template string with {{foo}} style variables\n * Also supports filters, like {{bookPath|urlencode}} (See APPLY_FILTERS for the\n * supported list of filters)\n **/\n\n/**\n * @param {StringWithVars|String} template\n * @param { {[varName: string]: { toString: () => string} } } vars\n * @param { {[varName: string]: { toString: () => string} } } [overrides]\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","//@ts-check\nimport { createDIVPageLayer } from '../BookReader/PageContainer.js';\nimport { SelectionObserver } from '../BookReader/utils/SelectionObserver.js';\nimport { applyVariables } from '../util/strings.js';\n/** @typedef {import('../util/strings.js').StringWithVars} StringWithVars */\n/** @typedef {import('../BookReader/PageContainer.js').PageContainer} PageContainer */\n\nconst BookReader = /** @type {typeof import('../BookReader').default} */(window.BookReader);\n\nexport const DEFAULT_OPTIONS = {\n enabled: true,\n /** @type {StringWithVars} The URL to fetch the entire DJVU xml. Supports options.vars */\n fullDjvuXmlUrl: null,\n /** @type {StringWithVars} The URL to fetch a single page of the DJVU xml. Supports options.vars. Also has {{pageIndex}} */\n singlePageDjvuXmlUrl: null,\n /** Whether to fetch the XML as a jsonp */\n jsonp: false,\n};\n/** @typedef {typeof DEFAULT_OPTIONS} TextSelectionPluginOptions */\n\n/**\n * @template T\n */\nexport class Cache {\n constructor(maxSize = 10) {\n this.maxSize = maxSize;\n /** @type {T[]} */\n this.entries = [];\n }\n\n /**\n * @param {T} entry\n */\n add(entry) {\n if (this.entries.length >= this.maxSize) {\n this.entries.shift();\n }\n this.entries.push(entry);\n }\n}\n\nexport class TextSelectionPlugin {\n /**\n * @param {'lr' | 'rl'} pageProgression In the future this should be in the ocr file\n * since a book being right to left doesn't mean the ocr is right to left. But for\n * now we do make that assumption.\n */\n constructor(options = DEFAULT_OPTIONS, optionVariables, pageProgression = 'lr') {\n this.options = options;\n this.optionVariables = optionVariables;\n /**@type {PromiseLike<JQuery<HTMLElement>|undefined>} */\n this.djvuPagesPromise = null;\n /** Whether the book is right-to-left */\n this.rtl = pageProgression === 'rl';\n\n /** @type {Cache<{index: number, response: any}>} */\n this.pageTextCache = new Cache();\n\n /**\n * Sometimes there are too many words on a page, and the browser becomes near\n * unusable. For now don't render text layer for pages with too many words.\n */\n this.maxWordRendered = 2500;\n\n this.selectionObserver = new SelectionObserver('.BRtextLayer', this._onSelectionChange);\n }\n\n /**\n * @param {'started' | 'cleared'} type\n * @param {HTMLElement} target\n */\n _onSelectionChange = (type, target) => {\n if (type === 'started') {\n this.textSelectingMode(target);\n } else if (type === 'cleared') {\n this.defaultMode(target);\n } else {\n throw new Error(`Unknown type ${type}`);\n }\n }\n\n init() {\n this.selectionObserver.attach();\n\n // Only fetch the full djvu xml if the single page url isn't there\n if (this.options.singlePageDjvuXmlUrl) return;\n this.djvuPagesPromise = $.ajax({\n type: \"GET\",\n url: applyVariables(this.options.fullDjvuXmlUrl, this.optionVariables),\n dataType: this.options.jsonp ? \"jsonp\" : \"html\",\n cache: true,\n error: (e) => undefined\n }).then((res) => {\n try {\n const xmlMap = $.parseXML(res);\n return xmlMap && $(xmlMap).find(\"OBJECT\");\n } catch (e) {\n return undefined;\n }\n });\n }\n\n /**\n * @param {number} index\n * @returns {Promise<HTMLElement|undefined>}\n */\n async getPageText(index) {\n if (this.options.singlePageDjvuXmlUrl) {\n const cachedEntry = this.pageTextCache.entries.find(x => x.index == index);\n if (cachedEntry) {\n return cachedEntry.response;\n }\n const res = await $.ajax({\n type: \"GET\",\n url: applyVariables(this.options.singlePageDjvuXmlUrl, this.optionVariables, { pageIndex: index }),\n dataType: this.options.jsonp ? \"jsonp\" : \"html\",\n cache: true,\n error: (e) => undefined,\n });\n try {\n const xmlDoc = $.parseXML(res);\n const result = xmlDoc && $(xmlDoc).find(\"OBJECT\")[0];\n this.pageTextCache.add({ index, response: result });\n return result;\n } catch (e) {\n return undefined;\n }\n } else {\n const XMLpagesArr = await this.djvuPagesPromise;\n if (XMLpagesArr) return XMLpagesArr[index];\n }\n }\n\n /**\n * Intercept copied text to remove any styling applied to it\n * @param {JQuery} $container\n */\n interceptCopy($container) {\n $container[0].addEventListener('copy', (event) => {\n const selection = document.getSelection();\n event.clipboardData.setData('text/plain', selection.toString());\n event.preventDefault();\n });\n }\n\n /**\n * Applies mouse events when in default mode\n * @param {HTMLElement} textLayer\n */\n defaultMode(textLayer) {\n const $pageContainer = $(textLayer).closest('.BRpagecontainer');\n textLayer.style.pointerEvents = \"none\";\n $pageContainer.find(\"img\").css(\"pointer-events\", \"auto\");\n\n $(textLayer).off(\".textSelectPluginHandler\");\n const startedMouseDown = this.mouseIsDown;\n let skipNextMouseup = this.mouseIsDown;\n if (startedMouseDown) {\n textLayer.style.pointerEvents = \"auto\";\n }\n\n // Need to stop propagation to prevent DragScrollable from\n // blocking selection\n $(textLayer).on(\"mousedown.textSelectPluginHandler\", (event) => {\n this.mouseIsDown = true;\n if ($(event.target).is(\".BRwordElement, .BRspace\")) {\n event.stopPropagation();\n }\n });\n\n $(textLayer).on(\"mouseup.textSelectPluginHandler\", (event) => {\n this.mouseIsDown = false;\n textLayer.style.pointerEvents = \"none\";\n if (skipNextMouseup) {\n skipNextMouseup = false;\n event.stopPropagation();\n }\n });\n }\n\n /**\n * This mode is active while there is a selection on the given textLayer\n * @param {HTMLElement} textLayer\n */\n textSelectingMode(textLayer) {\n const $pageContainer = $(textLayer).closest('.BRpagecontainer');\n // Make text layer consume all events\n textLayer.style.pointerEvents = \"all\";\n // Block img from getting long-press to save while selecting\n $pageContainer.find(\"img\").css(\"pointer-events\", \"none\");\n\n $(textLayer).off(\".textSelectPluginHandler\");\n\n $(textLayer).on('mousedown.textSelectPluginHandler', (event) => {\n this.mouseIsDown = true;\n event.stopPropagation();\n });\n\n // Prevent page flip on click\n $(textLayer).on('mouseup.textSelectPluginHandler', (event) => {\n this.mouseIsDown = false;\n event.stopPropagation();\n });\n }\n\n /**\n * Initializes text selection modes if there is a text layer on the page\n * @param {JQuery} $container\n */\n stopPageFlip($container) {\n /** @type {JQuery<HTMLElement>} */\n const $textLayer = $container.find('.BRtextLayer');\n if (!$textLayer.length) return;\n $textLayer.each((i, s) => this.defaultMode(s));\n this.interceptCopy($container);\n }\n\n /**\n * @param {PageContainer} pageContainer\n */\n async createTextLayer(pageContainer) {\n const pageIndex = pageContainer.page.index;\n const $container = pageContainer.$container;\n const $textLayers = $container.find('.BRtextLayer');\n if ($textLayers.length) return;\n const XMLpage = await this.getPageText(pageIndex);\n if (!XMLpage) return;\n recursivelyAddCoords(XMLpage);\n\n const totalWords = $(XMLpage).find(\"WORD\").length;\n if (totalWords > this.maxWordRendered) {\n console.log(`Page ${pageIndex} has too many words (${totalWords} > ${this.maxWordRendered}). Not rendering text layer.`);\n return;\n }\n\n const textLayer = createDIVPageLayer(pageContainer.page, 'BRtextLayer');\n const ratioW = parseFloat(pageContainer.$container[0].style.width) / pageContainer.page.width;\n const ratioH = parseFloat(pageContainer.$container[0].style.height) / pageContainer.page.height;\n textLayer.style.transform = `scale(${ratioW}, ${ratioH})`;\n textLayer.setAttribute(\"dir\", this.rtl ? \"rtl\" : \"ltr\");\n\n const ocrParagraphs = $(XMLpage).find(\"PARAGRAPH[coords]\").toArray();\n const paragEls = ocrParagraphs.map(p => {\n const el = this.renderParagraph(p);\n textLayer.appendChild(el);\n return el;\n });\n\n // Fix up paragraph positions\n const paragraphRects = determineRealRects(textLayer, '.BRparagraphElement');\n let yAdded = 0;\n for (const [ocrParagraph, paragEl] of zip(ocrParagraphs, paragEls)) {\n const ocrParagBounds = $(ocrParagraph).attr(\"coords\").split(\",\").map(parseFloat);\n const realRect = paragraphRects.get(paragEl);\n const [ocrLeft, , ocrRight, ocrTop] = ocrParagBounds;\n const newStartMargin = this.rtl ? (realRect.right - ocrRight) : (ocrLeft - realRect.left);\n const newTop = ocrTop - (realRect.top + yAdded);\n\n paragEl.style[this.rtl ? 'marginRight' : 'marginLeft'] = `${newStartMargin}px`;\n paragEl.style.marginTop = `${newTop}px`;\n yAdded += newTop;\n textLayer.appendChild(paragEl);\n }\n $container.append(textLayer);\n this.stopPageFlip($container);\n }\n\n /**\n * @param {HTMLElement} ocrParagraph\n * @returns {HTMLParagraphElement}\n */\n renderParagraph(ocrParagraph) {\n const paragEl = document.createElement('p');\n paragEl.classList.add('BRparagraphElement');\n const [paragLeft, paragBottom, paragRight, paragTop] = $(ocrParagraph).attr(\"coords\").split(\",\").map(parseFloat);\n const wordHeightArr = [];\n const lines = $(ocrParagraph).find(\"LINE[coords]\").toArray();\n if (!lines.length) return paragEl;\n\n\n for (const [prevLine, line, nextLine] of lookAroundWindow(genMap(lines, augmentLine))) {\n const isLastLineOfParagraph = line.ocrElement == lines[lines.length - 1];\n const lineEl = document.createElement('span');\n lineEl.classList.add('BRlineElement');\n\n for (const [wordIndex, currWord] of line.words.entries()) {\n const [, bottom, right, top] = $(currWord).attr(\"coords\").split(',').map(parseFloat);\n const wordHeight = bottom - top;\n wordHeightArr.push(wordHeight);\n\n if (wordIndex == 0 && prevLine?.lastWord.textContent.trim().endsWith('-')) {\n // ideally prefer the next line to determine the left position,\n // since the previous line could be the first line of the paragraph\n // and hence have an incorrectly indented first word.\n // E.g. https://archive.org/details/driitaleofdaring00bachuoft/page/360/mode/2up\n const [newLeft, , , ] = $((nextLine || prevLine).firstWord).attr(\"coords\").split(',').map(parseFloat);\n $(currWord).attr(\"coords\", `${newLeft},${bottom},${right},${top}`);\n }\n\n const wordEl = document.createElement('span');\n wordEl.setAttribute(\"class\", \"BRwordElement\");\n wordEl.textContent = currWord.textContent.trim();\n\n if (wordIndex > 0) {\n const space = document.createElement('span');\n space.classList.add('BRspace');\n space.textContent = ' ';\n lineEl.append(space);\n\n // Edge ignores empty elements (like BRspace), so add another\n // space to ensure Edge's ReadAloud works correctly.\n lineEl.appendChild(document.createTextNode(' '));\n }\n\n lineEl.appendChild(wordEl);\n }\n\n const hasHyphen = line.lastWord.textContent.trim().endsWith('-');\n const lastWordEl = lineEl.children[lineEl.children.length - 1];\n if (hasHyphen && !isLastLineOfParagraph) {\n lastWordEl.textContent = lastWordEl.textContent.trim().slice(0, -1);\n lastWordEl.classList.add('BRwordElement--hyphen');\n }\n\n paragEl.appendChild(lineEl);\n if (!isLastLineOfParagraph && !hasHyphen) {\n // Edge does not correctly have spaces between the lines.\n paragEl.appendChild(document.createTextNode(' '));\n }\n }\n\n wordHeightArr.sort((a, b) => a - b);\n const paragWordHeight = wordHeightArr[Math.floor(wordHeightArr.length * 0.85)] + 4;\n paragEl.style.left = `${paragLeft}px`;\n paragEl.style.top = `${paragTop}px`;\n paragEl.style.width = `${paragRight - paragLeft}px`;\n paragEl.style.height = `${paragBottom - paragTop}px`;\n paragEl.style.fontSize = `${paragWordHeight}px`;\n\n // Fix up sizes - stretch/crush words as necessary using letter spacing\n let wordRects = determineRealRects(paragEl, '.BRwordElement');\n const ocrWords = $(ocrParagraph).find(\"WORD\").toArray();\n const wordEls = paragEl.querySelectorAll('.BRwordElement');\n for (const [ocrWord, wordEl] of zip(ocrWords, wordEls)) {\n const realRect = wordRects.get(wordEl);\n const [left, , right ] = $(ocrWord).attr(\"coords\").split(',').map(parseFloat);\n let ocrWidth = right - left;\n // Some books (eg theworksofplato01platiala) have a space _inside_ the <WORD>\n // element. That makes it impossible to determine the correct positining\n // of everything, but to avoid the BRspace's being width 0, which makes selection\n // janky on Chrome Android, assume the space is the same width as one of the\n // letters.\n if (ocrWord.textContent.endsWith(' ')) {\n ocrWidth = ocrWidth * (ocrWord.textContent.length - 1) / ocrWord.textContent.length;\n }\n const diff = ocrWidth - realRect.width;\n wordEl.style.letterSpacing = `${diff / (ocrWord.textContent.length - 1)}px`;\n }\n\n // Stretch/crush lines as necessary using line spacing\n // Recompute rects after letter spacing\n wordRects = determineRealRects(paragEl, '.BRwordElement');\n const spaceRects = determineRealRects(paragEl, '.BRspace');\n\n const ocrLines = $(ocrParagraph).find(\"LINE[coords]\").toArray();\n const lineEls = Array.from(paragEl.querySelectorAll('.BRlineElement'));\n\n let ySoFar = paragTop;\n for (const [ocrLine, lineEl] of zip(ocrLines, lineEls)) {\n // shift words using marginLeft to align with the correct x position\n const words = $(ocrLine).find(\"WORD\").toArray();\n // const ocrLineLeft = Math.min(...words.map(w => parseFloat($(w).attr(\"coords\").split(',')[0])));\n let xSoFar = this.rtl ? paragRight : paragLeft;\n for (const [ocrWord, wordEl] of zip(words, lineEl.querySelectorAll('.BRwordElement'))) {\n // start of line, need to compute the offset relative to the OCR words\n const wordRect = wordRects.get(wordEl);\n const [ocrLeft, , ocrRight ] = $(ocrWord).attr(\"coords\").split(',').map(parseFloat);\n const diff = (this.rtl ? -(ocrRight - xSoFar) : ocrLeft - xSoFar);\n\n if (wordEl.previousElementSibling) {\n const space = wordEl.previousElementSibling;\n space.style.letterSpacing = `${diff - spaceRects.get(space).width}px`;\n } else {\n wordEl.style[this.rtl ? 'paddingRight' : 'paddingLeft'] = `${diff}px`;\n }\n if (this.rtl) xSoFar -= diff + wordRect.width;\n else xSoFar += diff + wordRect.width;\n }\n // And also fix y position\n const ocrLineTop = Math.min(...words.map(w => parseFloat($(w).attr(\"coords\").split(',')[3])));\n const diff = ocrLineTop - ySoFar;\n if (lineEl.previousElementSibling) {\n lineEl.previousElementSibling.style.lineHeight = `${diff}px`;\n ySoFar += diff;\n }\n }\n\n // The last line will have a line height subtracting from the paragraph height\n lineEls[lineEls.length - 1].style.lineHeight = `${paragBottom - ySoFar}px`;\n\n // Edge does not include a newline for some reason when copying/pasting the <p> els\n paragEl.appendChild(document.createElement('br'));\n return paragEl;\n }\n}\n\nexport class BookreaderWithTextSelection extends BookReader {\n init() {\n const options = Object.assign({}, DEFAULT_OPTIONS, this.options.plugins.textSelection);\n if (options.enabled) {\n this.textSelectionPlugin = new TextSelectionPlugin(options, this.options.vars, this.pageProgression);\n // Write this back; this way the plugin is the source of truth, and BR just\n // contains a reference to it.\n this.options.plugins.textSelection = options;\n this.textSelectionPlugin.init();\n\n new SelectionObserver('.BRtextLayer', (selectEvent) => {\n // Track how often selection is used\n if (selectEvent == 'started') {\n this.archiveAnalyticsSendEvent?.('BookReader', 'SelectStart');\n\n // Set a class on the page to avoid hiding it when zooming/etc\n this.refs.$br.find('.BRpagecontainer--hasSelection').removeClass('BRpagecontainer--hasSelection');\n $(window.getSelection().anchorNode).closest('.BRpagecontainer').addClass('BRpagecontainer--hasSelection');\n }\n }).attach();\n }\n\n super.init();\n }\n\n /**\n * @param {number} index\n */\n _createPageContainer(index) {\n const pageContainer = super._createPageContainer(index);\n // Disable if thumb mode; it's too janky\n // .page can be null for \"pre-cover\" region\n if (this.mode !== this.constModeThumb && pageContainer.page) {\n this.textSelectionPlugin?.createTextLayer(pageContainer);\n }\n return pageContainer;\n }\n}\nwindow.BookReader = BookreaderWithTextSelection;\nexport default BookreaderWithTextSelection;\n\n\n/**\n * @param {HTMLElement} parentEl\n * @param {string} selector\n * @returns {Map<Element, Rect>}\n */\nfunction determineRealRects(parentEl, selector) {\n const initals = {\n position: parentEl.style.position,\n visibility: parentEl.style.visibility,\n top: parentEl.style.top,\n left: parentEl.style.left,\n transform: parentEl.style.transform,\n };\n parentEl.style.position = 'absolute';\n parentEl.style.visibility = 'hidden';\n parentEl.style.top = '0';\n parentEl.style.left = '0';\n parentEl.style.transform = 'none';\n document.body.appendChild(parentEl);\n const rects = new Map(\n Array.from(parentEl.querySelectorAll(selector))\n .map(wordEl => {\n const origRect = wordEl.getBoundingClientRect();\n return [wordEl, new Rect(\n origRect.left + window.scrollX,\n origRect.top + window.scrollY,\n origRect.width,\n origRect.height,\n )];\n })\n );\n document.body.removeChild(parentEl);\n Object.assign(parentEl.style, initals);\n return rects;\n}\n\n/**\n * @param {HTMLElement} line\n */\nfunction augmentLine(line) {\n const words = $(line).find(\"WORD\").toArray();\n return {\n ocrElement: line,\n words,\n firstWord: words[0],\n lastWord: words[words.length - 1],\n };\n}\n\n/**\n * @template TFrom, TTo\n * Generator version of map\n * @param {Iterable<TFrom>} gen\n * @param {function(TFrom): TTo} fn\n * @returns {Iterable<TTo>}\n */\nexport function* genMap(gen, fn) {\n for (const x of gen) yield fn(x);\n}\n\n/**\n * @template T\n * Generator that provides a sliding window of 3 elements,\n * prev, current, and next.\n * @param {Iterable<T>} gen\n * @returns {Iterable<[T | undefined, T, T | undefined]>}\n */\nexport function* lookAroundWindow(gen) {\n let prev = undefined;\n let cur = undefined;\n let next = undefined;\n for (const x of gen) {\n if (typeof cur !== 'undefined') {\n next = x;\n yield [prev, cur, next];\n }\n prev = cur;\n cur = x;\n next = undefined;\n }\n\n if (typeof cur !== 'undefined') {\n yield [prev, cur, next];\n }\n}\n\n/**\n * @template T1, T2\n * Lazy zip implementation to avoid importing lodash\n * Expects iterators to be of the same length\n * @param {Iterable<T1>} gen1\n * @param {Iterable<T2>} gen2\n * @returns {Iterable<[T1, T2]>}\n */\nexport function* zip(gen1, gen2) {\n const it1 = gen1[Symbol.iterator]();\n const it2 = gen2[Symbol.iterator]();\n while (true) {\n const r1 = it1.next();\n const r2 = it2.next();\n if (r1.done && r2.done) {\n return;\n }\n if (r1.done || r2.done) {\n throw new Error('zip: one of the iterators is done');\n }\n yield [r1.value, r2.value];\n }\n}\n\n/**\n * [left, bottom, right, top]\n * @param {Array<[number, number, number, number]>} bounds\n * @returns {[number, number, number, number]}\n */\nfunction determineBounds(bounds) {\n let leftMost = Infinity;\n let bottomMost = -Infinity;\n let rightMost = -Infinity;\n let topMost = Infinity;\n\n for (const [left, bottom, right, top] of bounds) {\n leftMost = Math.min(leftMost, left);\n bottomMost = Math.max(bottomMost, bottom);\n rightMost = Math.max(rightMost, right);\n topMost = Math.min(topMost, top);\n }\n\n return [leftMost, bottomMost, rightMost, topMost];\n}\n\n/**\n * Recursively traverses the XML tree and adds coords\n * which are the bounding box of all child coords\n * @param {Element} xmlEl\n */\nfunction recursivelyAddCoords(xmlEl) {\n if ($(xmlEl).attr('coords') || !xmlEl.children) {\n return;\n }\n\n const children = $(xmlEl).children().toArray();\n if (children.length === 0) {\n return;\n }\n\n for (const child of children) {\n recursivelyAddCoords(child);\n }\n\n const childCoords = [];\n\n for (const child of children) {\n if (!$(child).attr('coords')) continue;\n childCoords.push($(child).attr('coords').split(',').map(parseFloat));\n }\n\n const boundingCoords = determineBounds(childCoords);\n if (Math.abs(boundingCoords[0]) != Infinity) {\n $(xmlEl).attr('coords', boundingCoords.join(','));\n }\n}\n\n/**\n * Basically a polyfill for the native DOMRect class\n */\nclass Rect {\n /**\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n */\n constructor(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n\n get right() { return this.x + this.width; }\n get bottom() { return this.y + this.height; }\n get top() { return this.y; }\n get left() { return this.x; }\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":["SelectionObserver","selector","handler","_this","_classCallCheck","_defineProperty","sel","window","getSelection","selecting","toString","target","$","anchorNode","closest","isCollapsed","this","key","value","document","addEventListener","_onSelectionChange","removeEventListener","applyVariables","template","vars","overrides","arguments","length","undefined","possibleFilters","APPLY_FILTERS","replace","$0","$1","_expression$split$map2","split","map","x","trim","varName","filterNames","slice","n","reduce","acc","cur","urlencode","encodeURIComponent","genMap","_marked2","_regeneratorRuntime","mark","lookAroundWindow","_marked3","zip","_callSuper","t","o","e","_getPrototypeOf","_typeof","TypeError","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","_get","get","bind","r","p","hasOwnProperty","_superPropBase","Object","getOwnPropertyDescriptor","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","_slicedToArray","Array","isArray","_arrayWithHoles","l","Symbol","iterator","i","u","a","f","next","done","push","return","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_createForOfIteratorHelper","_n","F","s","_arrayLikeToArray","name","from","test","defineProperty","c","asyncIterator","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","h","y","GeneratorFunction","GeneratorFunctionPrototype","d","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","awrap","async","Promise","keys","reverse","pop","prev","charAt","stop","rval","handle","complete","finish","catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","_next","_throw","_defineProperties","_toPropertyKey","_createClass","toPrimitive","String","_toPrimitive","BookReader","DEFAULT_OPTIONS","enabled","fullDjvuXmlUrl","singlePageDjvuXmlUrl","jsonp","Cache","maxSize","entries","entry","shift","TextSelectionPlugin","options","optionVariables","pageProgression","textSelectingMode","concat","defaultMode","djvuPagesPromise","rtl","pageTextCache","maxWordRendered","selectionObserver","attach","ajax","url","dataType","cache","error","res","xmlMap","parseXML","find","_getPageText","_callee","index","cachedEntry","xmlDoc","result","XMLpagesArr","_context","response","pageIndex","add","t0","_x","$container","event","selection","clipboardData","setData","preventDefault","textLayer","_this2","$pageContainer","style","pointerEvents","css","off","startedMouseDown","mouseIsDown","skipNextMouseup","on","is","stopPropagation","_this3","_this4","$textLayer","each","interceptCopy","_createTextLayer","_callee2","pageContainer","XMLpage","totalWords","ratioW","ratioH","ocrParagraphs","paragEls","paragraphRects","yAdded","_iterator","_step","_step$value","ocrParagraph","paragEl","ocrParagBounds","realRect","_ocrParagBounds","ocrLeft","ocrRight","ocrTop","newStartMargin","newTop","_this5","_context2","page","getPageText","recursivelyAddCoords","console","log","createDIVPageLayer","parseFloat","width","height","transform","setAttribute","toArray","el","renderParagraph","appendChild","determineRealRects","attr","right","left","top","marginTop","err","append","stopPageFlip","_x2","createElement","classList","_$$attr$split$map2","paragLeft","paragBottom","paragRight","paragTop","wordHeightArr","lines","_step2","_iterator2","augmentLine","_step2$value","prevLine","line","nextLine","isLastLineOfParagraph","ocrElement","lineEl","_step5","_iterator5","words","_step5$value","wordIndex","currWord","_$$attr$split$map4","bottom","wordHeight","lastWord","textContent","endsWith","newLeft","firstWord","wordEl","space","createTextNode","hasHyphen","lastWordEl","children","sort","b","paragWordHeight","Math","floor","fontSize","_step3","wordRects","_iterator3","querySelectorAll","_step3$value","ocrWord","_$$attr$split$map8","ocrWidth","diff","letterSpacing","_step4","spaceRects","ocrLines","lineEls","ySoFar","_iterator4","_step6","_step4$value","ocrLine","xSoFar","_iterator6","_step6$value","wordRect","_$$attr$split$map10","previousElementSibling","min","_arrayWithoutHoles","w","_iterableToArray","_nonIterableSpread","lineHeight","BookreaderWithTextSelection","_BookReader","_inherits","_this6","assign","plugins","textSelection","textSelectionPlugin","init","selectEvent","_this6$archiveAnalyti","archiveAnalyticsSendEvent","refs","$br","removeClass","addClass","_this$textSelectionPl","mode","constModeThumb","createTextLayer","parentEl","initals","position","visibility","body","rects","Map","origRect","getBoundingClientRect","Rect","scrollX","scrollY","removeChild","gen","fn","_iterator7","_step7","_context3","_marked","_iterator8","_step8","_context4","gen1","gen2","it1","it2","r1","r2","_context5","xmlEl","_step10","_iterator10","_step11","childCoords","_iterator11","child","boundingCoords","bounds","_step9","leftMost","Infinity","bottomMost","rightMost","topMost","_iterator9","_step9$value","max","determineBounds","abs","join","PROPER_FUNCTION_NAME","fails","whitespaces","module","exports","METHOD_NAME","$trim","proto","forced","forcedStringTrimMethod"],"sourceRoot":""}
|
1
|
+
{"version":3,"file":"plugins/plugin.text_selection.js","mappings":"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","sources":["webpack://@internetarchive/bookreader/./src/BookReader/utils/SelectionObserver.js","webpack://@internetarchive/bookreader/./src/util/strings.js","webpack://@internetarchive/bookreader/./src/plugins/plugin.text_selection.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\nexport class SelectionObserver {\n selecting = false;\n startedInSelector = false;\n /** @type {HTMLElement} */\n target = null;\n\n /**\n * @param {string} selector\n * @param {function('started' | 'cleared', HTMLElement): any} handler\n */\n constructor(selector, handler) {\n this.selector = selector;\n this.handler = handler;\n }\n\n attach() {\n // We can't just use selectstart, because safari on iOS just\n // randomly decides when to fire it 😤\n // document.addEventListener(\"selectstart\", this._onSelectStart);\n // This has to be on document :/\n document.addEventListener(\"selectionchange\", this._onSelectionChange);\n }\n\n detach() {\n document.removeEventListener(\"selectionchange\", this._onSelectionChange);\n }\n\n _onSelectionChange = () => {\n const sel = window.getSelection();\n\n if (!this.selecting && sel.toString()) {\n const target = $(sel.anchorNode).closest(this.selector)[0];\n if (!target) return;\n this.target = target;\n this.selecting = true;\n this.handler('started', this.target);\n }\n\n if (this.selecting && (sel.isCollapsed || !sel.toString() || !$(sel.anchorNode).closest(this.selector)[0])) {\n this.selecting = false;\n this.handler('cleared', this.target);\n }\n };\n}\n","/**\n * @typedef {String} StringWithVars\n * A template string with {{foo}} style variables\n * Also supports filters, like {{bookPath|urlencode}} (See APPLY_FILTERS for the\n * supported list of filters)\n **/\n\n/**\n * @param {StringWithVars|String} template\n * @param { {[varName: string]: { toString: () => string} } } vars\n * @param { {[varName: string]: { toString: () => string} } } [overrides]\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","//@ts-check\nimport { createDIVPageLayer } from '../BookReader/PageContainer.js';\nimport { SelectionObserver } from '../BookReader/utils/SelectionObserver.js';\nimport { applyVariables } from '../util/strings.js';\n/** @typedef {import('../util/strings.js').StringWithVars} StringWithVars */\n/** @typedef {import('../BookReader/PageContainer.js').PageContainer} PageContainer */\n\nconst BookReader = /** @type {typeof import('../BookReader').default} */(window.BookReader);\n\nexport const DEFAULT_OPTIONS = {\n enabled: true,\n /** @type {StringWithVars} The URL to fetch the entire DJVU xml. Supports options.vars */\n fullDjvuXmlUrl: null,\n /** @type {StringWithVars} The URL to fetch a single page of the DJVU xml. Supports options.vars. Also has {{pageIndex}} */\n singlePageDjvuXmlUrl: null,\n /** Whether to fetch the XML as a jsonp */\n jsonp: false,\n};\n/** @typedef {typeof DEFAULT_OPTIONS} TextSelectionPluginOptions */\n\n/**\n * @template T\n */\nexport class Cache {\n constructor(maxSize = 10) {\n this.maxSize = maxSize;\n /** @type {T[]} */\n this.entries = [];\n }\n\n /**\n * @param {T} entry\n */\n add(entry) {\n if (this.entries.length >= this.maxSize) {\n this.entries.shift();\n }\n this.entries.push(entry);\n }\n}\n\nexport class TextSelectionPlugin {\n /**\n * @param {'lr' | 'rl'} pageProgression In the future this should be in the ocr file\n * since a book being right to left doesn't mean the ocr is right to left. But for\n * now we do make that assumption.\n */\n constructor(options = DEFAULT_OPTIONS, optionVariables, pageProgression = 'lr') {\n this.options = options;\n this.optionVariables = optionVariables;\n /**@type {PromiseLike<JQuery<HTMLElement>|undefined>} */\n this.djvuPagesPromise = null;\n /** Whether the book is right-to-left */\n this.rtl = pageProgression === 'rl';\n\n /** @type {Cache<{index: number, response: any}>} */\n this.pageTextCache = new Cache();\n\n /**\n * Sometimes there are too many words on a page, and the browser becomes near\n * unusable. For now don't render text layer for pages with too many words.\n */\n this.maxWordRendered = 2500;\n\n this.selectionObserver = new SelectionObserver('.BRtextLayer', this._onSelectionChange);\n }\n\n /**\n * @param {'started' | 'cleared'} type\n * @param {HTMLElement} target\n */\n _onSelectionChange = (type, target) => {\n if (type === 'started') {\n this.textSelectingMode(target);\n } else if (type === 'cleared') {\n this.defaultMode(target);\n } else {\n throw new Error(`Unknown type ${type}`);\n }\n }\n\n init() {\n this.selectionObserver.attach();\n\n // Only fetch the full djvu xml if the single page url isn't there\n if (this.options.singlePageDjvuXmlUrl) return;\n this.djvuPagesPromise = $.ajax({\n type: \"GET\",\n url: applyVariables(this.options.fullDjvuXmlUrl, this.optionVariables),\n dataType: this.options.jsonp ? \"jsonp\" : \"html\",\n cache: true,\n error: (e) => undefined,\n }).then((res) => {\n try {\n const xmlMap = $.parseXML(res);\n return xmlMap && $(xmlMap).find(\"OBJECT\");\n } catch (e) {\n return undefined;\n }\n });\n }\n\n /**\n * @param {number} index\n * @returns {Promise<HTMLElement|undefined>}\n */\n async getPageText(index) {\n if (this.options.singlePageDjvuXmlUrl) {\n const cachedEntry = this.pageTextCache.entries.find(x => x.index == index);\n if (cachedEntry) {\n return cachedEntry.response;\n }\n const res = await $.ajax({\n type: \"GET\",\n url: applyVariables(this.options.singlePageDjvuXmlUrl, this.optionVariables, { pageIndex: index }),\n dataType: this.options.jsonp ? \"jsonp\" : \"html\",\n cache: true,\n error: (e) => undefined,\n });\n try {\n const xmlDoc = $.parseXML(res);\n const result = xmlDoc && $(xmlDoc).find(\"OBJECT\")[0];\n this.pageTextCache.add({ index, response: result });\n return result;\n } catch (e) {\n return undefined;\n }\n } else {\n const XMLpagesArr = await this.djvuPagesPromise;\n if (XMLpagesArr) return XMLpagesArr[index];\n }\n }\n\n /**\n * Intercept copied text to remove any styling applied to it\n * @param {JQuery} $container\n */\n interceptCopy($container) {\n $container[0].addEventListener('copy', (event) => {\n const selection = document.getSelection();\n event.clipboardData.setData('text/plain', selection.toString());\n event.preventDefault();\n });\n }\n\n /**\n * Applies mouse events when in default mode\n * @param {HTMLElement} textLayer\n */\n defaultMode(textLayer) {\n const $pageContainer = $(textLayer).closest('.BRpagecontainer');\n textLayer.style.pointerEvents = \"none\";\n $pageContainer.find(\"img\").css(\"pointer-events\", \"auto\");\n\n $(textLayer).off(\".textSelectPluginHandler\");\n const startedMouseDown = this.mouseIsDown;\n let skipNextMouseup = this.mouseIsDown;\n if (startedMouseDown) {\n textLayer.style.pointerEvents = \"auto\";\n }\n\n // Need to stop propagation to prevent DragScrollable from\n // blocking selection\n $(textLayer).on(\"mousedown.textSelectPluginHandler\", (event) => {\n this.mouseIsDown = true;\n if ($(event.target).is(\".BRwordElement, .BRspace\")) {\n event.stopPropagation();\n }\n });\n\n $(textLayer).on(\"mouseup.textSelectPluginHandler\", (event) => {\n this.mouseIsDown = false;\n textLayer.style.pointerEvents = \"none\";\n if (skipNextMouseup) {\n skipNextMouseup = false;\n event.stopPropagation();\n }\n });\n }\n\n /**\n * This mode is active while there is a selection on the given textLayer\n * @param {HTMLElement} textLayer\n */\n textSelectingMode(textLayer) {\n const $pageContainer = $(textLayer).closest('.BRpagecontainer');\n // Make text layer consume all events\n textLayer.style.pointerEvents = \"all\";\n // Block img from getting long-press to save while selecting\n $pageContainer.find(\"img\").css(\"pointer-events\", \"none\");\n\n $(textLayer).off(\".textSelectPluginHandler\");\n\n $(textLayer).on('mousedown.textSelectPluginHandler', (event) => {\n this.mouseIsDown = true;\n event.stopPropagation();\n });\n\n // Prevent page flip on click\n $(textLayer).on('mouseup.textSelectPluginHandler', (event) => {\n this.mouseIsDown = false;\n event.stopPropagation();\n });\n }\n\n /**\n * Initializes text selection modes if there is a text layer on the page\n * @param {JQuery} $container\n */\n stopPageFlip($container) {\n /** @type {JQuery<HTMLElement>} */\n const $textLayer = $container.find('.BRtextLayer');\n if (!$textLayer.length) return;\n $textLayer.each((i, s) => this.defaultMode(s));\n this.interceptCopy($container);\n }\n\n /**\n * @param {PageContainer} pageContainer\n */\n async createTextLayer(pageContainer) {\n const pageIndex = pageContainer.page.index;\n const $container = pageContainer.$container;\n const $textLayers = $container.find('.BRtextLayer');\n if ($textLayers.length) return;\n const XMLpage = await this.getPageText(pageIndex);\n if (!XMLpage) return;\n recursivelyAddCoords(XMLpage);\n\n const totalWords = $(XMLpage).find(\"WORD\").length;\n if (totalWords > this.maxWordRendered) {\n console.log(`Page ${pageIndex} has too many words (${totalWords} > ${this.maxWordRendered}). Not rendering text layer.`);\n return;\n }\n\n const textLayer = createDIVPageLayer(pageContainer.page, 'BRtextLayer');\n const ratioW = parseFloat(pageContainer.$container[0].style.width) / pageContainer.page.width;\n const ratioH = parseFloat(pageContainer.$container[0].style.height) / pageContainer.page.height;\n textLayer.style.transform = `scale(${ratioW}, ${ratioH})`;\n textLayer.setAttribute(\"dir\", this.rtl ? \"rtl\" : \"ltr\");\n\n const ocrParagraphs = $(XMLpage).find(\"PARAGRAPH[coords]\").toArray();\n const paragEls = ocrParagraphs.map(p => {\n const el = this.renderParagraph(p);\n textLayer.appendChild(el);\n return el;\n });\n\n // Fix up paragraph positions\n const paragraphRects = determineRealRects(textLayer, '.BRparagraphElement');\n let yAdded = 0;\n for (const [ocrParagraph, paragEl] of zip(ocrParagraphs, paragEls)) {\n const ocrParagBounds = $(ocrParagraph).attr(\"coords\").split(\",\").map(parseFloat);\n const realRect = paragraphRects.get(paragEl);\n const [ocrLeft, , ocrRight, ocrTop] = ocrParagBounds;\n const newStartMargin = this.rtl ? (realRect.right - ocrRight) : (ocrLeft - realRect.left);\n const newTop = ocrTop - (realRect.top + yAdded);\n\n paragEl.style[this.rtl ? 'marginRight' : 'marginLeft'] = `${newStartMargin}px`;\n paragEl.style.marginTop = `${newTop}px`;\n yAdded += newTop;\n textLayer.appendChild(paragEl);\n }\n $container.append(textLayer);\n this.stopPageFlip($container);\n }\n\n /**\n * @param {HTMLElement} ocrParagraph\n * @returns {HTMLParagraphElement}\n */\n renderParagraph(ocrParagraph) {\n const paragEl = document.createElement('p');\n paragEl.classList.add('BRparagraphElement');\n const [paragLeft, paragBottom, paragRight, paragTop] = $(ocrParagraph).attr(\"coords\").split(\",\").map(parseFloat);\n const wordHeightArr = [];\n const lines = $(ocrParagraph).find(\"LINE[coords]\").toArray();\n if (!lines.length) return paragEl;\n\n\n for (const [prevLine, line, nextLine] of lookAroundWindow(genMap(lines, augmentLine))) {\n const isLastLineOfParagraph = line.ocrElement == lines[lines.length - 1];\n const lineEl = document.createElement('span');\n lineEl.classList.add('BRlineElement');\n\n for (const [wordIndex, currWord] of line.words.entries()) {\n const [, bottom, right, top] = $(currWord).attr(\"coords\").split(',').map(parseFloat);\n const wordHeight = bottom - top;\n wordHeightArr.push(wordHeight);\n\n if (wordIndex == 0 && prevLine?.lastWord.textContent.trim().endsWith('-')) {\n // ideally prefer the next line to determine the left position,\n // since the previous line could be the first line of the paragraph\n // and hence have an incorrectly indented first word.\n // E.g. https://archive.org/details/driitaleofdaring00bachuoft/page/360/mode/2up\n const [newLeft, , , ] = $((nextLine || prevLine).firstWord).attr(\"coords\").split(',').map(parseFloat);\n $(currWord).attr(\"coords\", `${newLeft},${bottom},${right},${top}`);\n }\n\n const wordEl = document.createElement('span');\n wordEl.setAttribute(\"class\", \"BRwordElement\");\n wordEl.textContent = currWord.textContent.trim();\n\n if (wordIndex > 0) {\n const space = document.createElement('span');\n space.classList.add('BRspace');\n space.textContent = ' ';\n lineEl.append(space);\n\n // Edge ignores empty elements (like BRspace), so add another\n // space to ensure Edge's ReadAloud works correctly.\n lineEl.appendChild(document.createTextNode(' '));\n }\n\n lineEl.appendChild(wordEl);\n }\n\n const hasHyphen = line.lastWord.textContent.trim().endsWith('-');\n const lastWordEl = lineEl.children[lineEl.children.length - 1];\n if (hasHyphen && !isLastLineOfParagraph) {\n lastWordEl.textContent = lastWordEl.textContent.trim().slice(0, -1);\n lastWordEl.classList.add('BRwordElement--hyphen');\n }\n\n paragEl.appendChild(lineEl);\n if (!isLastLineOfParagraph && !hasHyphen) {\n // Edge does not correctly have spaces between the lines.\n paragEl.appendChild(document.createTextNode(' '));\n }\n }\n\n wordHeightArr.sort((a, b) => a - b);\n const paragWordHeight = wordHeightArr[Math.floor(wordHeightArr.length * 0.85)] + 4;\n paragEl.style.left = `${paragLeft}px`;\n paragEl.style.top = `${paragTop}px`;\n paragEl.style.width = `${paragRight - paragLeft}px`;\n paragEl.style.height = `${paragBottom - paragTop}px`;\n paragEl.style.fontSize = `${paragWordHeight}px`;\n\n // Fix up sizes - stretch/crush words as necessary using letter spacing\n let wordRects = determineRealRects(paragEl, '.BRwordElement');\n const ocrWords = $(ocrParagraph).find(\"WORD\").toArray();\n const wordEls = paragEl.querySelectorAll('.BRwordElement');\n for (const [ocrWord, wordEl] of zip(ocrWords, wordEls)) {\n const realRect = wordRects.get(wordEl);\n const [left, , right ] = $(ocrWord).attr(\"coords\").split(',').map(parseFloat);\n let ocrWidth = right - left;\n // Some books (eg theworksofplato01platiala) have a space _inside_ the <WORD>\n // element. That makes it impossible to determine the correct positining\n // of everything, but to avoid the BRspace's being width 0, which makes selection\n // janky on Chrome Android, assume the space is the same width as one of the\n // letters.\n if (ocrWord.textContent.endsWith(' ')) {\n ocrWidth = ocrWidth * (ocrWord.textContent.length - 1) / ocrWord.textContent.length;\n }\n const diff = ocrWidth - realRect.width;\n wordEl.style.letterSpacing = `${diff / (ocrWord.textContent.length - 1)}px`;\n }\n\n // Stretch/crush lines as necessary using line spacing\n // Recompute rects after letter spacing\n wordRects = determineRealRects(paragEl, '.BRwordElement');\n const spaceRects = determineRealRects(paragEl, '.BRspace');\n\n const ocrLines = $(ocrParagraph).find(\"LINE[coords]\").toArray();\n const lineEls = Array.from(paragEl.querySelectorAll('.BRlineElement'));\n\n let ySoFar = paragTop;\n for (const [ocrLine, lineEl] of zip(ocrLines, lineEls)) {\n // shift words using marginLeft to align with the correct x position\n const words = $(ocrLine).find(\"WORD\").toArray();\n // const ocrLineLeft = Math.min(...words.map(w => parseFloat($(w).attr(\"coords\").split(',')[0])));\n let xSoFar = this.rtl ? paragRight : paragLeft;\n for (const [ocrWord, wordEl] of zip(words, lineEl.querySelectorAll('.BRwordElement'))) {\n // start of line, need to compute the offset relative to the OCR words\n const wordRect = wordRects.get(wordEl);\n const [ocrLeft, , ocrRight ] = $(ocrWord).attr(\"coords\").split(',').map(parseFloat);\n const diff = (this.rtl ? -(ocrRight - xSoFar) : ocrLeft - xSoFar);\n\n if (wordEl.previousElementSibling) {\n const space = wordEl.previousElementSibling;\n space.style.letterSpacing = `${diff - spaceRects.get(space).width}px`;\n } else {\n wordEl.style[this.rtl ? 'paddingRight' : 'paddingLeft'] = `${diff}px`;\n }\n if (this.rtl) xSoFar -= diff + wordRect.width;\n else xSoFar += diff + wordRect.width;\n }\n // And also fix y position\n const ocrLineTop = Math.min(...words.map(w => parseFloat($(w).attr(\"coords\").split(',')[3])));\n const diff = ocrLineTop - ySoFar;\n if (lineEl.previousElementSibling) {\n lineEl.previousElementSibling.style.lineHeight = `${diff}px`;\n ySoFar += diff;\n }\n }\n\n // The last line will have a line height subtracting from the paragraph height\n lineEls[lineEls.length - 1].style.lineHeight = `${paragBottom - ySoFar}px`;\n\n // Edge does not include a newline for some reason when copying/pasting the <p> els\n paragEl.appendChild(document.createElement('br'));\n return paragEl;\n }\n}\n\nexport class BookreaderWithTextSelection extends BookReader {\n init() {\n const options = Object.assign({}, DEFAULT_OPTIONS, this.options.plugins.textSelection);\n if (options.enabled) {\n this.textSelectionPlugin = new TextSelectionPlugin(options, this.options.vars, this.pageProgression);\n // Write this back; this way the plugin is the source of truth, and BR just\n // contains a reference to it.\n this.options.plugins.textSelection = options;\n this.textSelectionPlugin.init();\n\n new SelectionObserver('.BRtextLayer', (selectEvent) => {\n // Track how often selection is used\n if (selectEvent == 'started') {\n this.archiveAnalyticsSendEvent?.('BookReader', 'SelectStart');\n\n // Set a class on the page to avoid hiding it when zooming/etc\n this.refs.$br.find('.BRpagecontainer--hasSelection').removeClass('BRpagecontainer--hasSelection');\n $(window.getSelection().anchorNode).closest('.BRpagecontainer').addClass('BRpagecontainer--hasSelection');\n }\n }).attach();\n }\n\n super.init();\n }\n\n /**\n * @param {number} index\n */\n _createPageContainer(index) {\n const pageContainer = super._createPageContainer(index);\n // Disable if thumb mode; it's too janky\n // .page can be null for \"pre-cover\" region\n if (this.mode !== this.constModeThumb && pageContainer.page) {\n this.textSelectionPlugin?.createTextLayer(pageContainer);\n }\n return pageContainer;\n }\n}\nwindow.BookReader = BookreaderWithTextSelection;\nexport default BookreaderWithTextSelection;\n\n\n/**\n * @param {HTMLElement} parentEl\n * @param {string} selector\n * @returns {Map<Element, Rect>}\n */\nfunction determineRealRects(parentEl, selector) {\n const initals = {\n position: parentEl.style.position,\n visibility: parentEl.style.visibility,\n top: parentEl.style.top,\n left: parentEl.style.left,\n transform: parentEl.style.transform,\n };\n parentEl.style.position = 'absolute';\n parentEl.style.visibility = 'hidden';\n parentEl.style.top = '0';\n parentEl.style.left = '0';\n parentEl.style.transform = 'none';\n document.body.appendChild(parentEl);\n const rects = new Map(\n Array.from(parentEl.querySelectorAll(selector))\n .map(wordEl => {\n const origRect = wordEl.getBoundingClientRect();\n return [wordEl, new Rect(\n origRect.left + window.scrollX,\n origRect.top + window.scrollY,\n origRect.width,\n origRect.height,\n )];\n }),\n );\n document.body.removeChild(parentEl);\n Object.assign(parentEl.style, initals);\n return rects;\n}\n\n/**\n * @param {HTMLElement} line\n */\nfunction augmentLine(line) {\n const words = $(line).find(\"WORD\").toArray();\n return {\n ocrElement: line,\n words,\n firstWord: words[0],\n lastWord: words[words.length - 1],\n };\n}\n\n/**\n * @template TFrom, TTo\n * Generator version of map\n * @param {Iterable<TFrom>} gen\n * @param {function(TFrom): TTo} fn\n * @returns {Iterable<TTo>}\n */\nexport function* genMap(gen, fn) {\n for (const x of gen) yield fn(x);\n}\n\n/**\n * @template T\n * Generator that provides a sliding window of 3 elements,\n * prev, current, and next.\n * @param {Iterable<T>} gen\n * @returns {Iterable<[T | undefined, T, T | undefined]>}\n */\nexport function* lookAroundWindow(gen) {\n let prev = undefined;\n let cur = undefined;\n let next = undefined;\n for (const x of gen) {\n if (typeof cur !== 'undefined') {\n next = x;\n yield [prev, cur, next];\n }\n prev = cur;\n cur = x;\n next = undefined;\n }\n\n if (typeof cur !== 'undefined') {\n yield [prev, cur, next];\n }\n}\n\n/**\n * @template T1, T2\n * Lazy zip implementation to avoid importing lodash\n * Expects iterators to be of the same length\n * @param {Iterable<T1>} gen1\n * @param {Iterable<T2>} gen2\n * @returns {Iterable<[T1, T2]>}\n */\nexport function* zip(gen1, gen2) {\n const it1 = gen1[Symbol.iterator]();\n const it2 = gen2[Symbol.iterator]();\n while (true) {\n const r1 = it1.next();\n const r2 = it2.next();\n if (r1.done && r2.done) {\n return;\n }\n if (r1.done || r2.done) {\n throw new Error('zip: one of the iterators is done');\n }\n yield [r1.value, r2.value];\n }\n}\n\n/**\n * [left, bottom, right, top]\n * @param {Array<[number, number, number, number]>} bounds\n * @returns {[number, number, number, number]}\n */\nfunction determineBounds(bounds) {\n let leftMost = Infinity;\n let bottomMost = -Infinity;\n let rightMost = -Infinity;\n let topMost = Infinity;\n\n for (const [left, bottom, right, top] of bounds) {\n leftMost = Math.min(leftMost, left);\n bottomMost = Math.max(bottomMost, bottom);\n rightMost = Math.max(rightMost, right);\n topMost = Math.min(topMost, top);\n }\n\n return [leftMost, bottomMost, rightMost, topMost];\n}\n\n/**\n * Recursively traverses the XML tree and adds coords\n * which are the bounding box of all child coords\n * @param {Element} xmlEl\n */\nfunction recursivelyAddCoords(xmlEl) {\n if ($(xmlEl).attr('coords') || !xmlEl.children) {\n return;\n }\n\n const children = $(xmlEl).children().toArray();\n if (children.length === 0) {\n return;\n }\n\n for (const child of children) {\n recursivelyAddCoords(child);\n }\n\n const childCoords = [];\n\n for (const child of children) {\n if (!$(child).attr('coords')) continue;\n childCoords.push($(child).attr('coords').split(',').map(parseFloat));\n }\n\n const boundingCoords = determineBounds(childCoords);\n if (Math.abs(boundingCoords[0]) != Infinity) {\n $(xmlEl).attr('coords', boundingCoords.join(','));\n }\n}\n\n/**\n * Basically a polyfill for the native DOMRect class\n */\nclass Rect {\n /**\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n */\n constructor(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n\n get right() { return this.x + this.width; }\n get bottom() { return this.y + this.height; }\n get top() { return this.y; }\n get left() { return this.x; }\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":["SelectionObserver","selector","handler","_this","_classCallCheck","_defineProperty","sel","window","getSelection","selecting","toString","target","$","anchorNode","closest","isCollapsed","this","key","value","document","addEventListener","_onSelectionChange","removeEventListener","applyVariables","template","vars","overrides","arguments","length","undefined","possibleFilters","APPLY_FILTERS","replace","$0","$1","_expression$split$map2","split","map","x","trim","varName","filterNames","slice","n","reduce","acc","cur","urlencode","encodeURIComponent","genMap","_marked2","_regeneratorRuntime","mark","lookAroundWindow","_marked3","zip","_callSuper","t","o","e","_getPrototypeOf","_typeof","TypeError","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","_superPropGet","r","p","_get","get","bind","hasOwnProperty","_superPropBase","Object","getOwnPropertyDescriptor","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","_slicedToArray","Array","isArray","_arrayWithHoles","l","Symbol","iterator","i","u","a","f","next","done","push","return","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_createForOfIteratorHelper","_n","F","s","_arrayLikeToArray","name","from","test","defineProperty","c","asyncIterator","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","h","y","GeneratorFunction","GeneratorFunctionPrototype","d","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","awrap","async","Promise","keys","reverse","pop","prev","charAt","stop","rval","handle","complete","finish","catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","_next","_throw","_defineProperties","_toPropertyKey","_createClass","toPrimitive","String","_toPrimitive","BookReader","DEFAULT_OPTIONS","enabled","fullDjvuXmlUrl","singlePageDjvuXmlUrl","jsonp","Cache","maxSize","entries","entry","shift","TextSelectionPlugin","options","optionVariables","pageProgression","textSelectingMode","concat","defaultMode","djvuPagesPromise","rtl","pageTextCache","maxWordRendered","selectionObserver","attach","ajax","url","dataType","cache","error","res","xmlMap","parseXML","find","_getPageText","_callee","index","cachedEntry","xmlDoc","result","XMLpagesArr","_context","response","pageIndex","add","t0","_x","$container","event","selection","clipboardData","setData","preventDefault","textLayer","_this2","$pageContainer","style","pointerEvents","css","off","startedMouseDown","mouseIsDown","skipNextMouseup","on","is","stopPropagation","_this3","_this4","$textLayer","each","interceptCopy","_createTextLayer","_callee2","pageContainer","XMLpage","totalWords","ratioW","ratioH","ocrParagraphs","paragEls","paragraphRects","yAdded","_iterator","_step","_step$value","ocrParagraph","paragEl","ocrParagBounds","realRect","_ocrParagBounds","ocrLeft","ocrRight","ocrTop","newStartMargin","newTop","_this5","_context2","page","getPageText","recursivelyAddCoords","console","log","createDIVPageLayer","parseFloat","width","height","transform","setAttribute","toArray","el","renderParagraph","appendChild","determineRealRects","attr","right","left","top","marginTop","err","append","stopPageFlip","_x2","createElement","classList","_$$attr$split$map2","paragLeft","paragBottom","paragRight","paragTop","wordHeightArr","lines","_step2","_iterator2","augmentLine","_step2$value","prevLine","line","nextLine","isLastLineOfParagraph","ocrElement","lineEl","_step5","_iterator5","words","_step5$value","wordIndex","currWord","_$$attr$split$map4","bottom","wordHeight","lastWord","textContent","endsWith","newLeft","firstWord","wordEl","space","createTextNode","hasHyphen","lastWordEl","children","sort","b","paragWordHeight","Math","floor","fontSize","_step3","wordRects","_iterator3","querySelectorAll","_step3$value","ocrWord","_$$attr$split$map8","ocrWidth","diff","letterSpacing","_step4","spaceRects","ocrLines","lineEls","ySoFar","_iterator4","_step6","_step4$value","ocrLine","xSoFar","_iterator6","_step6$value","wordRect","_$$attr$split$map10","previousElementSibling","min","_arrayWithoutHoles","w","_iterableToArray","_nonIterableSpread","lineHeight","BookreaderWithTextSelection","_BookReader","_inherits","_this6","assign","plugins","textSelection","textSelectionPlugin","init","selectEvent","_this6$archiveAnalyti","archiveAnalyticsSendEvent","refs","$br","removeClass","addClass","_this$textSelectionPl","mode","constModeThumb","createTextLayer","parentEl","initals","position","visibility","body","rects","Map","origRect","getBoundingClientRect","Rect","scrollX","scrollY","removeChild","gen","fn","_iterator7","_step7","_context3","_marked","_iterator8","_step8","_context4","gen1","gen2","it1","it2","r1","r2","_context5","xmlEl","_step10","_iterator10","_step11","childCoords","_iterator11","child","boundingCoords","bounds","_step9","leftMost","Infinity","bottomMost","rightMost","topMost","_iterator9","_step9$value","max","determineBounds","abs","join","PROPER_FUNCTION_NAME","fails","whitespaces","module","exports","METHOD_NAME","$trim","proto","forced","forcedStringTrimMethod"],"sourceRoot":""}
|