@internetarchive/bookreader 5.0.0-24-sortingstate-11 → 5.0.0-26
Sign up to get free protection for your applications and to get access to all the features.
- package/BookReader/BookReader.css +4 -0
- package/BookReader/BookReader.js +2 -32145
- package/BookReader/BookReader.js.map +1 -1
- package/BookReader/bookreader-component-bundle.js +1286 -11256
- package/BookReader/bookreader-component-bundle.js.map +1 -1
- package/BookReader/icons/1up.svg +1 -12
- package/BookReader/icons/2up.svg +1 -15
- package/BookReader/icons/advance.svg +3 -26
- package/BookReader/icons/chevron-right.svg +1 -1
- package/BookReader/icons/close-circle-dark.svg +1 -1
- package/BookReader/icons/close-circle.svg +1 -1
- package/BookReader/icons/fullscreen.svg +1 -17
- package/BookReader/icons/fullscreen_exit.svg +1 -17
- package/BookReader/icons/hamburger.svg +1 -15
- package/BookReader/icons/left-arrow.svg +1 -12
- package/BookReader/icons/magnify-minus.svg +1 -16
- package/BookReader/icons/magnify-plus.svg +1 -17
- package/BookReader/icons/magnify.svg +1 -15
- package/BookReader/icons/pause.svg +1 -23
- package/BookReader/icons/play.svg +1 -22
- package/BookReader/icons/playback-speed.svg +1 -34
- package/BookReader/icons/read-aloud.svg +1 -22
- package/BookReader/icons/review.svg +3 -22
- package/BookReader/icons/thumbnails.svg +1 -17
- package/BookReader/icons/voice.svg +1 -1
- package/BookReader/icons/volume-full.svg +1 -22
- package/BookReader/images/BRicons.svg +5 -94
- package/BookReader/images/books_graphic.svg +1 -177
- package/BookReader/images/icon_book.svg +1 -12
- package/BookReader/images/icon_bookmark.svg +1 -12
- package/BookReader/images/icon_gear.svg +1 -14
- package/BookReader/images/icon_hamburger.svg +1 -20
- package/BookReader/images/icon_home.svg +1 -21
- package/BookReader/images/icon_info.svg +1 -11
- package/BookReader/images/icon_one_page.svg +1 -8
- package/BookReader/images/icon_pause.svg +1 -1
- package/BookReader/images/icon_play.svg +1 -1
- package/BookReader/images/icon_playback-rate.svg +1 -15
- package/BookReader/images/icon_search_button.svg +1 -8
- package/BookReader/images/icon_share.svg +1 -9
- package/BookReader/images/icon_skip-ahead.svg +1 -6
- package/BookReader/images/icon_skip-back.svg +2 -13
- package/BookReader/images/icon_speaker.svg +1 -18
- package/BookReader/images/icon_speaker_open.svg +1 -10
- package/BookReader/images/icon_thumbnails.svg +1 -12
- package/BookReader/images/icon_toc.svg +1 -5
- package/BookReader/images/icon_two_pages.svg +1 -9
- package/BookReader/images/marker_chap-off.svg +1 -11
- package/BookReader/images/marker_chap-on.svg +1 -11
- package/BookReader/images/marker_srch-on.svg +1 -11
- package/BookReader/jquery-1.10.1.js +2 -108
- package/BookReader/plugins/plugin.archive_analytics.js +1 -170
- package/BookReader/plugins/plugin.archive_analytics.js.map +1 -1
- package/BookReader/plugins/plugin.autoplay.js +1 -163
- package/BookReader/plugins/plugin.autoplay.js.map +1 -1
- package/BookReader/plugins/plugin.chapters.js +1 -333
- package/BookReader/plugins/plugin.chapters.js.map +1 -1
- package/BookReader/plugins/plugin.iframe.js +1 -72
- package/BookReader/plugins/plugin.iframe.js.map +1 -1
- package/BookReader/plugins/plugin.mobile_nav.js +1 -332
- package/BookReader/plugins/plugin.mobile_nav.js.map +1 -1
- package/BookReader/plugins/plugin.resume.js +1 -241
- package/BookReader/plugins/plugin.resume.js.map +1 -1
- package/BookReader/plugins/plugin.search.js +1 -1263
- package/BookReader/plugins/plugin.search.js.map +1 -1
- package/BookReader/plugins/plugin.text_selection.js +1 -839
- package/BookReader/plugins/plugin.text_selection.js.map +1 -1
- package/BookReader/plugins/plugin.tts.js +2 -9114
- package/BookReader/plugins/plugin.tts.js.map +1 -1
- package/BookReader/plugins/plugin.url.js +1 -768
- package/BookReader/plugins/plugin.url.js.map +1 -1
- package/BookReader/plugins/plugin.vendor-fullscreen.js +1 -326
- package/BookReader/plugins/plugin.vendor-fullscreen.js.map +1 -1
- package/BookReader/webcomponents-bundle.js +2 -411
- package/BookReader/webcomponents-bundle.js.map +1 -1
- package/BookReaderDemo/demo-internetarchive.html +86 -4
- package/CHANGELOG.md +5 -0
- package/package.json +1 -1
- package/src/BookNavigator/bookmarks/ia-bookmarks.js +1 -0
- package/src/BookNavigator/volumes/volumes-provider.js +9 -40
- package/src/BookReader.js +102 -64
- package/src/css/_controls.scss +4 -0
- package/src/plugins/plugin.url.js +2 -218
- package/tests/jest/BookReader.keyboard.test.js +190 -0
- package/tests/jest/plugins/plugin.url.test.js +1 -151
- package/.nvmrc +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"plugins/plugin.url.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;AACA;AACA;AACA;AACA;AAEAA,MAAM,CAACC,MAAP,CAAcC,UAAU,CAACC,cAAzB,EAAyC;AACvCC,EAAAA,eAAe,EAAE,IADsB;AAEvCC,EAAAA,MAAM,EAAE,EAF+B;;AAGvC;AACAC,EAAAA,QAAQ,EAAE,IAJ6B;AAKvCC,EAAAA,iBAAiB,EAAE,KALoB;;AAOvC;AACAC,EAAAA,OAAO,EAAE,MAR8B;;AAUvC;AACF;AACA;AACA;AACEC,EAAAA,kBAAkB,EAAE,GAdmB;;AAgBvC;AACAC,EAAAA,gBAAgB,EAAE,CAAC,MAAD,EAAS,QAAT,EAAmB,MAAnB,EAA2B,QAA3B,EAAqC,WAArC,EAAkD,MAAlD,CAjBqB;;AAmBvC;AACAC,EAAAA,cAAc,EAAE;AApBuB,CAAzC;AAuBA;;AACAT,UAAU,CAACU,SAAX,CAAqBC,KAArB,GAA8B,UAASC,MAAT,EAAiB;AAC7C,SAAO,UAASC,OAAT,EAAkB;AACvBD,IAAAA,MAAM,CAACE,IAAP,CAAY,IAAZ,EAAkBD,OAAlB;AAEA,SAAKV,MAAL,GAAcU,OAAO,CAACV,MAAtB;AACA,SAAKC,QAAL,GAAgBS,OAAO,CAACT,QAAxB;AAEA,SAAKW,cAAL,GAAsB,IAAtB;AACA,SAAKC,eAAL,GAAuB,IAAvB;AACA,SAAKC,WAAL,GAAmB,IAAnB;AACD,GATD;AAUD,CAX4B,CAW1BjB,UAAU,CAACU,SAAX,CAAqBC,KAXK,CAA7B;AAaA;;;AACAX,UAAU,CAACU,SAAX,CAAqBQ,IAArB,GAA6B,UAASN,MAAT,EAAiB;AAC5C,SAAO,YAAW;AAAA;;AAEhB,QAAI,KAAKC,OAAL,CAAaX,eAAjB,EAAkC;AAChC,WAAKiB,IAAL,CAAUnB,UAAU,CAACoB,UAAX,CAAsBC,QAAhC,EAA0C,YAAM;AAC9C,4BAAuC,KAAI,CAACR,OAA5C;AAAA,YAAQR,iBAAR,iBAAQA,iBAAR;AAAA,YAA2BC,OAA3B,iBAA2BA,OAA3B;;AACA,YAAID,iBAAJ,EAAuB;AACrBiB,UAAAA,QAAQ,CAACC,KAAT,GAAiB,KAAI,CAACC,UAAL,CAAgB,KAAI,CAACC,SAArB,EAAgC,EAAhC,CAAjB;AACD;;AACD,YAAInB,OAAO,KAAK,MAAhB,EAAwB;AACtB,eAAI,CAACoB,uBAAL;AACD;AACF,OARD;AAUA,WAAKP,IAAL,CAAUnB,UAAU,CAACoB,UAAX,CAAsBO,cAAhC,EACE,KAAKC,iBAAL,CAAuBT,IAAvB,CAA4B,IAA5B,CADF;AAGD;;AACDP,IAAAA,MAAM,CAACE,IAAP,CAAY,IAAZ;AACD,GAlBD;AAmBD,CApB2B,CAoBzBd,UAAU,CAACU,SAAX,CAAqBQ,IApBI,CAA5B;AAsBA;AACA;AACA;AACA;AACA;;;AACAlB,UAAU,CAACU,SAAX,CAAqBc,UAArB,GAAkC,UAASK,iBAAT,EAA4B;AAC5D,MAAI,KAAKJ,SAAL,CAAeK,MAAf,GAAwBD,iBAA5B,EAA+C;AAC7C,WAAO,KAAKJ,SAAZ;AACD;;AAED,MAAMF,KAAK,aAAM,KAAKE,SAAL,CAAeM,MAAf,CAAsB,CAAtB,EAAyBF,iBAAiB,GAAG,CAA7C,CAAN,QAAX;AACA,SAAON,KAAP;AACD,CAPD;AASA;AACA;AACA;;;AACAvB,UAAU,CAACU,SAAX,CAAqBgB,uBAArB,GAA+C,YAAW;AAAA;;AACxD,OAAKV,eAAL,GAAuB,KAAKgB,eAAL,EAAvB;;AAEA,MAAI,KAAKjB,cAAT,EAAyB;AACvBkB,IAAAA,aAAa,CAAC,KAAKlB,cAAN,CAAb;AACA,SAAKA,cAAL,GAAsB,IAAtB;AACD;;AAED,MAAMmB,UAAU,GAAG,SAAbA,UAAa,GAAM;AACvB,QAAMC,WAAW,GAAG,MAAI,CAACH,eAAL,EAApB;;AACA,QAAMI,iBAAiB,GAAID,WAAW,IAAI,MAAI,CAACnB,eAArB,IAA0CmB,WAAW,IAAI,MAAI,CAAClB,WAAxF;;AAEA,QAAI,CAACmB,iBAAL,EAAwB;AAAE;AAAS;;AAEnC,QAAMC,MAAM,GAAG,MAAI,CAACC,kBAAL,CAAwBH,WAAxB,CAAf;;AAEA,QAAMI,YAAY,GAAG,SAAfA,YAAe;AAAA,aAAM,MAAI,CAACC,gBAAL,CAAsBH,MAAtB,CAAN;AAAA,KAArB;;AAEA,UAAI,CAACI,OAAL,CAAazC,UAAU,CAACoB,UAAX,CAAsBsB,IAAnC;;AACA,QAAI,MAAI,CAACC,SAAT,EAAoB;AAClB;AACA,UAAI,MAAI,CAACC,QAAT,EAAmB,MAAI,CAACA,QAAL;AACnB,YAAI,CAACC,yBAAL,GAAiCN,YAAjC;AACD,KAJD,MAIO;AACL;AACAA,MAAAA,YAAY;AACb;;AACD,UAAI,CAACtB,WAAL,GAAmBkB,WAAnB;AACD,GApBD;;AAsBA,OAAKpB,cAAL,GAAsB+B,WAAW,CAACZ,UAAD,EAAa,GAAb,CAAjC;AACD,CA/BD;AAiCA;AACA;AACA;AACA;;;AACAlC,UAAU,CAACU,SAAX,CAAqBkB,iBAArB,GAAyC,YAAW;AAClD,MAAMmB,SAAS,GAAG,KAAKC,iBAAL,EAAlB;AACA,uBAAsD,KAAKnC,OAA3D;AAAA,MAAQP,OAAR,kBAAQA,OAAR;AAAA,MAAiBG,cAAjB,kBAAiBA,cAAjB;AAAA,MAAiCD,gBAAjC,kBAAiCA,gBAAjC;;AAEA,MAAI,CAACC,cAAD,IACI,OAAOsC,SAAS,CAACE,KAAjB,KAA4B,WADhC,IAEGF,SAAS,CAACE,KAAV,KAAoB,CAF3B,EAE8B;AAC5B,WAAOF,SAAS,CAACE,KAAjB;AACA,WAAOF,SAAS,CAACG,IAAjB;AACD;;AAED,MAAMb,MAAM,GAAG7B,gBAAgB,CAAC2C,MAAjB,CAAwB,UAACC,WAAD,EAAcC,SAAd,EAA4B;AACjE,QAAIA,SAAS,IAAIN,SAAjB,EAA4B;AAC1BK,MAAAA,WAAW,CAACC,SAAD,CAAX,GAAyBN,SAAS,CAACM,SAAD,CAAlC;AACD;;AACD,WAAOD,WAAP;AACD,GALc,EAKZ,EALY,CAAf;AAOA,MAAMjB,WAAW,GAAG,KAAKmB,kBAAL,CAAwBjB,MAAxB,EAAgC/B,OAAhC,CAApB;AACA,MAAMiD,YAAY,GAAG,KAAKvB,eAAL,EAArB;AACA,MAAMwB,eAAe,GAAG,KAAKC,iBAAL,EAAxB;AACA,MAAMC,cAAc,GAAG,KAAKC,qBAAL,CAA2BtB,MAA3B,EAAmCmB,eAAnC,EAAoDlD,OAApD,CAAvB;;AACA,MAAIiD,YAAY,KAAKpB,WAAjB,IAAgCqB,eAAe,KAAKE,cAAxD,EAAwE;AACtE;AACD;;AAED,MAAIpD,OAAO,KAAK,SAAhB,EAA2B;AACzB,QAAIsD,MAAM,CAACC,OAAP,IAAkBD,MAAM,CAACC,OAAP,CAAeC,YAArC,EAAmD;AACjD,UAAMC,gBAAgB,GAAG,KAAKlD,OAAL,CAAaN,kBAAb,CAAgCyD,OAAhC,CAAwC,MAAxC,EAAgD,EAAhD,CAAzB;AACA,UAAMC,oBAAoB,GAAG9B,WAAW,KAAK,EAAhB,GAAqB,EAArB,cAA8BA,WAA9B,CAA7B;AAEA,UAAM+B,UAAU,aAAMH,gBAAN,SAAyBE,oBAAzB,SAAgDP,cAAhD,CAAhB;AACAE,MAAAA,MAAM,CAACC,OAAP,CAAeC,YAAf,CAA4B,EAA5B,EAAgC,IAAhC,EAAsCI,UAAtC;AACA,WAAKlD,eAAL,GAAuBmB,WAAW,GAAGuB,cAArC;AAED;AACF,GAVD,MAUO;AACL,QAAMS,oBAAoB,GAAG,KAAKC,0BAAL,CAAgC,KAAKC,eAAL,EAAhC,CAA7B;AACAT,IAAAA,MAAM,CAACU,QAAP,CAAgBN,OAAhB,CAAwB,MAAM7B,WAAN,GAAoBgC,oBAA5C;AACA,SAAKnD,eAAL,GAAuBmB,WAAW,GAAGgC,oBAArC;AAED;AACF,CA1CD;AA4CA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACAnE,UAAU,CAACU,SAAX,CAAqB0D,0BAArB,GAAkD,UAASG,GAAT,EAAc;AAC9D,MAAMlC,MAAM,GAAG,IAAImC,eAAJ,CAAoBD,GAApB,CAAf;AACA,SAAOlC,MAAM,CAACoC,GAAP,CAAW,GAAX,eAAsB,IAAID,eAAJ,CAAoB;AAAEE,IAAAA,CAAC,EAAErC,MAAM,CAACsC,GAAP,CAAW,GAAX;AAAL,GAApB,CAAtB,IAAsE,EAA7E;AACD,CAHD;AAMA;AACA;AACA;AACA;;;AACA3E,UAAU,CAACU,SAAX,CAAqBsB,eAArB,GAAuC,YAAW;AAChD,uBAAwC,KAAKnB,OAA7C;AAAA,MAAQP,OAAR,kBAAQA,OAAR;AAAA,MAAiBC,kBAAjB,kBAAiBA,kBAAjB;;AACA,MAAID,OAAO,KAAK,SAAhB,EAA2B;AACzB,WAAOsD,MAAM,CAACU,QAAP,CAAgBM,QAAhB,CAAyB7C,MAAzB,CAAgCxB,kBAAkB,CAACuB,MAAnD,CAAP;AACD,GAFD,MAEO;AACL,WAAO8B,MAAM,CAACU,QAAP,CAAgBO,IAAhB,CAAqB9C,MAArB,CAA4B,CAA5B,CAAP;AACD;AACF,CAPD;AASA;AACA;AACA;AACA;;;AACA/B,UAAU,CAACU,SAAX,CAAqBoE,mBAArB,GAA2C,YAAW;AACpD,SAAOlB,MAAM,CAACU,QAAP,CAAgBO,IAAhB,CAAqB9C,MAArB,CAA4B,CAA5B,CAAP;AACD,CAFD;;AAGO,IAAMgD,SAAb;AACE,uBAA0B;AAAA,QAAdlE,OAAc,uEAAJ,EAAI;;AAAA;;AACxB,SAAKmE,iBAAL,GAAyBnE,OAAzB,CADwB,CAGxB;;AACA,SAAKoE,SAAL,GAAiB,CACf;AAAEC,MAAAA,IAAI,EAAE,MAAR;AAAgBC,MAAAA,QAAQ,EAAE,MAA1B;AAAkCC,MAAAA,OAAO,EAAE;AAA3C,KADe,EAEf;AAAEF,MAAAA,IAAI,EAAE,MAAR;AAAgBC,MAAAA,QAAQ,EAAE,MAA1B;AAAkCC,MAAAA,OAAO,EAAE;AAA3C,KAFe,EAGf;AAAEF,MAAAA,IAAI,EAAE,QAAR;AAAkBC,MAAAA,QAAQ,EAAE,MAA5B;AAAoCE,MAAAA,cAAc,EAAE;AAApD,KAHe,EAIf;AAAEH,MAAAA,IAAI,EAAE,GAAR;AAAaC,MAAAA,QAAQ,EAAE;AAAvB,KAJe,EAKf;AAAED,MAAAA,IAAI,EAAE,MAAR;AAAgBC,MAAAA,QAAQ,EAAE;AAA1B,KALe,EAMf;AAAED,MAAAA,IAAI,EAAE,MAAR;AAAgBC,MAAAA,QAAQ,EAAE;AAA1B,KANe,EAOf;AAAED,MAAAA,IAAI,EAAE,OAAR;AAAiBC,MAAAA,QAAQ,EAAE;AAA3B,KAPe,CAAjB;AAUA,SAAKG,QAAL,GAAgB,EAAhB;AACA,SAAKhF,OAAL,GAAe,KAAK0E,iBAAL,CAAuB1E,OAAvB,IAAkC,MAAjD;AACA,SAAKC,kBAAL,GAA0B,KAAKyE,iBAAL,CAAuBzE,kBAAvB,IAA8C,GAAxE;AACA,SAAKgF,iBAAL,GAAyB,IAAzB;AACA,SAAKvE,eAAL,GAAuB,IAAvB;AACA,SAAKC,WAAL,GAAmB,IAAnB;AACD;AAED;AACF;AACA;AACA;AACA;AACA;;;AA5BA;AAAA;AAAA,WA6BE,6BAAoBqE,QAApB,EAA8B;AAAA;;AAC5B,UAAME,YAAY,GAAG,IAAIhB,eAAJ,EAArB;AACA,UAAMiB,UAAU,GAAG,EAAnB;AAEAC,MAAAA,MAAM,CAACC,IAAP,CAAYL,QAAZ,EAAsBM,OAAtB,CAA8B,UAAAC,GAAG,EAAI;AAAA;;AACnC,YAAIC,MAAM,GAAG,MAAI,CAACb,SAAL,CAAec,IAAf,CAAoB,UAAAD,MAAM;AAAA,iBAAIA,MAAM,CAACZ,IAAP,KAAgBW,GAApB;AAAA,SAA1B,CAAb;;AACA,uBAAIC,MAAJ,oCAAI,QAAQT,cAAZ,EAA4B;AAC1BS,UAAAA,MAAM,GAAG,MAAI,CAACb,SAAL,CAAec,IAAf,CAAoB,UAAAC,SAAS;AAAA,mBAAIA,SAAS,CAACd,IAAV,KAAmBY,MAAM,CAACT,cAA9B;AAAA,WAA7B,CAAT;AACD;;AACD,YAAI,aAAAS,MAAM,UAAN,4CAAQX,QAAR,KAAoB,MAAxB,EAAgC;AAAA;;AAC9BM,UAAAA,UAAU,aAACK,MAAD,6CAAC,SAAQZ,IAAT,CAAV,GAA2BI,QAAQ,CAACO,GAAD,CAAnC;AACD,SAFD,MAEO;AAAA;;AACLL,UAAAA,YAAY,CAACS,MAAb,CAAoB,aAAAH,MAAM,UAAN,4CAAQZ,IAAR,KAAgBW,GAApC,EAAyCP,QAAQ,CAACO,GAAD,CAAjD;AACD;AACF,OAVD;AAYA,UAAMK,aAAa,GAAG,KAAKjB,SAAL,CACnBkB,MADmB,CACZ,UAAAC,CAAC;AAAA,eAAIA,CAAC,CAACjB,QAAF,IAAc,MAAlB;AAAA,OADW,EAEnBkB,GAFmB,CAEf,UAAAP,MAAM;AAAA,eAAIL,UAAU,CAACK,MAAM,CAACZ,IAAR,CAAV,aAA6BY,MAAM,CAACZ,IAApC,cAA4CO,UAAU,CAACK,MAAM,CAACZ,IAAR,CAAtD,IAAwE,EAA5E;AAAA,OAFS,EAGnBoB,IAHmB,CAGd,GAHc,CAAtB;AAKA,UAAMC,wBAAwB,aAAML,aAAa,CAAClC,OAAd,CAAsB,KAAtB,EAA6B,EAA7B,CAAN,CAA9B;AACA,UAAMwC,gBAAgB,cAAOD,wBAAP,cAAmCf,YAAY,CAACiB,QAAb,EAAnC,CAAtB;AACA,aAAOjB,YAAY,CAACiB,QAAb,KAA0BD,gBAA1B,cAAiDD,wBAAjD,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;AA9DA;AAAA;AAAA,WA+DE,6BAAoBG,SAApB,EAA+B;AAC7BC,MAAAA,OAAO,CAACC,GAAR,CAAY,aAAZ,EAA2BF,SAA3B;AACA,UAAMpB,QAAQ,GAAG,EAAjB,CAF6B,CAI7B;AACA;;AACA,UAAMuB,OAAO,GAAG,IAAIC,GAAJ,CAAQJ,SAAR,EAAmB,oBAAnB,CAAhB;AACAC,MAAAA,OAAO,CAACC,GAAR,CAAY,WAAZ,EAAyBC,OAAzB;AACAF,MAAAA,OAAO,CAACC,GAAR,CAAY,aAAZ,EAA2BC,OAAO,CAACrB,YAAnC,EAAiD,YAAjD,EAA+DqB,OAAO,CAACjC,QAAvE;AACA,UAAMmC,kBAAkB,GAAGrB,MAAM,CAACsB,WAAP,CAAmBH,OAAO,CAACrB,YAAR,CAAqByB,OAArB,EAAnB,CAA3B;AACA,UAAMC,mBAAmB,GAAGxB,MAAM,CAACsB,WAAP,CAAmBH,OAAO,CAACjC,QAAR,CAC5CuC,KAD4C,CACtC,mBADsC,EAE5Cd,GAF4C,CAExC,UAAAe,CAAC;AAAA,eAAIA,CAAC,CAACC,KAAF,CAAQ,GAAR,CAAJ;AAAA,OAFuC,CAAnB,CAA5B;;AAIA,UAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,OAAD,EAAUC,IAAV,EAAmB;AACvC,eAAO9B,MAAM,CAACC,IAAP,CAAY4B,OAAZ,EAAqBE,IAArB,CAA0B,UAAAC,KAAK;AAAA,iBAAIA,KAAK,IAAIF,IAAb;AAAA,SAA/B,CAAP;AACD,OAFD,CAd6B,CAkB7B;;;AACA,WAAKvC,SAAL,CACGkB,MADH,CACU,UAAAL,MAAM;AAAA,eAAIA,MAAM,CAACX,QAAP,IAAmB,MAAvB;AAAA,OADhB,EAEGS,OAFH,CAEW,UAAAE,MAAM,EAAI;AACjB,YAAI,CAACoB,mBAAmB,CAACpB,MAAM,CAACZ,IAAR,CAApB,IAAqCY,MAAM,CAACV,OAAhD,EAAyD;AACvD,iBAAOE,QAAQ,CAACQ,MAAM,CAACZ,IAAR,CAAR,GAAwBY,MAAM,CAACV,OAAtC;AACD;;AACD,YAAMuC,cAAc,GAAGL,aAAa,CAACJ,mBAAD,EAAsBpB,MAAM,CAACZ,IAA7B,CAApC;AACA,YAAM0C,gBAAgB,GAAGN,aAAa,CAACxB,MAAD,EAAS,gBAAT,CAAb,IAA2C6B,cAApE;;AAEA,YAAIC,gBAAJ,EAAsB;AACpBtC,UAAAA,QAAQ,CAACQ,MAAM,CAACT,cAAR,CAAR,GAAkC6B,mBAAmB,CAACpB,MAAM,CAACZ,IAAR,CAArD;AACA;AACD;;AAED,YAAIyC,cAAJ,EAAoB;AAClBrC,UAAAA,QAAQ,CAACQ,MAAM,CAACZ,IAAR,CAAR,GAAwBgC,mBAAmB,CAACpB,MAAM,CAACZ,IAAR,CAA3C;AACA;AACD;AACF,OAlBH,EAnB6B,CAuC7B;AACA;AACA;;AACA,UAAM2C,cAAc,GAAG,SAAjBA,cAAiB,CAAAH,KAAK;AAAA,eAAIA,KAAK,KAAK,MAAV,KAAqBA,KAAK,KAAK,OAAV,GAAoB,KAApB,GAA4BA,KAAjD,CAAJ;AAAA,OAA5B;;AACAhC,MAAAA,MAAM,CAACuB,OAAP,CAAeF,kBAAf,EAAmCnB,OAAnC,CAA2C,gBAAkB;AAAA;AAAA,YAAhBC,GAAgB;AAAA,YAAX6B,KAAW;;AAC3DpC,QAAAA,QAAQ,CAACO,GAAD,CAAR,GAAgBgC,cAAc,CAACH,KAAD,CAA9B;AACD,OAFD;AAIA,aAAOpC,QAAP;AACD;AAED;AACF;AACA;AACA;AACA;;AArHA;AAAA;AAAA,WAsHE,qBAAYO,GAAZ,EAAiB6B,KAAjB,EAAwB;AACtB,WAAKpC,QAAL,CAAcO,GAAd,IAAqB6B,KAArB;AAEA,WAAKI,gBAAL;AACD;AAED;AACF;AACA;AACA;;AA/HA;AAAA;AAAA,WAgIE,wBAAejC,GAAf,EAAoB;AAClB,aAAO,KAAKP,QAAL,CAAcO,GAAd,CAAP;AAEA,WAAKiC,gBAAL;AACD;AAED;AACF;AACA;AACA;AACA;;AA1IA;AAAA;AAAA,WA2IE,qBAAYjC,GAAZ,EAAiB;AACf,aAAO,KAAKP,QAAL,CAAcO,GAAd,CAAP;AACD;AAED;AACF;AACA;;AAjJA;AAAA;AAAA,WAkJE,4BAAmB;AACjB,UAAMkC,UAAU,GAAG,KAAKC,mBAAL,CAAyB,KAAK1C,QAA9B,CAAnB;;AACA,UAAI,KAAKhF,OAAL,IAAgB,SAApB,EAA+B;AAC7B,YAAIsD,MAAM,CAACC,OAAP,IAAkBD,MAAM,CAACC,OAAP,CAAeC,YAArC,EAAmD;AACjD,cAAMI,UAAU,aAAM,KAAK3D,kBAAX,SAAgCwH,UAAhC,CAAhB;AACApB,UAAAA,OAAO,CAACC,GAAR,CAAY,cAAZ,EAA4B1C,UAA5B;AACAN,UAAAA,MAAM,CAACC,OAAP,CAAeC,YAAf,CAA4B,EAA5B,EAAgC,IAAhC,EAAsCI,UAAtC;AACD;AACF,OAND,MAMO;AACLN,QAAAA,MAAM,CAACU,QAAP,CAAgBN,OAAhB,CAAwB,MAAM+D,UAA9B;AACD;;AACD,WAAK/G,eAAL,GAAuB+G,UAAvB;AACD;AAED;AACF;AACA;AACA;;AAnKA;AAAA;AAAA,WAoKE,gCAAuB;AAAA;;AACrB,WAAK/G,eAAL,GAAuB4C,MAAM,CAACU,QAAP,CAAgBO,IAAhB,CAAqB9C,MAArB,CAA4B,CAA5B,CAAvB;;AACA,UAAI,KAAKwD,iBAAT,EAA4B;AAC1BtD,QAAAA,aAAa,CAAC,KAAKsD,iBAAN,CAAb;AACA,aAAKA,iBAAL,GAAyB,IAAzB;AACD,OALoB,CAOrB;;;AACA,UAAMrD,UAAU,GAAG,SAAbA,UAAa,GAAM;AACvB,YAAMC,WAAW,GAAGyB,MAAM,CAACU,QAAP,CAAgBO,IAAhB,CAAqB9C,MAArB,CAA4B,CAA5B,CAApB;AACA,YAAMK,iBAAiB,GAAGD,WAAW,IAAI,MAAI,CAACnB,eAA9C;;AAEA,YAAI,CAACoB,iBAAL,EAAwB;AAAE;AAAS;;AAEnC,cAAI,CAACkD,QAAL,GAAgB,MAAI,CAAC2C,mBAAL,CAAyB9F,WAAzB,CAAhB;AACD,OAPD;;AAQA,WAAKoD,iBAAL,GAAyBzC,WAAW,CAACZ,UAAD,EAAa,GAAb,CAApC;AACD;AAED;AACF;AACA;;AAzLA;AAAA;AAAA,WA0LE,8BAAgD;AAAA,UAA5BoC,QAA4B,uEAAjBV,MAAM,CAACU,QAAU;AAC9C,UAAM4D,IAAI,GAAG,KAAK5H,OAAL,KAAiB,SAAjB,GACRgE,QAAQ,CAACM,QAAT,CAAkB7C,MAAlB,CAAyB,KAAKxB,kBAAL,CAAwBuB,MAAjD,IAA2DwC,QAAQ,CAAC6D,MAD5D,GAET7D,QAAQ,CAACO,IAAT,CAAc9C,MAAd,CAAqB,CAArB,CAFJ;AAGA4E,MAAAA,OAAO,CAACC,GAAR,CAAY,QAAZ,EAAsBsB,IAAtB;AACA,WAAK5C,QAAL,GAAgB,KAAK2C,mBAAL,CAAyBC,IAAzB,CAAhB;AACD;AAhMH;;AAAA;AAAA;AAmMO,IAAME,mBAAb;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA,WAEE,gBAAO;AAAA;;AACL,UAAI,KAAKvH,OAAL,CAAaX,eAAjB,EAAkC;AAChC,aAAKmI,SAAL,GAAiB,IAAItD,SAAJ,CAAc,KAAKlE,OAAnB,CAAjB;AACA,aAAKM,IAAL,CAAUnB,UAAU,CAACoB,UAAX,CAAsBC,QAAhC,EAA0C,YAAM;AAC9C,cAAQf,OAAR,GAAoB,MAAI,CAACO,OAAzB,CAAQP,OAAR;;AAEA,cAAIA,OAAO,KAAK,MAAhB,EAAwB;AACtB,kBAAI,CAAC+H,SAAL,CAAeC,oBAAf;AACD;AACF,SAND;AAOD;;AAED;AACD;AAfH;;AAAA;AAAA,EAAyCtI,UAAzC;AAmBA4D,MAAM,CAAC5D,UAAP,GAAoBoI,mBAApB;AACA,+DAAeA,mBAAf;;;;;;;;;;AC7ZA,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,eAAe,sHAA+C;;AAE9D;AACA;AACA,IAAI,8BAA8B;AAClC;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACTD,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,cAAc,mBAAO,CAAC,yEAAsB;AAC5C,qBAAqB,mBAAO,CAAC,yFAA8B;;AAE3D;AACA;AACA,IAAI,8BAA8B;AAClC;AACA;AACA;AACA;AACA,KAAK,IAAI,kBAAkB;AAC3B;AACA;AACA,CAAC;;;;;;;;;;;;ACdY;AACb,oCAAoC,mBAAO,CAAC,+HAAiD;AAC7F,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,6BAA6B,mBAAO,CAAC,2GAAuC;AAC5E,yBAAyB,mBAAO,CAAC,mGAAmC;AACpE,iBAAiB,mBAAO,CAAC,mGAAmC;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","sources":["webpack://@internetarchive/bookreader/./src/plugins/plugin.url.js","webpack://@internetarchive/bookreader/./node_modules/core-js/modules/es.object.entries.js","webpack://@internetarchive/bookreader/./node_modules/core-js/modules/es.object.from-entries.js","webpack://@internetarchive/bookreader/./node_modules/core-js/modules/es.string.match.js"],"sourcesContent":["/* global BookReader */\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 if (this.autoStop) this.autoStop();\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 { urlMode, 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, urlMode);\n const currFragment = this.urlReadFragment();\n const currQueryString = this.getLocationSearch();\n const newQueryString = this.queryStringFromParams(params, currQueryString, urlMode);\n if (currFragment === newFragment && currQueryString === newQueryString) {\n return;\n }\n\n if (urlMode === 'history') {\n if (window.history && window.history.replaceState) {\n const baseWithoutSlash = this.options.urlHistoryBasePath.replace(/\\/+$/, '');\n const newFragmentWithSlash = newFragment === '' ? '' : `/${newFragment}`;\n\n const newUrlPath = `${baseWithoutSlash}${newFragmentWithSlash}${newQueryString}`;\n window.history.replaceState({}, null, newUrlPath);\n this.oldLocationHash = newFragment + newQueryString;\n\n }\n } else {\n const newQueryStringSearch = this.urlParamsFiltersOnlySearch(this.readQueryString());\n window.location.replace('#' + newFragment + newQueryStringSearch);\n this.oldLocationHash = newFragment + newQueryStringSearch;\n\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 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}/${pathParams[schema.name]}` : '')\n .join('/');\n\n const strStrippedTrailingSlash = `${strPathParams.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 console.log('urlString: ', urlString);\n const urlState = {};\n\n // Fetch searchParams from given {urlString}\n // Note: whole URL path is needed for URLSearchParams\n const urlPath = new URL(urlString, 'http://example.com');\n console.log('urlPath: ', urlPath);\n console.log('urlSearch: ', urlPath.searchParams, ' urlPath: ', urlPath.pathname);\n const urlSearchParamsObj = Object.fromEntries(urlPath.searchParams.entries());\n const urlStrSplitSlashObj = Object.fromEntries(urlPath.pathname\n .match(/[^\\\\/]+\\/[^\\\\/]+/g)\n .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 if (!urlStrSplitSlashObj[schema.name] && schema.default) {\n return urlState[schema.name] = schema.default;\n }\n const hasPropertyKey = doesKeyExists(urlStrSplitSlashObj, schema.name);\n const hasDeprecatedKey = doesKeyExists(schema, 'deprecated_for') && hasPropertyKey;\n\n if (hasDeprecatedKey) {\n urlState[schema.deprecated_for] = urlStrSplitSlashObj[schema.name];\n return;\n }\n\n if (hasPropertyKey) {\n urlState[schema.name] = urlStrSplitSlashObj[schema.name];\n return;\n }\n });\n\n // Add searchParams to urlState\n // Check if Object value is a Boolean and convert value to Boolean\n // Otherwise, return Object value\n const isBooleanValue = value => value === 'true' || (value === 'false' ? false : value);\n Object.entries(urlSearchParamsObj).forEach(([key, value]) => {\n urlState[key] = isBooleanValue(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 if (this.urlMode == 'history') {\n if (window.history && window.history.replaceState) {\n const newUrlPath = `${this.urlHistoryBasePath}${urlStrPath}`;\n console.log('newUrlPath: ', newUrlPath);\n window.history.replaceState({}, null, newUrlPath);\n }\n } else {\n window.location.replace('#' + urlStrPath);\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 console.log('path: ', path);\n this.urlState = this.urlStringToUrlState(path);\n }\n}\n\nexport class BookreaderUrlPlugin extends BookReader {\n\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}\n\nwindow.BookReader = BookreaderUrlPlugin;\nexport default BookreaderUrlPlugin;\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","var $ = 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 fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n"],"names":["jQuery","extend","BookReader","defaultOptions","enableUrlPlugin","bookId","defaults","updateWindowTitle","urlMode","urlHistoryBasePath","urlTrackedParams","urlTrackIndex0","prototype","setup","super_","options","call","locationPollId","oldLocationHash","oldUserHash","init","bind","eventNames","PostInit","document","title","shortTitle","bookTitle","urlStartLocationPolling","fragmentChange","urlUpdateFragment","maximumCharacters","length","substr","urlReadFragment","clearInterval","updateHash","newFragment","hasFragmentChange","params","paramsFromFragment","updateParams","updateFromParams","trigger","stop","animating","autoStop","animationFinishedCallback","setInterval","allParams","paramsFromCurrent","index","page","reduce","validParams","paramName","fragmentFromParams","currFragment","currQueryString","getLocationSearch","newQueryString","queryStringFromParams","window","history","replaceState","baseWithoutSlash","replace","newFragmentWithSlash","newUrlPath","newQueryStringSearch","urlParamsFiltersOnlySearch","readQueryString","location","url","URLSearchParams","has","q","get","pathname","hash","urlReadHashFragment","UrlPlugin","bookReaderOptions","urlSchema","name","position","default","deprecated_for","urlState","urlLocationPollId","searchParams","pathParams","Object","keys","forEach","key","schema","find","schemaKey","append","strPathParams","filter","s","map","join","strStrippedTrailingSlash","concatenatedPath","toString","urlString","console","log","urlPath","URL","urlSearchParamsObj","fromEntries","entries","urlStrSplitSlashObj","match","x","split","doesKeyExists","_object","_key","some","value","hasPropertyKey","hasDeprecatedKey","isBooleanValue","pushToAddressBar","urlStrPath","urlStateToUrlString","urlStringToUrlState","path","search","BookreaderUrlPlugin","urlPlugin","listenForHashChanges"],"sourceRoot":""}
|
1
|
+
{"version":3,"file":"plugins/plugin.url.js","mappings":"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","sources":["webpack://@internetarchive/bookreader/./src/plugins/plugin.url.js"],"sourcesContent":["/* global BookReader */\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(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 if (this.autoStop) this.autoStop();\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 { urlMode, 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, urlMode);\n const currFragment = this.urlReadFragment();\n const currQueryString = this.getLocationSearch();\n const newQueryString = this.queryStringFromParams(params, currQueryString, urlMode);\n if (currFragment === newFragment && currQueryString === newQueryString) {\n return;\n }\n\n if (urlMode === 'history') {\n if (window.history && window.history.replaceState) {\n const baseWithoutSlash = this.options.urlHistoryBasePath.replace(/\\/+$/, '');\n const newFragmentWithSlash = newFragment === '' ? '' : `/${newFragment}`;\n\n const newUrlPath = `${baseWithoutSlash}${newFragmentWithSlash}${newQueryString}`;\n window.history.replaceState({}, null, newUrlPath);\n this.oldLocationHash = newFragment + newQueryString;\n\n }\n } else {\n const newQueryStringSearch = this.urlParamsFiltersOnlySearch(this.readQueryString());\n window.location.replace('#' + newFragment + newQueryStringSearch);\n this.oldLocationHash = newFragment + newQueryStringSearch;\n\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};\n"],"names":["super_","extend","BookReader","defaultOptions","enableUrlPlugin","bookId","defaults","updateWindowTitle","urlMode","urlHistoryBasePath","urlTrackedParams","urlTrackIndex0","prototype","setup","options","call","this","locationPollId","oldLocationHash","oldUserHash","init","bind","eventNames","PostInit","document","title","shortTitle","urlStartLocationPolling","fragmentChange","urlUpdateFragment","maximumCharacters","bookTitle","length","substr","urlReadFragment","clearInterval","locationPollID","setInterval","newFragment","params","paramsFromFragment","updateParams","updateFromParams","trigger","stop","animating","autoStop","animationFinishedCallback","allParams","paramsFromCurrent","index","page","reduce","validParams","paramName","fragmentFromParams","currFragment","currQueryString","getLocationSearch","newQueryString","queryStringFromParams","window","history","replaceState","baseWithoutSlash","replace","newFragmentWithSlash","newUrlPath","newQueryStringSearch","urlParamsFiltersOnlySearch","readQueryString","location","url","URLSearchParams","has","q","get","pathname","hash","urlReadHashFragment"],"sourceRoot":""}
|
@@ -1,327 +1,2 @@
|
|
1
|
-
(self["
|
2
|
-
|
3
|
-
/***/ "./src/plugins/plugin.vendor-fullscreen.js":
|
4
|
-
/*!*************************************************!*\
|
5
|
-
!*** ./src/plugins/plugin.vendor-fullscreen.js ***!
|
6
|
-
\*************************************************/
|
7
|
-
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
8
|
-
|
9
|
-
"use strict";
|
10
|
-
__webpack_require__.r(__webpack_exports__);
|
11
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
12
|
-
/* harmony export */ "getFullscreenElement": function() { return /* binding */ getFullscreenElement; },
|
13
|
-
/* harmony export */ "isFullscreenActive": function() { return /* binding */ isFullscreenActive; },
|
14
|
-
/* harmony export */ "exitFullscreen": function() { return /* binding */ exitFullscreen; },
|
15
|
-
/* harmony export */ "requestFullscreen": function() { return /* binding */ requestFullscreen; },
|
16
|
-
/* harmony export */ "fullscreenAllowed": function() { return /* binding */ fullscreenAllowed; },
|
17
|
-
/* harmony export */ "bindFullscreenChangeListener": function() { return /* binding */ bindFullscreenChangeListener; },
|
18
|
-
/* harmony export */ "isMobile": function() { return /* binding */ isMobile; }
|
19
|
-
/* harmony export */ });
|
20
|
-
/* harmony import */ var core_js_modules_es_string_trim_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.string.trim.js */ "./node_modules/core-js/modules/es.string.trim.js");
|
21
|
-
/* harmony import */ var core_js_modules_es_string_trim_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_trim_js__WEBPACK_IMPORTED_MODULE_0__);
|
22
|
-
/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.join.js */ "./node_modules/core-js/modules/es.array.join.js");
|
23
|
-
/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_1__);
|
24
|
-
/* provided dependency */ var jQuery = __webpack_require__(/*! jquery */ "jquery");
|
25
|
-
/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "jquery");
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
/* global BookReader */
|
30
|
-
|
31
|
-
/**
|
32
|
-
* Toggles browser's native fullscreen mode if available device is not mobile
|
33
|
-
*/
|
34
|
-
if (!isMobile()) {
|
35
|
-
var EVENT_NAMESPACE = '.bookreader_vendor-fullscreen';
|
36
|
-
jQuery.extend(BookReader.defaultOptions, {
|
37
|
-
/** @type {boolean} */
|
38
|
-
enableVendorFullscreenPlugin: true
|
39
|
-
});
|
40
|
-
/** @override */
|
41
|
-
|
42
|
-
BookReader.prototype.setup = function (super_) {
|
43
|
-
return function (options) {
|
44
|
-
super_.call(this, options);
|
45
|
-
this.isVendorFullscreenActive = false;
|
46
|
-
};
|
47
|
-
}(BookReader.prototype.setup);
|
48
|
-
/** @override */
|
49
|
-
|
50
|
-
|
51
|
-
BookReader.prototype.getInitialMode = function (super_) {
|
52
|
-
return function (params) {
|
53
|
-
var nextMode = super_.call(this, params);
|
54
|
-
|
55
|
-
if (this.isVendorFullscreenActive) {
|
56
|
-
nextMode = this.constMode1up;
|
57
|
-
}
|
58
|
-
|
59
|
-
return nextMode;
|
60
|
-
};
|
61
|
-
}(BookReader.prototype.getInitialMode);
|
62
|
-
/** @override */
|
63
|
-
|
64
|
-
|
65
|
-
BookReader.prototype.init = function (super_) {
|
66
|
-
return function () {
|
67
|
-
super_.call(this);
|
68
|
-
|
69
|
-
if (!fullscreenAllowed()) {
|
70
|
-
return;
|
71
|
-
} // In fullscreen mode the colorbox and overlay need to be inside the fullscreen element to display properly.
|
72
|
-
|
73
|
-
|
74
|
-
bindFullscreenChangeListener(this, function (e) {
|
75
|
-
e.data.resize();
|
76
|
-
e.data.updateBrClasses();
|
77
|
-
var cboxOverlay = $('#cboxOverlay');
|
78
|
-
var cbox = $('#colorbox');
|
79
|
-
|
80
|
-
if (isFullscreenActive()) {
|
81
|
-
// In full screen mode, the colorbox and overlay need
|
82
|
-
// to be children of the fullscreen element to display properly.
|
83
|
-
var $fullscreen = $(getFullscreenElement());
|
84
|
-
$fullscreen.append(cboxOverlay).append(cbox);
|
85
|
-
} else {
|
86
|
-
// In non-fullscreen mode, the colorbox and overlay need
|
87
|
-
// to be children of the main document body.
|
88
|
-
$(document.body).append(cboxOverlay).append(cbox);
|
89
|
-
}
|
90
|
-
});
|
91
|
-
};
|
92
|
-
}(BookReader.prototype.init);
|
93
|
-
/**
|
94
|
-
* Start fullscreen mode
|
95
|
-
*/
|
96
|
-
|
97
|
-
|
98
|
-
BookReader.prototype.enterFullWindow = function () {
|
99
|
-
var _this = this;
|
100
|
-
|
101
|
-
this.refs.$brContainer.css('opacity', 0);
|
102
|
-
var windowWidth = $(window).width();
|
103
|
-
|
104
|
-
if (windowWidth <= this.onePageMinBreakpoint) {
|
105
|
-
this.switchMode(this.constMode1up);
|
106
|
-
}
|
107
|
-
|
108
|
-
this.isVendorFullscreenActive = true;
|
109
|
-
this.updateBrClasses();
|
110
|
-
this.resize();
|
111
|
-
this.jumpToIndex(this.currentIndex());
|
112
|
-
this.refs.$brContainer.animate({
|
113
|
-
opacity: 1
|
114
|
-
}, 400, 'linear');
|
115
|
-
$(document).on("keyup.".concat(EVENT_NAMESPACE), function (e) {
|
116
|
-
if (e.keyCode === 27) _this.exitFullScreen();
|
117
|
-
});
|
118
|
-
};
|
119
|
-
/**
|
120
|
-
* Exit from fullscreen mode
|
121
|
-
*/
|
122
|
-
|
123
|
-
|
124
|
-
BookReader.prototype.exitFullWindow = function () {
|
125
|
-
this.refs.$brContainer.css('opacity', 0);
|
126
|
-
$(document).off('keyup' + EVENT_NAMESPACE);
|
127
|
-
this.isFullscreenActive = false;
|
128
|
-
this.updateBrClasses();
|
129
|
-
this.resize();
|
130
|
-
this.refs.$brContainer.animate({
|
131
|
-
opacity: 1
|
132
|
-
}, 400, 'linear');
|
133
|
-
};
|
134
|
-
/**
|
135
|
-
* Returns true if fullscreen mode is enabled
|
136
|
-
*
|
137
|
-
* @returns {boolean}
|
138
|
-
*/
|
139
|
-
|
140
|
-
|
141
|
-
BookReader.prototype.isFullscreen = function () {
|
142
|
-
return isFullscreenActive() || this.isVendorFullscreenActive;
|
143
|
-
};
|
144
|
-
/**
|
145
|
-
* Toggle screen
|
146
|
-
*/
|
147
|
-
|
148
|
-
|
149
|
-
BookReader.prototype.toggleFullscreen = function () {
|
150
|
-
if (this.isFullscreen()) {
|
151
|
-
if (fullscreenAllowed()) {
|
152
|
-
exitFullscreen();
|
153
|
-
} else {
|
154
|
-
this.exitFullWindow();
|
155
|
-
}
|
156
|
-
} else {
|
157
|
-
if (fullscreenAllowed()) {
|
158
|
-
requestFullscreen(this.refs.$br[0]);
|
159
|
-
} else {
|
160
|
-
this.enterFullWindow();
|
161
|
-
}
|
162
|
-
}
|
163
|
-
};
|
164
|
-
/** @deprecated */
|
165
|
-
|
166
|
-
|
167
|
-
BookReader.util.isMobile = isMobile;
|
168
|
-
/** @deprecated */
|
169
|
-
|
170
|
-
BookReader.util.getFullscreenElement = getFullscreenElement;
|
171
|
-
/** @deprecated */
|
172
|
-
|
173
|
-
BookReader.util.bindFullscreenChangeListener = bindFullscreenChangeListener;
|
174
|
-
/** @deprecated */
|
175
|
-
|
176
|
-
BookReader.util.fullscreenAllowed = fullscreenAllowed;
|
177
|
-
/** @deprecated */
|
178
|
-
|
179
|
-
BookReader.util.requestFullscreen = requestFullscreen;
|
180
|
-
/** @deprecated */
|
181
|
-
|
182
|
-
BookReader.util.exitFullscreen = exitFullscreen;
|
183
|
-
/** @deprecated */
|
184
|
-
|
185
|
-
BookReader.util.isFullscreenActive = isFullscreenActive;
|
186
|
-
}
|
187
|
-
/**
|
188
|
-
* Returns the DOM element being used for fullscreen.
|
189
|
-
*
|
190
|
-
* @returns {HTMLElement}
|
191
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/API/DocumentOrShadowRoot/fullscreenElement
|
192
|
-
*/
|
193
|
-
|
194
|
-
|
195
|
-
function getFullscreenElement() {
|
196
|
-
return document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement;
|
197
|
-
}
|
198
|
-
/**
|
199
|
-
* Returns true if the document is in fullscreen mode.
|
200
|
-
*
|
201
|
-
* @returns {boolean}
|
202
|
-
*/
|
203
|
-
|
204
|
-
function isFullscreenActive() {
|
205
|
-
var fullscreenElement = getFullscreenElement();
|
206
|
-
return fullscreenElement !== null && fullscreenElement !== undefined;
|
207
|
-
}
|
208
|
-
/**
|
209
|
-
* Exits fullscreen mode.
|
210
|
-
*
|
211
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/API/Document/exitFullscreen
|
212
|
-
*/
|
213
|
-
|
214
|
-
function exitFullscreen() {
|
215
|
-
if (document.exitFullscreen) {
|
216
|
-
document.exitFullscreen();
|
217
|
-
} else if (document.webkitExitFullscreen) {
|
218
|
-
document.webkitExitFullscreen();
|
219
|
-
} else if (document.mozCancelFullScreen) {
|
220
|
-
document.mozCancelFullScreen();
|
221
|
-
} else if (document.msExitFullscreen) {
|
222
|
-
document.msExitFullscreen();
|
223
|
-
}
|
224
|
-
}
|
225
|
-
/**
|
226
|
-
* Requests fullscreen mode for the given element
|
227
|
-
*
|
228
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullscreen
|
229
|
-
*/
|
230
|
-
|
231
|
-
function requestFullscreen(element) {
|
232
|
-
if (element.requestFullscreen) {
|
233
|
-
element.requestFullscreen();
|
234
|
-
} else if (element.webkitRequestFullscreen) {
|
235
|
-
element.webkitRequestFullscreen();
|
236
|
-
} else if (element.mozRequestFullScreen) {
|
237
|
-
element.mozRequestFullScreen();
|
238
|
-
} else if (element.msRequestFullscreen) {
|
239
|
-
element.msRequestFullscreen();
|
240
|
-
}
|
241
|
-
}
|
242
|
-
/**
|
243
|
-
* Returns true if fullscreen mode is allowed on this device and document.
|
244
|
-
*
|
245
|
-
* @returns {boolean}
|
246
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/API/Document/fullscreenEnabled
|
247
|
-
*/
|
248
|
-
|
249
|
-
function fullscreenAllowed() {
|
250
|
-
return document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullScreenEnabled;
|
251
|
-
}
|
252
|
-
/**
|
253
|
-
* jQuery-style binding to a fullscreenchange event.
|
254
|
-
*
|
255
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/API/Document/fullscreenchange_event
|
256
|
-
*/
|
257
|
-
|
258
|
-
function bindFullscreenChangeListener(data, fullscreenchangeListener) {
|
259
|
-
var event = 'fullscreenchange ';
|
260
|
-
var vendor_prefixes = ['webkit', 'moz', 'ms'];
|
261
|
-
var all_events = (event + vendor_prefixes.join(event) + event).trim();
|
262
|
-
$(document).on(all_events, data, fullscreenchangeListener);
|
263
|
-
}
|
264
|
-
/**
|
265
|
-
* Returns true if current device is mobile
|
266
|
-
*
|
267
|
-
* @returns {boolean}
|
268
|
-
*/
|
269
|
-
|
270
|
-
function isMobile() {
|
271
|
-
return typeof window.orientation !== 'undefined' || navigator.userAgent.indexOf('IEMobile') !== -1;
|
272
|
-
}
|
273
|
-
|
274
|
-
/***/ }),
|
275
|
-
|
276
|
-
/***/ "./node_modules/core-js/internals/string-trim-forced.js":
|
277
|
-
/*!**************************************************************!*\
|
278
|
-
!*** ./node_modules/core-js/internals/string-trim-forced.js ***!
|
279
|
-
\**************************************************************/
|
280
|
-
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
281
|
-
|
282
|
-
var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
|
283
|
-
var whitespaces = __webpack_require__(/*! ../internals/whitespaces */ "./node_modules/core-js/internals/whitespaces.js");
|
284
|
-
|
285
|
-
var non = '\u200B\u0085\u180E';
|
286
|
-
|
287
|
-
// check that a method works with the correct list
|
288
|
-
// of whitespaces and has a correct name
|
289
|
-
module.exports = function (METHOD_NAME) {
|
290
|
-
return fails(function () {
|
291
|
-
return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;
|
292
|
-
});
|
293
|
-
};
|
294
|
-
|
295
|
-
|
296
|
-
/***/ }),
|
297
|
-
|
298
|
-
/***/ "./node_modules/core-js/modules/es.string.trim.js":
|
299
|
-
/*!********************************************************!*\
|
300
|
-
!*** ./node_modules/core-js/modules/es.string.trim.js ***!
|
301
|
-
\********************************************************/
|
302
|
-
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
|
303
|
-
|
304
|
-
"use strict";
|
305
|
-
|
306
|
-
var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
|
307
|
-
var $trim = __webpack_require__(/*! ../internals/string-trim */ "./node_modules/core-js/internals/string-trim.js").trim;
|
308
|
-
var forcedStringTrimMethod = __webpack_require__(/*! ../internals/string-trim-forced */ "./node_modules/core-js/internals/string-trim-forced.js");
|
309
|
-
|
310
|
-
// `String.prototype.trim` method
|
311
|
-
// https://tc39.es/ecma262/#sec-string.prototype.trim
|
312
|
-
$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {
|
313
|
-
trim: function trim() {
|
314
|
-
return $trim(this);
|
315
|
-
}
|
316
|
-
});
|
317
|
-
|
318
|
-
|
319
|
-
/***/ })
|
320
|
-
|
321
|
-
},
|
322
|
-
/******/ function(__webpack_require__) { // webpackRuntimeModules
|
323
|
-
/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
|
324
|
-
/******/ var __webpack_exports__ = (__webpack_exec__("./src/plugins/plugin.vendor-fullscreen.js"));
|
325
|
-
/******/ }
|
326
|
-
]);
|
1
|
+
(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[46],{8688:function(e,t,n){"use strict";n(3210),n(9600);var o,r=n(3609),i=n(3609);if(!m()){var u=".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(l()).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(u),(function(t){27===t.keyCode&&e.exitFullScreen()}))},BookReader.prototype.exitFullWindow=function(){this.refs.$brContainer.css("opacity",0),i(document).off("keyup"+u),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=l,BookReader.util.bindFullscreenChangeListener=p,BookReader.util.fullscreenAllowed=d,BookReader.util.requestFullscreen=a,BookReader.util.exitFullscreen=c,BookReader.util.isFullscreenActive=s}function l(){return document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement}function s(){return null!=l()}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")}},6091:function(e,t,n){var o=n(7293),r=n(1361);e.exports=function(e){return o((function(){return!!r[e]()||"
"!="
"[e]()||r[e].name!==e}))}},3210:function(e,t,n){"use strict";var o=n(2109),r=n(3111).trim;o({target:"String",proto:!0,forced:n(6091)("trim")},{trim:function(){return r(this)}})}},function(e){e(e.s=8688)}]);
|
327
2
|
//# sourceMappingURL=plugin.vendor-fullscreen.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"plugins/plugin.vendor-fullscreen.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;AACA;AACA;AACA,IAAI,CAACA,QAAQ,EAAb,EAAiB;AACf,MAAMC,eAAe,GAAG,+BAAxB;AAEAC,EAAAA,MAAM,CAACC,MAAP,CAAcC,UAAU,CAACC,cAAzB,EAAyC;AACvC;AACAC,IAAAA,4BAA4B,EAAE;AAFS,GAAzC;AAKA;;AACAF,EAAAA,UAAU,CAACG,SAAX,CAAqBC,KAArB,GAA8B,UAASC,MAAT,EAAiB;AAC7C,WAAO,UAASC,OAAT,EAAkB;AACvBD,MAAAA,MAAM,CAACE,IAAP,CAAY,IAAZ,EAAkBD,OAAlB;AAEA,WAAKE,wBAAL,GAAgC,KAAhC;AACD,KAJD;AAKD,GAN4B,CAM1BR,UAAU,CAACG,SAAX,CAAqBC,KANK,CAA7B;AAQA;;;AACAJ,EAAAA,UAAU,CAACG,SAAX,CAAqBM,cAArB,GAAuC,UAASJ,MAAT,EAAiB;AACtD,WAAO,UAASK,MAAT,EAAiB;AACtB,UAAIC,QAAQ,GAAGN,MAAM,CAACE,IAAP,CAAY,IAAZ,EAAkBG,MAAlB,CAAf;;AACA,UAAI,KAAKF,wBAAT,EAAmC;AACjCG,QAAAA,QAAQ,GAAG,KAAKC,YAAhB;AACD;;AACD,aAAOD,QAAP;AACD,KAND;AAOD,GARqC,CAQnCX,UAAU,CAACG,SAAX,CAAqBM,cARc,CAAtC;AAUA;;;AACAT,EAAAA,UAAU,CAACG,SAAX,CAAqBU,IAArB,GAA6B,UAASR,MAAT,EAAiB;AAC5C,WAAO,YAAW;AAChBA,MAAAA,MAAM,CAACE,IAAP,CAAY,IAAZ;;AAEA,UAAI,CAACO,iBAAiB,EAAtB,EAA0B;AACxB;AACD,OALe,CAMhB;;;AACAC,MAAAA,4BAA4B,CAAC,IAAD,EAAO,UAACC,CAAD,EAAO;AACxCA,QAAAA,CAAC,CAACC,IAAF,CAAOC,MAAP;AACAF,QAAAA,CAAC,CAACC,IAAF,CAAOE,eAAP;AACA,YAAMC,WAAW,GAAGC,CAAC,CAAC,cAAD,CAArB;AACA,YAAMC,IAAI,GAAGD,CAAC,CAAC,WAAD,CAAd;;AACA,YAAIE,kBAAkB,EAAtB,EAA0B;AACxB;AACA;AACA,cAAMC,WAAW,GAAGH,CAAC,CAACI,oBAAoB,EAArB,CAArB;AACAD,UAAAA,WAAW,CAACE,MAAZ,CAAmBN,WAAnB,EAAgCM,MAAhC,CAAuCJ,IAAvC;AACD,SALD,MAKO;AACL;AACA;AACAD,UAAAA,CAAC,CAACM,QAAQ,CAACC,IAAV,CAAD,CAAiBF,MAAjB,CAAwBN,WAAxB,EAAqCM,MAArC,CAA4CJ,IAA5C;AACD;AACF,OAf2B,CAA5B;AAgBD,KAvBD;AAwBD,GAzB2B,CAyBzBtB,UAAU,CAACG,SAAX,CAAqBU,IAzBI,CAA5B;AA2BA;AACF;AACA;;;AACEb,EAAAA,UAAU,CAACG,SAAX,CAAqB0B,eAArB,GAAuC,YAAW;AAAA;;AAChD,SAAKC,IAAL,CAAUC,YAAV,CAAuBC,GAAvB,CAA2B,SAA3B,EAAsC,CAAtC;AAEA,QAAMC,WAAW,GAAGZ,CAAC,CAACa,MAAD,CAAD,CAAUC,KAAV,EAApB;;AACA,QAAIF,WAAW,IAAI,KAAKG,oBAAxB,EAA8C;AAC5C,WAAKC,UAAL,CAAgB,KAAKzB,YAArB;AACD;;AAED,SAAKJ,wBAAL,GAAgC,IAAhC;AACA,SAAKW,eAAL;AAEA,SAAKD,MAAL;AACA,SAAKoB,WAAL,CAAiB,KAAKC,YAAL,EAAjB;AAEA,SAAKT,IAAL,CAAUC,YAAV,CAAuBS,OAAvB,CAA+B;AAAEC,MAAAA,OAAO,EAAE;AAAX,KAA/B,EAA+C,GAA/C,EAAoD,QAApD;AAEApB,IAAAA,CAAC,CAACM,QAAD,CAAD,CAAYe,EAAZ,iBAAwB7C,eAAxB,GAA2C,UAAAmB,CAAC,EAAI;AAC9C,UAAIA,CAAC,CAAC2B,OAAF,KAAc,EAAlB,EAAsB,KAAI,CAACC,cAAL;AACvB,KAFD;AAGD,GAnBD;AAqBA;AACF;AACA;;;AACE5C,EAAAA,UAAU,CAACG,SAAX,CAAqB0C,cAArB,GAAsC,YAAW;AAC/C,SAAKf,IAAL,CAAUC,YAAV,CAAuBC,GAAvB,CAA2B,SAA3B,EAAsC,CAAtC;AAEAX,IAAAA,CAAC,CAACM,QAAD,CAAD,CAAYmB,GAAZ,CAAgB,UAAUjD,eAA1B;AAEA,SAAK0B,kBAAL,GAA0B,KAA1B;AACA,SAAKJ,eAAL;AAEA,SAAKD,MAAL;AACA,SAAKY,IAAL,CAAUC,YAAV,CAAuBS,OAAvB,CAA+B;AAAEC,MAAAA,OAAO,EAAE;AAAX,KAA/B,EAA+C,GAA/C,EAAoD,QAApD;AACD,GAVD;AAYA;AACF;AACA;AACA;AACA;;;AACEzC,EAAAA,UAAU,CAACG,SAAX,CAAqB4C,YAArB,GAAoC,YAAW;AAC7C,WAAOxB,kBAAkB,MAAM,KAAKf,wBAApC;AACD,GAFD;AAIA;AACF;AACA;;;AACER,EAAAA,UAAU,CAACG,SAAX,CAAqB6C,gBAArB,GAAwC,YAAW;AACjD,QAAI,KAAKD,YAAL,EAAJ,EAAyB;AACvB,UAAIjC,iBAAiB,EAArB,EAAyB;AACvBmC,QAAAA,cAAc;AACf,OAFD,MAEO;AACL,aAAKJ,cAAL;AACD;AACF,KAND,MAMO;AACL,UAAI/B,iBAAiB,EAArB,EAAyB;AACvBoC,QAAAA,iBAAiB,CAAC,KAAKpB,IAAL,CAAUqB,GAAV,CAAc,CAAd,CAAD,CAAjB;AACD,OAFD,MAEO;AACL,aAAKtB,eAAL;AACD;AACF;AACF,GAdD;AAgBA;;;AACA7B,EAAAA,UAAU,CAACoD,IAAX,CAAgBxD,QAAhB,GAA2BA,QAA3B;AAEA;;AACAI,EAAAA,UAAU,CAACoD,IAAX,CAAgB3B,oBAAhB,GAAuCA,oBAAvC;AAEA;;AACAzB,EAAAA,UAAU,CAACoD,IAAX,CAAgBrC,4BAAhB,GAA+CA,4BAA/C;AAEA;;AACAf,EAAAA,UAAU,CAACoD,IAAX,CAAgBtC,iBAAhB,GAAoCA,iBAApC;AAEA;;AACAd,EAAAA,UAAU,CAACoD,IAAX,CAAgBF,iBAAhB,GAAoCA,iBAApC;AAEA;;AACAlD,EAAAA,UAAU,CAACoD,IAAX,CAAgBH,cAAhB,GAAiCA,cAAjC;AAEA;;AACAjD,EAAAA,UAAU,CAACoD,IAAX,CAAgB7B,kBAAhB,GAAqCA,kBAArC;AACD;AAGD;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASE,oBAAT,GAAgC;AACrC,SAAOE,QAAQ,CAAC0B,iBAAT,IACL1B,QAAQ,CAAC2B,uBADJ,IAEL3B,QAAQ,CAAC4B,oBAFJ,IAGL5B,QAAQ,CAAC6B,mBAHX;AAID;AAED;AACA;AACA;AACA;AACA;;AACO,SAASjC,kBAAT,GAA8B;AACnC,MAAM8B,iBAAiB,GAAG5B,oBAAoB,EAA9C;AACA,SAAO4B,iBAAiB,KAAK,IAAtB,IAA8BA,iBAAiB,KAAKI,SAA3D;AACD;AAED;AACA;AACA;AACA;AACA;;AACO,SAASR,cAAT,GAA0B;AAC/B,MAAItB,QAAQ,CAACsB,cAAb,EAA6B;AAC3BtB,IAAAA,QAAQ,CAACsB,cAAT;AACD,GAFD,MAEO,IAAItB,QAAQ,CAAC+B,oBAAb,EAAmC;AACxC/B,IAAAA,QAAQ,CAAC+B,oBAAT;AACD,GAFM,MAEA,IAAI/B,QAAQ,CAACgC,mBAAb,EAAkC;AACvChC,IAAAA,QAAQ,CAACgC,mBAAT;AACD,GAFM,MAEA,IAAIhC,QAAQ,CAACiC,gBAAb,EAA+B;AACpCjC,IAAAA,QAAQ,CAACiC,gBAAT;AACD;AACF;AAED;AACA;AACA;AACA;AACA;;AACO,SAASV,iBAAT,CAA2BW,OAA3B,EAAoC;AACzC,MAAIA,OAAO,CAACX,iBAAZ,EAA+B;AAC7BW,IAAAA,OAAO,CAACX,iBAAR;AACD,GAFD,MAEO,IAAIW,OAAO,CAACC,uBAAZ,EAAqC;AAC1CD,IAAAA,OAAO,CAACC,uBAAR;AACD,GAFM,MAEA,IAAID,OAAO,CAACE,oBAAZ,EAAkC;AACvCF,IAAAA,OAAO,CAACE,oBAAR;AACD,GAFM,MAEA,IAAIF,OAAO,CAACG,mBAAZ,EAAiC;AACtCH,IAAAA,OAAO,CAACG,mBAAR;AACD;AACF;AAED;AACA;AACA;AACA;AACA;AACA;;AACO,SAASlD,iBAAT,GAA6B;AAClC,SAAQa,QAAQ,CAACsC,iBAAT,IACNtC,QAAQ,CAACuC,uBADH,IAENvC,QAAQ,CAACwC,oBAFH,IAGNxC,QAAQ,CAACyC,mBAHX;AAID;AAED;AACA;AACA;AACA;AACA;;AACO,SAASrD,4BAAT,CACLE,IADK,EACCoD,wBADD,EAEL;AACA,MAAMC,KAAK,GAAG,mBAAd;AACA,MAAMC,eAAe,GAAG,CACtB,QADsB,EAEtB,KAFsB,EAGtB,IAHsB,CAAxB;AAKA,MAAMC,UAAU,GAAG,CAACF,KAAK,GAAGC,eAAe,CAACE,IAAhB,CAAqBH,KAArB,CAAR,GAAsCA,KAAvC,EAA8CI,IAA9C,EAAnB;AACArD,EAAAA,CAAC,CAACM,QAAD,CAAD,CAAYe,EAAZ,CAAe8B,UAAf,EAA2BvD,IAA3B,EAAiCoD,wBAAjC;AACD;AAED;AACA;AACA;AACA;AACA;;AACO,SAASzE,QAAT,GAAoB;AACzB,SAAQ,OAAOsC,MAAM,CAACyC,WAAd,KAA8B,WAA/B,IAAgDC,SAAS,CAACC,SAAV,CAAoBC,OAApB,CAA4B,UAA5B,MAA4C,CAAC,CAApG;AACD;;;;;;;;;;ACtPD,YAAY,mBAAO,CAAC,qEAAoB;AACxC,kBAAkB,mBAAO,CAAC,iFAA0B;;AAEpD;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACXa;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,YAAY,2GAAwC;AACpD,6BAA6B,mBAAO,CAAC,+FAAiC;;AAEtE;AACA;AACA,IAAI,uEAAuE;AAC3E;AACA;AACA;AACA,CAAC","sources":["webpack://@internetarchive/bookreader/./src/plugins/plugin.vendor-fullscreen.js","webpack://@internetarchive/bookreader/./node_modules/core-js/internals/string-trim-forced.js","webpack://@internetarchive/bookreader/./node_modules/core-js/modules/es.string.trim.js"],"sourcesContent":["/* 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","var 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]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n"],"names":["isMobile","EVENT_NAMESPACE","jQuery","extend","BookReader","defaultOptions","enableVendorFullscreenPlugin","prototype","setup","super_","options","call","isVendorFullscreenActive","getInitialMode","params","nextMode","constMode1up","init","fullscreenAllowed","bindFullscreenChangeListener","e","data","resize","updateBrClasses","cboxOverlay","$","cbox","isFullscreenActive","$fullscreen","getFullscreenElement","append","document","body","enterFullWindow","refs","$brContainer","css","windowWidth","window","width","onePageMinBreakpoint","switchMode","jumpToIndex","currentIndex","animate","opacity","on","keyCode","exitFullScreen","exitFullWindow","off","isFullscreen","toggleFullscreen","exitFullscreen","requestFullscreen","$br","util","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","undefined","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","element","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullScreenEnabled","fullscreenchangeListener","event","vendor_prefixes","all_events","join","trim","orientation","navigator","userAgent","indexOf"],"sourceRoot":""}
|
1
|
+
{"version":3,"file":"plugins/plugin.vendor-fullscreen.js","mappings":"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","sources":["webpack://@internetarchive/bookreader/./src/plugins/plugin.vendor-fullscreen.js","webpack://@internetarchive/bookreader/./node_modules/core-js/internals/string-trim-forced.js","webpack://@internetarchive/bookreader/./node_modules/core-js/modules/es.string.trim.js"],"sourcesContent":["/* 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","var 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]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n"],"names":["super_","isMobile","EVENT_NAMESPACE","jQuery","extend","BookReader","defaultOptions","enableVendorFullscreenPlugin","prototype","setup","options","call","this","isVendorFullscreenActive","getInitialMode","params","nextMode","constMode1up","init","fullscreenAllowed","bindFullscreenChangeListener","e","data","resize","updateBrClasses","cboxOverlay","$","cbox","isFullscreenActive","getFullscreenElement","append","document","body","enterFullWindow","refs","$brContainer","css","window","width","onePageMinBreakpoint","switchMode","jumpToIndex","currentIndex","animate","opacity","on","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","trim","orientation","navigator","userAgent","indexOf","fails","whitespaces","module","exports","METHOD_NAME","name","$trim","target","proto","forced","forcedStringTrimMethod"],"sourceRoot":""}
|