@internetarchive/bookreader 5.0.0-24 → 5.0.0-24-sortingstate

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/.nvmrc +1 -0
  2. package/BookReader/BookReader.js +32148 -2
  3. package/BookReader/BookReader.js.map +1 -1
  4. package/BookReader/bookreader-component-bundle.js +10916 -941
  5. package/BookReader/bookreader-component-bundle.js.map +1 -1
  6. package/BookReader/icons/1up.svg +12 -1
  7. package/BookReader/icons/2up.svg +15 -1
  8. package/BookReader/icons/advance.svg +26 -3
  9. package/BookReader/icons/chevron-right.svg +1 -1
  10. package/BookReader/icons/close-circle-dark.svg +1 -1
  11. package/BookReader/icons/close-circle.svg +1 -1
  12. package/BookReader/icons/fullscreen.svg +17 -1
  13. package/BookReader/icons/fullscreen_exit.svg +17 -1
  14. package/BookReader/icons/hamburger.svg +15 -1
  15. package/BookReader/icons/left-arrow.svg +12 -1
  16. package/BookReader/icons/magnify-minus.svg +16 -1
  17. package/BookReader/icons/magnify-plus.svg +17 -1
  18. package/BookReader/icons/magnify.svg +15 -1
  19. package/BookReader/icons/pause.svg +23 -1
  20. package/BookReader/icons/play.svg +22 -1
  21. package/BookReader/icons/playback-speed.svg +34 -1
  22. package/BookReader/icons/read-aloud.svg +22 -1
  23. package/BookReader/icons/review.svg +22 -3
  24. package/BookReader/icons/thumbnails.svg +17 -1
  25. package/BookReader/icons/voice.svg +1 -1
  26. package/BookReader/icons/volume-full.svg +22 -1
  27. package/BookReader/images/BRicons.svg +94 -5
  28. package/BookReader/images/books_graphic.svg +177 -1
  29. package/BookReader/images/icon_book.svg +12 -1
  30. package/BookReader/images/icon_bookmark.svg +12 -1
  31. package/BookReader/images/icon_gear.svg +14 -1
  32. package/BookReader/images/icon_hamburger.svg +20 -1
  33. package/BookReader/images/icon_home.svg +21 -1
  34. package/BookReader/images/icon_info.svg +11 -1
  35. package/BookReader/images/icon_one_page.svg +8 -1
  36. package/BookReader/images/icon_pause.svg +1 -1
  37. package/BookReader/images/icon_play.svg +1 -1
  38. package/BookReader/images/icon_playback-rate.svg +15 -1
  39. package/BookReader/images/icon_search_button.svg +8 -1
  40. package/BookReader/images/icon_share.svg +9 -1
  41. package/BookReader/images/icon_skip-ahead.svg +6 -1
  42. package/BookReader/images/icon_skip-back.svg +13 -2
  43. package/BookReader/images/icon_speaker.svg +18 -1
  44. package/BookReader/images/icon_speaker_open.svg +10 -1
  45. package/BookReader/images/icon_thumbnails.svg +12 -1
  46. package/BookReader/images/icon_toc.svg +5 -1
  47. package/BookReader/images/icon_two_pages.svg +9 -1
  48. package/BookReader/images/marker_chap-off.svg +11 -1
  49. package/BookReader/images/marker_chap-on.svg +11 -1
  50. package/BookReader/images/marker_srch-on.svg +11 -1
  51. package/BookReader/jquery-1.10.1.js +108 -2
  52. package/BookReader/plugins/plugin.archive_analytics.js +170 -1
  53. package/BookReader/plugins/plugin.archive_analytics.js.map +1 -1
  54. package/BookReader/plugins/plugin.autoplay.js +163 -1
  55. package/BookReader/plugins/plugin.autoplay.js.map +1 -1
  56. package/BookReader/plugins/plugin.chapters.js +333 -1
  57. package/BookReader/plugins/plugin.chapters.js.map +1 -1
  58. package/BookReader/plugins/plugin.iframe.js +72 -1
  59. package/BookReader/plugins/plugin.iframe.js.map +1 -1
  60. package/BookReader/plugins/plugin.mobile_nav.js +332 -1
  61. package/BookReader/plugins/plugin.mobile_nav.js.map +1 -1
  62. package/BookReader/plugins/plugin.resume.js +241 -1
  63. package/BookReader/plugins/plugin.resume.js.map +1 -1
  64. package/BookReader/plugins/plugin.search.js +1263 -1
  65. package/BookReader/plugins/plugin.search.js.map +1 -1
  66. package/BookReader/plugins/plugin.text_selection.js +839 -1
  67. package/BookReader/plugins/plugin.text_selection.js.map +1 -1
  68. package/BookReader/plugins/plugin.tts.js +9114 -2
  69. package/BookReader/plugins/plugin.tts.js.map +1 -1
  70. package/BookReader/plugins/plugin.url.js +750 -1
  71. package/BookReader/plugins/plugin.url.js.map +1 -1
  72. package/BookReader/plugins/plugin.vendor-fullscreen.js +326 -1
  73. package/BookReader/plugins/plugin.vendor-fullscreen.js.map +1 -1
  74. package/BookReader/webcomponents-bundle.js +411 -2
  75. package/BookReader/webcomponents-bundle.js.map +1 -1
  76. package/package.json +1 -1
  77. package/src/BookNavigator/volumes/volumes-provider.js +39 -9
  78. package/src/BookReader.js +4 -0
  79. package/src/plugins/plugin.url.js +209 -2
  80. package/tests/jest/plugins/plugin.url.test.js +160 -1
  81. package/tests/karma/BookNavigator/volumes/volumes-provider.test.js +6 -6
@@ -1,2 +1,840 @@
1
- (self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[423],{7967:function(t,e,n){"use strict";n(5666),n(6992),n(1539),n(3948),n(9826),n(9714),n(2222),n(1249),n(4916),n(3123),n(2707),n(9601),n(8674),n(2526),n(1817),n(2165),n(8783),n(7042),n(8309),n(1038),n(489),n(2419),n(4819),n(5003);var r=n(9860),o=n(7775);function i(t){return function(t){if(Array.isArray(t))return t}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return a(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function u(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:s;return null==t?void 0:t.replace(/\{\{([^}]*?)\}\}/g,(function(t,o){if(!o)return t;var a=i(o.split("|").map((function(t){return t.trim()}))),u=a[0],s=a.slice(1);if(!(u in n)&&!(u in e))return t;var l=u in n?n[u]:u in e?e[u]:null;return s.map((function(t){return r[t]})).reduce((function(t,e){return e(t)}),l&&l.toString())}))}n(5306),n(3210),n(5827);var s={urlencode:encodeURIComponent},l=n(3609);function c(t){return(c="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})(t)}function f(t,e,n){return(f="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,n){var r=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=g(t)););return t}(t,e);if(r){var o=Object.getOwnPropertyDescriptor(r,e);return o.get?o.get.call(n):o.value}})(t,e,n||t)}function p(t,e){return(p=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(t,e){if(e&&("object"===c(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)}function g(t){return(g=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function d(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,o,i=[],a=!0,u=!1;try{for(n=n.call(t);!(a=(r=n.next()).done)&&(i.push(r.value),!e||i.length!==e);a=!0);}catch(t){u=!0,o=t}finally{try{a||null==n.return||n.return()}finally{if(u)throw o}}return i}}(t,e)||function(t,e){if(t){if("string"==typeof t)return v(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?v(t,e):void 0}}(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 v(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function y(t,e,n,r,o,i,a){try{var u=t[i](a),s=u.value}catch(t){return void n(t)}u.done?e(s):Promise.resolve(s).then(r,o)}function m(t){return function(){var e=this,n=arguments;return new Promise((function(r,o){var i=t.apply(e,n);function a(t){y(i,r,o,a,u,"next",t)}function u(t){y(i,r,o,a,u,"throw",t)}a(void 0)}))}}function b(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function w(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function x(t,e,n){return e&&w(t.prototype,e),n&&w(t,n),t}var S=window.BookReader,P={enabled:!0,fullDjvuXmlUrl:null,singlePageDjvuXmlUrl:null},A=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;b(this,t),this.maxSize=e,this.entries=[]}return x(t,[{key:"add",value:function(t){this.entries.length>=this.maxSize&&this.entries.shift(),this.entries.push(t)}}]),t}(),j=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:P,n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:(0,o.vU)(),i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:(0,o.G6)();b(this,t),this.options=e,this.optionVariables=n,this.djvuPagesPromise=null,this.svgParagraphElement="text",this.svgWordElement="tspan",this.insertNewlines=r,this.pointerEventsOnParagraph=i,r&&(this.svgParagraphElement="g",this.svgWordElement="text"),this.pageTextCache=new A,this.maxWordRendered=2500}var e,n;return x(t,[{key:"init",value:function(){this.options.singlePageDjvuXmlUrl||(this.djvuPagesPromise=l.ajax({type:"GET",url:u(this.options.fullDjvuXmlUrl,this.optionVariables),dataType:"html",error:function(t){}}).then((function(t){try{var e=l.parseXML(t);return e&&l(e).find("OBJECT")}catch(t){return}})))}},{key:"getPageText",value:(n=m(regeneratorRuntime.mark((function t(e){var n,r,o=this;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this.options.singlePageDjvuXmlUrl){t.next=7;break}if(!(n=this.pageTextCache.entries.find((function(t){return t.index==e})))){t.next=4;break}return t.abrupt("return",n.response);case 4:return t.abrupt("return",l.ajax({type:"GET",url:u(this.options.singlePageDjvuXmlUrl,this.optionVariables,{pageIndex:e}),dataType:"html",error:function(t){}}).then((function(t){try{var n=l.parseXML(t),r=n&&l(n).find("OBJECT")[0];return o.pageTextCache.add({index:e,response:r}),r}catch(t){return}})));case 7:return t.next=9,this.djvuPagesPromise;case 9:if(!(r=t.sent)){t.next=12;break}return t.abrupt("return",r[e]);case 12:case"end":return t.stop()}}),t,this)}))),function(t){return n.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;t.classList.remove("selectingSVG"),l(t).on("mousedown.textSelectPluginHandler",(function(n){l(n.target).is(".BRwordElement")&&(n.stopPropagation(),t.classList.add("selectingSVG"),l(t).one("mouseup.textSelectPluginHandler",(function(n){""!=window.getSelection().toString()?(n.stopPropagation(),l(t).off(".textSelectPluginHandler"),e.textSelectingMode(t)):t.classList.remove("selectingSVG")})))}))}},{key:"textSelectingMode",value:function(t){var e=this;l(t).on("mousedown.textSelectPluginHandler",(function(t){l(t.target).is(".BRwordElement")||""!=window.getSelection().toString()&&window.getSelection().removeAllRanges(),t.stopPropagation()})),l(t).on("mouseup.textSelectPluginHandler",(function(n){n.stopPropagation(),""==window.getSelection().toString()&&(l(t).off(".textSelectPluginHandler"),e.defaultMode(t))}))}},{key:"stopPageFlip",value:function(t){var e=this,n=t.find("svg.textSelectionSVG");n.length&&(n.each((function(t,n){return e.defaultMode(n)})),this.interceptCopy(t))}},{key:"createTextLayer",value:(e=m(regeneratorRuntime.mark((function t(e){var n,o,i,a,u,s=this;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.page.index,!(o=e.$container).find(".textSelectionSVG").length){t.next=5;break}return t.abrupt("return");case 5:return t.next=7,this.getPageText(n);case 7:if(i=t.sent){t.next=10;break}return t.abrupt("return");case 10:if(!((a=l(i).find("WORD").length)>this.maxWordRendered)){t.next=14;break}return console.log("Page ".concat(n," has too many words (").concat(a," > ").concat(this.maxWordRendered,"). Not rendering text layer.")),t.abrupt("return");case 14:u=(0,r.hy)(e.page,"textSelectionSVG"),o.append(u),l(i).find("PARAGRAPH").each((function(t,e){var n=l(e).find("WORD");if(n.length){var r=document.createElementNS("http://www.w3.org/2000/svg",s.svgParagraphElement);r.setAttribute("class","BRparagElement"),s.pointerEventsOnParagraph&&(r.style.pointerEvents="all");for(var o=[],i=0;i<n.length;i++){var a=n[i],c=d(l(a).attr("coords").split(",").map(parseFloat),4),f=c[0],p=c[1],h=c[2],g=p-c[3];o.push(g);var v=document.createElementNS("http://www.w3.org/2000/svg",s.svgWordElement);if(v.setAttribute("class","BRwordElement"),v.setAttribute("x",f.toString()),v.setAttribute("y",p.toString()),v.setAttribute("textLength",(h-f).toString()),v.setAttribute("lengthAdjust","spacingAndGlyphs"),v.textContent=a.textContent,r.appendChild(v),i<n.length-1){var y=n[i+1],m=d(l(y).attr("coords").split(",").map(parseFloat),4),b=m[0],w=(m[1],m[2],m[3],document.createElementNS("http://www.w3.org/2000/svg",s.svgWordElement));w.setAttribute("class","BRwordElement"),w.setAttribute("x",h.toString()),w.setAttribute("y",p.toString()),b-h>0&&w.setAttribute("textLength",(b-h).toString()),w.setAttribute("lengthAdjust","spacingAndGlyphs"),w.textContent=" ",r.appendChild(w)}i==n.length-1&&s.insertNewlines&&r.appendChild(document.createTextNode("\n"))}o.sort();var x=o[Math.floor(.85*o.length)];r.setAttribute("font-size",x.toString()),u.appendChild(r)}})),this.stopPageFlip(o);case 18:case"end":return t.stop()}}),t,this)}))),function(t){return e.apply(this,arguments)})}]),t}(),E=function(t){!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}}),e&&p(t,e)}(o,t);var e,n,r=(e=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}(),function(){var t,r=g(e);if(n){var o=g(this).constructor;t=Reflect.construct(r,arguments,o)}else t=r.apply(this,arguments);return h(this,t)});function o(){return b(this,o),r.apply(this,arguments)}return x(o,[{key:"init",value:function(){var t=Object.assign({},P,this.options.plugins.textSelection);t.enabled&&(this.textSelectionPlugin=new j(t,this.options.vars),this.options.plugins.textSelection=t,this.textSelectionPlugin.init()),f(g(o.prototype),"init",this).call(this)}},{key:"_createPageContainer",value:function(t){var e,n=f(g(o.prototype),"_createPageContainer",this).call(this,t);return this.mode!==this.constModeThumb&&n.page&&(null===(e=this.textSelectionPlugin)||void 0===e||e.createTextLayer(n)),n}}]),o}(S);window.BookReader=E},7775:function(t,e,n){"use strict";function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:navigator.userAgent,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:navigator.vendor;return/chrome/i.test(t)&&/google inc/i.test(e)}function o(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:navigator.userAgent;return/firefox/i.test(t)}function i(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:navigator.userAgent;return/safari/i.test(t)&&!/chrome|chromium/i.test(t)}n.d(e,{i7:function(){return r},vU:function(){return o},G6:function(){return i}})},6091:function(t,e,n){var r=n(7293),o=n(1361);t.exports=function(t){return r((function(){return!!o[t]()||"​…᠎"!="​…᠎"[t]()||o[t].name!==t}))}},3210:function(t,e,n){"use strict";var r=n(2109),o=n(3111).trim;r({target:"String",proto:!0,forced:n(6091)("trim")},{trim:function(){return o(this)}})}},function(t){t(t.s=7967)}]);
1
+ (self["webpackChunk_internetarchive_bookreader"] = self["webpackChunk_internetarchive_bookreader"] || []).push([["plugins/plugin.text_selection.js"],{
2
+
3
+ /***/ "./src/plugins/plugin.text_selection.js":
4
+ /*!**********************************************!*\
5
+ !*** ./src/plugins/plugin.text_selection.js ***!
6
+ \**********************************************/
7
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8
+
9
+ "use strict";
10
+ __webpack_require__.r(__webpack_exports__);
11
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
12
+ /* harmony export */ "DEFAULT_OPTIONS": function() { return /* binding */ DEFAULT_OPTIONS; },
13
+ /* harmony export */ "Cache": function() { return /* binding */ Cache; },
14
+ /* harmony export */ "TextSelectionPlugin": function() { return /* binding */ TextSelectionPlugin; },
15
+ /* harmony export */ "BookreaderWithTextSelection": function() { return /* binding */ BookreaderWithTextSelection; }
16
+ /* harmony export */ });
17
+ /* harmony import */ var regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! regenerator-runtime/runtime.js */ "./node_modules/regenerator-runtime/runtime.js");
18
+ /* harmony import */ var regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_0__);
19
+ /* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js");
20
+ /* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_1__);
21
+ /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
22
+ /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2__);
23
+ /* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ "./node_modules/core-js/modules/web.dom-collections.iterator.js");
24
+ /* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_3__);
25
+ /* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js");
26
+ /* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_4__);
27
+ /* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ "./node_modules/core-js/modules/es.regexp.to-string.js");
28
+ /* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_5__);
29
+ /* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.array.concat.js */ "./node_modules/core-js/modules/es.array.concat.js");
30
+ /* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_6__);
31
+ /* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.array.map.js */ "./node_modules/core-js/modules/es.array.map.js");
32
+ /* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_7__);
33
+ /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
34
+ /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_8__);
35
+ /* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! core-js/modules/es.string.split.js */ "./node_modules/core-js/modules/es.string.split.js");
36
+ /* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_9__);
37
+ /* harmony import */ var core_js_modules_es_array_sort_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! core-js/modules/es.array.sort.js */ "./node_modules/core-js/modules/es.array.sort.js");
38
+ /* harmony import */ var core_js_modules_es_array_sort_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_sort_js__WEBPACK_IMPORTED_MODULE_10__);
39
+ /* harmony import */ var core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! core-js/modules/es.object.assign.js */ "./node_modules/core-js/modules/es.object.assign.js");
40
+ /* harmony import */ var core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_11__);
41
+ /* harmony import */ var core_js_modules_es_promise_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! core-js/modules/es.promise.js */ "./node_modules/core-js/modules/es.promise.js");
42
+ /* harmony import */ var core_js_modules_es_promise_js__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_promise_js__WEBPACK_IMPORTED_MODULE_12__);
43
+ /* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! core-js/modules/es.symbol.js */ "./node_modules/core-js/modules/es.symbol.js");
44
+ /* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_13__);
45
+ /* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! core-js/modules/es.symbol.description.js */ "./node_modules/core-js/modules/es.symbol.description.js");
46
+ /* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_14__);
47
+ /* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! core-js/modules/es.symbol.iterator.js */ "./node_modules/core-js/modules/es.symbol.iterator.js");
48
+ /* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_15__);
49
+ /* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! core-js/modules/es.string.iterator.js */ "./node_modules/core-js/modules/es.string.iterator.js");
50
+ /* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_16__);
51
+ /* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
52
+ /* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_17__);
53
+ /* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ "./node_modules/core-js/modules/es.function.name.js");
54
+ /* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_18__);
55
+ /* harmony import */ var core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! core-js/modules/es.array.from.js */ "./node_modules/core-js/modules/es.array.from.js");
56
+ /* harmony import */ var core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_19__);
57
+ /* harmony import */ var core_js_modules_es_object_get_prototype_of_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! core-js/modules/es.object.get-prototype-of.js */ "./node_modules/core-js/modules/es.object.get-prototype-of.js");
58
+ /* harmony import */ var core_js_modules_es_object_get_prototype_of_js__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_get_prototype_of_js__WEBPACK_IMPORTED_MODULE_20__);
59
+ /* harmony import */ var core_js_modules_es_reflect_construct_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! core-js/modules/es.reflect.construct.js */ "./node_modules/core-js/modules/es.reflect.construct.js");
60
+ /* harmony import */ var core_js_modules_es_reflect_construct_js__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_reflect_construct_js__WEBPACK_IMPORTED_MODULE_21__);
61
+ /* harmony import */ var core_js_modules_es_reflect_get_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! core-js/modules/es.reflect.get.js */ "./node_modules/core-js/modules/es.reflect.get.js");
62
+ /* harmony import */ var core_js_modules_es_reflect_get_js__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_reflect_get_js__WEBPACK_IMPORTED_MODULE_22__);
63
+ /* harmony import */ var core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! core-js/modules/es.object.get-own-property-descriptor.js */ "./node_modules/core-js/modules/es.object.get-own-property-descriptor.js");
64
+ /* harmony import */ var core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_23__);
65
+ /* harmony import */ var _BookReader_PageContainer_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../BookReader/PageContainer.js */ "./src/BookReader/PageContainer.js");
66
+ /* harmony import */ var _util_browserSniffing_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../util/browserSniffing.js */ "./src/util/browserSniffing.js");
67
+ /* harmony import */ var _util_strings_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../util/strings.js */ "./src/util/strings.js");
68
+ /* provided dependency */ var $ = __webpack_require__(/*! jquery */ "jquery");
69
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
70
+
71
+ function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
72
+
73
+ function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
74
+
75
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
76
+
77
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
78
+
79
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
80
+
81
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
82
+
83
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
84
+
85
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
86
+
87
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
88
+
89
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
90
+
91
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
92
+
93
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
94
+
95
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
96
+
97
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
98
+
99
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
100
+
101
+
102
+
103
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
104
+
105
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
106
+
107
+
108
+
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
+
118
+
119
+
120
+
121
+
122
+
123
+
124
+
125
+
126
+
127
+
128
+
129
+
130
+
131
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
132
+
133
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
134
+
135
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
136
+
137
+ //@ts-check
138
+
139
+
140
+
141
+ /** @typedef {import('../util/strings.js').StringWithVars} StringWithVars */
142
+
143
+ /** @typedef {import('../BookReader/PageContainer.js').PageContainer} PageContainer */
144
+
145
+ var BookReader = window.BookReader;
146
+ var DEFAULT_OPTIONS = {
147
+ enabled: true,
148
+
149
+ /** @type {StringWithVars} The URL to fetch the entire DJVU xml. Supports options.vars */
150
+ fullDjvuXmlUrl: null,
151
+
152
+ /** @type {StringWithVars} The URL to fetch a single page of the DJVU xml. Supports options.vars. Also has {{pageIndex}} */
153
+ singlePageDjvuXmlUrl: null
154
+ };
155
+ /** @typedef {typeof DEFAULT_OPTIONS} TextSelectionPluginOptions */
156
+
157
+ /**
158
+ * @template T
159
+ */
160
+
161
+ var Cache = /*#__PURE__*/function () {
162
+ function Cache() {
163
+ var maxSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;
164
+
165
+ _classCallCheck(this, Cache);
166
+
167
+ this.maxSize = maxSize;
168
+ /** @type {T[]} */
169
+
170
+ this.entries = [];
171
+ }
172
+ /**
173
+ * @param {T} entry
174
+ */
175
+
176
+
177
+ _createClass(Cache, [{
178
+ key: "add",
179
+ value: function add(entry) {
180
+ if (this.entries.length >= this.maxSize) {
181
+ this.entries.shift();
182
+ }
183
+
184
+ this.entries.push(entry);
185
+ }
186
+ }]);
187
+
188
+ return Cache;
189
+ }();
190
+ var TextSelectionPlugin = /*#__PURE__*/function () {
191
+ function TextSelectionPlugin() {
192
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_OPTIONS;
193
+ var optionVariables = arguments.length > 1 ? arguments[1] : undefined;
194
+ var avoidTspans = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : (0,_util_browserSniffing_js__WEBPACK_IMPORTED_MODULE_25__.isFirefox)();
195
+ var pointerEventsOnParagraph = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : (0,_util_browserSniffing_js__WEBPACK_IMPORTED_MODULE_25__.isSafari)();
196
+
197
+ _classCallCheck(this, TextSelectionPlugin);
198
+
199
+ this.options = options;
200
+ this.optionVariables = optionVariables;
201
+ /**@type {PromiseLike<JQuery<HTMLElement>|undefined>} */
202
+
203
+ this.djvuPagesPromise = null; // Using text elements instead of tspans for words because Firefox does not allow svg tspan stretch.
204
+ // Tspans are necessary on Chrome because they prevent newline character after every word when copying
205
+
206
+ this.svgParagraphElement = "text";
207
+ this.svgWordElement = "tspan";
208
+ this.insertNewlines = avoidTspans; // Safari has a bug where `pointer-events` doesn't work on `<tspans>`. So
209
+ // there we will set `pointer-events: all` on the paragraph element. We don't
210
+ // do this everywhere, because it's a worse experience. Thanks Safari :/
211
+
212
+ this.pointerEventsOnParagraph = pointerEventsOnParagraph;
213
+
214
+ if (avoidTspans) {
215
+ this.svgParagraphElement = "g";
216
+ this.svgWordElement = "text";
217
+ }
218
+ /** @type {Cache<{index: number, response: any}>} */
219
+
220
+
221
+ this.pageTextCache = new Cache();
222
+ /**
223
+ * Sometimes there are too many words on a page, and the browser becomes near
224
+ * unusable. For now don't render text layer for pages with too many words.
225
+ */
226
+
227
+ this.maxWordRendered = 2500;
228
+ }
229
+
230
+ _createClass(TextSelectionPlugin, [{
231
+ key: "init",
232
+ value: function init() {
233
+ // Only fetch the full djvu xml if the single page url isn't there
234
+ if (this.options.singlePageDjvuXmlUrl) return;
235
+ this.djvuPagesPromise = $.ajax({
236
+ type: "GET",
237
+ url: (0,_util_strings_js__WEBPACK_IMPORTED_MODULE_26__.applyVariables)(this.options.fullDjvuXmlUrl, this.optionVariables),
238
+ dataType: "html",
239
+ error: function error(e) {
240
+ return undefined;
241
+ }
242
+ }).then(function (res) {
243
+ try {
244
+ var xmlMap = $.parseXML(res);
245
+ return xmlMap && $(xmlMap).find("OBJECT");
246
+ } catch (e) {
247
+ return undefined;
248
+ }
249
+ });
250
+ }
251
+ /**
252
+ * @param {number} index
253
+ * @returns {Promise<HTMLElement|undefined>}
254
+ */
255
+
256
+ }, {
257
+ key: "getPageText",
258
+ value: function () {
259
+ var _getPageText = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(index) {
260
+ var _this = this;
261
+
262
+ var cachedEntry, XMLpagesArr;
263
+ return regeneratorRuntime.wrap(function _callee$(_context) {
264
+ while (1) {
265
+ switch (_context.prev = _context.next) {
266
+ case 0:
267
+ if (!this.options.singlePageDjvuXmlUrl) {
268
+ _context.next = 7;
269
+ break;
270
+ }
271
+
272
+ cachedEntry = this.pageTextCache.entries.find(function (x) {
273
+ return x.index == index;
274
+ });
275
+
276
+ if (!cachedEntry) {
277
+ _context.next = 4;
278
+ break;
279
+ }
280
+
281
+ return _context.abrupt("return", cachedEntry.response);
282
+
283
+ case 4:
284
+ return _context.abrupt("return", $.ajax({
285
+ type: "GET",
286
+ url: (0,_util_strings_js__WEBPACK_IMPORTED_MODULE_26__.applyVariables)(this.options.singlePageDjvuXmlUrl, this.optionVariables, {
287
+ pageIndex: index
288
+ }),
289
+ dataType: "html",
290
+ error: function error(e) {
291
+ return undefined;
292
+ }
293
+ }).then(function (res) {
294
+ try {
295
+ var xmlDoc = $.parseXML(res);
296
+ var result = xmlDoc && $(xmlDoc).find("OBJECT")[0];
297
+
298
+ _this.pageTextCache.add({
299
+ index: index,
300
+ response: result
301
+ });
302
+
303
+ return result;
304
+ } catch (e) {
305
+ return undefined;
306
+ }
307
+ }));
308
+
309
+ case 7:
310
+ _context.next = 9;
311
+ return this.djvuPagesPromise;
312
+
313
+ case 9:
314
+ XMLpagesArr = _context.sent;
315
+
316
+ if (!XMLpagesArr) {
317
+ _context.next = 12;
318
+ break;
319
+ }
320
+
321
+ return _context.abrupt("return", XMLpagesArr[index]);
322
+
323
+ case 12:
324
+ case "end":
325
+ return _context.stop();
326
+ }
327
+ }
328
+ }, _callee, this);
329
+ }));
330
+
331
+ function getPageText(_x) {
332
+ return _getPageText.apply(this, arguments);
333
+ }
334
+
335
+ return getPageText;
336
+ }()
337
+ /**
338
+ * Intercept copied text to remove any styling applied to it
339
+ * @param {JQuery} $container
340
+ */
341
+
342
+ }, {
343
+ key: "interceptCopy",
344
+ value: function interceptCopy($container) {
345
+ $container[0].addEventListener('copy', function (event) {
346
+ var selection = document.getSelection();
347
+ event.clipboardData.setData('text/plain', selection.toString());
348
+ event.preventDefault();
349
+ });
350
+ }
351
+ /**
352
+ * Applies mouse events when in default mode
353
+ * @param {SVGElement} svg
354
+ */
355
+
356
+ }, {
357
+ key: "defaultMode",
358
+ value: function defaultMode(svg) {
359
+ var _this2 = this;
360
+
361
+ svg.classList.remove("selectingSVG");
362
+ $(svg).on("mousedown.textSelectPluginHandler", function (event) {
363
+ if (!$(event.target).is(".BRwordElement")) return;
364
+ event.stopPropagation();
365
+ svg.classList.add("selectingSVG");
366
+ $(svg).one("mouseup.textSelectPluginHandler", function (event) {
367
+ if (window.getSelection().toString() != "") {
368
+ event.stopPropagation();
369
+ $(svg).off(".textSelectPluginHandler");
370
+
371
+ _this2.textSelectingMode(svg);
372
+ } else svg.classList.remove("selectingSVG");
373
+ });
374
+ });
375
+ }
376
+ /**
377
+ * Applies mouse events when in textSelecting mode
378
+ * @param {SVGElement} svg
379
+ */
380
+
381
+ }, {
382
+ key: "textSelectingMode",
383
+ value: function textSelectingMode(svg) {
384
+ var _this3 = this;
385
+
386
+ $(svg).on('mousedown.textSelectPluginHandler', function (event) {
387
+ if (!$(event.target).is(".BRwordElement")) {
388
+ if (window.getSelection().toString() != "") window.getSelection().removeAllRanges();
389
+ }
390
+
391
+ event.stopPropagation();
392
+ });
393
+ $(svg).on('mouseup.textSelectPluginHandler', function (event) {
394
+ event.stopPropagation();
395
+
396
+ if (window.getSelection().toString() == "") {
397
+ $(svg).off(".textSelectPluginHandler");
398
+
399
+ _this3.defaultMode(svg);
400
+ }
401
+ });
402
+ }
403
+ /**
404
+ * Initializes text selection modes if there is an svg on the page
405
+ * @param {JQuery} $container
406
+ */
407
+
408
+ }, {
409
+ key: "stopPageFlip",
410
+ value: function stopPageFlip($container) {
411
+ var _this4 = this;
412
+
413
+ /** @type {JQuery<SVGElement>} */
414
+ var $svg = $container.find('svg.textSelectionSVG');
415
+ if (!$svg.length) return;
416
+ $svg.each(function (i, s) {
417
+ return _this4.defaultMode(s);
418
+ });
419
+ this.interceptCopy($container);
420
+ }
421
+ /**
422
+ * @param {PageContainer} pageContainer
423
+ */
424
+
425
+ }, {
426
+ key: "createTextLayer",
427
+ value: function () {
428
+ var _createTextLayer = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(pageContainer) {
429
+ var _this5 = this;
430
+
431
+ var pageIndex, $container, $svgLayers, XMLpage, totalWords, svg;
432
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
433
+ while (1) {
434
+ switch (_context2.prev = _context2.next) {
435
+ case 0:
436
+ pageIndex = pageContainer.page.index;
437
+ $container = pageContainer.$container;
438
+ $svgLayers = $container.find('.textSelectionSVG');
439
+
440
+ if (!$svgLayers.length) {
441
+ _context2.next = 5;
442
+ break;
443
+ }
444
+
445
+ return _context2.abrupt("return");
446
+
447
+ case 5:
448
+ _context2.next = 7;
449
+ return this.getPageText(pageIndex);
450
+
451
+ case 7:
452
+ XMLpage = _context2.sent;
453
+
454
+ if (XMLpage) {
455
+ _context2.next = 10;
456
+ break;
457
+ }
458
+
459
+ return _context2.abrupt("return");
460
+
461
+ case 10:
462
+ totalWords = $(XMLpage).find("WORD").length;
463
+
464
+ if (!(totalWords > this.maxWordRendered)) {
465
+ _context2.next = 14;
466
+ break;
467
+ }
468
+
469
+ console.log("Page ".concat(pageIndex, " has too many words (").concat(totalWords, " > ").concat(this.maxWordRendered, "). Not rendering text layer."));
470
+ return _context2.abrupt("return");
471
+
472
+ case 14:
473
+ svg = (0,_BookReader_PageContainer_js__WEBPACK_IMPORTED_MODULE_24__.createSVGPageLayer)(pageContainer.page, 'textSelectionSVG');
474
+ $container.append(svg);
475
+ $(XMLpage).find("PARAGRAPH").each(function (i, paragraph) {
476
+ // Adding text element for each paragraph in the page
477
+ var words = $(paragraph).find("WORD");
478
+ if (!words.length) return;
479
+ var paragSvg = document.createElementNS("http://www.w3.org/2000/svg", _this5.svgParagraphElement);
480
+ paragSvg.setAttribute("class", "BRparagElement");
481
+
482
+ if (_this5.pointerEventsOnParagraph) {
483
+ paragSvg.style.pointerEvents = "all";
484
+ }
485
+
486
+ var wordHeightArr = [];
487
+
488
+ for (var _i = 0; _i < words.length; _i++) {
489
+ // Adding tspan for each word in paragraph
490
+ var currWord = words[_i]; // eslint-disable-next-line no-unused-vars
491
+
492
+ var _$$attr$split$map = $(currWord).attr("coords").split(',').map(parseFloat),
493
+ _$$attr$split$map2 = _slicedToArray(_$$attr$split$map, 4),
494
+ left = _$$attr$split$map2[0],
495
+ bottom = _$$attr$split$map2[1],
496
+ right = _$$attr$split$map2[2],
497
+ top = _$$attr$split$map2[3];
498
+
499
+ var wordHeight = bottom - top;
500
+ wordHeightArr.push(wordHeight);
501
+ var wordTspan = document.createElementNS("http://www.w3.org/2000/svg", _this5.svgWordElement);
502
+ wordTspan.setAttribute("class", "BRwordElement");
503
+ wordTspan.setAttribute("x", left.toString());
504
+ wordTspan.setAttribute("y", bottom.toString());
505
+ wordTspan.setAttribute("textLength", (right - left).toString());
506
+ wordTspan.setAttribute("lengthAdjust", "spacingAndGlyphs");
507
+ wordTspan.textContent = currWord.textContent;
508
+ paragSvg.appendChild(wordTspan); // Adding spaces after words except at the end of the paragraph
509
+ // TODO: assumes left-to-right text
510
+
511
+ if (_i < words.length - 1) {
512
+ var nextWord = words[_i + 1]; // eslint-disable-next-line no-unused-vars
513
+
514
+ var _$$attr$split$map3 = $(nextWord).attr("coords").split(',').map(parseFloat),
515
+ _$$attr$split$map4 = _slicedToArray(_$$attr$split$map3, 4),
516
+ leftNext = _$$attr$split$map4[0],
517
+ bottomNext = _$$attr$split$map4[1],
518
+ rightNext = _$$attr$split$map4[2],
519
+ topNext = _$$attr$split$map4[3];
520
+
521
+ var spaceTspan = document.createElementNS("http://www.w3.org/2000/svg", _this5.svgWordElement);
522
+ spaceTspan.setAttribute("class", "BRwordElement");
523
+ spaceTspan.setAttribute("x", right.toString());
524
+ spaceTspan.setAttribute("y", bottom.toString());
525
+ if (leftNext - right > 0) spaceTspan.setAttribute("textLength", (leftNext - right).toString());
526
+ spaceTspan.setAttribute("lengthAdjust", "spacingAndGlyphs");
527
+ spaceTspan.textContent = " ";
528
+ paragSvg.appendChild(spaceTspan);
529
+ } // Adds newline at the end of paragraph on Firefox
530
+
531
+
532
+ if (_i == words.length - 1 && _this5.insertNewlines) {
533
+ paragSvg.appendChild(document.createTextNode("\n"));
534
+ }
535
+ }
536
+
537
+ wordHeightArr.sort();
538
+ var paragWordHeight = wordHeightArr[Math.floor(wordHeightArr.length * 0.85)];
539
+ paragSvg.setAttribute("font-size", paragWordHeight.toString());
540
+ svg.appendChild(paragSvg);
541
+ });
542
+ this.stopPageFlip($container);
543
+
544
+ case 18:
545
+ case "end":
546
+ return _context2.stop();
547
+ }
548
+ }
549
+ }, _callee2, this);
550
+ }));
551
+
552
+ function createTextLayer(_x2) {
553
+ return _createTextLayer.apply(this, arguments);
554
+ }
555
+
556
+ return createTextLayer;
557
+ }()
558
+ }]);
559
+
560
+ return TextSelectionPlugin;
561
+ }();
562
+ var BookreaderWithTextSelection = /*#__PURE__*/function (_BookReader) {
563
+ _inherits(BookreaderWithTextSelection, _BookReader);
564
+
565
+ var _super = _createSuper(BookreaderWithTextSelection);
566
+
567
+ function BookreaderWithTextSelection() {
568
+ _classCallCheck(this, BookreaderWithTextSelection);
569
+
570
+ return _super.apply(this, arguments);
571
+ }
572
+
573
+ _createClass(BookreaderWithTextSelection, [{
574
+ key: "init",
575
+ value: function init() {
576
+ var options = Object.assign({}, DEFAULT_OPTIONS, this.options.plugins.textSelection);
577
+
578
+ if (options.enabled) {
579
+ this.textSelectionPlugin = new TextSelectionPlugin(options, this.options.vars); // Write this back; this way the plugin is the source of truth, and BR just
580
+ // contains a reference to it.
581
+
582
+ this.options.plugins.textSelection = options;
583
+ this.textSelectionPlugin.init();
584
+ }
585
+
586
+ _get(_getPrototypeOf(BookreaderWithTextSelection.prototype), "init", this).call(this);
587
+ }
588
+ /**
589
+ * @param {number} index
590
+ */
591
+
592
+ }, {
593
+ key: "_createPageContainer",
594
+ value: function _createPageContainer(index) {
595
+ var pageContainer = _get(_getPrototypeOf(BookreaderWithTextSelection.prototype), "_createPageContainer", this).call(this, index); // Disable if thumb mode; it's too janky
596
+ // .page can be null for "pre-cover" region
597
+
598
+
599
+ if (this.mode !== this.constModeThumb && pageContainer.page) {
600
+ var _this$textSelectionPl;
601
+
602
+ (_this$textSelectionPl = this.textSelectionPlugin) === null || _this$textSelectionPl === void 0 ? void 0 : _this$textSelectionPl.createTextLayer(pageContainer);
603
+ }
604
+
605
+ return pageContainer;
606
+ }
607
+ }]);
608
+
609
+ return BookreaderWithTextSelection;
610
+ }(BookReader);
611
+ window.BookReader = BookreaderWithTextSelection;
612
+ /* harmony default export */ __webpack_exports__["default"] = (BookreaderWithTextSelection);
613
+
614
+ /***/ }),
615
+
616
+ /***/ "./src/util/browserSniffing.js":
617
+ /*!*************************************!*\
618
+ !*** ./src/util/browserSniffing.js ***!
619
+ \*************************************/
620
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
621
+
622
+ "use strict";
623
+ __webpack_require__.r(__webpack_exports__);
624
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
625
+ /* harmony export */ "isChrome": function() { return /* binding */ isChrome; },
626
+ /* harmony export */ "isFirefox": function() { return /* binding */ isFirefox; },
627
+ /* harmony export */ "isSafari": function() { return /* binding */ isSafari; }
628
+ /* harmony export */ });
629
+ /**
630
+ * Checks whether the current browser is a Chrome/Chromium browser
631
+ * Code from https://stackoverflow.com/a/4565120/2317712
632
+ * @param {string} [userAgent]
633
+ * @param {string} [vendor]
634
+ * @return {boolean}
635
+ */
636
+ function isChrome() {
637
+ var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : navigator.userAgent;
638
+ var vendor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : navigator.vendor;
639
+ return /chrome/i.test(userAgent) && /google inc/i.test(vendor);
640
+ }
641
+ /**
642
+ * Checks whether the current browser is firefox
643
+ * @param {string} [userAgent]
644
+ * @return {boolean}
645
+ */
646
+
647
+ function isFirefox() {
648
+ var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : navigator.userAgent;
649
+ return /firefox/i.test(userAgent);
650
+ }
651
+ /**
652
+ * Checks whether the current browser is safari
653
+ * https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent#Browser_Name
654
+ * @param {string} [userAgent]
655
+ * @return {boolean}
656
+ */
657
+
658
+ function isSafari() {
659
+ var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : navigator.userAgent;
660
+ return /safari/i.test(userAgent) && !/chrome|chromium/i.test(userAgent);
661
+ }
662
+
663
+ /***/ }),
664
+
665
+ /***/ "./src/util/strings.js":
666
+ /*!*****************************!*\
667
+ !*** ./src/util/strings.js ***!
668
+ \*****************************/
669
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
670
+
671
+ "use strict";
672
+ __webpack_require__.r(__webpack_exports__);
673
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
674
+ /* harmony export */ "applyVariables": function() { return /* binding */ applyVariables; },
675
+ /* harmony export */ "APPLY_FILTERS": function() { return /* binding */ APPLY_FILTERS; }
676
+ /* harmony export */ });
677
+ /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
678
+ /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__);
679
+ /* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js");
680
+ /* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__);
681
+ /* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.map.js */ "./node_modules/core-js/modules/es.array.map.js");
682
+ /* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_2__);
683
+ /* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.string.split.js */ "./node_modules/core-js/modules/es.string.split.js");
684
+ /* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_3__);
685
+ /* harmony import */ var core_js_modules_es_string_trim_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.string.trim.js */ "./node_modules/core-js/modules/es.string.trim.js");
686
+ /* harmony import */ var core_js_modules_es_string_trim_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_trim_js__WEBPACK_IMPORTED_MODULE_4__);
687
+ /* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
688
+ /* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_5__);
689
+ /* harmony import */ var core_js_modules_es_array_reduce_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.array.reduce.js */ "./node_modules/core-js/modules/es.array.reduce.js");
690
+ /* harmony import */ var core_js_modules_es_array_reduce_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_reduce_js__WEBPACK_IMPORTED_MODULE_6__);
691
+ /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
692
+ /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_7__);
693
+ /* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ "./node_modules/core-js/modules/es.regexp.to-string.js");
694
+ /* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_8__);
695
+ /* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! core-js/modules/es.symbol.js */ "./node_modules/core-js/modules/es.symbol.js");
696
+ /* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_9__);
697
+ /* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! core-js/modules/es.symbol.description.js */ "./node_modules/core-js/modules/es.symbol.description.js");
698
+ /* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_10__);
699
+ /* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! core-js/modules/es.symbol.iterator.js */ "./node_modules/core-js/modules/es.symbol.iterator.js");
700
+ /* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_11__);
701
+ /* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js");
702
+ /* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_12__);
703
+ /* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! core-js/modules/es.string.iterator.js */ "./node_modules/core-js/modules/es.string.iterator.js");
704
+ /* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_13__);
705
+ /* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ "./node_modules/core-js/modules/web.dom-collections.iterator.js");
706
+ /* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_14__);
707
+ /* harmony import */ var core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! core-js/modules/es.array.from.js */ "./node_modules/core-js/modules/es.array.from.js");
708
+ /* harmony import */ var core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_15__);
709
+ /* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ "./node_modules/core-js/modules/es.function.name.js");
710
+ /* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_16__);
711
+ function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }
712
+
713
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
714
+
715
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
716
+
717
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
718
+
719
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
720
+
721
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
722
+
723
+
724
+
725
+
726
+
727
+
728
+
729
+
730
+
731
+
732
+
733
+
734
+
735
+
736
+
737
+
738
+
739
+
740
+
741
+ /**
742
+ * @typedef {String} StringWithVars
743
+ * A template string with {{foo}} style variables
744
+ * Also supports filters, like {{bookPath|urlencode}} (See APPLY_FILTERS for the
745
+ * supported list of filters)
746
+ **/
747
+
748
+ /**
749
+ * @param {StringWithVars|String} template
750
+ * @param { {[varName: string]: { toString: () => string} } } vars
751
+ * @param { {[varName: string]: { toString: () => string} } } [overrides]
752
+ */
753
+ function applyVariables(template, vars) {
754
+ var overrides = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
755
+ var possibleFilters = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : APPLY_FILTERS;
756
+ return template === null || template === void 0 ? void 0 : template.replace(/\{\{([^}]*?)\}\}/g, function ($0, $1) {
757
+ if (!$1) return $0;
758
+ /** @type {string} */
759
+
760
+ var expression = $1;
761
+
762
+ var _expression$split$map = expression.split('|').map(function (x) {
763
+ return x.trim();
764
+ }),
765
+ _expression$split$map2 = _toArray(_expression$split$map),
766
+ varName = _expression$split$map2[0],
767
+ filterNames = _expression$split$map2.slice(1);
768
+
769
+ var defined = varName in overrides || varName in vars; // If it's not defined, don't expand it at all
770
+
771
+ if (!defined) return $0;
772
+ var value = varName in overrides ? overrides[varName] : varName in vars ? vars[varName] : null;
773
+ var filters = filterNames.map(function (n) {
774
+ return possibleFilters[n];
775
+ });
776
+ return filters.reduce(function (acc, cur) {
777
+ return cur(acc);
778
+ }, value && value.toString());
779
+ });
780
+ }
781
+ /** @type { {[filterName: String]:( string => string)} } */
782
+
783
+ var APPLY_FILTERS = {
784
+ urlencode: encodeURIComponent
785
+ };
786
+
787
+ /***/ }),
788
+
789
+ /***/ "./node_modules/core-js/internals/string-trim-forced.js":
790
+ /*!**************************************************************!*\
791
+ !*** ./node_modules/core-js/internals/string-trim-forced.js ***!
792
+ \**************************************************************/
793
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
794
+
795
+ var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
796
+ var whitespaces = __webpack_require__(/*! ../internals/whitespaces */ "./node_modules/core-js/internals/whitespaces.js");
797
+
798
+ var non = '\u200B\u0085\u180E';
799
+
800
+ // check that a method works with the correct list
801
+ // of whitespaces and has a correct name
802
+ module.exports = function (METHOD_NAME) {
803
+ return fails(function () {
804
+ return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;
805
+ });
806
+ };
807
+
808
+
809
+ /***/ }),
810
+
811
+ /***/ "./node_modules/core-js/modules/es.string.trim.js":
812
+ /*!********************************************************!*\
813
+ !*** ./node_modules/core-js/modules/es.string.trim.js ***!
814
+ \********************************************************/
815
+ /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
816
+
817
+ "use strict";
818
+
819
+ var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
820
+ var $trim = __webpack_require__(/*! ../internals/string-trim */ "./node_modules/core-js/internals/string-trim.js").trim;
821
+ var forcedStringTrimMethod = __webpack_require__(/*! ../internals/string-trim-forced */ "./node_modules/core-js/internals/string-trim-forced.js");
822
+
823
+ // `String.prototype.trim` method
824
+ // https://tc39.es/ecma262/#sec-string.prototype.trim
825
+ $({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {
826
+ trim: function trim() {
827
+ return $trim(this);
828
+ }
829
+ });
830
+
831
+
832
+ /***/ })
833
+
834
+ },
835
+ /******/ function(__webpack_require__) { // webpackRuntimeModules
836
+ /******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
837
+ /******/ var __webpack_exports__ = (__webpack_exec__("./src/plugins/plugin.text_selection.js"));
838
+ /******/ }
839
+ ]);
2
840
  //# sourceMappingURL=plugin.text_selection.js.map