@internetarchive/bookreader 5.0.0-94 → 5.0.0-95
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/.github/workflows/npm-publish.yml +2 -12
- package/CHANGELOG.md +7 -0
- package/README.md +0 -2
- package/package.json +1 -1
- package/scripts/version.js +0 -3
- package/BookReader/BookReader.css +0 -2251
- package/BookReader/BookReader.js +0 -3
- package/BookReader/BookReader.js.LICENSE.txt +0 -72
- package/BookReader/BookReader.js.map +0 -1
- package/BookReader/ia-bookreader-bundle.js +0 -1782
- package/BookReader/ia-bookreader-bundle.js.LICENSE.txt +0 -7
- package/BookReader/ia-bookreader-bundle.js.map +0 -1
- package/BookReader/icons/1up.svg +0 -1
- package/BookReader/icons/2up.svg +0 -1
- package/BookReader/icons/advance.svg +0 -3
- package/BookReader/icons/chevron-right.svg +0 -1
- package/BookReader/icons/close-circle-dark.svg +0 -1
- package/BookReader/icons/close-circle.svg +0 -1
- package/BookReader/icons/fullscreen.svg +0 -1
- package/BookReader/icons/fullscreen_exit.svg +0 -1
- package/BookReader/icons/hamburger.svg +0 -1
- package/BookReader/icons/left-arrow.svg +0 -1
- package/BookReader/icons/magnify-minus.svg +0 -1
- package/BookReader/icons/magnify-plus.svg +0 -1
- package/BookReader/icons/magnify.svg +0 -1
- package/BookReader/icons/pause.svg +0 -1
- package/BookReader/icons/play.svg +0 -1
- package/BookReader/icons/playback-speed.svg +0 -1
- package/BookReader/icons/read-aloud.svg +0 -1
- package/BookReader/icons/review.svg +0 -3
- package/BookReader/icons/thumbnails.svg +0 -1
- package/BookReader/icons/voice.svg +0 -1
- package/BookReader/icons/volume-full.svg +0 -1
- package/BookReader/images/BRicons.png +0 -0
- package/BookReader/images/BRicons.svg +0 -5
- package/BookReader/images/BRicons_ia.png +0 -0
- package/BookReader/images/back_pages.png +0 -0
- package/BookReader/images/book_bottom_icon.png +0 -0
- package/BookReader/images/book_down_icon.png +0 -0
- package/BookReader/images/book_left_icon.png +0 -0
- package/BookReader/images/book_leftmost_icon.png +0 -0
- package/BookReader/images/book_right_icon.png +0 -0
- package/BookReader/images/book_rightmost_icon.png +0 -0
- package/BookReader/images/book_top_icon.png +0 -0
- package/BookReader/images/book_up_icon.png +0 -0
- package/BookReader/images/books_graphic.svg +0 -1
- package/BookReader/images/booksplit.png +0 -0
- package/BookReader/images/control_pause_icon.png +0 -0
- package/BookReader/images/control_play_icon.png +0 -0
- package/BookReader/images/embed_icon.png +0 -0
- package/BookReader/images/hypothesis.ico +0 -0
- package/BookReader/images/icon-home-ia.png +0 -0
- package/BookReader/images/icon_OL-logo-xs.png +0 -0
- package/BookReader/images/icon_alert-xs.png +0 -0
- package/BookReader/images/icon_book.svg +0 -1
- package/BookReader/images/icon_bookmark.svg +0 -1
- package/BookReader/images/icon_close-pop.png +0 -0
- package/BookReader/images/icon_download.png +0 -0
- package/BookReader/images/icon_gear.svg +0 -1
- package/BookReader/images/icon_hamburger.svg +0 -1
- package/BookReader/images/icon_home.png +0 -0
- package/BookReader/images/icon_home.svg +0 -1
- package/BookReader/images/icon_home_ia.png +0 -0
- package/BookReader/images/icon_indicator.png +0 -0
- package/BookReader/images/icon_info.svg +0 -1
- package/BookReader/images/icon_one_page.svg +0 -1
- package/BookReader/images/icon_pause.svg +0 -1
- package/BookReader/images/icon_play.svg +0 -1
- package/BookReader/images/icon_playback-rate.svg +0 -1
- package/BookReader/images/icon_return.png +0 -0
- package/BookReader/images/icon_search_button.svg +0 -1
- package/BookReader/images/icon_share.svg +0 -1
- package/BookReader/images/icon_skip-ahead.svg +0 -1
- package/BookReader/images/icon_skip-back.svg +0 -2
- package/BookReader/images/icon_speaker.svg +0 -1
- package/BookReader/images/icon_speaker_open.svg +0 -1
- package/BookReader/images/icon_thumbnails.svg +0 -1
- package/BookReader/images/icon_toc.svg +0 -1
- package/BookReader/images/icon_two_pages.svg +0 -1
- package/BookReader/images/icon_zoomer.png +0 -0
- package/BookReader/images/loading.gif +0 -0
- package/BookReader/images/logo_icon.png +0 -0
- package/BookReader/images/marker_chap-off.png +0 -0
- package/BookReader/images/marker_chap-off.svg +0 -1
- package/BookReader/images/marker_chap-off_ia.png +0 -0
- package/BookReader/images/marker_chap-on.png +0 -0
- package/BookReader/images/marker_chap-on.svg +0 -1
- package/BookReader/images/marker_srch-on.svg +0 -1
- package/BookReader/images/marker_srchchap-off.png +0 -0
- package/BookReader/images/marker_srchchap-on.png +0 -0
- package/BookReader/images/nav_control-dn.png +0 -0
- package/BookReader/images/nav_control-dn_ia.png +0 -0
- package/BookReader/images/nav_control-up.png +0 -0
- package/BookReader/images/nav_control-up_ia.png +0 -0
- package/BookReader/images/nav_control.png +0 -0
- package/BookReader/images/one_page_mode_icon.png +0 -0
- package/BookReader/images/paper-badge.png +0 -0
- package/BookReader/images/print_icon.png +0 -0
- package/BookReader/images/progressbar.gif +0 -0
- package/BookReader/images/right_edges.png +0 -0
- package/BookReader/images/slider.png +0 -0
- package/BookReader/images/slider_ia.png +0 -0
- package/BookReader/images/thumbnail_mode_icon.png +0 -0
- package/BookReader/images/transparent.png +0 -0
- package/BookReader/images/two_page_mode_icon.png +0 -0
- package/BookReader/images/unviewable_page.png +0 -0
- package/BookReader/images/zoom_in_icon.png +0 -0
- package/BookReader/images/zoom_out_icon.png +0 -0
- package/BookReader/jquery-3.js +0 -2
- package/BookReader/jquery-3.js.LICENSE.txt +0 -24
- package/BookReader/plugins/plugin.archive_analytics.js +0 -2
- package/BookReader/plugins/plugin.archive_analytics.js.map +0 -1
- package/BookReader/plugins/plugin.autoplay.js +0 -2
- package/BookReader/plugins/plugin.autoplay.js.map +0 -1
- package/BookReader/plugins/plugin.chapters.js +0 -26
- package/BookReader/plugins/plugin.chapters.js.LICENSE.txt +0 -1
- package/BookReader/plugins/plugin.chapters.js.map +0 -1
- package/BookReader/plugins/plugin.experiments.js +0 -3
- package/BookReader/plugins/plugin.experiments.js.LICENSE.txt +0 -1
- package/BookReader/plugins/plugin.experiments.js.map +0 -1
- package/BookReader/plugins/plugin.iframe.js +0 -2
- package/BookReader/plugins/plugin.iframe.js.map +0 -1
- package/BookReader/plugins/plugin.iiif.js +0 -2
- package/BookReader/plugins/plugin.iiif.js.map +0 -1
- package/BookReader/plugins/plugin.resume.js +0 -2
- package/BookReader/plugins/plugin.resume.js.map +0 -1
- package/BookReader/plugins/plugin.search.js +0 -3
- package/BookReader/plugins/plugin.search.js.LICENSE.txt +0 -1
- package/BookReader/plugins/plugin.search.js.map +0 -1
- package/BookReader/plugins/plugin.text_selection.js +0 -3
- package/BookReader/plugins/plugin.text_selection.js.LICENSE.txt +0 -1
- package/BookReader/plugins/plugin.text_selection.js.map +0 -1
- package/BookReader/plugins/plugin.tts.js +0 -3
- package/BookReader/plugins/plugin.tts.js.LICENSE.txt +0 -29
- package/BookReader/plugins/plugin.tts.js.map +0 -1
- package/BookReader/plugins/plugin.url.js +0 -2
- package/BookReader/plugins/plugin.url.js.map +0 -1
- package/BookReader/plugins/plugin.vendor-fullscreen.js +0 -2
- package/BookReader/plugins/plugin.vendor-fullscreen.js.map +0 -1
- package/BookReader/webcomponents-bundle.js +0 -3
- package/BookReader/webcomponents-bundle.js.LICENSE.txt +0 -9
- package/BookReader/webcomponents-bundle.js.map +0 -1
- package/src/BookReader/BookModel.js +0 -564
- package/src/BookReader/DragScrollable.js +0 -233
- package/src/BookReader/ImageCache.js +0 -149
- package/src/BookReader/Mode1Up.js +0 -110
- package/src/BookReader/Mode1UpLit.js +0 -388
- package/src/BookReader/Mode2Up.js +0 -107
- package/src/BookReader/Mode2UpLit.js +0 -777
- package/src/BookReader/ModeCoordinateSpace.js +0 -29
- package/src/BookReader/ModeSmoothZoom.js +0 -312
- package/src/BookReader/ModeThumb.js +0 -344
- package/src/BookReader/Navbar/Navbar.js +0 -355
- package/src/BookReader/PageContainer.js +0 -172
- package/src/BookReader/ReduceSet.js +0 -26
- package/src/BookReader/Toolbar/Toolbar.js +0 -362
- package/src/BookReader/events.js +0 -19
- package/src/BookReader/options.js +0 -387
- package/src/BookReader/utils/HTMLDimensionsCacher.js +0 -44
- package/src/BookReader/utils/ScrollClassAdder.js +0 -31
- package/src/BookReader/utils/SelectionObserver.js +0 -45
- package/src/BookReader/utils/classes.js +0 -36
- package/src/BookReader/utils.js +0 -313
- package/tests/jest/BookReader/BookModel.test.js +0 -372
- package/tests/jest/BookReader/BookReaderPublicFunctions.test.js +0 -263
- package/tests/jest/BookReader/ImageCache.test.js +0 -150
- package/tests/jest/BookReader/Mode1UpLit.test.js +0 -73
- package/tests/jest/BookReader/Mode2Up.test.js +0 -98
- package/tests/jest/BookReader/Mode2UpLit.test.js +0 -190
- package/tests/jest/BookReader/ModeCoordinateSpace.test.js +0 -16
- package/tests/jest/BookReader/ModeSmoothZoom.test.js +0 -218
- package/tests/jest/BookReader/ModeThumb.test.js +0 -71
- package/tests/jest/BookReader/Navbar/Navbar.test.js +0 -182
- package/tests/jest/BookReader/PageContainer.test.js +0 -249
- package/tests/jest/BookReader/ReduceSet.test.js +0 -38
- package/tests/jest/BookReader/Toolbar/Toolbar.test.js +0 -26
- package/tests/jest/BookReader/utils/HTMLDimensionsCacher.test.js +0 -59
- package/tests/jest/BookReader/utils/ScrollClassAdder.test.js +0 -49
- package/tests/jest/BookReader/utils/SelectionObserver.test.js +0 -57
- package/tests/jest/BookReader/utils/classes.test.js +0 -88
- package/tests/jest/BookReader/utils.test.js +0 -250
@@ -1,2 +0,0 @@
|
|
1
|
-
"use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[479],{6098:function(t,e,r){var n=r(9504),o=2147483647,a=/[^\0-\u007E]/,i=/[.\u3002\uFF0E\uFF61]/g,s="Overflow: input needs wider integers to process",u=RangeError,l=n(i.exec),c=Math.floor,h=String.fromCharCode,f=n("".charCodeAt),p=n([].join),d=n([].push),m=n("".replace),g=n("".split),v=n("".toLowerCase),y=function(t){return t+22+75*(t<26)},b=function(t,e,r){var n=0;for(t=r?c(t/700):t>>1,t+=c(t/e);t>455;)t=c(t/35),n+=36;return c(n+36*t/(t+38))},w=function(t){var e=[];t=function(t){for(var e=[],r=0,n=t.length;r<n;){var o=f(t,r++);if(o>=55296&&o<=56319&&r<n){var a=f(t,r++);56320==(64512&a)?d(e,((1023&o)<<10)+(1023&a)+65536):(d(e,o),r--)}else d(e,o)}return e}(t);var r,n,a=t.length,i=128,l=0,m=72;for(r=0;r<t.length;r++)(n=t[r])<128&&d(e,h(n));var g=e.length,v=g;for(g&&d(e,"-");v<a;){var w=o;for(r=0;r<t.length;r++)(n=t[r])>=i&&n<w&&(w=n);var P=v+1;if(w-i>c((o-l)/P))throw new u(s);for(l+=(w-i)*P,i=w,r=0;r<t.length;r++){if((n=t[r])<i&&++l>o)throw new u(s);if(n===i){for(var S=l,k=36;;){var R=k<=m?1:k>=m+26?26:k-m;if(S<R)break;var U=S-R,B=36-R;d(e,h(y(R+U%B))),S=c(U/B),k+=36}d(e,h(y(S))),m=b(l,P,v===g),l=0,v++}}l++,i++}return p(e,"")};t.exports=function(t){var e,r,n=[],o=g(m(v(t),i,"."),".");for(e=0;e<o.length;e++)r=o[e],d(n,l(a,r)?"xn--"+w(r):r);return p(n,".")}},706:function(t,e,r){var n=r(350).PROPER,o=r(9039),a=r(7452);t.exports=function(t){return o((function(){return!!a[t]()||"
"!=="
"[t]()||n&&a[t].name!==t}))}},3921:function(t,e,r){var n=r(6518),o=r(2652),a=r(4659);n({target:"Object",stat:!0},{fromEntries:function(t){var e={};return o(t,(function(t,r){a(e,t,r)}),{AS_ENTRIES:!0}),e}})},2762:function(t,e,r){var n=r(6518),o=r(3802).trim;n({target:"String",proto:!0,forced:r(706)("trim")},{trim:function(){return o(this)}})},5806:function(t,e,r){r(7764);var n,o=r(6518),a=r(3724),i=r(7416),s=r(4576),u=r(6080),l=r(9504),c=r(6840),h=r(2106),f=r(679),p=r(9297),d=r(4213),m=r(7916),g=r(7680),v=r(8183).codeAt,y=r(6098),b=r(655),w=r(687),P=r(2812),S=r(8406),k=r(1181),R=k.set,U=k.getterFor("URL"),B=S.URLSearchParams,H=S.getState,L=s.URL,O=s.TypeError,j=s.parseInt,q=Math.floor,I=Math.pow,T=l("".charAt),A=l(/./.exec),F=l([].join),C=l(1..toString),_=l([].pop),E=l([].push),M=l("".replace),x=l([].shift),z=l("".split),$=l("".slice),N=l("".toLowerCase),D=l([].unshift),J="Invalid scheme",W="Invalid host",Q="Invalid port",G=/[a-z]/i,K=/[\d+-.a-z]/i,V=/\d/,X=/^0x/i,Y=/^[0-7]+$/,Z=/^\d+$/,tt=/^[\da-f]+$/i,et=/[\0\t\n\r #%/:<>?@[\\\]^|]/,rt=/[\0\t\n\r #/:<>?@[\\\]^|]/,nt=/^[\u0000-\u0020]+/,ot=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,at=/[\t\n\r]/g,it=function(t){var e,r,n,o;if("number"==typeof t){for(e=[],r=0;r<4;r++)D(e,t%256),t=q(t/256);return F(e,".")}if("object"==typeof t){for(e="",n=function(t){for(var e=null,r=1,n=null,o=0,a=0;a<8;a++)0!==t[a]?(o>r&&(e=n,r=o),n=null,o=0):(null===n&&(n=a),++o);return o>r?n:e}(t),r=0;r<8;r++)o&&0===t[r]||(o&&(o=!1),n===r?(e+=r?":":"::",o=!0):(e+=C(t[r],16),r<7&&(e+=":")));return"["+e+"]"}return t},st={},ut=d({},st,{" ":1,'"':1,"<":1,">":1,"`":1}),lt=d({},ut,{"#":1,"?":1,"{":1,"}":1}),ct=d({},lt,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),ht=function(t,e){var r=v(t,0);return r>32&&r<127&&!p(e,t)?t:encodeURIComponent(t)},ft={ftp:21,file:null,http:80,https:443,ws:80,wss:443},pt=function(t,e){var r;return 2===t.length&&A(G,T(t,0))&&(":"===(r=T(t,1))||!e&&"|"===r)},dt=function(t){var e;return t.length>1&&pt($(t,0,2))&&(2===t.length||"/"===(e=T(t,2))||"\\"===e||"?"===e||"#"===e)},mt=function(t){return"."===t||"%2e"===N(t)},gt={},vt={},yt={},bt={},wt={},Pt={},St={},kt={},Rt={},Ut={},Bt={},Ht={},Lt={},Ot={},jt={},qt={},It={},Tt={},At={},Ft={},Ct={},_t=function(t,e,r){var n,o,a,i=b(t);if(e){if(o=this.parse(i))throw new O(o);this.searchParams=null}else{if(void 0!==r&&(n=new _t(r,!0)),o=this.parse(i,null,n))throw new O(o);(a=H(new B)).bindURL(this),this.searchParams=a}};_t.prototype={type:"URL",parse:function(t,e,r){var o,a,i,s,u,l=this,c=e||gt,h=0,f="",d=!1,v=!1,y=!1;for(t=b(t),e||(l.scheme="",l.username="",l.password="",l.host=null,l.port=null,l.path=[],l.query=null,l.fragment=null,l.cannotBeABaseURL=!1,t=M(t,nt,""),t=M(t,ot,"$1")),t=M(t,at,""),o=m(t);h<=o.length;){switch(a=o[h],c){case gt:if(!a||!A(G,a)){if(e)return J;c=yt;continue}f+=N(a),c=vt;break;case vt:if(a&&(A(K,a)||"+"===a||"-"===a||"."===a))f+=N(a);else{if(":"!==a){if(e)return J;f="",c=yt,h=0;continue}if(e&&(l.isSpecial()!==p(ft,f)||"file"===f&&(l.includesCredentials()||null!==l.port)||"file"===l.scheme&&!l.host))return;if(l.scheme=f,e)return void(l.isSpecial()&&ft[l.scheme]===l.port&&(l.port=null));f="","file"===l.scheme?c=Ot:l.isSpecial()&&r&&r.scheme===l.scheme?c=bt:l.isSpecial()?c=kt:"/"===o[h+1]?(c=wt,h++):(l.cannotBeABaseURL=!0,E(l.path,""),c=At)}break;case yt:if(!r||r.cannotBeABaseURL&&"#"!==a)return J;if(r.cannotBeABaseURL&&"#"===a){l.scheme=r.scheme,l.path=g(r.path),l.query=r.query,l.fragment="",l.cannotBeABaseURL=!0,c=Ct;break}c="file"===r.scheme?Ot:Pt;continue;case bt:if("/"!==a||"/"!==o[h+1]){c=Pt;continue}c=Rt,h++;break;case wt:if("/"===a){c=Ut;break}c=Tt;continue;case Pt:if(l.scheme=r.scheme,a===n)l.username=r.username,l.password=r.password,l.host=r.host,l.port=r.port,l.path=g(r.path),l.query=r.query;else if("/"===a||"\\"===a&&l.isSpecial())c=St;else if("?"===a)l.username=r.username,l.password=r.password,l.host=r.host,l.port=r.port,l.path=g(r.path),l.query="",c=Ft;else{if("#"!==a){l.username=r.username,l.password=r.password,l.host=r.host,l.port=r.port,l.path=g(r.path),l.path.length--,c=Tt;continue}l.username=r.username,l.password=r.password,l.host=r.host,l.port=r.port,l.path=g(r.path),l.query=r.query,l.fragment="",c=Ct}break;case St:if(!l.isSpecial()||"/"!==a&&"\\"!==a){if("/"!==a){l.username=r.username,l.password=r.password,l.host=r.host,l.port=r.port,c=Tt;continue}c=Ut}else c=Rt;break;case kt:if(c=Rt,"/"!==a||"/"!==T(f,h+1))continue;h++;break;case Rt:if("/"!==a&&"\\"!==a){c=Ut;continue}break;case Ut:if("@"===a){d&&(f="%40"+f),d=!0,i=m(f);for(var w=0;w<i.length;w++){var P=i[w];if(":"!==P||y){var S=ht(P,ct);y?l.password+=S:l.username+=S}else y=!0}f=""}else if(a===n||"/"===a||"?"===a||"#"===a||"\\"===a&&l.isSpecial()){if(d&&""===f)return"Invalid authority";h-=m(f).length+1,f="",c=Bt}else f+=a;break;case Bt:case Ht:if(e&&"file"===l.scheme){c=qt;continue}if(":"!==a||v){if(a===n||"/"===a||"?"===a||"#"===a||"\\"===a&&l.isSpecial()){if(l.isSpecial()&&""===f)return W;if(e&&""===f&&(l.includesCredentials()||null!==l.port))return;if(s=l.parseHost(f))return s;if(f="",c=It,e)return;continue}"["===a?v=!0:"]"===a&&(v=!1),f+=a}else{if(""===f)return W;if(s=l.parseHost(f))return s;if(f="",c=Lt,e===Ht)return}break;case Lt:if(!A(V,a)){if(a===n||"/"===a||"?"===a||"#"===a||"\\"===a&&l.isSpecial()||e){if(""!==f){var k=j(f,10);if(k>65535)return Q;l.port=l.isSpecial()&&k===ft[l.scheme]?null:k,f=""}if(e)return;c=It;continue}return Q}f+=a;break;case Ot:if(l.scheme="file","/"===a||"\\"===a)c=jt;else{if(!r||"file"!==r.scheme){c=Tt;continue}switch(a){case n:l.host=r.host,l.path=g(r.path),l.query=r.query;break;case"?":l.host=r.host,l.path=g(r.path),l.query="",c=Ft;break;case"#":l.host=r.host,l.path=g(r.path),l.query=r.query,l.fragment="",c=Ct;break;default:dt(F(g(o,h),""))||(l.host=r.host,l.path=g(r.path),l.shortenPath()),c=Tt;continue}}break;case jt:if("/"===a||"\\"===a){c=qt;break}r&&"file"===r.scheme&&!dt(F(g(o,h),""))&&(pt(r.path[0],!0)?E(l.path,r.path[0]):l.host=r.host),c=Tt;continue;case qt:if(a===n||"/"===a||"\\"===a||"?"===a||"#"===a){if(!e&&pt(f))c=Tt;else if(""===f){if(l.host="",e)return;c=It}else{if(s=l.parseHost(f))return s;if("localhost"===l.host&&(l.host=""),e)return;f="",c=It}continue}f+=a;break;case It:if(l.isSpecial()){if(c=Tt,"/"!==a&&"\\"!==a)continue}else if(e||"?"!==a)if(e||"#"!==a){if(a!==n&&(c=Tt,"/"!==a))continue}else l.fragment="",c=Ct;else l.query="",c=Ft;break;case Tt:if(a===n||"/"===a||"\\"===a&&l.isSpecial()||!e&&("?"===a||"#"===a)){if(".."===(u=N(u=f))||"%2e."===u||".%2e"===u||"%2e%2e"===u?(l.shortenPath(),"/"===a||"\\"===a&&l.isSpecial()||E(l.path,"")):mt(f)?"/"===a||"\\"===a&&l.isSpecial()||E(l.path,""):("file"===l.scheme&&!l.path.length&&pt(f)&&(l.host&&(l.host=""),f=T(f,0)+":"),E(l.path,f)),f="","file"===l.scheme&&(a===n||"?"===a||"#"===a))for(;l.path.length>1&&""===l.path[0];)x(l.path);"?"===a?(l.query="",c=Ft):"#"===a&&(l.fragment="",c=Ct)}else f+=ht(a,lt);break;case At:"?"===a?(l.query="",c=Ft):"#"===a?(l.fragment="",c=Ct):a!==n&&(l.path[0]+=ht(a,st));break;case Ft:e||"#"!==a?a!==n&&("'"===a&&l.isSpecial()?l.query+="%27":l.query+="#"===a?"%23":ht(a,st)):(l.fragment="",c=Ct);break;case Ct:a!==n&&(l.fragment+=ht(a,ut))}h++}},parseHost:function(t){var e,r,n;if("["===T(t,0)){if("]"!==T(t,t.length-1))return W;if(e=function(t){var e,r,n,o,a,i,s,u=[0,0,0,0,0,0,0,0],l=0,c=null,h=0,f=function(){return T(t,h)};if(":"===f()){if(":"!==T(t,1))return;h+=2,c=++l}for(;f();){if(8===l)return;if(":"!==f()){for(e=r=0;r<4&&A(tt,f());)e=16*e+j(f(),16),h++,r++;if("."===f()){if(0===r)return;if(h-=r,l>6)return;for(n=0;f();){if(o=null,n>0){if(!("."===f()&&n<4))return;h++}if(!A(V,f()))return;for(;A(V,f());){if(a=j(f(),10),null===o)o=a;else{if(0===o)return;o=10*o+a}if(o>255)return;h++}u[l]=256*u[l]+o,2!=++n&&4!==n||l++}if(4!==n)return;break}if(":"===f()){if(h++,!f())return}else if(f())return;u[l++]=e}else{if(null!==c)return;h++,c=++l}}if(null!==c)for(i=l-c,l=7;0!==l&&i>0;)s=u[l],u[l--]=u[c+i-1],u[c+--i]=s;else if(8!==l)return;return u}($(t,1,-1)),!e)return W;this.host=e}else if(this.isSpecial()){if(t=y(t),A(et,t))return W;if(e=function(t){var e,r,n,o,a,i,s,u=z(t,".");if(u.length&&""===u[u.length-1]&&u.length--,(e=u.length)>4)return t;for(r=[],n=0;n<e;n++){if(""===(o=u[n]))return t;if(a=10,o.length>1&&"0"===T(o,0)&&(a=A(X,o)?16:8,o=$(o,8===a?1:2)),""===o)i=0;else{if(!A(10===a?Z:8===a?Y:tt,o))return t;i=j(o,a)}E(r,i)}for(n=0;n<e;n++)if(i=r[n],n===e-1){if(i>=I(256,5-e))return null}else if(i>255)return null;for(s=_(r),n=0;n<r.length;n++)s+=r[n]*I(256,3-n);return s}(t),null===e)return W;this.host=e}else{if(A(rt,t))return W;for(e="",r=m(t),n=0;n<r.length;n++)e+=ht(r[n],st);this.host=e}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||"file"===this.scheme},includesCredentials:function(){return""!==this.username||""!==this.password},isSpecial:function(){return p(ft,this.scheme)},shortenPath:function(){var t=this.path,e=t.length;!e||"file"===this.scheme&&1===e&&pt(t[0],!0)||t.length--},serialize:function(){var t=this,e=t.scheme,r=t.username,n=t.password,o=t.host,a=t.port,i=t.path,s=t.query,u=t.fragment,l=e+":";return null!==o?(l+="//",t.includesCredentials()&&(l+=r+(n?":"+n:"")+"@"),l+=it(o),null!==a&&(l+=":"+a)):"file"===e&&(l+="//"),l+=t.cannotBeABaseURL?i[0]:i.length?"/"+F(i,"/"):"",null!==s&&(l+="?"+s),null!==u&&(l+="#"+u),l},setHref:function(t){var e=this.parse(t);if(e)throw new O(e);this.searchParams.update()},getOrigin:function(){var t=this.scheme,e=this.port;if("blob"===t)try{return new Et(t.path[0]).origin}catch(t){return"null"}return"file"!==t&&this.isSpecial()?t+"://"+it(this.host)+(null!==e?":"+e:""):"null"},getProtocol:function(){return this.scheme+":"},setProtocol:function(t){this.parse(b(t)+":",gt)},getUsername:function(){return this.username},setUsername:function(t){var e=m(b(t));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var r=0;r<e.length;r++)this.username+=ht(e[r],ct)}},getPassword:function(){return this.password},setPassword:function(t){var e=m(b(t));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var r=0;r<e.length;r++)this.password+=ht(e[r],ct)}},getHost:function(){var t=this.host,e=this.port;return null===t?"":null===e?it(t):it(t)+":"+e},setHost:function(t){this.cannotBeABaseURL||this.parse(t,Bt)},getHostname:function(){var t=this.host;return null===t?"":it(t)},setHostname:function(t){this.cannotBeABaseURL||this.parse(t,Ht)},getPort:function(){var t=this.port;return null===t?"":b(t)},setPort:function(t){this.cannotHaveUsernamePasswordPort()||(""===(t=b(t))?this.port=null:this.parse(t,Lt))},getPathname:function(){var t=this.path;return this.cannotBeABaseURL?t[0]:t.length?"/"+F(t,"/"):""},setPathname:function(t){this.cannotBeABaseURL||(this.path=[],this.parse(t,It))},getSearch:function(){var t=this.query;return t?"?"+t:""},setSearch:function(t){""===(t=b(t))?this.query=null:("?"===T(t,0)&&(t=$(t,1)),this.query="",this.parse(t,Ft)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var t=this.fragment;return t?"#"+t:""},setHash:function(t){""!==(t=b(t))?("#"===T(t,0)&&(t=$(t,1)),this.fragment="",this.parse(t,Ct)):this.fragment=null},update:function(){this.query=this.searchParams.serialize()||null}};var Et=function(t){var e=f(this,Mt),r=P(arguments.length,1)>1?arguments[1]:void 0,n=R(e,new _t(t,!1,r));a||(e.href=n.serialize(),e.origin=n.getOrigin(),e.protocol=n.getProtocol(),e.username=n.getUsername(),e.password=n.getPassword(),e.host=n.getHost(),e.hostname=n.getHostname(),e.port=n.getPort(),e.pathname=n.getPathname(),e.search=n.getSearch(),e.searchParams=n.getSearchParams(),e.hash=n.getHash())},Mt=Et.prototype,xt=function(t,e){return{get:function(){return U(this)[t]()},set:e&&function(t){return U(this)[e](t)},configurable:!0,enumerable:!0}};if(a&&(h(Mt,"href",xt("serialize","setHref")),h(Mt,"origin",xt("getOrigin")),h(Mt,"protocol",xt("getProtocol","setProtocol")),h(Mt,"username",xt("getUsername","setUsername")),h(Mt,"password",xt("getPassword","setPassword")),h(Mt,"host",xt("getHost","setHost")),h(Mt,"hostname",xt("getHostname","setHostname")),h(Mt,"port",xt("getPort","setPort")),h(Mt,"pathname",xt("getPathname","setPathname")),h(Mt,"search",xt("getSearch","setSearch")),h(Mt,"searchParams",xt("getSearchParams")),h(Mt,"hash",xt("getHash","setHash"))),c(Mt,"toJSON",(function(){return U(this).serialize()}),{enumerable:!0}),c(Mt,"toString",(function(){return U(this).serialize()}),{enumerable:!0}),L){var zt=L.createObjectURL,$t=L.revokeObjectURL;zt&&c(Et,"createObjectURL",u(zt,L)),$t&&c(Et,"revokeObjectURL",u($t,L))}w(Et,"URL"),o({global:!0,constructor:!0,forced:!i,sham:!a},{URL:Et})},3296:function(t,e,r){r(5806)},7208:function(t,e,r){var n=r(6518),o=r(9565);n({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return o(URL.prototype.toString,this)}})},5857:function(t,e,r){function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function a(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,i(n.key),n)}}function i(t){var e=function(t,e){if("object"!=n(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var o=r.call(t,"string");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==n(e)?e:e+""}r(2675),r(9463),r(2259),r(5700),r(8706),r(3792),r(2712),r(9572),r(8130),r(3851),r(875),r(6099),r(825),r(888),r(7495),r(7764),r(5440),r(2953),r(8408),r(2008),r(113),r(3418),r(8598),r(2062),r(4782),r(2010),r(5506),r(3921),r(9432),r(8781),r(1761),r(5746),r(2762),r(3500),r(3296),r(7208);var s,u=function(){return t=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.bookReaderOptions=e,this.urlSchema=[{name:"page",position:"path",default:"n0"},{name:"mode",position:"path",default:"2up"},{name:"search",position:"path",deprecated_for:"q"},{name:"q",position:"query_param"},{name:"sort",position:"query_param"},{name:"view",position:"query_param"},{name:"admin",position:"query_param"}],this.urlState={},this.urlMode=this.bookReaderOptions.urlMode||"hash",this.urlHistoryBasePath=this.bookReaderOptions.urlHistoryBasePath||"/",this.urlLocationPollId=null,this.oldLocationHash=null,this.oldUserHash=null},e=[{key:"urlStateToUrlString",value:function(t){var e=this,r=new URLSearchParams,n={};Object.keys(t).forEach((function(o){var a,i,s,u,l=e.urlSchema.find((function(t){return t.name===o}));null!==(a=l)&&void 0!==a&&a.deprecated_for&&(l=e.urlSchema.find((function(t){return t.name===l.deprecated_for}))),"path"==(null===(i=l)||void 0===i?void 0:i.position)?n[null===(s=l)||void 0===s?void 0:s.name]=t[o]:r.append((null===(u=l)||void 0===u?void 0:u.name)||o,t[o])}));var o=this.urlSchema.filter((function(t){return"path"==t.position})).map((function(t){return n[t.name]?"".concat(t.name,"/").concat(encodeURIComponent(n[t.name])):""})).join("/"),a="".concat(o.replace(/\/+/g,"/").replace(/\/+$/,"")),i="".concat(a,"?").concat(r.toString());return r.toString()?i:"".concat(a)}},{key:"urlStringToUrlState",value:function(t){var e={},r=new URL(t,"http://example.com"),n=Object.fromEntries(r.searchParams.entries()),a=r.pathname.match(/[^\\/]+\/[^\\/]+/g),i=a?Object.fromEntries(a.map((function(t){return t.split("/")}))):{},s=function(t,e){return Object.keys(t).some((function(t){return t==e}))};return this.urlSchema.filter((function(t){return"path"==t.position})).forEach((function(t){var r=s(i,t.name),n=s(t,"deprecated_for")&&r;if(r||n){var o=n?t.deprecated_for:t.name;e[o]=decodeURIComponent(i[t.name])}})),Object.entries(n).forEach((function(t){var r=function(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,a,i,s=[],u=!0,l=!1;try{if(a=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=a.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){l=!0,o=t}finally{try{if(!u&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(l)throw o}}return s}}(t,e)||function(t,e){if(t){if("string"==typeof t)return o(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(t,e):void 0}}(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.")}()}(t,2),n=r[0],a=r[1];e[n]=a})),e}},{key:"setUrlParam",value:function(t,e){this.urlState[t]=e,this.pushToAddressBar()}},{key:"removeUrlParam",value:function(t){delete this.urlState[t],this.pushToAddressBar()}},{key:"getUrlParam",value:function(t){return this.urlState[t]}},{key:"pushToAddressBar",value:function(){var t=this.urlStateToUrlString(this.urlState),e="/"!==t?t:"";if("history"==this.urlMode)if(window.history&&window.history.replaceState){var r="".concat(this.urlHistoryBasePath).concat(e).trim().replace(/(\/+)/g,"/");try{window.history.replaceState({},null,r)}catch(t){this.urlMode="hash"}}else this.options.urlMode="hash";"hash"==this.urlMode&&window.location.replace("#"+e),this.oldLocationHash=t}},{key:"listenForHashChanges",value:function(){var t=this;this.oldLocationHash=window.location.hash.substr(1),this.urlLocationPollId&&(clearInterval(this.urlLocationPollId),this.urlLocationPollId=null),this.urlLocationPollId=setInterval((function(){var e=window.location.hash.substr(1);e!=t.oldLocationHash&&(t.urlState=t.urlStringToUrlState(e))}),500)}},{key:"pullFromAddressBar",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.location,e="history"===this.urlMode?t.pathname.substr(this.urlHistoryBasePath.length)+t.search:t.hash.substr(1);this.urlState=this.urlStringToUrlState(e)}}],e&&a(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}();function l(t){return l="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},l(t)}function c(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,h(n.key),n)}}function h(t){var e=function(t,e){if("object"!=l(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=l(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==l(e)?e:e+""}function f(t,e,r){return e=m(e),function(t,e){if(e&&("object"==l(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,p()?Reflect.construct(e,r||[],m(t).constructor):e.apply(t,r))}function p(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(p=function(){return!!t})()}function d(){return d="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,e,r){var n=function(t,e){for(;!{}.hasOwnProperty.call(t,e)&&null!==(t=m(t)););return t}(t,e);if(n){var o=Object.getOwnPropertyDescriptor(n,e);return o.get?o.get.call(arguments.length<3?t:r):o.value}},d.apply(null,arguments)}function m(t){return m=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},m(t)}function g(t,e){return g=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},g(t,e)}r(1669).extend(BookReader.defaultOptions,{enableUrlPlugin:!0,bookId:"",defaults:null,updateWindowTitle:!1,urlMode:"hash",urlHistoryBasePath:"/",urlTrackedParams:["page","search","mode","region","highlight","view"],urlTrackIndex0:!1}),BookReader.prototype.setup=(s=BookReader.prototype.setup,function(t){s.call(this,t),this.bookId=t.bookId,this.defaults=t.defaults,this.locationPollId=null,this.oldLocationHash=null,this.oldUserHash=null}),BookReader.prototype.init=function(t){return function(){var e=this;this.options.enableUrlPlugin&&(this.bind(BookReader.eventNames.PostInit,(function(){var t=e.options,r=t.updateWindowTitle,n=t.urlMode;r&&(document.title=e.shortTitle(e.bookTitle,50)),"hash"===n&&e.urlStartLocationPolling()})),this.bind(BookReader.eventNames.fragmentChange,this.urlUpdateFragment.bind(this))),t.call(this)}}(BookReader.prototype.init),BookReader.prototype.shortTitle=function(t){return this.bookTitle.length<t?this.bookTitle:"".concat(this.bookTitle.substr(0,t-3),"...")},BookReader.prototype.urlStartLocationPolling=function(){var t=this;this.oldLocationHash=this.urlReadFragment(),this.locationPollId&&(clearInterval(this.locationPollId),this.locationPollId=null),this.locationPollId=setInterval((function(){var e=t.urlReadFragment();if(e!=t.oldLocationHash&&e!=t.oldUserHash){var r,n=t.paramsFromFragment(e),o=function(){return t.updateFromParams(n)};t.trigger(BookReader.eventNames.stop),t.animating?(null===(r=t.plugins.autoplay)||void 0===r||r.stop(),t.animationFinishedCallback=o):o(),t.oldUserHash=e}}),500)},BookReader.prototype.urlUpdateFragment=function(){var t=this.paramsFromCurrent(),e=this.options,r=e.urlTrackIndex0,n=e.urlTrackedParams;r||void 0===t.index||0!==t.index||(delete t.index,delete t.page);var o=n.reduce((function(e,r){return r in t&&(e[r]=t[r]),e}),{}),a=this.fragmentFromParams(o,this.options.urlMode),i=this.urlReadFragment(),s=this.getLocationSearch(),u=this.queryStringFromParams(o,s,this.options.urlMode);if(i!==a||s!==u){if("history"===this.options.urlMode)if(window.history&&window.history.replaceState){var l=this.options.urlHistoryBasePath.replace(/\/+$/,""),c=""===a?"":"/".concat(a),h="".concat(l).concat(c).concat(u);try{window.history.replaceState({},null,h),this.oldLocationHash=a+u}catch(t){this.options.urlMode="hash"}}else this.options.urlMode="hash";if("hash"===this.options.urlMode){var f=this.urlParamsFiltersOnlySearch(this.readQueryString());window.location.replace("#"+a+f),this.oldLocationHash=a+f}}},BookReader.prototype.urlParamsFiltersOnlySearch=function(t){var e=new URLSearchParams(t);return e.has("q")?"?".concat(new URLSearchParams({q:e.get("q")})):""},BookReader.prototype.urlReadFragment=function(){var t=this.options,e=t.urlMode,r=t.urlHistoryBasePath;return"history"===e?window.location.pathname.substr(r.length):window.location.hash.substr(1)},BookReader.prototype.urlReadHashFragment=function(){return window.location.hash.substr(1)};var v=function(t){function e(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),f(this,e,arguments)}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&g(t,e)}(e,BookReader),r=e,n=[{key:"init",value:function(){var t,r,n,o=this;this.options.enableUrlPlugin&&(this.urlPlugin=new u(this.options),this.bind(BookReader.eventNames.PostInit,(function(){"hash"===o.options.urlMode&&o.urlPlugin.listenForHashChanges()}))),(t=e,r=this,"function"==typeof(n=d(m(1&3?t.prototype:t),"init",r))?function(t){return n.apply(r,t)}:n)([])}}],n&&c(r.prototype,n),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n}();window.BookReader=v}},function(t){t(t.s=5857)}]);
|
2
|
-
//# sourceMappingURL=plugin.url.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"plugins/plugin.url.js","mappings":"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","sources":["webpack://@internetarchive/bookreader/./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack://@internetarchive/bookreader/./node_modules/core-js/internals/string-trim-forced.js","webpack://@internetarchive/bookreader/./node_modules/core-js/modules/es.object.from-entries.js","webpack://@internetarchive/bookreader/./node_modules/core-js/modules/es.string.trim.js","webpack://@internetarchive/bookreader/./node_modules/core-js/modules/web.url.constructor.js","webpack://@internetarchive/bookreader/./node_modules/core-js/modules/web.url.js","webpack://@internetarchive/bookreader/./node_modules/core-js/modules/web.url.to-json.js","webpack://@internetarchive/bookreader/./src/plugins/url/UrlPlugin.js","webpack://@internetarchive/bookreader/./src/plugins/url/plugin.url.js"],"sourcesContent":["'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar $RangeError = RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = charCodeAt(string, counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = charCodeAt(string, counter++);\n if ((extra & 0xFC00) === 0xDC00) { // Low surrogate.\n push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n push(output, value);\n counter--;\n }\n } else {\n push(output, value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n while (delta > baseMinusTMin * tMax >> 1) {\n delta = floor(delta / baseMinusTMin);\n k += base;\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n push(output, fromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n push(output, delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw new $RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw new $RangeError(OVERFLOW_ERROR);\n }\n if (currentValue === n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n var k = base;\n while (true) {\n var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n k += base;\n }\n\n push(output, fromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n delta = 0;\n handledCPCount++;\n }\n }\n\n delta++;\n n++;\n }\n return join(output, '');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n }\n return join(encoded, '.');\n};\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://github.com/tc39/proposal-object-from-entries\n$({ target: 'Object', stat: true }, {\n fromEntries: function fromEntries(iterable) {\n var obj = {};\n iterate(iterable, function (k, v) {\n createProperty(obj, k, v);\n }, { AS_ENTRIES: true });\n return obj;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar globalThis = require('../internals/global-this');\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar URLSearchParamsModule = require('../modules/web.url-search-params.constructor');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = globalThis.URL;\nvar TypeError = globalThis.TypeError;\nvar parseInt = globalThis.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.0.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+/;\nvar TRAILING_C0_CONTROL_OR_SPACE = /(^|[^\\u0000-\\u0020])[\\u0000-\\u0020]+$/;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\nvar EOF;\n\n// https://url.spec.whatwg.org/#ipv4-number-parser\nvar parseIPv4 = function (input) {\n var parts = split(input, '.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] === '') {\n parts.length--;\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part === '') return input;\n radix = 10;\n if (part.length > 1 && charAt(part, 0) === '0') {\n radix = exec(HEX_START, part) ? 16 : 8;\n part = stringSlice(part, radix === 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!exec(radix === 10 ? DEC : radix === 8 ? OCT : HEX, part)) return input;\n number = parseInt(part, radix);\n }\n push(numbers, number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index === partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = pop(numbers);\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv6-parser\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var chr = function () {\n return charAt(input, pointer);\n };\n\n if (chr() === ':') {\n if (charAt(input, 1) !== ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (chr()) {\n if (pieceIndex === 8) return;\n if (chr() === ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && exec(HEX, chr())) {\n value = value * 16 + parseInt(chr(), 16);\n pointer++;\n length++;\n }\n if (chr() === '.') {\n if (length === 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (chr()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (chr() === '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!exec(DIGIT, chr())) return;\n while (exec(DIGIT, chr())) {\n number = parseInt(chr(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece === 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen === 2 || numbersSeen === 4) pieceIndex++;\n }\n if (numbersSeen !== 4) return;\n break;\n } else if (chr() === ':') {\n pointer++;\n if (!chr()) return;\n } else if (chr()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex !== 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex !== 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n return currLength > maxLength ? currStart : maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n unshift(result, host % 256);\n host = floor(host / 256);\n }\n return join(result, '.');\n }\n\n // ipv6\n if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += numberToString(host[index], 16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n }\n\n return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n var code = codeAt(chr, 0);\n return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);\n};\n\n// https://url.spec.whatwg.org/#special-scheme\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\n// https://url.spec.whatwg.org/#windows-drive-letter\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length === 2 && exec(ALPHA, charAt(string, 0))\n && ((second = charAt(string, 1)) === ':' || (!normalized && second === '|'));\n};\n\n// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n string.length === 2 ||\n ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\n// https://url.spec.whatwg.org/#single-dot-path-segment\nvar isSingleDot = function (segment) {\n return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\n// https://url.spec.whatwg.org/#double-dot-path-segment\nvar isDoubleDot = function (segment) {\n segment = toLowerCase(segment);\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\nvar URLState = function (url, isBase, base) {\n var urlString = $toString(url);\n var baseState, failure, searchParams;\n if (isBase) {\n failure = this.parse(urlString);\n if (failure) throw new TypeError(failure);\n this.searchParams = null;\n } else {\n if (base !== undefined) baseState = new URLState(base, true);\n failure = this.parse(urlString, null, baseState);\n if (failure) throw new TypeError(failure);\n searchParams = getInternalSearchParamsState(new URLSearchParams());\n searchParams.bindURL(this);\n this.searchParams = searchParams;\n }\n};\n\nURLState.prototype = {\n type: 'URL',\n // https://url.spec.whatwg.org/#url-parsing\n // eslint-disable-next-line max-statements -- TODO\n parse: function (input, stateOverride, base) {\n var url = this;\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, chr, bufferCodePoints, failure;\n\n input = $toString(input);\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = replace(input, LEADING_C0_CONTROL_OR_SPACE, '');\n input = replace(input, TRAILING_C0_CONTROL_OR_SPACE, '$1');\n }\n\n input = replace(input, TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n chr = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (chr && exec(ALPHA, chr)) {\n buffer += toLowerCase(chr);\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (chr && (exec(ALPHANUMERIC, chr) || chr === '+' || chr === '-' || chr === '.')) {\n buffer += toLowerCase(chr);\n } else if (chr === ':') {\n if (stateOverride && (\n (url.isSpecial() !== hasOwn(specialSchemes, buffer)) ||\n (buffer === 'file' && (url.includesCredentials() || url.port !== null)) ||\n (url.scheme === 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (url.isSpecial() && specialSchemes[url.scheme] === url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme === 'file') {\n state = FILE;\n } else if (url.isSpecial() && base && base.scheme === url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (url.isSpecial()) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] === '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n push(url.path, '');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && chr !== '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && chr === '#') {\n url.scheme = base.scheme;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme === 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (chr === '/' && codePoints[pointer + 1] === '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (chr === '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (chr === EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr === '/' || (chr === '\\\\' && url.isSpecial())) {\n state = RELATIVE_SLASH;\n } else if (chr === '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.path.length--;\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (url.isSpecial() && (chr === '/' || chr === '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (chr === '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (chr !== '/' || charAt(buffer, pointer + 1) !== '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (chr !== '/' && chr !== '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (chr === '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint === ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial())\n ) {\n if (seenAt && buffer === '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += chr;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme === 'file') {\n state = FILE_HOST;\n continue;\n } else if (chr === ':' && !seenBracket) {\n if (buffer === '') return INVALID_HOST;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride === HOSTNAME) return;\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial())\n ) {\n if (url.isSpecial() && buffer === '') return INVALID_HOST;\n if (stateOverride && buffer === '' && (url.includesCredentials() || url.port !== null)) return;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (chr === '[') seenBracket = true;\n else if (chr === ']') seenBracket = false;\n buffer += chr;\n } break;\n\n case PORT:\n if (exec(DIGIT, chr)) {\n buffer += chr;\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial()) ||\n stateOverride\n ) {\n if (buffer !== '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (chr === '/' || chr === '\\\\') state = FILE_SLASH;\n else if (base && base.scheme === 'file') {\n switch (chr) {\n case EOF:\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n break;\n case '?':\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n break;\n case '#':\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n break;\n default:\n if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.shortenPath();\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (chr === '/' || chr === '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme === 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (chr === EOF || chr === '/' || chr === '\\\\' || chr === '?' || chr === '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer === '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = url.parseHost(buffer);\n if (failure) return failure;\n if (url.host === 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += chr;\n break;\n\n case PATH_START:\n if (url.isSpecial()) {\n state = PATH;\n if (chr !== '/' && chr !== '\\\\') continue;\n } else if (!stateOverride && chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n state = PATH;\n if (chr !== '/') continue;\n } break;\n\n case PATH:\n if (\n chr === EOF || chr === '/' ||\n (chr === '\\\\' && url.isSpecial()) ||\n (!stateOverride && (chr === '?' || chr === '#'))\n ) {\n if (isDoubleDot(buffer)) {\n url.shortenPath();\n if (chr !== '/' && !(chr === '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else if (isSingleDot(buffer)) {\n if (chr !== '/' && !(chr === '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else {\n if (url.scheme === 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n }\n push(url.path, buffer);\n }\n buffer = '';\n if (url.scheme === 'file' && (chr === EOF || chr === '?' || chr === '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n shift(url.path);\n }\n }\n if (chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(chr, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n if (chr === \"'\" && url.isSpecial()) url.query += '%27';\n else if (chr === '#') url.query += '%23';\n else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (chr !== EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n },\n // https://url.spec.whatwg.org/#host-parsing\n parseHost: function (input) {\n var result, codePoints, index;\n if (charAt(input, 0) === '[') {\n if (charAt(input, input.length - 1) !== ']') return INVALID_HOST;\n result = parseIPv6(stringSlice(input, 1, -1));\n if (!result) return INVALID_HOST;\n this.host = result;\n // opaque host\n } else if (!this.isSpecial()) {\n if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n this.host = result;\n } else {\n input = toASCII(input);\n if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n this.host = result;\n }\n },\n // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n cannotHaveUsernamePasswordPort: function () {\n return !this.host || this.cannotBeABaseURL || this.scheme === 'file';\n },\n // https://url.spec.whatwg.org/#include-credentials\n includesCredentials: function () {\n return this.username !== '' || this.password !== '';\n },\n // https://url.spec.whatwg.org/#is-special\n isSpecial: function () {\n return hasOwn(specialSchemes, this.scheme);\n },\n // https://url.spec.whatwg.org/#shorten-a-urls-path\n shortenPath: function () {\n var path = this.path;\n var pathSize = path.length;\n if (pathSize && (this.scheme !== 'file' || pathSize !== 1 || !isWindowsDriveLetter(path[0], true))) {\n path.length--;\n }\n },\n // https://url.spec.whatwg.org/#concept-url-serializer\n serialize: function () {\n var url = this;\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (url.includesCredentials()) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme === 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n },\n // https://url.spec.whatwg.org/#dom-url-href\n setHref: function (href) {\n var failure = this.parse(href);\n if (failure) throw new TypeError(failure);\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-origin\n getOrigin: function () {\n var scheme = this.scheme;\n var port = this.port;\n if (scheme === 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme === 'file' || !this.isSpecial()) return 'null';\n return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : '');\n },\n // https://url.spec.whatwg.org/#dom-url-protocol\n getProtocol: function () {\n return this.scheme + ':';\n },\n setProtocol: function (protocol) {\n this.parse($toString(protocol) + ':', SCHEME_START);\n },\n // https://url.spec.whatwg.org/#dom-url-username\n getUsername: function () {\n return this.username;\n },\n setUsername: function (username) {\n var codePoints = arrayFrom($toString(username));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-password\n getPassword: function () {\n return this.password;\n },\n setPassword: function (password) {\n var codePoints = arrayFrom($toString(password));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-host\n getHost: function () {\n var host = this.host;\n var port = this.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n },\n setHost: function (host) {\n if (this.cannotBeABaseURL) return;\n this.parse(host, HOST);\n },\n // https://url.spec.whatwg.org/#dom-url-hostname\n getHostname: function () {\n var host = this.host;\n return host === null ? '' : serializeHost(host);\n },\n setHostname: function (hostname) {\n if (this.cannotBeABaseURL) return;\n this.parse(hostname, HOSTNAME);\n },\n // https://url.spec.whatwg.org/#dom-url-port\n getPort: function () {\n var port = this.port;\n return port === null ? '' : $toString(port);\n },\n setPort: function (port) {\n if (this.cannotHaveUsernamePasswordPort()) return;\n port = $toString(port);\n if (port === '') this.port = null;\n else this.parse(port, PORT);\n },\n // https://url.spec.whatwg.org/#dom-url-pathname\n getPathname: function () {\n var path = this.path;\n return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n },\n setPathname: function (pathname) {\n if (this.cannotBeABaseURL) return;\n this.path = [];\n this.parse(pathname, PATH_START);\n },\n // https://url.spec.whatwg.org/#dom-url-search\n getSearch: function () {\n var query = this.query;\n return query ? '?' + query : '';\n },\n setSearch: function (search) {\n search = $toString(search);\n if (search === '') {\n this.query = null;\n } else {\n if (charAt(search, 0) === '?') search = stringSlice(search, 1);\n this.query = '';\n this.parse(search, QUERY);\n }\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-searchparams\n getSearchParams: function () {\n return this.searchParams.facade;\n },\n // https://url.spec.whatwg.org/#dom-url-hash\n getHash: function () {\n var fragment = this.fragment;\n return fragment ? '#' + fragment : '';\n },\n setHash: function (hash) {\n hash = $toString(hash);\n if (hash === '') {\n this.fragment = null;\n return;\n }\n if (charAt(hash, 0) === '#') hash = stringSlice(hash, 1);\n this.fragment = '';\n this.parse(hash, FRAGMENT);\n },\n update: function () {\n this.query = this.searchParams.serialize() || null;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLPrototype);\n var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined;\n var state = setInternalState(that, new URLState(url, false, base));\n if (!DESCRIPTORS) {\n that.href = state.serialize();\n that.origin = state.getOrigin();\n that.protocol = state.getProtocol();\n that.username = state.getUsername();\n that.password = state.getPassword();\n that.host = state.getHost();\n that.hostname = state.getHostname();\n that.port = state.getPort();\n that.pathname = state.getPathname();\n that.search = state.getSearch();\n that.searchParams = state.getSearchParams();\n that.hash = state.getHash();\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar accessorDescriptor = function (getter, setter) {\n return {\n get: function () {\n return getInternalURLState(this)[getter]();\n },\n set: setter && function (value) {\n return getInternalURLState(this)[setter](value);\n },\n configurable: true,\n enumerable: true\n };\n};\n\nif (DESCRIPTORS) {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref'));\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin'));\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol'));\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername'));\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword'));\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost'));\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname'));\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort'));\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname'));\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch'));\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams'));\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash'));\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\ndefineBuiltIn(URLPrototype, 'toJSON', function toJSON() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\ndefineBuiltIn(URLPrototype, 'toString', function toString() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n if (nativeCreateObjectURL) defineBuiltIn(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n if (nativeRevokeObjectURL) defineBuiltIn(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\n$({ target: 'URL', proto: true, enumerable: true }, {\n toJSON: function toJSON() {\n return call(URL.prototype.toString, this);\n }\n});\n","export class UrlPlugin {\n constructor(options = {}) {\n this.bookReaderOptions = options;\n\n // the canonical order of elements is important in the path and query string\n this.urlSchema = [\n { name: 'page', position: 'path', default: 'n0' },\n { name: 'mode', position: 'path', default: '2up' },\n { name: 'search', position: 'path', deprecated_for: 'q' },\n { name: 'q', position: 'query_param' },\n { name: 'sort', position: 'query_param' },\n { name: 'view', position: 'query_param' },\n { name: 'admin', position: 'query_param' },\n ];\n\n this.urlState = {};\n this.urlMode = this.bookReaderOptions.urlMode || 'hash';\n this.urlHistoryBasePath = this.bookReaderOptions.urlHistoryBasePath || '/';\n this.urlLocationPollId = null;\n this.oldLocationHash = null;\n this.oldUserHash = null;\n }\n\n /**\n * Parse JSON object URL state to string format\n * Arrange path names in an order that it is positioned on the urlSchema\n * @param {Object} urlState\n * @returns {string}\n */\n urlStateToUrlString(urlState) {\n const searchParams = new URLSearchParams();\n const pathParams = {};\n\n Object.keys(urlState).forEach(key => {\n let schema = this.urlSchema.find(schema => schema.name === key);\n if (schema?.deprecated_for) {\n schema = this.urlSchema.find(schemaKey => schemaKey.name === schema.deprecated_for);\n }\n if (schema?.position == 'path') {\n pathParams[schema?.name] = urlState[key];\n } else {\n searchParams.append(schema?.name || key, urlState[key]);\n }\n });\n\n const strPathParams = this.urlSchema\n .filter(s => s.position == 'path')\n .map(schema => pathParams[schema.name] ? `${schema.name}/${encodeURIComponent(pathParams[schema.name])}` : '')\n .join('/');\n\n // replace consecutive slashes with a single slash + remove trailing slashes\n const strStrippedTrailingSlash = `${strPathParams.replace(/\\/+/g, '/').replace(/\\/+$/, '')}`;\n const concatenatedPath = `${strStrippedTrailingSlash}?${searchParams.toString()}`;\n return searchParams.toString() ? concatenatedPath : `${strStrippedTrailingSlash}`;\n }\n\n /**\n * Parse string URL and add it in the current urlState\n * Example:\n * /page/n7/mode/2up => {page: 'n7', mode: '2up'}\n * /page/n7/mode/2up/search/hello => {page: 'n7', mode: '2up', q: 'hello'}\n * @param {string} urlString\n * @returns {object}\n */\n urlStringToUrlState(urlString) {\n const urlState = {};\n\n // Fetch searchParams from given {str}\n // Note: whole URL path is needed for URL parsing\n const urlPath = new URL(urlString, 'http://example.com');\n const urlSearchParamsObj = Object.fromEntries(urlPath.searchParams.entries());\n const splitUrlMatches = urlPath.pathname.match(/[^\\\\/]+\\/[^\\\\/]+/g);\n const urlStrSplitSlashObj = splitUrlMatches ? Object.fromEntries(splitUrlMatches.map(x => x.split('/'))) : {};\n\n const doesKeyExists = (_object, _key) => {\n return Object.keys(_object).some(value => value == _key);\n };\n\n // Add path objects to urlState\n this.urlSchema\n .filter(schema => schema.position == 'path')\n .forEach(schema => {\n const hasPropertyKey = doesKeyExists(urlStrSplitSlashObj, schema.name);\n const hasDeprecatedKey = doesKeyExists(schema, 'deprecated_for') && hasPropertyKey;\n\n // Not in the URL\n if (!hasPropertyKey && !hasDeprecatedKey) {\n return;\n }\n\n const urlStateParam = hasDeprecatedKey ? schema.deprecated_for : schema.name;\n urlState[urlStateParam] = decodeURIComponent(urlStrSplitSlashObj[schema.name]);\n });\n\n // Add searchParams to urlState\n Object.entries(urlSearchParamsObj).forEach(([key, value]) => {\n urlState[key] = value;\n });\n\n return urlState;\n }\n\n /**\n * Add or update key-value to the urlState\n * @param {string} key\n * @param {string} val\n */\n setUrlParam(key, value) {\n this.urlState[key] = value;\n\n this.pushToAddressBar();\n }\n\n /**\n * Delete key-value to the urlState\n * @param {string} key\n */\n removeUrlParam(key) {\n delete this.urlState[key];\n\n this.pushToAddressBar();\n }\n\n /**\n * Get key-value from the urlState\n * @param {string} key\n * @return {string}\n */\n getUrlParam(key) {\n return this.urlState[key];\n }\n\n /**\n * Push URL params to addressbar\n */\n pushToAddressBar() {\n const urlStrPath = this.urlStateToUrlString(this.urlState);\n const concatenatedPath = urlStrPath !== '/' ? urlStrPath : '';\n if (this.urlMode == 'history') {\n if (!window.history || !window.history.replaceState) {\n this.options.urlMode = 'hash';\n } else {\n const newUrlPath = `${this.urlHistoryBasePath}${concatenatedPath}`.trim().replace(/(\\/+)/g, '/');\n try {\n window.history.replaceState({}, null, newUrlPath);\n } catch (e) {\n // DOMException on Chrome when in sandboxed iframe\n this.urlMode = 'hash';\n }\n }\n }\n\n if (this.urlMode == 'hash') {\n window.location.replace('#' + concatenatedPath);\n }\n this.oldLocationHash = urlStrPath;\n }\n\n /**\n * Get the url and check if it has changed\n * If it was changeed, update the urlState\n */\n listenForHashChanges() {\n this.oldLocationHash = window.location.hash.substr(1);\n if (this.urlLocationPollId) {\n clearInterval(this.urlLocationPollId);\n this.urlLocationPollId = null;\n }\n\n // check if the URL changes\n const updateHash = () => {\n const newFragment = window.location.hash.substr(1);\n const hasFragmentChange = newFragment != this.oldLocationHash;\n\n if (!hasFragmentChange) { return; }\n\n this.urlState = this.urlStringToUrlState(newFragment);\n };\n this.urlLocationPollId = setInterval(updateHash, 500);\n }\n\n /**\n * Will read either the hash or URL and return the bookreader fragment\n */\n pullFromAddressBar (location = window.location) {\n const path = this.urlMode === 'history'\n ? (location.pathname.substr(this.urlHistoryBasePath.length) + location.search)\n : location.hash.substr(1);\n this.urlState = this.urlStringToUrlState(path);\n }\n}\n","/* global BookReader */\n\nimport { UrlPlugin } from \"./UrlPlugin.js\";\n\n/**\n * Plugin for URL management in BookReader\n * Note read more about the url \"fragment\" here:\n * https://openlibrary.org/dev/docs/bookurls\n */\n\njQuery.extend(BookReader.defaultOptions, {\n enableUrlPlugin: true,\n bookId: '',\n /** @type {string} Defaults can be a urlFragment string */\n defaults: null,\n updateWindowTitle: false,\n\n /** @type {'history' | 'hash'} */\n urlMode: 'hash',\n\n /**\n * When using 'history' mode, this part of the URL is kept constant\n * @example /details/plato/\n */\n urlHistoryBasePath: '/',\n\n /** Only these params will be reflected onto the URL */\n urlTrackedParams: ['page', 'search', 'mode', 'region', 'highlight', 'view'],\n\n /** If true, don't update the URL when `page == n0 (eg \"/page/n0\")` */\n urlTrackIndex0: false,\n});\n\n/** @override */\nBookReader.prototype.setup = (function(super_) {\n return function(options) {\n super_.call(this, options);\n\n this.bookId = options.bookId;\n this.defaults = options.defaults;\n\n this.locationPollId = null;\n this.oldLocationHash = null;\n this.oldUserHash = null;\n };\n})(BookReader.prototype.setup);\n\n/** @override */\nBookReader.prototype.init = (function(super_) {\n return function() {\n\n if (this.options.enableUrlPlugin) {\n this.bind(BookReader.eventNames.PostInit, () => {\n const { updateWindowTitle, urlMode } = this.options;\n if (updateWindowTitle) {\n document.title = this.shortTitle(this.bookTitle, 50);\n }\n if (urlMode === 'hash') {\n this.urlStartLocationPolling();\n }\n });\n\n this.bind(BookReader.eventNames.fragmentChange,\n this.urlUpdateFragment.bind(this),\n );\n }\n super_.call(this);\n };\n})(BookReader.prototype.init);\n\n/**\n * Returns a shortened version of the title with the maximum number of characters\n * @param {number} maximumCharacters\n * @return {string}\n */\nBookReader.prototype.shortTitle = function(maximumCharacters) {\n if (this.bookTitle.length < maximumCharacters) {\n return this.bookTitle;\n }\n\n const title = `${this.bookTitle.substr(0, maximumCharacters - 3)}...`;\n return title;\n};\n\n/**\n * Starts polling of window.location to see hash fragment changes\n */\nBookReader.prototype.urlStartLocationPolling = function() {\n this.oldLocationHash = this.urlReadFragment();\n\n if (this.locationPollId) {\n clearInterval(this.locationPollId);\n this.locationPollId = null;\n }\n\n const updateHash = () => {\n const newFragment = this.urlReadFragment();\n const hasFragmentChange = (newFragment != this.oldLocationHash) && (newFragment != this.oldUserHash);\n\n if (!hasFragmentChange) { return; }\n\n const params = this.paramsFromFragment(newFragment);\n\n const updateParams = () => this.updateFromParams(params);\n\n this.trigger(BookReader.eventNames.stop);\n if (this.animating) {\n // Queue change if animating\n this.plugins.autoplay?.stop();\n this.animationFinishedCallback = updateParams;\n } else {\n // update immediately\n updateParams();\n }\n this.oldUserHash = newFragment;\n };\n\n this.locationPollId = setInterval(updateHash, 500);\n};\n\n/**\n * Update URL from the current parameters.\n * Call this instead of manually using window.location.replace\n */\nBookReader.prototype.urlUpdateFragment = function() {\n const allParams = this.paramsFromCurrent();\n const { urlTrackIndex0, urlTrackedParams } = this.options;\n\n if (!urlTrackIndex0\n && (typeof(allParams.index) !== 'undefined')\n && allParams.index === 0) {\n delete allParams.index;\n delete allParams.page;\n }\n\n const params = urlTrackedParams.reduce((validParams, paramName) => {\n if (paramName in allParams) {\n validParams[paramName] = allParams[paramName];\n }\n return validParams;\n }, {});\n\n const newFragment = this.fragmentFromParams(params, this.options.urlMode);\n const currFragment = this.urlReadFragment();\n const currQueryString = this.getLocationSearch();\n const newQueryString = this.queryStringFromParams(params, currQueryString, this.options.urlMode);\n if (currFragment === newFragment && currQueryString === newQueryString) {\n return;\n }\n\n if (this.options.urlMode === 'history') {\n if (!window.history || !window.history.replaceState) {\n this.options.urlMode = 'hash';\n } else {\n const baseWithoutSlash = this.options.urlHistoryBasePath.replace(/\\/+$/, '');\n const newFragmentWithSlash = newFragment === '' ? '' : `/${newFragment}`;\n\n const newUrlPath = `${baseWithoutSlash}${newFragmentWithSlash}${newQueryString}`;\n try {\n window.history.replaceState({}, null, newUrlPath);\n this.oldLocationHash = newFragment + newQueryString;\n } catch (e) {\n // DOMException on Chrome when in sandboxed iframe\n this.options.urlMode = 'hash';\n }\n }\n }\n\n if (this.options.urlMode === 'hash') {\n const newQueryStringSearch = this.urlParamsFiltersOnlySearch(this.readQueryString());\n window.location.replace('#' + newFragment + newQueryStringSearch);\n this.oldLocationHash = newFragment + newQueryStringSearch;\n }\n};\n\n/**\n * @private\n * Filtering query parameters to select only book search param (?q=foo)\n This needs to be updated/URL system modified if future query params are to be added\n * @param {string} url\n * @return {string}\n * */\nBookReader.prototype.urlParamsFiltersOnlySearch = function(url) {\n const params = new URLSearchParams(url);\n return params.has('q') ? `?${new URLSearchParams({ q: params.get('q') })}` : '';\n};\n\n\n/**\n * Will read either the hash or URL and return the bookreader fragment\n * @return {string}\n */\nBookReader.prototype.urlReadFragment = function() {\n const { urlMode, urlHistoryBasePath } = this.options;\n if (urlMode === 'history') {\n return window.location.pathname.substr(urlHistoryBasePath.length);\n } else {\n return window.location.hash.substr(1);\n }\n};\n\n/**\n * Will read the hash return the bookreader fragment\n * @return {string}\n */\nBookReader.prototype.urlReadHashFragment = function() {\n return window.location.hash.substr(1);\n};\nexport class BookreaderUrlPlugin extends BookReader {\n init() {\n if (this.options.enableUrlPlugin) {\n this.urlPlugin = new UrlPlugin(this.options);\n this.bind(BookReader.eventNames.PostInit, () => {\n const { urlMode } = this.options;\n\n if (urlMode === 'hash') {\n this.urlPlugin.listenForHashChanges();\n }\n });\n }\n\n super.init();\n }\n}\n\nwindow.BookReader = BookreaderUrlPlugin;\nexport default BookreaderUrlPlugin;\n"],"names":["uncurryThis","maxInt","regexNonASCII","regexSeparators","OVERFLOW_ERROR","$RangeError","RangeError","exec","floor","Math","fromCharCode","String","charCodeAt","join","push","replace","split","toLowerCase","digitToBasic","digit","adapt","delta","numPoints","firstTime","k","baseMinusTMin","base","encode","input","output","string","counter","length","value","extra","ucs2decode","i","currentValue","inputLength","n","bias","basicLength","handledCPCount","m","handledCPCountPlusOne","q","t","qMinusT","baseMinusT","module","exports","label","encoded","labels","PROPER_FUNCTION_NAME","fails","whitespaces","METHOD_NAME","name","$","iterate","createProperty","target","stat","fromEntries","iterable","obj","v","AS_ENTRIES","$trim","proto","forced","forcedStringTrimMethod","trim","this","EOF","DESCRIPTORS","USE_NATIVE_URL","globalThis","bind","defineBuiltIn","defineBuiltInAccessor","anInstance","hasOwn","assign","arrayFrom","arraySlice","codeAt","toASCII","$toString","setToStringTag","validateArgumentsLength","URLSearchParamsModule","InternalStateModule","setInternalState","set","getInternalURLState","getterFor","URLSearchParams","getInternalSearchParamsState","getState","NativeURL","URL","TypeError","parseInt","pow","charAt","numberToString","toString","pop","shift","stringSlice","slice","unshift","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_C0_CONTROL_OR_SPACE","TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","serializeHost","host","result","index","compress","ignore0","ipv6","maxIndex","maxLength","currStart","currLength","findLongestZeroSequence","C0ControlPercentEncodeSet","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","percentEncode","chr","code","encodeURIComponent","specialSchemes","ftp","file","http","https","ws","wss","isWindowsDriveLetter","normalized","second","startsWithWindowsDriveLetter","third","isSingleDot","segment","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","URLState","url","isBase","baseState","failure","searchParams","urlString","parse","undefined","bindURL","prototype","type","stateOverride","codePoints","bufferCodePoints","state","pointer","buffer","seenAt","seenBracket","seenPasswordToken","scheme","username","password","port","path","query","fragment","cannotBeABaseURL","isSpecial","includesCredentials","codePoint","encodedCodePoints","parseHost","shortenPath","numbersSeen","ipv4Piece","number","swaps","swap","address","pieceIndex","parseIPv6","partsLength","numbers","part","radix","ipv4","parts","parseIPv4","cannotHaveUsernamePasswordPort","pathSize","serialize","setHref","href","update","getOrigin","URLConstructor","origin","error","getProtocol","setProtocol","protocol","getUsername","setUsername","getPassword","setPassword","getHost","setHost","getHostname","setHostname","hostname","getPort","setPort","getPathname","setPathname","pathname","getSearch","setSearch","search","getSearchParams","facade","getHash","setHash","hash","that","URLPrototype","arguments","accessorDescriptor","getter","setter","get","configurable","enumerable","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","global","constructor","sham","call","toJSON","super_","UrlPlugin","options","_classCallCheck","bookReaderOptions","urlSchema","position","default","deprecated_for","urlState","urlMode","urlHistoryBasePath","urlLocationPollId","oldLocationHash","oldUserHash","key","_this","pathParams","Object","keys","forEach","_schema","_schema2","_schema3","_schema4","schema","find","schemaKey","append","strPathParams","filter","s","map","concat","strStrippedTrailingSlash","concatenatedPath","urlPath","urlSearchParamsObj","entries","splitUrlMatches","match","urlStrSplitSlashObj","x","doesKeyExists","_object","_key","some","hasPropertyKey","hasDeprecatedKey","urlStateParam","decodeURIComponent","_ref","_ref2","_slicedToArray","pushToAddressBar","urlStrPath","urlStateToUrlString","window","history","replaceState","newUrlPath","e","location","_this2","substr","clearInterval","setInterval","newFragment","urlStringToUrlState","extend","BookReader","defaultOptions","enableUrlPlugin","bookId","defaults","updateWindowTitle","urlTrackedParams","urlTrackIndex0","setup","locationPollId","init","eventNames","PostInit","_this$options","document","title","shortTitle","bookTitle","urlStartLocationPolling","fragmentChange","urlUpdateFragment","maximumCharacters","urlReadFragment","_this2$plugins$autopl","params","paramsFromFragment","updateParams","updateFromParams","trigger","stop","animating","plugins","autoplay","animationFinishedCallback","allParams","paramsFromCurrent","_this$options2","page","reduce","validParams","paramName","fragmentFromParams","currFragment","currQueryString","getLocationSearch","newQueryString","queryStringFromParams","baseWithoutSlash","newFragmentWithSlash","newQueryStringSearch","urlParamsFiltersOnlySearch","readQueryString","has","_this$options3","urlReadHashFragment","BookreaderUrlPlugin","_BookReader","_callSuper","_inherits","_this3","urlPlugin","listenForHashChanges"],"sourceRoot":""}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
"use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[466],{706:function(e,t,n){var o=n(350).PROPER,r=n(9039),i=n(7452);e.exports=function(e){return r((function(){return!!i[e]()||"
"!=="
"[e]()||o&&i[e].name!==e}))}},2762:function(e,t,n){var o=n(6518),r=n(3802).trim;o({target:"String",proto:!0,forced:n(706)("trim")},{trim:function(){return r(this)}})},4976:function(e,t,n){n(8598),n(2762);var o,r=n(1669),i=n(1669);if(!m()){var l=".bookreader_vendor-fullscreen";r.extend(BookReader.defaultOptions,{enableVendorFullscreenPlugin:!0}),BookReader.prototype.setup=(o=BookReader.prototype.setup,function(e){o.call(this,e),this.isVendorFullscreenActive=!1}),BookReader.prototype.getInitialMode=function(e){return function(t){var n=e.call(this,t);return this.isVendorFullscreenActive&&(n=this.constMode1up),n}}(BookReader.prototype.getInitialMode),BookReader.prototype.init=function(e){return function(){e.call(this),d()&&p(this,(function(e){e.data.resize(),e.data.updateBrClasses();var t=i("#cboxOverlay"),n=i("#colorbox");s()?i(u()).append(t).append(n):i(document.body).append(t).append(n)}))}}(BookReader.prototype.init),BookReader.prototype.enterFullWindow=function(){var e=this;this.refs.$brContainer.css("opacity",0),i(window).width()<=this.onePageMinBreakpoint&&this.switchMode(this.constMode1up),this.isVendorFullscreenActive=!0,this.updateBrClasses(),this.resize(),this.jumpToIndex(this.currentIndex()),this.refs.$brContainer.animate({opacity:1},400,"linear"),i(document).on("keyup.".concat(l),(function(t){27===t.keyCode&&e.exitFullScreen()}))},BookReader.prototype.exitFullWindow=function(){this.refs.$brContainer.css("opacity",0),i(document).off("keyup"+l),this.isFullscreenActive=!1,this.updateBrClasses(),this.resize(),this.refs.$brContainer.animate({opacity:1},400,"linear")},BookReader.prototype.isFullscreen=function(){return s()||this.isVendorFullscreenActive},BookReader.prototype.toggleFullscreen=function(){this.isFullscreen()?d()?c():this.exitFullWindow():d()?a(this.refs.$br[0]):this.enterFullWindow()},BookReader.util.isMobile=m,BookReader.util.getFullscreenElement=u,BookReader.util.bindFullscreenChangeListener=p,BookReader.util.fullscreenAllowed=d,BookReader.util.requestFullscreen=a,BookReader.util.exitFullscreen=c,BookReader.util.isFullscreenActive=s}function u(){return document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement}function s(){return null!=u()}function c(){document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.msExitFullscreen&&document.msExitFullscreen()}function a(e){e.requestFullscreen?e.requestFullscreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.msRequestFullscreen&&e.msRequestFullscreen()}function d(){return document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullScreenEnabled}function p(e,t){var n="fullscreenchange ",o=(n+["webkit","moz","ms"].join(n)+n).trim();i(document).on(o,e,t)}function m(){return void 0!==window.orientation||-1!==navigator.userAgent.indexOf("IEMobile")}}},function(e){e(e.s=4976)}]);
|
2
|
-
//# sourceMappingURL=plugin.vendor-fullscreen.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"plugins/plugin.vendor-fullscreen.js","mappings":"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","sources":["webpack://@internetarchive/bookreader/./node_modules/core-js/internals/string-trim-forced.js","webpack://@internetarchive/bookreader/./node_modules/core-js/modules/es.string.trim.js","webpack://@internetarchive/bookreader/./src/plugins/plugin.vendor-fullscreen.js"],"sourcesContent":["'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","/* global BookReader */\n\n/**\n * Toggles browser's native fullscreen mode if available device is not mobile\n */\nif (!isMobile()) {\n const EVENT_NAMESPACE = '.bookreader_vendor-fullscreen';\n\n jQuery.extend(BookReader.defaultOptions, {\n /** @type {boolean} */\n enableVendorFullscreenPlugin: true,\n });\n\n /** @override */\n BookReader.prototype.setup = (function(super_) {\n return function(options) {\n super_.call(this, options);\n\n this.isVendorFullscreenActive = false;\n };\n })(BookReader.prototype.setup);\n\n /** @override */\n BookReader.prototype.getInitialMode = (function(super_) {\n return function(params) {\n let nextMode = super_.call(this, params);\n if (this.isVendorFullscreenActive) {\n nextMode = this.constMode1up;\n }\n return nextMode;\n };\n })(BookReader.prototype.getInitialMode);\n\n /** @override */\n BookReader.prototype.init = (function(super_) {\n return function() {\n super_.call(this);\n\n if (!fullscreenAllowed()) {\n return;\n }\n // In fullscreen mode the colorbox and overlay need to be inside the fullscreen element to display properly.\n bindFullscreenChangeListener(this, (e) => {\n e.data.resize();\n e.data.updateBrClasses();\n const cboxOverlay = $('#cboxOverlay');\n const cbox = $('#colorbox');\n if (isFullscreenActive()) {\n // In full screen mode, the colorbox and overlay need\n // to be children of the fullscreen element to display properly.\n const $fullscreen = $(getFullscreenElement());\n $fullscreen.append(cboxOverlay).append(cbox);\n } else {\n // In non-fullscreen mode, the colorbox and overlay need\n // to be children of the main document body.\n $(document.body).append(cboxOverlay).append(cbox);\n }\n });\n };\n })(BookReader.prototype.init);\n\n /**\n * Start fullscreen mode\n */\n BookReader.prototype.enterFullWindow = function() {\n this.refs.$brContainer.css('opacity', 0);\n\n const windowWidth = $(window).width();\n if (windowWidth <= this.onePageMinBreakpoint) {\n this.switchMode(this.constMode1up);\n }\n\n this.isVendorFullscreenActive = true;\n this.updateBrClasses();\n\n this.resize();\n this.jumpToIndex(this.currentIndex());\n\n this.refs.$brContainer.animate({ opacity: 1 }, 400, 'linear');\n\n $(document).on(`keyup.${EVENT_NAMESPACE}`, e => {\n if (e.keyCode === 27) this.exitFullScreen();\n });\n };\n\n /**\n * Exit from fullscreen mode\n */\n BookReader.prototype.exitFullWindow = function() {\n this.refs.$brContainer.css('opacity', 0);\n\n $(document).off('keyup' + EVENT_NAMESPACE);\n\n this.isFullscreenActive = false;\n this.updateBrClasses();\n\n this.resize();\n this.refs.$brContainer.animate({ opacity: 1 }, 400, 'linear');\n };\n\n /**\n * Returns true if fullscreen mode is enabled\n *\n * @returns {boolean}\n */\n BookReader.prototype.isFullscreen = function() {\n return isFullscreenActive() || this.isVendorFullscreenActive;\n };\n\n /**\n * Toggle screen\n */\n BookReader.prototype.toggleFullscreen = function() {\n if (this.isFullscreen()) {\n if (fullscreenAllowed()) {\n exitFullscreen();\n } else {\n this.exitFullWindow();\n }\n } else {\n if (fullscreenAllowed()) {\n requestFullscreen(this.refs.$br[0]);\n } else {\n this.enterFullWindow();\n }\n }\n };\n\n /** @deprecated */\n BookReader.util.isMobile = isMobile;\n\n /** @deprecated */\n BookReader.util.getFullscreenElement = getFullscreenElement;\n\n /** @deprecated */\n BookReader.util.bindFullscreenChangeListener = bindFullscreenChangeListener;\n\n /** @deprecated */\n BookReader.util.fullscreenAllowed = fullscreenAllowed;\n\n /** @deprecated */\n BookReader.util.requestFullscreen = requestFullscreen;\n\n /** @deprecated */\n BookReader.util.exitFullscreen = exitFullscreen;\n\n /** @deprecated */\n BookReader.util.isFullscreenActive = isFullscreenActive;\n}\n\n\n/**\n * Returns the DOM element being used for fullscreen.\n *\n * @returns {HTMLElement}\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DocumentOrShadowRoot/fullscreenElement\n */\nexport function getFullscreenElement() {\n return document.fullscreenElement ||\n document.webkitFullscreenElement ||\n document.mozFullScreenElement ||\n document.msFullscreenElement;\n}\n\n/**\n * Returns true if the document is in fullscreen mode.\n *\n * @returns {boolean}\n */\nexport function isFullscreenActive() {\n const fullscreenElement = getFullscreenElement();\n return fullscreenElement !== null && fullscreenElement !== undefined;\n}\n\n/**\n * Exits fullscreen mode.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/exitFullscreen\n */\nexport function exitFullscreen() {\n if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n }\n}\n\n/**\n * Requests fullscreen mode for the given element\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullscreen\n */\nexport function requestFullscreen(element) {\n if (element.requestFullscreen) {\n element.requestFullscreen();\n } else if (element.webkitRequestFullscreen) {\n element.webkitRequestFullscreen();\n } else if (element.mozRequestFullScreen) {\n element.mozRequestFullScreen();\n } else if (element.msRequestFullscreen) {\n element.msRequestFullscreen();\n }\n}\n\n/**\n * Returns true if fullscreen mode is allowed on this device and document.\n *\n * @returns {boolean}\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/fullscreenEnabled\n */\nexport function fullscreenAllowed() {\n return (document.fullscreenEnabled ||\n document.webkitFullscreenEnabled ||\n document.mozFullScreenEnabled ||\n document.msFullScreenEnabled);\n}\n\n/**\n * jQuery-style binding to a fullscreenchange event.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/fullscreenchange_event\n */\nexport function bindFullscreenChangeListener(\n data, fullscreenchangeListener,\n) {\n const event = 'fullscreenchange ';\n const vendor_prefixes = [\n 'webkit',\n 'moz',\n 'ms',\n ];\n const all_events = (event + vendor_prefixes.join(event) + event).trim();\n $(document).on(all_events, data, fullscreenchangeListener);\n}\n\n/**\n * Returns true if current device is mobile\n *\n * @returns {boolean}\n */\nexport function isMobile() {\n return (typeof window.orientation !== 'undefined') || (navigator.userAgent.indexOf('IEMobile') !== -1);\n}\n"],"names":["PROPER_FUNCTION_NAME","fails","whitespaces","module","exports","METHOD_NAME","name","$","$trim","target","proto","forced","forcedStringTrimMethod","trim","this","super_","isMobile","EVENT_NAMESPACE","jQuery","extend","BookReader","defaultOptions","enableVendorFullscreenPlugin","prototype","setup","options","call","isVendorFullscreenActive","getInitialMode","params","nextMode","constMode1up","init","fullscreenAllowed","bindFullscreenChangeListener","e","data","resize","updateBrClasses","cboxOverlay","cbox","isFullscreenActive","getFullscreenElement","append","document","body","enterFullWindow","_this","refs","$brContainer","css","window","width","onePageMinBreakpoint","switchMode","jumpToIndex","currentIndex","animate","opacity","on","concat","keyCode","exitFullScreen","exitFullWindow","off","isFullscreen","toggleFullscreen","exitFullscreen","requestFullscreen","$br","util","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","element","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullScreenEnabled","fullscreenchangeListener","event","all_events","join","orientation","navigator","userAgent","indexOf"],"sourceRoot":""}
|