@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.
- package/.nvmrc +1 -0
- package/BookReader/BookReader.js +32148 -2
- package/BookReader/BookReader.js.map +1 -1
- package/BookReader/bookreader-component-bundle.js +10916 -941
- package/BookReader/bookreader-component-bundle.js.map +1 -1
- package/BookReader/icons/1up.svg +12 -1
- package/BookReader/icons/2up.svg +15 -1
- package/BookReader/icons/advance.svg +26 -3
- package/BookReader/icons/chevron-right.svg +1 -1
- package/BookReader/icons/close-circle-dark.svg +1 -1
- package/BookReader/icons/close-circle.svg +1 -1
- package/BookReader/icons/fullscreen.svg +17 -1
- package/BookReader/icons/fullscreen_exit.svg +17 -1
- package/BookReader/icons/hamburger.svg +15 -1
- package/BookReader/icons/left-arrow.svg +12 -1
- package/BookReader/icons/magnify-minus.svg +16 -1
- package/BookReader/icons/magnify-plus.svg +17 -1
- package/BookReader/icons/magnify.svg +15 -1
- package/BookReader/icons/pause.svg +23 -1
- package/BookReader/icons/play.svg +22 -1
- package/BookReader/icons/playback-speed.svg +34 -1
- package/BookReader/icons/read-aloud.svg +22 -1
- package/BookReader/icons/review.svg +22 -3
- package/BookReader/icons/thumbnails.svg +17 -1
- package/BookReader/icons/voice.svg +1 -1
- package/BookReader/icons/volume-full.svg +22 -1
- package/BookReader/images/BRicons.svg +94 -5
- package/BookReader/images/books_graphic.svg +177 -1
- package/BookReader/images/icon_book.svg +12 -1
- package/BookReader/images/icon_bookmark.svg +12 -1
- package/BookReader/images/icon_gear.svg +14 -1
- package/BookReader/images/icon_hamburger.svg +20 -1
- package/BookReader/images/icon_home.svg +21 -1
- package/BookReader/images/icon_info.svg +11 -1
- package/BookReader/images/icon_one_page.svg +8 -1
- package/BookReader/images/icon_pause.svg +1 -1
- package/BookReader/images/icon_play.svg +1 -1
- package/BookReader/images/icon_playback-rate.svg +15 -1
- package/BookReader/images/icon_search_button.svg +8 -1
- package/BookReader/images/icon_share.svg +9 -1
- package/BookReader/images/icon_skip-ahead.svg +6 -1
- package/BookReader/images/icon_skip-back.svg +13 -2
- package/BookReader/images/icon_speaker.svg +18 -1
- package/BookReader/images/icon_speaker_open.svg +10 -1
- package/BookReader/images/icon_thumbnails.svg +12 -1
- package/BookReader/images/icon_toc.svg +5 -1
- package/BookReader/images/icon_two_pages.svg +9 -1
- package/BookReader/images/marker_chap-off.svg +11 -1
- package/BookReader/images/marker_chap-on.svg +11 -1
- package/BookReader/images/marker_srch-on.svg +11 -1
- package/BookReader/jquery-1.10.1.js +108 -2
- package/BookReader/plugins/plugin.archive_analytics.js +170 -1
- package/BookReader/plugins/plugin.archive_analytics.js.map +1 -1
- package/BookReader/plugins/plugin.autoplay.js +163 -1
- package/BookReader/plugins/plugin.autoplay.js.map +1 -1
- package/BookReader/plugins/plugin.chapters.js +333 -1
- package/BookReader/plugins/plugin.chapters.js.map +1 -1
- package/BookReader/plugins/plugin.iframe.js +72 -1
- package/BookReader/plugins/plugin.iframe.js.map +1 -1
- package/BookReader/plugins/plugin.mobile_nav.js +332 -1
- package/BookReader/plugins/plugin.mobile_nav.js.map +1 -1
- package/BookReader/plugins/plugin.resume.js +241 -1
- package/BookReader/plugins/plugin.resume.js.map +1 -1
- package/BookReader/plugins/plugin.search.js +1263 -1
- package/BookReader/plugins/plugin.search.js.map +1 -1
- package/BookReader/plugins/plugin.text_selection.js +839 -1
- package/BookReader/plugins/plugin.text_selection.js.map +1 -1
- package/BookReader/plugins/plugin.tts.js +9114 -2
- package/BookReader/plugins/plugin.tts.js.map +1 -1
- package/BookReader/plugins/plugin.url.js +750 -1
- package/BookReader/plugins/plugin.url.js.map +1 -1
- package/BookReader/plugins/plugin.vendor-fullscreen.js +326 -1
- package/BookReader/plugins/plugin.vendor-fullscreen.js.map +1 -1
- package/BookReader/webcomponents-bundle.js +411 -2
- package/BookReader/webcomponents-bundle.js.map +1 -1
- package/package.json +1 -1
- package/src/BookNavigator/volumes/volumes-provider.js +39 -9
- package/src/BookReader.js +4 -0
- package/src/plugins/plugin.url.js +209 -2
- package/tests/jest/plugins/plugin.url.test.js +160 -1
- 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
|