From 051eb278d233a214145673c86e924642348a8b7b Mon Sep 17 00:00:00 2001 From: Kilian Saffran Date: Tue, 22 Oct 2019 18:24:12 +0200 Subject: [PATCH] VERSION 20191022 --- CGI/api/db.cgi | 8 +- CGI/api/lib/audio.pm | 1636 +- CGI/api/lib/dksdb.pm | 36 +- CGI/api/playlist.cgi | 111 + CGI/index.cgi | 3 +- CGI/tmpl/app/creorga/index.tt | 178 +- .../module/calendar/calorganisation.tt | 946 +- .../app/creorga/module/calendar/calvacancy.tt | 138 +- CGI/tmpl/app/creorga/module/calendar/index.tt | 198 +- .../creorga/module/calendar/js/calactivity.js | 1934 +- .../creorga/module/calendar/js/calchilds.js | 846 +- .../creorga/module/calendar/js/calvacancy.js | 574 +- CGI/tmpl/app/creorga/module/childs/child.tt | 1596 +- CGI/tmpl/app/creorga/module/childs/index.tt | 164 +- .../app/creorga/module/childs/js/child.js | 1904 +- .../app/creorga/module/childs/js/childs.js | 254 +- .../app/creorga/module/childs/js/filters.js | 102 +- CGI/tmpl/app/creorga/module/creche/creche.tt | 1510 +- .../app/creorga/module/creche/js/creche.js | 932 +- .../module/presences/dailypresences.tt | 356 +- .../module/presences/js/dailypresences.js | 808 +- .../module/presences/js/weeklypresences.js | 978 +- .../module/presences/weeklypresences.tt | 338 +- CGI/tmpl/app/creorga/module/staff/coworker.tt | 1290 +- .../app/creorga/module/staff/js/coworker.js | 1808 +- CGI/tmpl/app/creorga/module/staff/js/staff.js | 224 +- .../app/creorga/module/staff/stafflist.tt | 152 +- CGI/tmpl/app/invoicejournal/index.tt | 7 +- .../module/bankaccount/index.tt | 78 +- .../invoicejournal/module/dashboard/module.js | 4 +- .../invoicejournal/module/expenses/index.tt | 4 +- .../invoicejournal/module/expenses/module.js | 4 +- .../module/invoicejournal/index.js | 95 +- .../module/invoicejournal/index.tt | 74 +- .../invoicejournal/module/invoices/index.js | 244 +- .../invoicejournal/module/invoices/index.tt | 40 +- .../invoicejournal/module/invoices/module.js | 132 +- .../app/invoicejournal/module/offers/index.tt | 48 +- .../{bookings => sales}/form_booking.js | 0 .../{bookings => sales}/form_booking.tt | 0 .../module/{bookings => sales}/index.js | 0 .../module/{bookings => sales}/index.tt | 0 .../module/{bookings => sales}/lib/booking.js | 0 CGI/tmpl/macro/fields.tt | 14 +- CGI/tmpl/skeleton/module.tt | 9 +- bin/clr_install.pl | 430 +- bin/clr_playlists.pl | 1062 +- bin/clr_tousbdrive.pl | 110 +- bin/file_backup.pl | 324 +- bin/sqlitedumpdata.pl | 94 +- dev/install.sh | 58 +- htdocs/css/w3pro.css | 1 + htdocs/img/icons/pictures_white.svg | 8 +- htdocs/js/admin.js | 195 +- htdocs/js/database.js | 170 +- htdocs/js/fieldsave.js | 94 +- htdocs/js/webdatabase.js | 158 +- htdocs/vendor/flatpickr/flatpickr.js | 48 +- .../plugins/confirmDate/confirmDate.js | 48 +- .../flatpickr/plugins/monthSelect/index.js | 48 +- htdocs/vendor/pdfjs/LICENSE | 177 + htdocs/vendor/pdfjs/build/pdf.js | 24624 +++++++ htdocs/vendor/pdfjs/build/pdf.js.map | 1 + htdocs/vendor/pdfjs/build/pdf.worker.js | 56199 ++++++++++++++++ htdocs/vendor/pdfjs/build/pdf.worker.js.map | 1 + htdocs/vendor/pdfjs/web/cmaps/78-EUC-H.bcmap | Bin 0 -> 2404 bytes htdocs/vendor/pdfjs/web/cmaps/78-EUC-V.bcmap | Bin 0 -> 173 bytes htdocs/vendor/pdfjs/web/cmaps/78-H.bcmap | Bin 0 -> 2379 bytes htdocs/vendor/pdfjs/web/cmaps/78-RKSJ-H.bcmap | Bin 0 -> 2398 bytes htdocs/vendor/pdfjs/web/cmaps/78-RKSJ-V.bcmap | Bin 0 -> 173 bytes htdocs/vendor/pdfjs/web/cmaps/78-V.bcmap | Bin 0 -> 169 bytes .../vendor/pdfjs/web/cmaps/78ms-RKSJ-H.bcmap | Bin 0 -> 2651 bytes .../vendor/pdfjs/web/cmaps/78ms-RKSJ-V.bcmap | Bin 0 -> 290 bytes .../vendor/pdfjs/web/cmaps/83pv-RKSJ-H.bcmap | Bin 0 -> 905 bytes .../vendor/pdfjs/web/cmaps/90ms-RKSJ-H.bcmap | Bin 0 -> 721 bytes .../vendor/pdfjs/web/cmaps/90ms-RKSJ-V.bcmap | Bin 0 -> 290 bytes .../vendor/pdfjs/web/cmaps/90msp-RKSJ-H.bcmap | Bin 0 -> 715 bytes .../vendor/pdfjs/web/cmaps/90msp-RKSJ-V.bcmap | Bin 0 -> 291 bytes .../vendor/pdfjs/web/cmaps/90pv-RKSJ-H.bcmap | Bin 0 -> 982 bytes .../vendor/pdfjs/web/cmaps/90pv-RKSJ-V.bcmap | Bin 0 -> 260 bytes htdocs/vendor/pdfjs/web/cmaps/Add-H.bcmap | Bin 0 -> 2419 bytes .../vendor/pdfjs/web/cmaps/Add-RKSJ-H.bcmap | Bin 0 -> 2413 bytes .../vendor/pdfjs/web/cmaps/Add-RKSJ-V.bcmap | Bin 0 -> 287 bytes htdocs/vendor/pdfjs/web/cmaps/Add-V.bcmap | Bin 0 -> 282 bytes .../vendor/pdfjs/web/cmaps/Adobe-CNS1-0.bcmap | Bin 0 -> 317 bytes .../vendor/pdfjs/web/cmaps/Adobe-CNS1-1.bcmap | Bin 0 -> 371 bytes .../vendor/pdfjs/web/cmaps/Adobe-CNS1-2.bcmap | Bin 0 -> 376 bytes .../vendor/pdfjs/web/cmaps/Adobe-CNS1-3.bcmap | Bin 0 -> 401 bytes .../vendor/pdfjs/web/cmaps/Adobe-CNS1-4.bcmap | Bin 0 -> 405 bytes .../vendor/pdfjs/web/cmaps/Adobe-CNS1-5.bcmap | Bin 0 -> 406 bytes .../vendor/pdfjs/web/cmaps/Adobe-CNS1-6.bcmap | Bin 0 -> 406 bytes .../pdfjs/web/cmaps/Adobe-CNS1-UCS2.bcmap | Bin 0 -> 41193 bytes .../vendor/pdfjs/web/cmaps/Adobe-GB1-0.bcmap | Bin 0 -> 217 bytes .../vendor/pdfjs/web/cmaps/Adobe-GB1-1.bcmap | Bin 0 -> 250 bytes .../vendor/pdfjs/web/cmaps/Adobe-GB1-2.bcmap | Bin 0 -> 465 bytes .../vendor/pdfjs/web/cmaps/Adobe-GB1-3.bcmap | Bin 0 -> 470 bytes .../vendor/pdfjs/web/cmaps/Adobe-GB1-4.bcmap | Bin 0 -> 601 bytes .../vendor/pdfjs/web/cmaps/Adobe-GB1-5.bcmap | Bin 0 -> 625 bytes .../pdfjs/web/cmaps/Adobe-GB1-UCS2.bcmap | Bin 0 -> 33974 bytes .../pdfjs/web/cmaps/Adobe-Japan1-0.bcmap | Bin 0 -> 225 bytes .../pdfjs/web/cmaps/Adobe-Japan1-1.bcmap | Bin 0 -> 226 bytes .../pdfjs/web/cmaps/Adobe-Japan1-2.bcmap | Bin 0 -> 233 bytes .../pdfjs/web/cmaps/Adobe-Japan1-3.bcmap | Bin 0 -> 242 bytes .../pdfjs/web/cmaps/Adobe-Japan1-4.bcmap | Bin 0 -> 337 bytes .../pdfjs/web/cmaps/Adobe-Japan1-5.bcmap | Bin 0 -> 430 bytes .../pdfjs/web/cmaps/Adobe-Japan1-6.bcmap | Bin 0 -> 485 bytes .../pdfjs/web/cmaps/Adobe-Japan1-UCS2.bcmap | Bin 0 -> 40951 bytes .../pdfjs/web/cmaps/Adobe-Korea1-0.bcmap | Bin 0 -> 241 bytes .../pdfjs/web/cmaps/Adobe-Korea1-1.bcmap | Bin 0 -> 386 bytes .../pdfjs/web/cmaps/Adobe-Korea1-2.bcmap | Bin 0 -> 391 bytes .../pdfjs/web/cmaps/Adobe-Korea1-UCS2.bcmap | Bin 0 -> 23293 bytes htdocs/vendor/pdfjs/web/cmaps/B5-H.bcmap | Bin 0 -> 1086 bytes htdocs/vendor/pdfjs/web/cmaps/B5-V.bcmap | Bin 0 -> 142 bytes htdocs/vendor/pdfjs/web/cmaps/B5pc-H.bcmap | Bin 0 -> 1099 bytes htdocs/vendor/pdfjs/web/cmaps/B5pc-V.bcmap | Bin 0 -> 144 bytes htdocs/vendor/pdfjs/web/cmaps/CNS-EUC-H.bcmap | Bin 0 -> 1780 bytes htdocs/vendor/pdfjs/web/cmaps/CNS-EUC-V.bcmap | Bin 0 -> 1920 bytes htdocs/vendor/pdfjs/web/cmaps/CNS1-H.bcmap | Bin 0 -> 706 bytes htdocs/vendor/pdfjs/web/cmaps/CNS1-V.bcmap | Bin 0 -> 143 bytes htdocs/vendor/pdfjs/web/cmaps/CNS2-H.bcmap | Bin 0 -> 504 bytes htdocs/vendor/pdfjs/web/cmaps/CNS2-V.bcmap | 3 + htdocs/vendor/pdfjs/web/cmaps/ETHK-B5-H.bcmap | Bin 0 -> 4426 bytes htdocs/vendor/pdfjs/web/cmaps/ETHK-B5-V.bcmap | Bin 0 -> 158 bytes htdocs/vendor/pdfjs/web/cmaps/ETen-B5-H.bcmap | Bin 0 -> 1125 bytes htdocs/vendor/pdfjs/web/cmaps/ETen-B5-V.bcmap | Bin 0 -> 158 bytes .../vendor/pdfjs/web/cmaps/ETenms-B5-H.bcmap | 3 + .../vendor/pdfjs/web/cmaps/ETenms-B5-V.bcmap | Bin 0 -> 172 bytes htdocs/vendor/pdfjs/web/cmaps/EUC-H.bcmap | Bin 0 -> 578 bytes htdocs/vendor/pdfjs/web/cmaps/EUC-V.bcmap | Bin 0 -> 170 bytes htdocs/vendor/pdfjs/web/cmaps/Ext-H.bcmap | Bin 0 -> 2536 bytes .../vendor/pdfjs/web/cmaps/Ext-RKSJ-H.bcmap | Bin 0 -> 2542 bytes .../vendor/pdfjs/web/cmaps/Ext-RKSJ-V.bcmap | Bin 0 -> 218 bytes htdocs/vendor/pdfjs/web/cmaps/Ext-V.bcmap | Bin 0 -> 215 bytes htdocs/vendor/pdfjs/web/cmaps/GB-EUC-H.bcmap | Bin 0 -> 549 bytes htdocs/vendor/pdfjs/web/cmaps/GB-EUC-V.bcmap | Bin 0 -> 179 bytes htdocs/vendor/pdfjs/web/cmaps/GB-H.bcmap | 4 + htdocs/vendor/pdfjs/web/cmaps/GB-V.bcmap | Bin 0 -> 175 bytes htdocs/vendor/pdfjs/web/cmaps/GBK-EUC-H.bcmap | Bin 0 -> 14692 bytes htdocs/vendor/pdfjs/web/cmaps/GBK-EUC-V.bcmap | Bin 0 -> 180 bytes htdocs/vendor/pdfjs/web/cmaps/GBK2K-H.bcmap | Bin 0 -> 19662 bytes htdocs/vendor/pdfjs/web/cmaps/GBK2K-V.bcmap | Bin 0 -> 219 bytes .../vendor/pdfjs/web/cmaps/GBKp-EUC-H.bcmap | Bin 0 -> 14686 bytes .../vendor/pdfjs/web/cmaps/GBKp-EUC-V.bcmap | Bin 0 -> 181 bytes htdocs/vendor/pdfjs/web/cmaps/GBT-EUC-H.bcmap | Bin 0 -> 7290 bytes htdocs/vendor/pdfjs/web/cmaps/GBT-EUC-V.bcmap | Bin 0 -> 180 bytes htdocs/vendor/pdfjs/web/cmaps/GBT-H.bcmap | Bin 0 -> 7269 bytes htdocs/vendor/pdfjs/web/cmaps/GBT-V.bcmap | Bin 0 -> 176 bytes .../vendor/pdfjs/web/cmaps/GBTpc-EUC-H.bcmap | Bin 0 -> 7298 bytes .../vendor/pdfjs/web/cmaps/GBTpc-EUC-V.bcmap | Bin 0 -> 182 bytes .../vendor/pdfjs/web/cmaps/GBpc-EUC-H.bcmap | Bin 0 -> 557 bytes .../vendor/pdfjs/web/cmaps/GBpc-EUC-V.bcmap | Bin 0 -> 181 bytes htdocs/vendor/pdfjs/web/cmaps/H.bcmap | Bin 0 -> 553 bytes .../vendor/pdfjs/web/cmaps/HKdla-B5-H.bcmap | Bin 0 -> 2654 bytes .../vendor/pdfjs/web/cmaps/HKdla-B5-V.bcmap | Bin 0 -> 148 bytes .../vendor/pdfjs/web/cmaps/HKdlb-B5-H.bcmap | Bin 0 -> 2414 bytes .../vendor/pdfjs/web/cmaps/HKdlb-B5-V.bcmap | Bin 0 -> 148 bytes .../vendor/pdfjs/web/cmaps/HKgccs-B5-H.bcmap | Bin 0 -> 2292 bytes .../vendor/pdfjs/web/cmaps/HKgccs-B5-V.bcmap | Bin 0 -> 149 bytes .../vendor/pdfjs/web/cmaps/HKm314-B5-H.bcmap | Bin 0 -> 1772 bytes .../vendor/pdfjs/web/cmaps/HKm314-B5-V.bcmap | Bin 0 -> 149 bytes .../vendor/pdfjs/web/cmaps/HKm471-B5-H.bcmap | Bin 0 -> 2171 bytes .../vendor/pdfjs/web/cmaps/HKm471-B5-V.bcmap | Bin 0 -> 149 bytes .../vendor/pdfjs/web/cmaps/HKscs-B5-H.bcmap | Bin 0 -> 4437 bytes .../vendor/pdfjs/web/cmaps/HKscs-B5-V.bcmap | Bin 0 -> 159 bytes htdocs/vendor/pdfjs/web/cmaps/Hankaku.bcmap | Bin 0 -> 132 bytes htdocs/vendor/pdfjs/web/cmaps/Hiragana.bcmap | Bin 0 -> 124 bytes htdocs/vendor/pdfjs/web/cmaps/KSC-EUC-H.bcmap | Bin 0 -> 1848 bytes htdocs/vendor/pdfjs/web/cmaps/KSC-EUC-V.bcmap | Bin 0 -> 164 bytes htdocs/vendor/pdfjs/web/cmaps/KSC-H.bcmap | Bin 0 -> 1831 bytes .../vendor/pdfjs/web/cmaps/KSC-Johab-H.bcmap | Bin 0 -> 16791 bytes .../vendor/pdfjs/web/cmaps/KSC-Johab-V.bcmap | Bin 0 -> 166 bytes htdocs/vendor/pdfjs/web/cmaps/KSC-V.bcmap | Bin 0 -> 160 bytes .../vendor/pdfjs/web/cmaps/KSCms-UHC-H.bcmap | Bin 0 -> 2787 bytes .../pdfjs/web/cmaps/KSCms-UHC-HW-H.bcmap | Bin 0 -> 2789 bytes .../pdfjs/web/cmaps/KSCms-UHC-HW-V.bcmap | Bin 0 -> 169 bytes .../vendor/pdfjs/web/cmaps/KSCms-UHC-V.bcmap | Bin 0 -> 166 bytes .../vendor/pdfjs/web/cmaps/KSCpc-EUC-H.bcmap | Bin 0 -> 2024 bytes .../vendor/pdfjs/web/cmaps/KSCpc-EUC-V.bcmap | Bin 0 -> 166 bytes htdocs/vendor/pdfjs/web/cmaps/Katakana.bcmap | Bin 0 -> 100 bytes htdocs/vendor/pdfjs/web/cmaps/LICENSE | 36 + htdocs/vendor/pdfjs/web/cmaps/NWP-H.bcmap | Bin 0 -> 2765 bytes htdocs/vendor/pdfjs/web/cmaps/NWP-V.bcmap | Bin 0 -> 252 bytes htdocs/vendor/pdfjs/web/cmaps/RKSJ-H.bcmap | Bin 0 -> 534 bytes htdocs/vendor/pdfjs/web/cmaps/RKSJ-V.bcmap | Bin 0 -> 170 bytes htdocs/vendor/pdfjs/web/cmaps/Roman.bcmap | Bin 0 -> 96 bytes .../pdfjs/web/cmaps/UniCNS-UCS2-H.bcmap | Bin 0 -> 48280 bytes .../pdfjs/web/cmaps/UniCNS-UCS2-V.bcmap | Bin 0 -> 156 bytes .../pdfjs/web/cmaps/UniCNS-UTF16-H.bcmap | Bin 0 -> 50419 bytes .../pdfjs/web/cmaps/UniCNS-UTF16-V.bcmap | Bin 0 -> 156 bytes .../pdfjs/web/cmaps/UniCNS-UTF32-H.bcmap | Bin 0 -> 52679 bytes .../pdfjs/web/cmaps/UniCNS-UTF32-V.bcmap | Bin 0 -> 160 bytes .../pdfjs/web/cmaps/UniCNS-UTF8-H.bcmap | Bin 0 -> 53629 bytes .../pdfjs/web/cmaps/UniCNS-UTF8-V.bcmap | Bin 0 -> 157 bytes .../vendor/pdfjs/web/cmaps/UniGB-UCS2-H.bcmap | Bin 0 -> 43366 bytes .../vendor/pdfjs/web/cmaps/UniGB-UCS2-V.bcmap | Bin 0 -> 193 bytes .../pdfjs/web/cmaps/UniGB-UTF16-H.bcmap | Bin 0 -> 44086 bytes .../pdfjs/web/cmaps/UniGB-UTF16-V.bcmap | Bin 0 -> 178 bytes .../pdfjs/web/cmaps/UniGB-UTF32-H.bcmap | Bin 0 -> 45738 bytes .../pdfjs/web/cmaps/UniGB-UTF32-V.bcmap | Bin 0 -> 182 bytes .../vendor/pdfjs/web/cmaps/UniGB-UTF8-H.bcmap | Bin 0 -> 46837 bytes .../vendor/pdfjs/web/cmaps/UniGB-UTF8-V.bcmap | Bin 0 -> 181 bytes .../pdfjs/web/cmaps/UniJIS-UCS2-H.bcmap | Bin 0 -> 25439 bytes .../pdfjs/web/cmaps/UniJIS-UCS2-HW-H.bcmap | Bin 0 -> 119 bytes .../pdfjs/web/cmaps/UniJIS-UCS2-HW-V.bcmap | Bin 0 -> 680 bytes .../pdfjs/web/cmaps/UniJIS-UCS2-V.bcmap | Bin 0 -> 664 bytes .../pdfjs/web/cmaps/UniJIS-UTF16-H.bcmap | Bin 0 -> 39443 bytes .../pdfjs/web/cmaps/UniJIS-UTF16-V.bcmap | Bin 0 -> 643 bytes .../pdfjs/web/cmaps/UniJIS-UTF32-H.bcmap | Bin 0 -> 40539 bytes .../pdfjs/web/cmaps/UniJIS-UTF32-V.bcmap | Bin 0 -> 677 bytes .../pdfjs/web/cmaps/UniJIS-UTF8-H.bcmap | Bin 0 -> 41695 bytes .../pdfjs/web/cmaps/UniJIS-UTF8-V.bcmap | Bin 0 -> 678 bytes .../pdfjs/web/cmaps/UniJIS2004-UTF16-H.bcmap | Bin 0 -> 39534 bytes .../pdfjs/web/cmaps/UniJIS2004-UTF16-V.bcmap | Bin 0 -> 647 bytes .../pdfjs/web/cmaps/UniJIS2004-UTF32-H.bcmap | Bin 0 -> 40630 bytes .../pdfjs/web/cmaps/UniJIS2004-UTF32-V.bcmap | Bin 0 -> 681 bytes .../pdfjs/web/cmaps/UniJIS2004-UTF8-H.bcmap | Bin 0 -> 41779 bytes .../pdfjs/web/cmaps/UniJIS2004-UTF8-V.bcmap | Bin 0 -> 682 bytes .../pdfjs/web/cmaps/UniJISPro-UCS2-HW-V.bcmap | Bin 0 -> 705 bytes .../pdfjs/web/cmaps/UniJISPro-UCS2-V.bcmap | Bin 0 -> 689 bytes .../pdfjs/web/cmaps/UniJISPro-UTF8-V.bcmap | Bin 0 -> 726 bytes .../pdfjs/web/cmaps/UniJISX0213-UTF32-H.bcmap | Bin 0 -> 40517 bytes .../pdfjs/web/cmaps/UniJISX0213-UTF32-V.bcmap | Bin 0 -> 684 bytes .../web/cmaps/UniJISX02132004-UTF32-H.bcmap | Bin 0 -> 40608 bytes .../web/cmaps/UniJISX02132004-UTF32-V.bcmap | Bin 0 -> 688 bytes .../vendor/pdfjs/web/cmaps/UniKS-UCS2-H.bcmap | Bin 0 -> 25783 bytes .../vendor/pdfjs/web/cmaps/UniKS-UCS2-V.bcmap | Bin 0 -> 178 bytes .../pdfjs/web/cmaps/UniKS-UTF16-H.bcmap | Bin 0 -> 26327 bytes .../pdfjs/web/cmaps/UniKS-UTF16-V.bcmap | Bin 0 -> 164 bytes .../pdfjs/web/cmaps/UniKS-UTF32-H.bcmap | Bin 0 -> 26451 bytes .../pdfjs/web/cmaps/UniKS-UTF32-V.bcmap | Bin 0 -> 168 bytes .../vendor/pdfjs/web/cmaps/UniKS-UTF8-H.bcmap | Bin 0 -> 27790 bytes .../vendor/pdfjs/web/cmaps/UniKS-UTF8-V.bcmap | Bin 0 -> 169 bytes htdocs/vendor/pdfjs/web/cmaps/V.bcmap | Bin 0 -> 166 bytes htdocs/vendor/pdfjs/web/cmaps/WP-Symbol.bcmap | Bin 0 -> 179 bytes .../web/compressed.tracemonkey-pldi-09.pdf | Bin 0 -> 1016315 bytes htdocs/vendor/pdfjs/web/debugger.js | 615 + .../pdfjs/web/images/annotation-check.svg | 11 + .../pdfjs/web/images/annotation-comment.svg | 16 + .../pdfjs/web/images/annotation-help.svg | 26 + .../pdfjs/web/images/annotation-insert.svg | 10 + .../pdfjs/web/images/annotation-key.svg | 11 + .../web/images/annotation-newparagraph.svg | 11 + .../pdfjs/web/images/annotation-noicon.svg | 7 + .../pdfjs/web/images/annotation-note.svg | 42 + .../pdfjs/web/images/annotation-paragraph.svg | 16 + .../web/images/findbarButton-next-rtl.png | Bin 0 -> 199 bytes .../web/images/findbarButton-next-rtl@2x.png | Bin 0 -> 304 bytes .../pdfjs/web/images/findbarButton-next.png | Bin 0 -> 193 bytes .../web/images/findbarButton-next@2x.png | Bin 0 -> 296 bytes .../web/images/findbarButton-previous-rtl.png | Bin 0 -> 193 bytes .../images/findbarButton-previous-rtl@2x.png | Bin 0 -> 296 bytes .../web/images/findbarButton-previous.png | Bin 0 -> 199 bytes .../web/images/findbarButton-previous@2x.png | Bin 0 -> 304 bytes htdocs/vendor/pdfjs/web/images/grab.cur | Bin 0 -> 326 bytes htdocs/vendor/pdfjs/web/images/grabbing.cur | Bin 0 -> 326 bytes .../vendor/pdfjs/web/images/loading-icon.gif | Bin 0 -> 2545 bytes .../vendor/pdfjs/web/images/loading-small.png | Bin 0 -> 7402 bytes .../pdfjs/web/images/loading-small@2x.png | Bin 0 -> 16131 bytes ...ondaryToolbarButton-documentProperties.png | Bin 0 -> 403 bytes ...aryToolbarButton-documentProperties@2x.png | Bin 0 -> 933 bytes .../secondaryToolbarButton-firstPage.png | Bin 0 -> 179 bytes .../secondaryToolbarButton-firstPage@2x.png | Bin 0 -> 266 bytes .../secondaryToolbarButton-handTool.png | Bin 0 -> 301 bytes .../secondaryToolbarButton-handTool@2x.png | Bin 0 -> 583 bytes .../secondaryToolbarButton-lastPage.png | Bin 0 -> 175 bytes .../secondaryToolbarButton-lastPage@2x.png | Bin 0 -> 276 bytes .../secondaryToolbarButton-rotateCcw.png | Bin 0 -> 360 bytes .../secondaryToolbarButton-rotateCcw@2x.png | Bin 0 -> 731 bytes .../secondaryToolbarButton-rotateCw.png | Bin 0 -> 359 bytes .../secondaryToolbarButton-rotateCw@2x.png | Bin 0 -> 714 bytes ...econdaryToolbarButton-scrollHorizontal.png | Bin 0 -> 218 bytes ...ndaryToolbarButton-scrollHorizontal@2x.png | Bin 0 -> 332 bytes .../secondaryToolbarButton-scrollVertical.png | Bin 0 -> 228 bytes ...condaryToolbarButton-scrollVertical@2x.png | Bin 0 -> 349 bytes .../secondaryToolbarButton-scrollWrapped.png | Bin 0 -> 297 bytes ...econdaryToolbarButton-scrollWrapped@2x.png | Bin 0 -> 490 bytes .../secondaryToolbarButton-selectTool.png | Bin 0 -> 461 bytes .../secondaryToolbarButton-selectTool@2x.png | Bin 0 -> 1067 bytes .../secondaryToolbarButton-spreadEven.png | Bin 0 -> 347 bytes .../secondaryToolbarButton-spreadEven@2x.png | Bin 0 -> 694 bytes .../secondaryToolbarButton-spreadNone.png | Bin 0 -> 179 bytes .../secondaryToolbarButton-spreadNone@2x.png | Bin 0 -> 261 bytes .../secondaryToolbarButton-spreadOdd.png | Bin 0 -> 344 bytes .../secondaryToolbarButton-spreadOdd@2x.png | Bin 0 -> 621 bytes htdocs/vendor/pdfjs/web/images/shadow.png | Bin 0 -> 290 bytes htdocs/vendor/pdfjs/web/images/texture.png | Bin 0 -> 2417 bytes .../web/images/toolbarButton-bookmark.png | Bin 0 -> 174 bytes .../web/images/toolbarButton-bookmark@2x.png | Bin 0 -> 260 bytes .../web/images/toolbarButton-download.png | Bin 0 -> 259 bytes .../web/images/toolbarButton-download@2x.png | Bin 0 -> 425 bytes .../web/images/toolbarButton-menuArrows.png | Bin 0 -> 107 bytes .../images/toolbarButton-menuArrows@2x.png | Bin 0 -> 152 bytes .../web/images/toolbarButton-openFile.png | Bin 0 -> 295 bytes .../web/images/toolbarButton-openFile@2x.png | Bin 0 -> 550 bytes .../web/images/toolbarButton-pageDown-rtl.png | Bin 0 -> 242 bytes .../images/toolbarButton-pageDown-rtl@2x.png | Bin 0 -> 398 bytes .../web/images/toolbarButton-pageDown.png | Bin 0 -> 238 bytes .../web/images/toolbarButton-pageDown@2x.png | Bin 0 -> 396 bytes .../web/images/toolbarButton-pageUp-rtl.png | Bin 0 -> 245 bytes .../images/toolbarButton-pageUp-rtl@2x.png | Bin 0 -> 405 bytes .../pdfjs/web/images/toolbarButton-pageUp.png | Bin 0 -> 246 bytes .../web/images/toolbarButton-pageUp@2x.png | Bin 0 -> 403 bytes .../images/toolbarButton-presentationMode.png | Bin 0 -> 321 bytes .../toolbarButton-presentationMode@2x.png | Bin 0 -> 586 bytes .../pdfjs/web/images/toolbarButton-print.png | Bin 0 -> 257 bytes .../web/images/toolbarButton-print@2x.png | Bin 0 -> 464 bytes .../pdfjs/web/images/toolbarButton-search.png | Bin 0 -> 309 bytes .../web/images/toolbarButton-search@2x.png | Bin 0 -> 653 bytes ...olbarButton-secondaryToolbarToggle-rtl.png | Bin 0 -> 246 bytes ...arButton-secondaryToolbarToggle-rtl@2x.png | Bin 0 -> 456 bytes .../toolbarButton-secondaryToolbarToggle.png | Bin 0 -> 243 bytes ...oolbarButton-secondaryToolbarToggle@2x.png | Bin 0 -> 458 bytes .../toolbarButton-sidebarToggle-rtl.png | Bin 0 -> 225 bytes .../toolbarButton-sidebarToggle-rtl@2x.png | Bin 0 -> 344 bytes .../images/toolbarButton-sidebarToggle.png | Bin 0 -> 225 bytes .../images/toolbarButton-sidebarToggle@2x.png | Bin 0 -> 331 bytes .../images/toolbarButton-viewAttachments.png | Bin 0 -> 384 bytes .../toolbarButton-viewAttachments@2x.png | Bin 0 -> 859 bytes .../images/toolbarButton-viewOutline-rtl.png | Bin 0 -> 177 bytes .../toolbarButton-viewOutline-rtl@2x.png | Bin 0 -> 394 bytes .../web/images/toolbarButton-viewOutline.png | Bin 0 -> 178 bytes .../images/toolbarButton-viewOutline@2x.png | Bin 0 -> 331 bytes .../images/toolbarButton-viewThumbnail.png | Bin 0 -> 185 bytes .../images/toolbarButton-viewThumbnail@2x.png | Bin 0 -> 219 bytes .../pdfjs/web/images/toolbarButton-zoomIn.png | Bin 0 -> 136 bytes .../web/images/toolbarButton-zoomIn@2x.png | Bin 0 -> 160 bytes .../web/images/toolbarButton-zoomOut.png | Bin 0 -> 88 bytes .../web/images/toolbarButton-zoomOut@2x.png | Bin 0 -> 109 bytes .../web/images/treeitem-collapsed-rtl.png | Bin 0 -> 143 bytes .../web/images/treeitem-collapsed-rtl@2x.png | Bin 0 -> 167 bytes .../pdfjs/web/images/treeitem-collapsed.png | Bin 0 -> 128 bytes .../web/images/treeitem-collapsed@2x.png | Bin 0 -> 149 bytes .../pdfjs/web/images/treeitem-expanded.png | Bin 0 -> 125 bytes .../pdfjs/web/images/treeitem-expanded@2x.png | Bin 0 -> 172 bytes .../pdfjs/web/locale/ach/viewer.properties | 207 + .../pdfjs/web/locale/af/viewer.properties | 184 + .../pdfjs/web/locale/ak/viewer.properties | 130 + .../pdfjs/web/locale/an/viewer.properties | 184 + .../pdfjs/web/locale/ar/viewer.properties | 246 + .../pdfjs/web/locale/as/viewer.properties | 167 + .../pdfjs/web/locale/ast/viewer.properties | 201 + .../pdfjs/web/locale/az/viewer.properties | 242 + .../pdfjs/web/locale/be/viewer.properties | 246 + .../pdfjs/web/locale/bg/viewer.properties | 242 + .../pdfjs/web/locale/bn-BD/viewer.properties | 232 + .../pdfjs/web/locale/bn-IN/viewer.properties | 242 + .../pdfjs/web/locale/br/viewer.properties | 246 + .../pdfjs/web/locale/brx/viewer.properties | 167 + .../pdfjs/web/locale/bs/viewer.properties | 201 + .../pdfjs/web/locale/ca/viewer.properties | 236 + .../pdfjs/web/locale/cak/viewer.properties | 246 + .../pdfjs/web/locale/crh/viewer.properties | 242 + .../pdfjs/web/locale/cs/viewer.properties | 246 + .../pdfjs/web/locale/csb/viewer.properties | 134 + .../pdfjs/web/locale/cy/viewer.properties | 246 + .../pdfjs/web/locale/da/viewer.properties | 246 + .../pdfjs/web/locale/de/viewer.properties | 246 + .../pdfjs/web/locale/el/viewer.properties | 246 + .../pdfjs/web/locale/en-CA/viewer.properties | 246 + .../pdfjs/web/locale/en-GB/viewer.properties | 246 + .../pdfjs/web/locale/en-US/viewer.properties | 246 + .../pdfjs/web/locale/en-ZA/viewer.properties | 170 + .../pdfjs/web/locale/eo/viewer.properties | 246 + .../pdfjs/web/locale/es-AR/viewer.properties | 246 + .../pdfjs/web/locale/es-CL/viewer.properties | 246 + .../pdfjs/web/locale/es-ES/viewer.properties | 246 + .../pdfjs/web/locale/es-MX/viewer.properties | 242 + .../pdfjs/web/locale/et/viewer.properties | 246 + .../pdfjs/web/locale/eu/viewer.properties | 246 + .../pdfjs/web/locale/fa/viewer.properties | 223 + .../pdfjs/web/locale/ff/viewer.properties | 242 + .../pdfjs/web/locale/fi/viewer.properties | 246 + .../pdfjs/web/locale/fr/viewer.properties | 246 + .../pdfjs/web/locale/fy-NL/viewer.properties | 246 + .../pdfjs/web/locale/ga-IE/viewer.properties | 184 + .../pdfjs/web/locale/gd/viewer.properties | 242 + .../pdfjs/web/locale/gl/viewer.properties | 242 + .../pdfjs/web/locale/gn/viewer.properties | 246 + .../pdfjs/web/locale/gu-IN/viewer.properties | 242 + .../pdfjs/web/locale/he/viewer.properties | 246 + .../pdfjs/web/locale/hi-IN/viewer.properties | 228 + .../pdfjs/web/locale/hr/viewer.properties | 246 + .../pdfjs/web/locale/hsb/viewer.properties | 246 + .../pdfjs/web/locale/hto/viewer.properties | 127 + .../pdfjs/web/locale/hu/viewer.properties | 246 + .../pdfjs/web/locale/hy-AM/viewer.properties | 201 + .../pdfjs/web/locale/ia/viewer.properties | 246 + .../pdfjs/web/locale/id/viewer.properties | 246 + .../pdfjs/web/locale/is/viewer.properties | 239 + .../pdfjs/web/locale/it/viewer.properties | 158 + .../pdfjs/web/locale/ja/viewer.properties | 246 + .../pdfjs/web/locale/ka/viewer.properties | 246 + .../pdfjs/web/locale/kab/viewer.properties | 246 + .../pdfjs/web/locale/kk/viewer.properties | 246 + .../pdfjs/web/locale/km/viewer.properties | 184 + .../pdfjs/web/locale/kn/viewer.properties | 193 + .../pdfjs/web/locale/ko/viewer.properties | 246 + .../pdfjs/web/locale/kok/viewer.properties | 167 + .../pdfjs/web/locale/ks/viewer.properties | 168 + .../pdfjs/web/locale/ku/viewer.properties | 146 + .../pdfjs/web/locale/lg/viewer.properties | 112 + .../pdfjs/web/locale/lij/viewer.properties | 242 + .../pdfjs/web/locale/lo/viewer.properties | 152 + .../vendor/pdfjs/web/locale/locale.properties | 369 + .../pdfjs/web/locale/lt/viewer.properties | 246 + .../pdfjs/web/locale/ltg/viewer.properties | 220 + .../pdfjs/web/locale/lv/viewer.properties | 242 + .../pdfjs/web/locale/mai/viewer.properties | 168 + .../pdfjs/web/locale/meh/viewer.properties | 72 + .../pdfjs/web/locale/mk/viewer.properties | 145 + .../pdfjs/web/locale/ml/viewer.properties | 184 + .../pdfjs/web/locale/mn/viewer.properties | 82 + .../pdfjs/web/locale/mr/viewer.properties | 227 + .../pdfjs/web/locale/ms/viewer.properties | 242 + .../pdfjs/web/locale/my/viewer.properties | 198 + .../pdfjs/web/locale/nb-NO/viewer.properties | 246 + .../pdfjs/web/locale/ne-NP/viewer.properties | 184 + .../pdfjs/web/locale/nl/viewer.properties | 246 + .../pdfjs/web/locale/nn-NO/viewer.properties | 246 + .../pdfjs/web/locale/nso/viewer.properties | 130 + .../pdfjs/web/locale/oc/viewer.properties | 210 + .../pdfjs/web/locale/or/viewer.properties | 167 + .../pdfjs/web/locale/pa-IN/viewer.properties | 236 + .../pdfjs/web/locale/pl/viewer.properties | 246 + .../pdfjs/web/locale/pt-BR/viewer.properties | 246 + .../pdfjs/web/locale/pt-PT/viewer.properties | 246 + .../pdfjs/web/locale/rm/viewer.properties | 242 + .../pdfjs/web/locale/ro/viewer.properties | 246 + .../pdfjs/web/locale/ru/viewer.properties | 246 + .../pdfjs/web/locale/rw/viewer.properties | 81 + .../pdfjs/web/locale/sah/viewer.properties | 166 + .../pdfjs/web/locale/sat/viewer.properties | 134 + .../pdfjs/web/locale/si/viewer.properties | 207 + .../pdfjs/web/locale/sk/viewer.properties | 246 + .../pdfjs/web/locale/sl/viewer.properties | 246 + .../pdfjs/web/locale/son/viewer.properties | 180 + .../pdfjs/web/locale/sq/viewer.properties | 239 + .../pdfjs/web/locale/sr/viewer.properties | 220 + .../pdfjs/web/locale/sv-SE/viewer.properties | 246 + .../pdfjs/web/locale/sw/viewer.properties | 128 + .../pdfjs/web/locale/ta-LK/viewer.properties | 77 + .../pdfjs/web/locale/ta/viewer.properties | 201 + .../pdfjs/web/locale/te/viewer.properties | 222 + .../pdfjs/web/locale/th/viewer.properties | 246 + .../pdfjs/web/locale/tl/viewer.properties | 242 + .../pdfjs/web/locale/tn/viewer.properties | 83 + .../pdfjs/web/locale/tr/viewer.properties | 246 + .../pdfjs/web/locale/tsz/viewer.properties | 75 + .../pdfjs/web/locale/uk/viewer.properties | 246 + .../pdfjs/web/locale/ur/viewer.properties | 211 + .../pdfjs/web/locale/uz/viewer.properties | 169 + .../pdfjs/web/locale/vi/viewer.properties | 246 + .../pdfjs/web/locale/wo/viewer.properties | 124 + .../pdfjs/web/locale/xh/viewer.properties | 184 + .../pdfjs/web/locale/zam/viewer.properties | 90 + .../pdfjs/web/locale/zh-CN/viewer.properties | 246 + .../pdfjs/web/locale/zh-TW/viewer.properties | 246 + .../pdfjs/web/locale/zu/viewer.properties | 131 + htdocs/vendor/pdfjs/web/viewer.css | 2455 + htdocs/vendor/pdfjs/web/viewer.html | 394 + htdocs/vendor/pdfjs/web/viewer.js | 15661 +++++ htdocs/vendor/pdfjs/web/viewer.js.map | 1 + htdocs/vendor/tinymce/LICENSE.TXT | 1008 +- htdocs/vendor/tinymce/changelog.txt | 1902 +- htdocs/vendor/tinymce/js/tinymce/langs/de.js | 518 +- .../vendor/tinymce/js/tinymce/langs/fr_FR.js | 520 +- htdocs/vendor/tinymce/js/tinymce/license.txt | 1008 +- .../tinymce/plugins/codesample/css/prism.css | 276 +- .../plugins/visualblocks/css/visualblocks.css | 308 +- .../skins/lightgray/fonts/tinymce-small.svg | 124 +- .../tinymce/skins/lightgray/fonts/tinymce.svg | 260 +- .../skins/lightgray/skin.mobile.min.css | 2 +- .../vendor/tinymce/js/tinymce/tinymce.min.js | 2 +- 473 files changed, 140845 insertions(+), 14175 deletions(-) create mode 100644 CGI/api/playlist.cgi rename CGI/tmpl/app/invoicejournal/module/{bookings => sales}/form_booking.js (100%) rename CGI/tmpl/app/invoicejournal/module/{bookings => sales}/form_booking.tt (100%) rename CGI/tmpl/app/invoicejournal/module/{bookings => sales}/index.js (100%) rename CGI/tmpl/app/invoicejournal/module/{bookings => sales}/index.tt (100%) rename CGI/tmpl/app/invoicejournal/module/{bookings => sales}/lib/booking.js (100%) create mode 100644 htdocs/vendor/pdfjs/LICENSE create mode 100644 htdocs/vendor/pdfjs/build/pdf.js create mode 100644 htdocs/vendor/pdfjs/build/pdf.js.map create mode 100644 htdocs/vendor/pdfjs/build/pdf.worker.js create mode 100644 htdocs/vendor/pdfjs/build/pdf.worker.js.map create mode 100644 htdocs/vendor/pdfjs/web/cmaps/78-EUC-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/78-EUC-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/78-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/78-RKSJ-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/78-RKSJ-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/78-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/78ms-RKSJ-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/78ms-RKSJ-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/83pv-RKSJ-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/90ms-RKSJ-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/90ms-RKSJ-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/90msp-RKSJ-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/90msp-RKSJ-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/90pv-RKSJ-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/90pv-RKSJ-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Add-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Add-RKSJ-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Add-RKSJ-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Add-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-CNS1-0.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-CNS1-1.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-CNS1-2.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-CNS1-3.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-CNS1-4.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-CNS1-5.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-CNS1-6.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-CNS1-UCS2.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-GB1-0.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-GB1-1.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-GB1-2.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-GB1-3.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-GB1-4.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-GB1-5.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-GB1-UCS2.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-Japan1-0.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-Japan1-1.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-Japan1-2.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-Japan1-3.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-Japan1-4.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-Japan1-5.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-Japan1-6.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-Japan1-UCS2.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-Korea1-0.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-Korea1-1.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-Korea1-2.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Adobe-Korea1-UCS2.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/B5-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/B5-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/B5pc-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/B5pc-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/CNS-EUC-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/CNS-EUC-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/CNS1-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/CNS1-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/CNS2-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/CNS2-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/ETHK-B5-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/ETHK-B5-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/ETen-B5-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/ETen-B5-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/ETenms-B5-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/ETenms-B5-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/EUC-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/EUC-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Ext-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Ext-RKSJ-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Ext-RKSJ-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Ext-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/GB-EUC-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/GB-EUC-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/GB-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/GB-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/GBK-EUC-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/GBK-EUC-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/GBK2K-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/GBK2K-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/GBKp-EUC-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/GBKp-EUC-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/GBT-EUC-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/GBT-EUC-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/GBT-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/GBT-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/GBTpc-EUC-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/GBTpc-EUC-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/GBpc-EUC-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/GBpc-EUC-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/HKdla-B5-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/HKdla-B5-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/HKdlb-B5-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/HKdlb-B5-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/HKgccs-B5-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/HKgccs-B5-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/HKm314-B5-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/HKm314-B5-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/HKm471-B5-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/HKm471-B5-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/HKscs-B5-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/HKscs-B5-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Hankaku.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Hiragana.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/KSC-EUC-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/KSC-EUC-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/KSC-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/KSC-Johab-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/KSC-Johab-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/KSC-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/KSCms-UHC-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/KSCms-UHC-HW-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/KSCms-UHC-HW-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/KSCms-UHC-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/KSCpc-EUC-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/KSCpc-EUC-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Katakana.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/LICENSE create mode 100644 htdocs/vendor/pdfjs/web/cmaps/NWP-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/NWP-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/RKSJ-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/RKSJ-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/Roman.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniCNS-UCS2-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniCNS-UCS2-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniCNS-UTF16-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniCNS-UTF16-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniCNS-UTF32-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniCNS-UTF32-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniCNS-UTF8-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniCNS-UTF8-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniGB-UCS2-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniGB-UCS2-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniGB-UTF16-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniGB-UTF16-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniGB-UTF32-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniGB-UTF32-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniGB-UTF8-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniGB-UTF8-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniJIS-UCS2-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniJIS-UCS2-HW-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniJIS-UCS2-HW-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniJIS-UCS2-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniJIS-UTF16-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniJIS-UTF16-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniJIS-UTF32-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniJIS-UTF32-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniJIS-UTF8-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniJIS-UTF8-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniJIS2004-UTF16-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniJIS2004-UTF16-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniJIS2004-UTF32-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniJIS2004-UTF32-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniJIS2004-UTF8-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniJIS2004-UTF8-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniJISPro-UCS2-HW-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniJISPro-UCS2-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniJISPro-UTF8-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniJISX0213-UTF32-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniJISX0213-UTF32-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniJISX02132004-UTF32-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniJISX02132004-UTF32-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniKS-UCS2-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniKS-UCS2-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniKS-UTF16-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniKS-UTF16-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniKS-UTF32-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniKS-UTF32-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniKS-UTF8-H.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/UniKS-UTF8-V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/V.bcmap create mode 100644 htdocs/vendor/pdfjs/web/cmaps/WP-Symbol.bcmap create mode 100644 htdocs/vendor/pdfjs/web/compressed.tracemonkey-pldi-09.pdf create mode 100644 htdocs/vendor/pdfjs/web/debugger.js create mode 100644 htdocs/vendor/pdfjs/web/images/annotation-check.svg create mode 100644 htdocs/vendor/pdfjs/web/images/annotation-comment.svg create mode 100644 htdocs/vendor/pdfjs/web/images/annotation-help.svg create mode 100644 htdocs/vendor/pdfjs/web/images/annotation-insert.svg create mode 100644 htdocs/vendor/pdfjs/web/images/annotation-key.svg create mode 100644 htdocs/vendor/pdfjs/web/images/annotation-newparagraph.svg create mode 100644 htdocs/vendor/pdfjs/web/images/annotation-noicon.svg create mode 100644 htdocs/vendor/pdfjs/web/images/annotation-note.svg create mode 100644 htdocs/vendor/pdfjs/web/images/annotation-paragraph.svg create mode 100644 htdocs/vendor/pdfjs/web/images/findbarButton-next-rtl.png create mode 100644 htdocs/vendor/pdfjs/web/images/findbarButton-next-rtl@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/findbarButton-next.png create mode 100644 htdocs/vendor/pdfjs/web/images/findbarButton-next@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/findbarButton-previous-rtl.png create mode 100644 htdocs/vendor/pdfjs/web/images/findbarButton-previous-rtl@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/findbarButton-previous.png create mode 100644 htdocs/vendor/pdfjs/web/images/findbarButton-previous@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/grab.cur create mode 100644 htdocs/vendor/pdfjs/web/images/grabbing.cur create mode 100644 htdocs/vendor/pdfjs/web/images/loading-icon.gif create mode 100644 htdocs/vendor/pdfjs/web/images/loading-small.png create mode 100644 htdocs/vendor/pdfjs/web/images/loading-small@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-documentProperties.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-documentProperties@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-firstPage.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-firstPage@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-handTool.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-handTool@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-lastPage.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-lastPage@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-rotateCcw.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-rotateCcw@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-rotateCw.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-rotateCw@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-scrollHorizontal.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-scrollHorizontal@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-scrollVertical.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-scrollVertical@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-scrollWrapped.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-scrollWrapped@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-selectTool.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-selectTool@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-spreadEven.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-spreadEven@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-spreadNone.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-spreadNone@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-spreadOdd.png create mode 100644 htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-spreadOdd@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/shadow.png create mode 100644 htdocs/vendor/pdfjs/web/images/texture.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-bookmark.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-bookmark@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-download.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-download@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-menuArrows.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-menuArrows@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-openFile.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-openFile@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-pageDown-rtl.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-pageDown-rtl@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-pageDown.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-pageDown@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-pageUp-rtl.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-pageUp-rtl@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-pageUp.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-pageUp@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-presentationMode.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-presentationMode@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-print.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-print@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-search.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-search@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-secondaryToolbarToggle-rtl.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-secondaryToolbarToggle-rtl@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-secondaryToolbarToggle.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-secondaryToolbarToggle@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-sidebarToggle-rtl.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-sidebarToggle-rtl@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-sidebarToggle.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-sidebarToggle@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-viewAttachments.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-viewAttachments@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-viewOutline-rtl.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-viewOutline-rtl@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-viewOutline.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-viewOutline@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-viewThumbnail.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-viewThumbnail@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-zoomIn.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-zoomIn@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-zoomOut.png create mode 100644 htdocs/vendor/pdfjs/web/images/toolbarButton-zoomOut@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/treeitem-collapsed-rtl.png create mode 100644 htdocs/vendor/pdfjs/web/images/treeitem-collapsed-rtl@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/treeitem-collapsed.png create mode 100644 htdocs/vendor/pdfjs/web/images/treeitem-collapsed@2x.png create mode 100644 htdocs/vendor/pdfjs/web/images/treeitem-expanded.png create mode 100644 htdocs/vendor/pdfjs/web/images/treeitem-expanded@2x.png create mode 100644 htdocs/vendor/pdfjs/web/locale/ach/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/af/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/ak/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/an/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/ar/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/as/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/ast/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/az/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/be/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/bg/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/bn-BD/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/bn-IN/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/br/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/brx/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/bs/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/ca/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/cak/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/crh/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/cs/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/csb/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/cy/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/da/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/de/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/el/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/en-CA/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/en-GB/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/en-US/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/en-ZA/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/eo/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/es-AR/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/es-CL/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/es-ES/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/es-MX/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/et/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/eu/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/fa/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/ff/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/fi/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/fr/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/fy-NL/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/ga-IE/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/gd/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/gl/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/gn/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/gu-IN/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/he/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/hi-IN/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/hr/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/hsb/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/hto/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/hu/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/hy-AM/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/ia/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/id/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/is/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/it/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/ja/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/ka/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/kab/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/kk/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/km/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/kn/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/ko/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/kok/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/ks/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/ku/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/lg/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/lij/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/lo/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/locale.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/lt/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/ltg/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/lv/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/mai/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/meh/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/mk/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/ml/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/mn/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/mr/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/ms/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/my/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/nb-NO/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/ne-NP/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/nl/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/nn-NO/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/nso/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/oc/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/or/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/pa-IN/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/pl/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/pt-BR/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/pt-PT/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/rm/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/ro/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/ru/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/rw/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/sah/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/sat/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/si/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/sk/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/sl/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/son/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/sq/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/sr/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/sv-SE/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/sw/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/ta-LK/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/ta/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/te/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/th/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/tl/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/tn/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/tr/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/tsz/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/uk/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/ur/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/uz/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/vi/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/wo/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/xh/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/zam/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/zh-CN/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/zh-TW/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/locale/zu/viewer.properties create mode 100644 htdocs/vendor/pdfjs/web/viewer.css create mode 100644 htdocs/vendor/pdfjs/web/viewer.html create mode 100644 htdocs/vendor/pdfjs/web/viewer.js create mode 100644 htdocs/vendor/pdfjs/web/viewer.js.map diff --git a/CGI/api/db.cgi b/CGI/api/db.cgi index e65e0b2..3f7ed3c 100644 --- a/CGI/api/db.cgi +++ b/CGI/api/db.cgi @@ -109,15 +109,15 @@ if (($cgi->request_method() eq "GET") || ($cgi->request_method() eq "POST")){ if (exists($p->{key})){ $html->{result} = $db->querybykey($p->{key},$p->{sql}); } - elsif ((uc($p->{sql}) =~ /^[INSERT|UPDATE|DELETE]/) && (!$p->{return})) { - $html->{result} = $db->exec($p->{sql}); - } else { $html->{result} = $db->query($p->{sql}); } } + elsif (exists($p->{exec})){ + $html->{result} = $db->exec($p->{exec}); + } elsif (exists($p->{ddl})){ - $html->{result} = $db->exec($p->{sql}); + $html->{result} = $db->exec($p->{ddl}); } } print JSON::PP::encode_json($html); diff --git a/CGI/api/lib/audio.pm b/CGI/api/lib/audio.pm index b61a8bd..f585193 100644 --- a/CGI/api/lib/audio.pm +++ b/CGI/api/lib/audio.pm @@ -1,818 +1,818 @@ -package audio; - -use strict; -use File::Basename; -use File::Path qw(make_path); -use Ogg::Vorbis::Header::PurePerl; -use MP3::Info; -use MP4::Info; -use Audio::FLAC::Header; -use Text::Unidecode; -use XML::Simple; -use LWP::Simple qw(getstore); -use LWP::UserAgent; - - -sub new { - my $class = shift; - my $param = shift; - my $self = bless {}, $class; - #if ($^O eq "MSWin32") { - $self->{binpath} = dirname($0).'/tools'; - $self->{gracenote}->{clientid} = "12135680-F83BAC36E126A57612907550113A9FF9"; - $self->{gracenote}->{url} = 'https://c12135680.web.cddbp.net/webapi/xml/1.0/'; - #} - -# foreach my $p (keys %{$param}){ -# $self->{$p} = $param->{$p}; -# } - return $self; -} - -sub info() { - my $self = shift; - my $req = shift; - my $html = (); - my $audiofile = $req->{file}; - my ($info,$tagdata) = $self->getaudioinfo($audiofile); - $html->{info} = $info; - $html->{tag}= $tagdata; - $html->{file} = $audiofile; - $html->{binpath} = $self->{binpath}; - return $html; -} - -sub getwebinfo() { - my $self = shift; - my $req = shift; - my $html = (); - ; - my $title = $req->{title}; - my $artist = $req->{artist}; - print "Search: ".$artist." - ".$title."\n"; - $self->get_server_cfg(); - if ((!exists($self->{gracenote}->{userid})) || ($self->{gracenote}->{userid} eq "")){ - $self->{gracenote}->{userid} = $self->gracenote_register(); - if (defined($self->{gracenote}->{userid})){ - #$self->write_server_cfg(); - } - } - my $data = $self->gracenote_query($artist,$title); - $html = $data; - return $html; - -} - -sub convert() { - my $self = shift; - my $req = shift; - my $html = (); - - my $i = $req->{input}; #i=input file - my $o = $req->{outpath}; #o=output path - my $id3 = $req->{id3}; #id3='title=...;artist=...;genre=...;comment=...;album=...,track=...' - my $t = $req->{type}; #t=outputtype (ogg,mp3,m4a,acc,flac) - my $g = $req->{gain}; #g=gain (-12.0 - 12.0) - my $b = $req->{bitrate}; #b=bitrate - my $r = $req->{samplerate}; #r=samplarate - my $s = $req->{cutsilence}; #s=cut silence 0|1 - $html->{params}->{input} = $i; - $html->{params}->{outpath} = $o; - $html->{params}->{id3} = $id3; - $html->{params}->{type} = $t; - $html->{params}->{gain} = $g; - $html->{params}->{bitrate} = $b; - $html->{params}->{samplerate} = $r; - $html->{params}->{cutsilence} = $s; - my $outfile = ""; - my $bitratetouse = undef; - my $sampleratetouse = undef; - $i =~ s/\/+/\\/g; - $o =~ s/\/+/\\/g; - if (! -f $i ) { - $html->{error} = "Input-file '$i' NOT found!"; - } else { - - my ($info,$tagdata) = $self->getaudioinfo($i); - if ($o eq ""){ - $o = dirname($i); - } - if (! -d ($o)){ - - make_path($o); - } - - my $wav = $self->createwavefile($i,$o); - - if ((-e $wav) && ($s == 1)) { $wav = $self->cutsilences($wav);} - if ((-e $wav) && ($g ne "")) {$wav = $self->setgain($wav,$g);} - if (-e $wav) { - - $bitratetouse = $info->{bitrate}; - $sampleratetouse=$info->{samplerate}; - if (defined($b)){$bitratetouse = $b;} - if (defined($r)){$sampleratetouse=$r;} - - } - if ($id3 ne "") { - my @spl = split(";",$id3); - $tagdata = (); - foreach my $x (@spl){ - #print $x; - my ($k,$v) = $x =~ m/^(\w+)=(.+)$/; - $tagdata->{$k} = $v; - } - - #$tagdata = JSON::PP::decode_json($id3); - # print "tags set:\n"; - # print Dumper($tagdata); - } - $html->{tag} = $tagdata; - $html->{wav} = $wav; - $html->{samplerate} = $sampleratetouse; - $html->{bitrate} = $bitratetouse; - if ($t eq "ogg") { $outfile = $self->createoggfile($wav,$tagdata,$sampleratetouse,$bitratetouse); - } elsif ($t eq "mp3"){ $outfile = $self->createmp3file($wav,$tagdata,$sampleratetouse,$bitratetouse); - } elsif ($t eq "flac"){ $outfile = $self->createflacfile($wav,$tagdata,$sampleratetouse); - } elsif ($t eq "aac"){ $outfile = $self->createaacfile($wav,$tagdata,$sampleratetouse,$bitratetouse); - } elsif ($t eq "m4a"){ $outfile = $self->createm4afile($wav,$tagdata); - } - if (-e $outfile){ - $html->{convertfile} = $outfile; - } - } - return $html; -} - -sub gracenote_register(){ - my $self = shift; - my $reg = ' - -'.$self->{gracenote}->{clientid}.' - -'; - my $xcontent = $self->gracenote_request( $self->{gracenote}->{url}, $reg); - - - my $xml = XMLin($xcontent,'ForceContent' => 1); - my $ret_val= ""; - if (exists($xml->{RESPONSE}->{USER})) { - $ret_val = $xml->{RESPONSE}->{USER}->{content}; - } - - return $ret_val; -} - -sub gracenote_request(){ - my $self = shift; - my $url = shift; - my $data = shift; - - my $request = HTTP::Request->new( POST => $url ); - $request->content($data); - $request->header( 'Content-type' => 'text/xml' ); - #return $request if $params->{'return_request'}; - my $ua = LWP::UserAgent->new; - $ua->agent("Coloradio GraceNote Client 20190810"); - $ua->timeout(20); - # Execute the request - my $response = $ua->request($request); - if ($response->is_success) { - #print "\n---\n".$response->content."\n---\n"; - return $response->content; - } - - #else { - # print $response->status_line; - #} - return ''; -} - -sub gracenote_query() { - my $self = shift; - my $artist = shift; - my $title = shift; - $artist =~ s/&/&/g; - $artist =~ s/\'//g; - $title =~ s/\'//g; - my $qb = ' - -'.$self->{gracenote}->{clientid}.' -'.$self->{gracenote}->{userid}.' - - -SINGLE_BEST_COVER -'.(($artist ne "")?''.$artist.'':"").' -'.(($title ne "")?''.$title.'':"").' - - - - -'; -my $data->{image}->{url} = ""; - $data->{image}->{filetype} = ""; - $data->{image}->{data} = ""; - $data->{year} = ""; - $data->{title} = $title; - $data->{artist} = $artist; - $data->{mood} = (); - $data->{tempo} = (); - $data->{genre} = (); - - my $xcontent = $self->gracenote_request( $self->{gracenote}->{url}, $qb); - if (!defined($xcontent)) { - return $data; - } - - -my $xml = XMLin($xcontent,'ForceContent' => 1); -#print Dumper($xml->{RESPONSE}->{ALBUM}); - -if ($xml->{RESPONSE}->{STATUS} eq "OK") { - #print Dumper($xml->{RESPONSE}->{ALBUM}); - #if (ref($xml->{RESPONSE}->{ALBUM}->{TRACK}) eq 'ARRAY') { - # #$self->query($artist,) - # print Dumper($xml->{RESPONSE}->{ALBUM}); - # print "multi track response\n"; - # return; - #} - - if (exists($xml->{RESPONSE}->{ALBUM}->{URL})){ - my $url = $xml->{RESPONSE}->{ALBUM}->{URL}; - if (ref($url) eq 'ARRAY') { - foreach my $u (@$url){ - if ($u->{TYPE} eq "ARTIST_IMAGE") { - $data->{image}->{url} = $u->{content}; - } - } - }else { - if ($url->{TYPE} eq "ARTIST_IMAGE") { - $data->{image}->{url} = $url->{content}; - } - } - } - if (exists($xml->{RESPONSE}->{ALBUM}->{DATE})){ - $data->{year} = $xml->{RESPONSE}->{ALBUM}->{DATE}->{content}; - } - #if (exists($xml->{RESPONSE}->{ALBUM}->{ARTIST})){ - # $data->{artist} = $xml->{RESPONSE}->{ALBUM}->{ARTIST}->{content}; - #} - #print Dumper($xml->{RESPONSE}->{ALBUM}->{TRACK}->{TITLE}); - #if (exists($xml->{RESPONSE}->{ALBUM}->{TRACK}->{TITLE})){ - # $data->{title}= $xml->{RESPONSE}->{ALBUM}->{TRACK}->{TITLE}->{content}; - #} - if (exists($xml->{RESPONSE}->{ALBUM}->{TRACK}->{TEMPO})){ - my $dd = $xml->{RESPONSE}->{ALBUM}->{TRACK}->{TEMPO}; - my @newa = (); - if (ref($dd) eq 'ARRAY') { - foreach my $d (@$dd){ - push(@newa,$d->{content}); - } - }else { - push(@newa,$dd->{content}); - } - $data->{tempo} = \@newa; - - } - if (exists($xml->{RESPONSE}->{ALBUM}->{TRACK}->{MOOD})){ - my $dd = $xml->{RESPONSE}->{ALBUM}->{TRACK}->{MOOD}; - my @newa = (); - if (ref($dd) eq 'ARRAY') { - foreach my $d (@$dd){ - push(@newa,$d->{content}); - } - }else { - push(@newa,$dd->{content}); - } - $data->{mood} = \@newa; - } - if (exists($xml->{RESPONSE}->{ALBUM}->{GENRE})){ - my $dd = $xml->{RESPONSE}->{ALBUM}->{GENRE}; - my @newa = (); - if (ref($dd) eq 'ARRAY') { - foreach my $d (@$dd){ - push(@newa,$d->{content}); - } - }else { - push(@newa,$dd->{content}); - } - $data->{genre} = \@newa; - } -} -else { - #print 'ERROR->'.$artist.'->'.$title."\n"; - $data->{error} = 'ERROR'; -} - return $data; -} - -# sub write_server_cfg(){ -# my $self = shift; -# open(CFG,$self->{cfgpath}); -# my $strgcfg = ""; -# while (my $l = ){ -# chomp($l); -# $strgcfg .= $l; -# } -# close(CFG); -# my $gcfg = JSON::PP::decode_json($strgcfg); -# $gcfg->{audio}->{gracenote} = $self->{gracenote}; -# open(CFG,">".$self->{cfgpath}); -# print CFG JSON::PP::encode_json($gcfg); -# close(CFG); -# } - -# sub get_server_cfg(){ -# my $self = shift; -# open(CFG,$self->{cfgpath}); -# my $strgcfg = ""; -# while (my $l = ){ -# chomp($l); -# $strgcfg .= $l; -# } -# close(CFG); -# my $gcfg = JSON::PP::decode_json($strgcfg); -# foreach my $g (keys(%{$gcfg->{audio}->{gracenote}})){ -# $self->{gracenote}->{$g} = $gcfg->{audio}->{gracenote}->{$g}; -# } -# } - -sub getaudioinfo(){ - my $self = shift; - my $audiofile = shift; - my $tmp = rindex($audiofile,'.'); - my $sfx = lc(substr($audiofile,rindex($audiofile,'.')+1)); - my $tagdata = (); - my $info = (); - my $ftype=""; - if (lc($sfx) eq 'ogg'){ - #print "get ogginfo from ".$oggin."
"; - $info->{filetype}="audio/ogg"; - my $oggx = Ogg::Vorbis::Header::PurePerl->new($audiofile); - if (defined($oggx)) { - my $inf = $oggx->info(); - for my $i (keys (%{$inf})){ - if ($i eq 'rate') { - $info->{samplerate} = int($inf->{$i}); - } - if ($i eq 'length') { - $info->{duration} = int($inf->{$i}); - } - if ($i eq 'bitrate_average') { - $info->{bitrate} = int($inf->{$i} / 1000); - } - } - foreach my $com ($oggx->comment_tags) { - foreach my $cc ($oggx->comment($com)){ - if (lc($com) eq 'title') { - $tagdata->{'title'} = $cc; - } - if (lc($com) eq 'album') { $tagdata->{'album'} = $cc;} - if (lc($com) eq 'artist') { - $tagdata->{'artist'} = $cc; - } - if (lc($com) eq 'year') { $tagdata->{'year'} = $cc;} - if (lc($com) eq 'genre'){ $tagdata->{'genre'} = $cc;} - if (lc($com) eq "date") { $tagdata->{'year'} = substr($cc,0,4); } - } - } - } - } - if (lc($sfx) eq 'mp3'){ - $info->{filetype}="audio/mpeg"; - my $tag = MP3::Info::get_mp3tag($audiofile); - if (defined($tag)) { - foreach my $t (keys(%{$tag})){ - if ((lc($t) eq 'title') || - (lc($t) eq 'album') || - (lc($t) eq 'artist') || - (lc($t) eq 'year') || - (lc($t) eq 'genre') - ){ - $tagdata->{lc($t)} = $tag->{$t}; - } - } - } - my $inf = MP3::Info::get_mp3info($audiofile); - if (defined($inf)) { - for my $i (keys(%{$inf})){ - if (lc($i) eq 'bitrate') { - $info->{bitrate} = int($inf->{$i}); - } - if (lc($i) eq 'frequency') { - $info->{samplerate} = int($inf->{$i} * 1000); - } - if (lc($i) eq 'secs') { - $info->{duration} = int($inf->{$i}) - } - } - } - } - if (lc($sfx) eq 'm4a'){ - $info->{filetype}="audio/mp4"; - my $tag = MP4::Info::get_mp4tag($audiofile); - if (defined($tag)) { - foreach my $t (keys(%{$tag})){ - if (lc($t) eq 'alb') { $tagdata->{album} = $tag->{$t}; } - if (lc($t) eq 'nam') { $tagdata->{title} = $tag->{$t}; } - if (lc($t) eq 'art') { $tagdata->{artist} = $tag->{$t}; } - if (lc($t) eq 'day') { $tagdata->{year} = $tag->{$t}; } - if (lc($t) eq 'gnre') { $tagdata->{genre} = $tag->{$t}; } - } - } - my $inf = MP4::Info::get_mp4info($audiofile); - if (defined($inf)) { - $info->{bitrate} = $inf->{BITRATE}; - $info->{samplerate} = int($inf->{FREQUENCY} * 1000); - $info->{duration} = $inf->{SECS}; - } - } - if (lc($sfx) eq 'flac'){ - $info->{filetype}="audio/flac"; - my $flac = Audio::FLAC::Header->new($audiofile); - my $tag = $flac->tags(); - if (defined($tag)) { - foreach my $t (keys(%{$tag})){ - if ((lc($t) eq 'title') || - (lc($t) eq 'album') || - (lc($t) eq 'artist') || - (lc($t) eq 'genre') - ){ - $tagdata->{lc($t)} = $tag->{$t}; - } - if (lc($t) eq 'date') { - $tagdata->{year} = substr($tag->{$t},0,4); - } - - } - } - my $inf = $flac->info(); - if (defined($inf)){ - $info->{duration} = int($flac->{trackTotalLengthSeconds}); - $info->{bitrate} = int($flac->{bitRate}); - $info->{samplerate} = int($inf->{SAMPLERATE}); - } - } - return ($info,$tagdata); -} - -sub createwavefile(){ - my $self = shift; - my $in = shift; - my $outpath = shift; - my $fname = basename($in); - $fname = substr($fname,0,rindex($fname,'.')).'.wav'; - #print "Create WAV: from:".$in." to: ".$outpath."\n\n\n"; - if (! -d $outpath){ - make_path($outpath); - } - if (($outpath !~ /\/$/) && ($outpath !~ /\\$/)){ - $outpath = $outpath."/"; - } - $in =~ s/\\\\/\\/g; - if (-e $outpath.$fname) { - unlink($outpath.$fname); - } - my $st = undef; - my $cmd = ""; - my $dec = ""; - if (lc($in) =~ /\.ogg$/) { - $dec = $self->{binpath}.'/oggdec'; - } elsif (lc($in) =~ /\.mp3$/){ - $dec = $self->{binpath}.'/lame'; - } elsif ((lc($in) =~ /\.m4a/) || (lc($fname) =~ /\.aac/)) { - $dec = $self->{binpath}.'/faad'; - } elsif (lc($in) =~ /\.flac/){ - $dec = $self->{binpath}.'/flac'; - } else { - $dec = $self->{binpath}.'/ffmpeg'; - } - if ($^O eq "MSWin32"){ - $dec = $dec.".exe"; - $dec =~ s/\/+/\\/g; - } - $dec = '"'.$dec.'"'; - if (lc($in) =~ /\.ogg$/) { - $cmd = $dec.' -w "'.$outpath.$fname.'" "'.$in.'"'; - }elsif (lc($in) =~ /\.mp3$/){ - $cmd = $dec.' --silent --decode "'.$in.'" "'.$outpath.$fname.'"'; - }elsif ((lc($in) =~ /\.m4a/) || (lc($fname) =~ /\.aac/)){ - $cmd = $dec.' -o "'.$outpath.$fname.'" "'.$in.'"'; - }elsif (lc($in) =~ /\.flac/){ - $cmd = $dec.' -d -o "'.$outpath.$fname.'" -F "'.$in.'"'; - } else { - $cmd = $dec.' -i "'.$in.'" "'.$outpath.$fname.'"'; - } - #print "$cmd\n"; - if ($cmd ne "") { - $st = system($cmd); - if ($st > 0){ - return ""; - } - } - my $ret = $outpath.'/'.$fname; - if ($^O eq "MSWin32") { - $ret =~ s/\/+/\\/g; - } - return $ret; -} - -sub cutsilences(){ - my $self = shift; - my $wav = shift; - my $nwav = substr($wav,0,-4); - my $sox = $self->{binpath}.'/sox'; - if ($^O eq "MSWin32"){ - $sox = $sox.".exe"; - $sox =~ s/\/+/\\/g; - } - #print "Cut silences\n"; - $sox = '"'.$sox.'"'; - ##Win32::SetChildShowWindow(0); - system($sox.' "'.$wav.'" "'.$nwav.'.sox0.wav" silence 1 0 -40d'); - #### Reverse file to trim the end - #Win32::SetChildShowWindow(0); - system($sox.' "'.$nwav.'.sox0.wav" "'.$nwav.'.sox1.wav" reverse' ); - #### Trim the end - #Win32::SetChildShowWindow(0); - system($sox.' "'.$nwav.'.sox1.wav" "'.$nwav.'.sox0.wav" silence 1 0 -40d' ); - #### Reverse back to original direction - #Win32::SetChildShowWindow(0); - system($sox.' "'.$nwav.'.sox0.wav" "'.$wav.'" reverse'); - unlink($nwav.'.sox0.wav'); - unlink($nwav.'.sox1.wav'); - return $wav; -} - -sub setgain(){ - my $self = shift; - my $wavfile = shift; - my $gain = shift; - my $cwd = dirname($wavfile); - my $wavegain = $self->{binpath}.'/wavegain'; - if ($^O eq "MSWin32"){ - $wavegain = $wavegain.".exe"; - $wavegain =~ s/\/+/\\/g; - } - $wavegain = '"'.$wavegain.'"'; - #print "Set Gain: ".$gain."\n"; - #if ($^O eq "MSWin32") - my $cmd = $wavegain.' -g '.$gain.'.0 -a -y "'.$wavfile.'" -l -f "'.$ENV{TMP}.'/wavegain.log"'; - #Win32::SetChildShowWindow(0); - my $st = system($cmd); - #print $st."\n"; - #open(NORM,"$cmd 2>&1 |") or die "cannot execute $cmd"; - #while (my $l =){ - # $l =~ s/\r//g; - # $l =~ s/\n//g; - # #print $l; - ## print ""; - #} - #close(NORM); - return $wavfile; -} - -sub createoggfile(){ - my $self = shift; - my $wavin = shift; - my $tags = shift; - my $samplerate = shift; - my $bitrate = shift; - my $oggenc = $self->{binpath}.'/oggenc2'; - if ($^O eq "MSWin32"){ - $oggenc = $oggenc.".exe"; - $oggenc =~ s/\/+/\\/g; - } - $oggenc = '"'.$oggenc.'"'; -my $q = ""; - #print "Crate OGG file from: $wavin\n"; - if ($bitrate ne ""){ - $q = "-b ".$bitrate; - } - my @tagdata = ""; - if (exists($tags->{title})) { - push @tagdata ,'-t "'.$tags->{title}.'"'; - } - if (exists($tags->{artist})){ - push @tagdata ,'-a "'.$tags->{artist}.'"'; - } - if (exists($tags->{album})){ - push @tagdata ,'-l "'.$tags->{album}.'"'; - } - if (exists($tags->{genre})){ - push @tagdata ,'-G "'.$tags->{genre}.'"'; - } - if (exists($tags->{year})){ - push @tagdata ,'-d "'.$tags->{year}.'"'; - } - my $oggout = substr($wavin,0,-3).'ogg'; - if (-e $oggout) { - unlink($oggout); - } - - #print '/usr/local/bin/oggenc -b '.$bitrate.' -o "'.$oggout.'" -t "'.$t.'" -a "'.$a.'" "'.$wavin.'"'; - #Win32::SetChildShowWindow(0); - #print "CMD:".$oggenc.' -Q '.$q.' --resample '.$samplerate.' -o "'.$oggout.'" '.join(' ',@tagdata).' "'.$wavin.'"'."\n"; - my $st = system($oggenc.' -Q '.$q.' --resample '.$samplerate.' -o "'.$oggout.'" '.join(' ',@tagdata).' "'.$wavin.'"'); - - if ($st > 0){ - print "cannot create $oggout"; - return ""; - } - unlink($wavin); - return $oggout; -} - -sub createmp3file(){ - my $self = shift; - my $wavin = shift; - my $tags = shift; - my $samplerate = shift; - my $bitrate = shift; - my $q = ""; - my $mp3enc = $self->{binpath}.'/lame'; - if ($^O eq "MSWin32"){ - $mp3enc = $mp3enc.".exe"; - $mp3enc =~ s/\/+/\\/g; - } - $mp3enc = '"'.$mp3enc.'"'; - #print "Crate MP3 file from: $wavin\n"; -# if ($quality ne "") { -# $q = "-V ".$quality." -Y "; -# }els - if ($bitrate ne ""){ - $q = "-b ".$bitrate; - } - my @tagdata = ""; - if (exists($tags->{title})) { - push @tagdata ,'--tt "'.$tags->{title}.'"'; - } - if (exists($tags->{artist})){ - push @tagdata ,'--ta "'.$tags->{artist}.'"'; - } - if (exists($tags->{album})){ - push @tagdata ,'--tl "'.$tags->{album}.'"'; - } - if (exists($tags->{genre})){ - push @tagdata ,'--tg '.$tags->{genre}.'"'; - } - if (exists($tags->{year})){ - push @tagdata ,'--ty "'.$tags->{year}.'"'; - } - my $mp3out = substr($wavin,0,-3).'mp3'; - $mp3out =~ s/\\+/\\/g; - $mp3out =~ s/\/+/\\/g; - #print '/usr/local/bin/oggenc -b '.$bitrate.' -o "'.$oggout.'" -t "'.$t.'" -a "'.$a.'" "'.$wavin.'"'; - #print '"'.$self->{binpath}.'lame.exe" '.$q.' -h -Y --add-id3v2 --id3v2-only -t -s '.$samplerate.' -tt "'.$t.'" -ta "'.$a.'" "'.$wavin.'" "'.$mp3out.'"'."\n"; - my $cmd = $mp3enc.' '.$q.' -h --quiet --add-id3v2 --id3v2-only -t -s '.$samplerate.' '.join(' ',@tagdata).' "'.$wavin.'" "'.$mp3out.'"'; - #print $cmd."\n"; - #Win32::SetChildShowWindow(0); - my $st = system($cmd); - - if ($st > 0){ - #print "cannot create $mp3out"; - return ""; - } - unlink($wavin); - return $mp3out; -} - -sub createflacfile(){ - my $self = shift; - my $wavin = shift; - my $tags = shift; - my $samplerate = shift; - #print "Crate FLAC file from: $wavin\n"; - my @tagdata = ""; - my $flacenc = $self->{binpath}.'/flac'; - if ($^O eq "MSWin32"){ - $flacenc = $flacenc.".exe"; - $flacenc =~ s/\/+/\\/g; - } - $flacenc = '"'.$flacenc.'"'; - - if (exists($tags->{title})) { - push @tagdata ,'-T TITLE="'.$tags->{title}.'"'; - } - if (exists($tags->{artist})){ - push @tagdata ,'-T ARTIST="'.$tags->{artist}.'"'; - } - if (exists($tags->{album})){ - push @tagdata ,'-T ALBUM="'.$tags->{album}.'"'; - } - if (exists($tags->{genre})){ - push @tagdata ,'-T GENRE="'.$tags->{genre}.'"'; - } - if (exists($tags->{year})){ - push @tagdata ,'-T YEAR="'.$tags->{year}.'"'; - } - my $flacout = substr($wavin,0,-3).'flac'; - if (-e $flacout) { - unlink($flacout); - } - my $cmd = $flacenc.'" -s -o "'.$flacout.'" '.join(' ',@tagdata).' "'.$wavin.'"'; - #print $cmd."\n"; - #Win32::SetChildShowWindow(0); - my $st = system($cmd); - if ($st > 0){ - #print "cannot create $flacout"; - return ""; - } - unlink($wavin); - return $flacout; -} - -sub createaacfile(){ - my $self = shift; - my $wavin = shift; - my $tags = shift; - my $samplerate = shift; - my $bitrate = shift; - # my $quality= shift; - my $q = ""; - my $aacenc = $self->{binpath}.'/faac'; - if ($^O eq "MSWin32"){ - $aacenc = $aacenc.".exe"; - $aacenc =~ s/\/+/\\/g; - } - $aacenc = '"'.$aacenc.'"'; - #print "Crate AAC file from: $wavin\n"; -# if ($quality ne "") { -# $q = "-q ".$quality; -# }els - if ($bitrate ne ""){ - $q = "-b ".$bitrate; - } - my $aacout = substr($wavin,0,-3).'aac'; - if (-e $aacout) { - unlink($aacout); - } - my $cmd = $aacenc.' '.$q.' -c '.$samplerate.' -o "'.$aacout.'" "'.$wavin.'"'; - #print $cmd."\n"; - #Win32::SetChildShowWindow(0); - my $st = system($cmd); - if ($st > 0){ - #print "cannot create $aacout"; - return ""; - } - unlink($wavin); - return $aacout; -} - -sub createm4afile(){ - my $self = shift; - my $wavin = shift; - my $tags = shift; - my @tagdata = ""; - my $aacenc = $self->{binpath}.'/faac'; - if ($^O eq "MSWin32"){ - $aacenc = $aacenc.".exe"; - $aacenc =~ s/\/+/\\/g; - } - $aacenc = '"'.$aacenc.'"'; - #print "Create M4A file from: $wavin\n"; - if (exists($tags->{title})) { - push @tagdata ,'--title "'.$tags->{title}.'"'; - } - if (exists($tags->{artist})){ - push @tagdata ,'--artist "'.$tags->{artist}.'"'; - } - if (exists($tags->{album})){ - push @tagdata ,'--album "'.$tags->{album}.'"'; - } - if (exists($tags->{genre})){ - push @tagdata ,'--genre "'.$tags->{genre}.'"'; - } - if (exists($tags->{year})){ - push @tagdata ,'--year "'.$tags->{year}.'"'; - } - my $aacout = substr($wavin,0,-3).'m4a'; - if (-e $aacout) { - unlink($aacout); - } - - my $cmd = $aacenc.' -q 100 '.join(' ',@tagdata).' -o "'.$aacout.'" "'.$wavin.'"'; - #print $cmd."\n"; - #Win32::SetChildShowWindow(0); - my $st = system($cmd); - if ($st > 0){ - #print "M4A: cannot create $aacout"; - return ""; - } - unlink($wavin); - return $aacout; -} - -1; - - -1; +package audio; + +use strict; +use File::Basename; +use File::Path qw(make_path); +use Ogg::Vorbis::Header::PurePerl; +use MP3::Info; +use MP4::Info; +use Audio::FLAC::Header; +use Text::Unidecode; +use XML::Simple; +use LWP::Simple qw(getstore); +use LWP::UserAgent; + + +sub new { + my $class = shift; + my $param = shift; + my $self = bless {}, $class; + #if ($^O eq "MSWin32") { + $self->{binpath} = dirname($0).'/tools'; + $self->{gracenote}->{clientid} = "12135680-F83BAC36E126A57612907550113A9FF9"; + $self->{gracenote}->{url} = 'https://c12135680.web.cddbp.net/webapi/xml/1.0/'; + #} + +# foreach my $p (keys %{$param}){ +# $self->{$p} = $param->{$p}; +# } + return $self; +} + +sub info() { + my $self = shift; + my $req = shift; + my $html = (); + my $audiofile = $req->{file}; + my ($info,$tagdata) = $self->getaudioinfo($audiofile); + $html->{info} = $info; + $html->{tag}= $tagdata; + $html->{file} = $audiofile; + $html->{binpath} = $self->{binpath}; + return $html; +} + +sub getwebinfo() { + my $self = shift; + my $req = shift; + my $html = (); + ; + my $title = $req->{title}; + my $artist = $req->{artist}; + print "Search: ".$artist." - ".$title."\n"; + $self->get_server_cfg(); + if ((!exists($self->{gracenote}->{userid})) || ($self->{gracenote}->{userid} eq "")){ + $self->{gracenote}->{userid} = $self->gracenote_register(); + if (defined($self->{gracenote}->{userid})){ + #$self->write_server_cfg(); + } + } + my $data = $self->gracenote_query($artist,$title); + $html = $data; + return $html; + +} + +sub convert() { + my $self = shift; + my $req = shift; + my $html = (); + + my $i = $req->{input}; #i=input file + my $o = $req->{outpath}; #o=output path + my $id3 = $req->{id3}; #id3='title=...;artist=...;genre=...;comment=...;album=...,track=...' + my $t = $req->{type}; #t=outputtype (ogg,mp3,m4a,acc,flac) + my $g = $req->{gain}; #g=gain (-12.0 - 12.0) + my $b = $req->{bitrate}; #b=bitrate + my $r = $req->{samplerate}; #r=samplarate + my $s = $req->{cutsilence}; #s=cut silence 0|1 + $html->{params}->{input} = $i; + $html->{params}->{outpath} = $o; + $html->{params}->{id3} = $id3; + $html->{params}->{type} = $t; + $html->{params}->{gain} = $g; + $html->{params}->{bitrate} = $b; + $html->{params}->{samplerate} = $r; + $html->{params}->{cutsilence} = $s; + my $outfile = ""; + my $bitratetouse = undef; + my $sampleratetouse = undef; + $i =~ s/\/+/\\/g; + $o =~ s/\/+/\\/g; + if (! -f $i ) { + $html->{error} = "Input-file '$i' NOT found!"; + } else { + + my ($info,$tagdata) = $self->getaudioinfo($i); + if ($o eq ""){ + $o = dirname($i); + } + if (! -d ($o)){ + + make_path($o); + } + + my $wav = $self->createwavefile($i,$o); + + if ((-e $wav) && ($s == 1)) { $wav = $self->cutsilences($wav);} + if ((-e $wav) && ($g ne "")) {$wav = $self->setgain($wav,$g);} + if (-e $wav) { + + $bitratetouse = $info->{bitrate}; + $sampleratetouse=$info->{samplerate}; + if (defined($b)){$bitratetouse = $b;} + if (defined($r)){$sampleratetouse=$r;} + + } + if ($id3 ne "") { + my @spl = split(";",$id3); + $tagdata = (); + foreach my $x (@spl){ + #print $x; + my ($k,$v) = $x =~ m/^(\w+)=(.+)$/; + $tagdata->{$k} = $v; + } + + #$tagdata = JSON::PP::decode_json($id3); + # print "tags set:\n"; + # print Dumper($tagdata); + } + $html->{tag} = $tagdata; + $html->{wav} = $wav; + $html->{samplerate} = $sampleratetouse; + $html->{bitrate} = $bitratetouse; + if ($t eq "ogg") { $outfile = $self->createoggfile($wav,$tagdata,$sampleratetouse,$bitratetouse); + } elsif ($t eq "mp3"){ $outfile = $self->createmp3file($wav,$tagdata,$sampleratetouse,$bitratetouse); + } elsif ($t eq "flac"){ $outfile = $self->createflacfile($wav,$tagdata,$sampleratetouse); + } elsif ($t eq "aac"){ $outfile = $self->createaacfile($wav,$tagdata,$sampleratetouse,$bitratetouse); + } elsif ($t eq "m4a"){ $outfile = $self->createm4afile($wav,$tagdata); + } + if (-e $outfile){ + $html->{convertfile} = $outfile; + } + } + return $html; +} + +sub gracenote_register(){ + my $self = shift; + my $reg = ' + +'.$self->{gracenote}->{clientid}.' + +'; + my $xcontent = $self->gracenote_request( $self->{gracenote}->{url}, $reg); + + + my $xml = XMLin($xcontent,'ForceContent' => 1); + my $ret_val= ""; + if (exists($xml->{RESPONSE}->{USER})) { + $ret_val = $xml->{RESPONSE}->{USER}->{content}; + } + + return $ret_val; +} + +sub gracenote_request(){ + my $self = shift; + my $url = shift; + my $data = shift; + + my $request = HTTP::Request->new( POST => $url ); + $request->content($data); + $request->header( 'Content-type' => 'text/xml' ); + #return $request if $params->{'return_request'}; + my $ua = LWP::UserAgent->new; + $ua->agent("Coloradio GraceNote Client 20190810"); + $ua->timeout(20); + # Execute the request + my $response = $ua->request($request); + if ($response->is_success) { + #print "\n---\n".$response->content."\n---\n"; + return $response->content; + } + + #else { + # print $response->status_line; + #} + return ''; +} + +sub gracenote_query() { + my $self = shift; + my $artist = shift; + my $title = shift; + $artist =~ s/&/&/g; + $artist =~ s/\'//g; + $title =~ s/\'//g; + my $qb = ' + +'.$self->{gracenote}->{clientid}.' +'.$self->{gracenote}->{userid}.' + + +SINGLE_BEST_COVER +'.(($artist ne "")?''.$artist.'':"").' +'.(($title ne "")?''.$title.'':"").' + + + + +'; +my $data->{image}->{url} = ""; + $data->{image}->{filetype} = ""; + $data->{image}->{data} = ""; + $data->{year} = ""; + $data->{title} = $title; + $data->{artist} = $artist; + $data->{mood} = (); + $data->{tempo} = (); + $data->{genre} = (); + + my $xcontent = $self->gracenote_request( $self->{gracenote}->{url}, $qb); + if (!defined($xcontent)) { + return $data; + } + + +my $xml = XMLin($xcontent,'ForceContent' => 1); +#print Dumper($xml->{RESPONSE}->{ALBUM}); + +if ($xml->{RESPONSE}->{STATUS} eq "OK") { + #print Dumper($xml->{RESPONSE}->{ALBUM}); + #if (ref($xml->{RESPONSE}->{ALBUM}->{TRACK}) eq 'ARRAY') { + # #$self->query($artist,) + # print Dumper($xml->{RESPONSE}->{ALBUM}); + # print "multi track response\n"; + # return; + #} + + if (exists($xml->{RESPONSE}->{ALBUM}->{URL})){ + my $url = $xml->{RESPONSE}->{ALBUM}->{URL}; + if (ref($url) eq 'ARRAY') { + foreach my $u (@$url){ + if ($u->{TYPE} eq "ARTIST_IMAGE") { + $data->{image}->{url} = $u->{content}; + } + } + }else { + if ($url->{TYPE} eq "ARTIST_IMAGE") { + $data->{image}->{url} = $url->{content}; + } + } + } + if (exists($xml->{RESPONSE}->{ALBUM}->{DATE})){ + $data->{year} = $xml->{RESPONSE}->{ALBUM}->{DATE}->{content}; + } + #if (exists($xml->{RESPONSE}->{ALBUM}->{ARTIST})){ + # $data->{artist} = $xml->{RESPONSE}->{ALBUM}->{ARTIST}->{content}; + #} + #print Dumper($xml->{RESPONSE}->{ALBUM}->{TRACK}->{TITLE}); + #if (exists($xml->{RESPONSE}->{ALBUM}->{TRACK}->{TITLE})){ + # $data->{title}= $xml->{RESPONSE}->{ALBUM}->{TRACK}->{TITLE}->{content}; + #} + if (exists($xml->{RESPONSE}->{ALBUM}->{TRACK}->{TEMPO})){ + my $dd = $xml->{RESPONSE}->{ALBUM}->{TRACK}->{TEMPO}; + my @newa = (); + if (ref($dd) eq 'ARRAY') { + foreach my $d (@$dd){ + push(@newa,$d->{content}); + } + }else { + push(@newa,$dd->{content}); + } + $data->{tempo} = \@newa; + + } + if (exists($xml->{RESPONSE}->{ALBUM}->{TRACK}->{MOOD})){ + my $dd = $xml->{RESPONSE}->{ALBUM}->{TRACK}->{MOOD}; + my @newa = (); + if (ref($dd) eq 'ARRAY') { + foreach my $d (@$dd){ + push(@newa,$d->{content}); + } + }else { + push(@newa,$dd->{content}); + } + $data->{mood} = \@newa; + } + if (exists($xml->{RESPONSE}->{ALBUM}->{GENRE})){ + my $dd = $xml->{RESPONSE}->{ALBUM}->{GENRE}; + my @newa = (); + if (ref($dd) eq 'ARRAY') { + foreach my $d (@$dd){ + push(@newa,$d->{content}); + } + }else { + push(@newa,$dd->{content}); + } + $data->{genre} = \@newa; + } +} +else { + #print 'ERROR->'.$artist.'->'.$title."\n"; + $data->{error} = 'ERROR'; +} + return $data; +} + +# sub write_server_cfg(){ +# my $self = shift; +# open(CFG,$self->{cfgpath}); +# my $strgcfg = ""; +# while (my $l = ){ +# chomp($l); +# $strgcfg .= $l; +# } +# close(CFG); +# my $gcfg = JSON::PP::decode_json($strgcfg); +# $gcfg->{audio}->{gracenote} = $self->{gracenote}; +# open(CFG,">".$self->{cfgpath}); +# print CFG JSON::PP::encode_json($gcfg); +# close(CFG); +# } + +# sub get_server_cfg(){ +# my $self = shift; +# open(CFG,$self->{cfgpath}); +# my $strgcfg = ""; +# while (my $l = ){ +# chomp($l); +# $strgcfg .= $l; +# } +# close(CFG); +# my $gcfg = JSON::PP::decode_json($strgcfg); +# foreach my $g (keys(%{$gcfg->{audio}->{gracenote}})){ +# $self->{gracenote}->{$g} = $gcfg->{audio}->{gracenote}->{$g}; +# } +# } + +sub getaudioinfo(){ + my $self = shift; + my $audiofile = shift; + my $tmp = rindex($audiofile,'.'); + my $sfx = lc(substr($audiofile,rindex($audiofile,'.')+1)); + my $tagdata = (); + my $info = (); + my $ftype=""; + if (lc($sfx) eq 'ogg'){ + #print "get ogginfo from ".$oggin."
"; + $info->{filetype}="audio/ogg"; + my $oggx = Ogg::Vorbis::Header::PurePerl->new($audiofile); + if (defined($oggx)) { + my $inf = $oggx->info(); + for my $i (keys (%{$inf})){ + if ($i eq 'rate') { + $info->{samplerate} = int($inf->{$i}); + } + if ($i eq 'length') { + $info->{duration} = int($inf->{$i}); + } + if ($i eq 'bitrate_average') { + $info->{bitrate} = int($inf->{$i} / 1000); + } + } + foreach my $com ($oggx->comment_tags) { + foreach my $cc ($oggx->comment($com)){ + if (lc($com) eq 'title') { + $tagdata->{'title'} = $cc; + } + if (lc($com) eq 'album') { $tagdata->{'album'} = $cc;} + if (lc($com) eq 'artist') { + $tagdata->{'artist'} = $cc; + } + if (lc($com) eq 'year') { $tagdata->{'year'} = $cc;} + if (lc($com) eq 'genre'){ $tagdata->{'genre'} = $cc;} + if (lc($com) eq "date") { $tagdata->{'year'} = substr($cc,0,4); } + } + } + } + } + if (lc($sfx) eq 'mp3'){ + $info->{filetype}="audio/mpeg"; + my $tag = MP3::Info::get_mp3tag($audiofile); + if (defined($tag)) { + foreach my $t (keys(%{$tag})){ + if ((lc($t) eq 'title') || + (lc($t) eq 'album') || + (lc($t) eq 'artist') || + (lc($t) eq 'year') || + (lc($t) eq 'genre') + ){ + $tagdata->{lc($t)} = $tag->{$t}; + } + } + } + my $inf = MP3::Info::get_mp3info($audiofile); + if (defined($inf)) { + for my $i (keys(%{$inf})){ + if (lc($i) eq 'bitrate') { + $info->{bitrate} = int($inf->{$i}); + } + if (lc($i) eq 'frequency') { + $info->{samplerate} = int($inf->{$i} * 1000); + } + if (lc($i) eq 'secs') { + $info->{duration} = int($inf->{$i}) + } + } + } + } + if (lc($sfx) eq 'm4a'){ + $info->{filetype}="audio/mp4"; + my $tag = MP4::Info::get_mp4tag($audiofile); + if (defined($tag)) { + foreach my $t (keys(%{$tag})){ + if (lc($t) eq 'alb') { $tagdata->{album} = $tag->{$t}; } + if (lc($t) eq 'nam') { $tagdata->{title} = $tag->{$t}; } + if (lc($t) eq 'art') { $tagdata->{artist} = $tag->{$t}; } + if (lc($t) eq 'day') { $tagdata->{year} = $tag->{$t}; } + if (lc($t) eq 'gnre') { $tagdata->{genre} = $tag->{$t}; } + } + } + my $inf = MP4::Info::get_mp4info($audiofile); + if (defined($inf)) { + $info->{bitrate} = $inf->{BITRATE}; + $info->{samplerate} = int($inf->{FREQUENCY} * 1000); + $info->{duration} = $inf->{SECS}; + } + } + if (lc($sfx) eq 'flac'){ + $info->{filetype}="audio/flac"; + my $flac = Audio::FLAC::Header->new($audiofile); + my $tag = $flac->tags(); + if (defined($tag)) { + foreach my $t (keys(%{$tag})){ + if ((lc($t) eq 'title') || + (lc($t) eq 'album') || + (lc($t) eq 'artist') || + (lc($t) eq 'genre') + ){ + $tagdata->{lc($t)} = $tag->{$t}; + } + if (lc($t) eq 'date') { + $tagdata->{year} = substr($tag->{$t},0,4); + } + + } + } + my $inf = $flac->info(); + if (defined($inf)){ + $info->{duration} = int($flac->{trackTotalLengthSeconds}); + $info->{bitrate} = int($flac->{bitRate}); + $info->{samplerate} = int($inf->{SAMPLERATE}); + } + } + return ($info,$tagdata); +} + +sub createwavefile(){ + my $self = shift; + my $in = shift; + my $outpath = shift; + my $fname = basename($in); + $fname = substr($fname,0,rindex($fname,'.')).'.wav'; + #print "Create WAV: from:".$in." to: ".$outpath."\n\n\n"; + if (! -d $outpath){ + make_path($outpath); + } + if (($outpath !~ /\/$/) && ($outpath !~ /\\$/)){ + $outpath = $outpath."/"; + } + $in =~ s/\\\\/\\/g; + if (-e $outpath.$fname) { + unlink($outpath.$fname); + } + my $st = undef; + my $cmd = ""; + my $dec = ""; + if (lc($in) =~ /\.ogg$/) { + $dec = $self->{binpath}.'/oggdec'; + } elsif (lc($in) =~ /\.mp3$/){ + $dec = $self->{binpath}.'/lame'; + } elsif ((lc($in) =~ /\.m4a/) || (lc($fname) =~ /\.aac/)) { + $dec = $self->{binpath}.'/faad'; + } elsif (lc($in) =~ /\.flac/){ + $dec = $self->{binpath}.'/flac'; + } else { + $dec = $self->{binpath}.'/ffmpeg'; + } + if ($^O eq "MSWin32"){ + $dec = $dec.".exe"; + $dec =~ s/\/+/\\/g; + } + $dec = '"'.$dec.'"'; + if (lc($in) =~ /\.ogg$/) { + $cmd = $dec.' -w "'.$outpath.$fname.'" "'.$in.'"'; + }elsif (lc($in) =~ /\.mp3$/){ + $cmd = $dec.' --silent --decode "'.$in.'" "'.$outpath.$fname.'"'; + }elsif ((lc($in) =~ /\.m4a/) || (lc($fname) =~ /\.aac/)){ + $cmd = $dec.' -o "'.$outpath.$fname.'" "'.$in.'"'; + }elsif (lc($in) =~ /\.flac/){ + $cmd = $dec.' -d -o "'.$outpath.$fname.'" -F "'.$in.'"'; + } else { + $cmd = $dec.' -i "'.$in.'" "'.$outpath.$fname.'"'; + } + #print "$cmd\n"; + if ($cmd ne "") { + $st = system($cmd); + if ($st > 0){ + return ""; + } + } + my $ret = $outpath.'/'.$fname; + if ($^O eq "MSWin32") { + $ret =~ s/\/+/\\/g; + } + return $ret; +} + +sub cutsilences(){ + my $self = shift; + my $wav = shift; + my $nwav = substr($wav,0,-4); + my $sox = $self->{binpath}.'/sox'; + if ($^O eq "MSWin32"){ + $sox = $sox.".exe"; + $sox =~ s/\/+/\\/g; + } + #print "Cut silences\n"; + $sox = '"'.$sox.'"'; + ##Win32::SetChildShowWindow(0); + system($sox.' "'.$wav.'" "'.$nwav.'.sox0.wav" silence 1 0 -40d'); + #### Reverse file to trim the end + #Win32::SetChildShowWindow(0); + system($sox.' "'.$nwav.'.sox0.wav" "'.$nwav.'.sox1.wav" reverse' ); + #### Trim the end + #Win32::SetChildShowWindow(0); + system($sox.' "'.$nwav.'.sox1.wav" "'.$nwav.'.sox0.wav" silence 1 0 -40d' ); + #### Reverse back to original direction + #Win32::SetChildShowWindow(0); + system($sox.' "'.$nwav.'.sox0.wav" "'.$wav.'" reverse'); + unlink($nwav.'.sox0.wav'); + unlink($nwav.'.sox1.wav'); + return $wav; +} + +sub setgain(){ + my $self = shift; + my $wavfile = shift; + my $gain = shift; + my $cwd = dirname($wavfile); + my $wavegain = $self->{binpath}.'/wavegain'; + if ($^O eq "MSWin32"){ + $wavegain = $wavegain.".exe"; + $wavegain =~ s/\/+/\\/g; + } + $wavegain = '"'.$wavegain.'"'; + #print "Set Gain: ".$gain."\n"; + #if ($^O eq "MSWin32") + my $cmd = $wavegain.' -g '.$gain.'.0 -a -y "'.$wavfile.'" -l -f "'.$ENV{TMP}.'/wavegain.log"'; + #Win32::SetChildShowWindow(0); + my $st = system($cmd); + #print $st."\n"; + #open(NORM,"$cmd 2>&1 |") or die "cannot execute $cmd"; + #while (my $l =){ + # $l =~ s/\r//g; + # $l =~ s/\n//g; + # #print $l; + ## print ""; + #} + #close(NORM); + return $wavfile; +} + +sub createoggfile(){ + my $self = shift; + my $wavin = shift; + my $tags = shift; + my $samplerate = shift; + my $bitrate = shift; + my $oggenc = $self->{binpath}.'/oggenc2'; + if ($^O eq "MSWin32"){ + $oggenc = $oggenc.".exe"; + $oggenc =~ s/\/+/\\/g; + } + $oggenc = '"'.$oggenc.'"'; +my $q = ""; + #print "Crate OGG file from: $wavin\n"; + if ($bitrate ne ""){ + $q = "-b ".$bitrate; + } + my @tagdata = ""; + if (exists($tags->{title})) { + push @tagdata ,'-t "'.$tags->{title}.'"'; + } + if (exists($tags->{artist})){ + push @tagdata ,'-a "'.$tags->{artist}.'"'; + } + if (exists($tags->{album})){ + push @tagdata ,'-l "'.$tags->{album}.'"'; + } + if (exists($tags->{genre})){ + push @tagdata ,'-G "'.$tags->{genre}.'"'; + } + if (exists($tags->{year})){ + push @tagdata ,'-d "'.$tags->{year}.'"'; + } + my $oggout = substr($wavin,0,-3).'ogg'; + if (-e $oggout) { + unlink($oggout); + } + + #print '/usr/local/bin/oggenc -b '.$bitrate.' -o "'.$oggout.'" -t "'.$t.'" -a "'.$a.'" "'.$wavin.'"'; + #Win32::SetChildShowWindow(0); + #print "CMD:".$oggenc.' -Q '.$q.' --resample '.$samplerate.' -o "'.$oggout.'" '.join(' ',@tagdata).' "'.$wavin.'"'."\n"; + my $st = system($oggenc.' -Q '.$q.' --resample '.$samplerate.' -o "'.$oggout.'" '.join(' ',@tagdata).' "'.$wavin.'"'); + + if ($st > 0){ + print "cannot create $oggout"; + return ""; + } + unlink($wavin); + return $oggout; +} + +sub createmp3file(){ + my $self = shift; + my $wavin = shift; + my $tags = shift; + my $samplerate = shift; + my $bitrate = shift; + my $q = ""; + my $mp3enc = $self->{binpath}.'/lame'; + if ($^O eq "MSWin32"){ + $mp3enc = $mp3enc.".exe"; + $mp3enc =~ s/\/+/\\/g; + } + $mp3enc = '"'.$mp3enc.'"'; + #print "Crate MP3 file from: $wavin\n"; +# if ($quality ne "") { +# $q = "-V ".$quality." -Y "; +# }els + if ($bitrate ne ""){ + $q = "-b ".$bitrate; + } + my @tagdata = ""; + if (exists($tags->{title})) { + push @tagdata ,'--tt "'.$tags->{title}.'"'; + } + if (exists($tags->{artist})){ + push @tagdata ,'--ta "'.$tags->{artist}.'"'; + } + if (exists($tags->{album})){ + push @tagdata ,'--tl "'.$tags->{album}.'"'; + } + if (exists($tags->{genre})){ + push @tagdata ,'--tg '.$tags->{genre}.'"'; + } + if (exists($tags->{year})){ + push @tagdata ,'--ty "'.$tags->{year}.'"'; + } + my $mp3out = substr($wavin,0,-3).'mp3'; + $mp3out =~ s/\\+/\\/g; + $mp3out =~ s/\/+/\\/g; + #print '/usr/local/bin/oggenc -b '.$bitrate.' -o "'.$oggout.'" -t "'.$t.'" -a "'.$a.'" "'.$wavin.'"'; + #print '"'.$self->{binpath}.'lame.exe" '.$q.' -h -Y --add-id3v2 --id3v2-only -t -s '.$samplerate.' -tt "'.$t.'" -ta "'.$a.'" "'.$wavin.'" "'.$mp3out.'"'."\n"; + my $cmd = $mp3enc.' '.$q.' -h --quiet --add-id3v2 --id3v2-only -t -s '.$samplerate.' '.join(' ',@tagdata).' "'.$wavin.'" "'.$mp3out.'"'; + #print $cmd."\n"; + #Win32::SetChildShowWindow(0); + my $st = system($cmd); + + if ($st > 0){ + #print "cannot create $mp3out"; + return ""; + } + unlink($wavin); + return $mp3out; +} + +sub createflacfile(){ + my $self = shift; + my $wavin = shift; + my $tags = shift; + my $samplerate = shift; + #print "Crate FLAC file from: $wavin\n"; + my @tagdata = ""; + my $flacenc = $self->{binpath}.'/flac'; + if ($^O eq "MSWin32"){ + $flacenc = $flacenc.".exe"; + $flacenc =~ s/\/+/\\/g; + } + $flacenc = '"'.$flacenc.'"'; + + if (exists($tags->{title})) { + push @tagdata ,'-T TITLE="'.$tags->{title}.'"'; + } + if (exists($tags->{artist})){ + push @tagdata ,'-T ARTIST="'.$tags->{artist}.'"'; + } + if (exists($tags->{album})){ + push @tagdata ,'-T ALBUM="'.$tags->{album}.'"'; + } + if (exists($tags->{genre})){ + push @tagdata ,'-T GENRE="'.$tags->{genre}.'"'; + } + if (exists($tags->{year})){ + push @tagdata ,'-T YEAR="'.$tags->{year}.'"'; + } + my $flacout = substr($wavin,0,-3).'flac'; + if (-e $flacout) { + unlink($flacout); + } + my $cmd = $flacenc.'" -s -o "'.$flacout.'" '.join(' ',@tagdata).' "'.$wavin.'"'; + #print $cmd."\n"; + #Win32::SetChildShowWindow(0); + my $st = system($cmd); + if ($st > 0){ + #print "cannot create $flacout"; + return ""; + } + unlink($wavin); + return $flacout; +} + +sub createaacfile(){ + my $self = shift; + my $wavin = shift; + my $tags = shift; + my $samplerate = shift; + my $bitrate = shift; + # my $quality= shift; + my $q = ""; + my $aacenc = $self->{binpath}.'/faac'; + if ($^O eq "MSWin32"){ + $aacenc = $aacenc.".exe"; + $aacenc =~ s/\/+/\\/g; + } + $aacenc = '"'.$aacenc.'"'; + #print "Crate AAC file from: $wavin\n"; +# if ($quality ne "") { +# $q = "-q ".$quality; +# }els + if ($bitrate ne ""){ + $q = "-b ".$bitrate; + } + my $aacout = substr($wavin,0,-3).'aac'; + if (-e $aacout) { + unlink($aacout); + } + my $cmd = $aacenc.' '.$q.' -c '.$samplerate.' -o "'.$aacout.'" "'.$wavin.'"'; + #print $cmd."\n"; + #Win32::SetChildShowWindow(0); + my $st = system($cmd); + if ($st > 0){ + #print "cannot create $aacout"; + return ""; + } + unlink($wavin); + return $aacout; +} + +sub createm4afile(){ + my $self = shift; + my $wavin = shift; + my $tags = shift; + my @tagdata = ""; + my $aacenc = $self->{binpath}.'/faac'; + if ($^O eq "MSWin32"){ + $aacenc = $aacenc.".exe"; + $aacenc =~ s/\/+/\\/g; + } + $aacenc = '"'.$aacenc.'"'; + #print "Create M4A file from: $wavin\n"; + if (exists($tags->{title})) { + push @tagdata ,'--title "'.$tags->{title}.'"'; + } + if (exists($tags->{artist})){ + push @tagdata ,'--artist "'.$tags->{artist}.'"'; + } + if (exists($tags->{album})){ + push @tagdata ,'--album "'.$tags->{album}.'"'; + } + if (exists($tags->{genre})){ + push @tagdata ,'--genre "'.$tags->{genre}.'"'; + } + if (exists($tags->{year})){ + push @tagdata ,'--year "'.$tags->{year}.'"'; + } + my $aacout = substr($wavin,0,-3).'m4a'; + if (-e $aacout) { + unlink($aacout); + } + + my $cmd = $aacenc.' -q 100 '.join(' ',@tagdata).' -o "'.$aacout.'" "'.$wavin.'"'; + #print $cmd."\n"; + #Win32::SetChildShowWindow(0); + my $st = system($cmd); + if ($st > 0){ + #print "M4A: cannot create $aacout"; + return ""; + } + unlink($wavin); + return $aacout; +} + +1; + + +1; diff --git a/CGI/api/lib/dksdb.pm b/CGI/api/lib/dksdb.pm index bb368a1..71e6d98 100644 --- a/CGI/api/lib/dksdb.pm +++ b/CGI/api/lib/dksdb.pm @@ -1,15 +1,20 @@ package dksdb; use strict; +use FindBin qw($Bin); use lib ('./lib/perl5'); use lib ('./lib'); use lib ('./'); +# use lib ($Bin.'/CGI/api/lib/perl5'); +# use lib ($Bin.'/CGI/api/lib'); +# use lib ($Bin.'/lib/perl5'); +# use lib ($Bin.'/lib'); #BEGIN { $ENV{DBI_PUREPERL} = 2 } use DBI; use File::Basename; use Digest::SHA::PurePerl qw(sha256_hex); -use DBD::PgPP; +# use DBD::PgPP; use DBD::SQLite; use URI::Encode qw(uri_encode uri_decode); use Encode; @@ -39,26 +44,23 @@ sub query(){ my $self = shift; my $stat = shift; # my $vw_info = shift; - my @retdata = undef; - my $dbh = DBI->connect(((exists($self->{dsn}))?$self->{dsn}:$sitecfg->{dsn}),$sitecfg->{dbuser},$sitecfg->{dbpassword},{PrintError=>0,RaiseError=>0,AutoCommit=>1}) or return \@retdata;#$retdata[0] = "dbquery Connection Error!".$!; + my @retdata = (); + my $dbh = DBI->connect(((exists($self->{dsn}))?$self->{dsn}:$sitecfg->{dsn}),$sitecfg->{dbuser},$sitecfg->{dbpassword},{PrintError=>0,RaiseError=>0,AutoCommit=>1}) or return ("ERROR: Connection Error!".$!); $stat = encode("utf8", $stat); # open FILE,">>tmp/sql.log"; # print FILE "$stat\n"; # close FILE; - my $sth = $dbh->prepare($stat) or return \@retdata;#$retdata[0] = "dbquery".$dbh->errstr. "- SQL: ".$stat;; - - - $sth->execute() or return \@retdata; #"dbquery: ".$sth->errstr; - - my $data = $sth->fetchrow_hashref(); - foreach my $k (keys %{$data}){ - my $row = (); - foreach my $k (keys %{$data}){ - $row->{$k} = decode("utf-8",$data->{$k}); - } - push @retdata,$row; - # $retdata->{$k} = decode("utf-8",$data->{$k}); - } + my $sth = $dbh->prepare($stat) or return ("ERROR: query: ".$dbh->errstr. "- SQL: ".$stat); + $sth->execute() or return ("query: ".$sth->errstr);; + while(my $data = $sth->fetchrow_hashref()) + { + my $row = (); + foreach my $k (keys %{$data}){ + $row->{$k} = decode("utf-8",$data->{$k}); + } + push @retdata,$row; + } + $sth->finish(); $dbh->disconnect(); diff --git a/CGI/api/playlist.cgi b/CGI/api/playlist.cgi new file mode 100644 index 0000000..d65dc7a --- /dev/null +++ b/CGI/api/playlist.cgi @@ -0,0 +1,111 @@ +#!/Users/kilian/perl5/perlbrew/perls/perl-5.24.1/bin/perl +use strict; +use FindBin qw($Bin); + +use CGI; +use CGI::Cookie; +use CGI::Carp qw/fatalsToBrowser/; +use File::Basename; +use Data::Dumper; +use File::Basename; +use JSON::PP; +use File::Path qw/make_path/; +use Archive::Tar; + +use lib ($Bin.'/CGI/api/lib/perl5'); +use lib ($Bin.'/CGI/api/lib'); +use lib ($Bin.'/lib/perl5'); +use lib ($Bin.'/lib'); +use dksconfig qw/$sitecfg/; +use dksdb; + +my $cgi = new CGI(); +my $scriptpath = $cgi->url(-absolute => 1); +my $p = (); +my @params = $cgi->param(); +foreach my $pe (@params){ + $p->{$pe} = $cgi->param($pe); +} +my $cfg->{plpath} = "D:/Workspace/dksnas/data/".$p->{app}."/".$p->{db}."/playlists"; +my $html->{result} = (); +$html->{params} = $p; +if (exists($p->{app}) && exists($p->{db}) && exists($p->{fn}) ) { + if ($p->{fn} eq "merge"){ + if (exists($p->{datefrom}) && exists($p->{dateto}) && exists($p->{id_station})){ + my $dbredirect = (); + if ($sitecfg->{dbtype} eq "SQLite"){ + if (exists($p->{db})){ + $dbredirect->{dsn} = "DBI:SQLite:dbname=".$sitecfg->{datapath}.'/'.$p->{app}.'/'.$p->{db}.'.sqlite'; + } + } + $html->{conn} = $dbredirect; + my $db = dksdb->new($dbredirect); + my $stres = $db->query("select id,name,spotrotation from stations where id='".$p->{id_station}."';"); + my $station = @$stres[0]; + $html->{station} = $station; + my $savetopath = $cfg->{plpath}.'/'.$station->{name}; + if (! -d $savetopath){ + make_path($savetopath); + } + $html->{params}->{saveto} = $savetopath; + my @files = (); + opendir(DPL,$cfg->{plpath}.'/default'); + while (my $f = readdir(DPL)){ + chomp($f); + if (($f =~ /\.m3u$/) && ($f ge $p->{datefrom}.'.m3u') && ($f le $p->{dateto}.'.m3u')){ + my $cdate = substr($f,0,-4); + my $spt = $db->query("select sp.id,sp.folder || '/' || sp.file || '|' || sp.seconds || '|' || sp.folder || '|' || sp.name as spot from spots sp join stationspots ssp on (sp.id=ssp.id_spot) join stations st on (ssp.id_station = st.id) where date('".$cdate."') between sp.startdate and sp.enddate and st.id=".$p->{id_station}."; "); + my $sptcnt = 0; + my $sptpos = 0; + my $apos = 0; + + if (scalar(@$spt) > 0){ + $sptcnt = scalar(@$spt); + } + $html->{spcnt} = scalar(@$spt); + $html->{spdata} = $spt; + open(PIN,$cfg->{plpath}.'/default/'.$f); + open(POUT,">".$savetopath.'/'.$f); + while (my $l = ){ + chomp($l); + if ($apos >= int($station->{spotrotation})){ + my $xdata = @{$spt}[$sptpos]; + print POUT $xdata->{spot}."\n"; + $sptpos++; + if ($sptpos >= $sptcnt){ + $sptpos=0; + } + $apos = 0; + } + print POUT $l."\n"; + $apos++; + } + close(POUT); + + close(PIN); + push(@files,$f); + } + } + closedir(DPL); + #pack system + chdir($savetopath); + if (-e $savetopath.'/'.$station->{name}.'.tgz'){ + unlink($savetopath.'/'.$station->{name}.'.tgz'); + } + my $tar = Archive::Tar->new; + $tar->add_files(@files); + foreach my $x (@files){ + $tar->rename($x,'radio/playlists/'.$x); + } + $tar->write( $savetopath.'/'.$station->{name}.'.tgz', COMPRESS_GZIP ); + $html->{result}->{file} = $station->{name}.'.tgz'; + $html->{result}->{num} = scalar(@files); + } + } + +} +print $cgi->header(-type=> 'application/json', -charset=>"UTF-8"); +my $js = JSON::PP->new(); +$js->allow_blessed(1); +$js->convert_blessed(1); +print $js->utf8->encode($html); diff --git a/CGI/index.cgi b/CGI/index.cgi index 8af8540..d850dde 100644 --- a/CGI/index.cgi +++ b/CGI/index.cgi @@ -193,7 +193,8 @@ if ($vars->{page} =~ /module/){ #END - iFrame - Modules $template->process($skl,$vars) || die "Template process failed: ", $template->error(), "\n"; -print '
'.Dumper($vars)."
";
+
+print '/*
'.Dumper($vars)."
*/";
 
 
 
diff --git a/CGI/tmpl/app/creorga/index.tt b/CGI/tmpl/app/creorga/index.tt
index 2141a43..271f190 100644
--- a/CGI/tmpl/app/creorga/index.tt
+++ b/CGI/tmpl/app/creorga/index.tt
@@ -1,89 +1,89 @@
-
-
-  
-    
-    
-    
-    
-    
-  
-  
-    
-
-    Creorga 
-
-    
-	
-  
-
-  
-
-    
-
-    
- - - -
- - - - - - - - - - - + + + + + + + + + + + + + Creorga + + + + + + + + + +
+ + + +
+ + + + + + + + + + + diff --git a/CGI/tmpl/app/creorga/module/calendar/calorganisation.tt b/CGI/tmpl/app/creorga/module/calendar/calorganisation.tt index 70d07bd..babfebe 100644 --- a/CGI/tmpl/app/creorga/module/calendar/calorganisation.tt +++ b/CGI/tmpl/app/creorga/module/calendar/calorganisation.tt @@ -1,473 +1,473 @@ - - - - - Organisation Personnel - - - - - - - - - - - - - - - - - - -
- - - - -
- - -
-
-
- - - - - - - - - - - - - - - - - - - - - - + + + + + Organisation Personnel + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + diff --git a/CGI/tmpl/app/creorga/module/calendar/calvacancy.tt b/CGI/tmpl/app/creorga/module/calendar/calvacancy.tt index 7fbec8b..270d19d 100644 --- a/CGI/tmpl/app/creorga/module/calendar/calvacancy.tt +++ b/CGI/tmpl/app/creorga/module/calendar/calvacancy.tt @@ -1,69 +1,69 @@ - - - - - Congé - - - - - - - - - - - - - - - - - - -
- - -
- - -
-
- -
- - - - - - - - - - - - - - - + + + + + Congé + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+
+ +
+ + + + + + + + + + + + + + + diff --git a/CGI/tmpl/app/creorga/module/calendar/index.tt b/CGI/tmpl/app/creorga/module/calendar/index.tt index 70611cf..7c10015 100644 --- a/CGI/tmpl/app/creorga/module/calendar/index.tt +++ b/CGI/tmpl/app/creorga/module/calendar/index.tt @@ -1,99 +1,99 @@ - - - - - - - Organisation Enfants - - - - - - - - - - - - - - - - -
- - -
- - -
-
- -
- - - - - - - - - - - - - - - + + + + + + + Organisation Enfants + + + + + + + + + + + + + + + + +
+ + +
+ + +
+
+ +
+ + + + + + + + + + + + + + + diff --git a/CGI/tmpl/app/creorga/module/calendar/js/calactivity.js b/CGI/tmpl/app/creorga/module/calendar/js/calactivity.js index 03b349f..7d1da8c 100644 --- a/CGI/tmpl/app/creorga/module/calendar/js/calactivity.js +++ b/CGI/tmpl/app/creorga/module/calendar/js/calactivity.js @@ -1,967 +1,967 @@ -//Source-code licensed under EUPL v1.2 ( Copyright 2019 By DKS s.à r.l. - Kilian Saffran - Luxembourg ) - -var pconfig = {}; -var initdate = new Date(); -initdate.setDate(1); -var lastmonthday = null; -var firstmonday = null; -var lastsunday = null; -var winh = window.innerHeight - 140; -var tblacc = null; -var lblfreq = {daily:'jour(s)',weekly:'semaine(s)',monthly:'mois'}; -var amonth = ['', 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aôut', 'Septembre','Octobre', 'Novembre', 'Décembre']; -var linkpos = {}; -var posday = {}; -var delac = null; -var curfreq ={}; -var redate = /\d\d.\d\d.\d\d\d\d/; -var tblcal = null; -var vacpos = {}; -var vacdata = null; -var drsql = ""; -var eventdates = {}; -var curevcolor = ""; -var alltr = {}; -var rtblall = {}; -var crsel = []; -function initdata() { - //curcfg.loadconfig(parent.apppref.getpreference("creorga.support.database.currentdb.num")); - load_helpers(); - $('#view_list').hide(); - pconfig = parent.apppref.getpreference("calorganisation"); - if (!pconfig) { - pconfig = {} - } - pconfig.view = 'table'; - //if (!pconfig.printlayout) { - pconfig.printlayout = 'table'; - parent.apppref.setpreference("calorganisation",pconfig); - //} - if (pconfig.calmonth) { - - initdate = new Date(encodeparam(pconfig.calmonth, 'month').replace(/'/g, '')); - $("#calmonth").val(pconfig.calmonth); - } else { - $("#calmonth").val(initdate.getMonth() + '.' + initdate.getFullYear()); - pconfig.calmonth = initdate.getMonth() + '.' + initdate.getFullYear(); - } - - load_staff_selection('filter_staff'); - load_staff_selection('staffuuid'); - load_calendar_month(); - - - -} - -$('#calmonth').on('dp.hide',function(e){ - set_calmonth(); -}); - -function load_calendar_month() { - - firstmonday = new Date(initdate.getFullYear(), initdate.getMonth(), -1 * parseInt(initdate.getWeekNumber()) + 2); - if (firstmonday > initdate) { - firstmonday = new Date(initdate.getFullYear(), initdate.getMonth(),firstmonday.getDate()-7); - } - lastmonthday = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 1); - - lastsunday = new Date(lastmonthday.getFullYear(), lastmonthday.getMonth(), lastmonthday.getDate() + 7 - parseInt(lastmonthday.getWeekNumber())); - - var weeknum = 0; - var cmonth = initdate.getMonth(); - var sday = []; - firstmonday = new Date(initdate.getFullYear(), initdate.getMonth(), -1 * parseInt(initdate.getWeekNumber()) + 2); - if (firstmonday > initdate) { - firstmonday = new Date(initdate.getFullYear(), initdate.getMonth(),firstmonday.getDate()-7); - } - load_vacancy_data(); - - load_calendar_data(); - -} - -function load_calendar_data() { - var where = []; - if ((pconfig.filterstaff) && (pconfig.filterstaff.length > 0)) { - where.push(" st.uuid in ('"+ pconfig.filterstaff.join("','") + "')"); - } - if ((pconfig.filteractivity) && (pconfig.filteractivity.length > 0)) { - where.push(" cal.description in ('"+ pconfig.filteractivity.join("','") + "')"); - } - var sql = "SELECT cal.uuid, cal.datefrom, cal.dateto, '
' || strftime('%Y%m%d',cal.datefrom) ||'
' || strftime('%d.%m.%Y',cal.datefrom) AS tbldatefrom ,strftime('%Y%m%d',cal.datefrom) AS strdatefrom, strftime('%Y%m%d',cal.dateto) AS strdateto,cal.timefrom, cal.timeto, cal.description, cal.location, cal.color, cal.freq, '[\"' || GROUP_CONCAT(sp.staffuuid,'\",\"') || '\"]' as staffuuid, GROUP_CONCAT(coalesce(st.surname,'') || ' ' || coalesce(st.prename,''), '
' ) as staffnames ,'[\"' || GROUP_CONCAT(st.color,'\",\"') || '\"]' as staffcolors from eventcalendar cal " + ((pconfig.filterstaff)?"":" left ") +" join staffplanning sp on (cal.uuid=sp.eventcalendaruuid " + ((pconfig.filterstaff)?" AND sp.staffuuid in ('"+ pconfig.filterstaff.join("','") + "')":"") +") left join staff st on (sp.staffuuid=st.uuid) "+ - - " where (cal.datefrom between '" + initdate.toISOString().substring(0,10) + "' and '" + lastmonthday.toISOString().substring(0,10) + "' and (cal.dateto >= '" + initdate.toISOString().substring(0,10) + "' or cal.dateto is null)) or (cal.dateto between '" + initdate.toISOString().substring(0,10) + "' and '" + lastmonthday.toISOString().substring(0,10) + "' and cal.datefrom < '" + initdate.toISOString().substring(0,10) + "') or ((cal.datefrom <= '" + firstmonday.toISOString().substring(0,10) + "') and ((cal.dateto >= '" + lastmonthday.toISOString().substring(0,10) + "') or cal.dateto is null)) "+ ((where.length > 0)?" AND (" + where.join(" or ") + ")":"")+" group by cal.uuid order by cal.datefrom,cal.dateto;"; - - var caldata = parent.appdb.dbquery(sql); - - caldata = caldata.sqldata; - get_vacancy_data(); - - for (var c in caldata) { - if (!eventdates[caldata[c].uuid]) { - eventdates[caldata[c].uuid] = {}; - } - var freq = caldata[c].freq; - if (freq !== '') { - freq += ';DTSTART='+caldata[c].strdatefrom + 'T000000Z'; - if ((caldata[c].dateto !== '') && (caldata[c].dateto <= lastmonthday.toISOString().substring(0,10))){ - freq += ';UNTIL='+caldata[c].strdateto + 'T000000Z'; - }else { - freq += ';UNTIL='+lastmonthday.toISOString().substring(0,10).replace('-','') + 'T000000Z'; - } - } - - if (freq !== ""){ - try { - var rule = RRule.fromString(freq); - rall = rule.all(); - } catch (ex){ - - } - } else { - continue; - } - for (var r in rall){ - if ((rall[r].toISOString().substring(0,10) >= initdate.toISOString().substring(0,10)) && (rall[r].toISOString().substring(0,10) <= lastmonthday.toISOString().substring(0,10))) { - if (!eventdates[caldata[c].uuid][rall[r].toISOString().substring(8,10)]) { - eventdates[caldata[c].uuid][rall[r].toISOString().substring(8,10)] = 1; - } - } - - } - } - load_timetable(); -} - -function load_timetable() { - $('#tbl_timetable').html(""); - drsql = getdaterangesql(); - var thead = []; - var totalstaff = []; - var weekrange = {}; - var ltd = ""; - var bdate = new Date(initdate.toISOString().substring(0,10)); - var enddate = new Date(initdate.getFullYear(),initdate.getMonth() + 1, 0); - while (bdate <= enddate){ - if (!weekrange[parseInt(bdate.getWeekNumber())]) { - weekrange[parseInt(bdate.getWeekNumber())] = 0; - } - weekrange[parseInt(bdate.getWeekNumber())] += 1; - - var head = ((bdate.getDate() < 10)?"0"+bdate.getDate():bdate.getDate()); - if (thead.indexOf(head) == -1) { - thead.push(head); - } - totalstaff.push(0); - bdate = new Date (bdate.getFullYear(),bdate.getMonth(),bdate.getDate() + 1) - } - - var actdata = getstaffactivity(); - - var lev = ""; - var lst = ""; - - var ev = {}; - - var alltrx = {}; - for (var ac in actdata){ - var evid = actdata[ac].eventuuid; - - if ((evid) && (lev !== evid) && (!alltrx[evid])) { - ev = {"eventuuid":evid,"description": actdata[ac].description ,"timefrom":actdata[ac].timefrom,"timeto":actdata[ac].timeto,"eventcolor":actdata[ac].eventcolor}; - for (var h in thead){ - ev[thead[h]] = {}; - } - alltrx[evid] = ev; - - } - var cday = actdata[ac].daydate.substring(8,10); - - if ((evid) && (eventdates[evid]) && (eventdates[evid][cday])) { - - alltrx[evid][cday]={"staffuuid":JSON.parse(actdata[ac].staffuuid),"staffcolor":JSON.parse(actdata[ac].staffcolor),"staffnames":JSON.parse(actdata[ac].staffnames)}; - - } - lev = null; - lev = evid; - - } - - var vacdata = getstaffvacancy(); - var staffuuids = []; - for (var vc in vacdata){ - var dx = new Date(vacdata[vc].daydate).toISOString().substring(8,10); - if (staffuuids.indexOf(vacdata[vc].staffuuid)) { - staffuuids.push(vacdata[vc].staffuuid); - } - for (var e in alltrx){ - - if (alltrx[e][dx]['staffuuid']) { - var idx = alltrx[e][dx]['staffuuid'].indexOf(vacdata[vc].staffuuid); - - if (idx != -1) { - - if (vacdata[vc].timefrom==vacdata[vc].timeto) { - alltrx[e][dx]['staffcolor'][idx] = "transparent"; - }else { - - var tfto =((parseInt(vacdata[vc].timeto.substring(1,2)) - parseInt(vacdata[vc].timefrom.substring(1,2)))/8)*100; - var clr = alltrx[e][dx]['staffcolor'][idx]; - - alltrx[e][dx]['staffcolor'][idx] = "linear-gradient(to right, "+convertHex(clr,1)+" 0%,"+convertHex(clr,1)+" "+tfto+"%,rgba(0,0,0,0) 100%)"; - } - - } - } - } - - } - var cspan = 0; - var hdays = get_vacancydays(); - - var strhead = 'Semaine'; - for (var w in weekrange){ - strhead += '' + w + ''; - cspan += weekrange[w]; - } - - strhead += ''; - for (var th in thead){ - var sty=""; - if (hdays[thead[th]]) { - sty =' style="background-color: '+((hdays[thead[th]]=='vacancy')?'#FF7145':'#FF9C2A')+' !important;" '; - } - strhead += ''+ thead[th]+''; - } - - strhead += ''; - $('#tbl_timetable').append(strhead); - $('#tbl_timetable').append(''); - cspan +=1; - - var actchange = ""; - - for (var a in alltrx){ - - var trn = ""; - trn += ''+alltrx[a].timefrom+' - '+alltrx[a].timeto+''; - for (var h in thead){ - if ((hdays[thead[h]]) && (hdays[thead[h]] == 'vacancy')) { - trn += ''; - continue; - } - if (alltrx[a][thead[h]]) { - - trn += ''; - if (alltrx[a][thead[h]]["staffcolor"]) { - var xx = alltrx[a][thead[h]]["staffcolor"]; - for (var r in xx){ - var col = ""; - if (xx[r] == 'transparent') { - col = 'color: transparent; display: none;'; - }else { - if (xx[r].indexOf("linear-gradient") == -1){ - totalstaff[parseInt(thead[h])-1] += 1; - } - - } - trn += '
'+alltrx[a][thead[h]]["staffnames"][r] +'
'; - } - - } - - trn += ''; - }else { - trn += ''; - } - } - trn += ''; - - $('#tbl_timetable').append(trn); - - } - - $('#tbl_timetable').append(''); - var tfoot = "Total:"; - for (var i in totalstaff){ - tfoot += ''+ (totalstaff[i] == 0?"":totalstaff[i]) +''; - } - tfoot += ''; - $('#tbl_timetable').append(tfoot); - - $('#tbl_timetable').append(''); - - if ((!(pconfig.filterstaff)) || ((pconfig.filterstaff) && (pconfig.filterstaff.length != 1))){ - - sortHTML('#tbl_timetable','.tblstaffrow', 'td:nth-child(1)'); - } -} - -function getHTMLElements (id) { - if (typeof id == "object") { - return [id]; - } else { - return document.querySelectorAll(id); - } -} - -function sortHTML(id, sel, sortvalue) { - var a, b, i, ii, y, bytt, v1, v2, cc, j; - a = getHTMLElements(id); - for (i = 0; i < a.length; i++) { - for (j = 0; j < 2; j++) { - cc = 0; - y = 1; - while (y == 1) { - y = 0; - b = a[i].querySelectorAll(sel); - for (ii = 0; ii < (b.length - 1); ii++) { - bytt = 0; - if (sortvalue) { - v1 = b[ii].querySelector(sortvalue).innerHTML.toLowerCase(); - v2 = b[ii + 1].querySelector(sortvalue).innerHTML.toLowerCase(); - } else { - v1 = b[ii].innerHTML.toLowerCase(); - v2 = b[ii + 1].innerHTML.toLowerCase(); - } - if ((j == 0 && (v1 > v2)) || (j == 1 && (v1 < v2))) { - bytt = 1; - break; - } - } - if (bytt == 1) { - b[ii].parentNode.insertBefore(b[ii + 1], b[ii]); - y = 1; - cc++; - } - } - if (cc > 0) {break;} - } - } -}; - - -function load_vacancy_data() { - var sql = "select vacancydate,strftime('%Y%m%d',vacancydate) as strvacancydate,vacancydateto,case when vacancydateto is not null then strftime('%Y%m%d',vacancydateto) else null end as strvacancydateto,vacancydescription from vacancy " + - "where (vacancydate between '" + firstmonday.toISOString().substring(0,10) + "' and '" + lastsunday.toISOString().substring(0,10) + "' and (vacancydateto >= '" + firstmonday.toISOString().substring(0,10) + "' or vacancydateto is null)) or (vacancydateto between '" + firstmonday.toISOString().substring(0,10) + "' and '" + lastsunday.toISOString().substring(0,10) + "' and vacancydate < '" + firstmonday.toISOString().substring(0,10) + "') or ((vacancydate <= '" + firstmonday.toISOString().substring(0,10) + "') and (vacancydateto >= '" + lastsunday.toISOString().substring(0,10) + "')) " + - "order by vacancydate,vacancydateto;"; - var caldata = parent.appdb.dbquery(sql); - caldata = caldata.sqldata; - for (var c in caldata) { - var freq = "FREQ=DAILY"; - freq += ';DTSTART='+caldata[c].strvacancydate + 'T000000Z'; - - if (caldata[c].vacancydateto !== ''){ - freq += ';UNTIL='+caldata[c].strvacancydateto + 'T000000Z'; - }else { - freq += ';UNTIL='+caldata[c].strvacancydate + 'T000000Z'; - } - try { - var rule = RRule.fromString(freq); - var rall = rule.all(); - - for (var r in rall){ - if ((rall[r].toISOString().substring(0,10) >= initdate.toISOString().substring(0,10)) && (rall[r].toISOString().substring(0,10) <= lastmonthday.toISOString().substring(0,10)+' T00:00.000Z')) { - - $("#" + linkpos["" + rall[r].toISOString().substring(0,10)] + " > div.panel-day > div.panel-dayhead").addClass(((caldata[c].vacancydateto == '')?'calvacancy':'calvacrange')); - $("#" + linkpos["" + rall[r].toISOString().substring(0,10)] + " > div.panel-day > div.panel-dayhead > div#vacname").remove(); - $("#" + linkpos["" + rall[r].toISOString().substring(0,10)] + " > div.panel-day > div.panel-dayhead").prepend('
'+ caldata[c].vacancydescription + "
 "); - } - } - } catch (ex){ - } - } -} - -function load_staff_selection(objid,option){ - var stdata = parent.appdb.dbquery("select uuid, coalesce(surname,'') || ' ' || coalesce(prename,'') as name,case when color is null then '#000' else color end as color from staff order by surname,prename"); - stdata = stdata.sqldata; - for (var s in stdata){ - $('#' + objid).append(''); - } - if (objid == 'filter_staff') { - $('#' + objid).multiselect({enableHTML: true,numberDisplayed:1,nonSelectedText:"Tous",allSelectedText: 'Tous',nSelectedText: ' selections'}); - if (pconfig.filterstaff) { - $('#' + objid).multiselect('select',pconfig.filterstaff); - } - }else { - var copt = {}; - if (option) { - copt = option; - } - copt['enableHTML'] = true; - copt['nonSelectedText']="Sélectionner un(e) employé(e)..."; - copt['numberDisplayed']=5; - copt['allSelectedText']='Tous'; - copt['nSelectedText']=' selections'; - - $('#' + objid).multiselect(copt); - } - -} - - - -function load_activity_selection(objid,type) { - var stdata = parent.appdb.dbquery("select uuid,description as activity,color from eventcalendar group by description,color;"); - stdata = stdata.sqldata; - for (var s in stdata){ - $('#' + objid).append(''); - } - if (pconfig.filteractivity) { - $('#' + objid).multiselect({enableHTML: true,numberDisplayed:1,nonSelectedText:"Tous",allSelectedText: 'Tous',nSelectedText: ' selections'}); - $('#' + objid).multiselect('select',pconfig.filteractivity); - } else if (type == 'multiple') { - $('#' + objid).multiselect({enableHTML: true,numberDisplayed:1,nonSelectedText:"Tous",allSelectedText: 'Tous',nSelectedText: ' selections'}); - } else { - var copt = {}; - copt['enableHTML'] = true; - copt['nonSelectedText']="Sélectionner une activité.."; - $('#' + objid).multiselect(copt); - $('#' + objid).multiselect('select',null); - } -} - -function set_calmonth(){ - pconfig.calmonth =$("#calmonth").val(); - parent.apppref.setpreference("calorganisation",pconfig); - parent.app.loadpage('modules/calendar/calorganisation.html',{calmonth:pconfig.calmonth}); -} - - -function onnextmonth() { -var xdate = parent.appdb.dbquery("select STRFTIME('%m.%Y',date('"+initdate.toISOString().substring(0,10)+"','+1 month')) as ndate"); -pconfig.calmonth = xdate.sqldata[0].ndate; -parent.apppref.setpreference("calorganisation", pconfig); -parent.app.loadpage('modules/calendar/calorganisation.html',{calmonth:pconfig.calmonth}); -} - -function onpreviousmonth() { -var xdate = parent.appdb.dbquery("select STRFTIME('%m.%Y',date('"+initdate.toISOString().substring(0,10)+"','-1 month')) as ndate"); -pconfig.calmonth = xdate.sqldata[0].ndate; -parent.apppref.setpreference("calorganisation", pconfig); -parent.app.loadpage('modules/calendar/calorganisation.html',{calmonth:pconfig.calmonth}); -} - -function dlg_vacancy_detail(stuuids) { - - var obj = stuuids.split(',') - var vsql = "select coalesce(surname,'') || ' ' || coalesce(prename,'') as staffname,color from staff where uuid in ('" + obj.join("','") + "');"; - - var vst = parent.appdb.dbquery(vsql); - vst = vst.sqldata; - $('#vacdetail').html(""); - for (var v in vst){ - $('#vacdetail').append('
'+ vst[v].staffname+'
'); - } - $("#dlg_vacancy_detail").modal('show'); - -} - -function dlg_event(uuid, type) { - $('#staffuuid').multiselect('deselectAll', false); - - $('#staffuuid').multiselect('updateButtonText'); - - if (type== "ins") { - $('#btndeleteevent').hide(); - - }else { - $('#btndeleteevent').show(); - } - $('#frmeditevent #freqinterval').hide(); - $('#frmeditevent #freqmonthly').hide(); - $('#frmeditevent #freqweekly').hide(); - $('#frmeditevent #freq_monthly_byday').show(); - $('#frmeditevent #freq_monthly_bymonthday').hide(); - $('#frmeditevent #freq').val(""); - $('#frmeditevent .active').removeClass('active'); - load_activity_selection('cmb_clone_activity','single'); - $('#cmb_clone_activity').multiselect('select', ['none']); - if ((type == 'upd') || (type == 'ins')) { - var evdata = { - uuid: '0', - description: '', - activityuuid:'', - location: '', - color: '', - datefrom:new Date().toISOString().substring(0,10), - dateto:'', - staffuuid:'', - timefrom: '00:00', - timeto: '00:00', - freq: '' - }; - - if (type == 'upd') { - var evsql = "SELECT uuid, strftime(\"%d.%m.%Y\",datefrom) as datefrom, strftime(\"%d.%m.%Y\",dateto) as dateto, timefrom, timeto, description, location, color, freq, GROUP_CONCAT(st.staffuuid,',') as staffuuid FROM eventcalendar ev left join staffplanning st on (ev.uuid=st.eventcalendaruuid) where ev.uuid='" + uuid.uuid + "' group by ev.uuid;"; - evdata = parent.appdb.dbquery(evsql); - evdata = evdata.sqldata[0]; - if (evdata.freq !== '') { - var tmpfreq = evdata.freq.split(';'); - for (var t in tmpfreq){ - if (tmpfreq[t] !== '') { - var spl = tmpfreq[t].split("="); - evdata[spl[0].toLowerCase()] = spl[1].toLowerCase(); - } - } - } - } - for (var w in evdata) { - if ($("#frmeditevent #" + w)) { - if (w == 'staffuuid') { - if (evdata[w] === '') { - $("#frmeditevent #" + w).multiselect('select',[]); - } else { - $("#frmeditevent #" + w).multiselect('select',evdata[w].split(',')); - } - - }else if (w == 'color') { - - curevcolor = evdata[w]; - $("#frmeditevent #color").val(evdata[w]); - $('#frmeditevent #color').minicolors('value',{color: evdata[w]}); - } - else { - $("#frmeditevent #" + w).val(evdata[w]); - if ((w === "description") && (evdata[w] !== "")) { - $("#cmb_clone_activity").multiselect('select',evdata[w]); - } - } - } - } - if ((evdata.freq == 'weekly') && (evdata.byday)) { - var bd = evdata.byday.split(','); - for (var i in bd){ - document.getElementById('weekly_byday_' + bd[i]).setAttribute("checked",true); - $('#frmeditevent #weekly_byday_' + bd[i]).parent().addClass("active"); - } - } - if (evdata.freq == 'monthly') { - $('#freq_monthly_byday').hide(); - $('#freq_monthly_bymonthday').hide(); - $('#pnl_monthly_byday').removeAttr("checked"); - $('#pnl_monthly_bymonthday').removeAttr("checked"); - if (evdata.byday) { - document.getElementById('pnl_monthly_byday').setAttribute("checked",true); - $('#frmeditevent #pnl_monthly_byday').parent().addClass("active"); - $('#freq_monthly_byday').show(); - var bd = evdata.byday.split(','); - var adpos = []; - var awday = []; - for (var i in bd){ - var wday = bd[i].substr(bd[i].length-2); - var pos = bd[i].substring(0,bd[i].length-2); - awday.push(wday.toLowerCase()); - adpos.push(pos); - } - for (var i in adpos){ - document.getElementById('monthly_bydaypos_' + adpos[i]).setAttribute("checked",true); - $('#frmeditevent #monthly_bydaypos_' + adpos[i]).parent().addClass("active"); - } - for (var i in awday){ - document.getElementById('monthly_bydaywday_' + awday[i]).setAttribute("checked",true); - $('#frmeditevent #monthly_bydaywday_' + awday[i]).parent().addClass("active"); - } - }else if (evdata.bymonthday) { - document.getElementById('pnl_monthly_bymonthday').setAttribute("checked",true); - $('#frmeditevent #pnl_monthly_bymonthday').parent().addClass("active"); - $('#freq_monthly_bymonthday').show(); - var bd = evdata.bymonthday.split(','); - for (var i in bd){ - document.getElementById('monthly_bymonthday_' + bd[i]).setAttribute("checked",true); - $('#frmeditevent #monthly_bymonthday_' + bd[i]).parent().addClass("active"); - } - } - } - setfreq(); - $("#edit_event").modal('show'); - } -} - -function save_event() { - var sql1 = new Array(); - var sql2 = new Array(); - if ($('#timefrom').val() == $('#timeto').val() || $('#timefrom').val() == "00:00" || $('#timeto').val() == "00:00"){ - errormsg("Erreur","les heures doivent être différent et différent de la valeur 00:00!"); - return false; - } - if ($('#timefrom').val() > $('#timeto').val()){ - errormsg("Erreur","l'heure de début ne peux pas être supérieur à l'heure de fin!"); - return false; - } - if (!$('#staffuuid').val()){ - errormsg("Erreur","Vous devez selectionner au moin 1 membre du staff!"); - return false; - } - if ($('#dateto').val() != '' && (encodeparam($('#datefrom').val()) > encodeparam($('#dateto').val())) ) { - errormsg("Erreur","La Date début ne peut pas être supérieur à la date fin!"); - return false; - } - - var type = 'ins'; - var cuuid = ""; - if ($("#frmeditevent #uuid").val() != 0) { - type = 'upd'; - cuuid = $("#frmeditevent #uuid").val(); - } else { - cuuid = parent.appdb.generate_uuid(); - } - var cactv = $('#frmeditevent #cmb_clone_activity').val(); - if (cactv == 'none') { - var dtest = parent.appdb.dbquery("select count(*) as cnt from eventcalendar where description='"+ $("#frmeditevent #description").val() + "';"); - if (dtest && dtest.sqldata[0].cnt != "0") { - $("#frmeditevent #description").val($("#frmeditevent #description").val() + " Copy"); - } - }else if ((cactv != $("#frmeditevent #description").val()) || (curevcolor != $("#frmeditevent #color").val())) { - parent.appdb.dbexec("update eventcalendar set description='"+$("#frmeditevent #description").val()+"',color='"+$("#frmeditevent #color").val()+"' where description='"+ cactv +"';"); - //update description and color off all events with same name - } - var freqdata = {}; - var cfreq = $("#frmeditevent #freq").val(); - $("#frmeditevent :input").each(function() { - var input = $(this); - - if (input.attr("id") && (input.attr("id") != "staffuuid") && (input.attr("id") != "cmb_clone_activity")) { - if ((input.attr("type") == "checkbox") && (input.attr("id").indexOf(cfreq) >= 0)){ - var xd = input.attr("id").split("_"); - if (input.attr("checked")) { - if (!freqdata[xd[1]]) { - freqdata[xd[1]] = new Array(); - } - freqdata[xd[1]].push(input.val()); - } - } - else if ((input.attr("type") == "radio") && (input.attr("id").indexOf(cfreq) >= 0)) { - var xd = input.attr("id").split("_"); - if (input.attr("checked")) { - freqdata['freqtype'] = xd[2]; - } - } - else if ((input.attr("type") != "checkbox") && ((input.attr("type") != "radio"))){ - if ((input.attr("id") == 'interval') || (input.attr("id") == 'freq')) { - freqdata[input.attr("id")] = input.val(); - } else if ((type == 'ins') && (input.attr("id") != 'staffuuid')) { - - sql1.push('"' + input.attr("id") + '"'); - if (input.attr("id") == 'uuid') { - if (input.val() == "" || input.val() == "0") { - sql2.push("'" + cuuid + "'"); - } else { - sql2.push("'" + input.val() + "'"); - } - } else { - var ival = encodeparam(input.val(), input.attr('type')); - sql2.push(ival); - } - } else { - if ((input.attr("id") != 'uuid') && (input.attr("id") != 'staffuuid')){ - var ival = encodeparam(input.val(), input.attr('type')); - sql2.push('"' + input.attr("id") + '"=' + ival); - } - } - } - } - - }); - if (!freqdata.freqtype) { - freqdata['freqtype'] = curfreq.freqtype; - } - - var strfreq =""; - if (cfreq != "") { - strfreq='FREQ=' + cfreq.toUpperCase()+';INTERVAL=' + freqdata.interval +';'; - if ((cfreq == 'weekly') && (freqdata.byday)){ - strfreq += 'BYDAY=' + freqdata.byday.join(","); - } - if ((cfreq == 'monthly') && (freqdata.bydaypos) || ((freqdata.bydaywday)) || (freqdata.bymonthday)){ - strfreq += freqdata.freqtype.toUpperCase() + '='; - if (freqdata.freqtype == 'bymonthday') { - strfreq += freqdata.bymonthday.join(',') + ";" - }else { - var abyday = new Array(); - for (var p in freqdata.bydaypos){ - for (var w in freqdata.bydaywday){ - abyday.push(freqdata.bydaypos[p] + freqdata.bydaywday[w]); - } - } - strfreq += abyday.join(","); - } - } - if (strfreq.slice(-1) == ';') { - strfreq = strfreq.substring(0,strfreq.length-1); - } - } - var staffuuids = $('#staffuuid').val(); - var xsql=[]; - var delsql = ""; - if (type != 'ins') { - xsql.push("DELETE FROM staffplanning where eventcalendaruuid = '"+cuuid+"';"); - } - var staffinssql = ""; - if (staffuuids && (staffuuids.length != 0)) { - staffinssql = "INSERT INTO staffplanning (eventcalendaruuid,staffuuid) VALUES "; - var tmps = []; - for (var s in staffuuids){ - tmps.push("('"+cuuid+"','"+staffuuids[s]+"')"); - } - staffinssql += tmps.join(',') + ";"; - xsql.push(staffinssql); - } - - if (type == 'upd') { - sql2.push('freq=' + encodeparam(strfreq)); - xsql.push("UPDATE eventcalendar SET " + sql2.join(',') + " where \"uuid\"='" + cuuid + "';"); - } else { - sql1.push('freq'); - sql2.push(encodeparam(strfreq)); - xsql.push("INSERT INTO eventcalendar (" + sql1.join(',') + ") VALUES (" + sql2.join(',') + ");"); - } - for (var i in xsql){ - parent.appdb.dbexec(xsql[i]); - } - - //load_calendar_data(); - - $("#frmeditevent #uuid").val("0"); - $("#edit_event").modal('hide'); - globelreq.send_request({ - page: 'calorganisation', - module: 'calendar', - header: 'Organisation Personnel' - }, null); -} - -function confirm_delete_event() { - $("#confirm_delete_event").modal('show'); - return false; -} - -function delete_event() { - - parent.appdb.dbexec("DELETE FROM eventcalendar where uuid='" + $('#frmeditevent #uuid').val()+"';"); - parent.appdb.dbexec("DELETE FROM staffplanning where eventcalendaruuid='" + $('#frmeditevent #uuid').val()+"';"); - - load_activity_selection('filter_activity','multiple'); - load_calendar_data(); - $("#confirm_delete_event").modal('hide'); - - return false; -} - -function setfreq() { - - curfreq.freq = $('#freq option:selected').val(); - $('#freqinterval').hide(); - $('#freqmonthly').hide(); - $('#freqweekly').hide(); - if (curfreq.freq != "") { - $('#lblfreq').text(lblfreq[curfreq.freq]); - $('#freqinterval').show(); - if (curfreq.freq != 'daily') { - $('#freq' + curfreq.freq).show(); - } - } - -} - -function invertColor(hexTripletColor) { - var color = hexTripletColor; - color = color.substring(1); // remove # - color = parseInt(color, 16); // convert to integer - color = 0xFFFFFF ^ color; // invert three bytes - color = color.toString(16); // convert to hex - color = ("000000" + color).slice(-6); // pad with leading zeros - color = "#" + color; // prepend # - return color; -} - -// function onselactivity(objid) { -// pconfig.filteractivity = $('#' + objid).val()//(()?$('#' + objid).val().split(','):null); -// parent.apppref.setpreference("calorganisation",pconfig); -// load_calendar_data(); -// } -function onselstaff(objid) { - - pconfig.filterstaff = $('#' + objid).val(); - parent.apppref.setpreference("calorganisation",pconfig); - load_calendar_data(); -} - -function get_vacancy_data() { - vacpos = {}; - var where = ""; - if ((pconfig.filterstaff) && (pconfig.filterstaff.length > 0)) { - where = " st.uuid in ('"+ pconfig.filterstaff.join("','") + "')"; - } - var sql = getvacancysql(new Date(initdate.toISOString().substring(0,10)),new Date(lastmonthday.toISOString().substring(0,10)),where); - vacdata = parent.appdb.dbquery(sql); - vacdata = vacdata.sqldata; - - for (var v in vacdata) { - var freq = "FREQ=DAILY"; - - freq += ';DTSTART='+vacdata[v].strdatefrom + 'T000000Z'; - if (vacdata[v].vacancydateto != ''){ - freq += ';UNTIL='+vacdata[v].strdateto + 'T000000Z'; - }else { - freq += ';UNTIL='+vacdata[v].strstrdatefrom + 'T000000Z'; - } - try { - var vacrule = RRule.fromString(freq); - var vacrall = vacrule.all(); - } catch (ex){ - - } - for (var r in vacrall){ - if ((vacrall[r].toISOString().substring(0,10) >= initdate.toISOString().substring(0,10)) && (vacrall[r].toISOString().substring(0,10) <= lastmonthday.toISOString().substring(0,10)+'T00:00.000Z')) { - if (!vacpos[vacrall[r].toISOString().substring(0,10)]) { - vacpos[vacrall[r].toISOString().substring(0,10)] = {'staffuuid':[vacdata[v].staffuuid],color:[vacdata[v].color]}; - }else { - vacpos[vacrall[r].toISOString().substring(0,10)]['staffuuid'].push(vacdata[v].staffuuid); - vacpos[vacrall[r].toISOString().substring(0,10)]['color'].push(vacdata[v].color); - } - } - } - } -} - -function getvacancysql(datefrom2,dateto2,where) { - var sqlret = "SELECT vc.uuid, vc.datefrom,strftime('%Y%m%d',vc.datefrom) as strdatefrom,' ' || strftime('%Y%m%d',vc.datefrom) || strftime('%Y%m%d',vc.dateto) || '' || strftime('%d.%m.%Y',vc.datefrom) || ' - ' || strftime('%d.%m.%Y',vc.dateto) as tbldaterange, vc.dateto,strftime('%Y%m%d',vc.dateto) as strdateto,vc.timefrom,vc.timeto "+ -", vc.staffuuid,coalesce(st.surname,'') || ' ' || coalesce(st.prename,'') as staffname,vc.type,st.color FROM vacancycalendar vc left join staff st on (vc.staffuuid=st.uuid) " + - "LEFT JOIN ( SELECT * FROM ( "; - var sqldays = new Array(); - - for (var cdate2=datefrom2;cdate2<=dateto2;cdate2.setDate(cdate2.getDate() +1)){ - if ((cdate2.getDay() != 0)){ - sqldays.push ("SELECT date('" + cdate2.toISOString().substring(0,10) +"') as daydate"); - } - } - - sqlret += sqldays.join(' UNION ALL ') + " )) oph " + - "ON (oph.daydate BETWEEN vc.datefrom AND vc.dateto) " + - "WHERE oph.daydate IS NOT NULL and strftime('%w',oph.daydate) not in ('0') " + - "AND oph.daydate NOT IN ( SELECT vacancydate FROM vacancy WHERE vacancydateto IS NULL AND vacancydate BETWEEN '"+initdate.toISOString().substring(0,10) + "' AND '" + dateto2.toISOString().substring(0,10)+"') " + - ((where != '')?" AND " + where + " ":"") + - " GROUP BY vc.uuid ORDER BY st.uuid,vc.datefrom, vc.dateto; "; - return sqlret; -} - - - -function getdaterangesql(){ - var adays = []; - var bdate = new Date(initdate.getFullYear(), initdate.getMonth(), initdate.getDate()); - var bend = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 0); - for (var cdt = bdate; cdt <= bend; cdt.setDate(cdt.getDate() + 1)) { - - adays.push("select date('" + cdt.toISOString().substring(0,10) + "') as daydate"); - - } - return adays.join(" UNION "); -} - -function getstaffactivity() { - var bdate = new Date(initdate.getFullYear(), initdate.getMonth(), initdate.getDate()); - var bend = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 0); - var actsql = "select dd.daydate as daydate, '[\"' || GROUP_CONCAT(ev.staffuuid,'\",\"') || '\"]' AS staffuuid,'[\"' || GROUP_CONCAT(st.color,'\",\"') || '\"]' as staffcolor,'[\"' || GROUP_CONCAT(coalesce(substr(st.surname,1,2),'') || ' ' || coalesce(substr(st.prename,1,2),''), '\",\"' ) || '\"]' as staffnames, ev.timefrom as timefrom,ev.timeto as timeto, ev.description as description,ev.color as eventcolor,ev.uuid as eventuuid from ( "+ -"select sp.staffuuid,ec.description,ec.color,ec.uuid, "+ -"case when datefrom < '"+bdate.toISOString().substring(0,10)+"' then '"+bdate.toISOString().substring(0,10)+"' else datefrom end as datefrom, "+ -"case when dateto > '"+bend.toISOString().substring(0,10)+"' then '"+bend.toISOString().substring(0,10)+"' else dateto end as dateto, "+ -"timefrom,timeto "+ -"from eventcalendar ec join staffplanning sp on (ec.uuid=sp.eventcalendaruuid) where datefrom <= '"+bend.toISOString().substring(0,10)+"' and (dateto is null or dateto >= '"+bdate.toISOString().substring(0,10)+"')) ev "+ -"join staff st on (ev.staffuuid=st.uuid) "+ -"join ("+ drsql+") dd "+ -"on (dd.daydate between ev.datefrom and ev.dateto) "; -var wh = []; -if (pconfig.filterstaff) { - wh.push("st.uuid in ('"+ pconfig.filterstaff.join("','")+"')"); -} - -if (wh.length > 0) { - actsql += " WHERE " + wh.join( " OR "); -} -actsql += " GROUP BY dd.daydate,ev.uuid ORDER BY ev.description,dd.daydate,ev.timefrom,ev.timeto; "; - - var actdata = parent.appdb.dbquery(actsql); - actdata = actdata.sqldata; - return actdata; -} - -function getstaffvacancy() { - var bdate = new Date(initdate.getFullYear(), initdate.getMonth(), initdate.getDate()); - var bend = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 0); - var vacsql = "select dd.daydate as daydate,staffuuid, timefrom,timeto,type from ( "+ -"select staffuuid, "+ -"case when datefrom < '"+bdate.toISOString().substring(0,10)+"' then '"+bdate.toISOString().substring(0,10)+"' else datefrom end as datefrom, "+ -"case when dateto > '"+bend.toISOString().substring(0,10)+"' then '"+bend.toISOString().substring(0,10)+"' else dateto end as dateto, "+ -"timefrom,timeto, type "+ -"from vacancycalendar where (datefrom is null or datefrom <= '"+bend.toISOString().substring(0,10)+"') and (dateto is null or dateto >= '"+bdate.toISOString().substring(0,10)+"')) vc "+ -"join ("+drsql+") dd "+ -"on (dd.daydate between vc.datefrom and vc.dateto); "; -var wh = []; -if (pconfig.filterstaff) { - wh.push("staffuuid in ('"+ pconfig.filterstaff.join("','")+"')"); -} -if (wh.length > 0) { - vacsql += " WHERE " + wh.join( " OR "); -} - - var vacdata = parent.appdb.dbquery(vacsql); - vacdata = vacdata.sqldata; - return vacdata; -} - -function get_vacancydays(){ - var bdate = new Date(initdate.getFullYear(), initdate.getMonth(), initdate.getDate()); - var bend = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 0); - var sql = "select dd.daydate,strftime('%d',dd.daydate) as strday,type from ( "+ -"select vacancydate, "+ -"case when vacancydateto is null then vacancydate else vacancydateto end as vacancydateto, "+ -"case when vacancydateto is null then 'vacancy' else 'holiday' end as type, "+ -"vacancydescription from vacancy where (vacancydate between '"+bdate.toISOString().substring(0,10)+"' and '"+bend.toISOString().substring(0,10)+"' and (vacancydateto >= '"+bdate.toISOString().substring(0,10)+"' or vacancydateto is null)) or (vacancydateto between '"+bdate.toISOString().substring(0,10)+"' and '"+bend.toISOString().substring(0,10)+"' and vacancydate < '"+bdate.toISOString().substring(0,10)+"') or ((vacancydate <= '"+bdate.toISOString().substring(0,10)+"') and (vacancydateto >= '"+bend.toISOString().substring(0,10)+"')) order by vacancydate,vacancydateto) vc "+ -"join ( "+ drsql +") dd "+ -"on (dd.daydate between vc.vacancydate and vc.vacancydateto) group by dd.daydate order by daydate;"; - var hdata = parent.appdb.dbquery(sql); - - hdata = hdata.sqldata; - var hs = {}; - for (var h in hdata){ - hs[hdata[h].strday] = hdata[h].type; - } - return hs; -} - -function convertHex(hex,opacity){ - hex = hex.replace('#',''); - r = parseInt(hex.substring(0,2), 16); - g = parseInt(hex.substring(2,4), 16); - b = parseInt(hex.substring(4,6), 16); - - result = 'rgba('+r+','+g+','+b+','+opacity+')'; - return result; -} - -function oncloneactivity(actv_id) { - var aid = $("#cmb_clone_activity :selected").val(); - - if (aid != '') { - - $("#frmeditevent #description").val(aid); - var seltxt = $("#cmb_clone_activity :selected").text(); - - var colre = //; - var ccolor =seltxt.match(colre); - - $('#frmeditevent #color').minicolors('value',{color: ccolor[1]}); - } -} - -function onselcreche(){ - -} - - - - +//Source-code licensed under EUPL v1.2 ( Copyright 2019 By DKS s.à r.l. - Kilian Saffran - Luxembourg ) + +var pconfig = {}; +var initdate = new Date(); +initdate.setDate(1); +var lastmonthday = null; +var firstmonday = null; +var lastsunday = null; +var winh = window.innerHeight - 140; +var tblacc = null; +var lblfreq = {daily:'jour(s)',weekly:'semaine(s)',monthly:'mois'}; +var amonth = ['', 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aôut', 'Septembre','Octobre', 'Novembre', 'Décembre']; +var linkpos = {}; +var posday = {}; +var delac = null; +var curfreq ={}; +var redate = /\d\d.\d\d.\d\d\d\d/; +var tblcal = null; +var vacpos = {}; +var vacdata = null; +var drsql = ""; +var eventdates = {}; +var curevcolor = ""; +var alltr = {}; +var rtblall = {}; +var crsel = []; +function initdata() { + //curcfg.loadconfig(parent.apppref.getpreference("creorga.support.database.currentdb.num")); + load_helpers(); + $('#view_list').hide(); + pconfig = parent.apppref.getpreference("calorganisation"); + if (!pconfig) { + pconfig = {} + } + pconfig.view = 'table'; + //if (!pconfig.printlayout) { + pconfig.printlayout = 'table'; + parent.apppref.setpreference("calorganisation",pconfig); + //} + if (pconfig.calmonth) { + + initdate = new Date(encodeparam(pconfig.calmonth, 'month').replace(/'/g, '')); + $("#calmonth").val(pconfig.calmonth); + } else { + $("#calmonth").val(initdate.getMonth() + '.' + initdate.getFullYear()); + pconfig.calmonth = initdate.getMonth() + '.' + initdate.getFullYear(); + } + + load_staff_selection('filter_staff'); + load_staff_selection('staffuuid'); + load_calendar_month(); + + + +} + +$('#calmonth').on('dp.hide',function(e){ + set_calmonth(); +}); + +function load_calendar_month() { + + firstmonday = new Date(initdate.getFullYear(), initdate.getMonth(), -1 * parseInt(initdate.getWeekNumber()) + 2); + if (firstmonday > initdate) { + firstmonday = new Date(initdate.getFullYear(), initdate.getMonth(),firstmonday.getDate()-7); + } + lastmonthday = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 1); + + lastsunday = new Date(lastmonthday.getFullYear(), lastmonthday.getMonth(), lastmonthday.getDate() + 7 - parseInt(lastmonthday.getWeekNumber())); + + var weeknum = 0; + var cmonth = initdate.getMonth(); + var sday = []; + firstmonday = new Date(initdate.getFullYear(), initdate.getMonth(), -1 * parseInt(initdate.getWeekNumber()) + 2); + if (firstmonday > initdate) { + firstmonday = new Date(initdate.getFullYear(), initdate.getMonth(),firstmonday.getDate()-7); + } + load_vacancy_data(); + + load_calendar_data(); + +} + +function load_calendar_data() { + var where = []; + if ((pconfig.filterstaff) && (pconfig.filterstaff.length > 0)) { + where.push(" st.uuid in ('"+ pconfig.filterstaff.join("','") + "')"); + } + if ((pconfig.filteractivity) && (pconfig.filteractivity.length > 0)) { + where.push(" cal.description in ('"+ pconfig.filteractivity.join("','") + "')"); + } + var sql = "SELECT cal.uuid, cal.datefrom, cal.dateto, '
' || strftime('%Y%m%d',cal.datefrom) ||'
' || strftime('%d.%m.%Y',cal.datefrom) AS tbldatefrom ,strftime('%Y%m%d',cal.datefrom) AS strdatefrom, strftime('%Y%m%d',cal.dateto) AS strdateto,cal.timefrom, cal.timeto, cal.description, cal.location, cal.color, cal.freq, '[\"' || GROUP_CONCAT(sp.staffuuid,'\",\"') || '\"]' as staffuuid, GROUP_CONCAT(coalesce(st.surname,'') || ' ' || coalesce(st.prename,''), '
' ) as staffnames ,'[\"' || GROUP_CONCAT(st.color,'\",\"') || '\"]' as staffcolors from eventcalendar cal " + ((pconfig.filterstaff)?"":" left ") +" join staffplanning sp on (cal.uuid=sp.eventcalendaruuid " + ((pconfig.filterstaff)?" AND sp.staffuuid in ('"+ pconfig.filterstaff.join("','") + "')":"") +") left join staff st on (sp.staffuuid=st.uuid) "+ + + " where (cal.datefrom between '" + initdate.toISOString().substring(0,10) + "' and '" + lastmonthday.toISOString().substring(0,10) + "' and (cal.dateto >= '" + initdate.toISOString().substring(0,10) + "' or cal.dateto is null)) or (cal.dateto between '" + initdate.toISOString().substring(0,10) + "' and '" + lastmonthday.toISOString().substring(0,10) + "' and cal.datefrom < '" + initdate.toISOString().substring(0,10) + "') or ((cal.datefrom <= '" + firstmonday.toISOString().substring(0,10) + "') and ((cal.dateto >= '" + lastmonthday.toISOString().substring(0,10) + "') or cal.dateto is null)) "+ ((where.length > 0)?" AND (" + where.join(" or ") + ")":"")+" group by cal.uuid order by cal.datefrom,cal.dateto;"; + + var caldata = parent.appdb.dbquery(sql); + + caldata = caldata.sqldata; + get_vacancy_data(); + + for (var c in caldata) { + if (!eventdates[caldata[c].uuid]) { + eventdates[caldata[c].uuid] = {}; + } + var freq = caldata[c].freq; + if (freq !== '') { + freq += ';DTSTART='+caldata[c].strdatefrom + 'T000000Z'; + if ((caldata[c].dateto !== '') && (caldata[c].dateto <= lastmonthday.toISOString().substring(0,10))){ + freq += ';UNTIL='+caldata[c].strdateto + 'T000000Z'; + }else { + freq += ';UNTIL='+lastmonthday.toISOString().substring(0,10).replace('-','') + 'T000000Z'; + } + } + + if (freq !== ""){ + try { + var rule = RRule.fromString(freq); + rall = rule.all(); + } catch (ex){ + + } + } else { + continue; + } + for (var r in rall){ + if ((rall[r].toISOString().substring(0,10) >= initdate.toISOString().substring(0,10)) && (rall[r].toISOString().substring(0,10) <= lastmonthday.toISOString().substring(0,10))) { + if (!eventdates[caldata[c].uuid][rall[r].toISOString().substring(8,10)]) { + eventdates[caldata[c].uuid][rall[r].toISOString().substring(8,10)] = 1; + } + } + + } + } + load_timetable(); +} + +function load_timetable() { + $('#tbl_timetable').html(""); + drsql = getdaterangesql(); + var thead = []; + var totalstaff = []; + var weekrange = {}; + var ltd = ""; + var bdate = new Date(initdate.toISOString().substring(0,10)); + var enddate = new Date(initdate.getFullYear(),initdate.getMonth() + 1, 0); + while (bdate <= enddate){ + if (!weekrange[parseInt(bdate.getWeekNumber())]) { + weekrange[parseInt(bdate.getWeekNumber())] = 0; + } + weekrange[parseInt(bdate.getWeekNumber())] += 1; + + var head = ((bdate.getDate() < 10)?"0"+bdate.getDate():bdate.getDate()); + if (thead.indexOf(head) == -1) { + thead.push(head); + } + totalstaff.push(0); + bdate = new Date (bdate.getFullYear(),bdate.getMonth(),bdate.getDate() + 1) + } + + var actdata = getstaffactivity(); + + var lev = ""; + var lst = ""; + + var ev = {}; + + var alltrx = {}; + for (var ac in actdata){ + var evid = actdata[ac].eventuuid; + + if ((evid) && (lev !== evid) && (!alltrx[evid])) { + ev = {"eventuuid":evid,"description": actdata[ac].description ,"timefrom":actdata[ac].timefrom,"timeto":actdata[ac].timeto,"eventcolor":actdata[ac].eventcolor}; + for (var h in thead){ + ev[thead[h]] = {}; + } + alltrx[evid] = ev; + + } + var cday = actdata[ac].daydate.substring(8,10); + + if ((evid) && (eventdates[evid]) && (eventdates[evid][cday])) { + + alltrx[evid][cday]={"staffuuid":JSON.parse(actdata[ac].staffuuid),"staffcolor":JSON.parse(actdata[ac].staffcolor),"staffnames":JSON.parse(actdata[ac].staffnames)}; + + } + lev = null; + lev = evid; + + } + + var vacdata = getstaffvacancy(); + var staffuuids = []; + for (var vc in vacdata){ + var dx = new Date(vacdata[vc].daydate).toISOString().substring(8,10); + if (staffuuids.indexOf(vacdata[vc].staffuuid)) { + staffuuids.push(vacdata[vc].staffuuid); + } + for (var e in alltrx){ + + if (alltrx[e][dx]['staffuuid']) { + var idx = alltrx[e][dx]['staffuuid'].indexOf(vacdata[vc].staffuuid); + + if (idx != -1) { + + if (vacdata[vc].timefrom==vacdata[vc].timeto) { + alltrx[e][dx]['staffcolor'][idx] = "transparent"; + }else { + + var tfto =((parseInt(vacdata[vc].timeto.substring(1,2)) - parseInt(vacdata[vc].timefrom.substring(1,2)))/8)*100; + var clr = alltrx[e][dx]['staffcolor'][idx]; + + alltrx[e][dx]['staffcolor'][idx] = "linear-gradient(to right, "+convertHex(clr,1)+" 0%,"+convertHex(clr,1)+" "+tfto+"%,rgba(0,0,0,0) 100%)"; + } + + } + } + } + + } + var cspan = 0; + var hdays = get_vacancydays(); + + var strhead = 'Semaine'; + for (var w in weekrange){ + strhead += '' + w + ''; + cspan += weekrange[w]; + } + + strhead += ''; + for (var th in thead){ + var sty=""; + if (hdays[thead[th]]) { + sty =' style="background-color: '+((hdays[thead[th]]=='vacancy')?'#FF7145':'#FF9C2A')+' !important;" '; + } + strhead += ''+ thead[th]+''; + } + + strhead += ''; + $('#tbl_timetable').append(strhead); + $('#tbl_timetable').append(''); + cspan +=1; + + var actchange = ""; + + for (var a in alltrx){ + + var trn = ""; + trn += ''+alltrx[a].timefrom+' - '+alltrx[a].timeto+''; + for (var h in thead){ + if ((hdays[thead[h]]) && (hdays[thead[h]] == 'vacancy')) { + trn += ''; + continue; + } + if (alltrx[a][thead[h]]) { + + trn += ''; + if (alltrx[a][thead[h]]["staffcolor"]) { + var xx = alltrx[a][thead[h]]["staffcolor"]; + for (var r in xx){ + var col = ""; + if (xx[r] == 'transparent') { + col = 'color: transparent; display: none;'; + }else { + if (xx[r].indexOf("linear-gradient") == -1){ + totalstaff[parseInt(thead[h])-1] += 1; + } + + } + trn += '
'+alltrx[a][thead[h]]["staffnames"][r] +'
'; + } + + } + + trn += ''; + }else { + trn += ''; + } + } + trn += ''; + + $('#tbl_timetable').append(trn); + + } + + $('#tbl_timetable').append(''); + var tfoot = "Total:"; + for (var i in totalstaff){ + tfoot += ''+ (totalstaff[i] == 0?"":totalstaff[i]) +''; + } + tfoot += ''; + $('#tbl_timetable').append(tfoot); + + $('#tbl_timetable').append(''); + + if ((!(pconfig.filterstaff)) || ((pconfig.filterstaff) && (pconfig.filterstaff.length != 1))){ + + sortHTML('#tbl_timetable','.tblstaffrow', 'td:nth-child(1)'); + } +} + +function getHTMLElements (id) { + if (typeof id == "object") { + return [id]; + } else { + return document.querySelectorAll(id); + } +} + +function sortHTML(id, sel, sortvalue) { + var a, b, i, ii, y, bytt, v1, v2, cc, j; + a = getHTMLElements(id); + for (i = 0; i < a.length; i++) { + for (j = 0; j < 2; j++) { + cc = 0; + y = 1; + while (y == 1) { + y = 0; + b = a[i].querySelectorAll(sel); + for (ii = 0; ii < (b.length - 1); ii++) { + bytt = 0; + if (sortvalue) { + v1 = b[ii].querySelector(sortvalue).innerHTML.toLowerCase(); + v2 = b[ii + 1].querySelector(sortvalue).innerHTML.toLowerCase(); + } else { + v1 = b[ii].innerHTML.toLowerCase(); + v2 = b[ii + 1].innerHTML.toLowerCase(); + } + if ((j == 0 && (v1 > v2)) || (j == 1 && (v1 < v2))) { + bytt = 1; + break; + } + } + if (bytt == 1) { + b[ii].parentNode.insertBefore(b[ii + 1], b[ii]); + y = 1; + cc++; + } + } + if (cc > 0) {break;} + } + } +}; + + +function load_vacancy_data() { + var sql = "select vacancydate,strftime('%Y%m%d',vacancydate) as strvacancydate,vacancydateto,case when vacancydateto is not null then strftime('%Y%m%d',vacancydateto) else null end as strvacancydateto,vacancydescription from vacancy " + + "where (vacancydate between '" + firstmonday.toISOString().substring(0,10) + "' and '" + lastsunday.toISOString().substring(0,10) + "' and (vacancydateto >= '" + firstmonday.toISOString().substring(0,10) + "' or vacancydateto is null)) or (vacancydateto between '" + firstmonday.toISOString().substring(0,10) + "' and '" + lastsunday.toISOString().substring(0,10) + "' and vacancydate < '" + firstmonday.toISOString().substring(0,10) + "') or ((vacancydate <= '" + firstmonday.toISOString().substring(0,10) + "') and (vacancydateto >= '" + lastsunday.toISOString().substring(0,10) + "')) " + + "order by vacancydate,vacancydateto;"; + var caldata = parent.appdb.dbquery(sql); + caldata = caldata.sqldata; + for (var c in caldata) { + var freq = "FREQ=DAILY"; + freq += ';DTSTART='+caldata[c].strvacancydate + 'T000000Z'; + + if (caldata[c].vacancydateto !== ''){ + freq += ';UNTIL='+caldata[c].strvacancydateto + 'T000000Z'; + }else { + freq += ';UNTIL='+caldata[c].strvacancydate + 'T000000Z'; + } + try { + var rule = RRule.fromString(freq); + var rall = rule.all(); + + for (var r in rall){ + if ((rall[r].toISOString().substring(0,10) >= initdate.toISOString().substring(0,10)) && (rall[r].toISOString().substring(0,10) <= lastmonthday.toISOString().substring(0,10)+' T00:00.000Z')) { + + $("#" + linkpos["" + rall[r].toISOString().substring(0,10)] + " > div.panel-day > div.panel-dayhead").addClass(((caldata[c].vacancydateto == '')?'calvacancy':'calvacrange')); + $("#" + linkpos["" + rall[r].toISOString().substring(0,10)] + " > div.panel-day > div.panel-dayhead > div#vacname").remove(); + $("#" + linkpos["" + rall[r].toISOString().substring(0,10)] + " > div.panel-day > div.panel-dayhead").prepend('
'+ caldata[c].vacancydescription + "
 "); + } + } + } catch (ex){ + } + } +} + +function load_staff_selection(objid,option){ + var stdata = parent.appdb.dbquery("select uuid, coalesce(surname,'') || ' ' || coalesce(prename,'') as name,case when color is null then '#000' else color end as color from staff order by surname,prename"); + stdata = stdata.sqldata; + for (var s in stdata){ + $('#' + objid).append(''); + } + if (objid == 'filter_staff') { + $('#' + objid).multiselect({enableHTML: true,numberDisplayed:1,nonSelectedText:"Tous",allSelectedText: 'Tous',nSelectedText: ' selections'}); + if (pconfig.filterstaff) { + $('#' + objid).multiselect('select',pconfig.filterstaff); + } + }else { + var copt = {}; + if (option) { + copt = option; + } + copt['enableHTML'] = true; + copt['nonSelectedText']="Sélectionner un(e) employé(e)..."; + copt['numberDisplayed']=5; + copt['allSelectedText']='Tous'; + copt['nSelectedText']=' selections'; + + $('#' + objid).multiselect(copt); + } + +} + + + +function load_activity_selection(objid,type) { + var stdata = parent.appdb.dbquery("select uuid,description as activity,color from eventcalendar group by description,color;"); + stdata = stdata.sqldata; + for (var s in stdata){ + $('#' + objid).append(''); + } + if (pconfig.filteractivity) { + $('#' + objid).multiselect({enableHTML: true,numberDisplayed:1,nonSelectedText:"Tous",allSelectedText: 'Tous',nSelectedText: ' selections'}); + $('#' + objid).multiselect('select',pconfig.filteractivity); + } else if (type == 'multiple') { + $('#' + objid).multiselect({enableHTML: true,numberDisplayed:1,nonSelectedText:"Tous",allSelectedText: 'Tous',nSelectedText: ' selections'}); + } else { + var copt = {}; + copt['enableHTML'] = true; + copt['nonSelectedText']="Sélectionner une activité.."; + $('#' + objid).multiselect(copt); + $('#' + objid).multiselect('select',null); + } +} + +function set_calmonth(){ + pconfig.calmonth =$("#calmonth").val(); + parent.apppref.setpreference("calorganisation",pconfig); + parent.app.loadpage('modules/calendar/calorganisation.html',{calmonth:pconfig.calmonth}); +} + + +function onnextmonth() { +var xdate = parent.appdb.dbquery("select STRFTIME('%m.%Y',date('"+initdate.toISOString().substring(0,10)+"','+1 month')) as ndate"); +pconfig.calmonth = xdate.sqldata[0].ndate; +parent.apppref.setpreference("calorganisation", pconfig); +parent.app.loadpage('modules/calendar/calorganisation.html',{calmonth:pconfig.calmonth}); +} + +function onpreviousmonth() { +var xdate = parent.appdb.dbquery("select STRFTIME('%m.%Y',date('"+initdate.toISOString().substring(0,10)+"','-1 month')) as ndate"); +pconfig.calmonth = xdate.sqldata[0].ndate; +parent.apppref.setpreference("calorganisation", pconfig); +parent.app.loadpage('modules/calendar/calorganisation.html',{calmonth:pconfig.calmonth}); +} + +function dlg_vacancy_detail(stuuids) { + + var obj = stuuids.split(',') + var vsql = "select coalesce(surname,'') || ' ' || coalesce(prename,'') as staffname,color from staff where uuid in ('" + obj.join("','") + "');"; + + var vst = parent.appdb.dbquery(vsql); + vst = vst.sqldata; + $('#vacdetail').html(""); + for (var v in vst){ + $('#vacdetail').append('
'+ vst[v].staffname+'
'); + } + $("#dlg_vacancy_detail").modal('show'); + +} + +function dlg_event(uuid, type) { + $('#staffuuid').multiselect('deselectAll', false); + + $('#staffuuid').multiselect('updateButtonText'); + + if (type== "ins") { + $('#btndeleteevent').hide(); + + }else { + $('#btndeleteevent').show(); + } + $('#frmeditevent #freqinterval').hide(); + $('#frmeditevent #freqmonthly').hide(); + $('#frmeditevent #freqweekly').hide(); + $('#frmeditevent #freq_monthly_byday').show(); + $('#frmeditevent #freq_monthly_bymonthday').hide(); + $('#frmeditevent #freq').val(""); + $('#frmeditevent .active').removeClass('active'); + load_activity_selection('cmb_clone_activity','single'); + $('#cmb_clone_activity').multiselect('select', ['none']); + if ((type == 'upd') || (type == 'ins')) { + var evdata = { + uuid: '0', + description: '', + activityuuid:'', + location: '', + color: '', + datefrom:new Date().toISOString().substring(0,10), + dateto:'', + staffuuid:'', + timefrom: '00:00', + timeto: '00:00', + freq: '' + }; + + if (type == 'upd') { + var evsql = "SELECT uuid, strftime(\"%d.%m.%Y\",datefrom) as datefrom, strftime(\"%d.%m.%Y\",dateto) as dateto, timefrom, timeto, description, location, color, freq, GROUP_CONCAT(st.staffuuid,',') as staffuuid FROM eventcalendar ev left join staffplanning st on (ev.uuid=st.eventcalendaruuid) where ev.uuid='" + uuid.uuid + "' group by ev.uuid;"; + evdata = parent.appdb.dbquery(evsql); + evdata = evdata.sqldata[0]; + if (evdata.freq !== '') { + var tmpfreq = evdata.freq.split(';'); + for (var t in tmpfreq){ + if (tmpfreq[t] !== '') { + var spl = tmpfreq[t].split("="); + evdata[spl[0].toLowerCase()] = spl[1].toLowerCase(); + } + } + } + } + for (var w in evdata) { + if ($("#frmeditevent #" + w)) { + if (w == 'staffuuid') { + if (evdata[w] === '') { + $("#frmeditevent #" + w).multiselect('select',[]); + } else { + $("#frmeditevent #" + w).multiselect('select',evdata[w].split(',')); + } + + }else if (w == 'color') { + + curevcolor = evdata[w]; + $("#frmeditevent #color").val(evdata[w]); + $('#frmeditevent #color').minicolors('value',{color: evdata[w]}); + } + else { + $("#frmeditevent #" + w).val(evdata[w]); + if ((w === "description") && (evdata[w] !== "")) { + $("#cmb_clone_activity").multiselect('select',evdata[w]); + } + } + } + } + if ((evdata.freq == 'weekly') && (evdata.byday)) { + var bd = evdata.byday.split(','); + for (var i in bd){ + document.getElementById('weekly_byday_' + bd[i]).setAttribute("checked",true); + $('#frmeditevent #weekly_byday_' + bd[i]).parent().addClass("active"); + } + } + if (evdata.freq == 'monthly') { + $('#freq_monthly_byday').hide(); + $('#freq_monthly_bymonthday').hide(); + $('#pnl_monthly_byday').removeAttr("checked"); + $('#pnl_monthly_bymonthday').removeAttr("checked"); + if (evdata.byday) { + document.getElementById('pnl_monthly_byday').setAttribute("checked",true); + $('#frmeditevent #pnl_monthly_byday').parent().addClass("active"); + $('#freq_monthly_byday').show(); + var bd = evdata.byday.split(','); + var adpos = []; + var awday = []; + for (var i in bd){ + var wday = bd[i].substr(bd[i].length-2); + var pos = bd[i].substring(0,bd[i].length-2); + awday.push(wday.toLowerCase()); + adpos.push(pos); + } + for (var i in adpos){ + document.getElementById('monthly_bydaypos_' + adpos[i]).setAttribute("checked",true); + $('#frmeditevent #monthly_bydaypos_' + adpos[i]).parent().addClass("active"); + } + for (var i in awday){ + document.getElementById('monthly_bydaywday_' + awday[i]).setAttribute("checked",true); + $('#frmeditevent #monthly_bydaywday_' + awday[i]).parent().addClass("active"); + } + }else if (evdata.bymonthday) { + document.getElementById('pnl_monthly_bymonthday').setAttribute("checked",true); + $('#frmeditevent #pnl_monthly_bymonthday').parent().addClass("active"); + $('#freq_monthly_bymonthday').show(); + var bd = evdata.bymonthday.split(','); + for (var i in bd){ + document.getElementById('monthly_bymonthday_' + bd[i]).setAttribute("checked",true); + $('#frmeditevent #monthly_bymonthday_' + bd[i]).parent().addClass("active"); + } + } + } + setfreq(); + $("#edit_event").modal('show'); + } +} + +function save_event() { + var sql1 = new Array(); + var sql2 = new Array(); + if ($('#timefrom').val() == $('#timeto').val() || $('#timefrom').val() == "00:00" || $('#timeto').val() == "00:00"){ + errormsg("Erreur","les heures doivent être différent et différent de la valeur 00:00!"); + return false; + } + if ($('#timefrom').val() > $('#timeto').val()){ + errormsg("Erreur","l'heure de début ne peux pas être supérieur à l'heure de fin!"); + return false; + } + if (!$('#staffuuid').val()){ + errormsg("Erreur","Vous devez selectionner au moin 1 membre du staff!"); + return false; + } + if ($('#dateto').val() != '' && (encodeparam($('#datefrom').val()) > encodeparam($('#dateto').val())) ) { + errormsg("Erreur","La Date début ne peut pas être supérieur à la date fin!"); + return false; + } + + var type = 'ins'; + var cuuid = ""; + if ($("#frmeditevent #uuid").val() != 0) { + type = 'upd'; + cuuid = $("#frmeditevent #uuid").val(); + } else { + cuuid = parent.appdb.generate_uuid(); + } + var cactv = $('#frmeditevent #cmb_clone_activity').val(); + if (cactv == 'none') { + var dtest = parent.appdb.dbquery("select count(*) as cnt from eventcalendar where description='"+ $("#frmeditevent #description").val() + "';"); + if (dtest && dtest.sqldata[0].cnt != "0") { + $("#frmeditevent #description").val($("#frmeditevent #description").val() + " Copy"); + } + }else if ((cactv != $("#frmeditevent #description").val()) || (curevcolor != $("#frmeditevent #color").val())) { + parent.appdb.dbexec("update eventcalendar set description='"+$("#frmeditevent #description").val()+"',color='"+$("#frmeditevent #color").val()+"' where description='"+ cactv +"';"); + //update description and color off all events with same name + } + var freqdata = {}; + var cfreq = $("#frmeditevent #freq").val(); + $("#frmeditevent :input").each(function() { + var input = $(this); + + if (input.attr("id") && (input.attr("id") != "staffuuid") && (input.attr("id") != "cmb_clone_activity")) { + if ((input.attr("type") == "checkbox") && (input.attr("id").indexOf(cfreq) >= 0)){ + var xd = input.attr("id").split("_"); + if (input.attr("checked")) { + if (!freqdata[xd[1]]) { + freqdata[xd[1]] = new Array(); + } + freqdata[xd[1]].push(input.val()); + } + } + else if ((input.attr("type") == "radio") && (input.attr("id").indexOf(cfreq) >= 0)) { + var xd = input.attr("id").split("_"); + if (input.attr("checked")) { + freqdata['freqtype'] = xd[2]; + } + } + else if ((input.attr("type") != "checkbox") && ((input.attr("type") != "radio"))){ + if ((input.attr("id") == 'interval') || (input.attr("id") == 'freq')) { + freqdata[input.attr("id")] = input.val(); + } else if ((type == 'ins') && (input.attr("id") != 'staffuuid')) { + + sql1.push('"' + input.attr("id") + '"'); + if (input.attr("id") == 'uuid') { + if (input.val() == "" || input.val() == "0") { + sql2.push("'" + cuuid + "'"); + } else { + sql2.push("'" + input.val() + "'"); + } + } else { + var ival = encodeparam(input.val(), input.attr('type')); + sql2.push(ival); + } + } else { + if ((input.attr("id") != 'uuid') && (input.attr("id") != 'staffuuid')){ + var ival = encodeparam(input.val(), input.attr('type')); + sql2.push('"' + input.attr("id") + '"=' + ival); + } + } + } + } + + }); + if (!freqdata.freqtype) { + freqdata['freqtype'] = curfreq.freqtype; + } + + var strfreq =""; + if (cfreq != "") { + strfreq='FREQ=' + cfreq.toUpperCase()+';INTERVAL=' + freqdata.interval +';'; + if ((cfreq == 'weekly') && (freqdata.byday)){ + strfreq += 'BYDAY=' + freqdata.byday.join(","); + } + if ((cfreq == 'monthly') && (freqdata.bydaypos) || ((freqdata.bydaywday)) || (freqdata.bymonthday)){ + strfreq += freqdata.freqtype.toUpperCase() + '='; + if (freqdata.freqtype == 'bymonthday') { + strfreq += freqdata.bymonthday.join(',') + ";" + }else { + var abyday = new Array(); + for (var p in freqdata.bydaypos){ + for (var w in freqdata.bydaywday){ + abyday.push(freqdata.bydaypos[p] + freqdata.bydaywday[w]); + } + } + strfreq += abyday.join(","); + } + } + if (strfreq.slice(-1) == ';') { + strfreq = strfreq.substring(0,strfreq.length-1); + } + } + var staffuuids = $('#staffuuid').val(); + var xsql=[]; + var delsql = ""; + if (type != 'ins') { + xsql.push("DELETE FROM staffplanning where eventcalendaruuid = '"+cuuid+"';"); + } + var staffinssql = ""; + if (staffuuids && (staffuuids.length != 0)) { + staffinssql = "INSERT INTO staffplanning (eventcalendaruuid,staffuuid) VALUES "; + var tmps = []; + for (var s in staffuuids){ + tmps.push("('"+cuuid+"','"+staffuuids[s]+"')"); + } + staffinssql += tmps.join(',') + ";"; + xsql.push(staffinssql); + } + + if (type == 'upd') { + sql2.push('freq=' + encodeparam(strfreq)); + xsql.push("UPDATE eventcalendar SET " + sql2.join(',') + " where \"uuid\"='" + cuuid + "';"); + } else { + sql1.push('freq'); + sql2.push(encodeparam(strfreq)); + xsql.push("INSERT INTO eventcalendar (" + sql1.join(',') + ") VALUES (" + sql2.join(',') + ");"); + } + for (var i in xsql){ + parent.appdb.dbexec(xsql[i]); + } + + //load_calendar_data(); + + $("#frmeditevent #uuid").val("0"); + $("#edit_event").modal('hide'); + globelreq.send_request({ + page: 'calorganisation', + module: 'calendar', + header: 'Organisation Personnel' + }, null); +} + +function confirm_delete_event() { + $("#confirm_delete_event").modal('show'); + return false; +} + +function delete_event() { + + parent.appdb.dbexec("DELETE FROM eventcalendar where uuid='" + $('#frmeditevent #uuid').val()+"';"); + parent.appdb.dbexec("DELETE FROM staffplanning where eventcalendaruuid='" + $('#frmeditevent #uuid').val()+"';"); + + load_activity_selection('filter_activity','multiple'); + load_calendar_data(); + $("#confirm_delete_event").modal('hide'); + + return false; +} + +function setfreq() { + + curfreq.freq = $('#freq option:selected').val(); + $('#freqinterval').hide(); + $('#freqmonthly').hide(); + $('#freqweekly').hide(); + if (curfreq.freq != "") { + $('#lblfreq').text(lblfreq[curfreq.freq]); + $('#freqinterval').show(); + if (curfreq.freq != 'daily') { + $('#freq' + curfreq.freq).show(); + } + } + +} + +function invertColor(hexTripletColor) { + var color = hexTripletColor; + color = color.substring(1); // remove # + color = parseInt(color, 16); // convert to integer + color = 0xFFFFFF ^ color; // invert three bytes + color = color.toString(16); // convert to hex + color = ("000000" + color).slice(-6); // pad with leading zeros + color = "#" + color; // prepend # + return color; +} + +// function onselactivity(objid) { +// pconfig.filteractivity = $('#' + objid).val()//(()?$('#' + objid).val().split(','):null); +// parent.apppref.setpreference("calorganisation",pconfig); +// load_calendar_data(); +// } +function onselstaff(objid) { + + pconfig.filterstaff = $('#' + objid).val(); + parent.apppref.setpreference("calorganisation",pconfig); + load_calendar_data(); +} + +function get_vacancy_data() { + vacpos = {}; + var where = ""; + if ((pconfig.filterstaff) && (pconfig.filterstaff.length > 0)) { + where = " st.uuid in ('"+ pconfig.filterstaff.join("','") + "')"; + } + var sql = getvacancysql(new Date(initdate.toISOString().substring(0,10)),new Date(lastmonthday.toISOString().substring(0,10)),where); + vacdata = parent.appdb.dbquery(sql); + vacdata = vacdata.sqldata; + + for (var v in vacdata) { + var freq = "FREQ=DAILY"; + + freq += ';DTSTART='+vacdata[v].strdatefrom + 'T000000Z'; + if (vacdata[v].vacancydateto != ''){ + freq += ';UNTIL='+vacdata[v].strdateto + 'T000000Z'; + }else { + freq += ';UNTIL='+vacdata[v].strstrdatefrom + 'T000000Z'; + } + try { + var vacrule = RRule.fromString(freq); + var vacrall = vacrule.all(); + } catch (ex){ + + } + for (var r in vacrall){ + if ((vacrall[r].toISOString().substring(0,10) >= initdate.toISOString().substring(0,10)) && (vacrall[r].toISOString().substring(0,10) <= lastmonthday.toISOString().substring(0,10)+'T00:00.000Z')) { + if (!vacpos[vacrall[r].toISOString().substring(0,10)]) { + vacpos[vacrall[r].toISOString().substring(0,10)] = {'staffuuid':[vacdata[v].staffuuid],color:[vacdata[v].color]}; + }else { + vacpos[vacrall[r].toISOString().substring(0,10)]['staffuuid'].push(vacdata[v].staffuuid); + vacpos[vacrall[r].toISOString().substring(0,10)]['color'].push(vacdata[v].color); + } + } + } + } +} + +function getvacancysql(datefrom2,dateto2,where) { + var sqlret = "SELECT vc.uuid, vc.datefrom,strftime('%Y%m%d',vc.datefrom) as strdatefrom,' ' || strftime('%Y%m%d',vc.datefrom) || strftime('%Y%m%d',vc.dateto) || '' || strftime('%d.%m.%Y',vc.datefrom) || ' - ' || strftime('%d.%m.%Y',vc.dateto) as tbldaterange, vc.dateto,strftime('%Y%m%d',vc.dateto) as strdateto,vc.timefrom,vc.timeto "+ +", vc.staffuuid,coalesce(st.surname,'') || ' ' || coalesce(st.prename,'') as staffname,vc.type,st.color FROM vacancycalendar vc left join staff st on (vc.staffuuid=st.uuid) " + + "LEFT JOIN ( SELECT * FROM ( "; + var sqldays = new Array(); + + for (var cdate2=datefrom2;cdate2<=dateto2;cdate2.setDate(cdate2.getDate() +1)){ + if ((cdate2.getDay() != 0)){ + sqldays.push ("SELECT date('" + cdate2.toISOString().substring(0,10) +"') as daydate"); + } + } + + sqlret += sqldays.join(' UNION ALL ') + " )) oph " + + "ON (oph.daydate BETWEEN vc.datefrom AND vc.dateto) " + + "WHERE oph.daydate IS NOT NULL and strftime('%w',oph.daydate) not in ('0') " + + "AND oph.daydate NOT IN ( SELECT vacancydate FROM vacancy WHERE vacancydateto IS NULL AND vacancydate BETWEEN '"+initdate.toISOString().substring(0,10) + "' AND '" + dateto2.toISOString().substring(0,10)+"') " + + ((where != '')?" AND " + where + " ":"") + + " GROUP BY vc.uuid ORDER BY st.uuid,vc.datefrom, vc.dateto; "; + return sqlret; +} + + + +function getdaterangesql(){ + var adays = []; + var bdate = new Date(initdate.getFullYear(), initdate.getMonth(), initdate.getDate()); + var bend = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 0); + for (var cdt = bdate; cdt <= bend; cdt.setDate(cdt.getDate() + 1)) { + + adays.push("select date('" + cdt.toISOString().substring(0,10) + "') as daydate"); + + } + return adays.join(" UNION "); +} + +function getstaffactivity() { + var bdate = new Date(initdate.getFullYear(), initdate.getMonth(), initdate.getDate()); + var bend = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 0); + var actsql = "select dd.daydate as daydate, '[\"' || GROUP_CONCAT(ev.staffuuid,'\",\"') || '\"]' AS staffuuid,'[\"' || GROUP_CONCAT(st.color,'\",\"') || '\"]' as staffcolor,'[\"' || GROUP_CONCAT(coalesce(substr(st.surname,1,2),'') || ' ' || coalesce(substr(st.prename,1,2),''), '\",\"' ) || '\"]' as staffnames, ev.timefrom as timefrom,ev.timeto as timeto, ev.description as description,ev.color as eventcolor,ev.uuid as eventuuid from ( "+ +"select sp.staffuuid,ec.description,ec.color,ec.uuid, "+ +"case when datefrom < '"+bdate.toISOString().substring(0,10)+"' then '"+bdate.toISOString().substring(0,10)+"' else datefrom end as datefrom, "+ +"case when dateto > '"+bend.toISOString().substring(0,10)+"' then '"+bend.toISOString().substring(0,10)+"' else dateto end as dateto, "+ +"timefrom,timeto "+ +"from eventcalendar ec join staffplanning sp on (ec.uuid=sp.eventcalendaruuid) where datefrom <= '"+bend.toISOString().substring(0,10)+"' and (dateto is null or dateto >= '"+bdate.toISOString().substring(0,10)+"')) ev "+ +"join staff st on (ev.staffuuid=st.uuid) "+ +"join ("+ drsql+") dd "+ +"on (dd.daydate between ev.datefrom and ev.dateto) "; +var wh = []; +if (pconfig.filterstaff) { + wh.push("st.uuid in ('"+ pconfig.filterstaff.join("','")+"')"); +} + +if (wh.length > 0) { + actsql += " WHERE " + wh.join( " OR "); +} +actsql += " GROUP BY dd.daydate,ev.uuid ORDER BY ev.description,dd.daydate,ev.timefrom,ev.timeto; "; + + var actdata = parent.appdb.dbquery(actsql); + actdata = actdata.sqldata; + return actdata; +} + +function getstaffvacancy() { + var bdate = new Date(initdate.getFullYear(), initdate.getMonth(), initdate.getDate()); + var bend = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 0); + var vacsql = "select dd.daydate as daydate,staffuuid, timefrom,timeto,type from ( "+ +"select staffuuid, "+ +"case when datefrom < '"+bdate.toISOString().substring(0,10)+"' then '"+bdate.toISOString().substring(0,10)+"' else datefrom end as datefrom, "+ +"case when dateto > '"+bend.toISOString().substring(0,10)+"' then '"+bend.toISOString().substring(0,10)+"' else dateto end as dateto, "+ +"timefrom,timeto, type "+ +"from vacancycalendar where (datefrom is null or datefrom <= '"+bend.toISOString().substring(0,10)+"') and (dateto is null or dateto >= '"+bdate.toISOString().substring(0,10)+"')) vc "+ +"join ("+drsql+") dd "+ +"on (dd.daydate between vc.datefrom and vc.dateto); "; +var wh = []; +if (pconfig.filterstaff) { + wh.push("staffuuid in ('"+ pconfig.filterstaff.join("','")+"')"); +} +if (wh.length > 0) { + vacsql += " WHERE " + wh.join( " OR "); +} + + var vacdata = parent.appdb.dbquery(vacsql); + vacdata = vacdata.sqldata; + return vacdata; +} + +function get_vacancydays(){ + var bdate = new Date(initdate.getFullYear(), initdate.getMonth(), initdate.getDate()); + var bend = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 0); + var sql = "select dd.daydate,strftime('%d',dd.daydate) as strday,type from ( "+ +"select vacancydate, "+ +"case when vacancydateto is null then vacancydate else vacancydateto end as vacancydateto, "+ +"case when vacancydateto is null then 'vacancy' else 'holiday' end as type, "+ +"vacancydescription from vacancy where (vacancydate between '"+bdate.toISOString().substring(0,10)+"' and '"+bend.toISOString().substring(0,10)+"' and (vacancydateto >= '"+bdate.toISOString().substring(0,10)+"' or vacancydateto is null)) or (vacancydateto between '"+bdate.toISOString().substring(0,10)+"' and '"+bend.toISOString().substring(0,10)+"' and vacancydate < '"+bdate.toISOString().substring(0,10)+"') or ((vacancydate <= '"+bdate.toISOString().substring(0,10)+"') and (vacancydateto >= '"+bend.toISOString().substring(0,10)+"')) order by vacancydate,vacancydateto) vc "+ +"join ( "+ drsql +") dd "+ +"on (dd.daydate between vc.vacancydate and vc.vacancydateto) group by dd.daydate order by daydate;"; + var hdata = parent.appdb.dbquery(sql); + + hdata = hdata.sqldata; + var hs = {}; + for (var h in hdata){ + hs[hdata[h].strday] = hdata[h].type; + } + return hs; +} + +function convertHex(hex,opacity){ + hex = hex.replace('#',''); + r = parseInt(hex.substring(0,2), 16); + g = parseInt(hex.substring(2,4), 16); + b = parseInt(hex.substring(4,6), 16); + + result = 'rgba('+r+','+g+','+b+','+opacity+')'; + return result; +} + +function oncloneactivity(actv_id) { + var aid = $("#cmb_clone_activity :selected").val(); + + if (aid != '') { + + $("#frmeditevent #description").val(aid); + var seltxt = $("#cmb_clone_activity :selected").text(); + + var colre = //; + var ccolor =seltxt.match(colre); + + $('#frmeditevent #color').minicolors('value',{color: ccolor[1]}); + } +} + +function onselcreche(){ + +} + + + + diff --git a/CGI/tmpl/app/creorga/module/calendar/js/calchilds.js b/CGI/tmpl/app/creorga/module/calendar/js/calchilds.js index d23e2c8..940bead 100644 --- a/CGI/tmpl/app/creorga/module/calendar/js/calchilds.js +++ b/CGI/tmpl/app/creorga/module/calendar/js/calchilds.js @@ -1,423 +1,423 @@ -//Source-code licensed under EUPL v1.2 ( Copyright 2019 By DKS s.à r.l. - Kilian Saffran - Luxembourg ) - -var pconfig = {}; - -var initdate = new Date(); -initdate.setDate(1); - - -var amonth = ['', 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aôut', 'Septembre', 'Octobre','Novembre', 'Décembre']; -var drsql = ""; - -function initdata() { - load_helpers(); - pconfig = parent.apppref.getpreference("calchilds"); - if (!pconfig){ - pconfig = {}; - } - - var infogrp ="Nombre d'enfants"; - if (!pconfig.calendar){ - pconfig.calendar = "childsbyplan"; - } - load_calendar(); -} - -function load_calendar(){ - if (pconfig.calmonth) { - - initdate = new Date(encodeparam(pconfig.calmonth, 'month').replace(/'/g, '')); - $("#calmonth").val(pconfig.calmonth); - } else { - $("#calmonth").val(initdate.getMonth() + '.' + initdate.getFullYear()); - pconfig.calmonth = initdate.getMonth() + '.' + initdate.getFullYear(); - } - drsql = getdaterangesql(); - $('#tbl_timetable').html(""); - if (pconfig.calendar == "childsbyweekhours"){ - load_calendar_weekhours(); - }else if (pconfig.calendar == "childsbyplan"){ - load_calendar_plan(); - } -} - -$('#calmonth').on('dp.hide', function() { - set_calmonth(); -}); -$("#filter_calendar option[value='"+ pconfig.calendar+"']").attr("selected", true); -$('#filter_calendar').on('change', function(){ - onselcalendar($(this).attr("id")); -}); - -function load_calendar_weekhours(){ //enfants par heures contractuelles - var cgr = parent.appdb.dbquery("select uuid,grpname,maxchilds,color from groups"); - cgr = cgr.sqldata; - var hdays = get_vacancydays(); - var strhead = 'Semaine'; - var totalspan = 2; - var coldata=getcolumndays(); - var coldays=coldata[0]; - var weekrange=coldata[1]; - for (var w in weekrange){ - strhead += '' + w + ''; - totalspan += weekrange[w]; - } - - strhead += 'h / Semaine'; - for (var th in coldays){ - var sty=""; - if (hdays[coldays[th]]) { - sty =' class="'+((hdays[coldays[th]]=='vacancy')?'calvacancy':'calvacrange')+'" '; - } - strhead += ''+ coldays[th]+''; - } - strhead += ''; - $('#tbl_timetable').append(strhead); - $('#tbl_timetable').append(''); - var tfooter = {}; - for (var c in coldays){ - tfooter[parseInt(coldays[c])] = 0; - } - for (var g in cgr) { - $('#tbl_timetable').append('Groupe: '+ cgr[g].grpname+' (max. '+cgr[g].maxchilds+' enfants)'); - var ttdata = getchildweekhoursbygroup(cgr[g].uuid); - - if (!ttdata){ - $('#tbl_timetable').append(' Pas de données'); - continue; - } - - var alltr ={}; - - for (var tt in ttdata) { - var dtmp = ttdata[tt].weekhours; - if (!alltr[ttdata[tt].weekhours]){ - alltr[ttdata[tt].weekhours] = {}; - for (var c in coldays){ - alltr[ttdata[tt]["weekhours"]][coldays[c]] = 0; - } - - } - } - for (var t in ttdata){ - var rdata = ttdata[t]; - var ctday = parseInt(rdata.daydate.substring(8,10)); - if (alltr[rdata.weekhours]){ - if (alltr[rdata.weekhours][ctday]){ - alltr[rdata.weekhours][ctday] = ttdata[t].childcnt; - }else { - alltr[rdata.weekhours][ctday] = ttdata[t].childcnt; - } - } - - } - for (var a in alltr){ - var trn = ''+a+' h'; - for (var h in coldays){ - if (hdays[coldays[h]] == 'vacancy') { - trn += ''; - continue; - } - trn += '' +((alltr[a][coldays[h]] != 0)?alltr[a][coldays[h]]:'')+ ''; - trn +=''; - if (alltr[a][coldays[h]] != 0){ - tfooter[parseInt(coldays[h])] += parseInt(alltr[a][coldays[h]]); - } - } - trn += ''; - $('#tbl_timetable').append(trn); - } - } - $('#tbl_timetable').append(''); - var tstrfoot = "Total:"; - tfooter = tfooter; - for (var f in coldays){ - tstrfoot += ''+ ((tfooter[parseInt(coldays[f])] != 0)?tfooter[parseInt(coldays[f])]:'') +''; - } - tstrfoot += ""; - $('#tbl_timetable').append(tstrfoot); -} - - - -function load_calendar_plan(){ - - var cgr = parent.appdb.dbquery("select uuid,grpname,maxchilds,color from groups"); - cgr = cgr.sqldata; - var hdays = get_vacancydays(); - var strhead = 'Semaine'; - var totalspan = 1; - var coldata=getcolumndays(); - var coldays=coldata[0]; - var weekrange=coldata[1]; - for (var w in weekrange){ - strhead += '' + w + ''; - totalspan += weekrange[w]; - } - - strhead += ''; - for (var th in coldays){ - var sty=""; - if (hdays[coldays[th]]) { - sty =' class="'+((hdays[coldays[th]]=='vacancy')?'calvacancy':'calvacrange')+'" '; - } - strhead += ''+ coldays[th]+''; - } - strhead += ''; - $('#tbl_timetable').append(strhead); - $('#tbl_timetable').append(''); - var tfooter = {}; - for (var c in coldays){ - tfooter[parseInt(coldays[c])] = 0; - } - - for (var g in cgr) { - $('#tbl_timetable').append('Groupe: '+ cgr[g].grpname+' (max. '+cgr[g].maxchilds+' enfants)'); - var ttdata = getplannedtimesbygroup(cgr[g].uuid); - if (!ttdata){ - $('#tbl_timetable').append(' Pas de données'); - continue; - } - var alltr ={}; - for (var tt in ttdata) { - var dtmp = ttdata[tt].daytime; - if (!alltr[ttdata[tt].daytime]){ - alltr[ttdata[tt].daytime] = {}; - for (var c in coldays){ - alltr[ttdata[tt]["daytime"]][coldays[c]] = 0; - } - } - } - - for (var t in ttdata){ - var rdata = ttdata[t]; - var ctday = parseInt(rdata.daydate.substring(8,10)); - if (alltr[rdata.daytime]){ - if (alltr[rdata.daytime][ctday]){ - alltr[rdata.daytime][ctday] = ttdata[t].childcnt; - }else { - alltr[rdata.daytime][ctday] = ttdata[t].childcnt; - } - } - - } - - for (var a in alltr){ - var dsptime = a.match(/.{1,5}/g); - var trn = ''+a+''; - if (dsptime.length == 2){ - trn = ''+dsptime[0]+ ' - ' + dsptime[1]+''; - } - if (dsptime.length == 3){ - trn = ''+dsptime[0]+ ' - ' + dsptime[1]+ '
'+ +dsptime[2]+ ' - ?
'; - } - if (dsptime.length == 4){ - trn = ''+dsptime[0]+ ' - ' + dsptime[1]+ '
'+ +dsptime[2]+ ' - ' + dsptime[3] + '
'; - } - - for (var h in coldays){ - if (hdays[coldays[h]] == 'vacancy') { - trn += ''; - continue; - } - trn += '' +((alltr[a][coldays[h]] != 0)?alltr[a][coldays[h]]:'')+ ''; - trn +=''; - if (alltr[a][coldays[h]] != 0){ - tfooter[parseInt(coldays[h])] += parseInt(alltr[a][coldays[h]]); - } - } - trn += ''; - - $('#tbl_timetable').append(trn); - } - } - $('#tbl_timetable').append(''); - var tstrfoot = "Total:"; - for (var f in coldays){ - tstrfoot += ''+ ((tfooter[parseInt(coldays[f])] != 0)?tfooter[parseInt(coldays[f])]:'') +''; - } - tstrfoot += ""; - $('#tbl_timetable').append(tstrfoot); - } - - - -function set_calmonth(){ - pconfig.calmonth =$("#calmonth").val(); - parent.apppref.setpreference("calchilds",pconfig); - load_calendar(); - -} - - -function onnextmonth() { - var xdate = parent.appdb.dbquery("select STRFTIME('%m.%Y',date('"+initdate.toISOString().substring(0,10)+"','+1 month')) as ndate"); - pconfig.calmonth = xdate.sqldata[0].ndate; - parent.apppref.setpreference("calchilds", pconfig); - load_calendar(); - -} - -function onpreviousmonth() { - var xdate = parent.appdb.dbquery("select STRFTIME('%m.%Y',date('"+initdate.toISOString().substring(0,10)+"','-1 month')) as ndate"); - pconfig.calmonth = xdate.sqldata[0].ndate; - parent.apppref.setpreference("calchilds", pconfig); - load_calendar(); - -} - - - -function getplannedtimesbygroup(groupfilter){ - var endmdate = new Date(initdate.getFullYear(),initdate.getMonth()+1,0); - var d1 = ['','mon','tue','wed','thu','fri', 'sat']; - var sql = "select daydate,count(childuuid) as childcnt,groupuuid,case "; - var adt = []; - for (var i=1;i dd.daydate or ch.leavedate < dd.daydate then '' else coalesce("+ d1[i]+"timebegin, '') || coalesce("+ d1[i]+"timeend, '') end || "+ - " case when "+ d1[i]+"timebegin2 = "+ d1[i]+"timeend2 or ch.entrydate > dd.daydate or ch.leavedate < dd.daydate then '' else coalesce("+ d1[i]+"timebegin2, '') || coalesce("+ d1[i]+"timeend2, '') end as "+ d1[i]+"time"); - - } - sql += adt3.join(",") + ' from childs ch join planning pl on (ch.uuid = pl.childuuid) JOIN (' - + drsql + ") dd on ( dd.daydate BETWEEN pl.datebegin AND pl.dateend) " + - "where ch.leavedate >= date('"+initdate.toISOString().substring(0,10)+"') and ch.entrydate <= date('"+endmdate.toISOString().substring(0,10)+"') " + - " GROUP BY daydate, pl.childuuid) aa " + - "group by daydate,childuuid,montime,tuetime,wedtime,thutime,fritime,sattime) where daytime is not null and groupuuid='"+ groupfilter +"' group by daydate,daytime,groupuuid "+ - "order by daydate,daytime;"; - - var ttdata = parent.appdb.dbquery(sql); - ttdata = ttdata.sqldata; - return ttdata; - -} - -function getchildweekhoursbygroup(groupfilter) { - var endmdate = new Date(initdate.getFullYear(),initdate.getMonth()+1,0); - var d1 = ['','mon','tue','wed','thu','fri', 'sat']; - var sql = "select daydate, count(childuuid) as childcnt, groupuuid, case "; - var adt = []; - for (var i=1;i dd.daydate or ch.leavedate < dd.daydate then '' else coalesce("+ d1[i]+"timebegin, '') || coalesce("+ d1[i]+"timeend, '') end || "+ - " case when "+ d1[i]+"timebegin2 = "+ d1[i]+"timeend2 or ch.entrydate > dd.daydate or ch.leavedate < dd.daydate then '' else coalesce("+ d1[i]+"timebegin2, '') || coalesce("+ d1[i]+"timeend2, '') end as "+ d1[i]+"time"); - - } - sql += adt3.join(",") + ","; - - var adt4 = []; - for (var i=1;i= date('"+initdate.toISOString().substring(0,10)+"') and ch.entrydate <= date('"+endmdate.toISOString().substring(0,10)+"') GROUP BY daydate,pl.childuuid )" + - " group by daydate, childuuid, groupuuid ) " + -"where weekhours is not null and groupuuid='"+ groupfilter +"'" + -" group by daydate, weekhours, groupuuid order by daydate,weekhours;"; - - var ttdata = parent.appdb.dbquery(sql); - ttdata = ttdata.sqldata; - return ttdata; - } - - - -function getdaterangesql(){ - var adays = []; - var bdate = new Date(initdate.getFullYear(), initdate.getMonth(), initdate.getDate()); - var bend = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 0); - for (var cdt = bdate; cdt <= bend; cdt.setDate(cdt.getDate() + 1)) { - if ((cdt.getDay() !== 0)){ - adays.push("select date('" + cdt.toISOString().substring(0,10) + "') as daydate"); - } - - } - return adays.join(" UNION "); -} - -function getcolumndays(){ - var adays = []; - var wrs = []; - var firstmonday = new Date(initdate.getFullYear(), initdate.getMonth(), 1); - - var lastmonthday = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 1); - - var lwr = -1; - - for (var cdt = firstmonday; cdt < lastmonthday; cdt.setDate(cdt.getDate() + 1)) { - if ((cdt.getDay() !== 0)){ - if ((lwr === -1) || (!wrs[cdt.getWeekNumber()])) { - wrs[cdt.getWeekNumber()] = 1; - }else { - wrs[cdt.getWeekNumber()] += 1; - } - lwr = cdt.getWeekNumber(); - adays.push(cdt.getDate()); - } - - } - - return [adays,wrs]; -} - - - - - - - -function get_vacancydays(){ - var bdate = new Date(initdate.getFullYear(), initdate.getMonth(), initdate.getDate()); - var bend = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 0); - var sql = "select dd.daydate,strftime('%d',dd.daydate) as strday,type from ( "+ -"select vacancydate, "+ -"case when vacancydateto is null then vacancydate else vacancydateto end as vacancydateto, "+ -"case when vacancydateto is null then 'vacancy' else 'holiday' end as type, "+ -"vacancydescription from vacancy where (vacancydate between '"+bdate.toISOString().substring(0,10)+"' and '"+bend.toISOString().substring(0,10)+"' and (vacancydateto >= '"+bdate.toISOString().substring(0,10)+"' or vacancydateto is null)) or (vacancydateto between '"+bdate.toISOString().substring(0,10)+"' and '"+bend.toISOString().substring(0,10)+"' and vacancydate < '"+bdate.toISOString().substring(0,10)+"') or ((vacancydate <= '"+bdate.toISOString().substring(0,10)+"') and (vacancydateto >= '"+bend.toISOString().substring(0,10)+"')) order by vacancydate,vacancydateto) vc "+ -"join ( "+ drsql +") dd "+ -"on (dd.daydate between vc.vacancydate and vc.vacancydateto) group by dd.daydate order by daydate;"; - - var hdata = parent.appdb.dbquery(sql); - hdata = hdata.sqldata; - var hs = {}; - for (var h in hdata){ - hs[hdata[h].strday] = hdata[h].type; - } - return hs; -} - -function onselcalendar(objid){ - - pconfig.calendar = $('#' + objid).val(); - parent.apppref.setpreference("calchilds", pconfig); - load_calendar(); - - -} +//Source-code licensed under EUPL v1.2 ( Copyright 2019 By DKS s.à r.l. - Kilian Saffran - Luxembourg ) + +var pconfig = {}; + +var initdate = new Date(); +initdate.setDate(1); + + +var amonth = ['', 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aôut', 'Septembre', 'Octobre','Novembre', 'Décembre']; +var drsql = ""; + +function initdata() { + load_helpers(); + pconfig = parent.apppref.getpreference("calchilds"); + if (!pconfig){ + pconfig = {}; + } + + var infogrp ="Nombre d'enfants"; + if (!pconfig.calendar){ + pconfig.calendar = "childsbyplan"; + } + load_calendar(); +} + +function load_calendar(){ + if (pconfig.calmonth) { + + initdate = new Date(encodeparam(pconfig.calmonth, 'month').replace(/'/g, '')); + $("#calmonth").val(pconfig.calmonth); + } else { + $("#calmonth").val(initdate.getMonth() + '.' + initdate.getFullYear()); + pconfig.calmonth = initdate.getMonth() + '.' + initdate.getFullYear(); + } + drsql = getdaterangesql(); + $('#tbl_timetable').html(""); + if (pconfig.calendar == "childsbyweekhours"){ + load_calendar_weekhours(); + }else if (pconfig.calendar == "childsbyplan"){ + load_calendar_plan(); + } +} + +$('#calmonth').on('dp.hide', function() { + set_calmonth(); +}); +$("#filter_calendar option[value='"+ pconfig.calendar+"']").attr("selected", true); +$('#filter_calendar').on('change', function(){ + onselcalendar($(this).attr("id")); +}); + +function load_calendar_weekhours(){ //enfants par heures contractuelles + var cgr = parent.appdb.dbquery("select uuid,grpname,maxchilds,color from groups"); + cgr = cgr.sqldata; + var hdays = get_vacancydays(); + var strhead = 'Semaine'; + var totalspan = 2; + var coldata=getcolumndays(); + var coldays=coldata[0]; + var weekrange=coldata[1]; + for (var w in weekrange){ + strhead += '' + w + ''; + totalspan += weekrange[w]; + } + + strhead += 'h / Semaine'; + for (var th in coldays){ + var sty=""; + if (hdays[coldays[th]]) { + sty =' class="'+((hdays[coldays[th]]=='vacancy')?'calvacancy':'calvacrange')+'" '; + } + strhead += ''+ coldays[th]+''; + } + strhead += ''; + $('#tbl_timetable').append(strhead); + $('#tbl_timetable').append(''); + var tfooter = {}; + for (var c in coldays){ + tfooter[parseInt(coldays[c])] = 0; + } + for (var g in cgr) { + $('#tbl_timetable').append('Groupe: '+ cgr[g].grpname+' (max. '+cgr[g].maxchilds+' enfants)'); + var ttdata = getchildweekhoursbygroup(cgr[g].uuid); + + if (!ttdata){ + $('#tbl_timetable').append(' Pas de données'); + continue; + } + + var alltr ={}; + + for (var tt in ttdata) { + var dtmp = ttdata[tt].weekhours; + if (!alltr[ttdata[tt].weekhours]){ + alltr[ttdata[tt].weekhours] = {}; + for (var c in coldays){ + alltr[ttdata[tt]["weekhours"]][coldays[c]] = 0; + } + + } + } + for (var t in ttdata){ + var rdata = ttdata[t]; + var ctday = parseInt(rdata.daydate.substring(8,10)); + if (alltr[rdata.weekhours]){ + if (alltr[rdata.weekhours][ctday]){ + alltr[rdata.weekhours][ctday] = ttdata[t].childcnt; + }else { + alltr[rdata.weekhours][ctday] = ttdata[t].childcnt; + } + } + + } + for (var a in alltr){ + var trn = ''+a+' h'; + for (var h in coldays){ + if (hdays[coldays[h]] == 'vacancy') { + trn += ''; + continue; + } + trn += '' +((alltr[a][coldays[h]] != 0)?alltr[a][coldays[h]]:'')+ ''; + trn +=''; + if (alltr[a][coldays[h]] != 0){ + tfooter[parseInt(coldays[h])] += parseInt(alltr[a][coldays[h]]); + } + } + trn += ''; + $('#tbl_timetable').append(trn); + } + } + $('#tbl_timetable').append(''); + var tstrfoot = "Total:"; + tfooter = tfooter; + for (var f in coldays){ + tstrfoot += ''+ ((tfooter[parseInt(coldays[f])] != 0)?tfooter[parseInt(coldays[f])]:'') +''; + } + tstrfoot += ""; + $('#tbl_timetable').append(tstrfoot); +} + + + +function load_calendar_plan(){ + + var cgr = parent.appdb.dbquery("select uuid,grpname,maxchilds,color from groups"); + cgr = cgr.sqldata; + var hdays = get_vacancydays(); + var strhead = 'Semaine'; + var totalspan = 1; + var coldata=getcolumndays(); + var coldays=coldata[0]; + var weekrange=coldata[1]; + for (var w in weekrange){ + strhead += '' + w + ''; + totalspan += weekrange[w]; + } + + strhead += ''; + for (var th in coldays){ + var sty=""; + if (hdays[coldays[th]]) { + sty =' class="'+((hdays[coldays[th]]=='vacancy')?'calvacancy':'calvacrange')+'" '; + } + strhead += ''+ coldays[th]+''; + } + strhead += ''; + $('#tbl_timetable').append(strhead); + $('#tbl_timetable').append(''); + var tfooter = {}; + for (var c in coldays){ + tfooter[parseInt(coldays[c])] = 0; + } + + for (var g in cgr) { + $('#tbl_timetable').append('Groupe: '+ cgr[g].grpname+' (max. '+cgr[g].maxchilds+' enfants)'); + var ttdata = getplannedtimesbygroup(cgr[g].uuid); + if (!ttdata){ + $('#tbl_timetable').append(' Pas de données'); + continue; + } + var alltr ={}; + for (var tt in ttdata) { + var dtmp = ttdata[tt].daytime; + if (!alltr[ttdata[tt].daytime]){ + alltr[ttdata[tt].daytime] = {}; + for (var c in coldays){ + alltr[ttdata[tt]["daytime"]][coldays[c]] = 0; + } + } + } + + for (var t in ttdata){ + var rdata = ttdata[t]; + var ctday = parseInt(rdata.daydate.substring(8,10)); + if (alltr[rdata.daytime]){ + if (alltr[rdata.daytime][ctday]){ + alltr[rdata.daytime][ctday] = ttdata[t].childcnt; + }else { + alltr[rdata.daytime][ctday] = ttdata[t].childcnt; + } + } + + } + + for (var a in alltr){ + var dsptime = a.match(/.{1,5}/g); + var trn = ''+a+''; + if (dsptime.length == 2){ + trn = ''+dsptime[0]+ ' - ' + dsptime[1]+''; + } + if (dsptime.length == 3){ + trn = ''+dsptime[0]+ ' - ' + dsptime[1]+ '
'+ +dsptime[2]+ ' - ?
'; + } + if (dsptime.length == 4){ + trn = ''+dsptime[0]+ ' - ' + dsptime[1]+ '
'+ +dsptime[2]+ ' - ' + dsptime[3] + '
'; + } + + for (var h in coldays){ + if (hdays[coldays[h]] == 'vacancy') { + trn += ''; + continue; + } + trn += '' +((alltr[a][coldays[h]] != 0)?alltr[a][coldays[h]]:'')+ ''; + trn +=''; + if (alltr[a][coldays[h]] != 0){ + tfooter[parseInt(coldays[h])] += parseInt(alltr[a][coldays[h]]); + } + } + trn += ''; + + $('#tbl_timetable').append(trn); + } + } + $('#tbl_timetable').append(''); + var tstrfoot = "Total:"; + for (var f in coldays){ + tstrfoot += ''+ ((tfooter[parseInt(coldays[f])] != 0)?tfooter[parseInt(coldays[f])]:'') +''; + } + tstrfoot += ""; + $('#tbl_timetable').append(tstrfoot); + } + + + +function set_calmonth(){ + pconfig.calmonth =$("#calmonth").val(); + parent.apppref.setpreference("calchilds",pconfig); + load_calendar(); + +} + + +function onnextmonth() { + var xdate = parent.appdb.dbquery("select STRFTIME('%m.%Y',date('"+initdate.toISOString().substring(0,10)+"','+1 month')) as ndate"); + pconfig.calmonth = xdate.sqldata[0].ndate; + parent.apppref.setpreference("calchilds", pconfig); + load_calendar(); + +} + +function onpreviousmonth() { + var xdate = parent.appdb.dbquery("select STRFTIME('%m.%Y',date('"+initdate.toISOString().substring(0,10)+"','-1 month')) as ndate"); + pconfig.calmonth = xdate.sqldata[0].ndate; + parent.apppref.setpreference("calchilds", pconfig); + load_calendar(); + +} + + + +function getplannedtimesbygroup(groupfilter){ + var endmdate = new Date(initdate.getFullYear(),initdate.getMonth()+1,0); + var d1 = ['','mon','tue','wed','thu','fri', 'sat']; + var sql = "select daydate,count(childuuid) as childcnt,groupuuid,case "; + var adt = []; + for (var i=1;i dd.daydate or ch.leavedate < dd.daydate then '' else coalesce("+ d1[i]+"timebegin, '') || coalesce("+ d1[i]+"timeend, '') end || "+ + " case when "+ d1[i]+"timebegin2 = "+ d1[i]+"timeend2 or ch.entrydate > dd.daydate or ch.leavedate < dd.daydate then '' else coalesce("+ d1[i]+"timebegin2, '') || coalesce("+ d1[i]+"timeend2, '') end as "+ d1[i]+"time"); + + } + sql += adt3.join(",") + ' from childs ch join planning pl on (ch.uuid = pl.childuuid) JOIN (' + + drsql + ") dd on ( dd.daydate BETWEEN pl.datebegin AND pl.dateend) " + + "where ch.leavedate >= date('"+initdate.toISOString().substring(0,10)+"') and ch.entrydate <= date('"+endmdate.toISOString().substring(0,10)+"') " + + " GROUP BY daydate, pl.childuuid) aa " + + "group by daydate,childuuid,montime,tuetime,wedtime,thutime,fritime,sattime) where daytime is not null and groupuuid='"+ groupfilter +"' group by daydate,daytime,groupuuid "+ + "order by daydate,daytime;"; + + var ttdata = parent.appdb.dbquery(sql); + ttdata = ttdata.sqldata; + return ttdata; + +} + +function getchildweekhoursbygroup(groupfilter) { + var endmdate = new Date(initdate.getFullYear(),initdate.getMonth()+1,0); + var d1 = ['','mon','tue','wed','thu','fri', 'sat']; + var sql = "select daydate, count(childuuid) as childcnt, groupuuid, case "; + var adt = []; + for (var i=1;i dd.daydate or ch.leavedate < dd.daydate then '' else coalesce("+ d1[i]+"timebegin, '') || coalesce("+ d1[i]+"timeend, '') end || "+ + " case when "+ d1[i]+"timebegin2 = "+ d1[i]+"timeend2 or ch.entrydate > dd.daydate or ch.leavedate < dd.daydate then '' else coalesce("+ d1[i]+"timebegin2, '') || coalesce("+ d1[i]+"timeend2, '') end as "+ d1[i]+"time"); + + } + sql += adt3.join(",") + ","; + + var adt4 = []; + for (var i=1;i= date('"+initdate.toISOString().substring(0,10)+"') and ch.entrydate <= date('"+endmdate.toISOString().substring(0,10)+"') GROUP BY daydate,pl.childuuid )" + + " group by daydate, childuuid, groupuuid ) " + +"where weekhours is not null and groupuuid='"+ groupfilter +"'" + +" group by daydate, weekhours, groupuuid order by daydate,weekhours;"; + + var ttdata = parent.appdb.dbquery(sql); + ttdata = ttdata.sqldata; + return ttdata; + } + + + +function getdaterangesql(){ + var adays = []; + var bdate = new Date(initdate.getFullYear(), initdate.getMonth(), initdate.getDate()); + var bend = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 0); + for (var cdt = bdate; cdt <= bend; cdt.setDate(cdt.getDate() + 1)) { + if ((cdt.getDay() !== 0)){ + adays.push("select date('" + cdt.toISOString().substring(0,10) + "') as daydate"); + } + + } + return adays.join(" UNION "); +} + +function getcolumndays(){ + var adays = []; + var wrs = []; + var firstmonday = new Date(initdate.getFullYear(), initdate.getMonth(), 1); + + var lastmonthday = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 1); + + var lwr = -1; + + for (var cdt = firstmonday; cdt < lastmonthday; cdt.setDate(cdt.getDate() + 1)) { + if ((cdt.getDay() !== 0)){ + if ((lwr === -1) || (!wrs[cdt.getWeekNumber()])) { + wrs[cdt.getWeekNumber()] = 1; + }else { + wrs[cdt.getWeekNumber()] += 1; + } + lwr = cdt.getWeekNumber(); + adays.push(cdt.getDate()); + } + + } + + return [adays,wrs]; +} + + + + + + + +function get_vacancydays(){ + var bdate = new Date(initdate.getFullYear(), initdate.getMonth(), initdate.getDate()); + var bend = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 0); + var sql = "select dd.daydate,strftime('%d',dd.daydate) as strday,type from ( "+ +"select vacancydate, "+ +"case when vacancydateto is null then vacancydate else vacancydateto end as vacancydateto, "+ +"case when vacancydateto is null then 'vacancy' else 'holiday' end as type, "+ +"vacancydescription from vacancy where (vacancydate between '"+bdate.toISOString().substring(0,10)+"' and '"+bend.toISOString().substring(0,10)+"' and (vacancydateto >= '"+bdate.toISOString().substring(0,10)+"' or vacancydateto is null)) or (vacancydateto between '"+bdate.toISOString().substring(0,10)+"' and '"+bend.toISOString().substring(0,10)+"' and vacancydate < '"+bdate.toISOString().substring(0,10)+"') or ((vacancydate <= '"+bdate.toISOString().substring(0,10)+"') and (vacancydateto >= '"+bend.toISOString().substring(0,10)+"')) order by vacancydate,vacancydateto) vc "+ +"join ( "+ drsql +") dd "+ +"on (dd.daydate between vc.vacancydate and vc.vacancydateto) group by dd.daydate order by daydate;"; + + var hdata = parent.appdb.dbquery(sql); + hdata = hdata.sqldata; + var hs = {}; + for (var h in hdata){ + hs[hdata[h].strday] = hdata[h].type; + } + return hs; +} + +function onselcalendar(objid){ + + pconfig.calendar = $('#' + objid).val(); + parent.apppref.setpreference("calchilds", pconfig); + load_calendar(); + + +} diff --git a/CGI/tmpl/app/creorga/module/calendar/js/calvacancy.js b/CGI/tmpl/app/creorga/module/calendar/js/calvacancy.js index 8575faf..00b6516 100644 --- a/CGI/tmpl/app/creorga/module/calendar/js/calvacancy.js +++ b/CGI/tmpl/app/creorga/module/calendar/js/calvacancy.js @@ -1,288 +1,288 @@ -//Source-code licensed under EUPL v1.2 ( Copyright 2019 By DKS s.à r.l. - Kilian Saffran - Luxembourg ) - -var pconfig = {}; -//var cdate = null; -var initdate = new Date(); -initdate.setDate(1); -var lastmonthday = null; -var firstmonday = null; -var lastsunday = null; -var winh = window.innerHeight - 140; -var tblcal = null; -var lblfreq = {daily:'jour(s)',weekly:'semaine(s)',monthly:'mois'}; -var amonth = ['', 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aôut', 'Septembre','Octobre', 'Novembre', 'Décembre']; -var linkpos = {}; -var posday = {}; -var delac = null; -var curfreq ={}; -var redate = /\d\d.\d\d.\d\d\d\d/; -var curdatediff = null; -var accdb = null; -var drsql = ""; -var defaultcreche = null; -var curcreche=null; - -function initdata() { - load_helpers(); - - var pconfig = parent.apppref.getpreference("calvacancy"); - - if (!pconfig) { - pconfig = {} - } - - load_calendar(); -} - -$('#calmonth').on('dp.hide',function(e){ - set_calmonth(); -}); - - - -function load_calendar() { - - if (!pconfig["calmonth"]) { - - pconfig.calmonth = initdate.toISOString().substring(5,7) + '.' + initdate.toISOString().substring(0,4); - } - $("#calmonth").val(pconfig.calmonth); - initdate = new Date(encodeparam(pconfig.calmonth, 'month').replace(/'/g, '')); - load_calendar_data(); - -} - -function load_calendar_data() { - - var lastmonthday = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 1); - var sql = getmonthlysql(new Date(initdate.toISOString().substring(0,10)),new Date(lastmonthday.toISOString().substring(0,10)),""); - - $("#tbl_timetable").html(""); - - drsql = getdaterangesql(); - - - var thead = []; - var weekrange = {}; - var ltd = ""; - var coldata=getcolumndays(); - var thead=coldata[0]; - var weekrange=coldata[1]; - - var cspan = 0; - var hdays = get_vacancydays(); - var strhead = 'Semaine'; - for (var w in weekrange){ - strhead += '' + w + ''; - cspan += weekrange[w]; - } - strhead += ' '; - for (var th in thead){ - var sty=""; - if (hdays[thead[th]]) { - sty =' style="background-color: '+((hdays[thead[th]]=='vacancy')?'#FF7145':'#FF9C2A')+' !important;" '; - } - strhead += ''+ thead[th]+''; - } - - strhead += ''; - $('#tbl_timetable').append(strhead); - $('#tbl_timetable').append(''); - var crspan = thead.length + 1; - - setcrechevacancydata(thead,hdays); - - $('#tbl_timetable').append(''); -} - -function setcrechevacancydata(thead,hdays){ - var vacdata = getstaffvacancy(); - - var staffsql = "SELECT uuid,prename || ' ' || surname as fullname,color from staff where inactive is null and entrydate <= date('"+initdate.toISOString().substring(0,10)+"','+1 month','-1 day') and (exitdate is null or exitdate >= date('"+initdate.toISOString().substring(0,10)+"'));"; - - var staffnames = parent.appdb.dbquery(staffsql); - staffnames = staffnames.sqldata; - var stxcolor = {}; - - for (var stu in staffnames){ - - stxcolor[staffnames[stu].uuid] = staffnames[stu].color; - var row = ''+ staffnames[stu].fullname+''; - - for (var d in thead){ - if ((hdays[thead[d]]) && (hdays[thead[d]] == 'vacancy')){ - row += ''; - }else { - row += ''; - } - - } - row += ''; - $('#tbl_timetable').append(row); - } - - for (var vc in vacdata){ - - var da = vacdata[vc].daydate.substring(8,10); - var hh = ""; - - - $('#tblcon_' + vacdata[vc].staffuuid + '_' + da + "").append(''); - - } -} - -function setdailydurationfields() { - var dd = $('#dailyduration :selected').val(); - if (dd=='1.0') { - $("#ftimefrom").hide(); - $("#fhours").hide(); - }else if (dd=='0.4') { - $("#ftimefrom").show(); - $("#fhours").hide(); - }else if (dd=='0.') { - $("#ftimefrom").show(); - $("#fhours").show(); - } -} - -function getmonthlysql(datefrom2,dateto2,where) { - var sqlret = "SELECT vc.uuid, vc.datefrom,strftime('%Y%m%d',vc.datefrom) as strdatefrom,' ' || strftime('%Y%m%d',vc.datefrom) || strftime('%Y%m%d',vc.dateto) || '' || strftime('%d.%m.%Y',vc.datefrom) || ' - ' || strftime('%d.%m.%Y',vc.dateto) as tbldaterange, vc.dateto,strftime('%Y%m%d',vc.dateto) as strdateto, "+ -"case when vc.timefrom=vc.timeto then '8h' else (cast(substr(vc.timeto,1,2) as int) - cast(substr(vc.timefrom,1,2) as int)) || 'h' end as hours , " + -"vc.description, vc.staffuuid,coalesce(st.surname,'') || ' ' || coalesce(st.prename,'') as staffname,vc.type,st.color FROM vacancycalendar vc left join staff st on (vc.staffuuid=st.uuid) " + - "LEFT JOIN ( SELECT * FROM ( "; - var sqldays = new Array(); - - for (var cdate2=datefrom2;cdate2<=dateto2;cdate2.setDate(cdate2.getDate() +1)){ - if ((cdate2.getDay() != 0) && (cdate2.getDay() != 6)){ - sqldays.push ("SELECT date('" + cdate2.toISOString().substring(0,10) +"') as daydate"); - } - } - - sqlret += sqldays.join(' UNION ALL ') + " )) oph " + - "ON (oph.daydate BETWEEN vc.datefrom AND vc.dateto) " + - "WHERE oph.daydate IS NOT NULL and strftime('%w',oph.daydate) not in ('0') " + - "AND oph.daydate NOT IN ( SELECT vacancydate FROM vacancy WHERE vacancydateto IS NULL AND vacancydate BETWEEN '"+initdate.toISOString().substring(0,10) + "' AND '" + dateto2.toISOString().substring(0,10)+"') " + - ((where != '')?" AND " + where + " ":"") + - " GROUP BY vc.uuid ORDER BY st.uuid,vc.datefrom, vc.dateto; "; - return sqlret; -} - - -function set_calmonth(){ - pconfig.calmonth =$("#calmonth").val(); - parent.apppref.setpreference("calvacancy",pconfig); - load_calendar(); - -} - - -function onnextmonth() { -var xdate = parent.appdb.dbquery("select STRFTIME('%m.%Y',date('"+initdate.toISOString().substring(0,10)+"','+1 month')) as ndate"); -pconfig.calmonth = xdate.sqldata[0].ndate; -parent.apppref.setpreference("calvacancy", pconfig); -load_calendar(); - -} - -function onpreviousmonth() { -var xdate = parent.appdb.dbquery("select STRFTIME('%m.%Y',date('"+initdate.toISOString().substring(0,10)+"','-1 month')) as ndate"); -pconfig.calmonth = xdate.sqldata[0].ndate; -parent.apppref.setpreference("calvacancy", pconfig); -load_calendar(); - -} - - - - -function invertColor(hexTripletColor) { - var color = hexTripletColor; - color = color.substring(1); // remove # - color = parseInt(color, 16); // convert to integer - color = 0xFFFFFF ^ color; // invert three bytes - color = color.toString(16); // convert to hex - color = ("000000" + color).slice(-6); // pad with leading zeros - color = "#" + color; // prepend # - return color; -} - - - - function getdaterangesql(){ - var adays = []; - var bdate = new Date(initdate.getFullYear(), initdate.getMonth(), initdate.getDate()); - var bend = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 0); - for (var cdt = bdate; cdt <= bend; cdt.setDate(cdt.getDate() + 1)) { - if ((cdt.getDay() != 0)){ - adays.push("select date('" + cdt.toISOString().substring(0,10) + "') as daydate"); - } - - } - return adays.join(" UNION "); - } - - function get_vacancydays(){ - var bdate = new Date(initdate.getFullYear(), initdate.getMonth(), initdate.getDate()); - var bend = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 0); - var sql = "select dd.daydate,strftime('%d',dd.daydate) as strday,type from ( "+ - "select vacancydate, "+ - "case when vacancydateto is null then vacancydate else vacancydateto end as vacancydateto, "+ - "case when vacancydateto is null then 'vacancy' else 'holiday' end as type, "+ - "vacancydescription from vacancy where (vacancydate between '"+bdate.toISOString().substring(0,10)+"' and '"+bend.toISOString().substring(0,10)+"' and (vacancydateto >= '"+bdate.toISOString().substring(0,10)+"' or vacancydateto is null)) or (vacancydateto between '"+bdate.toISOString().substring(0,10)+"' and '"+bend.toISOString().substring(0,10)+"' and vacancydate < '"+bdate.toISOString().substring(0,10)+"') or ((vacancydate <= '"+bdate.toISOString().substring(0,10)+"') and (vacancydateto >= '"+bend.toISOString().substring(0,10)+"')) order by vacancydate,vacancydateto) vc "+ - "join ( "+ drsql +") dd "+ - "on (dd.daydate between vc.vacancydate and vc.vacancydateto) group by dd.daydate order by daydate;"; - var hdata = parent.appdb.dbquery(sql); - - hdata = hdata.sqldata; - var hs = {}; - for (var h in hdata){ - hs[hdata[h].strday] = hdata[h].type; - } - return hs; - } - - function getstaffvacancy() { - var bdate = new Date(initdate.getFullYear(), initdate.getMonth(), initdate.getDate()); - var bend = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 0); - var vacsql = "SELECT vc.uuid as uuid, dd.daydate AS daydate, vc.staffuuid as staffuuid, printf(\"%.2f\",CASE WHEN vc.timefrom=vc.timeto THEN CAST(st.weekhours/5.00 AS REAL) ELSE CAST((CAST(strftime(\"%s\",vc.timeto) AS REAL)- CAST(strftime(\"%s\",vc.timefrom) AS REAL))/3600.00 AS REAL) END) AS hours, vc.type as type" + - " from ( "+ - "select uuid,staffuuid, "+ - "case when datefrom < '"+bdate.toISOString().substring(0,10)+"' then '"+bdate.toISOString().substring(0,10)+"' else datefrom end as datefrom, "+ - "case when dateto > '"+bend.toISOString().substring(0,10)+"' then '"+bend.toISOString().substring(0,10)+"' else dateto end as dateto, "+ - "timefrom,timeto, type "+ - "from vacancycalendar where (datefrom is null or datefrom <= '"+bend.toISOString().substring(0,10)+"') and (dateto is null or dateto >= '"+bdate.toISOString().substring(0,10)+"')) vc "+ - "join ("+drsql+") dd "+ - "on (dd.daydate between vc.datefrom and vc.dateto) left join staff st on (st.uuid=vc.staffuuid and st.inactive is null); "; - - var vacdata = parent.appdb.dbquery(vacsql); - vacdata = vacdata.sqldata; - return vacdata; - } - - - - function getcolumndays(){ - var adays = []; - var wrs = []; - var firstmonday = new Date(initdate.getFullYear(), initdate.getMonth(), 1); - - var lastmonthday = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 1); - - var lwr = -1; - - for (var cdt = firstmonday; cdt < lastmonthday; cdt.setDate(cdt.getDate() + 1)) { - if ((cdt.getDay() !== 0)){ - if ((lwr === -1) || (!wrs[cdt.getWeekNumber()])) { - wrs[cdt.getWeekNumber()] = 1; - }else { - wrs[cdt.getWeekNumber()] += 1; - } - lwr = cdt.getWeekNumber(); - adays.push(cdt.getDate()); - } - - } - - return [adays,wrs]; +//Source-code licensed under EUPL v1.2 ( Copyright 2019 By DKS s.à r.l. - Kilian Saffran - Luxembourg ) + +var pconfig = {}; +//var cdate = null; +var initdate = new Date(); +initdate.setDate(1); +var lastmonthday = null; +var firstmonday = null; +var lastsunday = null; +var winh = window.innerHeight - 140; +var tblcal = null; +var lblfreq = {daily:'jour(s)',weekly:'semaine(s)',monthly:'mois'}; +var amonth = ['', 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aôut', 'Septembre','Octobre', 'Novembre', 'Décembre']; +var linkpos = {}; +var posday = {}; +var delac = null; +var curfreq ={}; +var redate = /\d\d.\d\d.\d\d\d\d/; +var curdatediff = null; +var accdb = null; +var drsql = ""; +var defaultcreche = null; +var curcreche=null; + +function initdata() { + load_helpers(); + + var pconfig = parent.apppref.getpreference("calvacancy"); + + if (!pconfig) { + pconfig = {} + } + + load_calendar(); +} + +$('#calmonth').on('dp.hide',function(e){ + set_calmonth(); +}); + + + +function load_calendar() { + + if (!pconfig["calmonth"]) { + + pconfig.calmonth = initdate.toISOString().substring(5,7) + '.' + initdate.toISOString().substring(0,4); + } + $("#calmonth").val(pconfig.calmonth); + initdate = new Date(encodeparam(pconfig.calmonth, 'month').replace(/'/g, '')); + load_calendar_data(); + +} + +function load_calendar_data() { + + var lastmonthday = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 1); + var sql = getmonthlysql(new Date(initdate.toISOString().substring(0,10)),new Date(lastmonthday.toISOString().substring(0,10)),""); + + $("#tbl_timetable").html(""); + + drsql = getdaterangesql(); + + + var thead = []; + var weekrange = {}; + var ltd = ""; + var coldata=getcolumndays(); + var thead=coldata[0]; + var weekrange=coldata[1]; + + var cspan = 0; + var hdays = get_vacancydays(); + var strhead = 'Semaine'; + for (var w in weekrange){ + strhead += '' + w + ''; + cspan += weekrange[w]; + } + strhead += ' '; + for (var th in thead){ + var sty=""; + if (hdays[thead[th]]) { + sty =' style="background-color: '+((hdays[thead[th]]=='vacancy')?'#FF7145':'#FF9C2A')+' !important;" '; + } + strhead += ''+ thead[th]+''; + } + + strhead += ''; + $('#tbl_timetable').append(strhead); + $('#tbl_timetable').append(''); + var crspan = thead.length + 1; + + setcrechevacancydata(thead,hdays); + + $('#tbl_timetable').append(''); +} + +function setcrechevacancydata(thead,hdays){ + var vacdata = getstaffvacancy(); + + var staffsql = "SELECT uuid,prename || ' ' || surname as fullname,color from staff where inactive is null and entrydate <= date('"+initdate.toISOString().substring(0,10)+"','+1 month','-1 day') and (exitdate is null or exitdate >= date('"+initdate.toISOString().substring(0,10)+"'));"; + + var staffnames = parent.appdb.dbquery(staffsql); + staffnames = staffnames.sqldata; + var stxcolor = {}; + + for (var stu in staffnames){ + + stxcolor[staffnames[stu].uuid] = staffnames[stu].color; + var row = ''+ staffnames[stu].fullname+''; + + for (var d in thead){ + if ((hdays[thead[d]]) && (hdays[thead[d]] == 'vacancy')){ + row += ''; + }else { + row += ''; + } + + } + row += ''; + $('#tbl_timetable').append(row); + } + + for (var vc in vacdata){ + + var da = vacdata[vc].daydate.substring(8,10); + var hh = ""; + + + $('#tblcon_' + vacdata[vc].staffuuid + '_' + da + "").append(''); + + } +} + +function setdailydurationfields() { + var dd = $('#dailyduration :selected').val(); + if (dd=='1.0') { + $("#ftimefrom").hide(); + $("#fhours").hide(); + }else if (dd=='0.4') { + $("#ftimefrom").show(); + $("#fhours").hide(); + }else if (dd=='0.') { + $("#ftimefrom").show(); + $("#fhours").show(); + } +} + +function getmonthlysql(datefrom2,dateto2,where) { + var sqlret = "SELECT vc.uuid, vc.datefrom,strftime('%Y%m%d',vc.datefrom) as strdatefrom,' ' || strftime('%Y%m%d',vc.datefrom) || strftime('%Y%m%d',vc.dateto) || '' || strftime('%d.%m.%Y',vc.datefrom) || ' - ' || strftime('%d.%m.%Y',vc.dateto) as tbldaterange, vc.dateto,strftime('%Y%m%d',vc.dateto) as strdateto, "+ +"case when vc.timefrom=vc.timeto then '8h' else (cast(substr(vc.timeto,1,2) as int) - cast(substr(vc.timefrom,1,2) as int)) || 'h' end as hours , " + +"vc.description, vc.staffuuid,coalesce(st.surname,'') || ' ' || coalesce(st.prename,'') as staffname,vc.type,st.color FROM vacancycalendar vc left join staff st on (vc.staffuuid=st.uuid) " + + "LEFT JOIN ( SELECT * FROM ( "; + var sqldays = new Array(); + + for (var cdate2=datefrom2;cdate2<=dateto2;cdate2.setDate(cdate2.getDate() +1)){ + if ((cdate2.getDay() != 0) && (cdate2.getDay() != 6)){ + sqldays.push ("SELECT date('" + cdate2.toISOString().substring(0,10) +"') as daydate"); + } + } + + sqlret += sqldays.join(' UNION ALL ') + " )) oph " + + "ON (oph.daydate BETWEEN vc.datefrom AND vc.dateto) " + + "WHERE oph.daydate IS NOT NULL and strftime('%w',oph.daydate) not in ('0') " + + "AND oph.daydate NOT IN ( SELECT vacancydate FROM vacancy WHERE vacancydateto IS NULL AND vacancydate BETWEEN '"+initdate.toISOString().substring(0,10) + "' AND '" + dateto2.toISOString().substring(0,10)+"') " + + ((where != '')?" AND " + where + " ":"") + + " GROUP BY vc.uuid ORDER BY st.uuid,vc.datefrom, vc.dateto; "; + return sqlret; +} + + +function set_calmonth(){ + pconfig.calmonth =$("#calmonth").val(); + parent.apppref.setpreference("calvacancy",pconfig); + load_calendar(); + +} + + +function onnextmonth() { +var xdate = parent.appdb.dbquery("select STRFTIME('%m.%Y',date('"+initdate.toISOString().substring(0,10)+"','+1 month')) as ndate"); +pconfig.calmonth = xdate.sqldata[0].ndate; +parent.apppref.setpreference("calvacancy", pconfig); +load_calendar(); + +} + +function onpreviousmonth() { +var xdate = parent.appdb.dbquery("select STRFTIME('%m.%Y',date('"+initdate.toISOString().substring(0,10)+"','-1 month')) as ndate"); +pconfig.calmonth = xdate.sqldata[0].ndate; +parent.apppref.setpreference("calvacancy", pconfig); +load_calendar(); + +} + + + + +function invertColor(hexTripletColor) { + var color = hexTripletColor; + color = color.substring(1); // remove # + color = parseInt(color, 16); // convert to integer + color = 0xFFFFFF ^ color; // invert three bytes + color = color.toString(16); // convert to hex + color = ("000000" + color).slice(-6); // pad with leading zeros + color = "#" + color; // prepend # + return color; +} + + + + function getdaterangesql(){ + var adays = []; + var bdate = new Date(initdate.getFullYear(), initdate.getMonth(), initdate.getDate()); + var bend = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 0); + for (var cdt = bdate; cdt <= bend; cdt.setDate(cdt.getDate() + 1)) { + if ((cdt.getDay() != 0)){ + adays.push("select date('" + cdt.toISOString().substring(0,10) + "') as daydate"); + } + + } + return adays.join(" UNION "); + } + + function get_vacancydays(){ + var bdate = new Date(initdate.getFullYear(), initdate.getMonth(), initdate.getDate()); + var bend = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 0); + var sql = "select dd.daydate,strftime('%d',dd.daydate) as strday,type from ( "+ + "select vacancydate, "+ + "case when vacancydateto is null then vacancydate else vacancydateto end as vacancydateto, "+ + "case when vacancydateto is null then 'vacancy' else 'holiday' end as type, "+ + "vacancydescription from vacancy where (vacancydate between '"+bdate.toISOString().substring(0,10)+"' and '"+bend.toISOString().substring(0,10)+"' and (vacancydateto >= '"+bdate.toISOString().substring(0,10)+"' or vacancydateto is null)) or (vacancydateto between '"+bdate.toISOString().substring(0,10)+"' and '"+bend.toISOString().substring(0,10)+"' and vacancydate < '"+bdate.toISOString().substring(0,10)+"') or ((vacancydate <= '"+bdate.toISOString().substring(0,10)+"') and (vacancydateto >= '"+bend.toISOString().substring(0,10)+"')) order by vacancydate,vacancydateto) vc "+ + "join ( "+ drsql +") dd "+ + "on (dd.daydate between vc.vacancydate and vc.vacancydateto) group by dd.daydate order by daydate;"; + var hdata = parent.appdb.dbquery(sql); + + hdata = hdata.sqldata; + var hs = {}; + for (var h in hdata){ + hs[hdata[h].strday] = hdata[h].type; + } + return hs; + } + + function getstaffvacancy() { + var bdate = new Date(initdate.getFullYear(), initdate.getMonth(), initdate.getDate()); + var bend = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 0); + var vacsql = "SELECT vc.uuid as uuid, dd.daydate AS daydate, vc.staffuuid as staffuuid, printf(\"%.2f\",CASE WHEN vc.timefrom=vc.timeto THEN CAST(st.weekhours/5.00 AS REAL) ELSE CAST((CAST(strftime(\"%s\",vc.timeto) AS REAL)- CAST(strftime(\"%s\",vc.timefrom) AS REAL))/3600.00 AS REAL) END) AS hours, vc.type as type" + + " from ( "+ + "select uuid,staffuuid, "+ + "case when datefrom < '"+bdate.toISOString().substring(0,10)+"' then '"+bdate.toISOString().substring(0,10)+"' else datefrom end as datefrom, "+ + "case when dateto > '"+bend.toISOString().substring(0,10)+"' then '"+bend.toISOString().substring(0,10)+"' else dateto end as dateto, "+ + "timefrom,timeto, type "+ + "from vacancycalendar where (datefrom is null or datefrom <= '"+bend.toISOString().substring(0,10)+"') and (dateto is null or dateto >= '"+bdate.toISOString().substring(0,10)+"')) vc "+ + "join ("+drsql+") dd "+ + "on (dd.daydate between vc.datefrom and vc.dateto) left join staff st on (st.uuid=vc.staffuuid and st.inactive is null); "; + + var vacdata = parent.appdb.dbquery(vacsql); + vacdata = vacdata.sqldata; + return vacdata; + } + + + + function getcolumndays(){ + var adays = []; + var wrs = []; + var firstmonday = new Date(initdate.getFullYear(), initdate.getMonth(), 1); + + var lastmonthday = new Date(initdate.getFullYear(), initdate.getMonth() + 1, 1); + + var lwr = -1; + + for (var cdt = firstmonday; cdt < lastmonthday; cdt.setDate(cdt.getDate() + 1)) { + if ((cdt.getDay() !== 0)){ + if ((lwr === -1) || (!wrs[cdt.getWeekNumber()])) { + wrs[cdt.getWeekNumber()] = 1; + }else { + wrs[cdt.getWeekNumber()] += 1; + } + lwr = cdt.getWeekNumber(); + adays.push(cdt.getDate()); + } + + } + + return [adays,wrs]; } \ No newline at end of file diff --git a/CGI/tmpl/app/creorga/module/childs/child.tt b/CGI/tmpl/app/creorga/module/childs/child.tt index 64f1643..f58d78a 100644 --- a/CGI/tmpl/app/creorga/module/childs/child.tt +++ b/CGI/tmpl/app/creorga/module/childs/child.tt @@ -1,798 +1,798 @@ - - - - - - - Détails - Enfant - - - - - - - - - - - - - - - - - -
-
- - - - - - - -
-
- -
- -
- -
-
- -
- -
- - -
- -
-
-
-
- - -
- -
-
- - -
- -
-
- -
- - -
- -
-
-
-
- - -
-
- - - - - - - - -
-
- -
-
- -
- -
- -
-
- -
-
- -
-
- -
-
- -
-
- -
- - -
-
-
- -
-
-
- - -
- - -
-
- -
- -
- - - -
-
-
- - -
-
-
-
- - -
- -
-
- - -
-
- -
- -
€
-
-
-
- -
- -
- -
-
- -
-
- - -
- -
- - - -
- -
-
- [% IF creorga.modules.child.filelist %] -
- - - - - -
- [% END %] -
-
-
- - - - - - - - - - - - - - - [% IF creorga.modules.child.filelist %] - - - - [% END %] -
- - - - - - - - - - - - - + + + + + + + Détails - Enfant + + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
+ +
+ +
+ +
+
+ +
+ +
+ + +
+ +
+
+
+
+ + +
+ +
+
+ + +
+ +
+
+ +
+ + +
+ +
+
+
+
+ + +
+
+ + + + + + + + +
+
+ +
+
+ +
+ +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ + +
+
+
+ +
+
+
+ + +
+ + +
+
+ +
+ +
+ + + +
+
+
+ + +
+
+
+
+ + +
+ +
+
+ + +
+
+ +
+ +
€
+
+
+
+ +
+ +
+ +
+
+ +
+
+ + +
+ +
+ + + +
+ +
+
+ [% IF creorga.modules.child.filelist %] +
+ + + + + +
+ [% END %] +
+
+
+ + + + + + + + + + + + + + + [% IF creorga.modules.child.filelist %] + + + + [% END %] +
+ + + + + + + + + + + + + diff --git a/CGI/tmpl/app/creorga/module/childs/index.tt b/CGI/tmpl/app/creorga/module/childs/index.tt index 9b65dca..728990f 100644 --- a/CGI/tmpl/app/creorga/module/childs/index.tt +++ b/CGI/tmpl/app/creorga/module/childs/index.tt @@ -1,82 +1,82 @@ - - - - - - - Enfants - - - - - - - - - - - - - -
- - -
- - - - - -
- - -
- - - - - - - - - - + + + + + + + Enfants + + + + + + + + + + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + + + + + diff --git a/CGI/tmpl/app/creorga/module/childs/js/child.js b/CGI/tmpl/app/creorga/module/childs/js/child.js index 4fed6f4..7ac0707 100644 --- a/CGI/tmpl/app/creorga/module/childs/js/child.js +++ b/CGI/tmpl/app/creorga/module/childs/js/child.js @@ -1,952 +1,952 @@ -//Source-code licensed under EUPL v1.2 ( Copyright 2019 By DKS s.à r.l. - Kilian Saffran - Luxembourg ) - -var pconfig = {}; -var delplan = null; -var delrefperson = null; -var delcautionstatus = null; -var delfile = null; -var wh = window.innerHeight-380; -var myfiles = []; -var cruuid = null; - -function validate_plan_proposals() { - if (($("childs_birthday").val() != '') && - ($("childs_entrydate").val() != '') && - ($("childs_exitdate").val() != '')) { - $("planproposal").css("visibility", "visible"); - } else { - $("planproposal").css("visibility", "hidden"); - } -} - -function initdata() { - - load_helpers(); - pconfig = getSearchParams(); - - var cname = parent.appdb.dbquery("select uuid from creche LIMIT 1;"); - cruuid = cname.sqldata[0].uuid; - pconfig.printlayout = 'child'; - var cdatasql = "select uuid,clientnumber,prename,surname,birthday,address,city,zip,country,entrydate,checkservicenumber,checkserviceexpiration,leavedate,nationality,nativelanguage,bankaccount,bankbic,cautionamount,cautionremark,remark ,infohealth from childs where uuid='" + pconfig.uuid + "';"; - var cdata = parent.appdb.dbquery(cdatasql); - cdata = cdata.sqldata[0]; - - for (var ci in cdata) { - if (document.getElementById("childs_" + ci)) { - if (document.getElementById("childs_" + ci).tagName == "TEXTAREA"){ - document.getElementById("childs_" + ci).value=cdata[ci]; - } - else { - document.getElementById("childs_" + ci).setAttribute('value', cdata[ci]); - } - } - } - var edt_height = wh; - loadtextareas(edt_height); - loadplantemplates(); - - if (pconfig && pconfig.activetab) { - $('a[href="#'+pconfig.activetab+'"]').tab('show'); - } - $('#childs_checkservicenumber').on('blur',function(e){ - var valchknum = $('#childs_checkservicenumber').val().replace(/\s/g,''); - if (valchknum.length < 10) { - return; - } - var xcheck = $('#childs_checkservicenumber').val().replace(/\s/g,'').substring(0,8); - - var bday = $('#childs_birthday').val(); - var xcheckdate = xcheck.substring(0,4)+'-' + xcheck.substring(4,6) + '-' + xcheck.substring(6,8); - if (bday != xcheckdate) { - $('#childs_birthday').val(xcheckdate); - setborderdates(); - } - setborderdates(); - }); - - $('#childs_birthday').on('blur',function(e){ - setborderdates(); - - }); - $('input[class^="time"]').on('keydown',function(e){ - var keycode = e.keyCode || e.which; - - if ( keycode == 9 ){ - - $(this).next('input').focus(); - - } - -}); -$('input[class^="time"]').focusout(function(e){ - savetime($(this)); -}); - -} - -function savetime(obj){ - var timeval = obj.val(); - if (timeval != ''){ - timeval = timeval.replace(/[^\d]/g, '') + "0000"; - timeval = timeval.substring(0,2) + ":" + timeval.substring(2,4); - $("#" + obj.attr('id')).val(timeval); - } - - -} - -function loadplantemplates(){ - //console.log('plantemplate'); - - var xdata = parent.appdb.dbquery("select uuid,templatename from planningtemplate order by templatename;"); - xdata = xdata.sqldata; - //console.log($("#plantemplates").html()); - $("#plantemplates").html(""); - $("#plantemplates").append('
  • multiple
  • '); - for (var i in xdata){ - - $("#plantemplates").append('
  • '+ xdata[i].templatename+'
  • '); - } - $("#plantemplates").append(''); - $("#plantemplates").append('
  • simple
  • '); - for (var i in xdata){ - //console.log("m: " + i); - $("#plantemplates").append('
  • '+ xdata[i].templatename+'
  • '); - } - $("#plantemplates").append('
  • Plan Vide
  • '); -} - -function setborderdates() { - var minamonths = parent.appdb.dbquery("select minage,maxage from creche LIMIT 1;"); - var bday = $('#childs_birthday').val(); - var centrydate = $('#childs_entrydate').val(); - var cleavedate = $('#childs_leavedate').val(); - var dtbday = new Date(bday); - var dtminentrydate = new Date(dtbday.getFullYear(),dtbday.getMonth() + parseInt(minamonths.sqldata[0].minage), dtbday.getDate()); - var today = new Date(); - if (centrydate < dtminentrydate.toISOString().substring(0,10) || (centrydate==cleavedate)) { - - if (dtminentrydate > today) { - $('#childs_entrydate').val(dtminentrydate.toISOString().substring(0,10)); - }else { - $('#childs_entrydate').val(today.toISOString().substring(0,10)); - } - - } - var dtmaxleavedate = new Date(dtbday.getFullYear(),dtbday.getMonth() + parseInt(minamonths.sqldata[0].maxage), dtbday.getDate()); - if (cleavedate > dtmaxleavedate.toISOString().substring(0,10) || (centrydate==cleavedate)) { - - $('#childs_leavedate').val(dtmaxleavedate.toISOString().substring(0,10)); - } - centrydate = $('#childs_entrydate').val(); - cleavedate = $('#childs_leavedate').val(); - parent.appdb.dbexec("update childs set birthday=date('"+bday+"'),entrydate=date('"+centrydate+"'),leavedate=date('"+cleavedate+"') where uuid='"+pconfig.uuid+"';"); - -} - -$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) { - var tn = e.target.toString(); - - pconfig.activetab = tn.substring(tn.lastIndexOf("#")+1); - - parent.apppref.setpreference("pageconfig.child",pconfig); - - if (pconfig.activetab == 'planning') { - load_table_presence(); - } - if (pconfig.activetab == 'parents') { - load_table_refperson(); - } - [% IF creorga.modules.child.filelist %] - if (pconfig.activetab == 'myfiles') { - load_table_files(); - } - [% END %] - if (pconfig.activetab == 'caution') { - load_table_caution(); - } - }); - -function load_table_presence() { - - - var plandatasql = "SELECT ' ' AS action, grp.grpname, strftime('%d.%m.%Y',plan.datebegin) || ' - ' || strftime('%d.%m.%Y',plan.dateend) AS planningdaterange,"; - var wda = ['mon','tue','wed','thu','fri','sat']; - var awda = []; - for (var w in wda){ - awda.push("CASE WHEN plan."+wda[w]+"timebegin != plan."+wda[w]+"timeend THEN plan."+wda[w]+"timebegin || ' - ' || plan."+wda[w]+"timeend ELSE '' END || CASE WHEN plan."+wda[w]+"lunch='1' THEN ' ()' ELSE '' END || case when plan."+wda[w]+"timebegin2 is not null and plan."+wda[w]+"timeend2 is not null then '
    ' || plan."+wda[w]+"timebegin2 || ' - ' || plan."+wda[w]+"timeend2 else '' end AS "+wda[w]+"planningtime"); - } - plandatasql += awda.join(',') + " FROM planning plan LEFT JOIN groups grp ON ( plan.groupuuid=grp.uuid) WHERE plan.childuuid='" + pconfig.uuid + "' ORDER BY plan.datebegin, plan.dateend;"; - - var plandata = parent.appdb.dbqueryarray(plandatasql); - - var headerdata = getlabels(plandata.sqlhead.join(",")); - - $("#tbl_planning").html(""); - var tblplan = $("#tbl_planning").dataTable({ - "language": { - "url": "../../../oldvendor/js/locale/datatable_fr.json" - }, - "data": plandata.sqldata, - "columns": headerdata, - "paging": false, - "ordering": true, - "scrollY": wh + "px", - "scrollCollapse": true, - "info": false, - "filter": false, - "destroy": true - }); - - -} - -function load_table_refperson() { - var labelx = getlabelswithkey('mother,father,tuteur,famillymember,famillyfriend'); - var areftypes = new Array(); - for (var l in labelx){ - areftypes.push("select '"+ labelx[l].title +"' as refname, '"+labelx[l].keyname+"' as reftype"); - } - var lblsql = areftypes.join(" UNION "); - var refperssql = "SELECT ' ' as action, rp.priority,rx.refname as reftype, coalesce(rp.surname,'') || ' ' || coalesce(rp.prename,'') as nameprename, case when rp.phone is not null then ': ' || rp.phone || '
    ' else '' end || case when rp.mobile is not null then': ' || rp.mobile || '
    ' else '' end || case when rp.workphone is not null then ': ' || rp.workphone || '
    ' else '' end || case when rp.email is not null then ': ' || email else '' end as phonemail, coalesce(rp.address,'') || '
    ' || coalesce(rp.zip,'') || ' ' || coalesce(rp.city,'') || '
    ' || coalesce(rp.country,'') as address, case when rp.authsubscriber then 'signataire:
    ' else '' end || coalesce(rp.job || '
    ','') as divers, coalesce(rp.remark ,'') as remark FROM refpersons rp join ("+ lblsql+") rx on (rp.reftype=rx.reftype) where rp.childuuid='" + pconfig.uuid + "';"; - var refpersondata = parent.appdb.dbqueryarray(refperssql); - - var headerdata = getlabels(refpersondata.sqlhead.join(",")); - $("#tbl_refperson").html(""); - var tblheader = ''; - for (var h in headerdata){ - if ((headerdata[h].keyname == 'act') && (headerdata[h].class.indexOf('action1btn') == -1)){ - headerdata[h].class +=" action1btn"; - } - tblheader += ''+ headerdata[h].title+''; - - } - tblheader += ''; - tblacc = null; - $("#tbl_refperson").append("" + tblheader + ""); - $("#tbl_referson").append(""); - for (var i in refpersondata.sqldata){ - var row = refpersondata.sqldata[i]; - var tr = ''; - for (var x in row){ - //jsdump(x); - if (x == 7){ - if (row[x] == null){ - tr += ""; - } else { - tr += ""+ htmlUnescape(row[x])+""; - } - } else { - if (row[x] == null){ - tr += ""; - }else { - tr += ""+ row[x]+""; - } - - } - } - tr += ""; - $("#tbl_refperson").append(tr); - - } - - - $("#tbl_refperson").dataTable({ - "language": { - "url": "../../../oldvendor/js/locale/datatable_fr.json" - }, - //"data": refpersondata.sqldata, - //"columns": headerdata, - "paging": false, - "scrollY": wh + "px", - "scrollCollapse": true, - "ordering": true, - "info": false, - "filter": false, - "destroy": true - }); -} - -function load_table_caution(){ - $("#tbl_cautionstatus").html(""); - var cautionsql = "select ' ' as action, '' || statusdate || '' || strftime('%d.%m.%Y',statusdate) as daydate, amount || ' €' as amount,statementnumber from cautionstatus where childuuid='"+ pconfig.uuid+"' order by statusdate DESC;"; - var caudata = parent.appdb.dbqueryarray(cautionsql); - var headerdata = getlabels("action,daydate,amount,statementnumber"); - $("#tbl_cautionstatus").dataTable({ - "language": { - "url": "../../../oldvendor/js/locale/datatable_fr.json" - }, - "data": caudata.sqldata, - "columns": headerdata, - "paging": false, - "scrollY": wh + "px", - "scrollCollapse": true, - "ordering": true, - "info": false, - "filter": false, - "destroy": true - }); -} - -function load_table_files(){ - $("#tbl_files").html(""); - var headerdata = getlabels("action,filename,description,daydate,filetype"); - $("#tbl_files").dataTable({ - "language": { - "url": "../../../oldvendor/js/locale/datatable_fr.json" - }, - //"data": refpersondata.sqldata, - "columns": headerdata, - "paging": false, - "scrollY": wh + "px", - "scrollCollapse": true, - "ordering": true, - "info": false, - "filter": false, - "destroy": true - }); -} - - -function dlg_cautionstatus(objuuid,type){ - //TODO: dlg_addcautionstatus - //dump("Caution: " + type +" " + objuuid.uuid + +"\n"); - if (type == 'upd' || type == 'ins') { - var caustatdata = parent.appdb.dbquery("select '0' as uuid,strftime('%d.%m.%Y',date('now')) as statusdate,0 as amount,null as statementnumber"); - if (type == 'upd') { - caustatdata = parent.appdb.dbquery("SELECT uuid, strftime('%d.%m.%Y',statusdate) as statusdate, amount, statementnumber FROM cautionstatus where uuid='" + objuuid.uuid + "';"); - } - $("#frmeditcautionstatus #uuid").val(objuuid.uuid); - caustatdata = caustatdata.sqldata[0]; - //setrefpersontypes(); - - for (var r in caustatdata) { - if (document.getElementById(r)) { - - document.getElementById(r).value = caustatdata[r]; - - } - } - $("#edit_cautionstatus").modal('show'); - } else if (type == 'del') { - delcautionstatus= objuuid.uuid; - confirm_delete_cautionstatus(); - } -} - -function dlg_refperson(uuid, type) { - if (type == 'upd' || type == 'ins') { - var refpdata = parent.appdb.dbquery("SELECT null as reftype, null as surname, null as prename, address, null as phone, null as mobile, null as job, null as email, null as workphone, zip, country, city, '0' as authsubscriber, null as uuid,lastmodified FROM childs where uuid='" + pconfig.uuid +"' union SELECT null as reftype, surname, null as prename, address, null as phone, null as mobile, null as job, null as email, null as workphone, zip, country, city, '0' as authsubscriber, null as uuid,lastmodified FROM refpersons where childuuid='"+pconfig.uuid +"' order by lastmodified DESC "); - if (type == 'upd') { - refpdata = parent.appdb.dbquery("SELECT reftype, surname, prename, address, phone, mobile, job, email, workphone, zip, country, city, authsubscriber, uuid FROM refpersons where uuid='" + uuid.uuid + "';"); - } - $("#frmeditrefperson #uuid").val(uuid.uuid); - refpdata = refpdata.sqldata[0]; - setrefpersontypes(); - - for (var r in refpdata) { - if (document.getElementById(r)) { - if ($("#" + r).is(':checkbox')) { - if (refpdata[r] == '1') { - $("#" + r).prop("checked", true); - } else { - $("#" + r).prop("checked", false); - } - } else { - document.getElementById(r).value = refpdata[r]; - } - } - } - $("#edit_refperson").modal('show'); - } else if (type == 'del') { - delrefperson = uuid.uuid; - confirm_delete_refperson(); - } -} - -function setplanning_groups() { - var plangrps = parent.appdb.dbquery("select uuid,grpname from groups order by minage,maxage;"); - plangrps = plangrps.sqldata; - $("#groupuuid").html(''); - $("#groupuuid").append(''); - for (var g in plangrps) { - $("#groupuuid").append(''); - } -} - -function setrefpersontypes() { -var labelx = getlabelswithkey('mother,father,tuteur,famillymember,famillyfriend'); - var areftypes = new Array(); - $("#reftype").html(''); - for (var l in labelx){ - $("#reftype").append(''); - } -} - -function dlg_planning(uuid, type, planuuid) { - //console.log("dlg_planning" + uuid + " " + type + " " + planuuid); - if (type == 'upd') { - check_birthdate_valid(); - setplanning_groups(); - var plandata = parent.appdb.dbquery("SELECT datebegin, dateend, montimebegin, montimeend, monlunch, tuetimebegin, tuetimeend, tuelunch, wedtimebegin, wedtimeend, wedlunch, thutimebegin, thutimeend, thulunch, fritimebegin, fritimeend, frilunch, sattimebegin, sattimeend, satlunch, suntimebegin, suntimeend, sunlunch, childuuid, uuid, groupuuid, montimebegin2, montimeend2, tuetimebegin2, tuetimeend2, wedtimebegin2, wedtimeend2, thutimebegin2, thutimeend2, fritimebegin2, fritimeend2, sattimebegin2, sattimeend2, suntimebegin2, suntimeend2 FROM planning where uuid='" + uuid.uuid + "';"); - plandata = plandata.sqldata[0]; - - for (var p in plandata) { - if (document.getElementById(p)) { - if ($("#" + p).is(':checkbox')) { - if (plandata[p] == '1') { - $("#" + p).prop("checked", true); - } else { - $("#" + p).prop("checked", false); - } - } else { - if ((p.substr(p.length-1) == "2") && (p.indexOf("time") != -1) && (plandata[p] != "")){ - $('#' + p.substr(0,3) + "time" + p.substr(p.length-1)).show(); - } - if ((p.indexOf("time") != -1) && (plandata[p] == "")) { - document.getElementById(p).value = ""; - } else { - document.getElementById(p).value = plandata[p]; - } - } - } - } - $("#edit_planning").modal('show'); - } - else if (type == 'del') { - delplan = uuid.uuid; - //"Launch confirm delete\n"); - confirm_delete_planning(); - - } - else if (type == 'delall') { - //delplan = pconfig.uuid; - //"Launch confirm all delete\n"); - confirm_delete_allplanning(); - - } - else if (type == 'ins') { - $("#frmeditplanning #uuid").val("0"); - check_birthdate_valid(); - setplanning_groups(); - var timesql = "SELECT strftime('%d.%m.%Y',date('now')) as datebegin,strftime('%d.%m.%Y',date('now','+6 month')) as dateend ,null as montimebegin, null as montimeend, null as tuetimebegin, null as tuetimeend, null as wedtimebegin, null as wedtimeend, null as thutimebegin, null as thutimeend, null as fritimebegin, null as fritimeend, null as sattimebegin, null as sattimeend;"; - if (planuuid){ - timesql = "SELECT strftime('%d.%m.%Y',date('now')) as datebegin,strftime('%d.%m.%Y',date('now','+6 month')) as dateend ,montimebegin, montimeend, tuetimebegin, tuetimeend, wedtimebegin, wedtimeend, thutimebegin, thutimeend, fritimebegin, fritimeend, montimebegin2,montimeend2,tuetimebegin2, tuetimeend2, wedtimebegin2, wedtimeend2, thutimebegin2, thutimeend2, fritimebegin2, fritimeend2, sattimebegin2, sattimeend2 FROM planningtemplate where uuid='"+planuuid+"';"; - } - - var timeplan = parent.appdb.dbquery(timesql); - - timeplan = timeplan.sqldata[0]; - $("#frmeditplanning #datebegin").val(timeplan.datebegin); - $("#frmeditplanning #dateend").val(timeplan.dateend); - for (var t in timeplan) { - if ((t.indexOf("time") != -1)) { - var tx = timeplan[t]; - if (tx == "00:00" || tx== null) { - tx = ""; - } - - $("#" + t).val(tx); - } - } - $("#frmeditplanning :input").each(function() { - var input = $(this); - if (input.attr("type") == "checkbox") { - input.prop('checked', true); - } - - }); - - $("#edit_planning").modal('show'); - } - else if (type == 'insproposal') { - check_birthdate_valid(); - setplanning_groups(); - var curplan = parent.appdb.dbquery("select count(*) as cnt,date(max(dateend),'+1 day') as maxdateto,(select birthday from childs where childs.uuid='" + pconfig.uuid + "') as birthday,(select entrydate from childs where childs.uuid='" + pconfig.uuid+"') as entrydate,(select leavedate from childs where childs.uuid='" + pconfig.uuid+"') as leavedate,date('now') as today from planning pl join childs ch on (ch.uuid=pl.childuuid) where pl.childuuid='" + pconfig.uuid + "'"); - curplan = curplan.sqldata[0]; - //dump("INSPROPOSAL:" + JSON.stringify(curplan) + "\n"); - var plansql = ""; - - if ((curplan.cnt == 0) || ( planuuid)){ - //dump(curplan.today +"<-->" + curplan.birthday + "<-->" + curplan.entrydate + "\n") ; - - if (curplan.cnt > 0){ - curplan.entrydate=curplan.maxdateto; - } - //if (curplan.today < curplan.entrydate) { - - // plansql = "select date('"+ curplan.entrydate+"') as datebegin,date(birthday,'+' || maxage || ' months','-1 day') as dateend, pl.uuid as groupuuid, montimeopen as montimebegin,montimeclose as montimeend,tuetimeopen as tuetimebegin,tuetimeclose as tuetimeend,wedtimeopen as wedtimebegin,wedtimeclose as wedtimeend,thutimeopen as thutimebegin,thutimeclose as thutimeend,fritimeopen as fritimebegin,fritimeclose as fritimeend,null as montimebegin2, null as montimeend2, null as tuetimebegin2, null as tuetimeend2, null as wedtimebegin2, null as wedtimeend2, null as thutimebegin2, null as thutimeend2, null as fritimebegin2, null as fritimeend2 from ( select uuid,minage,maxage,grpname,(select birthday from childs where childs.uuid='" + pconfig.uuid + "') as birthday from groups) pl join workinghours wk on (wk.datestart <= datebegin) group by groupuuid order by wk.datestart DESC,minage,maxage;"; - // if (planuuid){ - //dump("today < entrydate PLANUUID: " + planuuid +"\n"); - // } - //} else { - //dump("INSPROPOSAL 2:" + JSON.stringify(curplan) + "\n"); - //plansql = "select * from ( select CASE WHEN DATE(birthday,'+' || minage || ' months') < entrydate THEN entrydate ELSE DATE(birthday,'+' || minage || ' months') END AS datebegin, case when date(birthday,'+' || maxage || ' months') > leavedate then leavedate else date(birthday,'+' || maxage || ' months','-1 day') end as dateend, pl.uuid as groupuuid, montimeopen as montimebegin,montimeclose as montimeend,tuetimeopen as tuetimebegin,tuetimeclose as tuetimeend,wedtimeopen as wedtimebegin,wedtimeclose as wedtimeend,thutimeopen as thutimebegin,thutimeclose as thutimeend,fritimeopen as fritimebegin,fritimeclose as fritimeend,sattimeopen as sattimebegin,sattimeclose as sattimeend,null as montimebegin2, null as montimeend2, null as tuetimebegin2, null as tuetimeend2, null as wedtimebegin2, null as wedtimeend2, null as thutimebegin2, null as thutimeend2, null as fritimebegin2, null as fritimeend2, null as sattimeend2,1 as monlunch,1 as tuelunch, 1 as wedlunch, 1 as thulunch, 1 as frilunch, 1 as satlunch from ( select uuid,minage,maxage,grpname,(select birthday from childs where childs.uuid='" + pconfig.uuid + "') as birthday,date('" + curplan.entrydate +"') AS entrydate,date('" + curplan.leavedate +"') AS leavedate from groups) pl join workinghours wk on (wk.datestart <= datebegin) group by groupuuid order by wk.datestart DESC,minage,maxage ) where datebegin!=dateend and dateend >= datebegin and order by datebegin,dateend;"; - if (planuuid){ - plansql = "select * from ( select CASE WHEN DATE(birthday,'+' || minage || ' months') < entrydate THEN entrydate ELSE DATE(birthday,'+' || minage || ' months') END AS datebegin, case when date(birthday,'+' || maxage || ' months') > leavedate then leavedate else date(birthday,'+' || maxage || ' months','-1 day') end as dateend, pl.uuid as groupuuid, plt.* from ( select uuid,minage,maxage,grpname,'"+pconfig.uuid+"' as chuuid,(select birthday from childs where childs.uuid='" + pconfig.uuid + "') as birthday, date('"+ curplan.entrydate+"') AS entrydate,date('" + curplan.leavedate +"') AS leavedate from groups) pl join workinghours wk on (wk.datestart <= datebegin) join (select '" + pconfig.uuid + "' as chuuid,* from planningtemplate where planningtemplate.uuid='"+planuuid+"') plt on (plt.chuuid=pl.chuuid) group by groupuuid order by wk.datestart DESC,minage,maxage ) where datebegin!=dateend and dateend >= datebegin order by datebegin,dateend;"; - //console.log(plansql); - var plandata = parent.appdb.dbquery(plansql); - - for (var pl in plandata.sqldata) { - - var inssql = "INSERT INTO planning (uuid,childuuid, groupuuid,datebegin, dateend, montimebegin, montimeend, tuetimebegin, tuetimeend, wedtimebegin, wedtimeend, thutimebegin,thutimeend, fritimebegin, fritimeend,sattimebegin, sattimeend,montimebegin2, montimeend2, tuetimebegin2, tuetimeend2, wedtimebegin2, wedtimeend2, thutimebegin2,thutimeend2, fritimebegin2, fritimeend2,sattimebegin2, sattimeend2, monlunch, tuelunch,wedlunch,thulunch,frilunch,satlunch ) VALUES ("; - inssql += "'" + parent.appdb.generate_uuid() + "',"; - inssql += "'" + pconfig.uuid + "',"; - inssql += "'" + plandata.sqldata[pl].groupuuid + "',"; - inssql += "'" + plandata.sqldata[pl].datebegin + "',"; - inssql += "'" + plandata.sqldata[pl].dateend + "',"; - inssql += "'" + plandata.sqldata[pl].montimebegin + "',"; - inssql += "'" + plandata.sqldata[pl].montimeend + "',"; - inssql += "'" + plandata.sqldata[pl].tuetimebegin + "',"; - inssql += "'" + plandata.sqldata[pl].tuetimeend + "',"; - inssql += "'" + plandata.sqldata[pl].wedtimebegin + "',"; - inssql += "'" + plandata.sqldata[pl].wedtimeend + "',"; - inssql += "'" + plandata.sqldata[pl].thutimebegin + "',"; - inssql += "'" + plandata.sqldata[pl].thutimeend + "',"; - inssql += "'" + plandata.sqldata[pl].fritimebegin + "',"; - inssql += "'" + plandata.sqldata[pl].fritimeend + "',"; - inssql += "'" + plandata.sqldata[pl].sattimebegin + "',"; - inssql += "'" + plandata.sqldata[pl].sattimeend + "',"; - inssql += ((plandata.sqldata[pl].montimebegin2 !== "")?"'" + plandata.sqldata[pl].montimebegin2 + "'":'null') +","; - inssql += ((plandata.sqldata[pl].montimeend2 !== "")?"'" + plandata.sqldata[pl].montimeend2 + "'":'null') +","; - inssql += ((plandata.sqldata[pl].tuetimebegin2 !== "")?"'" + plandata.sqldata[pl].tuetimebegin2 + "'":'null') +","; - inssql += ((plandata.sqldata[pl].tuetimeend2 !== "")?"'" + plandata.sqldata[pl].tuetimeend2 + "'":'null') +","; - inssql += ((plandata.sqldata[pl].wedtimebegin2 !== "")?"'" + plandata.sqldata[pl].wedtimebegin2 + "'":'null') +","; - inssql += ((plandata.sqldata[pl].wedtimeend2 !== "")?"'" + plandata.sqldata[pl].wedtimeend2 + "'":'null') +","; - inssql += ((plandata.sqldata[pl].thutimebegin2 !== "")?"'" + plandata.sqldata[pl].thutimebegin2 + "'":'null') +","; - inssql += ((plandata.sqldata[pl].thutimeend2 !== "")?"'" + plandata.sqldata[pl].thutimeend2 + "'":'null') +","; - inssql += ((plandata.sqldata[pl].fritimebegin2 !== "")?"'" + plandata.sqldata[pl].fritimebegin2 + "'":'null') +","; - inssql += ((plandata.sqldata[pl].fritimeend2 !== "")?"'" + plandata.sqldata[pl].fritimeend2 + "'":'null') +","; - inssql += ((plandata.sqldata[pl].sattimebegin2 !== "")?"'" + plandata.sqldata[pl].sattimebegin2 + "'":'null') +","; - inssql += ((plandata.sqldata[pl].sattimeend2 !== "")?"'" + plandata.sqldata[pl].sattimeend2 + "'":'null') +","; - inssql += ((plandata.sqldata[pl].monlunch == 1)?"'1'":'null') +","; - inssql += ((plandata.sqldata[pl].tuelunch == 1)?"'1'":'null') +","; - inssql += ((plandata.sqldata[pl].wedlunch == 1)?"'1'":'null') +","; - inssql += ((plandata.sqldata[pl].thulunch == 1)?"'1'":'null') +","; - inssql += ((plandata.sqldata[pl].frilunch == 1)?"'1'":'null') +","; - inssql += ((plandata.sqldata[pl].satlunch == 1)?"'1'":'null') +""; - inssql += ");"; - - parent.appdb.dbexec(inssql); - } - } - //jsdump("plan SQL: " + plansql +"\n"); - //if (curplan.cnt > 0){ - // plansql = plansql.replace(/%%WHERE%%/,"date('" + curplan.maxdateto+"') between datebegin and dateend or datebegin > date('" + curplan.maxdateto+"') "); - //}else { - // plansql = plansql.replace(/%%WHERE%%/,""); - //} - - //} - //dump("PLANSQL: " +plansql + "\n"); - - - } - if ((curplan.cnt >= 1) && (!planuuid)){ - - var plansql = "select * from ( select case when date(entrydate) < date(nextdate) then nextdate else entrydate end as datebegin, case when entrydate < date(nextdate) then date(nextdate) else date(birthday,'+' || maxage || ' months','-1 day') end as dateend, pl.uuid as groupuuid,birthday,nextdate,grpname from ( select uuid,minage,maxage,grpname, (select entrydate from childs where childs.uuid='" + pconfig.uuid + "') as entrydate ,(select birthday from childs where childs.uuid='" + pconfig.uuid + "') as birthday, (select date(max(dateend),'+1 day') from planning where planning.childuuid='" + pconfig.uuid + "') as nextdate from groups) pl group by groupuuid order by minage,maxage ) where datebegin encodeparam($("#frmeditplanning #dateend").val(),'date')){ - errormsg("Erreur en dates!","La date de début ne peut pas être supérieur à la date de fin!\n"); - return false; - } - - if (($("#frmeditplanning #montimebegin").val() > $("#frmeditplanning #montimeend").val()) || - ($("#frmeditplanning #tuetimebegin").val() > $("#frmeditplanning #tuetimeend").val()) || - ($("#frmeditplanning #wedtimebegin").val() > $("#frmeditplanning #wedtimeend").val()) || - ($("#frmeditplanning #thutimebegin").val() > $("#frmeditplanning #thutimeend").val()) || - ($("#frmeditplanning #fritimebegin").val() > $("#frmeditplanning #fritimeend").val()) || - ($("#frmeditplanning #sattimebegin").val() > $("#frmeditplanning #sattimeend").val()) || - ($("#frmeditplanning #montimebegin2").val() > $("#frmeditplanning #montimeend2").val() && $("#montime2").is(':visible')) || - ($("#frmeditplanning #tuetimebegin2").val() > $("#frmeditplanning #tuetimeend2").val() && $("#tuetime2").is(':visible')) || - ($("#frmeditplanning #wedtimebegin2").val() > $("#frmeditplanning #wedtimeend2").val() && $("#wedtime2").is(':visible')) || - ($("#frmeditplanning #thutimebegin2").val() > $("#frmeditplanning #thutimeend2").val() && $("#thutime2").is(':visible')) || - ($("#frmeditplanning #fritimebegin2").val() > $("#frmeditplanning #fritimeend2").val() && $("#fritime2").is(':visible')) || - ($("#frmeditplanning #sattimebegin2").val() > $("#frmeditplanning #sattimeend2").val() && $("#sattime2").is(':visible')) || - ($("#frmeditplanning #montimeend").val() > $("#frmeditplanning #montimebegin2").val() && $("#montime2").is(':visible')) || - ($("#frmeditplanning #tuetimeend").val() > $("#frmeditplanning #tuetimebegin2").val() && $("#tuetime2").is(':visible')) || - ($("#frmeditplanning #wedtimeend").val() > $("#frmeditplanning #wedtimebegin2").val() && $("#wedtime2").is(':visible')) || - ($("#frmeditplanning #thutimeend").val() > $("#frmeditplanning #thutimebegin2").val() && $("#thutime2").is(':visible')) || - ($("#frmeditplanning #fritimeend").val() > $("#frmeditplanning #fritimebegin2").val() && $("#fritime2").is(':visible')) || - ($("#frmeditplanning #sattimeend").val() > $("#frmeditplanning #sattimebegin2").val() && $("#sattime2").is(':visible')) - ) - { - errormsg("Erreur dans les heures d'entrée sortie!","l'heure d'entée ne peut pas être suppérieur à l'heure de sortie
    et
    une deuxième heure d'entrée d'un jour ne peut pas être inférieur à l'heure de la première sortie du jour!"); - return false; - } - return true; -} - -function save_planning() { - - var sql1 = new Array(); - var sql2 = new Array(); - - if (!check_planning()){ - return; - }; - var pluuid = null; - sql1.push("childuuid"); - - sql2.push("'" + pconfig.uuid + "'"); - $("#frmeditplanning :input").each(function() { - var input = $(this); - if (input.attr("id")) { - sql1.push(input.attr("id")); - if (input.attr("id") == 'uuid') { - if (input.val() == "" || input.val() == "0") { - sql2.push("'" + parent.appdb.generate_uuid() + "'"); - } else { - sql2.push("'" + input.val() + "'"); - pluuid = input.val(); - } - } else if (input.attr("type") == "checkbox") { - sql2.push(((input.is(':checked')) ? "'1'" : "'0'")); - } else { - var ival = encodeparam(input.val(),input.attr('type')); - if ((input.attr("id").substring(input.attr("id").length-1) == "2") && - $("#" + input.attr("id").substring(0,3) +"time" + input.attr("id").substring(input.attr("id").length-1)).is(":hidden")) { - ival = 'null'; - } - if (ival == "''") { - ival='null'; - } - sql2.push(ival); - - } - } - - }); - - var sdatebegin = encodeparam($("#frmeditplanning #datebegin").val(),'date'); - var sdateend = encodeparam($("#frmeditplanning #dateend").val(),'date'); - var checkdatereplace = parent.appdb.dbquery("select uuid from planning where datebegin >= "+sdatebegin+" and dateend <= "+sdateend+" and childuuid='"+pconfig.uuid+"';"); - checkdatereplace = checkdatereplace.sqldata; - //console.log(checkdatereplace); - if (checkdatereplace && Object.keys(checkdatereplace).length > 0) { - - var ruuid = new Array(); - for (var i in checkdatereplace){ - ruuid.push("'"+ checkdatereplace[i].uuid +"'"); - } - parent.appdb.dbexec("DELETE FROM planning where uuid in (" + ruuid.join(",") + ");"); - } - var checkdatesplit = parent.appdb.dbquery("select uuid,dateend from planning where datebegin <= "+sdatebegin+" and dateend >= "+sdateend+" and childuuid='"+pconfig.uuid+"';"); - checkdatesplit = checkdatesplit.sqldata; - if (checkdatesplit && Object.keys(checkdatesplit).length == 1) { - - var newuuid = parent.appdb.generate_uuid(); - parent.appdb.dbexec("INSERT INTO planning (datebegin, dateend, montimebegin, montimeend, monlunch, tuetimebegin, tuetimeend, tuelunch, wedtimebegin, wedtimeend, wedlunch, thutimebegin, thutimeend, thulunch, fritimebegin, fritimeend, frilunch, sattimebegin, sattimeend, satlunch, suntimebegin, suntimeend, sunlunch, childuuid, uuid, groupuuid, montimebegin2, montimeend2, tuetimebegin2, tuetimeend2, wedtimebegin2, wedtimeend2, thutimebegin2, thutimeend2, fritimebegin2, fritimeend2, sattimebegin2, sattimeend2, suntimebegin2, suntimeend2) SELECT date("+sdateend+",'+1 day'), dateend, montimebegin, montimeend, monlunch, tuetimebegin, tuetimeend, tuelunch, wedtimebegin, wedtimeend, wedlunch, thutimebegin, thutimeend, thulunch, fritimebegin, fritimeend, frilunch, sattimebegin, sattimeend, satlunch, suntimebegin, suntimeend, sunlunch, childuuid, '"+newuuid+"', groupuuid, montimebegin2, montimeend2, tuetimebegin2, tuetimeend2, wedtimebegin2, wedtimeend2, thutimebegin2, thutimeend2, fritimebegin2, fritimeend2, sattimebegin2, sattimeend2, suntimebegin2, suntimeend2 FROM planning where uuid='"+ checkdatesplit[0].uuid +"';"); - parent.appdb.dbexec("UPDATE planning SET dateend=date("+sdatebegin+",'-1 day') where uuid='"+checkdatesplit[0].uuid+"'"); - } - - var checkdatefrom = parent.appdb.dbquery("select uuid from planning where datebegin between "+sdatebegin+" and "+sdateend+" and childuuid='"+pconfig.uuid+"';"); - var checkdateto = parent.appdb.dbquery("select uuid from planning where dateend between "+sdatebegin+" and "+sdateend+" and childuuid='"+pconfig.uuid+"';"); - if (checkdatefrom.sqldata && Object.keys(checkdatefrom.sqldata).length == 1) { - - parent.appdb.dbexec("update planning set datebegin=date("+encodeparam($("#frmeditplanning #dateend").val(),'date')+",'+1 day') where uuid='"+checkdatefrom.sqldata[0].uuid+"'"); - } - if (checkdateto.sqldata && Object.keys(checkdateto.sqldata).length == 1) { - - parent.appdb.dbexec("update planning set dateend=date("+encodeparam($("#frmeditplanning #datebegin").val(),'date')+",'-1 day') where uuid='"+checkdateto.sqldata[0].uuid+"'"); - } - if (pluuid) { - - parent.appdb.dbexec("DELETE FROM planning where uuid='" + pluuid + "'"); - } - var inssql = "INSERT INTO planning (" + sql1.join(',') + ") VALUES (" + sql2.join(',') + ");"; - parent.appdb.dbexec(inssql); - load_table_presence(); - $("#edit_planning").modal('hide'); -} - -function save_refperson() { - - var sql1 = new Array(); - var sql2 = new Array(); - - sql1.push("childuuid"); - sql2.push("'" + pconfig.uuid + "'"); - var refuuid= null; - $("#frmeditrefperson :input").each(function() { - var input = $(this); - - if (input.attr("id")) { - sql1.push(input.attr("id")); - if (input.attr("id") == 'uuid') { - if (input.val() == "" || input.val() == "0") { - sql2.push("'" + parent.appdb.generate_uuid() + "'"); - } else { - sql2.push("'" + input.val() + "'"); - } - if (input.val() != "0") { - refuuid=input.val(); - } - } else if (input.attr("type") == "checkbox") { - - sql2.push(((input.is(':checked')) ? "'1'" : "'0'")); - - } else { - var ival = input.val(); - if (ival == "''") { - ival = 'null'; - } - sql2.push(encodeparam(ival,'text')); - - } - } - }); - - if (refuuid) { - parent.appdb.dbexec("DELETE FROM refpersons where uuid='" + refuuid + "'"); - } - var inssql = "INSERT INTO refpersons (" + sql1.join(',') + ") VALUES (" + sql2.join(',') + ");"; - parent.appdb.dbexec(inssql); - - load_table_refperson(); - - $("#edit_refperson").modal('hide'); - - return false; -} - -function save_cautionstatus(){ - var sql1 = new Array(); - var sql2 = new Array(); - - sql1.push("childuuid"); - sql2.push("'" + pconfig.uuid + "'"); - var cauuuid= null; - $("#frmeditcautionstatus :input").each(function() { - var input = $(this); - - if (input.attr("id")) { - sql1.push(input.attr("id")); - if (input.attr("id") == 'uuid') { - //dump("caution uuid=" + input.val() +"\n"); - if (input.val() === "" || input.val() === "0") { - sql2.push("'" + parent.appdb.generate_uuid() + "'"); - } else { - sql2.push("'" + input.val() + "'"); - } - if (input.val() != "0") { - cauuuid=input.val(); - } - } else { - var ival = encodeparam(input.val(),input.attr('type')); - if (ival == "''") { - ival = 'null'; - } - sql2.push(ival); - - } - } - }); - - if (cauuuid) { - parent.appdb.dbexec("DELETE FROM cautionstatus where uuid='" + cauuuid + "'"); - } - var inssql = "INSERT INTO cautionstatus (" + sql1.join(',') + ") VALUES (" + sql2.join(',') + ");"; - //dump(inssql + "\n"); - parent.appdb.dbexec(inssql); - - load_table_caution(); - - $("#edit_cautionstatus").modal('hide'); - - return false; -} - -function confirm_delete_cautionstatus() { - $("#confirm_delete_cautionstatus").modal('show'); - return false; -} - - -function confirm_delete_planning() { - $("#confirm_delete_planning").modal('show'); - return false; -} - -function confirm_delete_allplanning() { - $("#confirm_delete_allplanning").modal('show'); - return false; -} - -function confirm_delete_refperson() { - $("#confirm_delete_refperson").modal('show'); - return false; -} - -function delete_planning() { - - parent.appdb.dbexec("DELETE FROM planning where uuid='" + delplan + "'"); - delplan = null; - load_table_presence(); - - $("#confirm_delete_planning").modal('hide'); - - return false; -} - -function delete_allplanning() { - - parent.appdb.dbexec("DELETE FROM planning where childuuid='" + pconfig.uuid + "'"); - delplan = null; - load_table_presence(); - - $("#confirm_delete_allplanning").modal('hide'); - - return false; -} - -function delete_refperson() { - - parent.appdb.dbexec("DELETE FROM refpersons where uuid='" + delrefperson + "'"); - delrefperson = null; - load_table_refperson(); - - $("#confirm_delete_refperson").modal('hide'); - - return false; -} - -function delete_cautionstatus() { - - parent.appdb.dbexec("DELETE FROM cautionstatus where uuid='" + delcautionstatus + "'"); - delcautionstatus = null; - load_table_caution(); - - $("#confirm_delete_cautionstatus").modal('hide'); - - return false; -} - -function display_tblrow(trid) { - $('#' + trid + "time2").show(); - -} - -function hide_tblrow(trid) { - $('#' + trid).hide(); -} - -[% IF creorga.modules.child.filelist %] - -function load_table_files(){ - - myfiles = system.getChildFiles(cruuid,pconfig.uuid); - - var atbody = []; - for (var i=0;i '); - row.push(fname); - atbody.push(row); - } - - } - - $("#tbl_files").html(""); - var headerdata = getlabels("action,description"); - $("#tbl_files").html(""); - $("#tbl_files").dataTable({ - "language": { - "url": "../../../oldvendor/js/locale/datatable_fr.json" - }, - "data": atbody, - "columns": headerdata, - "paging": false, - "scrollY": wh + "px", - "scrollCollapse": true, - "ordering": true, - "info": false, - "filter": false, - "destroy": true - }); -} - - - -function preview_file(fi){ - //dump("open file: " + fi + "\n"); - //var ff = system.openFile(fi); - //return false; -} - -function delete_report(fi) { - //dump("delete" + fi + " ->"+ myfiles[delfile].path+"\n"); - - //delfile = fi; - //dump(fi + "\n"); - if (confirm("êtes vous sûre de supprimer ce fichier?")){ - OS.File.remove(fi); - setTimeout(function(){load_table_files();},3000); - } - - return false; - -} - - - - -function dlg_file(){ - $("#edit_file").modal('show'); - return false; -} - - -function save_file(){ - // var file = $("#frmeditfile #file").val(); - // var path = FileUtils.File(curcfg.path.local + system.sep() +"childs" + system.sep() +cruuid + system.sep() + pconfig.uuid); - // var newlocation= path.path + system.sep() + system.getFileName(file); - // OS.File.copy(file, newlocation); - // setTimeout(function(){load_table_files();$("#edit_file").modal('hide');},3000); -} -[% END %] - +//Source-code licensed under EUPL v1.2 ( Copyright 2019 By DKS s.à r.l. - Kilian Saffran - Luxembourg ) + +var pconfig = {}; +var delplan = null; +var delrefperson = null; +var delcautionstatus = null; +var delfile = null; +var wh = window.innerHeight-380; +var myfiles = []; +var cruuid = null; + +function validate_plan_proposals() { + if (($("childs_birthday").val() != '') && + ($("childs_entrydate").val() != '') && + ($("childs_exitdate").val() != '')) { + $("planproposal").css("visibility", "visible"); + } else { + $("planproposal").css("visibility", "hidden"); + } +} + +function initdata() { + + load_helpers(); + pconfig = getSearchParams(); + + var cname = parent.appdb.dbquery("select uuid from creche LIMIT 1;"); + cruuid = cname.sqldata[0].uuid; + pconfig.printlayout = 'child'; + var cdatasql = "select uuid,clientnumber,prename,surname,birthday,address,city,zip,country,entrydate,checkservicenumber,checkserviceexpiration,leavedate,nationality,nativelanguage,bankaccount,bankbic,cautionamount,cautionremark,remark ,infohealth from childs where uuid='" + pconfig.uuid + "';"; + var cdata = parent.appdb.dbquery(cdatasql); + cdata = cdata.sqldata[0]; + + for (var ci in cdata) { + if (document.getElementById("childs_" + ci)) { + if (document.getElementById("childs_" + ci).tagName == "TEXTAREA"){ + document.getElementById("childs_" + ci).value=cdata[ci]; + } + else { + document.getElementById("childs_" + ci).setAttribute('value', cdata[ci]); + } + } + } + var edt_height = wh; + loadtextareas(edt_height); + loadplantemplates(); + + if (pconfig && pconfig.activetab) { + $('a[href="#'+pconfig.activetab+'"]').tab('show'); + } + $('#childs_checkservicenumber').on('blur',function(e){ + var valchknum = $('#childs_checkservicenumber').val().replace(/\s/g,''); + if (valchknum.length < 10) { + return; + } + var xcheck = $('#childs_checkservicenumber').val().replace(/\s/g,'').substring(0,8); + + var bday = $('#childs_birthday').val(); + var xcheckdate = xcheck.substring(0,4)+'-' + xcheck.substring(4,6) + '-' + xcheck.substring(6,8); + if (bday != xcheckdate) { + $('#childs_birthday').val(xcheckdate); + setborderdates(); + } + setborderdates(); + }); + + $('#childs_birthday').on('blur',function(e){ + setborderdates(); + + }); + $('input[class^="time"]').on('keydown',function(e){ + var keycode = e.keyCode || e.which; + + if ( keycode == 9 ){ + + $(this).next('input').focus(); + + } + +}); +$('input[class^="time"]').focusout(function(e){ + savetime($(this)); +}); + +} + +function savetime(obj){ + var timeval = obj.val(); + if (timeval != ''){ + timeval = timeval.replace(/[^\d]/g, '') + "0000"; + timeval = timeval.substring(0,2) + ":" + timeval.substring(2,4); + $("#" + obj.attr('id')).val(timeval); + } + + +} + +function loadplantemplates(){ + //console.log('plantemplate'); + + var xdata = parent.appdb.dbquery("select uuid,templatename from planningtemplate order by templatename;"); + xdata = xdata.sqldata; + //console.log($("#plantemplates").html()); + $("#plantemplates").html(""); + $("#plantemplates").append('
  • multiple
  • '); + for (var i in xdata){ + + $("#plantemplates").append('
  • '+ xdata[i].templatename+'
  • '); + } + $("#plantemplates").append(''); + $("#plantemplates").append('
  • simple
  • '); + for (var i in xdata){ + //console.log("m: " + i); + $("#plantemplates").append('
  • '+ xdata[i].templatename+'
  • '); + } + $("#plantemplates").append('
  • Plan Vide
  • '); +} + +function setborderdates() { + var minamonths = parent.appdb.dbquery("select minage,maxage from creche LIMIT 1;"); + var bday = $('#childs_birthday').val(); + var centrydate = $('#childs_entrydate').val(); + var cleavedate = $('#childs_leavedate').val(); + var dtbday = new Date(bday); + var dtminentrydate = new Date(dtbday.getFullYear(),dtbday.getMonth() + parseInt(minamonths.sqldata[0].minage), dtbday.getDate()); + var today = new Date(); + if (centrydate < dtminentrydate.toISOString().substring(0,10) || (centrydate==cleavedate)) { + + if (dtminentrydate > today) { + $('#childs_entrydate').val(dtminentrydate.toISOString().substring(0,10)); + }else { + $('#childs_entrydate').val(today.toISOString().substring(0,10)); + } + + } + var dtmaxleavedate = new Date(dtbday.getFullYear(),dtbday.getMonth() + parseInt(minamonths.sqldata[0].maxage), dtbday.getDate()); + if (cleavedate > dtmaxleavedate.toISOString().substring(0,10) || (centrydate==cleavedate)) { + + $('#childs_leavedate').val(dtmaxleavedate.toISOString().substring(0,10)); + } + centrydate = $('#childs_entrydate').val(); + cleavedate = $('#childs_leavedate').val(); + parent.appdb.dbexec("update childs set birthday=date('"+bday+"'),entrydate=date('"+centrydate+"'),leavedate=date('"+cleavedate+"') where uuid='"+pconfig.uuid+"';"); + +} + +$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) { + var tn = e.target.toString(); + + pconfig.activetab = tn.substring(tn.lastIndexOf("#")+1); + + parent.apppref.setpreference("pageconfig.child",pconfig); + + if (pconfig.activetab == 'planning') { + load_table_presence(); + } + if (pconfig.activetab == 'parents') { + load_table_refperson(); + } + [% IF creorga.modules.child.filelist %] + if (pconfig.activetab == 'myfiles') { + load_table_files(); + } + [% END %] + if (pconfig.activetab == 'caution') { + load_table_caution(); + } + }); + +function load_table_presence() { + + + var plandatasql = "SELECT ' ' AS action, grp.grpname, strftime('%d.%m.%Y',plan.datebegin) || ' - ' || strftime('%d.%m.%Y',plan.dateend) AS planningdaterange,"; + var wda = ['mon','tue','wed','thu','fri','sat']; + var awda = []; + for (var w in wda){ + awda.push("CASE WHEN plan."+wda[w]+"timebegin != plan."+wda[w]+"timeend THEN plan."+wda[w]+"timebegin || ' - ' || plan."+wda[w]+"timeend ELSE '' END || CASE WHEN plan."+wda[w]+"lunch='1' THEN ' ()' ELSE '' END || case when plan."+wda[w]+"timebegin2 is not null and plan."+wda[w]+"timeend2 is not null then '
    ' || plan."+wda[w]+"timebegin2 || ' - ' || plan."+wda[w]+"timeend2 else '' end AS "+wda[w]+"planningtime"); + } + plandatasql += awda.join(',') + " FROM planning plan LEFT JOIN groups grp ON ( plan.groupuuid=grp.uuid) WHERE plan.childuuid='" + pconfig.uuid + "' ORDER BY plan.datebegin, plan.dateend;"; + + var plandata = parent.appdb.dbqueryarray(plandatasql); + + var headerdata = getlabels(plandata.sqlhead.join(",")); + + $("#tbl_planning").html(""); + var tblplan = $("#tbl_planning").dataTable({ + "language": { + "url": "../../../oldvendor/js/locale/datatable_fr.json" + }, + "data": plandata.sqldata, + "columns": headerdata, + "paging": false, + "ordering": true, + "scrollY": wh + "px", + "scrollCollapse": true, + "info": false, + "filter": false, + "destroy": true + }); + + +} + +function load_table_refperson() { + var labelx = getlabelswithkey('mother,father,tuteur,famillymember,famillyfriend'); + var areftypes = new Array(); + for (var l in labelx){ + areftypes.push("select '"+ labelx[l].title +"' as refname, '"+labelx[l].keyname+"' as reftype"); + } + var lblsql = areftypes.join(" UNION "); + var refperssql = "SELECT ' ' as action, rp.priority,rx.refname as reftype, coalesce(rp.surname,'') || ' ' || coalesce(rp.prename,'') as nameprename, case when rp.phone is not null then ': ' || rp.phone || '
    ' else '' end || case when rp.mobile is not null then': ' || rp.mobile || '
    ' else '' end || case when rp.workphone is not null then ': ' || rp.workphone || '
    ' else '' end || case when rp.email is not null then ': ' || email else '' end as phonemail, coalesce(rp.address,'') || '
    ' || coalesce(rp.zip,'') || ' ' || coalesce(rp.city,'') || '
    ' || coalesce(rp.country,'') as address, case when rp.authsubscriber then 'signataire:
    ' else '' end || coalesce(rp.job || '
    ','') as divers, coalesce(rp.remark ,'') as remark FROM refpersons rp join ("+ lblsql+") rx on (rp.reftype=rx.reftype) where rp.childuuid='" + pconfig.uuid + "';"; + var refpersondata = parent.appdb.dbqueryarray(refperssql); + + var headerdata = getlabels(refpersondata.sqlhead.join(",")); + $("#tbl_refperson").html(""); + var tblheader = ''; + for (var h in headerdata){ + if ((headerdata[h].keyname == 'act') && (headerdata[h].class.indexOf('action1btn') == -1)){ + headerdata[h].class +=" action1btn"; + } + tblheader += ''+ headerdata[h].title+''; + + } + tblheader += ''; + tblacc = null; + $("#tbl_refperson").append("" + tblheader + ""); + $("#tbl_referson").append(""); + for (var i in refpersondata.sqldata){ + var row = refpersondata.sqldata[i]; + var tr = ''; + for (var x in row){ + //jsdump(x); + if (x == 7){ + if (row[x] == null){ + tr += ""; + } else { + tr += ""+ htmlUnescape(row[x])+""; + } + } else { + if (row[x] == null){ + tr += ""; + }else { + tr += ""+ row[x]+""; + } + + } + } + tr += ""; + $("#tbl_refperson").append(tr); + + } + + + $("#tbl_refperson").dataTable({ + "language": { + "url": "../../../oldvendor/js/locale/datatable_fr.json" + }, + //"data": refpersondata.sqldata, + //"columns": headerdata, + "paging": false, + "scrollY": wh + "px", + "scrollCollapse": true, + "ordering": true, + "info": false, + "filter": false, + "destroy": true + }); +} + +function load_table_caution(){ + $("#tbl_cautionstatus").html(""); + var cautionsql = "select ' ' as action, '' || statusdate || '' || strftime('%d.%m.%Y',statusdate) as daydate, amount || ' €' as amount,statementnumber from cautionstatus where childuuid='"+ pconfig.uuid+"' order by statusdate DESC;"; + var caudata = parent.appdb.dbqueryarray(cautionsql); + var headerdata = getlabels("action,daydate,amount,statementnumber"); + $("#tbl_cautionstatus").dataTable({ + "language": { + "url": "../../../oldvendor/js/locale/datatable_fr.json" + }, + "data": caudata.sqldata, + "columns": headerdata, + "paging": false, + "scrollY": wh + "px", + "scrollCollapse": true, + "ordering": true, + "info": false, + "filter": false, + "destroy": true + }); +} + +function load_table_files(){ + $("#tbl_files").html(""); + var headerdata = getlabels("action,filename,description,daydate,filetype"); + $("#tbl_files").dataTable({ + "language": { + "url": "../../../oldvendor/js/locale/datatable_fr.json" + }, + //"data": refpersondata.sqldata, + "columns": headerdata, + "paging": false, + "scrollY": wh + "px", + "scrollCollapse": true, + "ordering": true, + "info": false, + "filter": false, + "destroy": true + }); +} + + +function dlg_cautionstatus(objuuid,type){ + //TODO: dlg_addcautionstatus + //dump("Caution: " + type +" " + objuuid.uuid + +"\n"); + if (type == 'upd' || type == 'ins') { + var caustatdata = parent.appdb.dbquery("select '0' as uuid,strftime('%d.%m.%Y',date('now')) as statusdate,0 as amount,null as statementnumber"); + if (type == 'upd') { + caustatdata = parent.appdb.dbquery("SELECT uuid, strftime('%d.%m.%Y',statusdate) as statusdate, amount, statementnumber FROM cautionstatus where uuid='" + objuuid.uuid + "';"); + } + $("#frmeditcautionstatus #uuid").val(objuuid.uuid); + caustatdata = caustatdata.sqldata[0]; + //setrefpersontypes(); + + for (var r in caustatdata) { + if (document.getElementById(r)) { + + document.getElementById(r).value = caustatdata[r]; + + } + } + $("#edit_cautionstatus").modal('show'); + } else if (type == 'del') { + delcautionstatus= objuuid.uuid; + confirm_delete_cautionstatus(); + } +} + +function dlg_refperson(uuid, type) { + if (type == 'upd' || type == 'ins') { + var refpdata = parent.appdb.dbquery("SELECT null as reftype, null as surname, null as prename, address, null as phone, null as mobile, null as job, null as email, null as workphone, zip, country, city, '0' as authsubscriber, null as uuid,lastmodified FROM childs where uuid='" + pconfig.uuid +"' union SELECT null as reftype, surname, null as prename, address, null as phone, null as mobile, null as job, null as email, null as workphone, zip, country, city, '0' as authsubscriber, null as uuid,lastmodified FROM refpersons where childuuid='"+pconfig.uuid +"' order by lastmodified DESC "); + if (type == 'upd') { + refpdata = parent.appdb.dbquery("SELECT reftype, surname, prename, address, phone, mobile, job, email, workphone, zip, country, city, authsubscriber, uuid FROM refpersons where uuid='" + uuid.uuid + "';"); + } + $("#frmeditrefperson #uuid").val(uuid.uuid); + refpdata = refpdata.sqldata[0]; + setrefpersontypes(); + + for (var r in refpdata) { + if (document.getElementById(r)) { + if ($("#" + r).is(':checkbox')) { + if (refpdata[r] == '1') { + $("#" + r).prop("checked", true); + } else { + $("#" + r).prop("checked", false); + } + } else { + document.getElementById(r).value = refpdata[r]; + } + } + } + $("#edit_refperson").modal('show'); + } else if (type == 'del') { + delrefperson = uuid.uuid; + confirm_delete_refperson(); + } +} + +function setplanning_groups() { + var plangrps = parent.appdb.dbquery("select uuid,grpname from groups order by minage,maxage;"); + plangrps = plangrps.sqldata; + $("#groupuuid").html(''); + $("#groupuuid").append(''); + for (var g in plangrps) { + $("#groupuuid").append(''); + } +} + +function setrefpersontypes() { +var labelx = getlabelswithkey('mother,father,tuteur,famillymember,famillyfriend'); + var areftypes = new Array(); + $("#reftype").html(''); + for (var l in labelx){ + $("#reftype").append(''); + } +} + +function dlg_planning(uuid, type, planuuid) { + //console.log("dlg_planning" + uuid + " " + type + " " + planuuid); + if (type == 'upd') { + check_birthdate_valid(); + setplanning_groups(); + var plandata = parent.appdb.dbquery("SELECT datebegin, dateend, montimebegin, montimeend, monlunch, tuetimebegin, tuetimeend, tuelunch, wedtimebegin, wedtimeend, wedlunch, thutimebegin, thutimeend, thulunch, fritimebegin, fritimeend, frilunch, sattimebegin, sattimeend, satlunch, suntimebegin, suntimeend, sunlunch, childuuid, uuid, groupuuid, montimebegin2, montimeend2, tuetimebegin2, tuetimeend2, wedtimebegin2, wedtimeend2, thutimebegin2, thutimeend2, fritimebegin2, fritimeend2, sattimebegin2, sattimeend2, suntimebegin2, suntimeend2 FROM planning where uuid='" + uuid.uuid + "';"); + plandata = plandata.sqldata[0]; + + for (var p in plandata) { + if (document.getElementById(p)) { + if ($("#" + p).is(':checkbox')) { + if (plandata[p] == '1') { + $("#" + p).prop("checked", true); + } else { + $("#" + p).prop("checked", false); + } + } else { + if ((p.substr(p.length-1) == "2") && (p.indexOf("time") != -1) && (plandata[p] != "")){ + $('#' + p.substr(0,3) + "time" + p.substr(p.length-1)).show(); + } + if ((p.indexOf("time") != -1) && (plandata[p] == "")) { + document.getElementById(p).value = ""; + } else { + document.getElementById(p).value = plandata[p]; + } + } + } + } + $("#edit_planning").modal('show'); + } + else if (type == 'del') { + delplan = uuid.uuid; + //"Launch confirm delete\n"); + confirm_delete_planning(); + + } + else if (type == 'delall') { + //delplan = pconfig.uuid; + //"Launch confirm all delete\n"); + confirm_delete_allplanning(); + + } + else if (type == 'ins') { + $("#frmeditplanning #uuid").val("0"); + check_birthdate_valid(); + setplanning_groups(); + var timesql = "SELECT strftime('%d.%m.%Y',date('now')) as datebegin,strftime('%d.%m.%Y',date('now','+6 month')) as dateend ,null as montimebegin, null as montimeend, null as tuetimebegin, null as tuetimeend, null as wedtimebegin, null as wedtimeend, null as thutimebegin, null as thutimeend, null as fritimebegin, null as fritimeend, null as sattimebegin, null as sattimeend;"; + if (planuuid){ + timesql = "SELECT strftime('%d.%m.%Y',date('now')) as datebegin,strftime('%d.%m.%Y',date('now','+6 month')) as dateend ,montimebegin, montimeend, tuetimebegin, tuetimeend, wedtimebegin, wedtimeend, thutimebegin, thutimeend, fritimebegin, fritimeend, montimebegin2,montimeend2,tuetimebegin2, tuetimeend2, wedtimebegin2, wedtimeend2, thutimebegin2, thutimeend2, fritimebegin2, fritimeend2, sattimebegin2, sattimeend2 FROM planningtemplate where uuid='"+planuuid+"';"; + } + + var timeplan = parent.appdb.dbquery(timesql); + + timeplan = timeplan.sqldata[0]; + $("#frmeditplanning #datebegin").val(timeplan.datebegin); + $("#frmeditplanning #dateend").val(timeplan.dateend); + for (var t in timeplan) { + if ((t.indexOf("time") != -1)) { + var tx = timeplan[t]; + if (tx == "00:00" || tx== null) { + tx = ""; + } + + $("#" + t).val(tx); + } + } + $("#frmeditplanning :input").each(function() { + var input = $(this); + if (input.attr("type") == "checkbox") { + input.prop('checked', true); + } + + }); + + $("#edit_planning").modal('show'); + } + else if (type == 'insproposal') { + check_birthdate_valid(); + setplanning_groups(); + var curplan = parent.appdb.dbquery("select count(*) as cnt,date(max(dateend),'+1 day') as maxdateto,(select birthday from childs where childs.uuid='" + pconfig.uuid + "') as birthday,(select entrydate from childs where childs.uuid='" + pconfig.uuid+"') as entrydate,(select leavedate from childs where childs.uuid='" + pconfig.uuid+"') as leavedate,date('now') as today from planning pl join childs ch on (ch.uuid=pl.childuuid) where pl.childuuid='" + pconfig.uuid + "'"); + curplan = curplan.sqldata[0]; + //dump("INSPROPOSAL:" + JSON.stringify(curplan) + "\n"); + var plansql = ""; + + if ((curplan.cnt == 0) || ( planuuid)){ + //dump(curplan.today +"<-->" + curplan.birthday + "<-->" + curplan.entrydate + "\n") ; + + if (curplan.cnt > 0){ + curplan.entrydate=curplan.maxdateto; + } + //if (curplan.today < curplan.entrydate) { + + // plansql = "select date('"+ curplan.entrydate+"') as datebegin,date(birthday,'+' || maxage || ' months','-1 day') as dateend, pl.uuid as groupuuid, montimeopen as montimebegin,montimeclose as montimeend,tuetimeopen as tuetimebegin,tuetimeclose as tuetimeend,wedtimeopen as wedtimebegin,wedtimeclose as wedtimeend,thutimeopen as thutimebegin,thutimeclose as thutimeend,fritimeopen as fritimebegin,fritimeclose as fritimeend,null as montimebegin2, null as montimeend2, null as tuetimebegin2, null as tuetimeend2, null as wedtimebegin2, null as wedtimeend2, null as thutimebegin2, null as thutimeend2, null as fritimebegin2, null as fritimeend2 from ( select uuid,minage,maxage,grpname,(select birthday from childs where childs.uuid='" + pconfig.uuid + "') as birthday from groups) pl join workinghours wk on (wk.datestart <= datebegin) group by groupuuid order by wk.datestart DESC,minage,maxage;"; + // if (planuuid){ + //dump("today < entrydate PLANUUID: " + planuuid +"\n"); + // } + //} else { + //dump("INSPROPOSAL 2:" + JSON.stringify(curplan) + "\n"); + //plansql = "select * from ( select CASE WHEN DATE(birthday,'+' || minage || ' months') < entrydate THEN entrydate ELSE DATE(birthday,'+' || minage || ' months') END AS datebegin, case when date(birthday,'+' || maxage || ' months') > leavedate then leavedate else date(birthday,'+' || maxage || ' months','-1 day') end as dateend, pl.uuid as groupuuid, montimeopen as montimebegin,montimeclose as montimeend,tuetimeopen as tuetimebegin,tuetimeclose as tuetimeend,wedtimeopen as wedtimebegin,wedtimeclose as wedtimeend,thutimeopen as thutimebegin,thutimeclose as thutimeend,fritimeopen as fritimebegin,fritimeclose as fritimeend,sattimeopen as sattimebegin,sattimeclose as sattimeend,null as montimebegin2, null as montimeend2, null as tuetimebegin2, null as tuetimeend2, null as wedtimebegin2, null as wedtimeend2, null as thutimebegin2, null as thutimeend2, null as fritimebegin2, null as fritimeend2, null as sattimeend2,1 as monlunch,1 as tuelunch, 1 as wedlunch, 1 as thulunch, 1 as frilunch, 1 as satlunch from ( select uuid,minage,maxage,grpname,(select birthday from childs where childs.uuid='" + pconfig.uuid + "') as birthday,date('" + curplan.entrydate +"') AS entrydate,date('" + curplan.leavedate +"') AS leavedate from groups) pl join workinghours wk on (wk.datestart <= datebegin) group by groupuuid order by wk.datestart DESC,minage,maxage ) where datebegin!=dateend and dateend >= datebegin and order by datebegin,dateend;"; + if (planuuid){ + plansql = "select * from ( select CASE WHEN DATE(birthday,'+' || minage || ' months') < entrydate THEN entrydate ELSE DATE(birthday,'+' || minage || ' months') END AS datebegin, case when date(birthday,'+' || maxage || ' months') > leavedate then leavedate else date(birthday,'+' || maxage || ' months','-1 day') end as dateend, pl.uuid as groupuuid, plt.* from ( select uuid,minage,maxage,grpname,'"+pconfig.uuid+"' as chuuid,(select birthday from childs where childs.uuid='" + pconfig.uuid + "') as birthday, date('"+ curplan.entrydate+"') AS entrydate,date('" + curplan.leavedate +"') AS leavedate from groups) pl join workinghours wk on (wk.datestart <= datebegin) join (select '" + pconfig.uuid + "' as chuuid,* from planningtemplate where planningtemplate.uuid='"+planuuid+"') plt on (plt.chuuid=pl.chuuid) group by groupuuid order by wk.datestart DESC,minage,maxage ) where datebegin!=dateend and dateend >= datebegin order by datebegin,dateend;"; + //console.log(plansql); + var plandata = parent.appdb.dbquery(plansql); + + for (var pl in plandata.sqldata) { + + var inssql = "INSERT INTO planning (uuid,childuuid, groupuuid,datebegin, dateend, montimebegin, montimeend, tuetimebegin, tuetimeend, wedtimebegin, wedtimeend, thutimebegin,thutimeend, fritimebegin, fritimeend,sattimebegin, sattimeend,montimebegin2, montimeend2, tuetimebegin2, tuetimeend2, wedtimebegin2, wedtimeend2, thutimebegin2,thutimeend2, fritimebegin2, fritimeend2,sattimebegin2, sattimeend2, monlunch, tuelunch,wedlunch,thulunch,frilunch,satlunch ) VALUES ("; + inssql += "'" + parent.appdb.generate_uuid() + "',"; + inssql += "'" + pconfig.uuid + "',"; + inssql += "'" + plandata.sqldata[pl].groupuuid + "',"; + inssql += "'" + plandata.sqldata[pl].datebegin + "',"; + inssql += "'" + plandata.sqldata[pl].dateend + "',"; + inssql += "'" + plandata.sqldata[pl].montimebegin + "',"; + inssql += "'" + plandata.sqldata[pl].montimeend + "',"; + inssql += "'" + plandata.sqldata[pl].tuetimebegin + "',"; + inssql += "'" + plandata.sqldata[pl].tuetimeend + "',"; + inssql += "'" + plandata.sqldata[pl].wedtimebegin + "',"; + inssql += "'" + plandata.sqldata[pl].wedtimeend + "',"; + inssql += "'" + plandata.sqldata[pl].thutimebegin + "',"; + inssql += "'" + plandata.sqldata[pl].thutimeend + "',"; + inssql += "'" + plandata.sqldata[pl].fritimebegin + "',"; + inssql += "'" + plandata.sqldata[pl].fritimeend + "',"; + inssql += "'" + plandata.sqldata[pl].sattimebegin + "',"; + inssql += "'" + plandata.sqldata[pl].sattimeend + "',"; + inssql += ((plandata.sqldata[pl].montimebegin2 !== "")?"'" + plandata.sqldata[pl].montimebegin2 + "'":'null') +","; + inssql += ((plandata.sqldata[pl].montimeend2 !== "")?"'" + plandata.sqldata[pl].montimeend2 + "'":'null') +","; + inssql += ((plandata.sqldata[pl].tuetimebegin2 !== "")?"'" + plandata.sqldata[pl].tuetimebegin2 + "'":'null') +","; + inssql += ((plandata.sqldata[pl].tuetimeend2 !== "")?"'" + plandata.sqldata[pl].tuetimeend2 + "'":'null') +","; + inssql += ((plandata.sqldata[pl].wedtimebegin2 !== "")?"'" + plandata.sqldata[pl].wedtimebegin2 + "'":'null') +","; + inssql += ((plandata.sqldata[pl].wedtimeend2 !== "")?"'" + plandata.sqldata[pl].wedtimeend2 + "'":'null') +","; + inssql += ((plandata.sqldata[pl].thutimebegin2 !== "")?"'" + plandata.sqldata[pl].thutimebegin2 + "'":'null') +","; + inssql += ((plandata.sqldata[pl].thutimeend2 !== "")?"'" + plandata.sqldata[pl].thutimeend2 + "'":'null') +","; + inssql += ((plandata.sqldata[pl].fritimebegin2 !== "")?"'" + plandata.sqldata[pl].fritimebegin2 + "'":'null') +","; + inssql += ((plandata.sqldata[pl].fritimeend2 !== "")?"'" + plandata.sqldata[pl].fritimeend2 + "'":'null') +","; + inssql += ((plandata.sqldata[pl].sattimebegin2 !== "")?"'" + plandata.sqldata[pl].sattimebegin2 + "'":'null') +","; + inssql += ((plandata.sqldata[pl].sattimeend2 !== "")?"'" + plandata.sqldata[pl].sattimeend2 + "'":'null') +","; + inssql += ((plandata.sqldata[pl].monlunch == 1)?"'1'":'null') +","; + inssql += ((plandata.sqldata[pl].tuelunch == 1)?"'1'":'null') +","; + inssql += ((plandata.sqldata[pl].wedlunch == 1)?"'1'":'null') +","; + inssql += ((plandata.sqldata[pl].thulunch == 1)?"'1'":'null') +","; + inssql += ((plandata.sqldata[pl].frilunch == 1)?"'1'":'null') +","; + inssql += ((plandata.sqldata[pl].satlunch == 1)?"'1'":'null') +""; + inssql += ");"; + + parent.appdb.dbexec(inssql); + } + } + //jsdump("plan SQL: " + plansql +"\n"); + //if (curplan.cnt > 0){ + // plansql = plansql.replace(/%%WHERE%%/,"date('" + curplan.maxdateto+"') between datebegin and dateend or datebegin > date('" + curplan.maxdateto+"') "); + //}else { + // plansql = plansql.replace(/%%WHERE%%/,""); + //} + + //} + //dump("PLANSQL: " +plansql + "\n"); + + + } + if ((curplan.cnt >= 1) && (!planuuid)){ + + var plansql = "select * from ( select case when date(entrydate) < date(nextdate) then nextdate else entrydate end as datebegin, case when entrydate < date(nextdate) then date(nextdate) else date(birthday,'+' || maxage || ' months','-1 day') end as dateend, pl.uuid as groupuuid,birthday,nextdate,grpname from ( select uuid,minage,maxage,grpname, (select entrydate from childs where childs.uuid='" + pconfig.uuid + "') as entrydate ,(select birthday from childs where childs.uuid='" + pconfig.uuid + "') as birthday, (select date(max(dateend),'+1 day') from planning where planning.childuuid='" + pconfig.uuid + "') as nextdate from groups) pl group by groupuuid order by minage,maxage ) where datebegin encodeparam($("#frmeditplanning #dateend").val(),'date')){ + errormsg("Erreur en dates!","La date de début ne peut pas être supérieur à la date de fin!\n"); + return false; + } + + if (($("#frmeditplanning #montimebegin").val() > $("#frmeditplanning #montimeend").val()) || + ($("#frmeditplanning #tuetimebegin").val() > $("#frmeditplanning #tuetimeend").val()) || + ($("#frmeditplanning #wedtimebegin").val() > $("#frmeditplanning #wedtimeend").val()) || + ($("#frmeditplanning #thutimebegin").val() > $("#frmeditplanning #thutimeend").val()) || + ($("#frmeditplanning #fritimebegin").val() > $("#frmeditplanning #fritimeend").val()) || + ($("#frmeditplanning #sattimebegin").val() > $("#frmeditplanning #sattimeend").val()) || + ($("#frmeditplanning #montimebegin2").val() > $("#frmeditplanning #montimeend2").val() && $("#montime2").is(':visible')) || + ($("#frmeditplanning #tuetimebegin2").val() > $("#frmeditplanning #tuetimeend2").val() && $("#tuetime2").is(':visible')) || + ($("#frmeditplanning #wedtimebegin2").val() > $("#frmeditplanning #wedtimeend2").val() && $("#wedtime2").is(':visible')) || + ($("#frmeditplanning #thutimebegin2").val() > $("#frmeditplanning #thutimeend2").val() && $("#thutime2").is(':visible')) || + ($("#frmeditplanning #fritimebegin2").val() > $("#frmeditplanning #fritimeend2").val() && $("#fritime2").is(':visible')) || + ($("#frmeditplanning #sattimebegin2").val() > $("#frmeditplanning #sattimeend2").val() && $("#sattime2").is(':visible')) || + ($("#frmeditplanning #montimeend").val() > $("#frmeditplanning #montimebegin2").val() && $("#montime2").is(':visible')) || + ($("#frmeditplanning #tuetimeend").val() > $("#frmeditplanning #tuetimebegin2").val() && $("#tuetime2").is(':visible')) || + ($("#frmeditplanning #wedtimeend").val() > $("#frmeditplanning #wedtimebegin2").val() && $("#wedtime2").is(':visible')) || + ($("#frmeditplanning #thutimeend").val() > $("#frmeditplanning #thutimebegin2").val() && $("#thutime2").is(':visible')) || + ($("#frmeditplanning #fritimeend").val() > $("#frmeditplanning #fritimebegin2").val() && $("#fritime2").is(':visible')) || + ($("#frmeditplanning #sattimeend").val() > $("#frmeditplanning #sattimebegin2").val() && $("#sattime2").is(':visible')) + ) + { + errormsg("Erreur dans les heures d'entrée sortie!","l'heure d'entée ne peut pas être suppérieur à l'heure de sortie
    et
    une deuxième heure d'entrée d'un jour ne peut pas être inférieur à l'heure de la première sortie du jour!"); + return false; + } + return true; +} + +function save_planning() { + + var sql1 = new Array(); + var sql2 = new Array(); + + if (!check_planning()){ + return; + }; + var pluuid = null; + sql1.push("childuuid"); + + sql2.push("'" + pconfig.uuid + "'"); + $("#frmeditplanning :input").each(function() { + var input = $(this); + if (input.attr("id")) { + sql1.push(input.attr("id")); + if (input.attr("id") == 'uuid') { + if (input.val() == "" || input.val() == "0") { + sql2.push("'" + parent.appdb.generate_uuid() + "'"); + } else { + sql2.push("'" + input.val() + "'"); + pluuid = input.val(); + } + } else if (input.attr("type") == "checkbox") { + sql2.push(((input.is(':checked')) ? "'1'" : "'0'")); + } else { + var ival = encodeparam(input.val(),input.attr('type')); + if ((input.attr("id").substring(input.attr("id").length-1) == "2") && + $("#" + input.attr("id").substring(0,3) +"time" + input.attr("id").substring(input.attr("id").length-1)).is(":hidden")) { + ival = 'null'; + } + if (ival == "''") { + ival='null'; + } + sql2.push(ival); + + } + } + + }); + + var sdatebegin = encodeparam($("#frmeditplanning #datebegin").val(),'date'); + var sdateend = encodeparam($("#frmeditplanning #dateend").val(),'date'); + var checkdatereplace = parent.appdb.dbquery("select uuid from planning where datebegin >= "+sdatebegin+" and dateend <= "+sdateend+" and childuuid='"+pconfig.uuid+"';"); + checkdatereplace = checkdatereplace.sqldata; + //console.log(checkdatereplace); + if (checkdatereplace && Object.keys(checkdatereplace).length > 0) { + + var ruuid = new Array(); + for (var i in checkdatereplace){ + ruuid.push("'"+ checkdatereplace[i].uuid +"'"); + } + parent.appdb.dbexec("DELETE FROM planning where uuid in (" + ruuid.join(",") + ");"); + } + var checkdatesplit = parent.appdb.dbquery("select uuid,dateend from planning where datebegin <= "+sdatebegin+" and dateend >= "+sdateend+" and childuuid='"+pconfig.uuid+"';"); + checkdatesplit = checkdatesplit.sqldata; + if (checkdatesplit && Object.keys(checkdatesplit).length == 1) { + + var newuuid = parent.appdb.generate_uuid(); + parent.appdb.dbexec("INSERT INTO planning (datebegin, dateend, montimebegin, montimeend, monlunch, tuetimebegin, tuetimeend, tuelunch, wedtimebegin, wedtimeend, wedlunch, thutimebegin, thutimeend, thulunch, fritimebegin, fritimeend, frilunch, sattimebegin, sattimeend, satlunch, suntimebegin, suntimeend, sunlunch, childuuid, uuid, groupuuid, montimebegin2, montimeend2, tuetimebegin2, tuetimeend2, wedtimebegin2, wedtimeend2, thutimebegin2, thutimeend2, fritimebegin2, fritimeend2, sattimebegin2, sattimeend2, suntimebegin2, suntimeend2) SELECT date("+sdateend+",'+1 day'), dateend, montimebegin, montimeend, monlunch, tuetimebegin, tuetimeend, tuelunch, wedtimebegin, wedtimeend, wedlunch, thutimebegin, thutimeend, thulunch, fritimebegin, fritimeend, frilunch, sattimebegin, sattimeend, satlunch, suntimebegin, suntimeend, sunlunch, childuuid, '"+newuuid+"', groupuuid, montimebegin2, montimeend2, tuetimebegin2, tuetimeend2, wedtimebegin2, wedtimeend2, thutimebegin2, thutimeend2, fritimebegin2, fritimeend2, sattimebegin2, sattimeend2, suntimebegin2, suntimeend2 FROM planning where uuid='"+ checkdatesplit[0].uuid +"';"); + parent.appdb.dbexec("UPDATE planning SET dateend=date("+sdatebegin+",'-1 day') where uuid='"+checkdatesplit[0].uuid+"'"); + } + + var checkdatefrom = parent.appdb.dbquery("select uuid from planning where datebegin between "+sdatebegin+" and "+sdateend+" and childuuid='"+pconfig.uuid+"';"); + var checkdateto = parent.appdb.dbquery("select uuid from planning where dateend between "+sdatebegin+" and "+sdateend+" and childuuid='"+pconfig.uuid+"';"); + if (checkdatefrom.sqldata && Object.keys(checkdatefrom.sqldata).length == 1) { + + parent.appdb.dbexec("update planning set datebegin=date("+encodeparam($("#frmeditplanning #dateend").val(),'date')+",'+1 day') where uuid='"+checkdatefrom.sqldata[0].uuid+"'"); + } + if (checkdateto.sqldata && Object.keys(checkdateto.sqldata).length == 1) { + + parent.appdb.dbexec("update planning set dateend=date("+encodeparam($("#frmeditplanning #datebegin").val(),'date')+",'-1 day') where uuid='"+checkdateto.sqldata[0].uuid+"'"); + } + if (pluuid) { + + parent.appdb.dbexec("DELETE FROM planning where uuid='" + pluuid + "'"); + } + var inssql = "INSERT INTO planning (" + sql1.join(',') + ") VALUES (" + sql2.join(',') + ");"; + parent.appdb.dbexec(inssql); + load_table_presence(); + $("#edit_planning").modal('hide'); +} + +function save_refperson() { + + var sql1 = new Array(); + var sql2 = new Array(); + + sql1.push("childuuid"); + sql2.push("'" + pconfig.uuid + "'"); + var refuuid= null; + $("#frmeditrefperson :input").each(function() { + var input = $(this); + + if (input.attr("id")) { + sql1.push(input.attr("id")); + if (input.attr("id") == 'uuid') { + if (input.val() == "" || input.val() == "0") { + sql2.push("'" + parent.appdb.generate_uuid() + "'"); + } else { + sql2.push("'" + input.val() + "'"); + } + if (input.val() != "0") { + refuuid=input.val(); + } + } else if (input.attr("type") == "checkbox") { + + sql2.push(((input.is(':checked')) ? "'1'" : "'0'")); + + } else { + var ival = input.val(); + if (ival == "''") { + ival = 'null'; + } + sql2.push(encodeparam(ival,'text')); + + } + } + }); + + if (refuuid) { + parent.appdb.dbexec("DELETE FROM refpersons where uuid='" + refuuid + "'"); + } + var inssql = "INSERT INTO refpersons (" + sql1.join(',') + ") VALUES (" + sql2.join(',') + ");"; + parent.appdb.dbexec(inssql); + + load_table_refperson(); + + $("#edit_refperson").modal('hide'); + + return false; +} + +function save_cautionstatus(){ + var sql1 = new Array(); + var sql2 = new Array(); + + sql1.push("childuuid"); + sql2.push("'" + pconfig.uuid + "'"); + var cauuuid= null; + $("#frmeditcautionstatus :input").each(function() { + var input = $(this); + + if (input.attr("id")) { + sql1.push(input.attr("id")); + if (input.attr("id") == 'uuid') { + //dump("caution uuid=" + input.val() +"\n"); + if (input.val() === "" || input.val() === "0") { + sql2.push("'" + parent.appdb.generate_uuid() + "'"); + } else { + sql2.push("'" + input.val() + "'"); + } + if (input.val() != "0") { + cauuuid=input.val(); + } + } else { + var ival = encodeparam(input.val(),input.attr('type')); + if (ival == "''") { + ival = 'null'; + } + sql2.push(ival); + + } + } + }); + + if (cauuuid) { + parent.appdb.dbexec("DELETE FROM cautionstatus where uuid='" + cauuuid + "'"); + } + var inssql = "INSERT INTO cautionstatus (" + sql1.join(',') + ") VALUES (" + sql2.join(',') + ");"; + //dump(inssql + "\n"); + parent.appdb.dbexec(inssql); + + load_table_caution(); + + $("#edit_cautionstatus").modal('hide'); + + return false; +} + +function confirm_delete_cautionstatus() { + $("#confirm_delete_cautionstatus").modal('show'); + return false; +} + + +function confirm_delete_planning() { + $("#confirm_delete_planning").modal('show'); + return false; +} + +function confirm_delete_allplanning() { + $("#confirm_delete_allplanning").modal('show'); + return false; +} + +function confirm_delete_refperson() { + $("#confirm_delete_refperson").modal('show'); + return false; +} + +function delete_planning() { + + parent.appdb.dbexec("DELETE FROM planning where uuid='" + delplan + "'"); + delplan = null; + load_table_presence(); + + $("#confirm_delete_planning").modal('hide'); + + return false; +} + +function delete_allplanning() { + + parent.appdb.dbexec("DELETE FROM planning where childuuid='" + pconfig.uuid + "'"); + delplan = null; + load_table_presence(); + + $("#confirm_delete_allplanning").modal('hide'); + + return false; +} + +function delete_refperson() { + + parent.appdb.dbexec("DELETE FROM refpersons where uuid='" + delrefperson + "'"); + delrefperson = null; + load_table_refperson(); + + $("#confirm_delete_refperson").modal('hide'); + + return false; +} + +function delete_cautionstatus() { + + parent.appdb.dbexec("DELETE FROM cautionstatus where uuid='" + delcautionstatus + "'"); + delcautionstatus = null; + load_table_caution(); + + $("#confirm_delete_cautionstatus").modal('hide'); + + return false; +} + +function display_tblrow(trid) { + $('#' + trid + "time2").show(); + +} + +function hide_tblrow(trid) { + $('#' + trid).hide(); +} + +[% IF creorga.modules.child.filelist %] + +function load_table_files(){ + + myfiles = system.getChildFiles(cruuid,pconfig.uuid); + + var atbody = []; + for (var i=0;i '); + row.push(fname); + atbody.push(row); + } + + } + + $("#tbl_files").html(""); + var headerdata = getlabels("action,description"); + $("#tbl_files").html(""); + $("#tbl_files").dataTable({ + "language": { + "url": "../../../oldvendor/js/locale/datatable_fr.json" + }, + "data": atbody, + "columns": headerdata, + "paging": false, + "scrollY": wh + "px", + "scrollCollapse": true, + "ordering": true, + "info": false, + "filter": false, + "destroy": true + }); +} + + + +function preview_file(fi){ + //dump("open file: " + fi + "\n"); + //var ff = system.openFile(fi); + //return false; +} + +function delete_report(fi) { + //dump("delete" + fi + " ->"+ myfiles[delfile].path+"\n"); + + //delfile = fi; + //dump(fi + "\n"); + if (confirm("êtes vous sûre de supprimer ce fichier?")){ + OS.File.remove(fi); + setTimeout(function(){load_table_files();},3000); + } + + return false; + +} + + + + +function dlg_file(){ + $("#edit_file").modal('show'); + return false; +} + + +function save_file(){ + // var file = $("#frmeditfile #file").val(); + // var path = FileUtils.File(curcfg.path.local + system.sep() +"childs" + system.sep() +cruuid + system.sep() + pconfig.uuid); + // var newlocation= path.path + system.sep() + system.getFileName(file); + // OS.File.copy(file, newlocation); + // setTimeout(function(){load_table_files();$("#edit_file").modal('hide');},3000); +} +[% END %] + diff --git a/CGI/tmpl/app/creorga/module/childs/js/childs.js b/CGI/tmpl/app/creorga/module/childs/js/childs.js index 5bb4268..b01ee4a 100644 --- a/CGI/tmpl/app/creorga/module/childs/js/childs.js +++ b/CGI/tmpl/app/creorga/module/childs/js/childs.js @@ -1,127 +1,127 @@ -//Source-code licensed under EUPL v1.2 ( Copyright 2019 By DKS s.à r.l. - Kilian Saffran - Luxembourg ) - -var idfilter = null; -var filter = null; -var delchild = null; - -var pconfig = {}; -var childtbl = null; - -var wh= window.innerHeight -160; - -var candelete = 0; -function initdata(){ - - pconfig = parent.parent.apppref.getpreference("childs"); - - if (!pconfig.printlayout) { - pconfig.printlayout = 'list'; - parent.parent.apppref.setpreference("childs",pconfig); - } - - var filters = getallfilters(); - - var strfilters = ""; - for (var f in filters) { - strfilters += '
  • ' + filters[f].description + '
  • '; - } - if (pconfig.filterid) { - filter = filters[pconfig.filterid]; - } else { - pconfig.filterid = 0; - filter = filters[0]; - parent.parent.apppref.setpreference("childs",pconfig); - } - - set_infoheader(filter.description); - $("#cmb_childsfilter").html(strfilters); - - loadtable(); -} - - -function loadtable() { - var actionbtnsql = ""; - [% IF creorga.modules.child.delete %] - - actionbtnsql += ""; - [% END %] - - var sql = filter.sql; - sql = sql.replace('%%ACTION%%',actionbtnsql); - var actionbtnsql2 = ""; - sql = sql.replace('%%ACTION2%%',actionbtnsql2); - - var data = parent.appdb.dbqueryarray(sql); - - - var headerdata = null; - - headerdata = getlabels(data.sqlhead.join(",")); - - $("#tbl_childs").html(""); - var nhd = []; - for (var i in headerdata){ - nhd.push({"title":headerdata[i]["title"],"class":headerdata[i]["class"]}); - } - - $("#tbl_childs").append(); - childtbl = $("#tbl_childs").dataTable({ - "language": { - "url": "../../../oldvendor/js/locale/datatable_fr.json" - }, - "data": data.sqldata, - "columns": nhd, - "scrollY": wh + "px", - "scrollCollapse": true, - "paging": false, - "ordering": true, - "info": true, - "filter": true, - "destroy": true - }); - - - if (pconfig.order) { - childtbl.fnSort(pconfig.order); - } - -} - - $('#tbl_childs').on( 'order.dt', function () { - pconfig.order= childtbl.fnSettings().aaSorting; - parent.parent.apppref.setpreference("pageconfig.childs",pconfig); - } ); - -function setfilter(fid) { - idfilter = fid; - filter = getfilter(fid); - pconfig.filterid = fid; - parent.parent.apppref.setpreference("childs",pconfig); - set_infoheader(filter.description); - loadtable(); -} - -function addchild() { - var newuuid = parent.appdb.generate_uuid(); - parent.appdb.dbexec("insert into childs (uuid,birthday,entrydate,leavedate) VALUES ('" + newuuid + "',date('now','-2 months'),date('now'),date('now'));"); - parent.app.loadpage('modules/childs/child.html',{uuid:newuuid}); -} - -function confirm_delete_child(myuuid) { - delchild = myuuid; - $("#confirm_delete_child").modal('show'); -} - -function delete_child() { - parent.appdb.dbexec("DELETE from childslog where childuuid='"+delchild+"'"); - parent.appdb.dbexec("DELETE FROM presence where childuuid='" + delchild + "';"); - parent.appdb.dbexec("DELETE FROM refpersons where childuuid='" + delchild + "';"); - parent.appdb.dbexec("DELETE FROM planning where childuuid='" + delchild + "';"); - parent.appdb.dbexec("DELETE FROM childs where uuid='" + delchild + "';"); - delchild = null; - loadtable(); - $("#confirm_delete_child").modal('hide'); -} - - +//Source-code licensed under EUPL v1.2 ( Copyright 2019 By DKS s.à r.l. - Kilian Saffran - Luxembourg ) + +var idfilter = null; +var filter = null; +var delchild = null; + +var pconfig = {}; +var childtbl = null; + +var wh= window.innerHeight -160; + +var candelete = 0; +function initdata(){ + + pconfig = parent.parent.apppref.getpreference("childs"); + + if (!pconfig.printlayout) { + pconfig.printlayout = 'list'; + parent.parent.apppref.setpreference("childs",pconfig); + } + + var filters = getallfilters(); + + var strfilters = ""; + for (var f in filters) { + strfilters += '
  • ' + filters[f].description + '
  • '; + } + if (pconfig.filterid) { + filter = filters[pconfig.filterid]; + } else { + pconfig.filterid = 0; + filter = filters[0]; + parent.parent.apppref.setpreference("childs",pconfig); + } + + set_infoheader(filter.description); + $("#cmb_childsfilter").html(strfilters); + + loadtable(); +} + + +function loadtable() { + var actionbtnsql = ""; + [% IF creorga.modules.child.delete %] + + actionbtnsql += ""; + [% END %] + + var sql = filter.sql; + sql = sql.replace('%%ACTION%%',actionbtnsql); + var actionbtnsql2 = ""; + sql = sql.replace('%%ACTION2%%',actionbtnsql2); + + var data = parent.appdb.dbqueryarray(sql); + + + var headerdata = null; + + headerdata = getlabels(data.sqlhead.join(",")); + + $("#tbl_childs").html(""); + var nhd = []; + for (var i in headerdata){ + nhd.push({"title":headerdata[i]["title"],"class":headerdata[i]["class"]}); + } + + $("#tbl_childs").append(); + childtbl = $("#tbl_childs").dataTable({ + "language": { + "url": "../../../oldvendor/js/locale/datatable_fr.json" + }, + "data": data.sqldata, + "columns": nhd, + "scrollY": wh + "px", + "scrollCollapse": true, + "paging": false, + "ordering": true, + "info": true, + "filter": true, + "destroy": true + }); + + + if (pconfig.order) { + childtbl.fnSort(pconfig.order); + } + +} + + $('#tbl_childs').on( 'order.dt', function () { + pconfig.order= childtbl.fnSettings().aaSorting; + parent.parent.apppref.setpreference("pageconfig.childs",pconfig); + } ); + +function setfilter(fid) { + idfilter = fid; + filter = getfilter(fid); + pconfig.filterid = fid; + parent.parent.apppref.setpreference("childs",pconfig); + set_infoheader(filter.description); + loadtable(); +} + +function addchild() { + var newuuid = parent.appdb.generate_uuid(); + parent.appdb.dbexec("insert into childs (uuid,birthday,entrydate,leavedate) VALUES ('" + newuuid + "',date('now','-2 months'),date('now'),date('now'));"); + parent.app.loadpage('modules/childs/child.html',{uuid:newuuid}); +} + +function confirm_delete_child(myuuid) { + delchild = myuuid; + $("#confirm_delete_child").modal('show'); +} + +function delete_child() { + parent.appdb.dbexec("DELETE from childslog where childuuid='"+delchild+"'"); + parent.appdb.dbexec("DELETE FROM presence where childuuid='" + delchild + "';"); + parent.appdb.dbexec("DELETE FROM refpersons where childuuid='" + delchild + "';"); + parent.appdb.dbexec("DELETE FROM planning where childuuid='" + delchild + "';"); + parent.appdb.dbexec("DELETE FROM childs where uuid='" + delchild + "';"); + delchild = null; + loadtable(); + $("#confirm_delete_child").modal('hide'); +} + + diff --git a/CGI/tmpl/app/creorga/module/childs/js/filters.js b/CGI/tmpl/app/creorga/module/childs/js/filters.js index 7812437..888f6c9 100644 --- a/CGI/tmpl/app/creorga/module/childs/js/filters.js +++ b/CGI/tmpl/app/creorga/module/childs/js/filters.js @@ -1,51 +1,51 @@ -//Source-code licensed under EUPL v1.2 ( Copyright 2019 By DKS s.à r.l. - Kilian Saffran - Luxembourg ) - -var filters_fr = [ -{"sql":"select '%%ACTION%%' as action, checkservicenumber, prename,surname, '' || strftime('%Y-%m-%d',birthday) || '' || strftime('%d.%m.%Y',birthday) as birthday from childs where leavedate >= date('now')", -"heads":"action,checkservicenumber,prename,surname,birthday", -"description":"courants (date actuelle <= date de sortie)"}, -// {"sql":"select '%%ACTION%%' as action, checkservicenumber, prename,surname, '' || strftime('%Y-%m-%d',birthday) || '' || strftime('%d.%m.%Y',birthday) as birthday from childs where checkserviceexpiration >= date('now','-1 months')", -// "heads":"action,checkservicenumber,prename,surname,birthday", -// "description":"expiration checkservice (<= 1 mois)"}, -{"sql":"select '%%ACTION%%' as action, checkservicenumber, prename,surname, '' || strftime('%Y-%m-%d',birthday) || '' || strftime('%d.%m.%Y',birthday) as birthday from childs where entrydate >= date('now')", -"heads":"action,checkservicenumber,prename,surname,birthday", -"description":"futur (date d'entrée >= date actuelle)"}, -{"sql":"select '%%ACTION%%' as action, checkservicenumber, prename,surname, '' || strftime('%Y-%m-%d',birthday) || '' || strftime('%d.%m.%Y',birthday) as birthday from childs", -"heads":"action,checkservicenumber,prename,surname,birthday", -"description":"tous"}, -{"sql":"select '%%ACTION%%' as action, checkservicenumber, prename,surname, '' || strftime('%Y-%m-%d',birthday) || '' || strftime('%d.%m.%Y',birthday) as birthday from childs where leavedate < date('now')", -"heads":"action,checkservicenumber,prename,surname,birthday" , -"description":"anciens (date actuelle > date de sortie)"}, -// {"sql":"select '%%ACTION%%' as action, checkservicenumber, prename,surname, '' || strftime('%Y-%m-%d',birthday) || '' || strftime('%d.%m.%Y',birthday) as birthday from childs where leavedate >= date('now','-2 months') and cautionamount is not null and cautionpayedback is null", -// "heads":"action,checkservicenumber,prename,surname,birthday", -// "description":"Caution à rembourser (sorties < 2 mois)"}, -{"sql":"select '%%ACTION2%%' as action, coalesce(ch.prename,'') || ' ' || coalesce(ch.surname,'') || '
    ' || '(' || coalesce(ch.checkservicenumber,'') || ')' as childname, rp.priority, "+ -" coalesce(rp.prename,'') || ' ' || coalesce(rp.surname,'') as nameprename, "+ - " case when rp.phone is not null then ': ' || rp.phone || '
    ' else '' end || case when rp.mobile is not null then': ' || rp.mobile || '
    ' else '' end || case when rp.workphone is not null then ': ' || rp.workphone || '
    ' else '' end as phone, coalesce(rp.address,'') || '
    ' || coalesce(rp.zip,'') || ' ' || coalesce(rp.city,'') || '
    ' || coalesce(rp.country,'') as address "+ - " from childs ch left join refpersons rp on (ch.uuid=rp.childuuid) where ch.leavedate >= date('now') and ch.checkservicenumber is not null "+ -" order by ch.prename,ch.surname,rp.priority,rp.reftype DESC", -"heads":"action,childname,priority,nameprename,phone,address", -"description":"Parents / Personnes de référence"}, -{"sql":"select '%%ACTION2%%' as action,ch.checkservicenumber as checkservicenumber,ch.prename as prename,ch.surname as surname," + - "'' || strftime('%Y-%m-%d',plnow.datebegin) || '' || strftime('%d.%m.%Y',plnow.datebegin) as datebeginnow,'' || strftime('%Y-%m-%d',plnow.dateend) || '' || strftime('%d.%m.%Y',plnow.dateend) as dateendnow,gr.grpname as grpname, " + - "'' || strftime('%Y-%m-%d',plnext.nextdatebegin) || '' || strftime('%d.%m.%Y',plnext.nextdatebegin) as datebeginnext, '' || strftime('%Y-%m-%d',plnext.nextdateend) || '' || strftime('%d.%m.%Y',plnext.nextdateend) as dateendnext, gr2.grpname as nextgroup " + - "from (select uuid, prename,surname,checkservicenumber from childs where date('now') between entrydate and leavedate) ch left join (select * from planning where date('now') between datebegin and dateend) plnow on (ch.uuid=plnow.childuuid) left join groups gr on (plnow.groupuuid=gr.uuid) " + - "left join (select childuuid, groupuuid,max(datebegin) as nextdatebegin,max(dateend) as nextdateend from planning where datebegin > date('now') group by childuuid ) plnext on (ch.uuid=plnext.childuuid) left join groups gr2 on (plnext.groupuuid = gr2.uuid);", - "heads":"action,checkservicenumber,prename,surname,datebeginnow,dateendnow,grpname,datebeginnext,dateendnext,grpname", - "description":"Planification groupes courrant et prochain" -} - -]; - -function getallfilters(){ - var ret = new Array(); - for (var f=0;f' || strftime('%Y-%m-%d',birthday) || '
    ' || strftime('%d.%m.%Y',birthday) as birthday from childs where leavedate >= date('now')", +"heads":"action,checkservicenumber,prename,surname,birthday", +"description":"courants (date actuelle <= date de sortie)"}, +// {"sql":"select '%%ACTION%%' as action, checkservicenumber, prename,surname, '' || strftime('%Y-%m-%d',birthday) || '' || strftime('%d.%m.%Y',birthday) as birthday from childs where checkserviceexpiration >= date('now','-1 months')", +// "heads":"action,checkservicenumber,prename,surname,birthday", +// "description":"expiration checkservice (<= 1 mois)"}, +{"sql":"select '%%ACTION%%' as action, checkservicenumber, prename,surname, '' || strftime('%Y-%m-%d',birthday) || '' || strftime('%d.%m.%Y',birthday) as birthday from childs where entrydate >= date('now')", +"heads":"action,checkservicenumber,prename,surname,birthday", +"description":"futur (date d'entrée >= date actuelle)"}, +{"sql":"select '%%ACTION%%' as action, checkservicenumber, prename,surname, '' || strftime('%Y-%m-%d',birthday) || '' || strftime('%d.%m.%Y',birthday) as birthday from childs", +"heads":"action,checkservicenumber,prename,surname,birthday", +"description":"tous"}, +{"sql":"select '%%ACTION%%' as action, checkservicenumber, prename,surname, '' || strftime('%Y-%m-%d',birthday) || '' || strftime('%d.%m.%Y',birthday) as birthday from childs where leavedate < date('now')", +"heads":"action,checkservicenumber,prename,surname,birthday" , +"description":"anciens (date actuelle > date de sortie)"}, +// {"sql":"select '%%ACTION%%' as action, checkservicenumber, prename,surname, '' || strftime('%Y-%m-%d',birthday) || '' || strftime('%d.%m.%Y',birthday) as birthday from childs where leavedate >= date('now','-2 months') and cautionamount is not null and cautionpayedback is null", +// "heads":"action,checkservicenumber,prename,surname,birthday", +// "description":"Caution à rembourser (sorties < 2 mois)"}, +{"sql":"select '%%ACTION2%%' as action, coalesce(ch.prename,'') || ' ' || coalesce(ch.surname,'') || '
    ' || '(' || coalesce(ch.checkservicenumber,'') || ')' as childname, rp.priority, "+ +" coalesce(rp.prename,'') || ' ' || coalesce(rp.surname,'') as nameprename, "+ + " case when rp.phone is not null then ': ' || rp.phone || '
    ' else '' end || case when rp.mobile is not null then': ' || rp.mobile || '
    ' else '' end || case when rp.workphone is not null then ': ' || rp.workphone || '
    ' else '' end as phone, coalesce(rp.address,'') || '
    ' || coalesce(rp.zip,'') || ' ' || coalesce(rp.city,'') || '
    ' || coalesce(rp.country,'') as address "+ + " from childs ch left join refpersons rp on (ch.uuid=rp.childuuid) where ch.leavedate >= date('now') and ch.checkservicenumber is not null "+ +" order by ch.prename,ch.surname,rp.priority,rp.reftype DESC", +"heads":"action,childname,priority,nameprename,phone,address", +"description":"Parents / Personnes de référence"}, +{"sql":"select '%%ACTION2%%' as action,ch.checkservicenumber as checkservicenumber,ch.prename as prename,ch.surname as surname," + + "'' || strftime('%Y-%m-%d',plnow.datebegin) || '' || strftime('%d.%m.%Y',plnow.datebegin) as datebeginnow,'' || strftime('%Y-%m-%d',plnow.dateend) || '' || strftime('%d.%m.%Y',plnow.dateend) as dateendnow,gr.grpname as grpname, " + + "'' || strftime('%Y-%m-%d',plnext.nextdatebegin) || '' || strftime('%d.%m.%Y',plnext.nextdatebegin) as datebeginnext, '' || strftime('%Y-%m-%d',plnext.nextdateend) || '' || strftime('%d.%m.%Y',plnext.nextdateend) as dateendnext, gr2.grpname as nextgroup " + + "from (select uuid, prename,surname,checkservicenumber from childs where date('now') between entrydate and leavedate) ch left join (select * from planning where date('now') between datebegin and dateend) plnow on (ch.uuid=plnow.childuuid) left join groups gr on (plnow.groupuuid=gr.uuid) " + + "left join (select childuuid, groupuuid,max(datebegin) as nextdatebegin,max(dateend) as nextdateend from planning where datebegin > date('now') group by childuuid ) plnext on (ch.uuid=plnext.childuuid) left join groups gr2 on (plnext.groupuuid = gr2.uuid);", + "heads":"action,checkservicenumber,prename,surname,datebeginnow,dateendnow,grpname,datebeginnext,dateendnext,grpname", + "description":"Planification groupes courrant et prochain" +} + +]; + +function getallfilters(){ + var ret = new Array(); + for (var f=0;f - - - - - - Crèche - - - - - - - - - - - - - - - - - -
    -
    - -
    -
    - -
    - -
    - -
    - - -
    - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    -
    - -
    - -
    Enfants
    -
    -
    -
    -
    -
    - - -
    - -
    Mois
    -
    -
    -
    -
    - -
    - -
    Mois
    -
    -
    -
    -
    - - - -
    -
    - - -
    - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - - + + + + + + + Crèche + + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + +
    + +
    + +
    + + +
    + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    +
    + +
    + +
    Enfants
    +
    +
    +
    +
    +
    + + +
    + +
    Mois
    +
    +
    +
    +
    + +
    + +
    Mois
    +
    +
    +
    +
    + + + +
    +
    + + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + diff --git a/CGI/tmpl/app/creorga/module/creche/js/creche.js b/CGI/tmpl/app/creorga/module/creche/js/creche.js index eef8012..ad3bff7 100644 --- a/CGI/tmpl/app/creorga/module/creche/js/creche.js +++ b/CGI/tmpl/app/creorga/module/creche/js/creche.js @@ -1,467 +1,467 @@ -//Source-code licensed under EUPL v1.2 ( Copyright 2019 By DKS s.à r.l. - Kilian Saffran - Luxembourg ) - -var crident = null; -var pconfig = {}; -var delwkhours = null; -var delplanning = null; -var delgroups = null; -var winh = window.innerHeight - 360; -var weekdays = ['mon','tue','wed','thu','fri','sat']; -var pconfig ={}; -function initdata() { - load_helpers(); - //check_crechetable(); - var sql = "SELECT uuid,crechename, adress, city, country, zip,maxchilds,minage,maxage,idcheckservice FROM creche LIMIT 1;"; - var crdata = parent.appdb.dbquery(sql); - if ((parent.app.info.modules.checkservice) && (parent.app.info.modules.checkservice.export) && (parent.app.info.modules.checkservice.export == true)){ - $("#option_exportcheckservice").show(); - } - if (crdata.sqldata.length == 0){ - crdata = parent.appdb.dbquery(sql); - } - crident = crdata.sqldata[0].uuid; - cdata = crdata.sqldata[0]; - for (var ci in cdata) { - - if (document.getElementById("creche_" + ci)) { - document.getElementById("creche_" + ci).setAttribute('value', cdata[ci]); - } - } - pconfig = parent.apppref.getpreference("creche"); - if (!pconfig) { - pconfig = {}; - - } - - - $('#frmeditgroups #color').minicolors({theme:'bootstrap',position: 'bottom right'}); - if (pconfig && pconfig.activetab) { - $('#tabgrouphead a[href="#' + pconfig.activetab + '"]').tab('show'); - } else { - $('#tabgrouphead a[href="#openinghours"]').tab('show'); - } -} - - -$('#tabgrouphead a[data-toggle="tab"]').on('shown.bs.tab', function(e) { - var tn = e.target.toString(); - - pconfig.activetab = tn.substring(tn.lastIndexOf("#") + 1); - - - if (pconfig.activetab == 'openinghours') { - load_table_workinghours(); - } - if (pconfig.activetab == 'groups') { - load_table_groups(); - } - if (pconfig.activetab == 'planningtemplate') { - load_table_planningtemplate(); - } - -}); - - -function load_table_workinghours() { - - var whsql1 = "select count(*) as cnt from workinghours;"; - var wdata1 = parent.appdb.dbquery(whsql1); - var delbtn = ""; - if (wdata1.sqldata[0].cnt == 1) { - delbtn = ''; - } - var whsql = "SELECT ' " + delbtn + "' as action, strftime('%d.%m.%Y',datestart) as startdate, case when montimeopen is null then 'fermé' else montimeopen || ' - ' || montimeclose end as monday, case when tuetimeopen is null then 'fermé' else tuetimeopen || ' - ' || tuetimeclose end as tuesday, case when wedtimeopen is null then 'fermé' else wedtimeopen || ' - ' || wedtimeclose end as wednesday, case when thutimeopen is null then 'fermé' else thutimeopen || ' - ' || thutimeclose end as thursday, case when fritimeopen is null then 'fermé' else fritimeopen || ' - ' || fritimeclose end as friday, case when sattimeopen is null then 'fermé' else sattimeopen || ' - ' || sattimeclose end as saturday FROM workinghours order by datestart ASC;"; - - var whdata = parent.appdb.dbqueryarray(whsql); - - var headerdata = getlabels(whdata.sqlhead.join(",")); - $("#tbl_workinghours").html(""); - $("#tbl_workinghours").dataTable({ - "language": { - "url": "../../../oldvendor/js/locale/datatable_fr.json" - }, - "data": whdata.sqldata, - "columns": headerdata, - "paging": false, - "scrollY": winh + "px", - "scrollCollapse": true, - "ordering": true, - "info": false, - "filter": false, - "destroy": true - }); - -} - -function load_table_groups() { - var grpsql1 = "select count(*) as cnt from groups;"; - var grpcnt = parent.appdb.dbquery(grpsql1); - var grpdel = "|| case when groupchildcount = 0 then ' ' else '' end"; - if (grpcnt.sqldata[0].cnt <= 1) { - grpdel = ''; - } - var grsql = "select '' " + grpdel + " as action, grpname,case when color is not null then '

    ' else null end as color, maxchilds, minage, maxage,coalesce(minstaff,1) as minstaff from ( select grp.uuid,grp.grpname,grp.color,grp.maxchilds,grp.minage,grp.maxage,grp.minstaff, count(plan.uuid) as groupchildcount from groups grp left join planning plan on (grp.uuid=plan.groupuuid) group by grp.uuid,grp.grpname,grp.maxchilds,grp.minage,grp.maxage order by grp.minage,grp.maxage) order by minage,maxage;"; - - var grdata = parent.appdb.dbqueryarray(grsql); - - var headerdata = getlabels(grdata.sqlhead.join(",")); - $("#tbl_groups").html(""); - var dtbl_groups = $("#tbl_groups").dataTable({ - "language": { - "url": "../../../oldvendor/js/locale/datatable_fr.json" - }, - "data": grdata.sqldata, - "columns": headerdata, - "paging": false, - "scrollY": winh + "px", - "scrollCollapse": true, - "ordering": true, - "info": false, - "filter": false, - "destroy": true - }); -} - -function load_table_planningtemplate() { - - var plansql = "SELECT '" + - "' as action," + 'templatename as name,'; - var xplan = []; - for (var i in weekdays){ - - - xplan.push("case when "+ weekdays[i] +"timebegin is null or "+ weekdays[i] +"timeend is null or "+ weekdays[i] +"timebegin = "+ weekdays[i] +"timeend then '' else "+ weekdays[i] +"timebegin || ' - ' || "+ weekdays[i] +"timeend end || (case when "+ weekdays[i] +"lunch then ' ()' else '' end) || case when "+ weekdays[i] +"timebegin2 = "+ weekdays[i] +"timeend2 or "+ weekdays[i] +"timebegin2 is null or "+ weekdays[i] +"timeend2 is null then '' else '
    ' || "+ weekdays[i] +"timebegin2 || ' - ' || "+ weekdays[i] +"timeend2 end as "+ weekdays[i] +""); - } - plansql += xplan.join(',') + ' from planningtemplate order by templatename;'; - - var tmpldata = parent.appdb.dbqueryarray(plansql); - - var headerdata = getlabels("action,name,mon,tue,wed,thu,fri,sat"); - $("#tbl_planningtemplate").html(""); - $("#tbl_planningtemplate").dataTable({ - "language": { - "url": "../../../oldvendor/js/locale/datatable_fr.json" - }, - "data": tmpldata.sqldata, - "columns": headerdata, - "paging": false, - "scrollY": winh + "px", - "scrollCollapse": true, - "ordering": true, - "info": false, - "filter": false, - "destroy": true - }); -} - -function dlg_workinghours(uuid, type) { - if ((type == 'upd') || (type == 'ins')) { - var cwhsql = "SELECT '0' as uuid,strftime('%d.%m.%Y',date('now')) as datestart, montimeopen, montimeclose, tuetimeopen, tuetimeclose, wedtimeopen, wedtimeclose, thutimeopen, thutimeclose, fritimeopen, fritimeclose FROM workinghours order by datestart DESC LIMIT 1;"; - if (type == 'upd') { - cwhsql = "SELECT uuid,strftime('%d.%m.%Y',datestart) as datestart, montimeopen, montimeclose, tuetimeopen, tuetimeclose, wedtimeopen, wedtimeclose, thutimeopen, thutimeclose, fritimeopen, fritimeclose, sattimeopen FROM workinghours where uuid='" + uuid.uuid + "';"; - } - var cwhdata = parent.appdb.dbquery(cwhsql); - cwhdata = cwhdata.sqldata[0]; - for (var w in cwhdata) { - if ($("#frmeditworkinghours #" + w)) { - - $("#frmeditworkinghours #" + w).val(cwhdata[w]); - } - } - $("#edit_workinghours").modal('show'); - } else if (type == 'del') { - delwkhours = uuid.uuid; - confirm_delete_workinghours(); - } -} - -function dlg_planningtemplate(uuid, type) { - for (var i in weekdays){ - $("#frmeditplanning #" + weekdays[i] + "time2").hide(); - } - if ((type == 'upd') || (type == 'ins')) { - //var grpsql = "SELECT strftime('%d.%m.%Y',date('now')) as startdate, '0,00' as costsperhour,'0,00' as costperhourfallback, '0' as weeklyhourslimit, '0' as dailylunchcosts, '0' as uuid;"; - var hdata = {templatename:"nouveau modèle",uuid:"0", - montimebegin:"00:00",montimeend:"00:00",monlunch:"0",montimebegin2: "00:00",montimeend2: "00:00", - tuetimebegin:"00:00",tuetimeend:"00:00",tuelunch:"0",tuetimebegin2: "00:00",tuetimeend2: "00:00", - wedtimebegin:"00:00",wedtimeend:"00:00",wedlunch:"0",wedtimebegin2: "00:00",wedtimeend2: "00:00", - thutimebegin:"00:00",thutimeend:"00:00",thulunch:"0",thutimebegin2: "00:00",thutimeend2: "00:00", - fritimebegin:"00:00",fritimeend:"00:00",frilunch:"0",fritimebegin2: "00:00",fritimeend2: "00:00" - }; - if (type == 'upd') { - var plxsql = "SELECT uuid, montimebegin, montimeend, monlunch, tuetimebegin, tuetimeend, tuelunch, wedtimebegin, wedtimeend, wedlunch, thutimebegin, thutimeend, thulunch, fritimebegin, fritimeend, frilunch,sattimebegin, sattimeend, satlunch, montimebegin2, montimeend2, tuetimebegin2, tuetimeend2, wedtimebegin2, wedtimeend2, thutimebegin2, thutimeend2, fritimebegin2, fritimeend2,sattimebegin2, sattimeend2, templatename FROM planningtemplate where uuid='" + uuid.uuid + "';"; - var hdbdata = parent.appdb.dbquery(plxsql); - hdata = hdbdata.sqldata[0]; - } - - $("#frmeditplanning #uuid").val(hdata.uuid); - for (var p in hdata) { - - if ($("#frmeditplanning #"+p)) { - - if ($("#" + p).is(':checkbox')) { - if (hdata[p] == '1') { - $("#" + p).prop("checked", true); - } else { - $("#" + p).prop("checked", false); - } - } else { - if ((p.substr(p.length-1) == "2") && (p.indexOf("time") !== -1) && (hdata[p.substr(0,3) + "timebegin2"] !== hdata[p.substr(0,3) + "timeend2"])){ - - $('#' + p.substr(0,3) + "time" + p.substr(p.length-1)).show(); - } - if ((p.indexOf("time") !== -1) && (hdata[p] === "")) { - document.getElementById(p).value = "00:00"; - } else { - document.getElementById(p).value = hdata[p]; - } - } - } - } - - - $("#edit_planning").modal('show'); - } else if (type == 'del') { - delplanning = uuid.uuid; - confirm_delete_planningtemplate(); - } -} - -function dlg_groups(uuid, type) { - if ((type == 'upd') || (type == 'ins')) { - var grpsql = "SELECT '0' as uuid,'nouvelle groupe' as grpname, case when maxchilds > 15 then 15 else maxchilds end as maxchilds, minage, maxage, 1 as minstaff FROM creche LIMIT 1;"; - if (type == 'upd') { - grpsql = "SELECT grpname, maxchilds, minage, maxage,minstaff, uuid,color FROM groups where uuid='" + uuid.uuid + "';" - } - var grpdata = parent.appdb.dbquery(grpsql); - grpdata = grpdata.sqldata[0]; - for (var g in grpdata) { - - if ($("#frmeditgroups #" + g)) { - $("#frmeditgroups #" + g).val(grpdata[g]); - if (g == 'color'){ - $('#frmeditgroups #color').minicolors('value',{color: grpdata[g]}); - } - } - } - $("#edit_groups").modal('show'); - } else if (type == 'del') { - delgroups = uuid.uuid; - confirm_delete_groups(); - } -} - -function save_workinghours() { - var sql1 = new Array(); - var sql2 = new Array(); - var type = 'ins'; - var cuuid = ""; - if ($("#frmeditworkinghours #uuid").val() != 0) { - type = 'upd'; - cuuid = $("#frmeditworkinghours #uuid").val(); - } - $("#frmeditworkinghours :input").each(function() { - var input = $(this); - if (input.attr("id")) { - if (type == 'ins') { - sql1.push('"' + input.attr("id") + '"'); - if (input.attr("id") == 'uuid') { - if (input.val() == "" || input.val() == "0") { - sql2.push("'" + parent.appdb.generate_uuid() + "'"); - } else { - sql2.push("'" + input.val() + "'"); - } - } else { - var ival = encodeparam(input.val(), input.attr('type')); - sql2.push(ival); - } - } else { - if (input.attr("id") != 'uuid') { - var ival = encodeparam(input.val(), input.attr('type')); - sql2.push('"' + input.attr("id") + '"=' + ival); - } - } - - - } - - }); - var xsql = ""; - if (type == 'upd') { - xsql = "UPDATE workinghours SET " + sql2.join(',') + " where \"uuid\"='" + cuuid + "';"; - } else { - xsql = "INSERT INTO workinghours (" + sql1.join(',') + ") VALUES (" + sql2.join(',') + ");"; - } - - parent.appdb.dbexec(xsql); - load_table_workinghours(); - $("#frmeditworkinghours #uuid").val("0"); - $("#edit_workinghours").modal('hide'); -} - -function save_planningtemplate() { - var sql1 = []; - var sql2 = []; - var cuuid = ""; - - if ($("#frmeditplanning #uuid").val() !== "0") { - cuuid = $("#frmeditplanning #uuid").val(); - } - - sql1.push('"templatename"'); - sql2.push(encodeparam($('#frmeditplanning #templatename').val(), "text")); - for (var i in weekdays){ - if ($('#frmeditplanning #' + weekdays[i] + "timebegin").val() !== $('#frmeditplanning #' + weekdays[i] + "timeend").val()){ - sql1.push('"' + weekdays[i] + "timebegin" + '"'); - sql1.push('"' + weekdays[i] + "timeend" + '"'); - sql2.push(encodeparam($('#frmeditplanning #' + weekdays[i] + "timebegin").val(), "text")); - sql2.push(encodeparam($('#frmeditplanning #' + weekdays[i] + "timeend").val(), "text")); - if ($('#frmeditplanning #' + weekdays[i] + "lunch").is(':checked')){ - sql1.push('"' + weekdays[i] + "lunch" + '"'); - sql2.push("'1'"); - } - } - if ($('#frmeditplanning #' + weekdays[i] + "timebegin2").val() !== $('#frmeditplanning #' + weekdays[i] + "timeend2").val()){ - sql1.push('"' + weekdays[i] + "timebegin2" + '"'); - sql1.push('"' + weekdays[i] + "timeend2" + '"'); - sql2.push(encodeparam($('#frmeditplanning #' + weekdays[i] + "timebegin2").val(), "text")); - sql2.push(encodeparam($('#frmeditplanning #' + weekdays[i] + "timeend2").val(), "text")); - } - } - if (cuuid !== '') { - parent.appdb.dbexec("DELETE FROM planningtemplate where \"uuid\"='" + cuuid + "';"); - sql1.push('"uuid"'); - sql2.push("'"+cuuid+"'"); - }else { - sql1.push('"uuid"'); - sql2.push("'"+parent.appdb.generate_uuid()+"'"); - } - var xsql = "INSERT INTO planningtemplate (" + sql1.join(',') + ") VALUES (" + sql2.join(',') + ");"; - - parent.appdb.dbexec(xsql); - load_table_planningtemplate(); - $("#frmeditplanning #uuid").val("0"); - $("#edit_planning").modal('hide'); -} - -function save_group() { - var sql1 = new Array(); - var sql2 = new Array(); - var type = 'ins'; - var cuuid = ""; - - if ($("#frmeditgroups #uuid").val() != 0) { - type = 'upd'; - cuuid = $("#frmeditgroups #uuid").val(); - } - $("#frmeditgroups :input").each(function() { - var input = $(this); - if (input.attr("id")) { - if (type == 'ins') { - sql1.push('"' + input.attr("id") + '"'); - if (input.attr("id") == 'uuid') { - if (input.val() == "" || input.val() == "0") { - sql2.push("'" + parent.appdb.generate_uuid() + "'"); - } else { - sql2.push("'" + input.val() + "'"); - } - } else { - var ival = encodeparam(input.val(), input.attr('type')); - sql2.push(ival); - } - } else { - if (input.attr("id") != 'uuid') { - var ival = encodeparam(input.val(), input.attr('type')); - sql2.push('"' + input.attr("id") + '"=' + ival); - } - } - - - } - - }); - var xsql = ""; - if (type == 'upd') { - xsql = "UPDATE groups SET " + sql2.join(',') + " where \"uuid\"='" + cuuid + "';"; - } else { - xsql = "INSERT INTO groups (" + sql1.join(',') + ") VALUES (" + sql2.join(',') + ");"; - } - - parent.appdb.dbexec(xsql); - load_table_groups(); - $("#frmeditgroups #uuid").val("0"); - $("#edit_groups").modal('hide'); -} - -function confirm_delete_workinghours() { - $("#confirm_delete_workinghours").modal('show'); - return false; -} - -function confirm_delete_planningtemplate() { - $("#confirm_delete_planningtemplate").modal('show'); - return false; -} - -function confirm_delete_groups() { - $("#confirm_delete_groups").modal('show'); - return false; -} - - - -function delete_groups() { - - parent.appdb.dbexec("DELETE FROM groups where uuid='" + delgroups + "';"); - delgroups = null; - load_table_groups(); - - $("#confirm_delete_groups").modal('hide'); - - return false; -} - -function delete_workinghours() { - var delsql = "DELETE FROM workinghours where uuid='" + delwkhours + "';"; - parent.appdb.dbexec(delsql); - delwhours = null; - load_table_workinghours(); - - $("#confirm_delete_workinghours").modal('hide'); - - return false; -} - -function delete_planningtemplate() { - - parent.appdb.dbexec("DELETE FROM planningtemplate where uuid='" + delplanning + "'"); - delplanning = null; - load_table_planningtemplate(); - - $("#confirm_delete_planningtemplate").modal('hide'); - - return false; -} - -function display_tblrow(trid) { - $('#frmeditplanning #' + trid + "time2").show(); - -} - -function hide_tblrow(trid) { - - $('#frmeditplanning #' + trid.substr(0,3)+"timebegin2").val("00:00"); - $('#frmeditplanning #' + trid.substr(0,3)+"timeend2").val("00:00"); - $('#frmeditplanning #' + trid).hide(); -} - -function check_defaultdata() { - -} - -function check_crechetable(){ - var cols = parent.appdb.dbquery("SELECT type, name,tbl_name,sql FROM sqlite_master where tbl_name='creche';"); - if (cols.sqldata[0].sql.indexOf("idcheckservice") == -1){ - parent.appdb.dbexec("ALTER TABLE accounting add column idcheckservice TEXT;"); - } +//Source-code licensed under EUPL v1.2 ( Copyright 2019 By DKS s.à r.l. - Kilian Saffran - Luxembourg ) + +var crident = null; +var pconfig = {}; +var delwkhours = null; +var delplanning = null; +var delgroups = null; +var winh = window.innerHeight - 360; +var weekdays = ['mon','tue','wed','thu','fri','sat']; +var pconfig ={}; +function initdata() { + load_helpers(); + //check_crechetable(); + var sql = "SELECT uuid,crechename, adress, city, country, zip,maxchilds,minage,maxage,idcheckservice FROM creche LIMIT 1;"; + var crdata = parent.appdb.dbquery(sql); + if ((parent.app.info.modules.checkservice) && (parent.app.info.modules.checkservice.export) && (parent.app.info.modules.checkservice.export == true)){ + $("#option_exportcheckservice").show(); + } + if (crdata.sqldata.length == 0){ + crdata = parent.appdb.dbquery(sql); + } + crident = crdata.sqldata[0].uuid; + cdata = crdata.sqldata[0]; + for (var ci in cdata) { + + if (document.getElementById("creche_" + ci)) { + document.getElementById("creche_" + ci).setAttribute('value', cdata[ci]); + } + } + pconfig = parent.apppref.getpreference("creche"); + if (!pconfig) { + pconfig = {}; + + } + + + $('#frmeditgroups #color').minicolors({theme:'bootstrap',position: 'bottom right'}); + if (pconfig && pconfig.activetab) { + $('#tabgrouphead a[href="#' + pconfig.activetab + '"]').tab('show'); + } else { + $('#tabgrouphead a[href="#openinghours"]').tab('show'); + } +} + + +$('#tabgrouphead a[data-toggle="tab"]').on('shown.bs.tab', function(e) { + var tn = e.target.toString(); + + pconfig.activetab = tn.substring(tn.lastIndexOf("#") + 1); + + + if (pconfig.activetab == 'openinghours') { + load_table_workinghours(); + } + if (pconfig.activetab == 'groups') { + load_table_groups(); + } + if (pconfig.activetab == 'planningtemplate') { + load_table_planningtemplate(); + } + +}); + + +function load_table_workinghours() { + + var whsql1 = "select count(*) as cnt from workinghours;"; + var wdata1 = parent.appdb.dbquery(whsql1); + var delbtn = ""; + if (wdata1.sqldata[0].cnt == 1) { + delbtn = ''; + } + var whsql = "SELECT ' " + delbtn + "' as action, strftime('%d.%m.%Y',datestart) as startdate, case when montimeopen is null then 'fermé' else montimeopen || ' - ' || montimeclose end as monday, case when tuetimeopen is null then 'fermé' else tuetimeopen || ' - ' || tuetimeclose end as tuesday, case when wedtimeopen is null then 'fermé' else wedtimeopen || ' - ' || wedtimeclose end as wednesday, case when thutimeopen is null then 'fermé' else thutimeopen || ' - ' || thutimeclose end as thursday, case when fritimeopen is null then 'fermé' else fritimeopen || ' - ' || fritimeclose end as friday, case when sattimeopen is null then 'fermé' else sattimeopen || ' - ' || sattimeclose end as saturday FROM workinghours order by datestart ASC;"; + + var whdata = parent.appdb.dbqueryarray(whsql); + + var headerdata = getlabels(whdata.sqlhead.join(",")); + $("#tbl_workinghours").html(""); + $("#tbl_workinghours").dataTable({ + "language": { + "url": "../../../oldvendor/js/locale/datatable_fr.json" + }, + "data": whdata.sqldata, + "columns": headerdata, + "paging": false, + "scrollY": winh + "px", + "scrollCollapse": true, + "ordering": true, + "info": false, + "filter": false, + "destroy": true + }); + +} + +function load_table_groups() { + var grpsql1 = "select count(*) as cnt from groups;"; + var grpcnt = parent.appdb.dbquery(grpsql1); + var grpdel = "|| case when groupchildcount = 0 then ' ' else '' end"; + if (grpcnt.sqldata[0].cnt <= 1) { + grpdel = ''; + } + var grsql = "select '' " + grpdel + " as action, grpname,case when color is not null then '

    ' else null end as color, maxchilds, minage, maxage,coalesce(minstaff,1) as minstaff from ( select grp.uuid,grp.grpname,grp.color,grp.maxchilds,grp.minage,grp.maxage,grp.minstaff, count(plan.uuid) as groupchildcount from groups grp left join planning plan on (grp.uuid=plan.groupuuid) group by grp.uuid,grp.grpname,grp.maxchilds,grp.minage,grp.maxage order by grp.minage,grp.maxage) order by minage,maxage;"; + + var grdata = parent.appdb.dbqueryarray(grsql); + + var headerdata = getlabels(grdata.sqlhead.join(",")); + $("#tbl_groups").html(""); + var dtbl_groups = $("#tbl_groups").dataTable({ + "language": { + "url": "../../../oldvendor/js/locale/datatable_fr.json" + }, + "data": grdata.sqldata, + "columns": headerdata, + "paging": false, + "scrollY": winh + "px", + "scrollCollapse": true, + "ordering": true, + "info": false, + "filter": false, + "destroy": true + }); +} + +function load_table_planningtemplate() { + + var plansql = "SELECT '" + + "' as action," + 'templatename as name,'; + var xplan = []; + for (var i in weekdays){ + + + xplan.push("case when "+ weekdays[i] +"timebegin is null or "+ weekdays[i] +"timeend is null or "+ weekdays[i] +"timebegin = "+ weekdays[i] +"timeend then '' else "+ weekdays[i] +"timebegin || ' - ' || "+ weekdays[i] +"timeend end || (case when "+ weekdays[i] +"lunch then ' ()' else '' end) || case when "+ weekdays[i] +"timebegin2 = "+ weekdays[i] +"timeend2 or "+ weekdays[i] +"timebegin2 is null or "+ weekdays[i] +"timeend2 is null then '' else '
    ' || "+ weekdays[i] +"timebegin2 || ' - ' || "+ weekdays[i] +"timeend2 end as "+ weekdays[i] +""); + } + plansql += xplan.join(',') + ' from planningtemplate order by templatename;'; + + var tmpldata = parent.appdb.dbqueryarray(plansql); + + var headerdata = getlabels("action,name,mon,tue,wed,thu,fri,sat"); + $("#tbl_planningtemplate").html(""); + $("#tbl_planningtemplate").dataTable({ + "language": { + "url": "../../../oldvendor/js/locale/datatable_fr.json" + }, + "data": tmpldata.sqldata, + "columns": headerdata, + "paging": false, + "scrollY": winh + "px", + "scrollCollapse": true, + "ordering": true, + "info": false, + "filter": false, + "destroy": true + }); +} + +function dlg_workinghours(uuid, type) { + if ((type == 'upd') || (type == 'ins')) { + var cwhsql = "SELECT '0' as uuid,strftime('%d.%m.%Y',date('now')) as datestart, montimeopen, montimeclose, tuetimeopen, tuetimeclose, wedtimeopen, wedtimeclose, thutimeopen, thutimeclose, fritimeopen, fritimeclose FROM workinghours order by datestart DESC LIMIT 1;"; + if (type == 'upd') { + cwhsql = "SELECT uuid,strftime('%d.%m.%Y',datestart) as datestart, montimeopen, montimeclose, tuetimeopen, tuetimeclose, wedtimeopen, wedtimeclose, thutimeopen, thutimeclose, fritimeopen, fritimeclose, sattimeopen FROM workinghours where uuid='" + uuid.uuid + "';"; + } + var cwhdata = parent.appdb.dbquery(cwhsql); + cwhdata = cwhdata.sqldata[0]; + for (var w in cwhdata) { + if ($("#frmeditworkinghours #" + w)) { + + $("#frmeditworkinghours #" + w).val(cwhdata[w]); + } + } + $("#edit_workinghours").modal('show'); + } else if (type == 'del') { + delwkhours = uuid.uuid; + confirm_delete_workinghours(); + } +} + +function dlg_planningtemplate(uuid, type) { + for (var i in weekdays){ + $("#frmeditplanning #" + weekdays[i] + "time2").hide(); + } + if ((type == 'upd') || (type == 'ins')) { + //var grpsql = "SELECT strftime('%d.%m.%Y',date('now')) as startdate, '0,00' as costsperhour,'0,00' as costperhourfallback, '0' as weeklyhourslimit, '0' as dailylunchcosts, '0' as uuid;"; + var hdata = {templatename:"nouveau modèle",uuid:"0", + montimebegin:"00:00",montimeend:"00:00",monlunch:"0",montimebegin2: "00:00",montimeend2: "00:00", + tuetimebegin:"00:00",tuetimeend:"00:00",tuelunch:"0",tuetimebegin2: "00:00",tuetimeend2: "00:00", + wedtimebegin:"00:00",wedtimeend:"00:00",wedlunch:"0",wedtimebegin2: "00:00",wedtimeend2: "00:00", + thutimebegin:"00:00",thutimeend:"00:00",thulunch:"0",thutimebegin2: "00:00",thutimeend2: "00:00", + fritimebegin:"00:00",fritimeend:"00:00",frilunch:"0",fritimebegin2: "00:00",fritimeend2: "00:00" + }; + if (type == 'upd') { + var plxsql = "SELECT uuid, montimebegin, montimeend, monlunch, tuetimebegin, tuetimeend, tuelunch, wedtimebegin, wedtimeend, wedlunch, thutimebegin, thutimeend, thulunch, fritimebegin, fritimeend, frilunch,sattimebegin, sattimeend, satlunch, montimebegin2, montimeend2, tuetimebegin2, tuetimeend2, wedtimebegin2, wedtimeend2, thutimebegin2, thutimeend2, fritimebegin2, fritimeend2,sattimebegin2, sattimeend2, templatename FROM planningtemplate where uuid='" + uuid.uuid + "';"; + var hdbdata = parent.appdb.dbquery(plxsql); + hdata = hdbdata.sqldata[0]; + } + + $("#frmeditplanning #uuid").val(hdata.uuid); + for (var p in hdata) { + + if ($("#frmeditplanning #"+p)) { + + if ($("#" + p).is(':checkbox')) { + if (hdata[p] == '1') { + $("#" + p).prop("checked", true); + } else { + $("#" + p).prop("checked", false); + } + } else { + if ((p.substr(p.length-1) == "2") && (p.indexOf("time") !== -1) && (hdata[p.substr(0,3) + "timebegin2"] !== hdata[p.substr(0,3) + "timeend2"])){ + + $('#' + p.substr(0,3) + "time" + p.substr(p.length-1)).show(); + } + if ((p.indexOf("time") !== -1) && (hdata[p] === "")) { + document.getElementById(p).value = "00:00"; + } else { + document.getElementById(p).value = hdata[p]; + } + } + } + } + + + $("#edit_planning").modal('show'); + } else if (type == 'del') { + delplanning = uuid.uuid; + confirm_delete_planningtemplate(); + } +} + +function dlg_groups(uuid, type) { + if ((type == 'upd') || (type == 'ins')) { + var grpsql = "SELECT '0' as uuid,'nouvelle groupe' as grpname, case when maxchilds > 15 then 15 else maxchilds end as maxchilds, minage, maxage, 1 as minstaff FROM creche LIMIT 1;"; + if (type == 'upd') { + grpsql = "SELECT grpname, maxchilds, minage, maxage,minstaff, uuid,color FROM groups where uuid='" + uuid.uuid + "';" + } + var grpdata = parent.appdb.dbquery(grpsql); + grpdata = grpdata.sqldata[0]; + for (var g in grpdata) { + + if ($("#frmeditgroups #" + g)) { + $("#frmeditgroups #" + g).val(grpdata[g]); + if (g == 'color'){ + $('#frmeditgroups #color').minicolors('value',{color: grpdata[g]}); + } + } + } + $("#edit_groups").modal('show'); + } else if (type == 'del') { + delgroups = uuid.uuid; + confirm_delete_groups(); + } +} + +function save_workinghours() { + var sql1 = new Array(); + var sql2 = new Array(); + var type = 'ins'; + var cuuid = ""; + if ($("#frmeditworkinghours #uuid").val() != 0) { + type = 'upd'; + cuuid = $("#frmeditworkinghours #uuid").val(); + } + $("#frmeditworkinghours :input").each(function() { + var input = $(this); + if (input.attr("id")) { + if (type == 'ins') { + sql1.push('"' + input.attr("id") + '"'); + if (input.attr("id") == 'uuid') { + if (input.val() == "" || input.val() == "0") { + sql2.push("'" + parent.appdb.generate_uuid() + "'"); + } else { + sql2.push("'" + input.val() + "'"); + } + } else { + var ival = encodeparam(input.val(), input.attr('type')); + sql2.push(ival); + } + } else { + if (input.attr("id") != 'uuid') { + var ival = encodeparam(input.val(), input.attr('type')); + sql2.push('"' + input.attr("id") + '"=' + ival); + } + } + + + } + + }); + var xsql = ""; + if (type == 'upd') { + xsql = "UPDATE workinghours SET " + sql2.join(',') + " where \"uuid\"='" + cuuid + "';"; + } else { + xsql = "INSERT INTO workinghours (" + sql1.join(',') + ") VALUES (" + sql2.join(',') + ");"; + } + + parent.appdb.dbexec(xsql); + load_table_workinghours(); + $("#frmeditworkinghours #uuid").val("0"); + $("#edit_workinghours").modal('hide'); +} + +function save_planningtemplate() { + var sql1 = []; + var sql2 = []; + var cuuid = ""; + + if ($("#frmeditplanning #uuid").val() !== "0") { + cuuid = $("#frmeditplanning #uuid").val(); + } + + sql1.push('"templatename"'); + sql2.push(encodeparam($('#frmeditplanning #templatename').val(), "text")); + for (var i in weekdays){ + if ($('#frmeditplanning #' + weekdays[i] + "timebegin").val() !== $('#frmeditplanning #' + weekdays[i] + "timeend").val()){ + sql1.push('"' + weekdays[i] + "timebegin" + '"'); + sql1.push('"' + weekdays[i] + "timeend" + '"'); + sql2.push(encodeparam($('#frmeditplanning #' + weekdays[i] + "timebegin").val(), "text")); + sql2.push(encodeparam($('#frmeditplanning #' + weekdays[i] + "timeend").val(), "text")); + if ($('#frmeditplanning #' + weekdays[i] + "lunch").is(':checked')){ + sql1.push('"' + weekdays[i] + "lunch" + '"'); + sql2.push("'1'"); + } + } + if ($('#frmeditplanning #' + weekdays[i] + "timebegin2").val() !== $('#frmeditplanning #' + weekdays[i] + "timeend2").val()){ + sql1.push('"' + weekdays[i] + "timebegin2" + '"'); + sql1.push('"' + weekdays[i] + "timeend2" + '"'); + sql2.push(encodeparam($('#frmeditplanning #' + weekdays[i] + "timebegin2").val(), "text")); + sql2.push(encodeparam($('#frmeditplanning #' + weekdays[i] + "timeend2").val(), "text")); + } + } + if (cuuid !== '') { + parent.appdb.dbexec("DELETE FROM planningtemplate where \"uuid\"='" + cuuid + "';"); + sql1.push('"uuid"'); + sql2.push("'"+cuuid+"'"); + }else { + sql1.push('"uuid"'); + sql2.push("'"+parent.appdb.generate_uuid()+"'"); + } + var xsql = "INSERT INTO planningtemplate (" + sql1.join(',') + ") VALUES (" + sql2.join(',') + ");"; + + parent.appdb.dbexec(xsql); + load_table_planningtemplate(); + $("#frmeditplanning #uuid").val("0"); + $("#edit_planning").modal('hide'); +} + +function save_group() { + var sql1 = new Array(); + var sql2 = new Array(); + var type = 'ins'; + var cuuid = ""; + + if ($("#frmeditgroups #uuid").val() != 0) { + type = 'upd'; + cuuid = $("#frmeditgroups #uuid").val(); + } + $("#frmeditgroups :input").each(function() { + var input = $(this); + if (input.attr("id")) { + if (type == 'ins') { + sql1.push('"' + input.attr("id") + '"'); + if (input.attr("id") == 'uuid') { + if (input.val() == "" || input.val() == "0") { + sql2.push("'" + parent.appdb.generate_uuid() + "'"); + } else { + sql2.push("'" + input.val() + "'"); + } + } else { + var ival = encodeparam(input.val(), input.attr('type')); + sql2.push(ival); + } + } else { + if (input.attr("id") != 'uuid') { + var ival = encodeparam(input.val(), input.attr('type')); + sql2.push('"' + input.attr("id") + '"=' + ival); + } + } + + + } + + }); + var xsql = ""; + if (type == 'upd') { + xsql = "UPDATE groups SET " + sql2.join(',') + " where \"uuid\"='" + cuuid + "';"; + } else { + xsql = "INSERT INTO groups (" + sql1.join(',') + ") VALUES (" + sql2.join(',') + ");"; + } + + parent.appdb.dbexec(xsql); + load_table_groups(); + $("#frmeditgroups #uuid").val("0"); + $("#edit_groups").modal('hide'); +} + +function confirm_delete_workinghours() { + $("#confirm_delete_workinghours").modal('show'); + return false; +} + +function confirm_delete_planningtemplate() { + $("#confirm_delete_planningtemplate").modal('show'); + return false; +} + +function confirm_delete_groups() { + $("#confirm_delete_groups").modal('show'); + return false; +} + + + +function delete_groups() { + + parent.appdb.dbexec("DELETE FROM groups where uuid='" + delgroups + "';"); + delgroups = null; + load_table_groups(); + + $("#confirm_delete_groups").modal('hide'); + + return false; +} + +function delete_workinghours() { + var delsql = "DELETE FROM workinghours where uuid='" + delwkhours + "';"; + parent.appdb.dbexec(delsql); + delwhours = null; + load_table_workinghours(); + + $("#confirm_delete_workinghours").modal('hide'); + + return false; +} + +function delete_planningtemplate() { + + parent.appdb.dbexec("DELETE FROM planningtemplate where uuid='" + delplanning + "'"); + delplanning = null; + load_table_planningtemplate(); + + $("#confirm_delete_planningtemplate").modal('hide'); + + return false; +} + +function display_tblrow(trid) { + $('#frmeditplanning #' + trid + "time2").show(); + +} + +function hide_tblrow(trid) { + + $('#frmeditplanning #' + trid.substr(0,3)+"timebegin2").val("00:00"); + $('#frmeditplanning #' + trid.substr(0,3)+"timeend2").val("00:00"); + $('#frmeditplanning #' + trid).hide(); +} + +function check_defaultdata() { + +} + +function check_crechetable(){ + var cols = parent.appdb.dbquery("SELECT type, name,tbl_name,sql FROM sqlite_master where tbl_name='creche';"); + if (cols.sqldata[0].sql.indexOf("idcheckservice") == -1){ + parent.appdb.dbexec("ALTER TABLE accounting add column idcheckservice TEXT;"); + } } \ No newline at end of file diff --git a/CGI/tmpl/app/creorga/module/presences/dailypresences.tt b/CGI/tmpl/app/creorga/module/presences/dailypresences.tt index 35e53f6..8e5e25c 100644 --- a/CGI/tmpl/app/creorga/module/presences/dailypresences.tt +++ b/CGI/tmpl/app/creorga/module/presences/dailypresences.tt @@ -1,178 +1,178 @@ - - - - - - - Présences par jour - - - - - - - - - - - - - - - - - -
    - - -
    -
    -
    - - - -
    - - - - - - - - - - - - - - + + + + + + + Présences par jour + + + + + + + + + + + + + + + + + +
    + + +
    +
    +
    + + + +
    + + + + + + + + + + + + + + diff --git a/CGI/tmpl/app/creorga/module/presences/js/dailypresences.js b/CGI/tmpl/app/creorga/module/presences/js/dailypresences.js index 953a308..245ebcc 100644 --- a/CGI/tmpl/app/creorga/module/presences/js/dailypresences.js +++ b/CGI/tmpl/app/creorga/module/presences/js/dailypresences.js @@ -1,404 +1,404 @@ -//Source-code licensed under EUPL v1.2 ( Copyright 2019 By DKS s.à r.l. - Kilian Saffran - Luxembourg ) - -var pconfig = { - "groupuuid": null, - "presday": null -}; -var weekdates = null; -var initdate = new Date(); -var cdate = initdate.toISOString().substring(0,10); - -var wh= window.innerHeight -190; - -var tableheadssql = ""; -var weekday = initdate.getDay(); - -var presencedropdown = ''; - -var wdays = ["sun","mon","tue","wed","thu","fri","sat"]; - -var presences = { - "btn-default": 0, - "btn-success": 1, - "btn-warning": 2, - "btn-danger": 3, - "btn-absent2": 31, - "btn-info": 4, - "btn-primary": 5 -}; - -var presenceids = { - 0: { - text: "default", - class: "btn-default", - icon: '' - - }, - 1: { - text: "success", - class: "btn-success", - icon: '' - - }, - 2: { - text: "warning", - class: "btn-warning", - icon: '' - }, - 3: { - text: "danger", - class: "btn-danger", - icon: '' - }, - 31: { - text: "absent2", - class: "btn-absent2", - icon: '' - }, - 4: { - text: "info", - class: "btn-info", - icon: '' - }, - 5: { - text: "primary", - class: "btn-primary", - icon: '' - } -}; - -$("#presday").on("dp.hide", function () { - change_day(); -}); - -$('input[id^="txt"]').on('keydown',function(e){ - var keycode = e.keyCode || e.which; - - if ( keycode == 9 ){ - - $(this).next('input').focus(); - - } - -}); -// $('input[id^="txt"]').on('blur',function(e){ -// console.log($(this).attr("id")); -// savetime($(this)); -// } -// ); - -function initdata() { - load_helpers(); - $('input').on("click", function () { - $(this).select(); - }); - pconfig = getSearchParams(); - - - if (pconfig.presday) { - initdate = new Date(pconfig.presday); - - $("#presday").val(pconfig.presday); - }else{ - $("#presday").val(initdate.toISOString().substring(0,10)); - } - loadtable(); - -} - - -function loadtable(){ - - $("#tbldailypresences").html(""); - - cdate = initdate.toISOString().substring(0,10); - var daygroupsql = "SELECT ch.uuid as childuuid, ch.prename || ' ' || ch.surname AS childname, "+ - "gr.uuid as groupuuid, gr.grpname as grpname, " + - "pr.begintime1 as begintime1, pr.endtime1 as endtime1, pr.begintime2 as begintime2, pr.endtime2 as endtime2, pr.status as status, pr.lunch as lunch, "+ - wdays[weekday]+"timebegin as plantimebegin, "+wdays[weekday]+"timeend as plantimeend, "+ - wdays[weekday]+"timebegin2 as plantimebegin2, "+wdays[weekday]+"timeend2 as plantimeend2, "+wdays[weekday]+"lunch as planlunch , "+ - "case when pr.childuuid is not null then 'upd' else 'ins' end as ddltype "+ - "from childs ch "+ - "LEFT JOIN presence pr ON (pr.childuuid = ch.uuid and pr.daydate = date('"+cdate+"')) "+ - "left join planning pl on (pl.childuuid = ch.uuid and date('"+cdate+"') between pl.datebegin and pl.dateend ) "+ - "LEFT JOIN groups gr ON (pl.groupuuid = gr.uuid) "+ - " where ch.entrydate <= date('"+cdate+"') and ch.leavedate >= date('"+cdate+"')"; - - var dpresdata = parent.appdb.dbquery(daygroupsql); - - var headerdata = getlabels("act,grpname,childname,effectiftime,status,plannedtime"); - - var headdata = ""; - for (var h=0;h'; - } - } - $("#tbldailypresences > thead").append('' + headdata+ ''); - var dpdata = dpresdata.sqldata; - - for (var b in dpdata){ - var row = dpdata[b]; - - var rdata = ''+ row.grpname +''+row.childname+''; - - rdata += '
    '+ - ' de: '+ - '
    ' + - '
    '+ - ' à: '+ - '
    '+ - '
    ' + - 'et de: '+ - '
    ' + - '
    '+ - ' à: '+ - '
    '+ - '
    ' + - '

    '; - rdata += ''+ - '
    ' + - '' +'
    ' + - '
    ' + - ''; - rdata += ''+row.plantimebegin +' - ' + row.plantimeend + ''+ ((row.planlunch == "1")?' ()':'')+''+ - ((row.plantimebegin2 != '')?'
    '+row.plantimebegin2 +' - ' + row.plantimeend2 + '':'')+ - ''; - - - $("#tbldailypresences > tbody").append(''+rdata+''); - } - - $("#tbldailypresences").dataTable({ - "language": { - "url": "../../../oldvendor/js/locale/datatable_fr.json" - }, - "paging": false, - "scrollY": wh + "px", - "scrollCollapse": true, - "info": false, - "ordering": true, - "filter": true, - "destroy": true - }); - - - - setallpresences(); -} - -function savetime(obj){ - var fdata =obj.id.split("_"); - //console.log('savetime'); - //console.log(fdata); - - var timeval = obj.value; - //console.log("Tval 1:" + timeval); - var ddltype = $("#" + fdata[1]+ "_ddltype").html(); - - var psqltime = ""; - if (timeval == ''){ - timeval='null'; - }else{ - timeval = timeval.replace(/[^\d]/g, '') + "0000"; - timeval = timeval.substring(0,2) + ":" + timeval.substring(2,4); - $("#" + obj.id).val(timeval); - timeval = "'" + timeval + "'"; - } - - // console.log("Tval 2:" + timeval); - if (ddltype == 'upd'){ - - if (fdata[0] == "txtbegintime1"){ - psqltime = "update presence set begintime1="+timeval+" where childuuid='"+fdata[1]+"' and daydate=date('"+initdate.toISOString().substring(0,10)+"');"; - } else if (fdata[0] == "txtendtime1"){ - psqltime = "update presence set endtime1="+timeval+" where childuuid='"+fdata[1]+"' and daydate=date('"+initdate.toISOString().substring(0,10)+"');"; - } else if (fdata[0] == "txtbegintime2"){ - psqltime = "update presence set begintime2="+timeval+" where childuuid='"+fdata[1]+"' and daydate=date('"+initdate.toISOString().substring(0,10)+"');"; - } else if (fdata[0] == "txtendtime2") { - psqltime = "update presence set endtime2="+timeval+" where childuuid='"+fdata[1]+"' and daydate=date('"+initdate.toISOString().substring(0,10)+"');"; - } else { - return false; - } - } else if (ddltype == 'ins'){ - var xfield = fdata[0].substring(3); - var psqltime = "INSERT INTO presence (status,childuuid,daydate,lunch,"+xfield+") VALUES "; - psqltime += "(1,'" + fdata[1] + "',date('" + initdate.toISOString().substring(0,10) + "')," + - ((($("#planlunch_" + fdata[1]).exists()) && ($("#planlunch_" + fdata[1]).html() != ''))?"'1'":'null') + ","+timeval+");"; - } - // console.log(psqltime); - if (psqltime !== ""){ - - parent.appdb.dbexec(psqltime); - if (ddltype == 'ins'){ - $("#" + fdata[1]+ "_ddltype").html('upd'); - } - } -} - -function setlunch(childuuid,status) { - - var lunch = 'null'; - if (status == 1) { - $("#btn_" + childuuid+ "_lunch").removeClass('btn-default'); - $("#btn_" + childuuid+ "_lunch").addClass('btn-success'); - lunch = "'1'"; - } else { - $("#btn_" + childuuid+ "_lunch").removeClass('btn-success'); - $("#btn_" + childuuid+ "_lunch").addClass('btn-default'); - lunch = "'0'"; - } - - parent.appdb.dbexec("update presence set lunch=" + lunch + " where daydate=date('" + initdate.toISOString().substring(0,10) + "') and childuuid='" + childuuid + "';"); - -} - -function setpresence(childuuid,newstatus) { - - var ddltype = $("#" + childuuid + "_ddltype").html(); - - var usql = ""; - if (newstatus == 0){ - $("#btn_" + childuuid + "_lunch").css("display", "none"); - } else { - $("#btn_" + childuuid + "_lunch").css("display", ""); - } - if ((ddltype=='ins') && (newstatus != 0)){ - - usql = "INSERT INTO presence (status,childuuid,daydate,lunch) "+ - "VALUES (" + newstatus + ",'" + childuuid + "',date('" + initdate.toISOString().substring(0,10) + "')," + - ((($("#planlunch_" + childuuid).exists()) && ($("#planlunch_" + childuuid).html() != '') && newstatus==1)?"'1'":'null') + ");"; - - } else if (newstatus == 0) { - - usql = "DELETE FROM presence where childuuid='" + childuuid + "' and daydate=date('" + initdate.toISOString().substring(0,10) + "');"; - $("#txtbegintime1_" + childuuid).val(''); - $("#txtendtime1_" + childuuid).val(''); - $("#txtbegintime2_" + childuuid).val(''); - $("#txtendtime2_" + childuuid).val(''); - $("#btn_" + childuuid+ "_lunch").removeClass('btn-success'); - $("#btn_" + childuuid+ "_lunch").addClass('btn-default'); - - } else { - var usql = "UPDATE presence SET status=" + newstatus + " where childuuid='" + childuuid + "' and daydate=date('" + initdate.toISOString().substring(0,10) + "');"; - - } - parent.appdb.dbexec(usql); - $("#" + childuuid + "_ddltype").html("upd"); - $("#btn_" + childuuid).attr("class","btn " + presenceids[newstatus].class + " dropdown-toggle"); - $("#btn_" + childuuid).html(presenceids[newstatus].icon); - - if (newstatus != 0 && newstatus != 1 && newstatus != 5){ - $("#frm_" + childuuid).css("display","none"); - }else { - $("#frm_" + childuuid).css("display",""); - } - - if (($("#planlunch_" + childuuid).exists()) && ($("#planlunch_" + childuuid).html() != '') && newstatus == 1){ - setlunch(childuuid,1); - } - -} - -function setalltopresent(){ - $('body').css('cursor','wait'); - - $("button[id^=btn_]").each( - function(){ - if (($(this).attr("id").indexOf("lunch") == -1) && ($(this).attr("class").indexOf("btn-default") != -1)) { - var btnspl =$(this).attr("id").split("_"); - setpresence(btnspl[1],1); - } - - } - ); - $('body').css('cursor','auto'); -} - - - -function setallpresences() { - var prsql = "select daydate,childuuid,status,lunch from presence where daydate = date('" +initdate.toISOString().substring(0,10) + "');"; - var presdata = parent.appdb.dbquery(prsql); - presdata = presdata.sqldata; - if (presdata) { - for (var p in presdata) { - if ($("#btn_" + presdata[p].childuuid ).exists()) { - $("#btn_" + presdata[p].childuuid).attr("class","btn " + presenceids[presdata[p].status].class + " dropdown-toggle"); - $("#btn_" + presdata[p].childuuid).html(presenceids[presdata[p].status].icon); - $("#btn_" + presdata[p].childuuid + "_lunch").css("display",""); - } - if (presdata[p].lunch == 1){ - $("#btn_" + presdata[p].childuuid + "_lunch").attr("class","btn btn-success dropdown-toggle"); - - } - - - } - } -} - - -function change_day() { - pconfig.presday = $('#presday').val(); - initdate=new Date(pconfig.presday); - parent.apppref.setpreference("dailypresences",pconfig); - loadtable(); - -} - -function onpreviousday() { - pconfig.presday = $('#presday').val(); - - var tmpweek = new Date(pconfig.presday); - var nweek = new Date(tmpweek.getFullYear(), tmpweek.getMonth(), tmpweek.getDate()); - - if (nweek.getDay() == 1){ - nweek = new Date(tmpweek.getFullYear(), tmpweek.getMonth(), tmpweek.getDate()-2); - } - - pconfig.presday = nweek.toISOString().substring(0,10); - initdate=new Date(pconfig.presday); - $('#presday').val(pconfig.presday); - parent.apppref.setpreference("dailypresences",pconfig); - loadtable(); - - -} - -function onnextday() { - pconfig.presday = $('#presday').val(); - var tmpweek = new Date(pconfig.presday); - var nweek = new Date(tmpweek.getFullYear(), tmpweek.getMonth(), tmpweek.getDate()+2); - if (nweek.getDay() == 0){ - nweek = new Date(tmpweek.getFullYear(), tmpweek.getMonth(), tmpweek.getDate()+4); - } - pconfig.presday = nweek.toISOString().substring(0,10); - initdate=new Date(pconfig.presday); - $('#presday').val(pconfig.presday); - parent.apppref.setpreference("dailypresences",pconfig); - loadtable(); -} - -function timefocus(obj){ - if (!obj.value || obj.value == ''){ - var currentdate = new Date(); - obj.value=currentdate.getHours() + ":" +currentdate.getMinutes(); - } - obj.select(); -} - - - +//Source-code licensed under EUPL v1.2 ( Copyright 2019 By DKS s.à r.l. - Kilian Saffran - Luxembourg ) + +var pconfig = { + "groupuuid": null, + "presday": null +}; +var weekdates = null; +var initdate = new Date(); +var cdate = initdate.toISOString().substring(0,10); + +var wh= window.innerHeight -190; + +var tableheadssql = ""; +var weekday = initdate.getDay(); + +var presencedropdown = ''; + +var wdays = ["sun","mon","tue","wed","thu","fri","sat"]; + +var presences = { + "btn-default": 0, + "btn-success": 1, + "btn-warning": 2, + "btn-danger": 3, + "btn-absent2": 31, + "btn-info": 4, + "btn-primary": 5 +}; + +var presenceids = { + 0: { + text: "default", + class: "btn-default", + icon: '' + + }, + 1: { + text: "success", + class: "btn-success", + icon: '' + + }, + 2: { + text: "warning", + class: "btn-warning", + icon: '' + }, + 3: { + text: "danger", + class: "btn-danger", + icon: '' + }, + 31: { + text: "absent2", + class: "btn-absent2", + icon: '' + }, + 4: { + text: "info", + class: "btn-info", + icon: '' + }, + 5: { + text: "primary", + class: "btn-primary", + icon: '' + } +}; + +$("#presday").on("dp.hide", function () { + change_day(); +}); + +$('input[id^="txt"]').on('keydown',function(e){ + var keycode = e.keyCode || e.which; + + if ( keycode == 9 ){ + + $(this).next('input').focus(); + + } + +}); +// $('input[id^="txt"]').on('blur',function(e){ +// console.log($(this).attr("id")); +// savetime($(this)); +// } +// ); + +function initdata() { + load_helpers(); + $('input').on("click", function () { + $(this).select(); + }); + pconfig = getSearchParams(); + + + if (pconfig.presday) { + initdate = new Date(pconfig.presday); + + $("#presday").val(pconfig.presday); + }else{ + $("#presday").val(initdate.toISOString().substring(0,10)); + } + loadtable(); + +} + + +function loadtable(){ + + $("#tbldailypresences").html(""); + + cdate = initdate.toISOString().substring(0,10); + var daygroupsql = "SELECT ch.uuid as childuuid, ch.prename || ' ' || ch.surname AS childname, "+ + "gr.uuid as groupuuid, gr.grpname as grpname, " + + "pr.begintime1 as begintime1, pr.endtime1 as endtime1, pr.begintime2 as begintime2, pr.endtime2 as endtime2, pr.status as status, pr.lunch as lunch, "+ + wdays[weekday]+"timebegin as plantimebegin, "+wdays[weekday]+"timeend as plantimeend, "+ + wdays[weekday]+"timebegin2 as plantimebegin2, "+wdays[weekday]+"timeend2 as plantimeend2, "+wdays[weekday]+"lunch as planlunch , "+ + "case when pr.childuuid is not null then 'upd' else 'ins' end as ddltype "+ + "from childs ch "+ + "LEFT JOIN presence pr ON (pr.childuuid = ch.uuid and pr.daydate = date('"+cdate+"')) "+ + "left join planning pl on (pl.childuuid = ch.uuid and date('"+cdate+"') between pl.datebegin and pl.dateend ) "+ + "LEFT JOIN groups gr ON (pl.groupuuid = gr.uuid) "+ + " where ch.entrydate <= date('"+cdate+"') and ch.leavedate >= date('"+cdate+"')"; + + var dpresdata = parent.appdb.dbquery(daygroupsql); + + var headerdata = getlabels("act,grpname,childname,effectiftime,status,plannedtime"); + + var headdata = ""; + for (var h=0;h'; + } + } + $("#tbldailypresences > thead").append('' + headdata+ ''); + var dpdata = dpresdata.sqldata; + + for (var b in dpdata){ + var row = dpdata[b]; + + var rdata = ''+ row.grpname +''+row.childname+''; + + rdata += '
    '+ + ' de: '+ + '
    ' + + '
    '+ + ' à: '+ + '
    '+ + '
    ' + + 'et de: '+ + '
    ' + + '
    '+ + ' à: '+ + '
    '+ + '
    ' + + '

    '; + rdata += ''+ + '
    ' + + '' +'
    ' + + '
    ' + + ''; + rdata += ''+row.plantimebegin +' - ' + row.plantimeend + ''+ ((row.planlunch == "1")?' ()':'')+''+ + ((row.plantimebegin2 != '')?'
    '+row.plantimebegin2 +' - ' + row.plantimeend2 + '':'')+ + ''; + + + $("#tbldailypresences > tbody").append(''+rdata+''); + } + + $("#tbldailypresences").dataTable({ + "language": { + "url": "../../../oldvendor/js/locale/datatable_fr.json" + }, + "paging": false, + "scrollY": wh + "px", + "scrollCollapse": true, + "info": false, + "ordering": true, + "filter": true, + "destroy": true + }); + + + + setallpresences(); +} + +function savetime(obj){ + var fdata =obj.id.split("_"); + //console.log('savetime'); + //console.log(fdata); + + var timeval = obj.value; + //console.log("Tval 1:" + timeval); + var ddltype = $("#" + fdata[1]+ "_ddltype").html(); + + var psqltime = ""; + if (timeval == ''){ + timeval='null'; + }else{ + timeval = timeval.replace(/[^\d]/g, '') + "0000"; + timeval = timeval.substring(0,2) + ":" + timeval.substring(2,4); + $("#" + obj.id).val(timeval); + timeval = "'" + timeval + "'"; + } + + // console.log("Tval 2:" + timeval); + if (ddltype == 'upd'){ + + if (fdata[0] == "txtbegintime1"){ + psqltime = "update presence set begintime1="+timeval+" where childuuid='"+fdata[1]+"' and daydate=date('"+initdate.toISOString().substring(0,10)+"');"; + } else if (fdata[0] == "txtendtime1"){ + psqltime = "update presence set endtime1="+timeval+" where childuuid='"+fdata[1]+"' and daydate=date('"+initdate.toISOString().substring(0,10)+"');"; + } else if (fdata[0] == "txtbegintime2"){ + psqltime = "update presence set begintime2="+timeval+" where childuuid='"+fdata[1]+"' and daydate=date('"+initdate.toISOString().substring(0,10)+"');"; + } else if (fdata[0] == "txtendtime2") { + psqltime = "update presence set endtime2="+timeval+" where childuuid='"+fdata[1]+"' and daydate=date('"+initdate.toISOString().substring(0,10)+"');"; + } else { + return false; + } + } else if (ddltype == 'ins'){ + var xfield = fdata[0].substring(3); + var psqltime = "INSERT INTO presence (status,childuuid,daydate,lunch,"+xfield+") VALUES "; + psqltime += "(1,'" + fdata[1] + "',date('" + initdate.toISOString().substring(0,10) + "')," + + ((($("#planlunch_" + fdata[1]).exists()) && ($("#planlunch_" + fdata[1]).html() != ''))?"'1'":'null') + ","+timeval+");"; + } + // console.log(psqltime); + if (psqltime !== ""){ + + parent.appdb.dbexec(psqltime); + if (ddltype == 'ins'){ + $("#" + fdata[1]+ "_ddltype").html('upd'); + } + } +} + +function setlunch(childuuid,status) { + + var lunch = 'null'; + if (status == 1) { + $("#btn_" + childuuid+ "_lunch").removeClass('btn-default'); + $("#btn_" + childuuid+ "_lunch").addClass('btn-success'); + lunch = "'1'"; + } else { + $("#btn_" + childuuid+ "_lunch").removeClass('btn-success'); + $("#btn_" + childuuid+ "_lunch").addClass('btn-default'); + lunch = "'0'"; + } + + parent.appdb.dbexec("update presence set lunch=" + lunch + " where daydate=date('" + initdate.toISOString().substring(0,10) + "') and childuuid='" + childuuid + "';"); + +} + +function setpresence(childuuid,newstatus) { + + var ddltype = $("#" + childuuid + "_ddltype").html(); + + var usql = ""; + if (newstatus == 0){ + $("#btn_" + childuuid + "_lunch").css("display", "none"); + } else { + $("#btn_" + childuuid + "_lunch").css("display", ""); + } + if ((ddltype=='ins') && (newstatus != 0)){ + + usql = "INSERT INTO presence (status,childuuid,daydate,lunch) "+ + "VALUES (" + newstatus + ",'" + childuuid + "',date('" + initdate.toISOString().substring(0,10) + "')," + + ((($("#planlunch_" + childuuid).exists()) && ($("#planlunch_" + childuuid).html() != '') && newstatus==1)?"'1'":'null') + ");"; + + } else if (newstatus == 0) { + + usql = "DELETE FROM presence where childuuid='" + childuuid + "' and daydate=date('" + initdate.toISOString().substring(0,10) + "');"; + $("#txtbegintime1_" + childuuid).val(''); + $("#txtendtime1_" + childuuid).val(''); + $("#txtbegintime2_" + childuuid).val(''); + $("#txtendtime2_" + childuuid).val(''); + $("#btn_" + childuuid+ "_lunch").removeClass('btn-success'); + $("#btn_" + childuuid+ "_lunch").addClass('btn-default'); + + } else { + var usql = "UPDATE presence SET status=" + newstatus + " where childuuid='" + childuuid + "' and daydate=date('" + initdate.toISOString().substring(0,10) + "');"; + + } + parent.appdb.dbexec(usql); + $("#" + childuuid + "_ddltype").html("upd"); + $("#btn_" + childuuid).attr("class","btn " + presenceids[newstatus].class + " dropdown-toggle"); + $("#btn_" + childuuid).html(presenceids[newstatus].icon); + + if (newstatus != 0 && newstatus != 1 && newstatus != 5){ + $("#frm_" + childuuid).css("display","none"); + }else { + $("#frm_" + childuuid).css("display",""); + } + + if (($("#planlunch_" + childuuid).exists()) && ($("#planlunch_" + childuuid).html() != '') && newstatus == 1){ + setlunch(childuuid,1); + } + +} + +function setalltopresent(){ + $('body').css('cursor','wait'); + + $("button[id^=btn_]").each( + function(){ + if (($(this).attr("id").indexOf("lunch") == -1) && ($(this).attr("class").indexOf("btn-default") != -1)) { + var btnspl =$(this).attr("id").split("_"); + setpresence(btnspl[1],1); + } + + } + ); + $('body').css('cursor','auto'); +} + + + +function setallpresences() { + var prsql = "select daydate,childuuid,status,lunch from presence where daydate = date('" +initdate.toISOString().substring(0,10) + "');"; + var presdata = parent.appdb.dbquery(prsql); + presdata = presdata.sqldata; + if (presdata) { + for (var p in presdata) { + if ($("#btn_" + presdata[p].childuuid ).exists()) { + $("#btn_" + presdata[p].childuuid).attr("class","btn " + presenceids[presdata[p].status].class + " dropdown-toggle"); + $("#btn_" + presdata[p].childuuid).html(presenceids[presdata[p].status].icon); + $("#btn_" + presdata[p].childuuid + "_lunch").css("display",""); + } + if (presdata[p].lunch == 1){ + $("#btn_" + presdata[p].childuuid + "_lunch").attr("class","btn btn-success dropdown-toggle"); + + } + + + } + } +} + + +function change_day() { + pconfig.presday = $('#presday').val(); + initdate=new Date(pconfig.presday); + parent.apppref.setpreference("dailypresences",pconfig); + loadtable(); + +} + +function onpreviousday() { + pconfig.presday = $('#presday').val(); + + var tmpweek = new Date(pconfig.presday); + var nweek = new Date(tmpweek.getFullYear(), tmpweek.getMonth(), tmpweek.getDate()); + + if (nweek.getDay() == 1){ + nweek = new Date(tmpweek.getFullYear(), tmpweek.getMonth(), tmpweek.getDate()-2); + } + + pconfig.presday = nweek.toISOString().substring(0,10); + initdate=new Date(pconfig.presday); + $('#presday').val(pconfig.presday); + parent.apppref.setpreference("dailypresences",pconfig); + loadtable(); + + +} + +function onnextday() { + pconfig.presday = $('#presday').val(); + var tmpweek = new Date(pconfig.presday); + var nweek = new Date(tmpweek.getFullYear(), tmpweek.getMonth(), tmpweek.getDate()+2); + if (nweek.getDay() == 0){ + nweek = new Date(tmpweek.getFullYear(), tmpweek.getMonth(), tmpweek.getDate()+4); + } + pconfig.presday = nweek.toISOString().substring(0,10); + initdate=new Date(pconfig.presday); + $('#presday').val(pconfig.presday); + parent.apppref.setpreference("dailypresences",pconfig); + loadtable(); +} + +function timefocus(obj){ + if (!obj.value || obj.value == ''){ + var currentdate = new Date(); + obj.value=currentdate.getHours() + ":" +currentdate.getMinutes(); + } + obj.select(); +} + + + diff --git a/CGI/tmpl/app/creorga/module/presences/js/weeklypresences.js b/CGI/tmpl/app/creorga/module/presences/js/weeklypresences.js index ad86904..2320d34 100644 --- a/CGI/tmpl/app/creorga/module/presences/js/weeklypresences.js +++ b/CGI/tmpl/app/creorga/module/presences/js/weeklypresences.js @@ -1,489 +1,489 @@ -//Source-code licensed under EUPL v1.2 ( Copyright 2019 By DKS s.à r.l. - Kilian Saffran - Luxembourg ) - -var pconfig = { - "groupuuid": null, - "presweek": null -}; -var weekdates = null; -var initdate = new Date(); -var cdate = initdate.toISOString().substring(0,10); -var wh= window.innerHeight -190; -var groups = {}; -var tableheadssql = ""; - -var presences = { - "btn-default": { - class: "btn-success", - icon: '', - nextdata: 1 - }, - "btn-success": { - class: "btn-warning", - icon: '', - nextdata: 2 - }, - "btn-warning": { - class: "btn-danger", - icon: '', - nextdata: 3 - }, - "btn-absent2": { - class: "btn-absent2", - icon: '', - nextdata: 31 - }, - "btn-danger": { - class: "btn-info", - icon: '', - nextdata: 4 - }, - "btn-info": { - class: "btn-primary", - icon: '', - nextdata: 5 - }, - "btn-primary": { - class: "btn-default", - icon: '', - nextdata: null - } -}; - -var presenceids = { - 1: { - class: "btn-success", - icon: '', - nextdata: 1 - }, - 2: { - class: "btn-warning", - icon: '', - nextdata: 2 - }, - 3: { - class: "btn-danger", - icon: '', - nextdata: 3 - }, - 31: { - class: "btn-absent2", - icon: '', - nextdata: 31 - }, - 4: { - class: "btn-primary", - icon: '', - nextdata: 4 - }, - 5: { - class: "btn-info", - icon: '', - nextdata: 5 - } -}; - -$("#presweek").on("dp.hide", function () { - change_week(); -}); - -function initdata() { - load_helpers(); - var pdata = getSearchParams(); - // if (pdata !== '') { - // pconfig = JSON.parse(pdata); - // } - pconfig.printlayout = 'multilist'; - parent.apppref.setpreference("weeklypresences",pconfig); - - if (pconfig.presweek) { - initdate = new Date(pconfig.presweek); - - $("#presweek").val(pconfig.presweek); - }else{ - $("#presweek").val(initdate.toISOString().substring(0,10)); - } - - set_infoheader(""); - loadtable(); - - - } - - function loadtable(){ - cdate = initdate.toISOString().substring(0,10); - $("#presencegrouptabs").html('
    '); - weekdates = parent.appdb.dbquery("select weekdaybegin as mon, date(weekdaybegin,'+1 day') as tue, date(weekdaybegin,'+2 days') as wed, date(weekdaybegin,'+3 days') as thu, date(weekdaybegin,'+4 days') as fri from (select case when strftime('%w','" + cdate + "') = '1' then strftime('%Y-%m-%d','" + cdate + "') else strftime('%Y-%m-%d', date(date('" + cdate + "','-7 days'),'weekday 1')) end as weekdaybegin) "); - - tableheadssql = "select 'Lundi, ' || strftime('%d.%m.%Y',weekdaybegin) as monday, 'Mardi, ' || strftime('%d.%m.%Y',date(weekdaybegin,'+1 day')) as tuesday, 'Mercredi, ' || strftime('%d.%m.%Y',date(weekdaybegin,'+2 days')) as wednesday, 'Jeudi, ' || strftime('%d.%m.%Y',date(weekdaybegin,'+3 days')) as thursday, 'Vendredi, ' || strftime('%d.%m.%Y',date(weekdaybegin,'+4 days')) as friday from (select case when strftime('%w','" + cdate + "') = '1' then strftime('%Y-%m-%d','" + cdate + "') else strftime('%Y-%m-%d', date(date('" + cdate + "','-7 days'),'weekday 1')) end as weekdaybegin);"; - - var tblheads = parent.appdb.dbquery(tableheadssql); - weekdates = weekdates.sqldata[0]; - - groups = parent.appdb.dbquery("select grpname,uuid as groupuuid,minage,maxage from groups UNION select 'Pas de groupe' as grpname,null as uuid,(select max(maxage) from creche) as minage,(select max(maxage) from creche) as maxage order by minage,maxage"); - //set_infoheader("Semaine du " + tblheads.sqldata[0].monday + " au " + tblheads.sqldata[0].friday); - groups = groups.sqldata; - - var tblgrpsql = "SELECT childname, MAX(monplan) AS monplan, MAX(monlunchplan) AS monlunchplan, MAX(tueplan) AS tueplan, MAX(tuelunchplan) AS tuelunchplan, MAX(wedplan) AS wedplan, MAX(wedlunchplan) AS wedlunchplan, MAX(thuplan) AS thuplan, MAX(thulunchplan) AS thulunchplan, MAX(friplan) AS friplan, MAX(frilunchplan) AS frilunchplan FROM ( SELECT ' ' || ch.prename || ' ' || ch.surname AS childname, "; - var vacdates = parent.appdb.dbqueryarray("select CAST(strftime(\"%w\",vacancydate) as INT)-1 as wdnum from vacancy where vacancydate between '"+weekdates.mon+"' and '"+weekdates.fri+"' and vacancydateto is null;" ); - var vacrem = ""; - if (vacdates) { - vacdates = vacdates.sqldata; - vacrem = vacdates.join(','); - } - var wda = ['mon','tue','wed','thu','fri','sat']; - var wdsa = []; - for (var w in wda){ - - if (vacrem.indexOf(w) != -1) { - wdsa.push("null as "+wda[w]+"plan,null AS "+wda[w]+"lunchplan"); - } else { - - wdsa.push(" CASE WHEN pl."+wda[w]+"timebegin != '00:00' AND '" + weekdates[wda[w]] + "' BETWEEN pl.datebegin AND pl.dateend THEN '' ELSE '' END AS "+wda[w]+"plan, " + - " CASE WHEN pl."+wda[w]+"timebegin != '00:00' AND '" + weekdates[wda[w]] + "' BETWEEN pl.datebegin AND pl.dateend THEN '' ELSE NULL END AS "+wda[w]+"lunchplan" ); - } - - } - tblgrpsql += wdsa.join(",") + - " FROM planning pl LEFT JOIN childs ch ON ( pl.childuuid=ch.uuid) LEFT JOIN groups gr ON ( pl.groupuuid=gr.uuid) WHERE gr.uuid%%goupuuid%% AND (( pl.datebegin <= '" + weekdates.mon + "' AND pl.dateend >= '" + weekdates.mon + "') OR ( pl.datebegin <= '" + weekdates.tue + "' AND pl.dateend >= '" + weekdates.tue + "') OR ( pl.datebegin <= '" + weekdates.wed + "' AND pl.dateend >= '" + weekdates.wed + "') OR ( pl.datebegin <= '" + weekdates.thu + "' AND pl.dateend >= '" + weekdates.thu + "') OR ( pl.datebegin <= '" + weekdates.fri + "' AND pl.dateend >= '" + weekdates.fri + "') ) ) chpr GROUP BY childname ORDER BY childname"; - for (var g in groups) { - if (groups[g].groupuuid !== '') { - $("#dlg_changegrp #groupuuid").append(''); - } - - $("#tabgrouphead").append('
  • ' + groups[g].grpname + '
  • '); - $("#tabgroupbody").append('
    '); - var cgrpsql = tblgrpsql.replace('%%goupuuid%%', "='" +groups[g].groupuuid + "'"); - if (groups[g].groupuuid === '') { - cgrpsql = tblgrpsql.replace('%%goupuuid%%', " is null"); - } - - var grpdata = parent.appdb.dbqueryarray(cgrpsql); - - var headerdata = getlabels(grpdata.sqlhead.join(",")); - - $("#tabgrp_" + groups[g].groupuuid).append('
    '); - - $("#tblgrp_" + groups[g].groupuuid + " > thead").append('Enfant' + tblheads.sqldata[0].monday + '' + tblheads.sqldata[0].tuesday + '' + tblheads.sqldata[0].wednesday + '' + tblheads.sqldata[0].thursday + '' + tblheads.sqldata[0].friday + ''); - var headdata = ""; - for (var h=0;h'; - } - } - $("#tblgrp_" + groups[g].groupuuid + " > thead").append('' + headdata+ ''); - grpdata = grpdata.sqldata; - for (var b in grpdata){ - var xdata = grpdata[b]; - $("#tblgrp_" + groups[g].groupuuid + " > tbody").append(''+xdata.join('')+''); - } - // - $("#tblgrp_" + groups[g].groupuuid).dataTable({ - "language": { - "url": "../../../oldvendor/js/locale/datatable_fr.json" - }, - "paging": false, - "scrollY": wh + "px", - "scrollCollapse": true, - "info": false, - "ordering": true, - "filter": true, - "destroy": true - }); - } - - setallpresences(); - $('#tabgrouphead a[data-toggle="tab"]').on('shown.bs.tab', function (e) { - var tn = e.target.toString(); - pconfig.groupuuid = tn.substring(tn.lastIndexOf("#")+8); - pconfig.activetab = 'tblgrp_' +pconfig.groupuuid; - parent.apppref.setpreference("weeklypresences",pconfig); - - if (pconfig.groupuuid != null){ - $("#tblgrp_" + pconfig.groupuuid).dataTable({ - "language": { - "url": "../../../oldvendor/js/locale/datatable_fr.json" - }, - "paging": false, - "scrollY": wh + "px", - "scrollCollapse": true, - "info": false, - "ordering": true, - "filter": true, - "destroy": true - }); - } - }); - if (!pconfig.groupuuid) { - $('#tabgrouphead a[href="#tabgrp_' + groups[0].groupuuid + '"]').tab('show'); - pconfig.groupuuid = groups[0].groupuuid; - pconfig.activetab = '#tabgrp_' + groups[0].groupuuid; - parent.apppref.setpreference("weeklypresences",pconfig); - } else { - $('#tabgrouphead a[href="#tabgrp_' + pconfig.groupuuid + '"]').tab('show'); - pconfig.activetab = '#tabgrp_' + groups[0].groupuuid; - parent.apppref.setpreference("weeklypresences",pconfig); - } - -} - -function setlunch(btn) { - - var clb = $(btn).attr('class').split(' '); - var ident = $(btn).attr('id').split('_'); - - var lunch = 'null'; - if (clb[1] == 'btn-default') { - $(btn).removeClass('btn-default'); - $(btn).addClass('btn-success'); - lunch = "'1'"; - } else { - $(btn).removeClass('btn-success'); - $(btn).addClass('btn-default'); - lunch = "'0'"; - } - - parent.appdb.dbexec("update presence set lunch=" + lunch + " where daydate='" + weekdates[ident[2].substring(0, 3)] + "' and childuuid='" + ident[1] + "';"); - -} - -function setpresence(btn) { - $(btn).removeClass('2'); - var clx = $(btn).attr('class'); - var clb = clx.split(' '); - - var ident = $(btn).attr('id').split('_'); - if ((ident[0] == 'btn') && ((ident[1] == 'edit') || (ident[1] == 'changegrp'))) { - return; - } - var clblunch = $("#" + $(btn).attr('id') + 'lunch').attr('class').split(' '); - var usql = "UPDATE presence SET status=" + presences[clb[1]].nextdata + " where childuuid='" + ident[1] + "' and daydate=date('" + weekdates[ident[2]] + "');"; - - if (presences[clb[1]].nextdata == 1) { - usql = "INSERT INTO presence (status,childuuid,daydate,lunch) VALUES (" + presences[clb[1]].nextdata + ",'" + ident[1] + "',date('" + weekdates[ident[2]] + "')," + ((clblunch[1] == 'default') ? 0 : 1) + ");"; - - } else if (!presences[clb[1]].nextdata) { - usql = "DELETE FROM presence where childuuid='" + ident[1] + "' and daydate='" + weekdates[ident[2]] + "';"; - } - - parent.appdb.dbexec(usql); - $(btn).removeClass(clb[1]); - $(btn).addClass(presences[clb[1]].class); - $(btn).html(presences[clb[1]].icon); - if ((presences[clb[1]].nextdata == 1) || (presences[clb[1]].nextdata == 5)) { - $("#" + $(btn).attr("id") + "lunch").removeClass('btn-default'); - $("#" + $(btn).attr("id") + "lunch").addClass('btn-success'); - $("#" + $(btn).attr("id") + "lunch").prop("disabled", false); - } else { - $("#" + $(btn).attr("id") + "lunch").removeClass('btn-success'); - $("#" + $(btn).attr("id") + "lunch").addClass('btn-default'); - $("#" + $(btn).attr("id") + "lunch").prop("disabled", true); - } -} - -function setalltopresent(){ - $('body').css('cursor','wait'); - - $("button[id^=btn_]").each( - function(){ - if ((this.id.indexOf("lunch") == -1) && (this.getAttribute("class").indexOf("btn-default") != -1)) { - setpresence(this); - } - - } - ); - $('body').css('cursor','auto'); -} - - - -function setallpresences() { - var prsql = "select daydate,childuuid,status,lunch,case "; - var wda = ['','mon','tue','wed','thu','fri','sat']; - var dd = []; - for (var i=1;i<=wda.length;i++){ - dd.push("when weekday='"+i+"' then '"+ wda[i]+"'"); - } - prsql += dd.join(',') + " else null end as weekday from (select daydate,childuuid,status,lunch,strftime('%w',daydate) as weekday from presence where daydate >= date('" + weekdates.mon + "') and daydate <=date('" + weekdates.fri + "')) group by childuuid,daydate;"; - var presdata = parent.appdb.dbquery(prsql); - presdata = presdata.sqldata; - if (presdata) { - for (var p in presdata) { - if ($("#btn_" + presdata[p].childuuid + "_" + presdata[p].weekday)) { - $("#btn_" + presdata[p].childuuid + "_" + presdata[p].weekday).removeClass("btn-default"); - $("#btn_" + presdata[p].childuuid + "_" + presdata[p].weekday).addClass(presenceids[presdata[p].status].class); - $("#btn_" + presdata[p].childuuid + "_" + presdata[p].weekday).html(presenceids[presdata[p].status].icon); - if ((presdata[p].status == 1) || (presdata[p].status == 5)) { - $("#btn_" + presdata[p].childuuid + "_" + presdata[p].weekday + "lunch").prop("disabled", false); - } - } - if ($("#btn_" + presdata[p].childuuid + "_" + presdata[p].weekday + "lunch")) { - $("#btn_" + presdata[p].childuuid + "_" + presdata[p].weekday + "lunch").removeClass("btn-default"); - $("#btn_" + presdata[p].childuuid + "_" + presdata[p].weekday + "lunch").addClass("btn-success"); - - } - } - } -} - -function configure_presence(obj) { - var xx = obj.id.split("_"); - var chid = xx[2]; - //var lblcday=getlabels(xx[3]); - var cfgdate = new Date(weekdates[xx[3]]).toISOString().substring(0,10); - $('#planning > #plandate').val(cfgdate); - $('#planning > #childuuid').val(chid); - $('#planning > #planday').val(xx[3]); - $('#dlg_addplanning').modal('show'); -} - - -function save_planning() { - var newplandata = {}; - $("#planning :input").each(function() { - var input = $(this); - - if (input.attr("id")) { - - if ((input.attr("type") == "checkbox") && input.attr("checked")){ - newplandata[input.attr("id")] = input.val(); - } - else if (input.attr("type") != "checkbox"){ - newplandata[input.attr("id")] = input.val(); - } - } - }); - - if ((newplandata.timebegin=='00:00') || (newplandata.timeend=='00:00') || (newplandata.timebegin==newplandata.timeend)) { - return; - } - - var checkdatesplit = parent.appdb.dbquery("select * from planning where datebegin <= '"+newplandata.plandate+"' and dateend >= '"+newplandata.plandate+"' and childuuid='"+newplandata.childuuid+"';"); - checkdatesplit = checkdatesplit.sqldata; - if (checkdatesplit.length == 1) { - // - var newuuid = parent.appdb.generate_uuid(); - parent.appdb.dbexec("INSERT INTO planning (datebegin, dateend, montimebegin, montimeend, monlunch, tuetimebegin, tuetimeend, tuelunch, wedtimebegin, wedtimeend, wedlunch, thutimebegin, thutimeend, thulunch, fritimebegin, fritimeend, frilunch, sattimebegin, sattimeend, satlunch, suntimebegin, suntimeend, sunlunch, childuuid, uuid, groupuuid, montimebegin2, montimeend2, tuetimebegin2, tuetimeend2, wedtimebegin2, wedtimeend2, thutimebegin2, thutimeend2, fritimebegin2, fritimeend2, sattimebegin2, sattimeend2, suntimebegin2, suntimeend2) SELECT date('"+newplandata.plandate+"','+1 day'), dateend, montimebegin, montimeend, monlunch, tuetimebegin, tuetimeend, tuelunch, wedtimebegin, wedtimeend, wedlunch, thutimebegin, thutimeend, thulunch, fritimebegin, fritimeend, frilunch, sattimebegin, sattimeend, satlunch, suntimebegin, suntimeend, sunlunch, childuuid, '"+newuuid+"', groupuuid, montimebegin2, montimeend2, tuetimebegin2, tuetimeend2, wedtimebegin2, wedtimeend2, thutimebegin2, thutimeend2, fritimebegin2, fritimeend2, sattimebegin2, sattimeend2, suntimebegin2, suntimeend2 FROM planning where uuid='"+ checkdatesplit[0].uuid +"';"); - parent.appdb.dbexec("UPDATE planning SET dateend=date('"+newplandata.plandate+"','-1 day') where uuid='"+checkdatesplit[0].uuid+"'"); - newuuid = parent.appdb.generate_uuid(); - parent.appdb.dbexec("INSERT INTO planning (datebegin,dateend, "+newplandata.planday+"timebegin,"+newplandata.planday+"timeend,"+newplandata.planday+"lunch,childuuid,uuid,groupuuid) VALUES ('"+newplandata.plandate+"','"+newplandata.plandate+"','"+newplandata.timebegin+"','"+newplandata.timeend+"',"+((newplandata.lunch)?"'1'":'null')+",'"+newplandata.childuuid+"','"+newuuid+"','"+checkdatesplit[0].groupuuid+"');"); - } - $('#dlg_addplanning').modal('hide'); - parent.app.loadpage('modules/presences/weeklypresences.html',{presday:pconfig.presweek}); -} - -// function change_day() { -// pconfig.presday = $('#presday').val(); -// initdate=new Date(pconfig.presday); -// parent.apppref.setpreference("dailypresences",pconfig); -// loadtable(); -// //parent.appl.loadpage('modules/presences/dailypresences.html',{presday:pconfig.presday}); -// } - - - - - -function change_week() { - pconfig.presweek = $('#presweek').val(); - initdate=new Date(pconfig.presweek); - parent.apppref.setpreference("weeklypresences",pconfig); - loadtable(); -} - - -function onpreviousweek() { - pconfig.presweek = $('#presweek').val(); - var tmpweek = new Date(pconfig.presweek); - var nweek = new Date(tmpweek.getFullYear(), tmpweek.getMonth(), tmpweek.getDate()-7); - pconfig.presweek = nweek.toISOString().substring(0,10); - initdate=new Date(pconfig.presweek); - $('#presweek').val(pconfig.presweek); - loadtable(); - parent.apppref.setpreference("weeklypresences",pconfig); - - //parent.app.loadpage('modules/presences/weeklypresences.html',{presday:pconfig.presweek}); - -} - -// function onnextday() { -// pconfig.presday = $('#presday').val(); -// var tmpweek = new Date(pconfig.presday); -// var nweek = new Date(tmpweek.getFullYear(), tmpweek.getMonth(), tmpweek.getDate()+2); -// if (nweek.getDay() == 0){ -// nweek = new Date(tmpweek.getFullYear(), tmpweek.getMonth(), tmpweek.getDate()+4); -// } -// pconfig.presday = nweek.toISOString().substring(0,10); -// initdate=new Date(pconfig.presday); -// $('#presday').val(pconfig.presday); -// parent.apppref.setpreference("dailypresences",pconfig); -// loadtable(); -// //parent.app.loadpage('modules/presences/dailypresences.html',{presday:pconfig.presday}); -// } - -function onnextweek() { - pconfig.presweek = $('#presweek').val(); - var tmpweek = new Date(pconfig.presweek); - var nweek = new Date(tmpweek.getFullYear(), tmpweek.getMonth(), tmpweek.getDate()+7); - pconfig.presweek = nweek.toISOString().substring(0,10); - initdate=new Date(pconfig.presweek); - $('#presweek').val(pconfig.presweek); - loadtable(); - parent.apppref.setpreference("weeklypresences",pconfig); -} - -function dlgchangegrp(obj) { - var xx = obj.id.split("_"); - var chid = xx[2]; - - var chldnames = parent.appdb.dbquery("SELECT prename || ' ' || surname as childname from childs where uuid='"+chid+"';"); - var grps = parent.appdb.dbquery("SELECT '' || gr.grpname || ': ' || strftime(\"%d.%m.%Y\",datebegin) || ' - ' || strftime(\"%d.%m.%Y\",dateend) as strdates,strftime(\"%d.%m.%Y\",dateend) from planning pl left join groups gr on (pl.groupuuid=gr.uuid) where pl.childuuid='"+chid+"' and (datebegin between '"+ weekdates.mon+"' and '"+ weekdates.fri+"' or dateend between '"+ weekdates.mon+"' and '"+ weekdates.fri+"' or (datebegin <= '"+ weekdates.mon+"' and dateend >= '"+ weekdates.fri+"'));"); - if (grps.sqldata) { - grps = grps.sqldata; - } - - var strgrp = ""; - if (grps) { - dgrpc = grps[0].dateend; - for (var f in grps){ - strgrp += grps[f].strdates + '
    '; - } - } - - $('#dlg_changegrp #dategrpchange').val(new Date(weekdates.mon).toISOString().substring(0,10)); - $('#dlg_changegrp #childuuid').val(chid); - $('#dlg_changegrp #groupuuid').val(pconfig.groupuuid); - $('#dlg_changegrp #curgrp').val(pconfig.groupuuid); - $('#dlg_changegrp #curgrpdata').html("

    Enfant: " + chldnames.sqldata[0].childname+'
    '+ strgrp); - $('#dlg_changegrp').modal('show'); -} - -function save_grpchange() { - var newgrpplan = {}; - $("#dlg_changegrp :input").each(function() { - var input = $(this); - - if (input.attr("id")) { - - newgrpplan[input.attr("id")] = input.val(); - } - }); - newgrpplan.dategrpchange = encodeparam(newgrpplan.dategrpchange,'date').replace(/'/g,''); - - if (newgrpplan.curgrp != newgrpplan.groupuuid) { - var checkdatesplit = parent.appdb.dbquery("select * from planning where date('"+newgrpplan.dategrpchange+"') between datebegin and dateend and childuuid='"+newgrpplan.childuuid+"';"); - checkdatesplit = checkdatesplit.sqldata; - if (checkdatesplit.length == 1) { - var newuuid = parent.appdb.generate_uuid(); - parent.appdb.dbexec("INSERT INTO planning (datebegin, dateend, montimebegin, montimeend, monlunch, tuetimebegin, tuetimeend, tuelunch, wedtimebegin, wedtimeend, wedlunch, thutimebegin, thutimeend, thulunch, fritimebegin, fritimeend, frilunch, sattimebegin, sattimeend, satlunch, suntimebegin, suntimeend, sunlunch, childuuid, uuid, groupuuid, montimebegin2, montimeend2, tuetimebegin2, tuetimeend2, wedtimebegin2, wedtimeend2, thutimebegin2, thutimeend2, fritimebegin2, fritimeend2, sattimebegin2, sattimeend2, suntimebegin2, suntimeend2) SELECT date('"+newgrpplan.dategrpchange+"'), dateend, montimebegin, montimeend, monlunch, tuetimebegin, tuetimeend, tuelunch, wedtimebegin, wedtimeend, wedlunch, thutimebegin, thutimeend, thulunch, fritimebegin, fritimeend, frilunch, sattimebegin, sattimeend, satlunch, suntimebegin, suntimeend, sunlunch, childuuid, '"+newuuid+"', '"+newgrpplan.groupuuid+"', montimebegin2, montimeend2, tuetimebegin2, tuetimeend2, wedtimebegin2, wedtimeend2, thutimebegin2, thutimeend2, fritimebegin2, fritimeend2, sattimebegin2, sattimeend2, suntimebegin2, suntimeend2 FROM planning where uuid='"+ checkdatesplit[0].uuid +"';"); - parent.appdb.dbexec("UPDATE planning SET dateend=date('"+newgrpplan.dategrpchange+"','-1 day') where uuid='"+checkdatesplit[0].uuid+"'"); - $('#dlg_changegrp').modal('hide'); - globelreq.send_request({ - page: 'weeklypresences', - module: 'presences', - data: null, - header: 'Présences par semaine' - }); - } - } - -} +//Source-code licensed under EUPL v1.2 ( Copyright 2019 By DKS s.à r.l. - Kilian Saffran - Luxembourg ) + +var pconfig = { + "groupuuid": null, + "presweek": null +}; +var weekdates = null; +var initdate = new Date(); +var cdate = initdate.toISOString().substring(0,10); +var wh= window.innerHeight -190; +var groups = {}; +var tableheadssql = ""; + +var presences = { + "btn-default": { + class: "btn-success", + icon: '', + nextdata: 1 + }, + "btn-success": { + class: "btn-warning", + icon: '', + nextdata: 2 + }, + "btn-warning": { + class: "btn-danger", + icon: '', + nextdata: 3 + }, + "btn-absent2": { + class: "btn-absent2", + icon: '', + nextdata: 31 + }, + "btn-danger": { + class: "btn-info", + icon: '', + nextdata: 4 + }, + "btn-info": { + class: "btn-primary", + icon: '', + nextdata: 5 + }, + "btn-primary": { + class: "btn-default", + icon: '', + nextdata: null + } +}; + +var presenceids = { + 1: { + class: "btn-success", + icon: '', + nextdata: 1 + }, + 2: { + class: "btn-warning", + icon: '', + nextdata: 2 + }, + 3: { + class: "btn-danger", + icon: '', + nextdata: 3 + }, + 31: { + class: "btn-absent2", + icon: '', + nextdata: 31 + }, + 4: { + class: "btn-primary", + icon: '', + nextdata: 4 + }, + 5: { + class: "btn-info", + icon: '', + nextdata: 5 + } +}; + +$("#presweek").on("dp.hide", function () { + change_week(); +}); + +function initdata() { + load_helpers(); + var pdata = getSearchParams(); + // if (pdata !== '') { + // pconfig = JSON.parse(pdata); + // } + pconfig.printlayout = 'multilist'; + parent.apppref.setpreference("weeklypresences",pconfig); + + if (pconfig.presweek) { + initdate = new Date(pconfig.presweek); + + $("#presweek").val(pconfig.presweek); + }else{ + $("#presweek").val(initdate.toISOString().substring(0,10)); + } + + set_infoheader(""); + loadtable(); + + + } + + function loadtable(){ + cdate = initdate.toISOString().substring(0,10); + $("#presencegrouptabs").html('
    '); + weekdates = parent.appdb.dbquery("select weekdaybegin as mon, date(weekdaybegin,'+1 day') as tue, date(weekdaybegin,'+2 days') as wed, date(weekdaybegin,'+3 days') as thu, date(weekdaybegin,'+4 days') as fri from (select case when strftime('%w','" + cdate + "') = '1' then strftime('%Y-%m-%d','" + cdate + "') else strftime('%Y-%m-%d', date(date('" + cdate + "','-7 days'),'weekday 1')) end as weekdaybegin) "); + + tableheadssql = "select 'Lundi, ' || strftime('%d.%m.%Y',weekdaybegin) as monday, 'Mardi, ' || strftime('%d.%m.%Y',date(weekdaybegin,'+1 day')) as tuesday, 'Mercredi, ' || strftime('%d.%m.%Y',date(weekdaybegin,'+2 days')) as wednesday, 'Jeudi, ' || strftime('%d.%m.%Y',date(weekdaybegin,'+3 days')) as thursday, 'Vendredi, ' || strftime('%d.%m.%Y',date(weekdaybegin,'+4 days')) as friday from (select case when strftime('%w','" + cdate + "') = '1' then strftime('%Y-%m-%d','" + cdate + "') else strftime('%Y-%m-%d', date(date('" + cdate + "','-7 days'),'weekday 1')) end as weekdaybegin);"; + + var tblheads = parent.appdb.dbquery(tableheadssql); + weekdates = weekdates.sqldata[0]; + + groups = parent.appdb.dbquery("select grpname,uuid as groupuuid,minage,maxage from groups UNION select 'Pas de groupe' as grpname,null as uuid,(select max(maxage) from creche) as minage,(select max(maxage) from creche) as maxage order by minage,maxage"); + //set_infoheader("Semaine du " + tblheads.sqldata[0].monday + " au " + tblheads.sqldata[0].friday); + groups = groups.sqldata; + + var tblgrpsql = "SELECT childname, MAX(monplan) AS monplan, MAX(monlunchplan) AS monlunchplan, MAX(tueplan) AS tueplan, MAX(tuelunchplan) AS tuelunchplan, MAX(wedplan) AS wedplan, MAX(wedlunchplan) AS wedlunchplan, MAX(thuplan) AS thuplan, MAX(thulunchplan) AS thulunchplan, MAX(friplan) AS friplan, MAX(frilunchplan) AS frilunchplan FROM ( SELECT ' ' || ch.prename || ' ' || ch.surname AS childname, "; + var vacdates = parent.appdb.dbqueryarray("select CAST(strftime(\"%w\",vacancydate) as INT)-1 as wdnum from vacancy where vacancydate between '"+weekdates.mon+"' and '"+weekdates.fri+"' and vacancydateto is null;" ); + var vacrem = ""; + if (vacdates) { + vacdates = vacdates.sqldata; + vacrem = vacdates.join(','); + } + var wda = ['mon','tue','wed','thu','fri','sat']; + var wdsa = []; + for (var w in wda){ + + if (vacrem.indexOf(w) != -1) { + wdsa.push("null as "+wda[w]+"plan,null AS "+wda[w]+"lunchplan"); + } else { + + wdsa.push(" CASE WHEN pl."+wda[w]+"timebegin != '00:00' AND '" + weekdates[wda[w]] + "' BETWEEN pl.datebegin AND pl.dateend THEN '' ELSE '' END AS "+wda[w]+"plan, " + + " CASE WHEN pl."+wda[w]+"timebegin != '00:00' AND '" + weekdates[wda[w]] + "' BETWEEN pl.datebegin AND pl.dateend THEN '' ELSE NULL END AS "+wda[w]+"lunchplan" ); + } + + } + tblgrpsql += wdsa.join(",") + + " FROM planning pl LEFT JOIN childs ch ON ( pl.childuuid=ch.uuid) LEFT JOIN groups gr ON ( pl.groupuuid=gr.uuid) WHERE gr.uuid%%goupuuid%% AND (( pl.datebegin <= '" + weekdates.mon + "' AND pl.dateend >= '" + weekdates.mon + "') OR ( pl.datebegin <= '" + weekdates.tue + "' AND pl.dateend >= '" + weekdates.tue + "') OR ( pl.datebegin <= '" + weekdates.wed + "' AND pl.dateend >= '" + weekdates.wed + "') OR ( pl.datebegin <= '" + weekdates.thu + "' AND pl.dateend >= '" + weekdates.thu + "') OR ( pl.datebegin <= '" + weekdates.fri + "' AND pl.dateend >= '" + weekdates.fri + "') ) ) chpr GROUP BY childname ORDER BY childname"; + for (var g in groups) { + if (groups[g].groupuuid !== '') { + $("#dlg_changegrp #groupuuid").append(''); + } + + $("#tabgrouphead").append('
  • ' + groups[g].grpname + '
  • '); + $("#tabgroupbody").append('
    '); + var cgrpsql = tblgrpsql.replace('%%goupuuid%%', "='" +groups[g].groupuuid + "'"); + if (groups[g].groupuuid === '') { + cgrpsql = tblgrpsql.replace('%%goupuuid%%', " is null"); + } + + var grpdata = parent.appdb.dbqueryarray(cgrpsql); + + var headerdata = getlabels(grpdata.sqlhead.join(",")); + + $("#tabgrp_" + groups[g].groupuuid).append('
    '); + + $("#tblgrp_" + groups[g].groupuuid + " > thead").append('Enfant' + tblheads.sqldata[0].monday + '' + tblheads.sqldata[0].tuesday + '' + tblheads.sqldata[0].wednesday + '' + tblheads.sqldata[0].thursday + '' + tblheads.sqldata[0].friday + ''); + var headdata = ""; + for (var h=0;h'; + } + } + $("#tblgrp_" + groups[g].groupuuid + " > thead").append('' + headdata+ ''); + grpdata = grpdata.sqldata; + for (var b in grpdata){ + var xdata = grpdata[b]; + $("#tblgrp_" + groups[g].groupuuid + " > tbody").append(''+xdata.join('')+''); + } + // + $("#tblgrp_" + groups[g].groupuuid).dataTable({ + "language": { + "url": "../../../oldvendor/js/locale/datatable_fr.json" + }, + "paging": false, + "scrollY": wh + "px", + "scrollCollapse": true, + "info": false, + "ordering": true, + "filter": true, + "destroy": true + }); + } + + setallpresences(); + $('#tabgrouphead a[data-toggle="tab"]').on('shown.bs.tab', function (e) { + var tn = e.target.toString(); + pconfig.groupuuid = tn.substring(tn.lastIndexOf("#")+8); + pconfig.activetab = 'tblgrp_' +pconfig.groupuuid; + parent.apppref.setpreference("weeklypresences",pconfig); + + if (pconfig.groupuuid != null){ + $("#tblgrp_" + pconfig.groupuuid).dataTable({ + "language": { + "url": "../../../oldvendor/js/locale/datatable_fr.json" + }, + "paging": false, + "scrollY": wh + "px", + "scrollCollapse": true, + "info": false, + "ordering": true, + "filter": true, + "destroy": true + }); + } + }); + if (!pconfig.groupuuid) { + $('#tabgrouphead a[href="#tabgrp_' + groups[0].groupuuid + '"]').tab('show'); + pconfig.groupuuid = groups[0].groupuuid; + pconfig.activetab = '#tabgrp_' + groups[0].groupuuid; + parent.apppref.setpreference("weeklypresences",pconfig); + } else { + $('#tabgrouphead a[href="#tabgrp_' + pconfig.groupuuid + '"]').tab('show'); + pconfig.activetab = '#tabgrp_' + groups[0].groupuuid; + parent.apppref.setpreference("weeklypresences",pconfig); + } + +} + +function setlunch(btn) { + + var clb = $(btn).attr('class').split(' '); + var ident = $(btn).attr('id').split('_'); + + var lunch = 'null'; + if (clb[1] == 'btn-default') { + $(btn).removeClass('btn-default'); + $(btn).addClass('btn-success'); + lunch = "'1'"; + } else { + $(btn).removeClass('btn-success'); + $(btn).addClass('btn-default'); + lunch = "'0'"; + } + + parent.appdb.dbexec("update presence set lunch=" + lunch + " where daydate='" + weekdates[ident[2].substring(0, 3)] + "' and childuuid='" + ident[1] + "';"); + +} + +function setpresence(btn) { + $(btn).removeClass('2'); + var clx = $(btn).attr('class'); + var clb = clx.split(' '); + + var ident = $(btn).attr('id').split('_'); + if ((ident[0] == 'btn') && ((ident[1] == 'edit') || (ident[1] == 'changegrp'))) { + return; + } + var clblunch = $("#" + $(btn).attr('id') + 'lunch').attr('class').split(' '); + var usql = "UPDATE presence SET status=" + presences[clb[1]].nextdata + " where childuuid='" + ident[1] + "' and daydate=date('" + weekdates[ident[2]] + "');"; + + if (presences[clb[1]].nextdata == 1) { + usql = "INSERT INTO presence (status,childuuid,daydate,lunch) VALUES (" + presences[clb[1]].nextdata + ",'" + ident[1] + "',date('" + weekdates[ident[2]] + "')," + ((clblunch[1] == 'default') ? 0 : 1) + ");"; + + } else if (!presences[clb[1]].nextdata) { + usql = "DELETE FROM presence where childuuid='" + ident[1] + "' and daydate='" + weekdates[ident[2]] + "';"; + } + + parent.appdb.dbexec(usql); + $(btn).removeClass(clb[1]); + $(btn).addClass(presences[clb[1]].class); + $(btn).html(presences[clb[1]].icon); + if ((presences[clb[1]].nextdata == 1) || (presences[clb[1]].nextdata == 5)) { + $("#" + $(btn).attr("id") + "lunch").removeClass('btn-default'); + $("#" + $(btn).attr("id") + "lunch").addClass('btn-success'); + $("#" + $(btn).attr("id") + "lunch").prop("disabled", false); + } else { + $("#" + $(btn).attr("id") + "lunch").removeClass('btn-success'); + $("#" + $(btn).attr("id") + "lunch").addClass('btn-default'); + $("#" + $(btn).attr("id") + "lunch").prop("disabled", true); + } +} + +function setalltopresent(){ + $('body').css('cursor','wait'); + + $("button[id^=btn_]").each( + function(){ + if ((this.id.indexOf("lunch") == -1) && (this.getAttribute("class").indexOf("btn-default") != -1)) { + setpresence(this); + } + + } + ); + $('body').css('cursor','auto'); +} + + + +function setallpresences() { + var prsql = "select daydate,childuuid,status,lunch,case "; + var wda = ['','mon','tue','wed','thu','fri','sat']; + var dd = []; + for (var i=1;i<=wda.length;i++){ + dd.push("when weekday='"+i+"' then '"+ wda[i]+"'"); + } + prsql += dd.join(',') + " else null end as weekday from (select daydate,childuuid,status,lunch,strftime('%w',daydate) as weekday from presence where daydate >= date('" + weekdates.mon + "') and daydate <=date('" + weekdates.fri + "')) group by childuuid,daydate;"; + var presdata = parent.appdb.dbquery(prsql); + presdata = presdata.sqldata; + if (presdata) { + for (var p in presdata) { + if ($("#btn_" + presdata[p].childuuid + "_" + presdata[p].weekday)) { + $("#btn_" + presdata[p].childuuid + "_" + presdata[p].weekday).removeClass("btn-default"); + $("#btn_" + presdata[p].childuuid + "_" + presdata[p].weekday).addClass(presenceids[presdata[p].status].class); + $("#btn_" + presdata[p].childuuid + "_" + presdata[p].weekday).html(presenceids[presdata[p].status].icon); + if ((presdata[p].status == 1) || (presdata[p].status == 5)) { + $("#btn_" + presdata[p].childuuid + "_" + presdata[p].weekday + "lunch").prop("disabled", false); + } + } + if ($("#btn_" + presdata[p].childuuid + "_" + presdata[p].weekday + "lunch")) { + $("#btn_" + presdata[p].childuuid + "_" + presdata[p].weekday + "lunch").removeClass("btn-default"); + $("#btn_" + presdata[p].childuuid + "_" + presdata[p].weekday + "lunch").addClass("btn-success"); + + } + } + } +} + +function configure_presence(obj) { + var xx = obj.id.split("_"); + var chid = xx[2]; + //var lblcday=getlabels(xx[3]); + var cfgdate = new Date(weekdates[xx[3]]).toISOString().substring(0,10); + $('#planning > #plandate').val(cfgdate); + $('#planning > #childuuid').val(chid); + $('#planning > #planday').val(xx[3]); + $('#dlg_addplanning').modal('show'); +} + + +function save_planning() { + var newplandata = {}; + $("#planning :input").each(function() { + var input = $(this); + + if (input.attr("id")) { + + if ((input.attr("type") == "checkbox") && input.attr("checked")){ + newplandata[input.attr("id")] = input.val(); + } + else if (input.attr("type") != "checkbox"){ + newplandata[input.attr("id")] = input.val(); + } + } + }); + + if ((newplandata.timebegin=='00:00') || (newplandata.timeend=='00:00') || (newplandata.timebegin==newplandata.timeend)) { + return; + } + + var checkdatesplit = parent.appdb.dbquery("select * from planning where datebegin <= '"+newplandata.plandate+"' and dateend >= '"+newplandata.plandate+"' and childuuid='"+newplandata.childuuid+"';"); + checkdatesplit = checkdatesplit.sqldata; + if (checkdatesplit.length == 1) { + // + var newuuid = parent.appdb.generate_uuid(); + parent.appdb.dbexec("INSERT INTO planning (datebegin, dateend, montimebegin, montimeend, monlunch, tuetimebegin, tuetimeend, tuelunch, wedtimebegin, wedtimeend, wedlunch, thutimebegin, thutimeend, thulunch, fritimebegin, fritimeend, frilunch, sattimebegin, sattimeend, satlunch, suntimebegin, suntimeend, sunlunch, childuuid, uuid, groupuuid, montimebegin2, montimeend2, tuetimebegin2, tuetimeend2, wedtimebegin2, wedtimeend2, thutimebegin2, thutimeend2, fritimebegin2, fritimeend2, sattimebegin2, sattimeend2, suntimebegin2, suntimeend2) SELECT date('"+newplandata.plandate+"','+1 day'), dateend, montimebegin, montimeend, monlunch, tuetimebegin, tuetimeend, tuelunch, wedtimebegin, wedtimeend, wedlunch, thutimebegin, thutimeend, thulunch, fritimebegin, fritimeend, frilunch, sattimebegin, sattimeend, satlunch, suntimebegin, suntimeend, sunlunch, childuuid, '"+newuuid+"', groupuuid, montimebegin2, montimeend2, tuetimebegin2, tuetimeend2, wedtimebegin2, wedtimeend2, thutimebegin2, thutimeend2, fritimebegin2, fritimeend2, sattimebegin2, sattimeend2, suntimebegin2, suntimeend2 FROM planning where uuid='"+ checkdatesplit[0].uuid +"';"); + parent.appdb.dbexec("UPDATE planning SET dateend=date('"+newplandata.plandate+"','-1 day') where uuid='"+checkdatesplit[0].uuid+"'"); + newuuid = parent.appdb.generate_uuid(); + parent.appdb.dbexec("INSERT INTO planning (datebegin,dateend, "+newplandata.planday+"timebegin,"+newplandata.planday+"timeend,"+newplandata.planday+"lunch,childuuid,uuid,groupuuid) VALUES ('"+newplandata.plandate+"','"+newplandata.plandate+"','"+newplandata.timebegin+"','"+newplandata.timeend+"',"+((newplandata.lunch)?"'1'":'null')+",'"+newplandata.childuuid+"','"+newuuid+"','"+checkdatesplit[0].groupuuid+"');"); + } + $('#dlg_addplanning').modal('hide'); + parent.app.loadpage('modules/presences/weeklypresences.html',{presday:pconfig.presweek}); +} + +// function change_day() { +// pconfig.presday = $('#presday').val(); +// initdate=new Date(pconfig.presday); +// parent.apppref.setpreference("dailypresences",pconfig); +// loadtable(); +// //parent.appl.loadpage('modules/presences/dailypresences.html',{presday:pconfig.presday}); +// } + + + + + +function change_week() { + pconfig.presweek = $('#presweek').val(); + initdate=new Date(pconfig.presweek); + parent.apppref.setpreference("weeklypresences",pconfig); + loadtable(); +} + + +function onpreviousweek() { + pconfig.presweek = $('#presweek').val(); + var tmpweek = new Date(pconfig.presweek); + var nweek = new Date(tmpweek.getFullYear(), tmpweek.getMonth(), tmpweek.getDate()-7); + pconfig.presweek = nweek.toISOString().substring(0,10); + initdate=new Date(pconfig.presweek); + $('#presweek').val(pconfig.presweek); + loadtable(); + parent.apppref.setpreference("weeklypresences",pconfig); + + //parent.app.loadpage('modules/presences/weeklypresences.html',{presday:pconfig.presweek}); + +} + +// function onnextday() { +// pconfig.presday = $('#presday').val(); +// var tmpweek = new Date(pconfig.presday); +// var nweek = new Date(tmpweek.getFullYear(), tmpweek.getMonth(), tmpweek.getDate()+2); +// if (nweek.getDay() == 0){ +// nweek = new Date(tmpweek.getFullYear(), tmpweek.getMonth(), tmpweek.getDate()+4); +// } +// pconfig.presday = nweek.toISOString().substring(0,10); +// initdate=new Date(pconfig.presday); +// $('#presday').val(pconfig.presday); +// parent.apppref.setpreference("dailypresences",pconfig); +// loadtable(); +// //parent.app.loadpage('modules/presences/dailypresences.html',{presday:pconfig.presday}); +// } + +function onnextweek() { + pconfig.presweek = $('#presweek').val(); + var tmpweek = new Date(pconfig.presweek); + var nweek = new Date(tmpweek.getFullYear(), tmpweek.getMonth(), tmpweek.getDate()+7); + pconfig.presweek = nweek.toISOString().substring(0,10); + initdate=new Date(pconfig.presweek); + $('#presweek').val(pconfig.presweek); + loadtable(); + parent.apppref.setpreference("weeklypresences",pconfig); +} + +function dlgchangegrp(obj) { + var xx = obj.id.split("_"); + var chid = xx[2]; + + var chldnames = parent.appdb.dbquery("SELECT prename || ' ' || surname as childname from childs where uuid='"+chid+"';"); + var grps = parent.appdb.dbquery("SELECT '' || gr.grpname || ': ' || strftime(\"%d.%m.%Y\",datebegin) || ' - ' || strftime(\"%d.%m.%Y\",dateend) as strdates,strftime(\"%d.%m.%Y\",dateend) from planning pl left join groups gr on (pl.groupuuid=gr.uuid) where pl.childuuid='"+chid+"' and (datebegin between '"+ weekdates.mon+"' and '"+ weekdates.fri+"' or dateend between '"+ weekdates.mon+"' and '"+ weekdates.fri+"' or (datebegin <= '"+ weekdates.mon+"' and dateend >= '"+ weekdates.fri+"'));"); + if (grps.sqldata) { + grps = grps.sqldata; + } + + var strgrp = ""; + if (grps) { + dgrpc = grps[0].dateend; + for (var f in grps){ + strgrp += grps[f].strdates + '
    '; + } + } + + $('#dlg_changegrp #dategrpchange').val(new Date(weekdates.mon).toISOString().substring(0,10)); + $('#dlg_changegrp #childuuid').val(chid); + $('#dlg_changegrp #groupuuid').val(pconfig.groupuuid); + $('#dlg_changegrp #curgrp').val(pconfig.groupuuid); + $('#dlg_changegrp #curgrpdata').html("

    Enfant: " + chldnames.sqldata[0].childname+'
    '+ strgrp); + $('#dlg_changegrp').modal('show'); +} + +function save_grpchange() { + var newgrpplan = {}; + $("#dlg_changegrp :input").each(function() { + var input = $(this); + + if (input.attr("id")) { + + newgrpplan[input.attr("id")] = input.val(); + } + }); + newgrpplan.dategrpchange = encodeparam(newgrpplan.dategrpchange,'date').replace(/'/g,''); + + if (newgrpplan.curgrp != newgrpplan.groupuuid) { + var checkdatesplit = parent.appdb.dbquery("select * from planning where date('"+newgrpplan.dategrpchange+"') between datebegin and dateend and childuuid='"+newgrpplan.childuuid+"';"); + checkdatesplit = checkdatesplit.sqldata; + if (checkdatesplit.length == 1) { + var newuuid = parent.appdb.generate_uuid(); + parent.appdb.dbexec("INSERT INTO planning (datebegin, dateend, montimebegin, montimeend, monlunch, tuetimebegin, tuetimeend, tuelunch, wedtimebegin, wedtimeend, wedlunch, thutimebegin, thutimeend, thulunch, fritimebegin, fritimeend, frilunch, sattimebegin, sattimeend, satlunch, suntimebegin, suntimeend, sunlunch, childuuid, uuid, groupuuid, montimebegin2, montimeend2, tuetimebegin2, tuetimeend2, wedtimebegin2, wedtimeend2, thutimebegin2, thutimeend2, fritimebegin2, fritimeend2, sattimebegin2, sattimeend2, suntimebegin2, suntimeend2) SELECT date('"+newgrpplan.dategrpchange+"'), dateend, montimebegin, montimeend, monlunch, tuetimebegin, tuetimeend, tuelunch, wedtimebegin, wedtimeend, wedlunch, thutimebegin, thutimeend, thulunch, fritimebegin, fritimeend, frilunch, sattimebegin, sattimeend, satlunch, suntimebegin, suntimeend, sunlunch, childuuid, '"+newuuid+"', '"+newgrpplan.groupuuid+"', montimebegin2, montimeend2, tuetimebegin2, tuetimeend2, wedtimebegin2, wedtimeend2, thutimebegin2, thutimeend2, fritimebegin2, fritimeend2, sattimebegin2, sattimeend2, suntimebegin2, suntimeend2 FROM planning where uuid='"+ checkdatesplit[0].uuid +"';"); + parent.appdb.dbexec("UPDATE planning SET dateend=date('"+newgrpplan.dategrpchange+"','-1 day') where uuid='"+checkdatesplit[0].uuid+"'"); + $('#dlg_changegrp').modal('hide'); + globelreq.send_request({ + page: 'weeklypresences', + module: 'presences', + data: null, + header: 'Présences par semaine' + }); + } + } + +} diff --git a/CGI/tmpl/app/creorga/module/presences/weeklypresences.tt b/CGI/tmpl/app/creorga/module/presences/weeklypresences.tt index 9e59a68..c8e5991 100644 --- a/CGI/tmpl/app/creorga/module/presences/weeklypresences.tt +++ b/CGI/tmpl/app/creorga/module/presences/weeklypresences.tt @@ -1,169 +1,169 @@ - - - - - - - Présences par semaine - - - - - - - - - - - - - - - - -
    - - - -
    - -
    -
    - -
    - - - - - - - - - - - - - - - + + + + + + + Présences par semaine + + + + + + + + + + + + + + + + +
    + + + +
    + +
    +
    + +
    + + + + + + + + + + + + + + + diff --git a/CGI/tmpl/app/creorga/module/staff/coworker.tt b/CGI/tmpl/app/creorga/module/staff/coworker.tt index c5d0e9a..b332508 100644 --- a/CGI/tmpl/app/creorga/module/staff/coworker.tt +++ b/CGI/tmpl/app/creorga/module/staff/coworker.tt @@ -1,645 +1,645 @@ - - - - - - - Employé(e) - - - - - - - - - - - - - - - -
    -
    - - -
    - - -
    -
    -
    - - - -
    - -
    - - -
    - -
    - - - -
    - -
    - - -
    -
    - - - -
    -
    -
    - -
    -
    - -
    - - -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    - -
    - - -
    h
    - -
    -
    - - -
    h
    -
    -
    - -
    - -
    - -
    -
    -
    - -
    - - -
    -
    - -
    -
    -
    - - -
    - [% IF creorga.modules.staff.planning %] -
    -
    - -
    - -
    - -
    - - - - -
    -
    - [% END %] - [% IF creorga.modules.staff.vacancy %] -
    -
    - -
    - -
    - -
    - - -
    - - h -
    - -
    -
    - - -
    - - h -
    - -
    -
    - - - - - - - - - - - - - - - - - - - -
    annéedébutfinjoursh/jDescriptiontypenormalexcept.maladie
    - - -
    - -
    - [% END %] -
    -
    -[% IF creorga.modules.staff.planning %] - - - - - -[% END %] -[% IF creorga.modules.staff.vacancy %] - - - [% END %] - - - - - - - - - - - - - - - - + + + + + + + Employé(e) + + + + + + + + + + + + + + + +
    +
    + + +
    + + +
    +
    +
    + + + +
    + +
    + + +
    + +
    + + + +
    + +
    + + +
    +
    + + + +
    +
    +
    + +
    +
    + +
    + + +
    + +
    + +
    + +
    +
    + +
    + +
    + +
    + +
    + + +
    h
    + +
    +
    + + +
    h
    +
    +
    + +
    + +
    + +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    + + +
    + [% IF creorga.modules.staff.planning %] +
    +
    + +
    + +
    + +
    + + + + +
    +
    + [% END %] + [% IF creorga.modules.staff.vacancy %] +
    +
    + +
    + +
    + +
    + + +
    + + h +
    + +
    +
    + + +
    + + h +
    + +
    +
    + + + + + + + + + + + + + + + + + + + +
    annéedébutfinjoursh/jDescriptiontypenormalexcept.maladie
    + + +
    + +
    + [% END %] +
    +
    +[% IF creorga.modules.staff.planning %] + + + + + +[% END %] +[% IF creorga.modules.staff.vacancy %] + + + [% END %] + + + + + + + + + + + + + + + + diff --git a/CGI/tmpl/app/creorga/module/staff/js/coworker.js b/CGI/tmpl/app/creorga/module/staff/js/coworker.js index a210001..aa6f5ab 100644 --- a/CGI/tmpl/app/creorga/module/staff/js/coworker.js +++ b/CGI/tmpl/app/creorga/module/staff/js/coworker.js @@ -1,904 +1,904 @@ -//Source-code licensed under EUPL v1.2 ( Copyright 2019 By DKS s.à r.l. - Kilian Saffran - Luxembourg ) -var pconfig = {}; -var delplan = null; -var delvacation = null; -var wh= window.innerHeight -320; -var curdatediff = null; -var redate = /\d\d.\d\d.\d\d\d\d/; -var curfreq ={}; -var maxdayhours = null; -var maxhalfdayhours = null; -var tblvac = null; - - -function initdata() { - load_helpers(); - var sp = getSearchParams(); - pconfig = parent.apppref.getpreference("coworker"); - if (sp.uuid){ - pconfig.uuid = sp.uuid; - } - if (pconfig == null) { - pconfig = {}; - } - //update vacancycalendar set vacyear=strftime('%Y',datefrom) where vacyear is null; - - if (!pconfig.year) { - pconfig.year=new Date().getFullYear(); - parent.apppref.setpreference("coworker",pconfig); - } - - var cdatasql = "SELECT jobtitle, prename, surname, address, zip, city, country, entrydate, exitdate, iban, bic, accountname, phone, email, uuid,color,weekhours,maxdayhours FROM staff where uuid='" + pconfig.uuid + "';"; - var cdata = parent.appdb.dbquery(cdatasql); - cdata = cdata.sqldata[0]; - for (var ci in cdata) { - if (document.getElementById("staff_" + ci)) { - document.getElementById("staff_" + ci).setAttribute('value', cdata[ci]); - } - - } - $('#staff_color').minicolors({theme:'bootstrap'}); - set_selectyears(); - if (pconfig && pconfig.activetab) { - $('a[href="#'+pconfig.activetab+'"]').tab('show'); - }else{ - $('a[href="#vacancy"]').tab('show'); - pconfig.activetab = 'vacancy'; - } - pconfig.vacancyunit = "hours"; - -} - -$('#frmeditvacancy #vacdatefrom').on("blur",function (e) { - var ok = true; - if ($('#frmeditvacancy #vacdatefrom').val().match(redate)) { - $('#btn_save_vacancy').removeAttr("disabled"); - }else { - ok = false; - $('#btn_save_vacancy').attr("disabled","1"); - } - if ((ok == true) && ($('#frmeditvacancy #vacdateto').val() != '')) { - var tmpdt1 = encodeparam($('#frmeditvacancy #vacdatefrom').val(),'date'); - var nd = new Date(tmpdt1.replace(/'/g,'')); - var xd = new Date(nd.getFullYear(),nd.getMonth(),nd.getDate() + curdatediff); - $('#frmeditvacancy #vacdateto').val(xd.toISOString().substring(0,10)); - var tmpdt2 = encodeparam($('#frmeditvacancy #vacdateto').val(),'date'); - if (tmpdt1 > tmpdt2) { - $('#btn_save_vacancy').attr("disabled","1"); - } else { - $('#btn_save_vacancy').removeAttr("disabled"); - } - - } -}); -$('#frmeditvacancy #vacdateto').on("blur",function (e) { - var ok = true; - if ($('#frmeditvacancy #vacdateto').val().match(redate)) { - $('#btn_save_vacancy').removeAttr("disabled"); - }else { - ok = false; - $('#btn_save_vacancy').attr("disabled","1"); - } - curdatediff=daysBetween(new Date(encodeparam($('#frmeditvacancy #vacdatefrom').val(),'date').replace(/'/g,'')),new Date(encodeparam($('#frmeditvacancy #vacdateto').val(),'date').replace(/'/g,''))); - if ((ok == true) && ($('#frmeditvacancy #vacdateto').val() != '')) { - var tmpdt1 = encodeparam($('#frmeditvacancy #vacdatefrom').val(),'date'); - var tmpdt2 = encodeparam($('#frmeditvacancy #vacdateto').val(),'date'); - if (tmpdt1 > tmpdt2) { - $('#btn_save_vacancy').attr("disabled","1"); - } else { - $('#btn_save_vacancy').removeAttr("disabled"); - } - - } -}); -$('#dailyduration').on('change',function(e){ - if ($('#dailyduration').val() == "1.0"){ - $('#frmeditvacancy #hours').val(maxdayhours); - } - if ($('#dailyduration').val() == "0.4"){ - $('#frmeditvacancy #hours').val(maxhalfdayhours); - } -}); -$('#staff_color').on('change',function(e){ - saveonfocusout('staff_color'); -}); - -$("#weekly_byday :input").change(function() { - if (this.checked) { - this.setAttribute("checked",true); - }else { - this.removeAttribute("checked"); - } - -}); -$("#monthly_bydaypos :input").change(function() { - - if (this.checked) { - this.setAttribute("checked",true); - }else { - this.removeAttribute("checked"); - } - -}); -$("#monthly_bydaywday :input").change(function() { - - if (this.checked) { - this.setAttribute("checked",true); - }else { - this.removeAttribute("checked"); - } - -}); -$("#monthly_bymonthday :input").change(function() { - - if (this.checked) { - this.setAttribute("checked",true); - }else { - this.removeAttribute("checked"); - } - -}); -$("#monthly_by :input").change(function() { - var xd = this.id.split("_"); - curfreq.freqtype=xd[2]; - - this.setAttribute("checked",true); - - $('#freq_monthly_byday').hide(); - $('#freq_monthly_bymonthday').hide(); - $('#pnl_monthly_byday').removeAttr("checked"); - $('#pnl_monthly_bymonthday').removeAttr("checked"); - - $('#freq_' + this.value).show(); - -}); - -$('#frmeditevent #datefrom').on("blur",function (e) { - var ok = true; - if ($('#frmeditevent #datefrom').val().match(redate)) { - $('#btn_save_event').removeAttr("disabled"); - }else { - ok = false; - $('#btn_save_event').attr("disabled","1"); - } - if ((ok == true) && ($('#frmeditevent #dateto').val() != '')) { - var tmpdt1 = encodeparam($('#frmeditevent #datefrom').val(),'date'); - var tmpdt2 = encodeparam($('#frmeditevent #dateto').val(),'date'); - if (tmpdt1 >= tmpdt2) { - $('#btn_save_event').attr("disabled","1"); - } else { - $('#btn_save_event').removeAttr("disabled"); - } - - } -}); -$('#frmeditevent #dateto').on("blur",function (e) { - var ok = true; - if ($('#frmeditevent #dateto').val().match(redate)) { - $('#btn_save_event').removeAttr("disabled"); - }else { - ok = false; - $('#btn_save_event').attr("disabled","1"); - } - if ((ok == true) && ($('#frmeditevent #dateto').val() != '')) { - var tmpdt1 = encodeparam($('#frmeditevent #datefrom').val(),'date'); - var tmpdt2 = encodeparam($('#frmeditevent #dateto').val(),'date'); - - if (tmpdt1 >= tmpdt2) { - $('#btn_save_event').attr("disabled","1"); - } else { - $('#btn_save_event').removeAttr("disabled"); - } - - } -}); - -$('.selyear').on( "change", function(e){ - e.preventDefault(); - - $(".selyear").val($(this).val()); - pconfig.year = $(this).val(); - parent.apppref.setpreference("coworker",pconfig); - if ($(this).attr('id') == "year_organisation") { - load_event_data(); - }else if ($(this).attr('id') == "year_vacancy") { - load_table_vacancy(); - } -}); - -$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) { - var tn = e.target.toString(); - pconfig.activetab = tn.substring(tn.lastIndexOf("#")+1); - - parent.apppref.setpreference("coworker",pconfig); - if (pconfig.activetab == 'activity') { - load_event_data(); - } - if (pconfig.activetab == 'vacancy') { - load_table_vacancy(); - } - }); - -[% IF creorga.modules.staff.vacancy %] - -function load_table_vacancy() { - tblvac =null; - var yearvacanysql = "select hours from staffvacancydays where staffuuid='"+ pconfig.uuid+"' and vacancyyear='"+ $("#year_vacancy").val() +"';"; - var yearvac = parent.appdb.dbquery(yearvacanysql); - var nvyear = ""; - if ((yearvac) && (yearvac.sqldata)){ - nvyear = yearvac.sqldata[0].hours; - } - - $("#vacancyyeartotal").val(nvyear); - var vacdatasql = "SELECT '" + - "' AS action," + "vacyear," + - "strftime('%d.%m.%Y', datefrom) as datefrom,strftime('%d.%m.%Y', dateto) as dateto,printf(\"%.2f\",dayhours) as dayhours,totaldays,description," + - "case when type = 0 and accepted != '1' then printf(\"%.2f\", hours) else '' end as thnormalnv," + - "case when type = 1 and accepted != '1' then printf(\"%.2f\", hours) else '' end as thextranv," + - "case when type =-1 and accepted != '1' then printf(\"%.2f\", hours) else '' end as thillnv," + - "case when type = 0 and accepted = '1' then printf(\"%.2f\", hours) else '' end as thnormalval," + - "case when type = 1 and accepted = '1' then printf(\"%.2f\", hours) else '' end as thextraval," + - "case when type =-1 and accepted = '1' then printf(\"%.2f\", hours) else '' end as thillval," + - "case when type = 0 then 'normal' when type = 1 then 'exceptionnel' when type =-1 then 'maladie' end as vacancytype" + - " FROM (" + - "select uuid, vacyear, datefrom, dateto, type, description, accepted, (days-day_to_much-vdays) * (case when hours < maxdayhours then hours when hours > maxdayhours then maxdayhours else hours end ) as hours, "+ - "case when hours < maxdayhours then hours when hours > maxdayhours then maxdayhours else hours end as dayhours,days-day_to_much-vdays as totaldays " + - " from (" + - "select vc.uuid,vc.vacyear,vc.datefrom,vc.dateto,vc.type,vc.description,vc.accepted," + - "((strftime('%s',vc.dateto) - strftime('%s',vc.datefrom)) /84600) + 1 as days," + - "((((strftime('%s',vc.dateto) - strftime('%s',vc.datefrom)) /84600) + 2) / 7) * (7 - (st.weekhours / st.maxdayhours)) as day_to_much," + - "(select count(v.vacancydate) from vacancy v where v.vacancydateto is null and strftime('%s',v.vacancydate) not in ('0','6') and v.vacancydate between vc.datefrom and vc.dateto) as vdays,st.weekhours,st.weekhours / maxdayhours as days_per_week,vc.timefrom,vc.timeto,st.maxdayhours, " + - "cast(cast(strftime(\"%s\",vc.timeto) as int)- cast(strftime(\"%s\",vc.timefrom) as int) as real)/3600 as hours " + - "from vacancycalendar vc join staff st on (vc.staffuuid=st.uuid) where vc.staffuuid='"+ pconfig.uuid+"' and vc.vacyear=" + pconfig.year+"));"; - //days_to_much => +2 for sat+sun => +1 for saturday icluded - -var vacdata = parent.appdb.dbquery(vacdatasql); - var sums = { normal:0,except:0,ill:0,normal_ok:0,except_ok:0,ill_ok:0}; - - $("#tbl_vacancy > tbody").html(""); - - for (var i in vacdata.sqldata){ - var row = vacdata.sqldata[i]; - - sums.normal = sums.normal + ((row.thnormalnv != '')?parseFloat(row.thnormalnv):0.00); - sums.except = sums.except + ((row.thextranv != '')?parseFloat(row.thextranv):0.00); - sums.ill = sums.ill + ((row.thillnv != '')?parseFloat(row.thillnv):0.00); - sums.normal_ok = sums.normal_ok + ((row.thnormalval != '')?parseFloat(row.thnormalval):0.00); - sums.except_ok = sums.except_ok + ((row.thextraval != '')?parseFloat(row.thextraval):0.00); - sums.ill_ok = sums.ill_ok + ((row.thillval != '')?parseFloat(row.thillval):0.00); - var tr = ''; - tr += '' + row.action + ''; - tr += '' + row.vacyear + ''; - tr += '' + row.datefrom + ''; - tr += '' + row.dateto + ''; - tr += '' + row.totaldays + ''; - tr += '' + row.dayhours + ''; - tr += '' + row.description + ''; - tr += '' + row.vacancytype + ''; - tr += '' + row.thnormalnv + ''; - tr += '' + row.thnormalval + ''; - tr += '' + row.thextranv + ''; - tr += '' + row.thextraval + ''; - tr += '' + row.thillnv + ''; - tr += '' + row.thillval + ''; - tr += ''; - $("#tbl_vacancy > tbody").append(tr); - - } - var tfoot = "" - + '' - + '' - + '' - + '' - + '' - + '' - + '' - + '' - + '' + sums.normal.toFixed(2) + '' - + '' + sums.normal_ok.toFixed(2) + '' - + '' + sums.except.toFixed(2) + '' - + '' + sums.except_ok.toFixed(2) + '' - + '' + sums.ill.toFixed(2) + '' - + '' + sums.ill_ok.toFixed(2) + '' - +""; - $("#tbl_vacancy > tfoot").html(tfoot); - $("#vacancyyeartotalopen").val(""); - if (nvyear != ""){ - var sumrest = parseFloat(nvyear) - sums.normal_ok; - $("#vacancyyeartotalopen").val(sumrest.toFixed(2)); - } - - $("#tbl_vacancy").bootstrapTable({ - locale: 'fr-FR', - pagination: false, - search: false, - toolbar: "#mnuvac" - }); - - - -} - -function dlg_vacancy(uuid, type) { - //select weekhours/5 = max daily hours - maxdayhours = (parseFloat($("#staff_weekhours").val())/5).toFixed(2); - maxhalfdayhours = (maxdayhours/2).toFixed(2); - var evdata = { - uuid: 0, - description: '', - vacdatefrom:new Date().toISOString().substring(0,10), - vacdateto:new Date().toISOString().substring(0,10), - staffuuid:[pconfig.uuid], - timefrom: '00:00', - hours: maxdayhours, - type:'0', - - }; - - if (type == 'upd') { - var evsql = "select uuid,vacdatefrom,vacdateto,timefrom,description,staffuuid,case when hours = '0.00' then '" + maxdayhours +"' else hours end as hours,accepted from (SELECT uuid, datefrom as vacdatefrom, dateto as vacdateto, timefrom, description, '"+pconfig.uuid+"' as staffuuid,type, printf(\"%.2f\",cast((cast(strftime(\"%s\",timeto) as int)- cast(strftime(\"%s\",timefrom) as int))/3600 as real)) as hours,accepted FROM vacancycalendar where uuid='" + uuid.uuid + "');"; - - evdata = parent.appdb.dbquery(evsql); - evdata = evdata.sqldata[0]; - if (evdata.type == -1){ - $("#btnacceptvacancy").hide(); - }else { - $("#btnacceptvacancy").show(); - } - if (evdata.hours >= maxdayhours) { - evdata.hours=maxdayhours; - $('#dailyduration select').val("1.0"); - } else if (evdata.hours == maxhalfdayhours){ - $('#dailyduration select').val("0.4"); - } else { - $('#dailyduration select').val("0."); - } - - }else { - $('#dailyduration select').val("1.0"); - } - for (var w in evdata) { - if ((w == 'datefrom') || (w == 'dateto')) { - w='vac' + w; - } - - if ($("#frmeditvacancy #" + w)) { - - if (w == "type"){ - $("#frmeditvacancy #" + w + " select").val(evdata[w]); - } else { - $("#frmeditvacancy #" + w).val(evdata[w]); - } - - - } - - } - - setdailydurationfields(); - $("#edit_vacancy").modal('show'); -} - -function confirm_delete_vacancy(uuid) { - delvacation = uuid; - $("#confirm_delete_vacancy").modal('show'); - return false; -} - -function delete_vacancy() { - var delsql = "DELETE FROM vacancycalendar where uuid='" + delvacation+"';"; - parent.appdb.dbexec(delsql); - load_table_vacancy(); - delvacancy=null; - $("#confirm_delete_vacancy").modal('hide'); - - return false; -} - -function setdailydurationfields() { - var dd = $('#dailyduration :selected').val(); - if (dd=='1.0') { - //$("#ftimefrom").hide(); - $("#hours").prop("disabled",true); - }else if (dd=='0.4') { - //$("#ftimefrom").show(); - $("#hours").prop("disabled",true); - }else if (dd=='0.') { - //$("#ftimefrom").show(); - $("#hours").prop("disabled",false); - } -} - -function save_vacancy() { - var type = 'ins'; - var cuuid = ""; - if ($("#frmeditvacancy #uuid").val() != 0) { - type = 'upd'; - cuuid = $("#frmeditvacancy #uuid").val(); - } - var evsvdata = { - uuid:cuuid, - datefrom: $("#frmeditvacancy #vacdatefrom").val(), - dateto: $("#frmeditvacancy #vacdateto").val(), - timefrom: $("#frmeditvacancy #timefrom").val(), - hours: $("#frmeditvacancy #hours").val(), - description: $("#frmeditvacancy #description").val(), - staffuuid: $("#frmeditvacancy #staffuuid").val(), - type: $("#frmeditvacancy #type").val() - } - var savesql = ""; - if (type == 'ins') { - savesql = "INSERT INTO vacancycalendar (uuid, datefrom, dateto, timefrom, timeto, description, staffuuid, type,vacyear) VALUES " - +"('" + parent.appdb.generate_uuid() + "', date('"+evsvdata.datefrom+"'), date('"+evsvdata.dateto+"'), "+encodeparam(evsvdata.timefrom, 'text')+", strftime(\"%H:%M\",time("+encodeparam(evsvdata.timefrom, 'text')+",'+"+evsvdata.hours+" hours')), "+encodeparam(evsvdata.description, 'text')+", "+encodeparam(evsvdata.staffuuid, 'text')+","+evsvdata.type+",strftime(\"%Y\",date('"+evsvdata.datefrom+"')))"; - } else { - savesql = "UPDATE vacancycalendar SET vacyear=strftime(\"%Y\",date('"+evsvdata.datefrom+"')), datefrom = date('"+evsvdata.datefrom+"'), dateto = date('"+evsvdata.dateto+"'), timefrom = "+encodeparam(evsvdata.timefrom, 'text')+", timeto = strftime(\"%H:%M\",time("+encodeparam(evsvdata.timefrom, 'text')+",'+"+evsvdata.hours+" hours')), description = "+encodeparam(evsvdata.description, 'text')+", staffuuid = "+encodeparam(evsvdata.staffuuid, 'text')+", type = "+evsvdata.type+" WHERE uuid = '"+evsvdata.uuid+"';"; - } - //console.log("save vacancy"); - //console.log(savesql); - parent.appdb.dbexec(savesql); - load_table_vacancy(); - - $("#frmeditvacancy #uuid").val("0"); - $("#edit_vacancy").modal('hide'); -} - -function accept_vacancy(){ - var cuuid = ""; - if ($("#frmeditvacancy #uuid").val() != 0) { - type = 'upd'; - cuuid = $("#frmeditvacancy #uuid").val(); - } - var xsql = "UPDATE vacancycalendar SET accepted='1' where \"uuid\"='" + cuuid + "';"; - parent.appdb.dbexec(xsql); - load_table_vacancy(); - - $("#frmeditvacancy #uuid").val("0"); - $("#edit_vacancy").modal('hide'); -} - -function getlastyearsrest(){ - var weekhours = $('#staff_weekhours').val(); - if (weekhours === '') { - $("#vacancylastyearrest").val(0); - return; - } - var df = new Date(pconfig.year-1,0,1); - var dt = new Date(pconfig.year-1,11,31); - var vcalcrestsql = "select (select hours from staffvacancydays where staffuuid='"+pconfig.uuid+ "' and vacancyyear="+df.getFullYear()+")-SUM(dayhours) AS hours from (" + - "select vd.daydate,case when daydate <= date('now') then 1 else 0 end as taken,case when vc.timefrom=vc.timeto then cast ("+weekhours+"/5 as real) else (cast (substr(vc.timeto,1,2) as int) + (cast(substr(vc.timeto,4,5) as int)/60)) - (cast(substr(vc.timefrom,1,2) as int) + (cast(substr(vc.timeto,4,5) as int)/60)) end as dayhours,type,case when type != -1 then accepted else '1' end as accepted "+ - "from vacancycalendar vc left join ( "+ - "select daydate from ( "; - - var yd = []; - for (var dx=df;dx<=dt;dx.setDate(dx.getDate()+1)){ - yd.push("select date('"+dx.toISOString().substring(0,10)+"') as daydate"); - } - vcalcrestsql += yd.join(" UNION ") + - ") yd where strftime('%w',daydate) not in ('0','6') and daydate not in (select vacancydate from vacancy where vacancydate between '"+df.getFullYear()+"-01-01' and '"+dt.getFullYear()+"-12-31' and vacancydateto is null) " + - ") vd on (vd.daydate between vc.datefrom and vc.dateto) " + - "left join staffvacancydays svd on (vc.staffuuid=svd.staffuuid) " + - "where vc.staffuuid='"+pconfig.uuid+ "' and daydate is not null group by daydate) where type in (0,1) and taken=1 and accepted=1 group by taken,accepted;"; - //dump("SQLREST:" + vcalcrestsql + "\n"); - var vcalc = parent.appdb.dbquery(vcalcrestsql); - //dump(JSON.stringify(vcalc) + "\n"); - if (vcalc && vcalc.sqldata[0]){ - -$("#vacancylastyearrest").val(vcalc.sqldata[0].hours); - }else { -$("#vacancylastyearrest").val(0); - } - return; -} - -function set_selectyears() { - - var years = parent.appdb.dbquery("select COALESCE((select cast(min(vacancyyear) as TEXT) as minyear from staffvacancydays where staffuuid='" + pconfig.uuid + "'),strftime('%Y',coalesce(min(entrydate),date('now','-1 year')))) as minyear,strftime('%Y',date('now', '+1 year')) as maxyear from staff where uuid='"+pconfig.uuid+"';"); - var minyear = parseInt(years.sqldata[0].minyear); - var maxyear = parseInt(years.sqldata[0].maxyear); - for (var y=minyear;y<=maxyear;y++){ - - var sel = ""; - if (y == pconfig.year) { - sel=' selected="1" '; - - } - - $(".selyear").append(""); - } - -} - -function saveyearvacdays() { - var csel = "select * from staffvacancydays where staffuuid='"+pconfig.uuid+"' and vacancyyear='"+pconfig.year+"';"; - var days = 0; - var hours = 0; - if ($('#vacancyyeartotal').val() === ""){ - return; - } - if (pconfig.vacancyunit == "hours"){ - days = parseFloat($('#vacancyyeartotal').val().replace(',','.')) / 8; - hours = $('#vacancyyeartotal').val(); - }else { - days = parseFloat($('#vacancyyeartotal').val().replace(',','.')); - hours = parseFloat($('#vacancyyeartotal').val().replace(',','.')) * 8; - } - var cnum = parent.appdb.dbquery(csel); - var inssql = "INSERT INTO staffvacancydays (staffuuid,vacancyyear,days,hours) VALUES ('"+pconfig.uuid+"','"+pconfig.year+"',"+days+","+hours+");"; - if (cnum.sqldata.length > 0) { - inssql = "UPDATE staffvacancydays SET days="+days+",hours="+hours+" where staffuuid='"+pconfig.uuid+"' and vacancyyear='"+pconfig.year+"';"; - } - parent.appdb.dbexec(inssql); - //calcvacancy(); -} -[% END %] -[% IF creorga.modules.staff.planning %] -function load_event_data() { - - var where = new Array(); - - where.push(" st.uuid in ('"+ pconfig.uuid + "')"); - - $("div.panel-daybody").html(""); - var sql = "SELECT cal.uuid, cal.datefrom, cal.dateto, '
    ' || strftime('%Y%m%d',cal.datefrom) ||'
    ' || strftime('%d.%m.%Y',cal.datefrom) AS tbldatefrom ,strftime('%Y%m%d',cal.datefrom) AS strdatefrom, strftime('%Y%m%d',cal.dateto) AS strdateto,cal.timefrom, cal.timeto, cal.description, cal.location, cal.color, cal.freq, '[\"' || GROUP_CONCAT(sp.staffuuid,'\",\"') || '\"]' as staffuuid, GROUP_CONCAT(coalesce(st.surname,'') || ' ' || coalesce(st.prename,''), '
    ' ) as staffnames ,'[\"' || GROUP_CONCAT(st.color,'\",\"') || '\"]' as staffcolors from eventcalendar cal " +" join staffplanning sp on (cal.uuid=sp.eventcalendaruuid " + " AND sp.staffuuid in ('"+ pconfig.uuid +"')) left join staff st on (sp.staffuuid=st.uuid) "+ - " where (cal.datefrom between '" + $('#year_organisation').val() + "-01-01' and '" + $('#year_organisation').val() + "-12-31' and (cal.dateto >= '" + $('#year_organisation').val() + "-01-01' or cal.dateto is null)) or (cal.dateto between '" + $('#year_organisation').val() + "-01-01' and '" + $('#year_organisation').val() + "-12-31' and cal.datefrom < '" + $('#year_organisation').val() + "-01-01') or ((cal.datefrom <= '" + $('#year_organisation').val() + "-01-01') and ((cal.dateto >= '" + $('#year_organisation').val() + "-12-31') or cal.dateto is null)) "+ ((where.length > 0)?" AND (" + where.join(" or ") + ")":"")+" group by cal.uuid order by cal.datefrom,cal.dateto;"; - - var caldata = parent.appdb.dbquery(sql); - - caldata = caldata.sqldata; - - var headerdata = getlabels("act,datefrom,hours,recurrance"); - $("#tbl_activity").html(""); - - var hrow = headerdata; - var tdclass= new Array(); - var tblheader = ''; - - for (var h=0;h'+ headerdata[h].title+''; - } - tblheader += ''; - - $("#tbl_activity").append("" + tblheader + ""); - $("#tbl_activity").append(""); - var tblbody = []; - for (var c in caldata) { - var tblrow = ""; - tblrow += ''; - - tblrow += "" + caldata[c].tbldatefrom + ""; - tblrow += "" + caldata[c].timefrom + "- " + caldata[c].timeto + ""; - - var freq2 = caldata[c].freq; - if (freq2 != '') { - - freq2 += ';DTSTART='+caldata[c].strdatefrom + 'T000000Z'; - if (caldata[c].dateto != ''){ - freq2 += ';UNTIL='+caldata[c].strdateto + 'T000000Z'; - } - } - - try { - - var rule2 = RRule.fromString(freq2); - - - tblrow += "" + rule2.toText() + ""; - - } catch (ex){ - - } - tblrow += ""; - tblbody.push(tblrow); - } - - $("#tbl_activity").append(tblbody.join('')); - $("#tbl_activity").append(""); - - $("#tbl_activity").bootstrapTable({ - locale: 'fr-FR', - pagination: false, - search: false, - height: wh, - toolbar: "#mnuact" - }); - - -} - -function dlg_event(uuid, type) { - - if (type== "ins") { - - $('#btndeleteevent').hide(); - - }else { - $('#btndeleteevent').show(); - } - $('#frmeditevent #freqinterval').hide(); - $('#frmeditevent #freqmonthly').hide(); - $('#frmeditevent #freqweekly').hide(); - $('#frmeditevent #freq_monthly_byday').show(); - $('#frmeditevent #freq_monthly_bymonthday').hide(); - $('#frmeditevent #freq').val(""); - $('#frmeditevent .active').removeClass('active'); - if ((type == 'upd') || (type == 'ins')) { - - var evdata = { - uuid: '0', - description: '', - activityuuid:'', - location: '', - color: '', - datefrom:new Date().toISOString().substring(0,10), - dateto:'', - staffuuid: pconfig.uuid, - timefrom: '00:00', - timeto: '00:00', - freq: '', - staffname: $("#staff_prename").val() + " " + $("#staff_surname").val() - }; - - if (type == 'upd') { - var evsql = "SELECT uuid, strftime(\"%d.%m.%Y\",datefrom) as datefrom, strftime(\"%d.%m.%Y\",dateto) as dateto, timefrom, timeto, description, location, color, freq, '"+ pconfig.uuid+"' as staffuuid FROM eventcalendar ev left join staffplanning st on (ev.uuid=st.eventcalendaruuid) where ev.uuid='" + uuid.uuid + "' group by ev.uuid;"; - evdata = parent.appdb.dbquery(evsql); - evdata = evdata.sqldata[0]; - evdata['staffname'] = $("#staff_prename").val() + " " + $("#staff_surname").val(); - if (evdata.freq != '') { - var tmpfreq = evdata.freq.split(';'); - for (var t in tmpfreq){ - if (tmpfreq[t] != '') { - var spl = tmpfreq[t].split("="); - evdata[spl[0].toLowerCase()] = spl[1].toLowerCase(); - } - } - } - } - for (var w in evdata) { - if ($("#frmeditevent #" + w)) { - - $("#frmeditevent #" + w).val(evdata[w]); - - } - } - if ((evdata.freq == 'weekly') && (evdata.byday)) { - var bd = evdata.byday.split(','); - for (var i in bd){ - document.getElementById('weekly_byday_' + bd[i]).setAttribute("checked",true); - $('#frmeditevent #weekly_byday_' + bd[i]).parent().addClass("active"); - } - } - if (evdata.freq == 'monthly') { - $('#freq_monthly_byday').hide(); - $('#freq_monthly_bymonthday').hide(); - $('#pnl_monthly_byday').removeAttr("checked"); - $('#pnl_monthly_bymonthday').removeAttr("checked"); - if (evdata.byday) { - document.getElementById('pnl_monthly_byday').setAttribute("checked",true); - $('#frmeditevent #pnl_monthly_byday').parent().addClass("active"); - $('#freq_monthly_byday').show(); - var bd = evdata.byday.split(','); - var adpos = new Array(); - var awday = new Array(); - for (var i in bd){ - var wday = bd[i].substr(bd[i].length-2); - var pos = bd[i].substring(0,bd[i].length-2); - awday.push(wday.toLowerCase()); - adpos.push(pos); - } - - for (var i in adpos){ - document.getElementById('monthly_bydaypos_' + adpos[i]).setAttribute("checked",true); - $('#frmeditevent #monthly_bydaypos_' + adpos[i]).parent().addClass("active"); - } - for (var i in awday){ - document.getElementById('monthly_bydaywday_' + awday[i]).setAttribute("checked",true); - $('#frmeditevent #monthly_bydaywday_' + awday[i]).parent().addClass("active"); - } - }else if (evdata.bymonthday) { - document.getElementById('pnl_monthly_bymonthday').setAttribute("checked",true); - $('#frmeditevent #pnl_monthly_bymonthday').parent().addClass("active"); - $('#freq_monthly_bymonthday').show(); - var bd = evdata.bymonthday.split(','); - for (var i in bd){ - document.getElementById('monthly_bymonthday_' + bd[i]).setAttribute("checked",true); - $('#frmeditevent #monthly_bymonthday_' + bd[i]).parent().addClass("active"); - } - } - } - setfreq(); - $("#edit_event").modal('show'); - } -} - - -function save_event() { - var sql1 = new Array(); - var sql2 = new Array(); - if ($('#timefrom').val() == $('#timeto').val() || $('#timefrom').val() == "00:00" || $('#timeto').val() == "00:00"){ - errormsg("Erreur","les heures doivent être différent et différent de la valeur 00:00!"); - return false; - } - if ($('#timefrom').val() > $('#timeto').val()){ - errormsg("Erreur","l'heure de début ne peux pas être supérieur à l'heure de fin!"); - return false; - } - if (!$('#staffuuid').val()){ - errormsg("Erreur","Vous devez selectionner au moin 1 membre du staff!"); - return false; - } - if ($('#dateto').val() != '' && (encodeparam($('#datefrom').val()) > encodeparam($('#dateto').val())) ) { - errormsg("Erreur","La Date début ne peut pas être supérieur à la date fin!"); - return false; - } - var type = 'ins'; - var cuuid = ""; - if ($("#frmeditevent #uuid").val() != 0) { - type = 'upd'; - cuuid = $("#frmeditevent #uuid").val(); - } else { - cuuid = parent.appdb.generate_uuid(); - } - var freqdata = {}; - var cfreq = $("#frmeditevent #freq").val(); - $("#frmeditevent :input").each(function() { - var input = $(this); - - if (input.attr("id") && (input.attr("id") != "staffuuid") && (input.attr("id") != "staffname")) { - if ((input.attr("type") == "checkbox") && (input.attr("id").indexOf(cfreq) >= 0)){ - var xd = input.attr("id").split("_"); - if (input.attr("checked")) { - if (!freqdata[xd[1]]) { - freqdata[xd[1]] = new Array(); - } - freqdata[xd[1]].push(input.val()); - } - } - else if ((input.attr("type") == "radio") && (input.attr("id").indexOf(cfreq) >= 0)) { - var xd = input.attr("id").split("_"); - if (input.attr("checked")) { - freqdata['freqtype'] = xd[2]; - } - } - else if ((input.attr("type") != "checkbox") && ((input.attr("type") != "radio"))){ - if ((input.attr("id") == 'interval') || (input.attr("id") == 'freq')) { - freqdata[input.attr("id")] = input.val(); - } else if ((type == 'ins') && (input.attr("id") != 'staffuuid')) { - - sql1.push('"' + input.attr("id") + '"'); - if (input.attr("id") == 'uuid') { - if (input.val() == "" || input.val() == "0") { - sql2.push("'" + cuuid + "'"); - } else { - sql2.push("'" + input.val() + "'"); - } - } else { - var ival = encodeparam(input.val(), input.attr('type')); - sql2.push(ival); - } - } else { - if ((input.attr("id") != 'uuid') && (input.attr("id") != 'staffuuid')){ - var ival = encodeparam(input.val(), input.attr('type')); - sql2.push('"' + input.attr("id") + '"=' + ival); - } - } - } - } - - }); - if (!freqdata.freqtype) { - freqdata['freqtype'] = curfreq.freqtype; - } - - var strfreq =""; - if (cfreq != "") { - strfreq='FREQ=' + cfreq.toUpperCase()+';INTERVAL=' + freqdata.interval +';'; - if ((cfreq == 'weekly') && (freqdata.byday)){ - strfreq += 'BYDAY=' + freqdata.byday.join(","); - } - if ((cfreq == 'monthly') && (freqdata.bydaypos) || ((freqdata.bydaywday)) || (freqdata.bymonthday)){ - strfreq += freqdata.freqtype.toUpperCase() + '='; - if (freqdata.freqtype == 'bymonthday') { - strfreq += freqdata.bymonthday.join(',') + ";" - }else { - var abyday = new Array(); - for (var p in freqdata.bydaypos){ - for (var w in freqdata.bydaywday){ - abyday.push(freqdata.bydaypos[p] + freqdata.bydaywday[w]); - } - } - strfreq += abyday.join(","); - } - } - if (strfreq.slice(-1) == ';') { - strfreq = strfreq.substring(0,strfreq.length-1); - } - } - var staffuuids = $('#staffuuid').val(); - var delsql = ""; - var xsql = []; - if (type != 'ins') { - xsql.push("DELETE FROM staffplanning where eventcalendaruuid = '"+cuuid+"';"); - } - var staffinssql = ""; - - if (staffuuids && (staffuuids.length != 0)) { - - staffinssql = "INSERT INTO staffplanning (eventcalendaruuid,staffuuid) VALUES "; - var tmps = []; - var curcoworkerok = false; - for (var s in staffuuids){ - if (staffuuids[s] == pconfig.uuid){ - curcoworkerok = true; - } - tmps.push("('"+cuuid+"','"+staffuuids[s]+"')"); - } - if (!curcoworkerok){ - tmps.push("('"+cuuid+"','"+pconfig.uuid+"')"); - } - staffinssql += tmps.join(',') + ";"; - xsql.push(staffinssql); - } - if (staffuuids.length == 0){ - staffinssql = "INSERT INTO staffplanning (eventcalendaruuid,staffuuid) VALUES ('"+cuuid+"','"+pconfig.uuid+"');"; - xsql.push(staffinssql); - } - - - - if (type == 'upd') { - sql2.push('freq=' + encodeparam(strfreq)); - xsql.push("UPDATE eventcalendar SET " + sql2.join(',') + " where \"uuid\"='" + cuuid + "';"); - } else { - sql1.push('freq'); - sql2.push(encodeparam(strfreq)); - xsql.push("INSERT INTO eventcalendar (" + sql1.join(',') + ") VALUES (" + sql2.join(',') + ");"); - } - dump(JSON.stringify(xsql)); - for (var i in xsql){ - parent.appdb.dbexec(xsql[i]); - } - - load_event_data(); - - $("#frmeditevent #uuid").val("0"); - $("#edit_event").modal('hide'); -} - -function confirm_delete_event() { - $("#confirm_delete_event").modal('show'); - return false; -} - -function delete_event() { - parent.appdb.dbexec("DELETE FROM eventcalendar where uuid='" + $('#frmeditevent #uuid').val()+"';"); - parent.appdb.dbexec("DELETE FROM staffplanning where eventcalendaruuid='" + $('#frmeditevent #uuid').val()+"';"); - load_event_data(); - $("#confirm_delete_event").modal('hide'); - - return false; -} - -[% END %] - -function setfreq() { - - curfreq.freq = $('#freq option:selected').val(); - - $('#freqinterval').hide(); - $('#freqmonthly').hide(); - $('#freqweekly').hide(); - if (curfreq.freq != "") { - - $('#lblfreq').text(lblfreq[curfreq.freq]); - $('#freqinterval').show(); - if (curfreq.freq != 'daily') { - $('#freq' + curfreq.freq).show(); - } - } - -} - - - +//Source-code licensed under EUPL v1.2 ( Copyright 2019 By DKS s.à r.l. - Kilian Saffran - Luxembourg ) +var pconfig = {}; +var delplan = null; +var delvacation = null; +var wh= window.innerHeight -320; +var curdatediff = null; +var redate = /\d\d.\d\d.\d\d\d\d/; +var curfreq ={}; +var maxdayhours = null; +var maxhalfdayhours = null; +var tblvac = null; + + +function initdata() { + load_helpers(); + var sp = getSearchParams(); + pconfig = parent.apppref.getpreference("coworker"); + if (sp.uuid){ + pconfig.uuid = sp.uuid; + } + if (pconfig == null) { + pconfig = {}; + } + //update vacancycalendar set vacyear=strftime('%Y',datefrom) where vacyear is null; + + if (!pconfig.year) { + pconfig.year=new Date().getFullYear(); + parent.apppref.setpreference("coworker",pconfig); + } + + var cdatasql = "SELECT jobtitle, prename, surname, address, zip, city, country, entrydate, exitdate, iban, bic, accountname, phone, email, uuid,color,weekhours,maxdayhours FROM staff where uuid='" + pconfig.uuid + "';"; + var cdata = parent.appdb.dbquery(cdatasql); + cdata = cdata.sqldata[0]; + for (var ci in cdata) { + if (document.getElementById("staff_" + ci)) { + document.getElementById("staff_" + ci).setAttribute('value', cdata[ci]); + } + + } + $('#staff_color').minicolors({theme:'bootstrap'}); + set_selectyears(); + if (pconfig && pconfig.activetab) { + $('a[href="#'+pconfig.activetab+'"]').tab('show'); + }else{ + $('a[href="#vacancy"]').tab('show'); + pconfig.activetab = 'vacancy'; + } + pconfig.vacancyunit = "hours"; + +} + +$('#frmeditvacancy #vacdatefrom').on("blur",function (e) { + var ok = true; + if ($('#frmeditvacancy #vacdatefrom').val().match(redate)) { + $('#btn_save_vacancy').removeAttr("disabled"); + }else { + ok = false; + $('#btn_save_vacancy').attr("disabled","1"); + } + if ((ok == true) && ($('#frmeditvacancy #vacdateto').val() != '')) { + var tmpdt1 = encodeparam($('#frmeditvacancy #vacdatefrom').val(),'date'); + var nd = new Date(tmpdt1.replace(/'/g,'')); + var xd = new Date(nd.getFullYear(),nd.getMonth(),nd.getDate() + curdatediff); + $('#frmeditvacancy #vacdateto').val(xd.toISOString().substring(0,10)); + var tmpdt2 = encodeparam($('#frmeditvacancy #vacdateto').val(),'date'); + if (tmpdt1 > tmpdt2) { + $('#btn_save_vacancy').attr("disabled","1"); + } else { + $('#btn_save_vacancy').removeAttr("disabled"); + } + + } +}); +$('#frmeditvacancy #vacdateto').on("blur",function (e) { + var ok = true; + if ($('#frmeditvacancy #vacdateto').val().match(redate)) { + $('#btn_save_vacancy').removeAttr("disabled"); + }else { + ok = false; + $('#btn_save_vacancy').attr("disabled","1"); + } + curdatediff=daysBetween(new Date(encodeparam($('#frmeditvacancy #vacdatefrom').val(),'date').replace(/'/g,'')),new Date(encodeparam($('#frmeditvacancy #vacdateto').val(),'date').replace(/'/g,''))); + if ((ok == true) && ($('#frmeditvacancy #vacdateto').val() != '')) { + var tmpdt1 = encodeparam($('#frmeditvacancy #vacdatefrom').val(),'date'); + var tmpdt2 = encodeparam($('#frmeditvacancy #vacdateto').val(),'date'); + if (tmpdt1 > tmpdt2) { + $('#btn_save_vacancy').attr("disabled","1"); + } else { + $('#btn_save_vacancy').removeAttr("disabled"); + } + + } +}); +$('#dailyduration').on('change',function(e){ + if ($('#dailyduration').val() == "1.0"){ + $('#frmeditvacancy #hours').val(maxdayhours); + } + if ($('#dailyduration').val() == "0.4"){ + $('#frmeditvacancy #hours').val(maxhalfdayhours); + } +}); +$('#staff_color').on('change',function(e){ + saveonfocusout('staff_color'); +}); + +$("#weekly_byday :input").change(function() { + if (this.checked) { + this.setAttribute("checked",true); + }else { + this.removeAttribute("checked"); + } + +}); +$("#monthly_bydaypos :input").change(function() { + + if (this.checked) { + this.setAttribute("checked",true); + }else { + this.removeAttribute("checked"); + } + +}); +$("#monthly_bydaywday :input").change(function() { + + if (this.checked) { + this.setAttribute("checked",true); + }else { + this.removeAttribute("checked"); + } + +}); +$("#monthly_bymonthday :input").change(function() { + + if (this.checked) { + this.setAttribute("checked",true); + }else { + this.removeAttribute("checked"); + } + +}); +$("#monthly_by :input").change(function() { + var xd = this.id.split("_"); + curfreq.freqtype=xd[2]; + + this.setAttribute("checked",true); + + $('#freq_monthly_byday').hide(); + $('#freq_monthly_bymonthday').hide(); + $('#pnl_monthly_byday').removeAttr("checked"); + $('#pnl_monthly_bymonthday').removeAttr("checked"); + + $('#freq_' + this.value).show(); + +}); + +$('#frmeditevent #datefrom').on("blur",function (e) { + var ok = true; + if ($('#frmeditevent #datefrom').val().match(redate)) { + $('#btn_save_event').removeAttr("disabled"); + }else { + ok = false; + $('#btn_save_event').attr("disabled","1"); + } + if ((ok == true) && ($('#frmeditevent #dateto').val() != '')) { + var tmpdt1 = encodeparam($('#frmeditevent #datefrom').val(),'date'); + var tmpdt2 = encodeparam($('#frmeditevent #dateto').val(),'date'); + if (tmpdt1 >= tmpdt2) { + $('#btn_save_event').attr("disabled","1"); + } else { + $('#btn_save_event').removeAttr("disabled"); + } + + } +}); +$('#frmeditevent #dateto').on("blur",function (e) { + var ok = true; + if ($('#frmeditevent #dateto').val().match(redate)) { + $('#btn_save_event').removeAttr("disabled"); + }else { + ok = false; + $('#btn_save_event').attr("disabled","1"); + } + if ((ok == true) && ($('#frmeditevent #dateto').val() != '')) { + var tmpdt1 = encodeparam($('#frmeditevent #datefrom').val(),'date'); + var tmpdt2 = encodeparam($('#frmeditevent #dateto').val(),'date'); + + if (tmpdt1 >= tmpdt2) { + $('#btn_save_event').attr("disabled","1"); + } else { + $('#btn_save_event').removeAttr("disabled"); + } + + } +}); + +$('.selyear').on( "change", function(e){ + e.preventDefault(); + + $(".selyear").val($(this).val()); + pconfig.year = $(this).val(); + parent.apppref.setpreference("coworker",pconfig); + if ($(this).attr('id') == "year_organisation") { + load_event_data(); + }else if ($(this).attr('id') == "year_vacancy") { + load_table_vacancy(); + } +}); + +$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) { + var tn = e.target.toString(); + pconfig.activetab = tn.substring(tn.lastIndexOf("#")+1); + + parent.apppref.setpreference("coworker",pconfig); + if (pconfig.activetab == 'activity') { + load_event_data(); + } + if (pconfig.activetab == 'vacancy') { + load_table_vacancy(); + } + }); + +[% IF creorga.modules.staff.vacancy %] + +function load_table_vacancy() { + tblvac =null; + var yearvacanysql = "select hours from staffvacancydays where staffuuid='"+ pconfig.uuid+"' and vacancyyear='"+ $("#year_vacancy").val() +"';"; + var yearvac = parent.appdb.dbquery(yearvacanysql); + var nvyear = ""; + if ((yearvac) && (yearvac.sqldata)){ + nvyear = yearvac.sqldata[0].hours; + } + + $("#vacancyyeartotal").val(nvyear); + var vacdatasql = "SELECT '" + + "' AS action," + "vacyear," + + "strftime('%d.%m.%Y', datefrom) as datefrom,strftime('%d.%m.%Y', dateto) as dateto,printf(\"%.2f\",dayhours) as dayhours,totaldays,description," + + "case when type = 0 and accepted != '1' then printf(\"%.2f\", hours) else '' end as thnormalnv," + + "case when type = 1 and accepted != '1' then printf(\"%.2f\", hours) else '' end as thextranv," + + "case when type =-1 and accepted != '1' then printf(\"%.2f\", hours) else '' end as thillnv," + + "case when type = 0 and accepted = '1' then printf(\"%.2f\", hours) else '' end as thnormalval," + + "case when type = 1 and accepted = '1' then printf(\"%.2f\", hours) else '' end as thextraval," + + "case when type =-1 and accepted = '1' then printf(\"%.2f\", hours) else '' end as thillval," + + "case when type = 0 then 'normal' when type = 1 then 'exceptionnel' when type =-1 then 'maladie' end as vacancytype" + + " FROM (" + + "select uuid, vacyear, datefrom, dateto, type, description, accepted, (days-day_to_much-vdays) * (case when hours < maxdayhours then hours when hours > maxdayhours then maxdayhours else hours end ) as hours, "+ + "case when hours < maxdayhours then hours when hours > maxdayhours then maxdayhours else hours end as dayhours,days-day_to_much-vdays as totaldays " + + " from (" + + "select vc.uuid,vc.vacyear,vc.datefrom,vc.dateto,vc.type,vc.description,vc.accepted," + + "((strftime('%s',vc.dateto) - strftime('%s',vc.datefrom)) /84600) + 1 as days," + + "((((strftime('%s',vc.dateto) - strftime('%s',vc.datefrom)) /84600) + 2) / 7) * (7 - (st.weekhours / st.maxdayhours)) as day_to_much," + + "(select count(v.vacancydate) from vacancy v where v.vacancydateto is null and strftime('%s',v.vacancydate) not in ('0','6') and v.vacancydate between vc.datefrom and vc.dateto) as vdays,st.weekhours,st.weekhours / maxdayhours as days_per_week,vc.timefrom,vc.timeto,st.maxdayhours, " + + "cast(cast(strftime(\"%s\",vc.timeto) as int)- cast(strftime(\"%s\",vc.timefrom) as int) as real)/3600 as hours " + + "from vacancycalendar vc join staff st on (vc.staffuuid=st.uuid) where vc.staffuuid='"+ pconfig.uuid+"' and vc.vacyear=" + pconfig.year+"));"; + //days_to_much => +2 for sat+sun => +1 for saturday icluded + +var vacdata = parent.appdb.dbquery(vacdatasql); + var sums = { normal:0,except:0,ill:0,normal_ok:0,except_ok:0,ill_ok:0}; + + $("#tbl_vacancy > tbody").html(""); + + for (var i in vacdata.sqldata){ + var row = vacdata.sqldata[i]; + + sums.normal = sums.normal + ((row.thnormalnv != '')?parseFloat(row.thnormalnv):0.00); + sums.except = sums.except + ((row.thextranv != '')?parseFloat(row.thextranv):0.00); + sums.ill = sums.ill + ((row.thillnv != '')?parseFloat(row.thillnv):0.00); + sums.normal_ok = sums.normal_ok + ((row.thnormalval != '')?parseFloat(row.thnormalval):0.00); + sums.except_ok = sums.except_ok + ((row.thextraval != '')?parseFloat(row.thextraval):0.00); + sums.ill_ok = sums.ill_ok + ((row.thillval != '')?parseFloat(row.thillval):0.00); + var tr = ''; + tr += '' + row.action + ''; + tr += '' + row.vacyear + ''; + tr += '' + row.datefrom + ''; + tr += '' + row.dateto + ''; + tr += '' + row.totaldays + ''; + tr += '' + row.dayhours + ''; + tr += '' + row.description + ''; + tr += '' + row.vacancytype + ''; + tr += '' + row.thnormalnv + ''; + tr += '' + row.thnormalval + ''; + tr += '' + row.thextranv + ''; + tr += '' + row.thextraval + ''; + tr += '' + row.thillnv + ''; + tr += '' + row.thillval + ''; + tr += ''; + $("#tbl_vacancy > tbody").append(tr); + + } + var tfoot = "" + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + sums.normal.toFixed(2) + '' + + '' + sums.normal_ok.toFixed(2) + '' + + '' + sums.except.toFixed(2) + '' + + '' + sums.except_ok.toFixed(2) + '' + + '' + sums.ill.toFixed(2) + '' + + '' + sums.ill_ok.toFixed(2) + '' + +""; + $("#tbl_vacancy > tfoot").html(tfoot); + $("#vacancyyeartotalopen").val(""); + if (nvyear != ""){ + var sumrest = parseFloat(nvyear) - sums.normal_ok; + $("#vacancyyeartotalopen").val(sumrest.toFixed(2)); + } + + $("#tbl_vacancy").bootstrapTable({ + locale: 'fr-FR', + pagination: false, + search: false, + toolbar: "#mnuvac" + }); + + + +} + +function dlg_vacancy(uuid, type) { + //select weekhours/5 = max daily hours + maxdayhours = (parseFloat($("#staff_weekhours").val())/5).toFixed(2); + maxhalfdayhours = (maxdayhours/2).toFixed(2); + var evdata = { + uuid: 0, + description: '', + vacdatefrom:new Date().toISOString().substring(0,10), + vacdateto:new Date().toISOString().substring(0,10), + staffuuid:[pconfig.uuid], + timefrom: '00:00', + hours: maxdayhours, + type:'0', + + }; + + if (type == 'upd') { + var evsql = "select uuid,vacdatefrom,vacdateto,timefrom,description,staffuuid,case when hours = '0.00' then '" + maxdayhours +"' else hours end as hours,accepted from (SELECT uuid, datefrom as vacdatefrom, dateto as vacdateto, timefrom, description, '"+pconfig.uuid+"' as staffuuid,type, printf(\"%.2f\",cast((cast(strftime(\"%s\",timeto) as int)- cast(strftime(\"%s\",timefrom) as int))/3600 as real)) as hours,accepted FROM vacancycalendar where uuid='" + uuid.uuid + "');"; + + evdata = parent.appdb.dbquery(evsql); + evdata = evdata.sqldata[0]; + if (evdata.type == -1){ + $("#btnacceptvacancy").hide(); + }else { + $("#btnacceptvacancy").show(); + } + if (evdata.hours >= maxdayhours) { + evdata.hours=maxdayhours; + $('#dailyduration select').val("1.0"); + } else if (evdata.hours == maxhalfdayhours){ + $('#dailyduration select').val("0.4"); + } else { + $('#dailyduration select').val("0."); + } + + }else { + $('#dailyduration select').val("1.0"); + } + for (var w in evdata) { + if ((w == 'datefrom') || (w == 'dateto')) { + w='vac' + w; + } + + if ($("#frmeditvacancy #" + w)) { + + if (w == "type"){ + $("#frmeditvacancy #" + w + " select").val(evdata[w]); + } else { + $("#frmeditvacancy #" + w).val(evdata[w]); + } + + + } + + } + + setdailydurationfields(); + $("#edit_vacancy").modal('show'); +} + +function confirm_delete_vacancy(uuid) { + delvacation = uuid; + $("#confirm_delete_vacancy").modal('show'); + return false; +} + +function delete_vacancy() { + var delsql = "DELETE FROM vacancycalendar where uuid='" + delvacation+"';"; + parent.appdb.dbexec(delsql); + load_table_vacancy(); + delvacancy=null; + $("#confirm_delete_vacancy").modal('hide'); + + return false; +} + +function setdailydurationfields() { + var dd = $('#dailyduration :selected').val(); + if (dd=='1.0') { + //$("#ftimefrom").hide(); + $("#hours").prop("disabled",true); + }else if (dd=='0.4') { + //$("#ftimefrom").show(); + $("#hours").prop("disabled",true); + }else if (dd=='0.') { + //$("#ftimefrom").show(); + $("#hours").prop("disabled",false); + } +} + +function save_vacancy() { + var type = 'ins'; + var cuuid = ""; + if ($("#frmeditvacancy #uuid").val() != 0) { + type = 'upd'; + cuuid = $("#frmeditvacancy #uuid").val(); + } + var evsvdata = { + uuid:cuuid, + datefrom: $("#frmeditvacancy #vacdatefrom").val(), + dateto: $("#frmeditvacancy #vacdateto").val(), + timefrom: $("#frmeditvacancy #timefrom").val(), + hours: $("#frmeditvacancy #hours").val(), + description: $("#frmeditvacancy #description").val(), + staffuuid: $("#frmeditvacancy #staffuuid").val(), + type: $("#frmeditvacancy #type").val() + } + var savesql = ""; + if (type == 'ins') { + savesql = "INSERT INTO vacancycalendar (uuid, datefrom, dateto, timefrom, timeto, description, staffuuid, type,vacyear) VALUES " + +"('" + parent.appdb.generate_uuid() + "', date('"+evsvdata.datefrom+"'), date('"+evsvdata.dateto+"'), "+encodeparam(evsvdata.timefrom, 'text')+", strftime(\"%H:%M\",time("+encodeparam(evsvdata.timefrom, 'text')+",'+"+evsvdata.hours+" hours')), "+encodeparam(evsvdata.description, 'text')+", "+encodeparam(evsvdata.staffuuid, 'text')+","+evsvdata.type+",strftime(\"%Y\",date('"+evsvdata.datefrom+"')))"; + } else { + savesql = "UPDATE vacancycalendar SET vacyear=strftime(\"%Y\",date('"+evsvdata.datefrom+"')), datefrom = date('"+evsvdata.datefrom+"'), dateto = date('"+evsvdata.dateto+"'), timefrom = "+encodeparam(evsvdata.timefrom, 'text')+", timeto = strftime(\"%H:%M\",time("+encodeparam(evsvdata.timefrom, 'text')+",'+"+evsvdata.hours+" hours')), description = "+encodeparam(evsvdata.description, 'text')+", staffuuid = "+encodeparam(evsvdata.staffuuid, 'text')+", type = "+evsvdata.type+" WHERE uuid = '"+evsvdata.uuid+"';"; + } + //console.log("save vacancy"); + //console.log(savesql); + parent.appdb.dbexec(savesql); + load_table_vacancy(); + + $("#frmeditvacancy #uuid").val("0"); + $("#edit_vacancy").modal('hide'); +} + +function accept_vacancy(){ + var cuuid = ""; + if ($("#frmeditvacancy #uuid").val() != 0) { + type = 'upd'; + cuuid = $("#frmeditvacancy #uuid").val(); + } + var xsql = "UPDATE vacancycalendar SET accepted='1' where \"uuid\"='" + cuuid + "';"; + parent.appdb.dbexec(xsql); + load_table_vacancy(); + + $("#frmeditvacancy #uuid").val("0"); + $("#edit_vacancy").modal('hide'); +} + +function getlastyearsrest(){ + var weekhours = $('#staff_weekhours').val(); + if (weekhours === '') { + $("#vacancylastyearrest").val(0); + return; + } + var df = new Date(pconfig.year-1,0,1); + var dt = new Date(pconfig.year-1,11,31); + var vcalcrestsql = "select (select hours from staffvacancydays where staffuuid='"+pconfig.uuid+ "' and vacancyyear="+df.getFullYear()+")-SUM(dayhours) AS hours from (" + + "select vd.daydate,case when daydate <= date('now') then 1 else 0 end as taken,case when vc.timefrom=vc.timeto then cast ("+weekhours+"/5 as real) else (cast (substr(vc.timeto,1,2) as int) + (cast(substr(vc.timeto,4,5) as int)/60)) - (cast(substr(vc.timefrom,1,2) as int) + (cast(substr(vc.timeto,4,5) as int)/60)) end as dayhours,type,case when type != -1 then accepted else '1' end as accepted "+ + "from vacancycalendar vc left join ( "+ + "select daydate from ( "; + + var yd = []; + for (var dx=df;dx<=dt;dx.setDate(dx.getDate()+1)){ + yd.push("select date('"+dx.toISOString().substring(0,10)+"') as daydate"); + } + vcalcrestsql += yd.join(" UNION ") + + ") yd where strftime('%w',daydate) not in ('0','6') and daydate not in (select vacancydate from vacancy where vacancydate between '"+df.getFullYear()+"-01-01' and '"+dt.getFullYear()+"-12-31' and vacancydateto is null) " + + ") vd on (vd.daydate between vc.datefrom and vc.dateto) " + + "left join staffvacancydays svd on (vc.staffuuid=svd.staffuuid) " + + "where vc.staffuuid='"+pconfig.uuid+ "' and daydate is not null group by daydate) where type in (0,1) and taken=1 and accepted=1 group by taken,accepted;"; + //dump("SQLREST:" + vcalcrestsql + "\n"); + var vcalc = parent.appdb.dbquery(vcalcrestsql); + //dump(JSON.stringify(vcalc) + "\n"); + if (vcalc && vcalc.sqldata[0]){ + +$("#vacancylastyearrest").val(vcalc.sqldata[0].hours); + }else { +$("#vacancylastyearrest").val(0); + } + return; +} + +function set_selectyears() { + + var years = parent.appdb.dbquery("select COALESCE((select cast(min(vacancyyear) as TEXT) as minyear from staffvacancydays where staffuuid='" + pconfig.uuid + "'),strftime('%Y',coalesce(min(entrydate),date('now','-1 year')))) as minyear,strftime('%Y',date('now', '+1 year')) as maxyear from staff where uuid='"+pconfig.uuid+"';"); + var minyear = parseInt(years.sqldata[0].minyear); + var maxyear = parseInt(years.sqldata[0].maxyear); + for (var y=minyear;y<=maxyear;y++){ + + var sel = ""; + if (y == pconfig.year) { + sel=' selected="1" '; + + } + + $(".selyear").append(""); + } + +} + +function saveyearvacdays() { + var csel = "select * from staffvacancydays where staffuuid='"+pconfig.uuid+"' and vacancyyear='"+pconfig.year+"';"; + var days = 0; + var hours = 0; + if ($('#vacancyyeartotal').val() === ""){ + return; + } + if (pconfig.vacancyunit == "hours"){ + days = parseFloat($('#vacancyyeartotal').val().replace(',','.')) / 8; + hours = $('#vacancyyeartotal').val(); + }else { + days = parseFloat($('#vacancyyeartotal').val().replace(',','.')); + hours = parseFloat($('#vacancyyeartotal').val().replace(',','.')) * 8; + } + var cnum = parent.appdb.dbquery(csel); + var inssql = "INSERT INTO staffvacancydays (staffuuid,vacancyyear,days,hours) VALUES ('"+pconfig.uuid+"','"+pconfig.year+"',"+days+","+hours+");"; + if (cnum.sqldata.length > 0) { + inssql = "UPDATE staffvacancydays SET days="+days+",hours="+hours+" where staffuuid='"+pconfig.uuid+"' and vacancyyear='"+pconfig.year+"';"; + } + parent.appdb.dbexec(inssql); + //calcvacancy(); +} +[% END %] +[% IF creorga.modules.staff.planning %] +function load_event_data() { + + var where = new Array(); + + where.push(" st.uuid in ('"+ pconfig.uuid + "')"); + + $("div.panel-daybody").html(""); + var sql = "SELECT cal.uuid, cal.datefrom, cal.dateto, '
    ' || strftime('%Y%m%d',cal.datefrom) ||'
    ' || strftime('%d.%m.%Y',cal.datefrom) AS tbldatefrom ,strftime('%Y%m%d',cal.datefrom) AS strdatefrom, strftime('%Y%m%d',cal.dateto) AS strdateto,cal.timefrom, cal.timeto, cal.description, cal.location, cal.color, cal.freq, '[\"' || GROUP_CONCAT(sp.staffuuid,'\",\"') || '\"]' as staffuuid, GROUP_CONCAT(coalesce(st.surname,'') || ' ' || coalesce(st.prename,''), '
    ' ) as staffnames ,'[\"' || GROUP_CONCAT(st.color,'\",\"') || '\"]' as staffcolors from eventcalendar cal " +" join staffplanning sp on (cal.uuid=sp.eventcalendaruuid " + " AND sp.staffuuid in ('"+ pconfig.uuid +"')) left join staff st on (sp.staffuuid=st.uuid) "+ + " where (cal.datefrom between '" + $('#year_organisation').val() + "-01-01' and '" + $('#year_organisation').val() + "-12-31' and (cal.dateto >= '" + $('#year_organisation').val() + "-01-01' or cal.dateto is null)) or (cal.dateto between '" + $('#year_organisation').val() + "-01-01' and '" + $('#year_organisation').val() + "-12-31' and cal.datefrom < '" + $('#year_organisation').val() + "-01-01') or ((cal.datefrom <= '" + $('#year_organisation').val() + "-01-01') and ((cal.dateto >= '" + $('#year_organisation').val() + "-12-31') or cal.dateto is null)) "+ ((where.length > 0)?" AND (" + where.join(" or ") + ")":"")+" group by cal.uuid order by cal.datefrom,cal.dateto;"; + + var caldata = parent.appdb.dbquery(sql); + + caldata = caldata.sqldata; + + var headerdata = getlabels("act,datefrom,hours,recurrance"); + $("#tbl_activity").html(""); + + var hrow = headerdata; + var tdclass= new Array(); + var tblheader = ''; + + for (var h=0;h'+ headerdata[h].title+''; + } + tblheader += ''; + + $("#tbl_activity").append("" + tblheader + ""); + $("#tbl_activity").append(""); + var tblbody = []; + for (var c in caldata) { + var tblrow = ""; + tblrow += ''; + + tblrow += "" + caldata[c].tbldatefrom + ""; + tblrow += "" + caldata[c].timefrom + "- " + caldata[c].timeto + ""; + + var freq2 = caldata[c].freq; + if (freq2 != '') { + + freq2 += ';DTSTART='+caldata[c].strdatefrom + 'T000000Z'; + if (caldata[c].dateto != ''){ + freq2 += ';UNTIL='+caldata[c].strdateto + 'T000000Z'; + } + } + + try { + + var rule2 = RRule.fromString(freq2); + + + tblrow += "" + rule2.toText() + ""; + + } catch (ex){ + + } + tblrow += ""; + tblbody.push(tblrow); + } + + $("#tbl_activity").append(tblbody.join('')); + $("#tbl_activity").append(""); + + $("#tbl_activity").bootstrapTable({ + locale: 'fr-FR', + pagination: false, + search: false, + height: wh, + toolbar: "#mnuact" + }); + + +} + +function dlg_event(uuid, type) { + + if (type== "ins") { + + $('#btndeleteevent').hide(); + + }else { + $('#btndeleteevent').show(); + } + $('#frmeditevent #freqinterval').hide(); + $('#frmeditevent #freqmonthly').hide(); + $('#frmeditevent #freqweekly').hide(); + $('#frmeditevent #freq_monthly_byday').show(); + $('#frmeditevent #freq_monthly_bymonthday').hide(); + $('#frmeditevent #freq').val(""); + $('#frmeditevent .active').removeClass('active'); + if ((type == 'upd') || (type == 'ins')) { + + var evdata = { + uuid: '0', + description: '', + activityuuid:'', + location: '', + color: '', + datefrom:new Date().toISOString().substring(0,10), + dateto:'', + staffuuid: pconfig.uuid, + timefrom: '00:00', + timeto: '00:00', + freq: '', + staffname: $("#staff_prename").val() + " " + $("#staff_surname").val() + }; + + if (type == 'upd') { + var evsql = "SELECT uuid, strftime(\"%d.%m.%Y\",datefrom) as datefrom, strftime(\"%d.%m.%Y\",dateto) as dateto, timefrom, timeto, description, location, color, freq, '"+ pconfig.uuid+"' as staffuuid FROM eventcalendar ev left join staffplanning st on (ev.uuid=st.eventcalendaruuid) where ev.uuid='" + uuid.uuid + "' group by ev.uuid;"; + evdata = parent.appdb.dbquery(evsql); + evdata = evdata.sqldata[0]; + evdata['staffname'] = $("#staff_prename").val() + " " + $("#staff_surname").val(); + if (evdata.freq != '') { + var tmpfreq = evdata.freq.split(';'); + for (var t in tmpfreq){ + if (tmpfreq[t] != '') { + var spl = tmpfreq[t].split("="); + evdata[spl[0].toLowerCase()] = spl[1].toLowerCase(); + } + } + } + } + for (var w in evdata) { + if ($("#frmeditevent #" + w)) { + + $("#frmeditevent #" + w).val(evdata[w]); + + } + } + if ((evdata.freq == 'weekly') && (evdata.byday)) { + var bd = evdata.byday.split(','); + for (var i in bd){ + document.getElementById('weekly_byday_' + bd[i]).setAttribute("checked",true); + $('#frmeditevent #weekly_byday_' + bd[i]).parent().addClass("active"); + } + } + if (evdata.freq == 'monthly') { + $('#freq_monthly_byday').hide(); + $('#freq_monthly_bymonthday').hide(); + $('#pnl_monthly_byday').removeAttr("checked"); + $('#pnl_monthly_bymonthday').removeAttr("checked"); + if (evdata.byday) { + document.getElementById('pnl_monthly_byday').setAttribute("checked",true); + $('#frmeditevent #pnl_monthly_byday').parent().addClass("active"); + $('#freq_monthly_byday').show(); + var bd = evdata.byday.split(','); + var adpos = new Array(); + var awday = new Array(); + for (var i in bd){ + var wday = bd[i].substr(bd[i].length-2); + var pos = bd[i].substring(0,bd[i].length-2); + awday.push(wday.toLowerCase()); + adpos.push(pos); + } + + for (var i in adpos){ + document.getElementById('monthly_bydaypos_' + adpos[i]).setAttribute("checked",true); + $('#frmeditevent #monthly_bydaypos_' + adpos[i]).parent().addClass("active"); + } + for (var i in awday){ + document.getElementById('monthly_bydaywday_' + awday[i]).setAttribute("checked",true); + $('#frmeditevent #monthly_bydaywday_' + awday[i]).parent().addClass("active"); + } + }else if (evdata.bymonthday) { + document.getElementById('pnl_monthly_bymonthday').setAttribute("checked",true); + $('#frmeditevent #pnl_monthly_bymonthday').parent().addClass("active"); + $('#freq_monthly_bymonthday').show(); + var bd = evdata.bymonthday.split(','); + for (var i in bd){ + document.getElementById('monthly_bymonthday_' + bd[i]).setAttribute("checked",true); + $('#frmeditevent #monthly_bymonthday_' + bd[i]).parent().addClass("active"); + } + } + } + setfreq(); + $("#edit_event").modal('show'); + } +} + + +function save_event() { + var sql1 = new Array(); + var sql2 = new Array(); + if ($('#timefrom').val() == $('#timeto').val() || $('#timefrom').val() == "00:00" || $('#timeto').val() == "00:00"){ + errormsg("Erreur","les heures doivent être différent et différent de la valeur 00:00!"); + return false; + } + if ($('#timefrom').val() > $('#timeto').val()){ + errormsg("Erreur","l'heure de début ne peux pas être supérieur à l'heure de fin!"); + return false; + } + if (!$('#staffuuid').val()){ + errormsg("Erreur","Vous devez selectionner au moin 1 membre du staff!"); + return false; + } + if ($('#dateto').val() != '' && (encodeparam($('#datefrom').val()) > encodeparam($('#dateto').val())) ) { + errormsg("Erreur","La Date début ne peut pas être supérieur à la date fin!"); + return false; + } + var type = 'ins'; + var cuuid = ""; + if ($("#frmeditevent #uuid").val() != 0) { + type = 'upd'; + cuuid = $("#frmeditevent #uuid").val(); + } else { + cuuid = parent.appdb.generate_uuid(); + } + var freqdata = {}; + var cfreq = $("#frmeditevent #freq").val(); + $("#frmeditevent :input").each(function() { + var input = $(this); + + if (input.attr("id") && (input.attr("id") != "staffuuid") && (input.attr("id") != "staffname")) { + if ((input.attr("type") == "checkbox") && (input.attr("id").indexOf(cfreq) >= 0)){ + var xd = input.attr("id").split("_"); + if (input.attr("checked")) { + if (!freqdata[xd[1]]) { + freqdata[xd[1]] = new Array(); + } + freqdata[xd[1]].push(input.val()); + } + } + else if ((input.attr("type") == "radio") && (input.attr("id").indexOf(cfreq) >= 0)) { + var xd = input.attr("id").split("_"); + if (input.attr("checked")) { + freqdata['freqtype'] = xd[2]; + } + } + else if ((input.attr("type") != "checkbox") && ((input.attr("type") != "radio"))){ + if ((input.attr("id") == 'interval') || (input.attr("id") == 'freq')) { + freqdata[input.attr("id")] = input.val(); + } else if ((type == 'ins') && (input.attr("id") != 'staffuuid')) { + + sql1.push('"' + input.attr("id") + '"'); + if (input.attr("id") == 'uuid') { + if (input.val() == "" || input.val() == "0") { + sql2.push("'" + cuuid + "'"); + } else { + sql2.push("'" + input.val() + "'"); + } + } else { + var ival = encodeparam(input.val(), input.attr('type')); + sql2.push(ival); + } + } else { + if ((input.attr("id") != 'uuid') && (input.attr("id") != 'staffuuid')){ + var ival = encodeparam(input.val(), input.attr('type')); + sql2.push('"' + input.attr("id") + '"=' + ival); + } + } + } + } + + }); + if (!freqdata.freqtype) { + freqdata['freqtype'] = curfreq.freqtype; + } + + var strfreq =""; + if (cfreq != "") { + strfreq='FREQ=' + cfreq.toUpperCase()+';INTERVAL=' + freqdata.interval +';'; + if ((cfreq == 'weekly') && (freqdata.byday)){ + strfreq += 'BYDAY=' + freqdata.byday.join(","); + } + if ((cfreq == 'monthly') && (freqdata.bydaypos) || ((freqdata.bydaywday)) || (freqdata.bymonthday)){ + strfreq += freqdata.freqtype.toUpperCase() + '='; + if (freqdata.freqtype == 'bymonthday') { + strfreq += freqdata.bymonthday.join(',') + ";" + }else { + var abyday = new Array(); + for (var p in freqdata.bydaypos){ + for (var w in freqdata.bydaywday){ + abyday.push(freqdata.bydaypos[p] + freqdata.bydaywday[w]); + } + } + strfreq += abyday.join(","); + } + } + if (strfreq.slice(-1) == ';') { + strfreq = strfreq.substring(0,strfreq.length-1); + } + } + var staffuuids = $('#staffuuid').val(); + var delsql = ""; + var xsql = []; + if (type != 'ins') { + xsql.push("DELETE FROM staffplanning where eventcalendaruuid = '"+cuuid+"';"); + } + var staffinssql = ""; + + if (staffuuids && (staffuuids.length != 0)) { + + staffinssql = "INSERT INTO staffplanning (eventcalendaruuid,staffuuid) VALUES "; + var tmps = []; + var curcoworkerok = false; + for (var s in staffuuids){ + if (staffuuids[s] == pconfig.uuid){ + curcoworkerok = true; + } + tmps.push("('"+cuuid+"','"+staffuuids[s]+"')"); + } + if (!curcoworkerok){ + tmps.push("('"+cuuid+"','"+pconfig.uuid+"')"); + } + staffinssql += tmps.join(',') + ";"; + xsql.push(staffinssql); + } + if (staffuuids.length == 0){ + staffinssql = "INSERT INTO staffplanning (eventcalendaruuid,staffuuid) VALUES ('"+cuuid+"','"+pconfig.uuid+"');"; + xsql.push(staffinssql); + } + + + + if (type == 'upd') { + sql2.push('freq=' + encodeparam(strfreq)); + xsql.push("UPDATE eventcalendar SET " + sql2.join(',') + " where \"uuid\"='" + cuuid + "';"); + } else { + sql1.push('freq'); + sql2.push(encodeparam(strfreq)); + xsql.push("INSERT INTO eventcalendar (" + sql1.join(',') + ") VALUES (" + sql2.join(',') + ");"); + } + dump(JSON.stringify(xsql)); + for (var i in xsql){ + parent.appdb.dbexec(xsql[i]); + } + + load_event_data(); + + $("#frmeditevent #uuid").val("0"); + $("#edit_event").modal('hide'); +} + +function confirm_delete_event() { + $("#confirm_delete_event").modal('show'); + return false; +} + +function delete_event() { + parent.appdb.dbexec("DELETE FROM eventcalendar where uuid='" + $('#frmeditevent #uuid').val()+"';"); + parent.appdb.dbexec("DELETE FROM staffplanning where eventcalendaruuid='" + $('#frmeditevent #uuid').val()+"';"); + load_event_data(); + $("#confirm_delete_event").modal('hide'); + + return false; +} + +[% END %] + +function setfreq() { + + curfreq.freq = $('#freq option:selected').val(); + + $('#freqinterval').hide(); + $('#freqmonthly').hide(); + $('#freqweekly').hide(); + if (curfreq.freq != "") { + + $('#lblfreq').text(lblfreq[curfreq.freq]); + $('#freqinterval').show(); + if (curfreq.freq != 'daily') { + $('#freq' + curfreq.freq).show(); + } + } + +} + + + diff --git a/CGI/tmpl/app/creorga/module/staff/js/staff.js b/CGI/tmpl/app/creorga/module/staff/js/staff.js index 17475d4..f053d54 100644 --- a/CGI/tmpl/app/creorga/module/staff/js/staff.js +++ b/CGI/tmpl/app/creorga/module/staff/js/staff.js @@ -1,113 +1,113 @@ -//Source-code licensed under EUPL v1.2 ( Copyright 2019 By DKS s.à r.l. - Kilian Saffran - Luxembourg ) -var pconfig = {}; -var delcoworker = null; -var wh = window.innerHeight - 130; -var tblstaff = null; - -function initdata() { - - loadtable(); - set_infoheader(""); - pconfig = parent.apppref.getpreference("staff"); - if (!pconfig.printlayout) { - pconfig.printlayout = 'list'; - parent.apppref.setpreference("staff", pconfig); - } - - } - -function loadtable() { - var delbtn = ""; - [% IF creorga.modules.staff.delete %] - delbtn = ""; - [% END %] - var sql = "SELECT '"+delbtn+"' as action, coalesce(prename,'') || '
    ' || coalesce(surname,'') as name,case when color is not null then '
    ' else null end color, coalesce(address,'')|| '
    ' || coalesce(zip,'') || ' ' || coalesce(city,'') || '
    ' || coalesce(country,'') as address, case when phone is not null then ': ' || phone || '
    ' else '' end || case when email is not null then ':' || email else '' end as phonemail, coalesce(jobtitle,'') || '
    ' || case when entrydate is not null then 'à partir du: ' || strftime('%d.%m.%Y',entrydate) else '' end || case when exitdate is not null then ' jusqu''au: ' || strftime('%d.%m.%Y',exitdate) else '' end as jobtitle FROM staff where inactive is null;"; - - var data = parent.appdb.dbqueryarray(sql); - - var headerdata = getlabels(data.sqlhead.join(",")); - $("#tbl_staff").html(""); - tblstaff = $("#tbl_staff").dataTable({ - "language": { - "url": "../../../oldvendor/js/locale/datatable_fr.json" - }, - "data": data.sqldata, - "columns": headerdata, - "paging": false, - "scrollY": wh + "px", - "scrollCollapse": true, - "ordering": true, - "info": false, - "filter": true, - "destroy": true - }); - - $('#tbl_staff').on('order.dt', function() { - pconfig.order = tblstaff.fnSettings().aaSorting; - parent.apppref.setpreference("pageconfig.staff", pconfig); - - }); -// if (pconfig.filter) { -// tblstaff.fnFilter(pconfig.filter); -// } - if (pconfig.order) { - tblstaff.fnSort(pconfig.order); - } - if (/*(!pconfig.filter) && */ (!pconfig.order)) { - tblstaff.fnDraw(); - } -} - - - -function add_coworker() { - var newuuid = parent.appdb.generate_uuid(); - parent.appdb.dbexec("insert into staff (uuid) VALUES ('" + newuuid + "');"); - parent.app.loadpage('modules/staff/coworker.html',{uuid:newuuid}); - -} - -function confirm_delete_coworker(myuuid) { - - delcoworker = myuuid; - $("#confirm_delete_coworker").modal('show'); - return false; -} - -function delete_coworker() { - //var frmdata = new Object(); - //parent.appdb.dbexec("DELETE FROM planningstaff where staffuuid='"+delcoworker +"';"); - var evdel = parent.appdb.dbquery("select eventcalendaruuid,count(staffuuid) as cnt from staffplanning where staffuuid='" + delcoworker + "';"); - - parent.appdb.dbexec("DELETE FROM staffvacancydays where staffuuid='" + delcoworker + "';"); - parent.appdb.dbexec("DELETE FROM vacancycalendar where staffuuid='" + delcoworker + "';"); - parent.appdb.dbexec("DELETE FROM staffplanning where staffuuid='" + delcoworker + "';"); - parent.appdb.dbexec("DELETE FROM staff where uuid='" + delcoworker + "';"); - for (var e in evdel.sqldata) { - if (evdel.sqldata[e].cnt == 1) { - parent.appdb.dbexec("DELETE FROM eventcalendar where uuid='" + evdel.sqldata[e].eventcalendaruuid + "';"); - } - } - delcoworker = null; - loadtable(); - $("#confirm_delete_coworker").modal('hide'); - -} - -function load_coworker(couuid){ - - var cwdata = parent.apppref.getpreference("pageconfig.coworker"); - var cow = new Object(); - if (cwdata && cwdata !== ""){ - cow = JSON.parse(cwdata); - } - - cow.uuid = couuid; - - parent.apppref.setpreference("pageconfig.coworker",cow); - globelreq.send_request({page:'coworker', - module:'staff', - data:null, - header:'Employé(e)'}); - +//Source-code licensed under EUPL v1.2 ( Copyright 2019 By DKS s.à r.l. - Kilian Saffran - Luxembourg ) +var pconfig = {}; +var delcoworker = null; +var wh = window.innerHeight - 130; +var tblstaff = null; + +function initdata() { + + loadtable(); + set_infoheader(""); + pconfig = parent.apppref.getpreference("staff"); + if (!pconfig.printlayout) { + pconfig.printlayout = 'list'; + parent.apppref.setpreference("staff", pconfig); + } + + } + +function loadtable() { + var delbtn = ""; + [% IF creorga.modules.staff.delete %] + delbtn = ""; + [% END %] + var sql = "SELECT '"+delbtn+"' as action, coalesce(prename,'') || '
    ' || coalesce(surname,'') as name,case when color is not null then '
    ' else null end color, coalesce(address,'')|| '
    ' || coalesce(zip,'') || ' ' || coalesce(city,'') || '
    ' || coalesce(country,'') as address, case when phone is not null then ': ' || phone || '
    ' else '' end || case when email is not null then ':' || email else '' end as phonemail, coalesce(jobtitle,'') || '
    ' || case when entrydate is not null then 'à partir du: ' || strftime('%d.%m.%Y',entrydate) else '' end || case when exitdate is not null then ' jusqu''au: ' || strftime('%d.%m.%Y',exitdate) else '' end as jobtitle FROM staff where inactive is null;"; + + var data = parent.appdb.dbqueryarray(sql); + + var headerdata = getlabels(data.sqlhead.join(",")); + $("#tbl_staff").html(""); + tblstaff = $("#tbl_staff").dataTable({ + "language": { + "url": "../../../oldvendor/js/locale/datatable_fr.json" + }, + "data": data.sqldata, + "columns": headerdata, + "paging": false, + "scrollY": wh + "px", + "scrollCollapse": true, + "ordering": true, + "info": false, + "filter": true, + "destroy": true + }); + + $('#tbl_staff').on('order.dt', function() { + pconfig.order = tblstaff.fnSettings().aaSorting; + parent.apppref.setpreference("pageconfig.staff", pconfig); + + }); +// if (pconfig.filter) { +// tblstaff.fnFilter(pconfig.filter); +// } + if (pconfig.order) { + tblstaff.fnSort(pconfig.order); + } + if (/*(!pconfig.filter) && */ (!pconfig.order)) { + tblstaff.fnDraw(); + } +} + + + +function add_coworker() { + var newuuid = parent.appdb.generate_uuid(); + parent.appdb.dbexec("insert into staff (uuid) VALUES ('" + newuuid + "');"); + parent.app.loadpage('modules/staff/coworker.html',{uuid:newuuid}); + +} + +function confirm_delete_coworker(myuuid) { + + delcoworker = myuuid; + $("#confirm_delete_coworker").modal('show'); + return false; +} + +function delete_coworker() { + //var frmdata = new Object(); + //parent.appdb.dbexec("DELETE FROM planningstaff where staffuuid='"+delcoworker +"';"); + var evdel = parent.appdb.dbquery("select eventcalendaruuid,count(staffuuid) as cnt from staffplanning where staffuuid='" + delcoworker + "';"); + + parent.appdb.dbexec("DELETE FROM staffvacancydays where staffuuid='" + delcoworker + "';"); + parent.appdb.dbexec("DELETE FROM vacancycalendar where staffuuid='" + delcoworker + "';"); + parent.appdb.dbexec("DELETE FROM staffplanning where staffuuid='" + delcoworker + "';"); + parent.appdb.dbexec("DELETE FROM staff where uuid='" + delcoworker + "';"); + for (var e in evdel.sqldata) { + if (evdel.sqldata[e].cnt == 1) { + parent.appdb.dbexec("DELETE FROM eventcalendar where uuid='" + evdel.sqldata[e].eventcalendaruuid + "';"); + } + } + delcoworker = null; + loadtable(); + $("#confirm_delete_coworker").modal('hide'); + +} + +function load_coworker(couuid){ + + var cwdata = parent.apppref.getpreference("pageconfig.coworker"); + var cow = new Object(); + if (cwdata && cwdata !== ""){ + cow = JSON.parse(cwdata); + } + + cow.uuid = couuid; + + parent.apppref.setpreference("pageconfig.coworker",cow); + globelreq.send_request({page:'coworker', + module:'staff', + data:null, + header:'Employé(e)'}); + } \ No newline at end of file diff --git a/CGI/tmpl/app/creorga/module/staff/stafflist.tt b/CGI/tmpl/app/creorga/module/staff/stafflist.tt index 1a266e2..2d28c8f 100644 --- a/CGI/tmpl/app/creorga/module/staff/stafflist.tt +++ b/CGI/tmpl/app/creorga/module/staff/stafflist.tt @@ -1,76 +1,76 @@ - - - - - - - StaffList - - - - - - - - - - - - - - - - -
    - - -
    - - - -
    - -
    - - - - - - - - - - - + + + + + + + StaffList + + + + + + + + + + + + + + + + +
    + + +
    + + + +
    + +
    + + + + + + + + + + + diff --git a/CGI/tmpl/app/invoicejournal/index.tt b/CGI/tmpl/app/invoicejournal/index.tt index 7589326..9e49176 100644 --- a/CGI/tmpl/app/invoicejournal/index.tt +++ b/CGI/tmpl/app/invoicejournal/index.tt @@ -23,9 +23,10 @@ class="w3-bar-item w3-button w3-right w3-padding-16" title="close Sidebar">&time Übersicht - Buchungen - Rechnungen - Konten + Journal + Verkäufe + Rechnungs-Erstellung + Addressen Bankkonto Dokumente Angebote diff --git a/CGI/tmpl/app/invoicejournal/module/bankaccount/index.tt b/CGI/tmpl/app/invoicejournal/module/bankaccount/index.tt index a3bb402..7d1096e 100644 --- a/CGI/tmpl/app/invoicejournal/module/bankaccount/index.tt +++ b/CGI/tmpl/app/invoicejournal/module/bankaccount/index.tt @@ -1,40 +1,40 @@ - -
    - -
    - - - - -
    -
    - -
    -
    - -
    -
    - × -

    Kontoauszug hochladen

    -
    -
    -
    - -
    - - -
    -
    - - - -
    -
    -
    -
    - - -
    -
    + +
    + +
    + + + + +
    +
    + +
    +
    + +
    +
    + × +

    Kontoauszug hochladen

    +
    +
    +
    + +
    + + +
    +
    + + + +
    +
    +
    +
    + + +
    +
    \ No newline at end of file diff --git a/CGI/tmpl/app/invoicejournal/module/dashboard/module.js b/CGI/tmpl/app/invoicejournal/module/dashboard/module.js index 12e871f..01fe694 100644 --- a/CGI/tmpl/app/invoicejournal/module/dashboard/module.js +++ b/CGI/tmpl/app/invoicejournal/module/dashboard/module.js @@ -1,3 +1,3 @@ -function initpage(){ - +function initpage(){ + } \ No newline at end of file diff --git a/CGI/tmpl/app/invoicejournal/module/expenses/index.tt b/CGI/tmpl/app/invoicejournal/module/expenses/index.tt index 6622186..84a8994 100644 --- a/CGI/tmpl/app/invoicejournal/module/expenses/index.tt +++ b/CGI/tmpl/app/invoicejournal/module/expenses/index.tt @@ -1,2 +1,2 @@ - -

    Ausgaben

    + +

    Ausgaben

    diff --git a/CGI/tmpl/app/invoicejournal/module/expenses/module.js b/CGI/tmpl/app/invoicejournal/module/expenses/module.js index 12e871f..01fe694 100644 --- a/CGI/tmpl/app/invoicejournal/module/expenses/module.js +++ b/CGI/tmpl/app/invoicejournal/module/expenses/module.js @@ -1,3 +1,3 @@ -function initpage(){ - +function initpage(){ + } \ No newline at end of file diff --git a/CGI/tmpl/app/invoicejournal/module/invoicejournal/index.js b/CGI/tmpl/app/invoicejournal/module/invoicejournal/index.js index 12e871f..491fe3a 100644 --- a/CGI/tmpl/app/invoicejournal/module/invoicejournal/index.js +++ b/CGI/tmpl/app/invoicejournal/module/invoicejournal/index.js @@ -1,3 +1,96 @@ +var tbl=null; + function initpage(){ + console.log(mpref.cfg); + console.log("APP:" + parent.app); + flatpickr(".datefield",{altInput: true, + altFormat: "d.m.Y", + dateFormat: "Y-m-d", + allowInput: true, + "locale": "de", + }); + tbl = new Tabulator("#tbl_invoices", { + headerFilterPlaceholder:"filter...", + height: "95vh", + layout:"fitColumns", + selectable:1, + // responsiveLayout:"collapse", + columns:[ + {title:"Datum", field:"invoicedate",formatter:"datetime", formatterParams:{ + inputFormat:"YYYY-MM-DD", + outputFormat:"DD.MM.YYYY", + invalidPlaceholder:""}}, + {title:"Jahr", field:"byear",headerFilter:"input"}, + {title:"Quartal", field:"bquarter",headerFilter:"input"}, + {title:"Sender", field:"sender",headerFilter:"input"}, + {title:"Empfänger", field:"receipient",headerFilter:"input"}, + {title:"Referenz",field:"reference",headerFilter:"input"}, + {title:"Status",field:"status",headerFilter:"input",formatter:function(cell, formatterParams){ + var value = cell.getValue(); + //console.log(value.indexOf("bez")); + if(value.indexOf("bezahlt") >= 0){ + return "" + value + ""; + } + else if (value.indexOf("überfällig") >= 0) { + return "" + value + ""; + } + else if (value.indexOf("geplant") >= 0) { + return "" + value + ""; + } + else{ + return "" + value + ""; + } + }}, + {title:"Betrag",field:"payedamount",align:"right",formatter:"money", formatterParams:{ + decimal:",", + thousand:".", + symbol:"€", + symbolAfter:"p", + precision:2, + }}] + }); + gettbldata(); +} + +function gettbldata(){ + req.reqdata("POST","db.cgi",{"db":parent.app + "/" + mpref.cfg.db, "get":"invoices"},loadtbldata); +} + +function loadtbldata(data){ + console.log(data); + if (data && data.sqldata){ + tbl.setData(data.sqldata); + } +} + +function edit(){ + var udata = tbl.getSelectedData(); + if (udata[0]){ + console.log(udata); + viewinvoicepanel(); + } -} \ No newline at end of file +} + +function add(){ + //TODO Clean form + viewinvoicepanel(); +} + +function remove(){ + +} + +function viewinvoicepanel(){ + document.getElementById('tbl_invoices').style.display='none'; + document.getElementById('pnl_invoices').style.display='block'; + return false; +} + +function viewtable(){ + gettbldata(); + document.getElementById('pnl_invoices').style.display='none'; + document.getElementById('tbl_invoices').style.display='block'; + return false; +} + diff --git a/CGI/tmpl/app/invoicejournal/module/invoicejournal/index.tt b/CGI/tmpl/app/invoicejournal/module/invoicejournal/index.tt index 706317d..537b40c 100644 --- a/CGI/tmpl/app/invoicejournal/module/invoicejournal/index.tt +++ b/CGI/tmpl/app/invoicejournal/module/invoicejournal/index.tt @@ -1,2 +1,74 @@ +[% PROCESS macro/fields.tt %] +
    +
    + + + + + + +
    +
    +
    + + -

    Anwendungs-Einstellungen

    + diff --git a/CGI/tmpl/app/invoicejournal/module/invoices/index.js b/CGI/tmpl/app/invoicejournal/module/invoices/index.js index bdaab6b..4c895c4 100644 --- a/CGI/tmpl/app/invoicejournal/module/invoices/index.js +++ b/CGI/tmpl/app/invoicejournal/module/invoices/index.js @@ -1,203 +1,75 @@ -var winh = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); -var tblh = winh-54; -var pagepref = undefined; -var selection = []; -var shiftdown = false; -function initpage(){ - - pagepref = parent.usersystem.getPreference("invoices"); - if (pagepref === null){ - pagepref= {}; - } - console.log(pagepref); - //loadyears(); - loadtable(); - load_senders(); - load_receipients(); - load_dateranges(); -} - -$(document).on('keydown',function(evt){ - if (evt.key= "Shift"){ - shiftdown = true; - } -}); - -$(document).on('keyup',function(evt){ - if (evt.key = "Shift"){ - shiftdown = false; - } -}); - +var tbl=null; -function loadtable(){ - var where = ''; - if (pagepref && pagepref.filter && Object.keys(pagepref.filter).length > 0){ - var whfilter = []; - for (var i in pagepref.filter){ - console.log(i); - if (i == 'date'){ - if ($("#daterange :selected").text() != ''){ - whfilter.push(pagepref.filter[i] + "='" + $("#daterange :selected").text() + "'"); - } - - } else { - whfilter.push(i + "='" + pagepref.filter[i] + "'"); +function initpage(){ + console.log(mpref.cfg); + console.log("APP:" + parent.app); + tbl = new Tabulator("#tbl_invoices", { + headerFilterPlaceholder:"filter...", + height: "95vh", + layout:"fitColumns", + selectable:1, + // responsiveLayout:"collapse", + columns:[ + {title:"Datum", field:"invoicedate",formatter:"datetime", formatterParams:{ + inputFormat:"YYYY-MM-DD", + outputFormat:"DD.MM.YYYY", + invalidPlaceholder:""}}, + {title:"Jahr", field:"byear",headerFilter:"input"}, + {title:"Quartal", field:"bquarter",headerFilter:"input"}, + {title:"Sender", field:"sender",headerFilter:"input"}, + {title:"Empfänger", field:"receipient",headerFilter:"input"}, + {title:"Referenz",field:"reference",headerFilter:"input"}, + {title:"Status",field:"status",headerFilter:"input",formatter:function(cell, formatterParams){ + var value = cell.getValue(); + //console.log(value.indexOf("bez")); + if(value.indexOf("bezahlt") >= 0){ + return "" + value + ""; } - - } - if (whfilter.length > 0){ - where = ' where ' + whfilter.join( " AND "); - } - - } - var sql = 'select ij.id,ij.date as datesortable, STRFTIME("%d.%m.%Y",ij.date) as date,ij.id,rec.company as recepient, sen.company as sender,ij.reference, ' + - 'printf("%.2f",CAST(sum(pos.quantity * pos.unitamount) as real)) as netamount, ' + - 'printf("%.2f",CAST(case when pos.taxpercent > 0 then sum(pos.taxpercent * pos.quantity * pos.unitamount) else 0.0 end AS REAL)) as taxamount, ' + - 'printf("%.2f",CAST(sum(pos.quantity * pos.unitamount) + case when pos.taxpercent > 0 then sum(pos.taxpercent * pos.quantity * pos.unitamount) else 0.0 end AS real)) as totalamount, ' + - 'printf("%.2f",COALESCE(ij.payedamount,0.0)) as payedamount, ' + - 'ij.status ' + - 'from invoicejournal ij ' + - 'left join invoicepositions pos on (ij.id=pos.id_invoice) ' + - 'left join accounts rec on (ij.id_receipient = rec.id) ' + - 'join accounts sen on (ij.id_sender = sen.id) ' + where +' group by pos.id_invoice order by date desc;'; - $("#tbl_invoices > tbody").html(""); - var data = appdb.dbquery(sql); - //console.log(sql); - for (var i in data.sqldata){ - var cstatus = "secondary"; - if (data.sqldata[i].status== "bezahlt"){ cstatus = "success"; } - if (data.sqldata[i].status== "überfällig"){ cstatus = "danger"; } - if (data.sqldata[i].status== "verschickt"){ cstatus = "warning"; } - var acolor = ""; - if (data.sqldata[i].totalamount.startsWith("-")){ acolor = "text-danger"; } - var row = ''+ - - ''+data.sqldata[i].datesortable+' ' + data.sqldata[i].date+ '' + - '' + data.sqldata[i].recepient+ '' + - '' + data.sqldata[i].sender+ '' + - '' + data.sqldata[i].reference+ '' + - '' + data.sqldata[i].status+ '' + - '' + data.sqldata[i].totalamount+ ' €' + - - ''; - $("#tbl_invoices > tbody").append(row); - } - var cols = $("#tbl_invoices > tbody > tr:first-child").children(); - var colnum = cols.length -1 - console.log("childnum:" + colnum); - for (var i=1;i<=colnum;i++){ - wx = $("#tbl_invoices > tbody > tr:first-child > td:nth-child("+ i +")").width(); - wx = wx +3; - $("#tbl_invoices_head > thead > tr > th:nth-child("+ i +")").width(wx); - } - // $('#tbl_invoices').bootstrapTable({ - // pagination: false, - // search: false, - // height: tblh, - // clickToSelect: true - // }); - - -} - -// function loadyears(){ -// sql = "select byear from invoicejournal group by byear order by byear asc;"; -// var data = appdb.dbquery(sql); -// //onsole.log(data.sqldata); -// for (var i in data.sqldata){ -// $("#timerange").append('' + data.sqldata[i].byear+''); -// } - -// } - -function invoice_edit(){ - var inv_id= selection[0]; - if (inv_id){ - parent.browserapp.loadmodulepage('invoices','form_invoice',{"id":inv_id}); - } - -} - -function invoice_delete(){ - + else if (value.indexOf("überfällig") >= 0) { + return "" + value + ""; + } + else if (value.indexOf("geplant") >= 0) { + return "" + value + ""; + } + else{ + return "" + value + ""; + } + }}, + {title:"Betrag",field:"payedamount",align:"right",formatter:"money", formatterParams:{ + decimal:",", + thousand:".", + symbol:"€", + symbolAfter:"p", + precision:2, + }}] + }); + gettbldata(); } -function invoice_duplicate(){ - +function gettbldata(){ + req.reqdata("POST","db.cgi",{"db":parent.app + "/" + mpref.cfg.db, "get":"invoices"},loadtbldata); } -// function change_timerange(){ - -// } - -function load_senders(){ - var sql = "select distinct (sender.company) as sender from invoicepositions left join accounts sender on (invoicepositions.id_sender=sender.id) order by sender.company;"; - $("#sender").html(''); - var data = appdb.dbquery(sql); - - for (var i in data.sqldata){ - $("#sender").append(''); - } - if (pagepref && pagepref.filter && pagepref.filter.sender && pagepref.filter.sender != ''){ - //console.log("set selection:" + pagepref.filter.sender); - $("#sender").val(pagepref.filter.sender); +function loadtbldata(data){ + console.log(data); + if (data && data.sqldata){ + tbl.setData(data.sqldata); } } -function load_receipients(){ - var sql = "select distinct (receipient.company) as receipient from invoicepositions left join accounts receipient on (invoicepositions.id_receipient=receipient.id) order by receipient.company;"; - $("#receipient").html(''); - var data = appdb.dbquery(sql); - - for (var i in data.sqldata){ - $("#receipient").append(''); - } - if (pagepref && pagepref.filter && pagepref.filter.receipient && pagepref.filter.receipient != ''){ - //console.log("set selection:" + pagepref.filter.receipient); - $("#receipient").val(pagepref.filter.receipient); - } -} - -function load_dateranges(){ - var sql = "select strftime('%Y',date) as daterange, 'strftime(''%Y'',date)' as filter from invoicejournal where date is not null group by daterange union select strftime('%Y %m',date) as daterange , 'strftime(''%Y %m'',date)' as filter from invoicejournal where date is not null group by daterange union select strftime('%Y Q',date) || (((CAST(strftime('%m',date) AS INT) -1 ) / 3) +1) as daterange ,'strftime(''%Y Q'',date) || (((CAST(strftime(''%m'',date) AS INT) -1 ) / 3) +1)' as filter from invoicejournal where date is not null group by daterange order by daterange desc;"; - $("#daterange").html(''); - var data = appdb.dbquery(sql); - - for (var i in data.sqldata){ - $("#daterange").append(''); +function edit(){ + var udata = tbl.getSelected(); + if (udata[0]){ + console.log(udata); } + } +function add(){ -function setfilter(id,field){ - console.log("setFilter"); - if (pagepref['filter'] === undefined){ - pagepref['filter'] = {}; - } - if ($("#" + id + " :selected").val() != ""){ - pagepref['filter'][field] = $("#" + id + " :selected").val(); - } - else { - delete pagepref['filter'][field]; - $("#" + id + "").val($("#"+ id +" option:first").val()); - } - parent.usersystem.setPreference('invoices',pagepref); - loadtable(); } +function remove(){ -function setselection(id){ - if (shiftdown === true){ - if ($("#" + id).hasClass('highlight')){ - $("#" + id).removeClass('highlight'); - selection.splice($.inArray(id, selection),1); - }else { - $("#" + id).addClass('highlight'); - selection.push(id); - } - } else { - $("#" + id).addClass('highlight').siblings().removeClass('highlight'); - selection = [id]; - } } + diff --git a/CGI/tmpl/app/invoicejournal/module/invoices/index.tt b/CGI/tmpl/app/invoicejournal/module/invoices/index.tt index df19fa7..bc9f4ae 100644 --- a/CGI/tmpl/app/invoicejournal/module/invoices/index.tt +++ b/CGI/tmpl/app/invoicejournal/module/invoices/index.tt @@ -1,24 +1,20 @@ - -
    +
    +
    + + + + + +
    +
    +
    + + diff --git a/CGI/tmpl/app/invoicejournal/module/invoices/module.js b/CGI/tmpl/app/invoicejournal/module/invoices/module.js index 47dd297..bc7de16 100644 --- a/CGI/tmpl/app/invoicejournal/module/invoices/module.js +++ b/CGI/tmpl/app/invoicejournal/module/invoices/module.js @@ -1,67 +1,67 @@ -var winh = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); -var tblh = winh-150; -var cfg = { - byear: 2018 -} -function initpage(){ - console.log(appdb.url); - loadyears(); - loadtable(); -} - - - -function loadtable(){ - var sql = 'select ij.id,ij.byear,ij.date as datesortable, STRFTIME("%d.%m.%Y",ij.date) as date,ij.id,rec.company as recepient, sen.company as sender,ij.reference, ' + - 'printf("%.2f",CAST(sum(pos.quantity * pos.unitamount) as real)) as netamount, ' + - 'printf("%.2f",CAST(case when pos.taxpercent > 0 then sum(pos.taxpercent * pos.quantity * pos.unitamount) else 0.0 end AS REAL)) as taxamount, ' + - 'printf("%.2f",CAST(sum(pos.quantity * pos.unitamount) + case when pos.taxpercent > 0 then sum(pos.taxpercent * pos.quantity * pos.unitamount) else 0.0 end AS real)) as totalamount, ' + - 'printf("%.2f",COALESCE(ij.payedamount,0.0)) as payedamount, ' + - 'ij.status ' + - 'from invoicejournal ij ' + - 'left join invoicepositions pos on (ij.id=pos.id_invoice) ' + - 'left join accounts rec on (ij.id_receipient = rec.id) ' + - 'left join accounts sen on (ij.id_sender = sen.id) where ij.byear=' + cfg.byear +' group by pos.id_invoice order by date desc;'; - var data = appdb.dbquery(sql); - console.log(data.sqldata); - for (var i in data.sqldata){ - var cstatus = "secondary"; - if (data.sqldata[i].status== "bezahlt"){ cstatus = "success"; } - if (data.sqldata[i].status== "überfällig"){ cstatus = "danger"; } - if (data.sqldata[i].status== "verschickt"){ cstatus = "warning"; } - var acolor = ""; - if (data.sqldata[i].totalamount.startsWith("-")){ acolor = "text-danger"; } - var row = ''+ - // '' + data.sqldata[i].byear+ '' + - ''+data.sqldata[i].datesortable+' ' + data.sqldata[i].date+ '' + - '' + data.sqldata[i].recepient+ '' + - '' + data.sqldata[i].sender+ '' + - '' + data.sqldata[i].reference+ '' + - '' + data.sqldata[i].status+ '' + - '' + data.sqldata[i].totalamount+ ' €' + - '' + - '' + - '' + - '' + - '' + - ''; - $("#tbl_invoices").append(row); - } - $('#tbl_invoices').bootstrapTable({ - pagination: false, - search: true, - height: tblh - }); - - -} - -function loadyears(){ - sql = "select byear from invoicejournal group by byear order by byear asc;"; - var data = appdb.dbquery(sql); - //onsole.log(data.sqldata); - for (var i in data.sqldata){ - $("#byear").append(''); - } - +var winh = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); +var tblh = winh-150; +var cfg = { + byear: 2018 +} +function initpage(){ + console.log(appdb.url); + loadyears(); + loadtable(); +} + + + +function loadtable(){ + var sql = 'select ij.id,ij.byear,ij.date as datesortable, STRFTIME("%d.%m.%Y",ij.date) as date,ij.id,rec.company as recepient, sen.company as sender,ij.reference, ' + + 'printf("%.2f",CAST(sum(pos.quantity * pos.unitamount) as real)) as netamount, ' + + 'printf("%.2f",CAST(case when pos.taxpercent > 0 then sum(pos.taxpercent * pos.quantity * pos.unitamount) else 0.0 end AS REAL)) as taxamount, ' + + 'printf("%.2f",CAST(sum(pos.quantity * pos.unitamount) + case when pos.taxpercent > 0 then sum(pos.taxpercent * pos.quantity * pos.unitamount) else 0.0 end AS real)) as totalamount, ' + + 'printf("%.2f",COALESCE(ij.payedamount,0.0)) as payedamount, ' + + 'ij.status ' + + 'from invoicejournal ij ' + + 'left join invoicepositions pos on (ij.id=pos.id_invoice) ' + + 'left join accounts rec on (ij.id_receipient = rec.id) ' + + 'left join accounts sen on (ij.id_sender = sen.id) where ij.byear=' + cfg.byear +' group by pos.id_invoice order by date desc;'; + var data = appdb.dbquery(sql); + console.log(data.sqldata); + for (var i in data.sqldata){ + var cstatus = "secondary"; + if (data.sqldata[i].status== "bezahlt"){ cstatus = "success"; } + if (data.sqldata[i].status== "überfällig"){ cstatus = "danger"; } + if (data.sqldata[i].status== "verschickt"){ cstatus = "warning"; } + var acolor = ""; + if (data.sqldata[i].totalamount.startsWith("-")){ acolor = "text-danger"; } + var row = ''+ + // '' + data.sqldata[i].byear+ '' + + ''+data.sqldata[i].datesortable+' ' + data.sqldata[i].date+ '' + + '' + data.sqldata[i].recepient+ '' + + '' + data.sqldata[i].sender+ '' + + '' + data.sqldata[i].reference+ '' + + '' + data.sqldata[i].status+ '' + + '' + data.sqldata[i].totalamount+ ' €' + + '' + + '' + + '' + + '' + + '' + + ''; + $("#tbl_invoices").append(row); + } + $('#tbl_invoices').bootstrapTable({ + pagination: false, + search: true, + height: tblh + }); + + +} + +function loadyears(){ + sql = "select byear from invoicejournal group by byear order by byear asc;"; + var data = appdb.dbquery(sql); + //onsole.log(data.sqldata); + for (var i in data.sqldata){ + $("#byear").append(''); + } + } \ No newline at end of file diff --git a/CGI/tmpl/app/invoicejournal/module/offers/index.tt b/CGI/tmpl/app/invoicejournal/module/offers/index.tt index e4ca442..9f142fe 100644 --- a/CGI/tmpl/app/invoicejournal/module/offers/index.tt +++ b/CGI/tmpl/app/invoicejournal/module/offers/index.tt @@ -1,24 +1,24 @@ - - -
    - -
    + + +
    + +
    diff --git a/CGI/tmpl/app/invoicejournal/module/bookings/form_booking.js b/CGI/tmpl/app/invoicejournal/module/sales/form_booking.js similarity index 100% rename from CGI/tmpl/app/invoicejournal/module/bookings/form_booking.js rename to CGI/tmpl/app/invoicejournal/module/sales/form_booking.js diff --git a/CGI/tmpl/app/invoicejournal/module/bookings/form_booking.tt b/CGI/tmpl/app/invoicejournal/module/sales/form_booking.tt similarity index 100% rename from CGI/tmpl/app/invoicejournal/module/bookings/form_booking.tt rename to CGI/tmpl/app/invoicejournal/module/sales/form_booking.tt diff --git a/CGI/tmpl/app/invoicejournal/module/bookings/index.js b/CGI/tmpl/app/invoicejournal/module/sales/index.js similarity index 100% rename from CGI/tmpl/app/invoicejournal/module/bookings/index.js rename to CGI/tmpl/app/invoicejournal/module/sales/index.js diff --git a/CGI/tmpl/app/invoicejournal/module/bookings/index.tt b/CGI/tmpl/app/invoicejournal/module/sales/index.tt similarity index 100% rename from CGI/tmpl/app/invoicejournal/module/bookings/index.tt rename to CGI/tmpl/app/invoicejournal/module/sales/index.tt diff --git a/CGI/tmpl/app/invoicejournal/module/bookings/lib/booking.js b/CGI/tmpl/app/invoicejournal/module/sales/lib/booking.js similarity index 100% rename from CGI/tmpl/app/invoicejournal/module/bookings/lib/booking.js rename to CGI/tmpl/app/invoicejournal/module/sales/lib/booking.js diff --git a/CGI/tmpl/macro/fields.tt b/CGI/tmpl/macro/fields.tt index a2113eb..36f498e 100644 --- a/CGI/tmpl/macro/fields.tt +++ b/CGI/tmpl/macro/fields.tt @@ -12,6 +12,13 @@
    0 %][% state %][% END %]/> +
    +[% END -%] +[% MACRO fieldmoneybox(column,table,title,size,state,value,plhold) BLOCK -%] +
    + + + 0 %][% state %][% END %]/>
    [% END -%] @@ -97,9 +104,14 @@
    [% END -%] +[% MACRO forminlinesavebutton(formname,btnname,size,clbk) BLOCK -%] +
    + +
    +[% END -%] [% MACRO formsavetextfilebutton(formname,btnname) BLOCK -%]
    - +
    [% END -%] [% MACRO formdlgsavebutton(formname,btnname,clbk) BLOCK -%] diff --git a/CGI/tmpl/skeleton/module.tt b/CGI/tmpl/skeleton/module.tt index 363b097..b4f9645 100644 --- a/CGI/tmpl/skeleton/module.tt +++ b/CGI/tmpl/skeleton/module.tt @@ -35,11 +35,12 @@ [% INCLUDE $page %]
    - - - - + + + + + diff --git a/bin/clr_install.pl b/bin/clr_install.pl index 3b3f387..be76070 100644 --- a/bin/clr_install.pl +++ b/bin/clr_install.pl @@ -1,215 +1,215 @@ -#!C:\perl\bin\perl.exe -use strict; -use utf8; -use Getopt::Long; -use File::Basename; -use Data::Dumper; -use Net::CIDR; -use Net::Ping; -#use lib (dirname($0).'/'); -#use dblite; -my $ip = "raspberrypi"; -my $platform = ""; -my $cfgpath = ""; -my $help=0; -my $stationname = ""; -my $PSCP=dirname($0)."\\tools\\PSCP.EXE"; -my $PLINK=dirname($0)."\\tools\\PLINK.EXE"; -#my $dbfile="C:\\Users\\ksaff\\Workspace\\Coloradio\\data\\POSDABAudio.sqlite"; - -my $stationcfg="D:\\Workspace\\Apps\\Coloradio\\data"; -#my $vpncfg="C:\\Users\\ksaff\\DKS\\projects\\VPN"; - -my $sshuser="pi"; -my $sshpwd="raspberry"; -my $installlog="D:\\Workspace\\Apps\\Coloradio\\rpiinstall.log"; -my $baseinstall = 1; -my $playerinstall = 1; -my $setbaseconfig = 1; -my $reconfig = 0; -GetOptions("station|st=s" => \$stationname , - "host|h=s"=> \$ip); -#-st aral-hoscheiddickt -ip -pi- bi -my $ping = Net::Ping->new(); -$ping->service_check(1); -$ping->port_number([22]); -my $pres = $ping->ping($ip); -if ($pres eq ""){ - print "cannot find $ip\n"; - exit(1); -} -my $arch = ""; - - #print "enable root SSH-Login!\n"; - &sendcmd('sudo sed -i \'s/#PermitRootLogin prohibit-password/PermitRootLogin yes/\' /etc/ssh/sshd_config'); - &sendcmd('sudo service ssh restart'); - &sendcmd('echo \'echo -e \"mai5ia7a\nmai5ia7a\" | sudo -S passwd\' > tmp.sh && bash tmp.sh && rm tmp.sh'); - - #exit(0); - print "Base install root activated\n"; - $sshuser="root"; - $sshpwd="mai5ia7a"; - $arch = &sendcmd('uname -m'); - #CONFIGURE BASICS - print "install Basics!\n"; - &sendcmd('update-rc.d "ssh" enable'); - &sendcmd('groupadd dks'); - &sendcmd('useradd dks -c DKS -g dks -G adm,sudo,audio -s /bin/bash -d /home/dks'); - &sendcmd('echo \'echo -e \"sai4seip\nsai4seip\" | passwd dks\' > tmp.sh && bash tmp.sh && rm tmp.sh'); - &sendcmd('mkdir -p /home/dks'); - &sendcmd('chown dks:dks /home/dks'); - &sendcmd('userdel pi'); - &sendcmd('rm -r /home/pi'); - &sendcmd('groupadd posdab'); - &sendcmd('mkdir -p /home/posdab'); - &sendcmd('useradd posdab -c POSDAB -g posdab -G audio -s /bin/bash -d /home/posdab'); - &sendcmd('echo \'echo -e \"sai4seip\nsai4seip\" | passwd posdab\' > tmp.sh && bash tmp.sh && rm tmp.sh'); - &sendcmd('chown posdab:posdab /home/posdab'); - &sendcmd('cp /usr/share/zoneinfo/Europe/Luxembourg /etc/localtime'); - &sendcmd('sed -i \'s/XKBLAYOUT="gb"/XKBLAYOUT="de"/\' /etc/default/keyboard'); - # - &sendcmd('echo \'pcm.!default {\' > /etc/asound.conf'); - &sendcmd('echo \' type hw\' >> /etc/asound.conf'); - &sendcmd('echo \' card 1\' >> /etc/asound.conf'); - &sendcmd('echo \'}\' >> /etc/asound.conf'); - &sendcmd('echo \'ctl.!default {\' >> /etc/asound.conf'); - &sendcmd('echo \' type hw\' >> /etc/asound.conf'); - &sendcmd('echo \' card 1\' >> /etc/asound.conf'); - &sendcmd('echo \'}\' >> /etc/asound.conf'); - #GET TYPE -# my $arch = &sendcmd('uname -a | grep armv7l'); - #if ($arch eq "armv7l"){ - # print "Arch = RPI3\n"; - # print "disable Bluetooth & Wifi\n"; - &sendcmd('echo "#wifi" > /etc/modprobe.d/raspi-blacklist.conf'); - &sendcmd('echo "blacklist brcmfmac" >> /etc/modprobe.d/raspi-blacklist.conf'); - &sendcmd('echo "blacklist brcmutil" >> /etc/modprobe.d/raspi-blacklist.conf'); - &sendcmd('echo "#bt" >> /etc/modprobe.d/raspi-blacklist.conf'); - &sendcmd('echo "blacklist btbcm" >> /etc/modprobe.d/raspi-blacklist.conf'); - &sendcmd('echo "blacklist hci_uart" >> /etc/modprobe.d/raspi-blacklist.conf'); - #} -# else { -# print "Arch = RPI2 or B+"; -# } - #INSTALL MISSING APPS - &sendcmd('apt-get update'); - if ($arch eq "x86_64"){ - &sendcmd('apt-get install -y sqlite3 wget vorbis-tools perl openvpn libdbi-perl libdbd-sqlite3-perl unzip alsa-tools alsa-utils gstreamer1.0 gstreamer1.0-alsa gstreamer1.0-plugins-good gstreamer1.0-tools'); - } else { - &sendcmd('apt-get install -y sqlite3 wget vorbis-tools perl openvpn libdbi-perl libdbd-sqlite3-perl ntfs-3g gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-plugins-good'); - } - &sendcmd('apt-get purge -y man-db'); - - - # &sendcmd('ln -s /usr/bin/ogginfo /usr/local/bin/ogginfo'); - # &sendcmd('ln -s /usr/bin/ogg123 /usr/local/bin/ogg123'); - - $sshuser="root"; - $sshpwd="mai5ia7a"; - &transferfile($stationcfg."\\instoreplayer\\instoreplayer.zip",'/home/dks/instoreplayer.zip'); - &sendcmd('cd / && unzip -o /home/dks/instoreplayer.zip'); - &sendcmd('chmod +x /opt/posdab/bin/posdabd.pl'); - &sendcmd('chmod +x /opt/posdab/bin/checkposdab.sh'); - &sendcmd('chmod +x /opt/posdab/bin/player.sh'); - &sendcmd('chmod +x /etc/init.d/posdabd'); - &sendcmd('chmod +x /opt/posdab/bin/ftpclient.pl'); - &sendcmd('chmod +x /opt/posdab/bin/setvolume.sh'); - &sendcmd('update-rc.d "posdabd" defaults'); - - $sshuser="root"; - $sshpwd="mai5ia7a"; - - #SET HOSTNAME - &sendcmd('sed -i "s/raspberrypi/'.$stationname.'/" /etc/hosts'); - &sendcmd('echo "'.$stationname.'" > /etc/hostname'); - #on stretch use: - &sendcmd('hostnamectl set-hostname '.$stationname); - # &sendcmd('/etc/init.d/hostname.sh'); - print "readconfig ".$stationname."\n"; - if (-e $stationcfg."/network/".$stationname.".txt"){ - my $stdata = (); - open(CFG,$stationcfg."/network/".$stationname.".txt"); - while (my $l = ){ - chomp($l); - my ($k,$v) = $l =~ m/^(.+)=(.+)$/; - $stdata->{$k} = $v; - } - close(CFG); - print Dumper($stdata); - if ($stdata->{networktype} eq "static"){ - #if ($arch ne "x86_64"){ - print "is static content!\n"; - - &sendcmd('echo \'#interface eth0\' >> /etc/dhcpcd.conf'); - &sendcmd('echo \'#static ip_address='.$stdata->{networkip}.substr(Net::CIDR::addrandmask2cidr($stdata->{networkip}, $stdata->{networksubnet}),-3).'\' >> /etc/dhcpcd.conf'); - &sendcmd('echo \'#static routers='.$stdata->{networkgateway}.'\' >> /etc/dhcpcd.conf'); - &sendcmd('echo \'#static domain_name_servers='.$stdata->{networkdns1}.'\' >> /etc/dhcpcd.conf'); - #&sendcmd('echo \'static domain_search=fritz.box\' >> /etc/dhcpcd.conf'); - #} - } - #else { -# &sendcmd('echo \'auto lo eth0\' >> /etc/network/interfaces'); -# &sendcmd('echo \'iface lo inet loopback\' >> /etc/network/interfaces'); -# &sendcmd('echo \'iface eth0 inet static\' >> /etc/network/interfaces'); -# &sendcmd('echo \'address '.$stdata->{0}->{networkip}.'\' >> /etc/network/interfaces'); -# &sendcmd('echo \'netmask '.$stdata->{0}->{networksubnet}.'\' >> /etc/network/interfaces'); -# &sendcmd('echo \'gateway '.$stdata->{0}->{networkgateway}.'\' >> /etc/network/interfaces'); -# &sendcmd('echo \'dns-nameservers '.$stdata->{0}->{networkdns1}.'\' >> /etc/network/interfaces'); -# &sendcmd('echo \'#allow-hotplug eth0\' >> /etc/network/interfaces'); -# &sendcmd('echo \'#iface eth0 inet dhcp\' >> /etc/network/interfaces'); -# &sendcmd('echo \'#iface eth0 inet6 auto\' >> /etc/network/interfaces'); - - #&sendcmd('sed -i \'s/posdab.dks.lu/148.251.15.48/\' /etc/openvpn/client.conf'); - #} - - } else { - print "NO config ".$stationcfg."/network/".$stationname.".txt found!"; - } - #install OPENVPN - if (-e $stationcfg."\\vpn\\DKS-VPN-".$stationname.".ovpn"){ - &transferfile($stationcfg."\\vpn\\DKS-VPN-".$stationname.".ovpn",'/home/dks/'); - &sendcmd('cp -r /home/dks/DKS-VPN-'.$stationname.'.ovpn /etc/openvpn/DKS-VPN-'.$stationname.'.conf'); - &sendcmd('systemctl enable openvpn@DKS-VPN-'.$stationname); - #[system_default_sect] -#MinProtocol = TLSv1.2 -#CipherString = DEFAULT@SECLEVEL=2 - &sendcmd('update-rc.d "openvpn" defaults'); - } - else { - print "NO config ".$stationcfg."/vpn/DKS-VPN-".$stationname.".ovpn found!"; - } - - &sendcmd('sed -i \'s/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/\' /etc/sysctl.conf'); - &sendcmd('sysctl -p'); - - &sendcmd('update-rc.d "ssh" defaults'); - # } -# } - - - -sub sendcmd(){ - my $rcmd = shift; - print "Send: ".$rcmd."\n"; - my $cmd = '"'.$PLINK.'" -pw '.$sshpwd.' '.$sshuser.'@'.$ip.' "'.$rcmd.'" '; - my $res = `$cmd`; - print "~: ".$res."\n"; - return $res; -} - -sub transferfile(){ - my $lfile = shift; - my $rfile = shift; - print "Send: ".'"'.$PSCP.'" -r -pw '.$sshpwd.' "'.$lfile.'" '.$sshuser.'@'.$ip.':'.$rfile."\n"; - my $cmd = '"'.$PSCP.'" -r -pw '.$sshpwd.' "'.$lfile.'" '.$sshuser.'@'.$ip.':'.$rfile; - my $res = `$cmd`; - print $res."\n"; -} - -#sub sendcmdsfromfile(){ -# my $file = shift; -# my $cmd = '"C:\\Tools\\PLINK.EXE" -v -m "'.$file.'" -pw '.$sshpwd.' '.$sshuser.'@'.$ip; -# my $res = `$cmd`; -# -# print "~: ".$res."\n"; -#} +#!C:\perl\bin\perl.exe +use strict; +use utf8; +use Getopt::Long; +use File::Basename; +use Data::Dumper; +use Net::CIDR; +use Net::Ping; +#use lib (dirname($0).'/'); +#use dblite; +my $ip = "raspberrypi"; +my $platform = ""; +my $cfgpath = ""; +my $help=0; +my $stationname = ""; +my $PSCP=dirname($0)."\\tools\\PSCP.EXE"; +my $PLINK=dirname($0)."\\tools\\PLINK.EXE"; +#my $dbfile="C:\\Users\\ksaff\\Workspace\\Coloradio\\data\\POSDABAudio.sqlite"; + +my $stationcfg="D:\\Workspace\\Apps\\Coloradio\\data"; +#my $vpncfg="C:\\Users\\ksaff\\DKS\\projects\\VPN"; + +my $sshuser="pi"; +my $sshpwd="raspberry"; +my $installlog="D:\\Workspace\\Apps\\Coloradio\\rpiinstall.log"; +my $baseinstall = 1; +my $playerinstall = 1; +my $setbaseconfig = 1; +my $reconfig = 0; +GetOptions("station|st=s" => \$stationname , + "host|h=s"=> \$ip); +#-st aral-hoscheiddickt -ip -pi- bi +my $ping = Net::Ping->new(); +$ping->service_check(1); +$ping->port_number([22]); +my $pres = $ping->ping($ip); +if ($pres eq ""){ + print "cannot find $ip\n"; + exit(1); +} +my $arch = ""; + + #print "enable root SSH-Login!\n"; + &sendcmd('sudo sed -i \'s/#PermitRootLogin prohibit-password/PermitRootLogin yes/\' /etc/ssh/sshd_config'); + &sendcmd('sudo service ssh restart'); + &sendcmd('echo \'echo -e \"mai5ia7a\nmai5ia7a\" | sudo -S passwd\' > tmp.sh && bash tmp.sh && rm tmp.sh'); + + #exit(0); + print "Base install root activated\n"; + $sshuser="root"; + $sshpwd="mai5ia7a"; + $arch = &sendcmd('uname -m'); + #CONFIGURE BASICS + print "install Basics!\n"; + &sendcmd('update-rc.d "ssh" enable'); + &sendcmd('groupadd dks'); + &sendcmd('useradd dks -c DKS -g dks -G adm,sudo,audio -s /bin/bash -d /home/dks'); + &sendcmd('echo \'echo -e \"sai4seip\nsai4seip\" | passwd dks\' > tmp.sh && bash tmp.sh && rm tmp.sh'); + &sendcmd('mkdir -p /home/dks'); + &sendcmd('chown dks:dks /home/dks'); + &sendcmd('userdel pi'); + &sendcmd('rm -r /home/pi'); + &sendcmd('groupadd posdab'); + &sendcmd('mkdir -p /home/posdab'); + &sendcmd('useradd posdab -c POSDAB -g posdab -G audio -s /bin/bash -d /home/posdab'); + &sendcmd('echo \'echo -e \"sai4seip\nsai4seip\" | passwd posdab\' > tmp.sh && bash tmp.sh && rm tmp.sh'); + &sendcmd('chown posdab:posdab /home/posdab'); + &sendcmd('cp /usr/share/zoneinfo/Europe/Luxembourg /etc/localtime'); + &sendcmd('sed -i \'s/XKBLAYOUT="gb"/XKBLAYOUT="de"/\' /etc/default/keyboard'); + # + &sendcmd('echo \'pcm.!default {\' > /etc/asound.conf'); + &sendcmd('echo \' type hw\' >> /etc/asound.conf'); + &sendcmd('echo \' card 1\' >> /etc/asound.conf'); + &sendcmd('echo \'}\' >> /etc/asound.conf'); + &sendcmd('echo \'ctl.!default {\' >> /etc/asound.conf'); + &sendcmd('echo \' type hw\' >> /etc/asound.conf'); + &sendcmd('echo \' card 1\' >> /etc/asound.conf'); + &sendcmd('echo \'}\' >> /etc/asound.conf'); + #GET TYPE +# my $arch = &sendcmd('uname -a | grep armv7l'); + #if ($arch eq "armv7l"){ + # print "Arch = RPI3\n"; + # print "disable Bluetooth & Wifi\n"; + &sendcmd('echo "#wifi" > /etc/modprobe.d/raspi-blacklist.conf'); + &sendcmd('echo "blacklist brcmfmac" >> /etc/modprobe.d/raspi-blacklist.conf'); + &sendcmd('echo "blacklist brcmutil" >> /etc/modprobe.d/raspi-blacklist.conf'); + &sendcmd('echo "#bt" >> /etc/modprobe.d/raspi-blacklist.conf'); + &sendcmd('echo "blacklist btbcm" >> /etc/modprobe.d/raspi-blacklist.conf'); + &sendcmd('echo "blacklist hci_uart" >> /etc/modprobe.d/raspi-blacklist.conf'); + #} +# else { +# print "Arch = RPI2 or B+"; +# } + #INSTALL MISSING APPS + &sendcmd('apt-get update'); + if ($arch eq "x86_64"){ + &sendcmd('apt-get install -y sqlite3 wget vorbis-tools perl openvpn libdbi-perl libdbd-sqlite3-perl unzip alsa-tools alsa-utils gstreamer1.0 gstreamer1.0-alsa gstreamer1.0-plugins-good gstreamer1.0-tools'); + } else { + &sendcmd('apt-get install -y sqlite3 wget vorbis-tools perl openvpn libdbi-perl libdbd-sqlite3-perl ntfs-3g gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-plugins-good'); + } + &sendcmd('apt-get purge -y man-db'); + + + # &sendcmd('ln -s /usr/bin/ogginfo /usr/local/bin/ogginfo'); + # &sendcmd('ln -s /usr/bin/ogg123 /usr/local/bin/ogg123'); + + $sshuser="root"; + $sshpwd="mai5ia7a"; + &transferfile($stationcfg."\\instoreplayer\\instoreplayer.zip",'/home/dks/instoreplayer.zip'); + &sendcmd('cd / && unzip -o /home/dks/instoreplayer.zip'); + &sendcmd('chmod +x /opt/posdab/bin/posdabd.pl'); + &sendcmd('chmod +x /opt/posdab/bin/checkposdab.sh'); + &sendcmd('chmod +x /opt/posdab/bin/player.sh'); + &sendcmd('chmod +x /etc/init.d/posdabd'); + &sendcmd('chmod +x /opt/posdab/bin/ftpclient.pl'); + &sendcmd('chmod +x /opt/posdab/bin/setvolume.sh'); + &sendcmd('update-rc.d "posdabd" defaults'); + + $sshuser="root"; + $sshpwd="mai5ia7a"; + + #SET HOSTNAME + &sendcmd('sed -i "s/raspberrypi/'.$stationname.'/" /etc/hosts'); + &sendcmd('echo "'.$stationname.'" > /etc/hostname'); + #on stretch use: + &sendcmd('hostnamectl set-hostname '.$stationname); + # &sendcmd('/etc/init.d/hostname.sh'); + print "readconfig ".$stationname."\n"; + if (-e $stationcfg."/network/".$stationname.".txt"){ + my $stdata = (); + open(CFG,$stationcfg."/network/".$stationname.".txt"); + while (my $l = ){ + chomp($l); + my ($k,$v) = $l =~ m/^(.+)=(.+)$/; + $stdata->{$k} = $v; + } + close(CFG); + print Dumper($stdata); + if ($stdata->{networktype} eq "static"){ + #if ($arch ne "x86_64"){ + print "is static content!\n"; + + &sendcmd('echo \'#interface eth0\' >> /etc/dhcpcd.conf'); + &sendcmd('echo \'#static ip_address='.$stdata->{networkip}.substr(Net::CIDR::addrandmask2cidr($stdata->{networkip}, $stdata->{networksubnet}),-3).'\' >> /etc/dhcpcd.conf'); + &sendcmd('echo \'#static routers='.$stdata->{networkgateway}.'\' >> /etc/dhcpcd.conf'); + &sendcmd('echo \'#static domain_name_servers='.$stdata->{networkdns1}.'\' >> /etc/dhcpcd.conf'); + #&sendcmd('echo \'static domain_search=fritz.box\' >> /etc/dhcpcd.conf'); + #} + } + #else { +# &sendcmd('echo \'auto lo eth0\' >> /etc/network/interfaces'); +# &sendcmd('echo \'iface lo inet loopback\' >> /etc/network/interfaces'); +# &sendcmd('echo \'iface eth0 inet static\' >> /etc/network/interfaces'); +# &sendcmd('echo \'address '.$stdata->{0}->{networkip}.'\' >> /etc/network/interfaces'); +# &sendcmd('echo \'netmask '.$stdata->{0}->{networksubnet}.'\' >> /etc/network/interfaces'); +# &sendcmd('echo \'gateway '.$stdata->{0}->{networkgateway}.'\' >> /etc/network/interfaces'); +# &sendcmd('echo \'dns-nameservers '.$stdata->{0}->{networkdns1}.'\' >> /etc/network/interfaces'); +# &sendcmd('echo \'#allow-hotplug eth0\' >> /etc/network/interfaces'); +# &sendcmd('echo \'#iface eth0 inet dhcp\' >> /etc/network/interfaces'); +# &sendcmd('echo \'#iface eth0 inet6 auto\' >> /etc/network/interfaces'); + + #&sendcmd('sed -i \'s/posdab.dks.lu/148.251.15.48/\' /etc/openvpn/client.conf'); + #} + + } else { + print "NO config ".$stationcfg."/network/".$stationname.".txt found!"; + } + #install OPENVPN + if (-e $stationcfg."\\vpn\\DKS-VPN-".$stationname.".ovpn"){ + &transferfile($stationcfg."\\vpn\\DKS-VPN-".$stationname.".ovpn",'/home/dks/'); + &sendcmd('cp -r /home/dks/DKS-VPN-'.$stationname.'.ovpn /etc/openvpn/DKS-VPN-'.$stationname.'.conf'); + &sendcmd('systemctl enable openvpn@DKS-VPN-'.$stationname); + #[system_default_sect] +#MinProtocol = TLSv1.2 +#CipherString = DEFAULT@SECLEVEL=2 + &sendcmd('update-rc.d "openvpn" defaults'); + } + else { + print "NO config ".$stationcfg."/vpn/DKS-VPN-".$stationname.".ovpn found!"; + } + + &sendcmd('sed -i \'s/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/\' /etc/sysctl.conf'); + &sendcmd('sysctl -p'); + + &sendcmd('update-rc.d "ssh" defaults'); + # } +# } + + + +sub sendcmd(){ + my $rcmd = shift; + print "Send: ".$rcmd."\n"; + my $cmd = '"'.$PLINK.'" -pw '.$sshpwd.' '.$sshuser.'@'.$ip.' "'.$rcmd.'" '; + my $res = `$cmd`; + print "~: ".$res."\n"; + return $res; +} + +sub transferfile(){ + my $lfile = shift; + my $rfile = shift; + print "Send: ".'"'.$PSCP.'" -r -pw '.$sshpwd.' "'.$lfile.'" '.$sshuser.'@'.$ip.':'.$rfile."\n"; + my $cmd = '"'.$PSCP.'" -r -pw '.$sshpwd.' "'.$lfile.'" '.$sshuser.'@'.$ip.':'.$rfile; + my $res = `$cmd`; + print $res."\n"; +} + +#sub sendcmdsfromfile(){ +# my $file = shift; +# my $cmd = '"C:\\Tools\\PLINK.EXE" -v -m "'.$file.'" -pw '.$sshpwd.' '.$sshuser.'@'.$ip; +# my $res = `$cmd`; +# +# print "~: ".$res."\n"; +#} diff --git a/bin/clr_playlists.pl b/bin/clr_playlists.pl index ad4ec0b..92079af 100644 --- a/bin/clr_playlists.pl +++ b/bin/clr_playlists.pl @@ -1,531 +1,531 @@ -#!C:\Strawberry\perl\bin\perl.exe - -use strict; -use Getopt::Long; -use File::Basename; -use JSON::PP; -use File::Copy; -use Time::Local; -use Data::Dumper; -use POSIX; -use lib (dirname($0).'/lib'); -use lib ("C:/Users/ksaff/Workspace/Coloradio/Tools/lib"); -use audio; -use sqlite; -use File::Path qw(make_path); -use Archive::Tar; -my $configfile = "C:\\Users\\ksaff\\Workspace\\Coloradio\\Coloradio\\exports\\ARAL Stream\\streamdata2.json"; -my $datefrom=""; -my $dateto=""; -my $schedulename="ARAL Schedule"; -my $streamname=""; -my $rotationdef= (); -my $musiclists= (); -my $musiclistlimit = 100; -my $streamident=""; -my $overlapseconds= 86400; -my $rotblocktime = 600; -my $onlymissing = 1; -my $debug = 1; -my $db = undef; -my $action = "pack"; -my $playlistpath = "C:\\Users\\ksaff\\Workspace\\Coloradio\\exports\\playlists"; -my $exportpath = "C:\\Users\\ksaff\\Workspace\\Coloradio\\exports"; -GetOptions ("config|c=s" => \$configfile , "action|a=s" => \$action); - -# if (! -f $configfile){ -# print "No config found!\n"; -# exit(1); -# } - -#load the config - -my $cfg = &readconfig($configfile); -#$cfg->{options}->{section} = 'Playlists'; #Audio, PlaylistsPack,AudioPack -$cfg->{options}->{logfile} = dirname($configfile).'/'.¤t_date().'_coloradio_publish.log'; - -# $cfg->{playlists}->{datefrom} ='2018-12-10'; -# $cfg->{playlists}->{dateto} ='2018-12-25'; - - -if ($action eq "checkaudio"){ - # my $sname = $cfg->{playlists}->{Stream}; - # $sname =~ s/\s/\_/g; - # my $dbname = dirname($configfile).'/'.$sname.'.sqlite'; - # my $db = sqlite->new($dbname); - foreach my $cur_au (@{$cfg->{audio}}){ - my $outfilename = basename($cur_au->{sourcepath}); - $outfilename = substr($outfilename,0,rindex($outfilename,'.')).'.'.$cfg->{converter}->{outputtype}; - $outfilename = $cfg->{converter}->{outpath}.$cur_au->{subpath}.'/'.$outfilename; - if (! -e $cur_au->{sourcepath}){ - print "Source-File: ".$cur_au->{sourcepath}." does not exist!\n"; - } - if (! -e $outfilename){ - print "Out-File: ".$outfilename." does not exist!\n"; - } - } -} -elsif ($action eq "updatedb" ){ - &update_database(); -} -elsif ($action eq "generate"){ - #TODO: Create Database if not exists - #UPDATE DATA in database - - my $sname = $cfg->{playlists}->{Stream}; - $sname =~ s/\s/\_/g; - my $dbname = dirname($configfile).'/'.$sname.'.sqlite'; - $db = sqlite->new($dbname); - &writelog("PLAYLIST","Using Database ".$dbname); - #my $scheds = $db->dbquerysorted("select schedulename from schedule"); - - #foreach my $sch (keys(%{$scheds})){ - my $cdt = &getunixdatetime(¤t_date()." 00:00:00"); - my $udf = $cdt; - my $udt = $cdt; - - if (exists($cfg->{playlists}->{datefrom})){ - $udf = &getunixdatetime($cfg->{playlists}->{datefrom}." 00:00:00"); - } - if (exists($cfg->{playlists}->{dateto})){ - $udt = &getunixdatetime($cfg->{playlists}->{dateto}." 00:00:00"); - } - $cdt = $udf; - my $cschedule = $cfg->{playlists}->{Stream}; - &writelog("PLAYLIST","Start Creating playlists from ".substr(&getdatetime($udf),0,10)." to ".substr(&getdatetime($udt),0,10)." for Schedule ".$cschedule); - - -# if ($scheds->{$sch}->{datefrom} gt ¤t_date()){ -# $cdt = &getunixdatetime($scheds->{$sch}->{datefrom}." 00:00:00"); -# } -# if ($scheds->{$sch}->{dateto} lt $cfg->{playlists}->{dateto}){ -# $udt = &getunixdatetime($scheds->{$sch}->{dateto}." 00:00:00"); -# } - $db->dbexec("DELETE from playlist where plistname >='".substr(&getdatetime($cdt),0,10)."' and plistname <= '".substr(&getdatetime($udt),0,10)."' and streamname = '".$cschedule."';"); - - while ($cdt <= $udt){ - my $shortdate = substr(&getdatetime($cdt),0,10); - &writelog("PLAYLIST","Create Playlist for DATE ".$shortdate); - $rotationdef = &getdayrotationdef($shortdate,$cschedule); - my $mids = (); - foreach my $e (sort {$a <=> $b} keys(%{$rotationdef})){ - my $crot = $rotationdef->{$e}; - my @cats = @{$crot->{categories}}; - #print localtime.": Start at ".$crot->{timefrom}."\n"; - #get first cat - my $timetofill = &getunixdatetime($shortdate." ".$crot->{timeend}.':00')-&getunixdatetime($shortdate." ".$crot->{timebegin}.':00'); - if ($crot->{timeend} <= $crot->{timefrom}){ - $timetofill += 86400; - } - my $ctime = 0; - my $cpos = 0; - my @audiolist = (); - while ($ctime < $timetofill){ - for (my $c=0;$c".$cats[$c]."\n"; - if (!exists($musiclists->{$cats[$c]}) || scalar(@{$musiclists->{$cats[$c]}}) == 0){ - if (scalar(@audiolist) > 0){ - $db->dbexec("INSERT INTO playlist (plistname,plposition,streamname,idmusic) VALUES ".join(",",@audiolist)); - @audiolist=(); - } - #print "get next music category data ".$cats[$c]."\n"; - &getmusiclist($cats[$c],$shortdate,$musiclistlimit); - } - my $data = shift(@{$musiclists->{$cats[$c]}}); - #my $checksql = "select idmusic from playlist where idmusic='".$data->{idmusic}."' and plistname='".$shortdate."' and streamname='".$schedulename."';"; - #my $rxx = $db->dbquerysorted($checksql); - if (!exists($mids->{$data->{idmusic}})){ - push(@audiolist,"('".$shortdate."',".$cpos.",'".$cschedule."','".$data->{idmusic}."')"); - $cpos++; - $ctime += $data->{duration}; - $mids->{$data->{idmusic}} = ""; - } - } - } - $db->dbexec("INSERT INTO playlist (plistname,plposition,streamname,idmusic) VALUES ".join(",",@audiolist)); - } - - #print Dumper($rdef); - $cdt = $cdt+86400; - } -} -elsif ($action eq "export"){ - my $cdt = &getunixdatetime(¤t_date()." 00:00:00"); - my $udf = $cdt; - my $udt = $cdt; - if (exists($cfg->{playlists}->{datefrom})){ - $udf = &getunixdatetime($cfg->{playlists}->{datefrom}." 00:00:00"); - } - if (exists($cfg->{playlists}->{dateto})){ - $udt = &getunixdatetime($cfg->{playlists}->{dateto}." 00:00:00"); - } - $cdt = $udf; - my $sname = $cfg->{playlists}->{Stream}; - &writelog("EXPORT","Start export of playlists from ".substr(&getdatetime($udf),0,10)." to ".substr(&getdatetime($udt),0,10)." for Schedule ".$sname); - - $sname =~ s/\s/\_/g; - my $dbname = dirname($configfile).'/'.$sname.'.sqlite'; - $db = sqlite->new(dirname($configfile).'/'.$sname.'.sqlite'); - my $ploutpath = dirname($configfile).'/playlists/'; - while ($cdt <= $udt){ - my $shortdate = substr(&getdatetime($cdt),0,10); - &writelog("EXPORT","Export Playlist for DATE ".$shortdate); - my $scheds = $db->dbquerysorted("select distinct(streamname) as schedule from playlist where plistname='".$shortdate."'"); - foreach my $s (keys(%{$scheds})){ - if (! -d $ploutpath.'/'.$scheds->{$s}->{schedule}){ - make_path($ploutpath.'/'.$scheds->{$s}->{schedule}); - } - print "Export for schedule: ".$scheds->{$s}->{schedule}."\n"; - my $dpl = $db->dbquerysorted("select rm.idmusic,rm.category,rm.filename,rm.duration,rm.artist,rm.title,pl.streamname from playlist pl left join music rm on (pl.idmusic=rm.idmusic) where pl.plistname='".$shortdate."' and pl.streamname='".$scheds->{$s}->{schedule}."' order by pl.plposition"); - open(PLX,">".$ploutpath.'/'.$scheds->{$s}->{schedule}.'/'.$shortdate.'.m3u'); - foreach my $r (sort {$a <=> $b} keys(%{$dpl})){ - print PLX $dpl->{$r}->{category}.'/'.$dpl->{$r}->{filename}.'|'.$dpl->{$r}->{duration}.'|'.$dpl->{$r}->{artist}.'|'.$dpl->{$r}->{title}."\n"; - } - close(PLX); - } - - $cdt = $cdt+86400; - } - print "Playlists exported to: ".$ploutpath."\n"; -} - -# if ($cfg->{options}->{section} =~ /Receivers/){ -# if (-e $exportpath.'/stationaudiodata.json'){ -# my $receiverjson = &readconfig($exportpath.'/stationaudiodata.json'); - -# foreach my $r (keys (%{$receiverjson->{receiver}})){ -# &writelog("RECEIVER","new playlists for receiver ".$r.""); -# my $adgroup = $receiverjson->{receiver}->{$r}->{adgroup}; -# my @rads = (); -# foreach my $ad (keys (%{$receiverjson->{ads}})){ -# my @xadgroups = split(",",$receiverjson->{ads}->{$ad}->{adGroups}); -# my @r = grep(/$adgroup/,@xadgroups); -# if (scalar(@r) > 0){ -# push(@rads,$ad); -# } -# } -# $receiverjson->{receiver}->{$r}->{ads} = \@rads; -# if (-d $exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/playlists'){ -# opendir(SCHED,$exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/playlists'); -# while (my $sched = readdir(SCHED)){ -# if ($sched =~ /^\./){ next;} -# if (! -d $exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/playlists/'.$sched){next;} -# &writelog("RECEIVER","receiver ".$r." schedule ".$sched); -# if (! -d $exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r){ -# make_path($exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r); -# } -# if (! -d $exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r.'/playlists'){ -# make_path($exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r.'/playlists'); -# } -# if (! -d $exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r.'/playlists/new'){ -# make_path($exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r.'/playlists/new'); -# } -# if (! -d $exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r.'/playlists/new/'.$sched){ -# make_path($exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r.'/playlists/new/'.$sched); -# } -# opendir(PLDS,$exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/playlists/'.$sched); -# while (my $pl = readdir(PLDS)){ -# if ($pl =~ /^\d\d\d\d-\d\d-\d\d\.m3u$/){ -# &writelog("RECEIVER","receiver ".$r." schedule ".$sched." playlist ".$pl); -# open(PL,$exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/playlists/'.$sched.'/'.$pl); -# open(PLN,">".$exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r.'/playlists/new/'.$sched.'/'.$pl); -# my $adrot = undef; -# my @ads = @{$receiverjson->{receiver}->{$r}->{ads}}; -# my $cadpos = 0; -# if (scalar(@ads) > 0){ -# $adrot = $receiverjson->{receiver}->{$r}->{adrotation}; -# } - -# while (my $l = ){ - -# print PLN $l; -# if (defined($adrot)){ -# if ($adrot == 0){ -# my $outfilename = substr($receiverjson->{ads}->{$ads[$cadpos]}->{filename},0,rindex($receiverjson->{ads}->{$ads[$cadpos]}->{filename},'.')).$cfg->{converter}->{outputtype}; -# print PLN $receiverjson->{ads}->{$ads[$cadpos]}->{subpath}.'/'.$outfilename.'|'.$receiverjson->{ads}->{$ads[$cadpos]}->{duration}.'|'.$receiverjson->{ads}->{$ads[$cadpos]}->{artist}.'|'.$receiverjson->{ads}->{$ads[$cadpos]}->{title}."\n"; -# $cadpos++; -# if ($cadpos >= scalar(@ads)){ -# $cadpos = 0; -# } -# $adrot = $receiverjson->{receiver}->{$r}->{adrotation}; -# }else { -# $adrot--; -# } -# } -# } -# close(PLN); -# close(PL); -# } -# } -# close(PLDS); -# } -# closedir(SCHED); -# } -# } -# } -# } -elsif ($action eq "pack"){ - #my $ploutpath = dirname($configfile); - my $sname = $cfg->{playlists}->{Stream}; - my $snamepath = $sname; - $sname =~ s/\s/\_/g; - my $ploutpath = dirname($configfile).'/playlists'; - # my $dbname = dirname($configfile).'/'.$sname.'.sqlite'; - # $db = sqlite->new($dbname); - # &writelog("PACK","Using Database ".$dbname); - #my $scheds = $db->dbquerysorted("select schedulename from schedule;"); - #foreach my $s (keys(%{$scheds})){ - &writelog("PACK","Pack playlist schedule ".$sname.""); - chdir($ploutpath.'/'.$snamepath); - my $tar = Archive::Tar->new; - my @files = (); - opendir(PLDIR,$ploutpath.'/'.$snamepath); - - while (my $m3u = readdir(PLDIR)){ - print $m3u."\n"; - if ($m3u =~ /\.m3u$/){ - push(@files,$m3u); - } - } - print Dumper(@files); - closedir(PLDIR); - $tar->add_files(@files); - foreach my $x (@files){ - $tar->rename($x,'radio/playlists/'.$x); - } - my @time = gmtime(); - my $date = strftime("%Y%m%d",@time); - $tar->write( $ploutpath.'/'.$sname.'_'.$date.'.tgz', COMPRESS_GZIP ); - print $ploutpath.'/'.$sname.'_'.$date.'.tgz created!'."\n"; - #} - # if (-e $exportpath.'/stationaudiodata.json'){ - # my $receiverjson = &readconfig($exportpath.'/stationaudiodata.json'); - # my $sched='ARAL Schedule'; - # foreach my $r (keys (%{$receiverjson->{receiver}})){ - # if (-d $exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r.'/playlists/new/'.$sched){ - # &writelog("PACK","Pack playlists for receiver ".$r.""); - # &writelog("PACK","receiver playlistpath: ".$receiverjson->{receiver}->{$r}->{playlistpath}.""); - # chdir($exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r.'/playlists/new/'.$sched); - # my $tar = Archive::Tar->new; - # my @files = (); - # opendir(PLDIR,$exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r.'/playlists/new/'.$sched); - - # while (my $m3u = readdir(PLDIR)){ - # if ($m3u =~ /\.m3u$/){ - # push(@files,$m3u); - # } - # } - # closedir(PLDIR); - # $tar->add_files(@files); - # foreach my $x (@files){ - # $tar->rename($x,$receiverjson->{receiver}->{$r}->{playlistpath}.'/'.$x); - # } - # $tar->write( $exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r.'.tbz', COMPRESS_GZIP ); - # } - # } - # } -} -&writelog("APP","Normal End!"); - - -sub getunixdatetime(){ - #YYYY-MM-DD HH:MI:SS - my $dt = shift; - #print $dt."\n"; - my $y1 = substr($dt,0,4); - my $m1 = substr($dt,5,2); - my $d1 = substr($dt,8,2); - my $h1 = substr($dt,11,2); - my $mn1 = substr($dt,14,2); - my $s1 = substr($dt,17,2); - my $utime = timelocal($s1,$mn1,$h1,$d1,$m1-1,$y1); - return $utime; -} -# -sub getdatetime(){ - my $utime = shift; - my @cdate = localtime($utime); - $cdate[5] = $cdate[5] +1900; - $cdate[4] = $cdate[4] +1; - if ($cdate[4] < 10){$cdate[4] = '0'.$cdate[4];} - if ($cdate[3] < 10){$cdate[3] = '0'.$cdate[3];} - if ($cdate[2] < 10){$cdate[2] = '0'.$cdate[2];} - if ($cdate[1] < 10){$cdate[1] = '0'.$cdate[1];} - if ($cdate[0] < 10){$cdate[0] = '0'.$cdate[0];} - my $cmpdate = $cdate[5].'-'.$cdate[4].'-'.$cdate[3].' '.$cdate[2].':'.$cdate[1].':'.$cdate[0]; - return $cmpdate; -} - -sub current_date(){ - my @cdate = localtime(); - $cdate[5] = $cdate[5] +1900; - $cdate[4] = $cdate[4] +1; - if ($cdate[4] < 10){$cdate[4] = '0'.$cdate[4];} - if ($cdate[3] < 10){$cdate[3] = '0'.$cdate[3];} - my $cmpdate = $cdate[5].'-'.$cdate[4].'-'.$cdate[3]; - return $cmpdate; -} - -sub current_datetime(){ - my @cdate = localtime(); - $cdate[5] = $cdate[5] +1900; - $cdate[4] = $cdate[4] +1; - if ($cdate[4] < 10){$cdate[4] = '0'.$cdate[4];} - if ($cdate[3] < 10){$cdate[3] = '0'.$cdate[3];} - if ($cdate[2] < 10){$cdate[2] = '0'.$cdate[2];} - if ($cdate[1] < 10){$cdate[1] = '0'.$cdate[1];} - if ($cdate[0] < 10){$cdate[0] = '0'.$cdate[0];} - my $cmpdate = $cdate[5].'-'.$cdate[4].'-'.$cdate[3].' '.$cdate[2].':'.$cdate[1].':'.$cdate[0]; - return $cmpdate; -} -# -sub getweekday(){ - my $dt = shift; #YYYY-MM-DD - my $y1 = substr($dt,0,4); - my $m1 = substr($dt,5,2); - my $d1 = substr($dt,8,2); - my $utime = timelocal(0,0,0,$d1,$m1-1,$y1); - my @cdate = localtime($utime); - my @awday = qw( Sun Mon Tue Wed Thu Fri Sat ); - return $awday[$cdate[6]] -} -# -sub getdayrotationdef(){ - my $strdate = shift; - my $schedulename = shift; - my $rotdef = (); - my $cnt = 0; - # do we have a schedule? - my $sql = "select * from schedule where weekday = '".&getweekday($strdate)."';"; - my $dayrot = $db->dbquerysorted($sql); - if (keys(%{$dayrot}) > 0){ - foreach my $i (sort {$a<=>$b} keys(%{$dayrot})){ - $sql = "select * from rotation where rotation='".$dayrot->{$i}->{rotation}."' order by position;"; - my $hrot = $db->dbquerysorted($sql); - my $trange ={"timefrom" => $dayrot->{$i}->{start}, "timeto" => $dayrot->{$i}->{end}}; - my @rot = (); - foreach my $p (sort {$a<=>$b} keys(%{$hrot})){ - push(@rot,$hrot->{$p}->{owncategory}); - } - $trange->{categories} = \@rot; - $rotdef->{$cnt} = $trange; - $cnt++; - } - } - - return $rotdef; -} -# -sub getmusiclist(){ - my $owncat = shift; - my $date = shift; - my $limit = shift; - - # for Postgresql: - #my $msql = "select rrm.idmusic,rrm.duration from ( - #select mc.idmusic,bb.lastplayed,random() as rand from musicowncategory mc left join (select max(maxxx) as lastplayed,idmusic from (select pl.plistname::TEXT || '_' || pl.plposition::TEXT as maxxx,pl.idmusic from playlist pl left join rotationmusic rm on (rm.idmusic=pl.idmusic) where pl.idmusic in (select idmusic from musicowncategory where idowncategory='".$owncat."') and plistname <'".$date."') aa group by idmusic) bb on (mc.idmusic=bb.idmusic) where mc.idowncategory='".$owncat."' order by bb.lastplayed ASC NULLS FIRST LIMIT ".$limit.") cc left join rotationmusic rrm on (rrm.idmusic=cc.idmusic) order by cc.rand;"; - #for sqlite - my $msql = "select rrm.idmusic,rrm.duration from ( select mc.idmusic,bb.lastplayed,random() as rand - from music mc left join (select max(maxxx) as lastplayed,idmusic from (select pl.plistname || '_' || pl.plposition as maxxx,pl.idmusic from playlist pl left join music rm on (rm.idmusic=pl.idmusic) where pl.idmusic in (select idmusic from music where owncategory='".$owncat."') and plistname <'".$date."') aa group by idmusic) bb on (mc.idmusic=bb.idmusic) where mc.owncategory='".$owncat."' order by bb.lastplayed ASC LIMIT 100) cc left join music rrm on (rrm.idmusic=cc.idmusic) order by cc.rand;"; - # my $msql = "select rrm.idmusic,rrm.duration from ( - # select mc.idmusic,bb.lastplayed,random() as rand from musicowncategory mc left join (select max(maxxx) as lastplayed,idmusic from (select pl.plistname || '_' || pl.plposition as maxxx,pl.idmusic from playlist pl left join rotationmusic rm on (rm.idmusic=pl.idmusic) where pl.idmusic in (select idmusic from musicowncategory where idowncategory='".$owncat."') and plistname <'".$date."') aa group by idmusic) bb on (mc.idmusic=bb.idmusic) where mc.idowncategory='".$owncat."' order by bb.lastplayed ASC LIMIT ".$limit.") cc left join rotationmusic rrm on (rrm.idmusic=cc.idmusic) order by cc.rand;"; - my @mxdata = $db->dbqueryarray($msql); - $musiclists->{$owncat} = \@mxdata; - # - #return @data; -} -# -sub readconfig(){ - my $file = shift; - my $strjson = ""; - open(CFG,$file); - while (my $l = ){ - $strjson .= $l; - } - close(CFG); - return JSON::PP::decode_json($strjson); -} - -sub writelog(){ - my $section = shift; - my $msg = shift; - my $logrow = ¤t_datetime().':'.$section.':'.$msg."\n"; - if ($debug == 1){ - print $logrow; - } - if (exists($cfg->{options}->{logfile})){ - open(LOG,">>".$cfg->{options}->{logfile}); - print LOG $logrow; - close(LOG); - } - -} - -sub update_database(){ - print localtime()."Update playlist configuration database!\n"; - my $sname = $cfg->{playlists}->{Stream}; - $sname =~ s/\s/\_/g; - my $dbname = dirname($configfile)."\\".$sname.'.sqlite'; - if (! -e $dbname){ - print "$dbname does not exist!\n"; - exit(1); - } - $db = sqlite->new($dbname); - my $schema = $db->dbquerysorted("SELECT * FROM sqlite_master;"); - #print Dumper($schema); - #set audio - print localtime()."set audio!\n"; - my $ocat = (); - my $strsql = ""; - foreach my $cur_au (@{$cfg->{audio}}){ - my $outfilename = basename($cur_au->{sourcepath}); - $outfilename = substr($outfilename,0,rindex($outfilename,'.')).'.'.$cfg->{converter}->{outputtype}; - $outfilename = $cfg->{converter}->{outpath}.$cur_au->{subpath}.'/'.$outfilename; - my $qf = $db->dbquerysorted("select idmusic from music where idmusic=".$cur_au->{id}); - if (!exists($ocat->{$cur_au->{category}})){ - $ocat->{$cur_au->{category}} = 1; - } - if (keys(%{$qf}) > 0){ - #update - $strsql = "update music set owncategory='".$db->strreplace($cur_au->{category})."', sourcepath='".$db->strreplace($outfilename)."',category='".$db->strreplace($cur_au->{subpath})."',duration=".$cur_au->{duration}.",title='".$db->strreplace($cur_au->{title})."',artist='".$db->strreplace($cur_au->{artist})."', filename='".$db->strreplace(basename($outfilename))."' where idmusic=".$cur_au->{id}.";\n"; - } else { - #insert - $strsql = "INSERT INTO music (idmusic,owncategory,sourcepath,filename,category,duration,title,artist) VALUES (".$cur_au->{id}.",'".$db->strreplace($cur_au->{category})."','".$db->strreplace($outfilename)."','".$db->strreplace(basename($outfilename))."','".$db->strreplace($cur_au->{subpath})."',".$cur_au->{duration}.",'".$db->strreplace($cur_au->{title})."','".$db->strreplace($cur_au->{artist})."');\n"; - - } - $db->dbexec($strsql); - - } - print localtime()."set rotation!\n"; - $db->dbexec("delete from rotation;"); - foreach my $r (@{$cfg->{rotations}}){ - #print Dumper($r); - #print keys(%{$r})."\n"; - my @rx = keys(%{$r}); - my @pos = keys(%{$r->{$rx[0]}}); - my $oc = $r->{$rx[0]}->{$pos[0]}; - $db->dbexec("INSERT INTO rotation (rotation,position,owncategory) VALUES ('".$rx[0]."',".$pos[0].",'".$oc."');"); - #$db->dbexec() - } - - print localtime()."set schedules!\n"; - $db->dbexec("delete from schedule;"); - foreach my $s (@{$cfg->{schedules}}){ - # Dumper($s); - #print keys(%{$r})."\n"; - my @wd = keys(%{$s}); - my $rot = $s->{$wd[0]}->{rotation}; - my $start = $s->{$wd[0]}->{begin}; - my $end = $s->{$wd[0]}->{end}; - $wd[0] =~ s/Monday/Mon/; - $wd[0]=~ s/Tuesday/Tue/; - $wd[0] =~ s/Wednesday/Wed/; - $wd[0]=~ s/Thursday/Thu/; - $wd[0] =~ s/Friday/Fri/; - $wd[0] =~ s/Saturday/Sat/; - $wd[0] =~ s/Sunday/Sun/; - $db->dbexec("INSERT INTO schedule (rotation,weekday,start,end) VALUES ('".$rot."','".$wd[0]."','".$start."','".$end."');"); - # - } - print localtime()."DB Update done!\n"; -} +#!C:\Strawberry\perl\bin\perl.exe + +use strict; +use Getopt::Long; +use File::Basename; +use JSON::PP; +use File::Copy; +use Time::Local; +use Data::Dumper; +use POSIX; +use lib (dirname($0).'/lib'); +use lib ("C:/Users/ksaff/Workspace/Coloradio/Tools/lib"); +use audio; +use sqlite; +use File::Path qw(make_path); +use Archive::Tar; +my $configfile = "C:\\Users\\ksaff\\Workspace\\Coloradio\\Coloradio\\exports\\ARAL Stream\\streamdata2.json"; +my $datefrom=""; +my $dateto=""; +my $schedulename="ARAL Schedule"; +my $streamname=""; +my $rotationdef= (); +my $musiclists= (); +my $musiclistlimit = 100; +my $streamident=""; +my $overlapseconds= 86400; +my $rotblocktime = 600; +my $onlymissing = 1; +my $debug = 1; +my $db = undef; +my $action = "pack"; +my $playlistpath = "C:\\Users\\ksaff\\Workspace\\Coloradio\\exports\\playlists"; +my $exportpath = "C:\\Users\\ksaff\\Workspace\\Coloradio\\exports"; +GetOptions ("config|c=s" => \$configfile , "action|a=s" => \$action); + +# if (! -f $configfile){ +# print "No config found!\n"; +# exit(1); +# } + +#load the config + +my $cfg = &readconfig($configfile); +#$cfg->{options}->{section} = 'Playlists'; #Audio, PlaylistsPack,AudioPack +$cfg->{options}->{logfile} = dirname($configfile).'/'.¤t_date().'_coloradio_publish.log'; + +# $cfg->{playlists}->{datefrom} ='2018-12-10'; +# $cfg->{playlists}->{dateto} ='2018-12-25'; + + +if ($action eq "checkaudio"){ + # my $sname = $cfg->{playlists}->{Stream}; + # $sname =~ s/\s/\_/g; + # my $dbname = dirname($configfile).'/'.$sname.'.sqlite'; + # my $db = sqlite->new($dbname); + foreach my $cur_au (@{$cfg->{audio}}){ + my $outfilename = basename($cur_au->{sourcepath}); + $outfilename = substr($outfilename,0,rindex($outfilename,'.')).'.'.$cfg->{converter}->{outputtype}; + $outfilename = $cfg->{converter}->{outpath}.$cur_au->{subpath}.'/'.$outfilename; + if (! -e $cur_au->{sourcepath}){ + print "Source-File: ".$cur_au->{sourcepath}." does not exist!\n"; + } + if (! -e $outfilename){ + print "Out-File: ".$outfilename." does not exist!\n"; + } + } +} +elsif ($action eq "updatedb" ){ + &update_database(); +} +elsif ($action eq "generate"){ + #TODO: Create Database if not exists + #UPDATE DATA in database + + my $sname = $cfg->{playlists}->{Stream}; + $sname =~ s/\s/\_/g; + my $dbname = dirname($configfile).'/'.$sname.'.sqlite'; + $db = sqlite->new($dbname); + &writelog("PLAYLIST","Using Database ".$dbname); + #my $scheds = $db->dbquerysorted("select schedulename from schedule"); + + #foreach my $sch (keys(%{$scheds})){ + my $cdt = &getunixdatetime(¤t_date()." 00:00:00"); + my $udf = $cdt; + my $udt = $cdt; + + if (exists($cfg->{playlists}->{datefrom})){ + $udf = &getunixdatetime($cfg->{playlists}->{datefrom}." 00:00:00"); + } + if (exists($cfg->{playlists}->{dateto})){ + $udt = &getunixdatetime($cfg->{playlists}->{dateto}." 00:00:00"); + } + $cdt = $udf; + my $cschedule = $cfg->{playlists}->{Stream}; + &writelog("PLAYLIST","Start Creating playlists from ".substr(&getdatetime($udf),0,10)." to ".substr(&getdatetime($udt),0,10)." for Schedule ".$cschedule); + + +# if ($scheds->{$sch}->{datefrom} gt ¤t_date()){ +# $cdt = &getunixdatetime($scheds->{$sch}->{datefrom}." 00:00:00"); +# } +# if ($scheds->{$sch}->{dateto} lt $cfg->{playlists}->{dateto}){ +# $udt = &getunixdatetime($scheds->{$sch}->{dateto}." 00:00:00"); +# } + $db->dbexec("DELETE from playlist where plistname >='".substr(&getdatetime($cdt),0,10)."' and plistname <= '".substr(&getdatetime($udt),0,10)."' and streamname = '".$cschedule."';"); + + while ($cdt <= $udt){ + my $shortdate = substr(&getdatetime($cdt),0,10); + &writelog("PLAYLIST","Create Playlist for DATE ".$shortdate); + $rotationdef = &getdayrotationdef($shortdate,$cschedule); + my $mids = (); + foreach my $e (sort {$a <=> $b} keys(%{$rotationdef})){ + my $crot = $rotationdef->{$e}; + my @cats = @{$crot->{categories}}; + #print localtime.": Start at ".$crot->{timefrom}."\n"; + #get first cat + my $timetofill = &getunixdatetime($shortdate." ".$crot->{timeend}.':00')-&getunixdatetime($shortdate." ".$crot->{timebegin}.':00'); + if ($crot->{timeend} <= $crot->{timefrom}){ + $timetofill += 86400; + } + my $ctime = 0; + my $cpos = 0; + my @audiolist = (); + while ($ctime < $timetofill){ + for (my $c=0;$c".$cats[$c]."\n"; + if (!exists($musiclists->{$cats[$c]}) || scalar(@{$musiclists->{$cats[$c]}}) == 0){ + if (scalar(@audiolist) > 0){ + $db->dbexec("INSERT INTO playlist (plistname,plposition,streamname,idmusic) VALUES ".join(",",@audiolist)); + @audiolist=(); + } + #print "get next music category data ".$cats[$c]."\n"; + &getmusiclist($cats[$c],$shortdate,$musiclistlimit); + } + my $data = shift(@{$musiclists->{$cats[$c]}}); + #my $checksql = "select idmusic from playlist where idmusic='".$data->{idmusic}."' and plistname='".$shortdate."' and streamname='".$schedulename."';"; + #my $rxx = $db->dbquerysorted($checksql); + if (!exists($mids->{$data->{idmusic}})){ + push(@audiolist,"('".$shortdate."',".$cpos.",'".$cschedule."','".$data->{idmusic}."')"); + $cpos++; + $ctime += $data->{duration}; + $mids->{$data->{idmusic}} = ""; + } + } + } + $db->dbexec("INSERT INTO playlist (plistname,plposition,streamname,idmusic) VALUES ".join(",",@audiolist)); + } + + #print Dumper($rdef); + $cdt = $cdt+86400; + } +} +elsif ($action eq "export"){ + my $cdt = &getunixdatetime(¤t_date()." 00:00:00"); + my $udf = $cdt; + my $udt = $cdt; + if (exists($cfg->{playlists}->{datefrom})){ + $udf = &getunixdatetime($cfg->{playlists}->{datefrom}." 00:00:00"); + } + if (exists($cfg->{playlists}->{dateto})){ + $udt = &getunixdatetime($cfg->{playlists}->{dateto}." 00:00:00"); + } + $cdt = $udf; + my $sname = $cfg->{playlists}->{Stream}; + &writelog("EXPORT","Start export of playlists from ".substr(&getdatetime($udf),0,10)." to ".substr(&getdatetime($udt),0,10)." for Schedule ".$sname); + + $sname =~ s/\s/\_/g; + my $dbname = dirname($configfile).'/'.$sname.'.sqlite'; + $db = sqlite->new(dirname($configfile).'/'.$sname.'.sqlite'); + my $ploutpath = dirname($configfile).'/playlists/'; + while ($cdt <= $udt){ + my $shortdate = substr(&getdatetime($cdt),0,10); + &writelog("EXPORT","Export Playlist for DATE ".$shortdate); + my $scheds = $db->dbquerysorted("select distinct(streamname) as schedule from playlist where plistname='".$shortdate."'"); + foreach my $s (keys(%{$scheds})){ + if (! -d $ploutpath.'/'.$scheds->{$s}->{schedule}){ + make_path($ploutpath.'/'.$scheds->{$s}->{schedule}); + } + print "Export for schedule: ".$scheds->{$s}->{schedule}."\n"; + my $dpl = $db->dbquerysorted("select rm.idmusic,rm.category,rm.filename,rm.duration,rm.artist,rm.title,pl.streamname from playlist pl left join music rm on (pl.idmusic=rm.idmusic) where pl.plistname='".$shortdate."' and pl.streamname='".$scheds->{$s}->{schedule}."' order by pl.plposition"); + open(PLX,">".$ploutpath.'/'.$scheds->{$s}->{schedule}.'/'.$shortdate.'.m3u'); + foreach my $r (sort {$a <=> $b} keys(%{$dpl})){ + print PLX $dpl->{$r}->{category}.'/'.$dpl->{$r}->{filename}.'|'.$dpl->{$r}->{duration}.'|'.$dpl->{$r}->{artist}.'|'.$dpl->{$r}->{title}."\n"; + } + close(PLX); + } + + $cdt = $cdt+86400; + } + print "Playlists exported to: ".$ploutpath."\n"; +} + +# if ($cfg->{options}->{section} =~ /Receivers/){ +# if (-e $exportpath.'/stationaudiodata.json'){ +# my $receiverjson = &readconfig($exportpath.'/stationaudiodata.json'); + +# foreach my $r (keys (%{$receiverjson->{receiver}})){ +# &writelog("RECEIVER","new playlists for receiver ".$r.""); +# my $adgroup = $receiverjson->{receiver}->{$r}->{adgroup}; +# my @rads = (); +# foreach my $ad (keys (%{$receiverjson->{ads}})){ +# my @xadgroups = split(",",$receiverjson->{ads}->{$ad}->{adGroups}); +# my @r = grep(/$adgroup/,@xadgroups); +# if (scalar(@r) > 0){ +# push(@rads,$ad); +# } +# } +# $receiverjson->{receiver}->{$r}->{ads} = \@rads; +# if (-d $exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/playlists'){ +# opendir(SCHED,$exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/playlists'); +# while (my $sched = readdir(SCHED)){ +# if ($sched =~ /^\./){ next;} +# if (! -d $exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/playlists/'.$sched){next;} +# &writelog("RECEIVER","receiver ".$r." schedule ".$sched); +# if (! -d $exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r){ +# make_path($exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r); +# } +# if (! -d $exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r.'/playlists'){ +# make_path($exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r.'/playlists'); +# } +# if (! -d $exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r.'/playlists/new'){ +# make_path($exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r.'/playlists/new'); +# } +# if (! -d $exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r.'/playlists/new/'.$sched){ +# make_path($exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r.'/playlists/new/'.$sched); +# } +# opendir(PLDS,$exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/playlists/'.$sched); +# while (my $pl = readdir(PLDS)){ +# if ($pl =~ /^\d\d\d\d-\d\d-\d\d\.m3u$/){ +# &writelog("RECEIVER","receiver ".$r." schedule ".$sched." playlist ".$pl); +# open(PL,$exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/playlists/'.$sched.'/'.$pl); +# open(PLN,">".$exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r.'/playlists/new/'.$sched.'/'.$pl); +# my $adrot = undef; +# my @ads = @{$receiverjson->{receiver}->{$r}->{ads}}; +# my $cadpos = 0; +# if (scalar(@ads) > 0){ +# $adrot = $receiverjson->{receiver}->{$r}->{adrotation}; +# } + +# while (my $l = ){ + +# print PLN $l; +# if (defined($adrot)){ +# if ($adrot == 0){ +# my $outfilename = substr($receiverjson->{ads}->{$ads[$cadpos]}->{filename},0,rindex($receiverjson->{ads}->{$ads[$cadpos]}->{filename},'.')).$cfg->{converter}->{outputtype}; +# print PLN $receiverjson->{ads}->{$ads[$cadpos]}->{subpath}.'/'.$outfilename.'|'.$receiverjson->{ads}->{$ads[$cadpos]}->{duration}.'|'.$receiverjson->{ads}->{$ads[$cadpos]}->{artist}.'|'.$receiverjson->{ads}->{$ads[$cadpos]}->{title}."\n"; +# $cadpos++; +# if ($cadpos >= scalar(@ads)){ +# $cadpos = 0; +# } +# $adrot = $receiverjson->{receiver}->{$r}->{adrotation}; +# }else { +# $adrot--; +# } +# } +# } +# close(PLN); +# close(PL); +# } +# } +# close(PLDS); +# } +# closedir(SCHED); +# } +# } +# } +# } +elsif ($action eq "pack"){ + #my $ploutpath = dirname($configfile); + my $sname = $cfg->{playlists}->{Stream}; + my $snamepath = $sname; + $sname =~ s/\s/\_/g; + my $ploutpath = dirname($configfile).'/playlists'; + # my $dbname = dirname($configfile).'/'.$sname.'.sqlite'; + # $db = sqlite->new($dbname); + # &writelog("PACK","Using Database ".$dbname); + #my $scheds = $db->dbquerysorted("select schedulename from schedule;"); + #foreach my $s (keys(%{$scheds})){ + &writelog("PACK","Pack playlist schedule ".$sname.""); + chdir($ploutpath.'/'.$snamepath); + my $tar = Archive::Tar->new; + my @files = (); + opendir(PLDIR,$ploutpath.'/'.$snamepath); + + while (my $m3u = readdir(PLDIR)){ + print $m3u."\n"; + if ($m3u =~ /\.m3u$/){ + push(@files,$m3u); + } + } + print Dumper(@files); + closedir(PLDIR); + $tar->add_files(@files); + foreach my $x (@files){ + $tar->rename($x,'radio/playlists/'.$x); + } + my @time = gmtime(); + my $date = strftime("%Y%m%d",@time); + $tar->write( $ploutpath.'/'.$sname.'_'.$date.'.tgz', COMPRESS_GZIP ); + print $ploutpath.'/'.$sname.'_'.$date.'.tgz created!'."\n"; + #} + # if (-e $exportpath.'/stationaudiodata.json'){ + # my $receiverjson = &readconfig($exportpath.'/stationaudiodata.json'); + # my $sched='ARAL Schedule'; + # foreach my $r (keys (%{$receiverjson->{receiver}})){ + # if (-d $exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r.'/playlists/new/'.$sched){ + # &writelog("PACK","Pack playlists for receiver ".$r.""); + # &writelog("PACK","receiver playlistpath: ".$receiverjson->{receiver}->{$r}->{playlistpath}.""); + # chdir($exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r.'/playlists/new/'.$sched); + # my $tar = Archive::Tar->new; + # my @files = (); + # opendir(PLDIR,$exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r.'/playlists/new/'.$sched); + + # while (my $m3u = readdir(PLDIR)){ + # if ($m3u =~ /\.m3u$/){ + # push(@files,$m3u); + # } + # } + # closedir(PLDIR); + # $tar->add_files(@files); + # foreach my $x (@files){ + # $tar->rename($x,$receiverjson->{receiver}->{$r}->{playlistpath}.'/'.$x); + # } + # $tar->write( $exportpath.'/'.$receiverjson->{receiver}->{$r}->{stream}.'/receivers/'.$r.'.tbz', COMPRESS_GZIP ); + # } + # } + # } +} +&writelog("APP","Normal End!"); + + +sub getunixdatetime(){ + #YYYY-MM-DD HH:MI:SS + my $dt = shift; + #print $dt."\n"; + my $y1 = substr($dt,0,4); + my $m1 = substr($dt,5,2); + my $d1 = substr($dt,8,2); + my $h1 = substr($dt,11,2); + my $mn1 = substr($dt,14,2); + my $s1 = substr($dt,17,2); + my $utime = timelocal($s1,$mn1,$h1,$d1,$m1-1,$y1); + return $utime; +} +# +sub getdatetime(){ + my $utime = shift; + my @cdate = localtime($utime); + $cdate[5] = $cdate[5] +1900; + $cdate[4] = $cdate[4] +1; + if ($cdate[4] < 10){$cdate[4] = '0'.$cdate[4];} + if ($cdate[3] < 10){$cdate[3] = '0'.$cdate[3];} + if ($cdate[2] < 10){$cdate[2] = '0'.$cdate[2];} + if ($cdate[1] < 10){$cdate[1] = '0'.$cdate[1];} + if ($cdate[0] < 10){$cdate[0] = '0'.$cdate[0];} + my $cmpdate = $cdate[5].'-'.$cdate[4].'-'.$cdate[3].' '.$cdate[2].':'.$cdate[1].':'.$cdate[0]; + return $cmpdate; +} + +sub current_date(){ + my @cdate = localtime(); + $cdate[5] = $cdate[5] +1900; + $cdate[4] = $cdate[4] +1; + if ($cdate[4] < 10){$cdate[4] = '0'.$cdate[4];} + if ($cdate[3] < 10){$cdate[3] = '0'.$cdate[3];} + my $cmpdate = $cdate[5].'-'.$cdate[4].'-'.$cdate[3]; + return $cmpdate; +} + +sub current_datetime(){ + my @cdate = localtime(); + $cdate[5] = $cdate[5] +1900; + $cdate[4] = $cdate[4] +1; + if ($cdate[4] < 10){$cdate[4] = '0'.$cdate[4];} + if ($cdate[3] < 10){$cdate[3] = '0'.$cdate[3];} + if ($cdate[2] < 10){$cdate[2] = '0'.$cdate[2];} + if ($cdate[1] < 10){$cdate[1] = '0'.$cdate[1];} + if ($cdate[0] < 10){$cdate[0] = '0'.$cdate[0];} + my $cmpdate = $cdate[5].'-'.$cdate[4].'-'.$cdate[3].' '.$cdate[2].':'.$cdate[1].':'.$cdate[0]; + return $cmpdate; +} +# +sub getweekday(){ + my $dt = shift; #YYYY-MM-DD + my $y1 = substr($dt,0,4); + my $m1 = substr($dt,5,2); + my $d1 = substr($dt,8,2); + my $utime = timelocal(0,0,0,$d1,$m1-1,$y1); + my @cdate = localtime($utime); + my @awday = qw( Sun Mon Tue Wed Thu Fri Sat ); + return $awday[$cdate[6]] +} +# +sub getdayrotationdef(){ + my $strdate = shift; + my $schedulename = shift; + my $rotdef = (); + my $cnt = 0; + # do we have a schedule? + my $sql = "select * from schedule where weekday = '".&getweekday($strdate)."';"; + my $dayrot = $db->dbquerysorted($sql); + if (keys(%{$dayrot}) > 0){ + foreach my $i (sort {$a<=>$b} keys(%{$dayrot})){ + $sql = "select * from rotation where rotation='".$dayrot->{$i}->{rotation}."' order by position;"; + my $hrot = $db->dbquerysorted($sql); + my $trange ={"timefrom" => $dayrot->{$i}->{start}, "timeto" => $dayrot->{$i}->{end}}; + my @rot = (); + foreach my $p (sort {$a<=>$b} keys(%{$hrot})){ + push(@rot,$hrot->{$p}->{owncategory}); + } + $trange->{categories} = \@rot; + $rotdef->{$cnt} = $trange; + $cnt++; + } + } + + return $rotdef; +} +# +sub getmusiclist(){ + my $owncat = shift; + my $date = shift; + my $limit = shift; + + # for Postgresql: + #my $msql = "select rrm.idmusic,rrm.duration from ( + #select mc.idmusic,bb.lastplayed,random() as rand from musicowncategory mc left join (select max(maxxx) as lastplayed,idmusic from (select pl.plistname::TEXT || '_' || pl.plposition::TEXT as maxxx,pl.idmusic from playlist pl left join rotationmusic rm on (rm.idmusic=pl.idmusic) where pl.idmusic in (select idmusic from musicowncategory where idowncategory='".$owncat."') and plistname <'".$date."') aa group by idmusic) bb on (mc.idmusic=bb.idmusic) where mc.idowncategory='".$owncat."' order by bb.lastplayed ASC NULLS FIRST LIMIT ".$limit.") cc left join rotationmusic rrm on (rrm.idmusic=cc.idmusic) order by cc.rand;"; + #for sqlite + my $msql = "select rrm.idmusic,rrm.duration from ( select mc.idmusic,bb.lastplayed,random() as rand + from music mc left join (select max(maxxx) as lastplayed,idmusic from (select pl.plistname || '_' || pl.plposition as maxxx,pl.idmusic from playlist pl left join music rm on (rm.idmusic=pl.idmusic) where pl.idmusic in (select idmusic from music where owncategory='".$owncat."') and plistname <'".$date."') aa group by idmusic) bb on (mc.idmusic=bb.idmusic) where mc.owncategory='".$owncat."' order by bb.lastplayed ASC LIMIT 100) cc left join music rrm on (rrm.idmusic=cc.idmusic) order by cc.rand;"; + # my $msql = "select rrm.idmusic,rrm.duration from ( + # select mc.idmusic,bb.lastplayed,random() as rand from musicowncategory mc left join (select max(maxxx) as lastplayed,idmusic from (select pl.plistname || '_' || pl.plposition as maxxx,pl.idmusic from playlist pl left join rotationmusic rm on (rm.idmusic=pl.idmusic) where pl.idmusic in (select idmusic from musicowncategory where idowncategory='".$owncat."') and plistname <'".$date."') aa group by idmusic) bb on (mc.idmusic=bb.idmusic) where mc.idowncategory='".$owncat."' order by bb.lastplayed ASC LIMIT ".$limit.") cc left join rotationmusic rrm on (rrm.idmusic=cc.idmusic) order by cc.rand;"; + my @mxdata = $db->dbqueryarray($msql); + $musiclists->{$owncat} = \@mxdata; + # + #return @data; +} +# +sub readconfig(){ + my $file = shift; + my $strjson = ""; + open(CFG,$file); + while (my $l = ){ + $strjson .= $l; + } + close(CFG); + return JSON::PP::decode_json($strjson); +} + +sub writelog(){ + my $section = shift; + my $msg = shift; + my $logrow = ¤t_datetime().':'.$section.':'.$msg."\n"; + if ($debug == 1){ + print $logrow; + } + if (exists($cfg->{options}->{logfile})){ + open(LOG,">>".$cfg->{options}->{logfile}); + print LOG $logrow; + close(LOG); + } + +} + +sub update_database(){ + print localtime()."Update playlist configuration database!\n"; + my $sname = $cfg->{playlists}->{Stream}; + $sname =~ s/\s/\_/g; + my $dbname = dirname($configfile)."\\".$sname.'.sqlite'; + if (! -e $dbname){ + print "$dbname does not exist!\n"; + exit(1); + } + $db = sqlite->new($dbname); + my $schema = $db->dbquerysorted("SELECT * FROM sqlite_master;"); + #print Dumper($schema); + #set audio + print localtime()."set audio!\n"; + my $ocat = (); + my $strsql = ""; + foreach my $cur_au (@{$cfg->{audio}}){ + my $outfilename = basename($cur_au->{sourcepath}); + $outfilename = substr($outfilename,0,rindex($outfilename,'.')).'.'.$cfg->{converter}->{outputtype}; + $outfilename = $cfg->{converter}->{outpath}.$cur_au->{subpath}.'/'.$outfilename; + my $qf = $db->dbquerysorted("select idmusic from music where idmusic=".$cur_au->{id}); + if (!exists($ocat->{$cur_au->{category}})){ + $ocat->{$cur_au->{category}} = 1; + } + if (keys(%{$qf}) > 0){ + #update + $strsql = "update music set owncategory='".$db->strreplace($cur_au->{category})."', sourcepath='".$db->strreplace($outfilename)."',category='".$db->strreplace($cur_au->{subpath})."',duration=".$cur_au->{duration}.",title='".$db->strreplace($cur_au->{title})."',artist='".$db->strreplace($cur_au->{artist})."', filename='".$db->strreplace(basename($outfilename))."' where idmusic=".$cur_au->{id}.";\n"; + } else { + #insert + $strsql = "INSERT INTO music (idmusic,owncategory,sourcepath,filename,category,duration,title,artist) VALUES (".$cur_au->{id}.",'".$db->strreplace($cur_au->{category})."','".$db->strreplace($outfilename)."','".$db->strreplace(basename($outfilename))."','".$db->strreplace($cur_au->{subpath})."',".$cur_au->{duration}.",'".$db->strreplace($cur_au->{title})."','".$db->strreplace($cur_au->{artist})."');\n"; + + } + $db->dbexec($strsql); + + } + print localtime()."set rotation!\n"; + $db->dbexec("delete from rotation;"); + foreach my $r (@{$cfg->{rotations}}){ + #print Dumper($r); + #print keys(%{$r})."\n"; + my @rx = keys(%{$r}); + my @pos = keys(%{$r->{$rx[0]}}); + my $oc = $r->{$rx[0]}->{$pos[0]}; + $db->dbexec("INSERT INTO rotation (rotation,position,owncategory) VALUES ('".$rx[0]."',".$pos[0].",'".$oc."');"); + #$db->dbexec() + } + + print localtime()."set schedules!\n"; + $db->dbexec("delete from schedule;"); + foreach my $s (@{$cfg->{schedules}}){ + # Dumper($s); + #print keys(%{$r})."\n"; + my @wd = keys(%{$s}); + my $rot = $s->{$wd[0]}->{rotation}; + my $start = $s->{$wd[0]}->{begin}; + my $end = $s->{$wd[0]}->{end}; + $wd[0] =~ s/Monday/Mon/; + $wd[0]=~ s/Tuesday/Tue/; + $wd[0] =~ s/Wednesday/Wed/; + $wd[0]=~ s/Thursday/Thu/; + $wd[0] =~ s/Friday/Fri/; + $wd[0] =~ s/Saturday/Sat/; + $wd[0] =~ s/Sunday/Sun/; + $db->dbexec("INSERT INTO schedule (rotation,weekday,start,end) VALUES ('".$rot."','".$wd[0]."','".$start."','".$end."');"); + # + } + print localtime()."DB Update done!\n"; +} diff --git a/bin/clr_tousbdrive.pl b/bin/clr_tousbdrive.pl index b7007af..34238cd 100644 --- a/bin/clr_tousbdrive.pl +++ b/bin/clr_tousbdrive.pl @@ -1,55 +1,55 @@ -#!C:\Strawberry\perl\bin\perl.exe -use strict; -use strict; -use utf8; -use Getopt::Long; -use File::Basename; -use File::Copy::Recursive; -use File::Path qw/make_path/; -use lib ("./lib"); -use lib ("D:/Workspace/Apps/Coloradio/server/Tools"); -use sqlite; -my $stationname = ""; -my $drive = ""; -GetOptions("station|st=s" => \$stationname , - "d|drive=s"=> \$drive); -make_path($drive.':/audio'); -make_path($drive.':/log'); -make_path($drive.':/live'); -make_path($drive.':/radio'); -#make_path($drive.':/playlists'); -#copy radio data -if (-e $drive.":/radio/station.db"){ - unlink($drive.":/radio/station.db"); -} -my $db = sqlite->new($drive.":/radio/station.db"); -open(SQL,"D:/Workspace/Apps/Coloradio/data/install/".$stationname.".sql"); -my $sqldata = ""; -while (my $l = ){ - chomp($l); - $sqldata .= $l; -} -my @ddl = split(/;/,$sqldata); -close(SQL); -foreach my $s (@ddl){ - print $s.";\n"; - $db->dbexec($s.";"); -} - -#copy playlists -my $cmd = "\"C:\\Windows\\system32\\xcopy.exe\" \"D:\\Workspace\\Apps\\Coloradio\\data\\playlists\\ARAL Schedule\\*.m3u\" \"".$drive.":\\radio\\playlists\\\" /E /Y"; -print $cmd."\n"; -system($cmd); -#copy audio -$cmd = "\"C:\\Windows\\system32\\xcopy.exe\" \"D:\\Music\\converted\\ogg_0_64\\*\" \"".$drive.":\\audio\\\" /E /Y"; -print $cmd."\n"; -system($cmd); -$cmd = "\"C:\\Windows\\system32\\xcopy.exe\" \"D:\\Workspace\\Apps\\Coloradio\\data\\instoreplayer\\ftpclient.pl\" \"".$drive.":\\\" /E /Y"; -print $cmd."\n"; -system($cmd); -$cmd = "\"C:\\Windows\\system32\\xcopy.exe\" \"D:\\Workspace\\Apps\\Coloradio\\data\\instoreplayer\\setvolume.sh\" \"".$drive.":\\\" /E /Y"; -print $cmd."\n"; -system($cmd); - - - +#!C:\Strawberry\perl\bin\perl.exe +use strict; +use strict; +use utf8; +use Getopt::Long; +use File::Basename; +use File::Copy::Recursive; +use File::Path qw/make_path/; +use lib ("./lib"); +use lib ("D:/Workspace/Apps/Coloradio/server/Tools"); +use sqlite; +my $stationname = ""; +my $drive = ""; +GetOptions("station|st=s" => \$stationname , + "d|drive=s"=> \$drive); +make_path($drive.':/audio'); +make_path($drive.':/log'); +make_path($drive.':/live'); +make_path($drive.':/radio'); +#make_path($drive.':/playlists'); +#copy radio data +if (-e $drive.":/radio/station.db"){ + unlink($drive.":/radio/station.db"); +} +my $db = sqlite->new($drive.":/radio/station.db"); +open(SQL,"D:/Workspace/Apps/Coloradio/data/install/".$stationname.".sql"); +my $sqldata = ""; +while (my $l = ){ + chomp($l); + $sqldata .= $l; +} +my @ddl = split(/;/,$sqldata); +close(SQL); +foreach my $s (@ddl){ + print $s.";\n"; + $db->dbexec($s.";"); +} + +#copy playlists +my $cmd = "\"C:\\Windows\\system32\\xcopy.exe\" \"D:\\Workspace\\Apps\\Coloradio\\data\\playlists\\ARAL Schedule\\*.m3u\" \"".$drive.":\\radio\\playlists\\\" /E /Y"; +print $cmd."\n"; +system($cmd); +#copy audio +$cmd = "\"C:\\Windows\\system32\\xcopy.exe\" \"D:\\Music\\converted\\ogg_0_64\\*\" \"".$drive.":\\audio\\\" /E /Y"; +print $cmd."\n"; +system($cmd); +$cmd = "\"C:\\Windows\\system32\\xcopy.exe\" \"D:\\Workspace\\Apps\\Coloradio\\data\\instoreplayer\\ftpclient.pl\" \"".$drive.":\\\" /E /Y"; +print $cmd."\n"; +system($cmd); +$cmd = "\"C:\\Windows\\system32\\xcopy.exe\" \"D:\\Workspace\\Apps\\Coloradio\\data\\instoreplayer\\setvolume.sh\" \"".$drive.":\\\" /E /Y"; +print $cmd."\n"; +system($cmd); + + + diff --git a/bin/file_backup.pl b/bin/file_backup.pl index 580e372..ffc2459 100644 --- a/bin/file_backup.pl +++ b/bin/file_backup.pl @@ -1,162 +1,162 @@ -#!/usr/bin/perl -use strict; -use Net::OpenSSH; -use File::Basename; -use Data::Dumper; -use Getopt::Long; -use Archive::Tar; -use POSIX qw/strftime/; -use JSON::PP; -#use Data::Dumper; -my $strhost = ""; -my $full = 0; -GetOptions("host=s" => \$strhost, "full"=> \$full); -my $cfgpath="/home/dks/backup/webserver/conf"; -my $logfile="/home/dks/backup/webserver/log/files.".strftime('%Y%m',localtime()).'.log'; - -opendir(CGD,$cfgpath); -my $fcfg = (); -while (my $f = readdir(CGD)){ - if ($f !~ /\.files\.json$/){ next; } - my $file = $f; - $file =~ s/\.files\.json$//; - if ($strhost eq "" || $file =~ /^$strhost/){ - my $strcfg = ""; - open(CFG,$cfgpath.'/'.$f); - while (my $l = ){ - $strcfg .= $l; - } - close(CFG); - $fcfg->{$file} = JSON::PP::decode_json($strcfg); - } -} -closedir(CGD); - -open(LOG,">>".$logfile); -foreach my $fp (keys(%{$fcfg})){ - #if ($fp ne "saffran_lu"){ next;} - # print "Backup Files $fp\n"; - print LOG "==\n".strftime("%Y-%m-%d %H:%M",localtime()).": backup Files : $fp\n"; - my @cmd = (); - my $tarfile = $fp.'_'.strftime("%Y%m%d_%H%M%S",localtime()).'.tar.gz'; - my $txtfilelist = $fp.'_'.strftime("%Y%m%d_%H%M%S",localtime()).'.txt'; - if (! -d $fcfg->{$fp}->{'bkppath'}){ - mkdir($fcfg->{$fp}->{'bkppath'}); - } - my $fcnt = 0; - my $lastbackup = ""; - opendir(DIR,$fcfg->{$fp}->{'bkppath'}); - while (my $d = readdir(DIR)){ - # print $d."\n"; - if ($d =~ /\.tar\.gz$/){ - $fcnt++; - my ($bkpdate) = $d =~ m/.+_(\d{8,})_\d{6,}\.tar\.gz$/; - # print "bdate:".$bkpdate."\n"; - chomp($bkpdate); - if ($bkpdate gt $lastbackup){ - $lastbackup = $bkpdate; - } - } - - } - if ($lastbackup != ""){ - print LOG "Last Backup made $lastbackup\n"; - } else { - print LOG "No Last Backup made\n"; - } - closedir(DIR); - if (($full == 1) || ($fcnt == 0) || ($lastbackup eq "")){ - print LOG "Download Full\n"; - print LOG "Create TAR\n"; - my $stx = &execremote($fcfg->{$fp}->{host},$fcfg->{$fp}->{ssh},'cd '.$fcfg->{$fp}->{remote_basepath}.' && tar czf '.$tarfile.' '.$fcfg->{$fp}->{remote_path}); - if ($stx == 0){ - print LOG "Download File\n"; - my $ftx = &getfile($fcfg->{$fp}->{host},$fcfg->{$fp}->{ssh},$fcfg->{$fp}->{remote_basepath}.'/'.$tarfile,$fcfg->{$fp}->{bkppath}.'/'.$tarfile); - if ($ftx != undef){ - print LOG "Remove from remote\n"; - &execremote($fcfg->{$fp}->{host},$fcfg->{$fp}->{ssh},'rm '.$fcfg->{$fp}->{remote_basepath}.'/'.$tarfile); - } - } - } else { - print LOG "Download Only Changes\n"; - my $cmd = 'cd '.$fcfg->{$fp}->{remote_basepath}.' && find '.$fcfg->{$fp}->{remote_path}.' -type f > '.$txtfilelist; - my $ltx = &execremote($fcfg->{$fp}->{host},$fcfg->{$fp}->{ssh},$cmd); - $cmd = 'cd '.$fcfg->{$fp}->{remote_basepath}.' && touch -t '.$lastbackup."0000 checkdate.txt && find ".$fcfg->{$fp}->{remote_path}.' -newer checkdate.txt -type f -print | tar -czf '.$tarfile.' '.$txtfilelist.' --files-from -'; - my $stx = &execremote($fcfg->{$fp}->{host},$fcfg->{$fp}->{ssh},$cmd); - if ($stx == 0){ - print LOG "Download File\n"; - my $ftx = &getfile($fcfg->{$fp}->{host},$fcfg->{$fp}->{ssh},$fcfg->{$fp}->{remote_basepath}.'/'.$tarfile,$fcfg->{$fp}->{bkppath}.'/'.$tarfile); - if ($ftx != undef){ - print "Remove from remote\n"; - &execremote($fcfg->{$fp}->{host},$fcfg->{$fp}->{ssh},'rm '.$fcfg->{$fp}->{remote_basepath}.'/'.$tarfile." && rm ".$fcfg->{$fp}->{remote_basepath}.'/'.$txtfilelist); - } - $cmd = 'tar -tzvf '.$fcfg->{$fp}->{bkppath}.'/'.$tarfile.' | wc -l'; - my $size = `$cmd`; - chomp($size); - if ($size eq "0"){ - print LOG "file is empty! deleting..."; - unlink($fcfg->{$fp}->{bkppath}.'/'.$tarfile); - } - } - } -} -close(LOG); - -sub execremote(){ - my $host = shift; - my $uopts = shift; - my $cmd = shift; - print $cmd."\n"; - #my $stx = 0; - my $ssh = Net::OpenSSH->new($host,%{$uopts}); - if ($ssh->error){ - print "Couldn't establish SSH connection: ". $ssh->error; - return 1; - } - my $stx =$ssh->system($cmd); - #returns true (1) on success - if ($stx == 1){ - $stx = 0; - } - if ($ssh->error){ - print "remote cmd failed!". $ssh->error; - return 1; - } - return $stx; -} - -sub piperemote(){ - my $host = shift; - my $uopts = shift; - my $cmd = shift; - #print "pipe cmd:".$cmd." - to:".$host."-".Dumper($uopts)."\n"; - my $ssh = Net::OpenSSH->new($host,%{$uopts}); - if ($ssh->error){ - print "Couldn't establish SSH connection: ". $ssh->error; - return 1; - } - print $cmd."\n"; - my $out = $ssh->capture($cmd); - if ($ssh->error){ - print "remote cmd failed!". $ssh->error; - return $out; - } - #print $out; - return $out; -} - -sub getfile(){ - my $host = shift; - my $uopts = shift; - my $remote = shift; - my $local =shift; - print "SCP Copy ".$remote.' => '.$local."\n"; - my $ssh = Net::OpenSSH->new($host,%{$uopts}); - if ($ssh->error){ - print "Couldn't establish SSH connection: ". $ssh->error; - return undef; - } - my $ret = $ssh->scp_get({},$remote,$local) or warn "or warn scp_get from $host failed: " . $ssh->error . "\n"; - return $ret; -} - +#!/usr/bin/perl +use strict; +use Net::OpenSSH; +use File::Basename; +use Data::Dumper; +use Getopt::Long; +use Archive::Tar; +use POSIX qw/strftime/; +use JSON::PP; +#use Data::Dumper; +my $strhost = ""; +my $full = 0; +GetOptions("host=s" => \$strhost, "full"=> \$full); +my $cfgpath="/home/dks/backup/webserver/conf"; +my $logfile="/home/dks/backup/webserver/log/files.".strftime('%Y%m',localtime()).'.log'; + +opendir(CGD,$cfgpath); +my $fcfg = (); +while (my $f = readdir(CGD)){ + if ($f !~ /\.files\.json$/){ next; } + my $file = $f; + $file =~ s/\.files\.json$//; + if ($strhost eq "" || $file =~ /^$strhost/){ + my $strcfg = ""; + open(CFG,$cfgpath.'/'.$f); + while (my $l = ){ + $strcfg .= $l; + } + close(CFG); + $fcfg->{$file} = JSON::PP::decode_json($strcfg); + } +} +closedir(CGD); + +open(LOG,">>".$logfile); +foreach my $fp (keys(%{$fcfg})){ + #if ($fp ne "saffran_lu"){ next;} + # print "Backup Files $fp\n"; + print LOG "==\n".strftime("%Y-%m-%d %H:%M",localtime()).": backup Files : $fp\n"; + my @cmd = (); + my $tarfile = $fp.'_'.strftime("%Y%m%d_%H%M%S",localtime()).'.tar.gz'; + my $txtfilelist = $fp.'_'.strftime("%Y%m%d_%H%M%S",localtime()).'.txt'; + if (! -d $fcfg->{$fp}->{'bkppath'}){ + mkdir($fcfg->{$fp}->{'bkppath'}); + } + my $fcnt = 0; + my $lastbackup = ""; + opendir(DIR,$fcfg->{$fp}->{'bkppath'}); + while (my $d = readdir(DIR)){ + # print $d."\n"; + if ($d =~ /\.tar\.gz$/){ + $fcnt++; + my ($bkpdate) = $d =~ m/.+_(\d{8,})_\d{6,}\.tar\.gz$/; + # print "bdate:".$bkpdate."\n"; + chomp($bkpdate); + if ($bkpdate gt $lastbackup){ + $lastbackup = $bkpdate; + } + } + + } + if ($lastbackup != ""){ + print LOG "Last Backup made $lastbackup\n"; + } else { + print LOG "No Last Backup made\n"; + } + closedir(DIR); + if (($full == 1) || ($fcnt == 0) || ($lastbackup eq "")){ + print LOG "Download Full\n"; + print LOG "Create TAR\n"; + my $stx = &execremote($fcfg->{$fp}->{host},$fcfg->{$fp}->{ssh},'cd '.$fcfg->{$fp}->{remote_basepath}.' && tar czf '.$tarfile.' '.$fcfg->{$fp}->{remote_path}); + if ($stx == 0){ + print LOG "Download File\n"; + my $ftx = &getfile($fcfg->{$fp}->{host},$fcfg->{$fp}->{ssh},$fcfg->{$fp}->{remote_basepath}.'/'.$tarfile,$fcfg->{$fp}->{bkppath}.'/'.$tarfile); + if ($ftx != undef){ + print LOG "Remove from remote\n"; + &execremote($fcfg->{$fp}->{host},$fcfg->{$fp}->{ssh},'rm '.$fcfg->{$fp}->{remote_basepath}.'/'.$tarfile); + } + } + } else { + print LOG "Download Only Changes\n"; + my $cmd = 'cd '.$fcfg->{$fp}->{remote_basepath}.' && find '.$fcfg->{$fp}->{remote_path}.' -type f > '.$txtfilelist; + my $ltx = &execremote($fcfg->{$fp}->{host},$fcfg->{$fp}->{ssh},$cmd); + $cmd = 'cd '.$fcfg->{$fp}->{remote_basepath}.' && touch -t '.$lastbackup."0000 checkdate.txt && find ".$fcfg->{$fp}->{remote_path}.' -newer checkdate.txt -type f -print | tar -czf '.$tarfile.' '.$txtfilelist.' --files-from -'; + my $stx = &execremote($fcfg->{$fp}->{host},$fcfg->{$fp}->{ssh},$cmd); + if ($stx == 0){ + print LOG "Download File\n"; + my $ftx = &getfile($fcfg->{$fp}->{host},$fcfg->{$fp}->{ssh},$fcfg->{$fp}->{remote_basepath}.'/'.$tarfile,$fcfg->{$fp}->{bkppath}.'/'.$tarfile); + if ($ftx != undef){ + print "Remove from remote\n"; + &execremote($fcfg->{$fp}->{host},$fcfg->{$fp}->{ssh},'rm '.$fcfg->{$fp}->{remote_basepath}.'/'.$tarfile." && rm ".$fcfg->{$fp}->{remote_basepath}.'/'.$txtfilelist); + } + $cmd = 'tar -tzvf '.$fcfg->{$fp}->{bkppath}.'/'.$tarfile.' | wc -l'; + my $size = `$cmd`; + chomp($size); + if ($size eq "0"){ + print LOG "file is empty! deleting..."; + unlink($fcfg->{$fp}->{bkppath}.'/'.$tarfile); + } + } + } +} +close(LOG); + +sub execremote(){ + my $host = shift; + my $uopts = shift; + my $cmd = shift; + print $cmd."\n"; + #my $stx = 0; + my $ssh = Net::OpenSSH->new($host,%{$uopts}); + if ($ssh->error){ + print "Couldn't establish SSH connection: ". $ssh->error; + return 1; + } + my $stx =$ssh->system($cmd); + #returns true (1) on success + if ($stx == 1){ + $stx = 0; + } + if ($ssh->error){ + print "remote cmd failed!". $ssh->error; + return 1; + } + return $stx; +} + +sub piperemote(){ + my $host = shift; + my $uopts = shift; + my $cmd = shift; + #print "pipe cmd:".$cmd." - to:".$host."-".Dumper($uopts)."\n"; + my $ssh = Net::OpenSSH->new($host,%{$uopts}); + if ($ssh->error){ + print "Couldn't establish SSH connection: ". $ssh->error; + return 1; + } + print $cmd."\n"; + my $out = $ssh->capture($cmd); + if ($ssh->error){ + print "remote cmd failed!". $ssh->error; + return $out; + } + #print $out; + return $out; +} + +sub getfile(){ + my $host = shift; + my $uopts = shift; + my $remote = shift; + my $local =shift; + print "SCP Copy ".$remote.' => '.$local."\n"; + my $ssh = Net::OpenSSH->new($host,%{$uopts}); + if ($ssh->error){ + print "Couldn't establish SSH connection: ". $ssh->error; + return undef; + } + my $ret = $ssh->scp_get({},$remote,$local) or warn "or warn scp_get from $host failed: " . $ssh->error . "\n"; + return $ret; +} + diff --git a/bin/sqlitedumpdata.pl b/bin/sqlitedumpdata.pl index 00ad087..1d94a99 100644 --- a/bin/sqlitedumpdata.pl +++ b/bin/sqlitedumpdata.pl @@ -1,47 +1,47 @@ -#!/usr/bin/perl -use strict; -use File::Basename; -use Getopt::Long; -use lib (dirname($0).'/cgi/lib'); -use sqlite; -use pgsql; -use localconfig; -my $sdb = ""; -my $ident = ""; -my $schema = 0; -my $data = 0; -GetOptions("database|db=s" => \$sdb,"ident|i=s" => \$ident,"schema|s" => \$schema,"data|d" => \$data); -my $db = sqlite->new($sdb); - -$db->dbbackup(dirname($0).'/cursqlitedb.sql','sql'); -my $cfgpath=dirname($0).'/conf'; -my $cfg = localconfig->new($cfgpath.'/'.$ident.'.conf'); -my $rcfg = $cfg->readconfig(); -my $pg = pgsql->new($rcfg); -if ($schema == 1){ - open(SDB,dirname($0).'/cursqlitedb.sql'); - my $ddlschema = ""; - while (my $l = ){ - #chomp($l); - if (($l !~ /^INSERT/) && ($l !~ /^UPDATE/) && ($l !~ /^DELETE/)){ - $ddlschema .= $l; - } - - } - my $r = $pg->dbexec("INSERT INTO ".$rcfg->{schema}.".ddlschema (ddlschema) VALUES ('".$pg->strreplace($ddlschema)."');"); -} -if ($data == 1){ - my @sqldata = (); - open(SDB,dirname($0).'/cursqlitedb.sql'); - while (my $l = ){ - chomp($l); - if (($l =~ /^INSERT/) || ($l =~ /^UPDATE/) || ($l =~ /^DELETE/)){ - push(@sqldata,$l); - } - } - close(SDB); - - foreach my $d (@sqldata){ - my $r = $pg->dbexec("INSERT INTO ".$rcfg->{schema}.".sqlsync (tsquery,sqlquery,client) VALUES (now(),'".$pg->strreplace($d)."','system');"); - } -} +#!/usr/bin/perl +use strict; +use File::Basename; +use Getopt::Long; +use lib (dirname($0).'/cgi/lib'); +use sqlite; +use pgsql; +use localconfig; +my $sdb = ""; +my $ident = ""; +my $schema = 0; +my $data = 0; +GetOptions("database|db=s" => \$sdb,"ident|i=s" => \$ident,"schema|s" => \$schema,"data|d" => \$data); +my $db = sqlite->new($sdb); + +$db->dbbackup(dirname($0).'/cursqlitedb.sql','sql'); +my $cfgpath=dirname($0).'/conf'; +my $cfg = localconfig->new($cfgpath.'/'.$ident.'.conf'); +my $rcfg = $cfg->readconfig(); +my $pg = pgsql->new($rcfg); +if ($schema == 1){ + open(SDB,dirname($0).'/cursqlitedb.sql'); + my $ddlschema = ""; + while (my $l = ){ + #chomp($l); + if (($l !~ /^INSERT/) && ($l !~ /^UPDATE/) && ($l !~ /^DELETE/)){ + $ddlschema .= $l; + } + + } + my $r = $pg->dbexec("INSERT INTO ".$rcfg->{schema}.".ddlschema (ddlschema) VALUES ('".$pg->strreplace($ddlschema)."');"); +} +if ($data == 1){ + my @sqldata = (); + open(SDB,dirname($0).'/cursqlitedb.sql'); + while (my $l = ){ + chomp($l); + if (($l =~ /^INSERT/) || ($l =~ /^UPDATE/) || ($l =~ /^DELETE/)){ + push(@sqldata,$l); + } + } + close(SDB); + + foreach my $d (@sqldata){ + my $r = $pg->dbexec("INSERT INTO ".$rcfg->{schema}.".sqlsync (tsquery,sqlquery,client) VALUES (now(),'".$pg->strreplace($d)."','system');"); + } +} diff --git a/dev/install.sh b/dev/install.sh index b5d85ec..21a195a 100644 --- a/dev/install.sh +++ b/dev/install.sh @@ -1,30 +1,30 @@ -#!/bin/bash - -#add group dks -#add user dks - -#add smbusers -> (must have real user with: -g -G dks -s /bin/false -d /dev/null -STNAME=$1 -sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config -sudo sed -i 's/#Port 22/Port 3587/' -sudo service ssh restart -echo 'echo -e "mai5ia7a\nmai5ia7a" | sudo -S passwd' > tmp.sh && bash tmp.sh && rm tmp.sh -chmod 660 /etc/sudoers -sudo sed -i 's/\%sudo.*/%sudo ALL=(ALL:ALL) ALL:NOPASSWD/' /etc/sudoers -chmod 440 /etc/sudoers -update-rc.d "ssh" enable -groupadd dks -useradd dks -c DKS -g dks -G adm,sudo,crontab -s /bin/bash -d /home/dks -echo 'echo -e "sai4seip\nsai4seip" | passwd dks' > tmp.sh && bash tmp.sh && rm tmp.sh -mkdir -p /home/dks -chown dks:dks /home/dks -cp /usr/share/zoneinfo/Europe/Luxembourg /etc/localtime -hostnamectl set-hostname ${STNAME} -sed -i "s/raspberrypi/'${STNAME}'/" /etc/hosts -sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf -sysctl -p -apt-get update -apt-get upgrade -y -apt-get install -y sqlite3 wget curl perl openvpn ntfs-3g liblocal-lib-perl samba smbclient -#userdel pi +#!/bin/bash + +#add group dks +#add user dks + +#add smbusers -> (must have real user with: -g -G dks -s /bin/false -d /dev/null +STNAME=$1 +sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config +sudo sed -i 's/#Port 22/Port 3587/' +sudo service ssh restart +echo 'echo -e "mai5ia7a\nmai5ia7a" | sudo -S passwd' > tmp.sh && bash tmp.sh && rm tmp.sh +chmod 660 /etc/sudoers +sudo sed -i 's/\%sudo.*/%sudo ALL=(ALL:ALL) ALL:NOPASSWD/' /etc/sudoers +chmod 440 /etc/sudoers +update-rc.d "ssh" enable +groupadd dks +useradd dks -c DKS -g dks -G adm,sudo,crontab -s /bin/bash -d /home/dks +echo 'echo -e "sai4seip\nsai4seip" | passwd dks' > tmp.sh && bash tmp.sh && rm tmp.sh +mkdir -p /home/dks +chown dks:dks /home/dks +cp /usr/share/zoneinfo/Europe/Luxembourg /etc/localtime +hostnamectl set-hostname ${STNAME} +sed -i "s/raspberrypi/'${STNAME}'/" /etc/hosts +sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf +sysctl -p +apt-get update +apt-get upgrade -y +apt-get install -y sqlite3 wget curl perl openvpn ntfs-3g liblocal-lib-perl samba smbclient +#userdel pi #rm -r /home/pi \ No newline at end of file diff --git a/htdocs/css/w3pro.css b/htdocs/css/w3pro.css index 3013489..62013ad 100644 --- a/htdocs/css/w3pro.css +++ b/htdocs/css/w3pro.css @@ -174,6 +174,7 @@ hr{border:0;border-top:1px solid #eee;margin:20px 0} .w3-dark-grey,.w3-hover-dark-grey:hover{color:#fff!important;background-color:#616161!important} .w3-pale-red,.w3-hover-pale-red:hover{color:#000!important;background-color:#ffe7e7!important}.w3-pale-green,.w3-hover-pale-green:hover{color:#000!important;background-color:#e7ffe7!important} .w3-pale-yellow,.w3-hover-pale-yellow:hover{color:#000!important;background-color:#ffffd7!important}.w3-pale-blue,.w3-hover-pale-blue:hover{color:#000!important;background-color:#e7ffff!important} +.w3-text-align-right { text-align: right;} .w3-text-amber,.w3-hover-text-amber:hover{color:#ffc107!important} .w3-text-aqua,.w3-hover-text-aqua:hover{color:#00ffff!important} .w3-text-blue,.w3-hover-text-blue:hover{color:#2196F3!important} diff --git a/htdocs/img/icons/pictures_white.svg b/htdocs/img/icons/pictures_white.svg index eec7c59..9142d7f 100644 --- a/htdocs/img/icons/pictures_white.svg +++ b/htdocs/img/icons/pictures_white.svg @@ -1,5 +1,5 @@ - - - + + + \ No newline at end of file diff --git a/htdocs/js/admin.js b/htdocs/js/admin.js index 7990936..0e8fae1 100644 --- a/htdocs/js/admin.js +++ b/htdocs/js/admin.js @@ -1,78 +1,119 @@ -var admin = { - current_dataset: {}, - loadapp: function(appident){ - console.log(appident); - console.log(location.origin + '/app/' + appident + '/index.html'); - location.href=location.origin + '/app/' + appident + '/index.html'; - }, - loadpage: function(modulepage,modulename){ - console.log(admin.current_dataset); - console.log("Load module:" + modulepage); - if (modulename){ - document.getElementById("modulename").innerHTML = modulename; - } - var pm = []; - for (var i in admin.current_dataset){ - pm.push(i + "=" + encodeURIComponent(admin.current_dataset[i])); - } - if (pm.length > 0){ - modulepage = modulepage + "?" + pm.join("&"); - } - console.log(modulepage); - document.getElementById("moduleframe").setAttribute('src',modulepage); - }, - sidebarclick: function(modulepage,modulename){ - admin.ladpage(modulepage,modulename); - }, - logout: function(){ - req.reqdata("POST",location.href,{"logout":"1"},admin.reloadpage); - - }, - reloadpage(page){ - location.href=location.href; - - }, - getdatasets: function(){ - req.reqdata("POST","db.cgi",{"db":basedb,"type":"array","sql":"select * from datastores;"},admin.loaddatasets); - }, - loaddatasets: function(data){ - console.log(data); - var gdt = document.getElementById('globaldatasets'); - gdt.innerHTML = ''; - if (data && data.sqldata){ - var opts = ';' - for (var i in data.sqldata){ - opts += ''; - } - gdt.innerHTML = opts; - } - if (admin.current_dataset.db){ - - }else { - admin.current_dataset["db"]=gdt.value; - } - console.log(admin.current_dataset); - } -} - -function reload_page(){ - location.href=location.href; -} - -function closeSidebar(){ - document.getElementById("sidebar").style.display = "none"; - document.getElementById("main").style.margin = "0 0 0 0"; - document.getElementById("modulename").style.setProperty("margin-left","0px"); -} - -function openSidebar(){ - document.getElementById("sidebar").style.display = "block"; - document.getElementById("main").style.setProperty("margin-left","210px"); - document.getElementById("modulename").style.setProperty("margin-left","150px"); -} - -document.addEventListener("DOMContentLoaded", function() { - if (basedb && basedb != ""){ - admin.getdatasets(); - } +var admin = { + current_dataset: {}, + loadapp: function(appident){ + console.log(appident); + console.log(location.origin + '/app/' + appident + '/index.html'); + location.href=location.origin + '/app/' + appident + '/index.html'; + }, + loadpage: function(modulepage,modulename){ + console.log(admin.current_dataset); + console.log("Load module:" + modulepage); + if (modulename){ + document.getElementById("modulename").innerHTML = modulename; + } + var pm = []; + for (var i in admin.current_dataset){ + pm.push(i + "=" + encodeURIComponent(admin.current_dataset[i])); + } + if (pm.length > 0){ + modulepage = modulepage + "?" + pm.join("&"); + } + console.log(modulepage); + document.getElementById("moduleframe").setAttribute('src',modulepage); + }, + sidebarclick: function(modulepage,modulename){ + admin.ladpage(modulepage,modulename); + }, + logout: function(){ + req.reqdata("POST",location.href,{"logout":"1"},admin.reloadpage); + + }, + reloadpage(page){ + location.href=location.href; + + }, + getdatasets: function(){ + req.reqdata("POST","db.cgi",{"db":basedb,"type":"array","sql":"select * from datastores;"},admin.loaddatasets); + }, + getpreference: function(pagename,callback){ + req.reqdata("POST","db.cgi",{"db":basedb,"type":"array","sql":"select * from preferences where page='"+ pagename+"' and ident='"+ admin.getCookie("dksident") +"';"},callback); + }, + setpreference: function(pagename,prefdata){ + var txtprefdata= encodeURIComponent(prefdata); + if (typeof prefdata == 'object'){ + txtprefdata = encodeURIComponent(JSON.stringify(prefdata)); + } + req.reqdata("POST","db.cgi",{"db":basedb,"exec":"INSERT INTO preferences (ident,page,preferences) VALUES ('"+ admin.getCookie("dksident") +"','"+pagename+"','"+ txtprefdata+"');"},null); + }, + loaddatasets: function(data){ + console.log("loaddatasets"); + console.log(data); + var gdt = document.getElementById('globaldatasets'); + console.log(gdt); + gdt.innerHTML = ''; + if (data){ + var opts = ''; + for (var i in data){ + opts += ''; + } + gdt.innerHTML = opts; + } + if (admin.current_dataset.db){ + + }else { + admin.current_dataset["db"]=gdt.value; + } + console.log(admin.current_dataset); + }, + getCookie: function(cname) { + var name = cname + "="; + var decodedCookie = decodeURIComponent(document.cookie); + var ca = decodedCookie.split(';'); + for(var i = 0; i = VerbosityLevel.INFOS) { + console.log('Info: ' + msg); + } +} + +function warn(msg) { + if (verbosity >= VerbosityLevel.WARNINGS) { + console.log('Warning: ' + msg); + } +} + +function unreachable(msg) { + throw new Error(msg); +} + +function assert(cond, msg) { + if (!cond) { + unreachable(msg); + } +} + +function isSameOrigin(baseUrl, otherUrl) { + try { + var base = new _url_polyfill.URL(baseUrl); + + if (!base.origin || base.origin === 'null') { + return false; + } + } catch (e) { + return false; + } + + var other = new _url_polyfill.URL(otherUrl, base); + return base.origin === other.origin; +} + +function _isValidProtocol(url) { + if (!url) { + return false; + } + + switch (url.protocol) { + case 'http:': + case 'https:': + case 'ftp:': + case 'mailto:': + case 'tel:': + return true; + + default: + return false; + } +} + +function createValidAbsoluteUrl(url, baseUrl) { + if (!url) { + return null; + } + + try { + var absoluteUrl = baseUrl ? new _url_polyfill.URL(url, baseUrl) : new _url_polyfill.URL(url); + + if (_isValidProtocol(absoluteUrl)) { + return absoluteUrl; + } + } catch (ex) {} + + return null; +} + +function shadow(obj, prop, value) { + Object.defineProperty(obj, prop, { + value: value, + enumerable: true, + configurable: true, + writable: false + }); + return value; +} + +var PasswordException = function PasswordExceptionClosure() { + function PasswordException(msg, code) { + this.name = 'PasswordException'; + this.message = msg; + this.code = code; + } + + PasswordException.prototype = new Error(); + PasswordException.constructor = PasswordException; + return PasswordException; +}(); + +exports.PasswordException = PasswordException; + +var UnknownErrorException = function UnknownErrorExceptionClosure() { + function UnknownErrorException(msg, details) { + this.name = 'UnknownErrorException'; + this.message = msg; + this.details = details; + } + + UnknownErrorException.prototype = new Error(); + UnknownErrorException.constructor = UnknownErrorException; + return UnknownErrorException; +}(); + +exports.UnknownErrorException = UnknownErrorException; + +var InvalidPDFException = function InvalidPDFExceptionClosure() { + function InvalidPDFException(msg) { + this.name = 'InvalidPDFException'; + this.message = msg; + } + + InvalidPDFException.prototype = new Error(); + InvalidPDFException.constructor = InvalidPDFException; + return InvalidPDFException; +}(); + +exports.InvalidPDFException = InvalidPDFException; + +var MissingPDFException = function MissingPDFExceptionClosure() { + function MissingPDFException(msg) { + this.name = 'MissingPDFException'; + this.message = msg; + } + + MissingPDFException.prototype = new Error(); + MissingPDFException.constructor = MissingPDFException; + return MissingPDFException; +}(); + +exports.MissingPDFException = MissingPDFException; + +var UnexpectedResponseException = function UnexpectedResponseExceptionClosure() { + function UnexpectedResponseException(msg, status) { + this.name = 'UnexpectedResponseException'; + this.message = msg; + this.status = status; + } + + UnexpectedResponseException.prototype = new Error(); + UnexpectedResponseException.constructor = UnexpectedResponseException; + return UnexpectedResponseException; +}(); + +exports.UnexpectedResponseException = UnexpectedResponseException; + +var FormatError = function FormatErrorClosure() { + function FormatError(msg) { + this.message = msg; + } + + FormatError.prototype = new Error(); + FormatError.prototype.name = 'FormatError'; + FormatError.constructor = FormatError; + return FormatError; +}(); + +exports.FormatError = FormatError; + +var AbortException = function AbortExceptionClosure() { + function AbortException(msg) { + this.name = 'AbortException'; + this.message = msg; + } + + AbortException.prototype = new Error(); + AbortException.constructor = AbortException; + return AbortException; +}(); + +exports.AbortException = AbortException; +var NullCharactersRegExp = /\x00/g; + +function removeNullCharacters(str) { + if (typeof str !== 'string') { + warn('The argument for removeNullCharacters must be a string.'); + return str; + } + + return str.replace(NullCharactersRegExp, ''); +} + +function bytesToString(bytes) { + assert(bytes !== null && _typeof(bytes) === 'object' && bytes.length !== undefined, 'Invalid argument for bytesToString'); + var length = bytes.length; + var MAX_ARGUMENT_COUNT = 8192; + + if (length < MAX_ARGUMENT_COUNT) { + return String.fromCharCode.apply(null, bytes); + } + + var strBuf = []; + + for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) { + var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length); + var chunk = bytes.subarray(i, chunkEnd); + strBuf.push(String.fromCharCode.apply(null, chunk)); + } + + return strBuf.join(''); +} + +function stringToBytes(str) { + assert(typeof str === 'string', 'Invalid argument for stringToBytes'); + var length = str.length; + var bytes = new Uint8Array(length); + + for (var i = 0; i < length; ++i) { + bytes[i] = str.charCodeAt(i) & 0xFF; + } + + return bytes; +} + +function arrayByteLength(arr) { + if (arr.length !== undefined) { + return arr.length; + } + + assert(arr.byteLength !== undefined); + return arr.byteLength; +} + +function arraysToBytes(arr) { + if (arr.length === 1 && arr[0] instanceof Uint8Array) { + return arr[0]; + } + + var resultLength = 0; + var i, + ii = arr.length; + var item, itemLength; + + for (i = 0; i < ii; i++) { + item = arr[i]; + itemLength = arrayByteLength(item); + resultLength += itemLength; + } + + var pos = 0; + var data = new Uint8Array(resultLength); + + for (i = 0; i < ii; i++) { + item = arr[i]; + + if (!(item instanceof Uint8Array)) { + if (typeof item === 'string') { + item = stringToBytes(item); + } else { + item = new Uint8Array(item); + } + } + + itemLength = item.byteLength; + data.set(item, pos); + pos += itemLength; + } + + return data; +} + +function string32(value) { + return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff); +} + +function log2(x) { + if (x <= 0) { + return 0; + } + + return Math.ceil(Math.log2(x)); +} + +function readInt8(data, start) { + return data[start] << 24 >> 24; +} + +function readUint16(data, offset) { + return data[offset] << 8 | data[offset + 1]; +} + +function readUint32(data, offset) { + return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0; +} + +function isLittleEndian() { + var buffer8 = new Uint8Array(4); + buffer8[0] = 1; + var view32 = new Uint32Array(buffer8.buffer, 0, 1); + return view32[0] === 1; +} + +function isEvalSupported() { + try { + new Function(''); + return true; + } catch (e) { + return false; + } +} + +var Util = function UtilClosure() { + function Util() {} + + var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')']; + + Util.makeCssRgb = function Util_makeCssRgb(r, g, b) { + rgbBuf[1] = r; + rgbBuf[3] = g; + rgbBuf[5] = b; + return rgbBuf.join(''); + }; + + Util.transform = function Util_transform(m1, m2) { + return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]]; + }; + + Util.applyTransform = function Util_applyTransform(p, m) { + var xt = p[0] * m[0] + p[1] * m[2] + m[4]; + var yt = p[0] * m[1] + p[1] * m[3] + m[5]; + return [xt, yt]; + }; + + Util.applyInverseTransform = function Util_applyInverseTransform(p, m) { + var d = m[0] * m[3] - m[1] * m[2]; + var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; + var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; + return [xt, yt]; + }; + + Util.getAxialAlignedBoundingBox = function Util_getAxialAlignedBoundingBox(r, m) { + var p1 = Util.applyTransform(r, m); + var p2 = Util.applyTransform(r.slice(2, 4), m); + var p3 = Util.applyTransform([r[0], r[3]], m); + var p4 = Util.applyTransform([r[2], r[1]], m); + return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])]; + }; + + Util.inverseTransform = function Util_inverseTransform(m) { + var d = m[0] * m[3] - m[1] * m[2]; + return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d]; + }; + + Util.apply3dTransform = function Util_apply3dTransform(m, v) { + return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]]; + }; + + Util.singularValueDecompose2dScale = function Util_singularValueDecompose2dScale(m) { + var transpose = [m[0], m[2], m[1], m[3]]; + var a = m[0] * transpose[0] + m[1] * transpose[2]; + var b = m[0] * transpose[1] + m[1] * transpose[3]; + var c = m[2] * transpose[0] + m[3] * transpose[2]; + var d = m[2] * transpose[1] + m[3] * transpose[3]; + var first = (a + d) / 2; + var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2; + var sx = first + second || 1; + var sy = first - second || 1; + return [Math.sqrt(sx), Math.sqrt(sy)]; + }; + + Util.normalizeRect = function Util_normalizeRect(rect) { + var r = rect.slice(0); + + if (rect[0] > rect[2]) { + r[0] = rect[2]; + r[2] = rect[0]; + } + + if (rect[1] > rect[3]) { + r[1] = rect[3]; + r[3] = rect[1]; + } + + return r; + }; + + Util.intersect = function Util_intersect(rect1, rect2) { + function compare(a, b) { + return a - b; + } + + var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare), + orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare), + result = []; + rect1 = Util.normalizeRect(rect1); + rect2 = Util.normalizeRect(rect2); + + if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) { + result[0] = orderedX[1]; + result[2] = orderedX[2]; + } else { + return false; + } + + if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) { + result[1] = orderedY[1]; + result[3] = orderedY[2]; + } else { + return false; + } + + return result; + }; + + return Util; +}(); + +exports.Util = Util; +var PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C, 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160, 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC]; + +function stringToPDFString(str) { + var i, + n = str.length, + strBuf = []; + + if (str[0] === '\xFE' && str[1] === '\xFF') { + for (i = 2; i < n; i += 2) { + strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1))); + } + } else { + for (i = 0; i < n; ++i) { + var code = PDFStringTranslateTable[str.charCodeAt(i)]; + strBuf.push(code ? String.fromCharCode(code) : str.charAt(i)); + } + } + + return strBuf.join(''); +} + +function stringToUTF8String(str) { + return decodeURIComponent(escape(str)); +} + +function utf8StringToString(str) { + return unescape(encodeURIComponent(str)); +} + +function isEmptyObj(obj) { + for (var key in obj) { + return false; + } + + return true; +} + +function isBool(v) { + return typeof v === 'boolean'; +} + +function isNum(v) { + return typeof v === 'number'; +} + +function isString(v) { + return typeof v === 'string'; +} + +function isArrayBuffer(v) { + return _typeof(v) === 'object' && v !== null && v.byteLength !== undefined; +} + +function isArrayEqual(arr1, arr2) { + if (arr1.length !== arr2.length) { + return false; + } + + return arr1.every(function (element, index) { + return element === arr2[index]; + }); +} + +function isSpace(ch) { + return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A; +} + +function createPromiseCapability() { + var capability = Object.create(null); + var isSettled = false; + Object.defineProperty(capability, 'settled', { + get: function get() { + return isSettled; + } + }); + capability.promise = new Promise(function (resolve, reject) { + capability.resolve = function (data) { + isSettled = true; + resolve(data); + }; + + capability.reject = function (reason) { + isSettled = true; + reject(reason); + }; + }); + return capability; +} + +var createObjectURL = function createObjectURLClosure() { + var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; + return function createObjectURL(data, contentType) { + var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + if (!forceDataSchema && _url_polyfill.URL.createObjectURL) { + var blob = new Blob([data], { + type: contentType + }); + return _url_polyfill.URL.createObjectURL(blob); + } + + var buffer = 'data:' + contentType + ';base64,'; + + for (var i = 0, ii = data.length; i < ii; i += 3) { + var b1 = data[i] & 0xFF; + var b2 = data[i + 1] & 0xFF; + var b3 = data[i + 2] & 0xFF; + var d1 = b1 >> 2, + d2 = (b1 & 3) << 4 | b2 >> 4; + var d3 = i + 1 < ii ? (b2 & 0xF) << 2 | b3 >> 6 : 64; + var d4 = i + 2 < ii ? b3 & 0x3F : 64; + buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4]; + } + + return buffer; + }; +}(); + +exports.createObjectURL = createObjectURL; + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +var globalScope = __w_pdfjs_require__(3); + +if (!globalScope._pdfjsCompatibilityChecked) { + globalScope._pdfjsCompatibilityChecked = true; + + var isNodeJS = __w_pdfjs_require__(4); + + var hasDOM = (typeof window === "undefined" ? "undefined" : _typeof(window)) === 'object' && (typeof document === "undefined" ? "undefined" : _typeof(document)) === 'object'; + + (function checkNodeBtoa() { + if (globalScope.btoa || !isNodeJS()) { + return; + } + + globalScope.btoa = function (chars) { + return Buffer.from(chars, 'binary').toString('base64'); + }; + })(); + + (function checkNodeAtob() { + if (globalScope.atob || !isNodeJS()) { + return; + } + + globalScope.atob = function (input) { + return Buffer.from(input, 'base64').toString('binary'); + }; + })(); + + (function checkChildNodeRemove() { + if (!hasDOM) { + return; + } + + if (typeof Element.prototype.remove !== 'undefined') { + return; + } + + Element.prototype.remove = function () { + if (this.parentNode) { + this.parentNode.removeChild(this); + } + }; + })(); + + (function checkDOMTokenListAddRemove() { + if (!hasDOM || isNodeJS()) { + return; + } + + var div = document.createElement('div'); + div.classList.add('testOne', 'testTwo'); + + if (div.classList.contains('testOne') === true && div.classList.contains('testTwo') === true) { + return; + } + + var OriginalDOMTokenListAdd = DOMTokenList.prototype.add; + var OriginalDOMTokenListRemove = DOMTokenList.prototype.remove; + + DOMTokenList.prototype.add = function () { + for (var _len = arguments.length, tokens = new Array(_len), _key = 0; _key < _len; _key++) { + tokens[_key] = arguments[_key]; + } + + for (var _i = 0, _tokens = tokens; _i < _tokens.length; _i++) { + var token = _tokens[_i]; + OriginalDOMTokenListAdd.call(this, token); + } + }; + + DOMTokenList.prototype.remove = function () { + for (var _len2 = arguments.length, tokens = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + tokens[_key2] = arguments[_key2]; + } + + for (var _i2 = 0, _tokens2 = tokens; _i2 < _tokens2.length; _i2++) { + var token = _tokens2[_i2]; + OriginalDOMTokenListRemove.call(this, token); + } + }; + })(); + + (function checkDOMTokenListToggle() { + if (!hasDOM || isNodeJS()) { + return; + } + + var div = document.createElement('div'); + + if (div.classList.toggle('test', 0) === false) { + return; + } + + DOMTokenList.prototype.toggle = function (token) { + var force = arguments.length > 1 ? !!arguments[1] : !this.contains(token); + return this[force ? 'add' : 'remove'](token), force; + }; + })(); + + (function checkStringStartsWith() { + if (String.prototype.startsWith) { + return; + } + + __w_pdfjs_require__(5); + })(); + + (function checkStringEndsWith() { + if (String.prototype.endsWith) { + return; + } + + __w_pdfjs_require__(36); + })(); + + (function checkStringIncludes() { + if (String.prototype.includes) { + return; + } + + __w_pdfjs_require__(38); + })(); + + (function checkArrayIncludes() { + if (Array.prototype.includes) { + return; + } + + __w_pdfjs_require__(40); + })(); + + (function checkArrayFrom() { + if (Array.from) { + return; + } + + __w_pdfjs_require__(47); + })(); + + (function checkObjectAssign() { + if (Object.assign) { + return; + } + + __w_pdfjs_require__(70); + })(); + + (function checkMathLog2() { + if (Math.log2) { + return; + } + + Math.log2 = __w_pdfjs_require__(75); + })(); + + (function checkNumberIsNaN() { + if (Number.isNaN) { + return; + } + + Number.isNaN = __w_pdfjs_require__(77); + })(); + + (function checkNumberIsInteger() { + if (Number.isInteger) { + return; + } + + Number.isInteger = __w_pdfjs_require__(79); + })(); + + (function checkPromise() { + if (globalScope.Promise && globalScope.Promise.prototype && globalScope.Promise.prototype["finally"]) { + return; + } + + globalScope.Promise = __w_pdfjs_require__(82); + })(); + + (function checkWeakMap() { + if (globalScope.WeakMap) { + return; + } + + globalScope.WeakMap = __w_pdfjs_require__(102); + })(); + + (function checkWeakSet() { + if (globalScope.WeakSet) { + return; + } + + globalScope.WeakSet = __w_pdfjs_require__(119); + })(); + + (function checkStringCodePointAt() { + if (String.codePointAt) { + return; + } + + String.codePointAt = __w_pdfjs_require__(123); + })(); + + (function checkStringFromCodePoint() { + if (String.fromCodePoint) { + return; + } + + String.fromCodePoint = __w_pdfjs_require__(125); + })(); + + (function checkSymbol() { + if (globalScope.Symbol) { + return; + } + + __w_pdfjs_require__(127); + })(); + + (function checkStringPadStart() { + if (String.prototype.padStart) { + return; + } + + __w_pdfjs_require__(134); + })(); + + (function checkStringPadEnd() { + if (String.prototype.padEnd) { + return; + } + + __w_pdfjs_require__(138); + })(); + + (function checkObjectValues() { + if (Object.values) { + return; + } + + Object.values = __w_pdfjs_require__(140); + })(); +} + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = typeof window !== 'undefined' && window.Math === Math ? window : typeof global !== 'undefined' && global.Math === Math ? global : typeof self !== 'undefined' && self.Math === Math ? self : {}; + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +module.exports = function isNodeJS() { + return (typeof process === "undefined" ? "undefined" : _typeof(process)) === 'object' && process + '' === '[object process]' && !process.versions['nw'] && !process.versions['electron']; +}; + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(6); + +module.exports = __w_pdfjs_require__(9).String.startsWith; + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(7); + +var toLength = __w_pdfjs_require__(28); + +var context = __w_pdfjs_require__(30); + +var STARTS_WITH = 'startsWith'; +var $startsWith = ''[STARTS_WITH]; +$export($export.P + $export.F * __w_pdfjs_require__(35)(STARTS_WITH), 'String', { + startsWith: function startsWith(searchString) { + var that = context(this, searchString, STARTS_WITH); + var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length)); + var search = String(searchString); + return $startsWith ? $startsWith.call(that, search, index) : that.slice(index, index + search.length) === search; + } +}); + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var global = __w_pdfjs_require__(8); + +var core = __w_pdfjs_require__(9); + +var hide = __w_pdfjs_require__(10); + +var redefine = __w_pdfjs_require__(20); + +var ctx = __w_pdfjs_require__(26); + +var PROTOTYPE = 'prototype'; + +var $export = function $export(type, name, source) { + var IS_FORCED = type & $export.F; + var IS_GLOBAL = type & $export.G; + var IS_STATIC = type & $export.S; + var IS_PROTO = type & $export.P; + var IS_BIND = type & $export.B; + var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]; + var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); + var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}); + var key, own, out, exp; + if (IS_GLOBAL) source = name; + + for (key in source) { + own = !IS_FORCED && target && target[key] !== undefined; + out = (own ? target : source)[key]; + exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; + if (target) redefine(target, key, out, type & $export.U); + if (exports[key] != out) hide(exports, key, exp); + if (IS_PROTO && expProto[key] != out) expProto[key] = out; + } +}; + +global.core = core; +$export.F = 1; +$export.G = 2; +$export.S = 4; +$export.P = 8; +$export.B = 16; +$export.W = 32; +$export.U = 64; +$export.R = 128; +module.exports = $export; + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); +if (typeof __g == 'number') __g = global; + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var core = module.exports = { + version: '2.6.9' +}; +if (typeof __e == 'number') __e = core; + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var dP = __w_pdfjs_require__(11); + +var createDesc = __w_pdfjs_require__(19); + +module.exports = __w_pdfjs_require__(15) ? function (object, key, value) { + return dP.f(object, key, createDesc(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; +}; + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var anObject = __w_pdfjs_require__(12); + +var IE8_DOM_DEFINE = __w_pdfjs_require__(14); + +var toPrimitive = __w_pdfjs_require__(18); + +var dP = Object.defineProperty; +exports.f = __w_pdfjs_require__(15) ? Object.defineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPrimitive(P, true); + anObject(Attributes); + if (IE8_DOM_DEFINE) try { + return dP(O, P, Attributes); + } catch (e) {} + if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; +}; + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isObject = __w_pdfjs_require__(13); + +module.exports = function (it) { + if (!isObject(it)) throw TypeError(it + ' is not an object!'); + return it; +}; + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +module.exports = function (it) { + return _typeof(it) === 'object' ? it !== null : typeof it === 'function'; +}; + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = !__w_pdfjs_require__(15) && !__w_pdfjs_require__(16)(function () { + return Object.defineProperty(__w_pdfjs_require__(17)('div'), 'a', { + get: function get() { + return 7; + } + }).a != 7; +}); + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = !__w_pdfjs_require__(16)(function () { + return Object.defineProperty({}, 'a', { + get: function get() { + return 7; + } + }).a != 7; +}); + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = function (exec) { + try { + return !!exec(); + } catch (e) { + return true; + } +}; + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isObject = __w_pdfjs_require__(13); + +var document = __w_pdfjs_require__(8).document; + +var is = isObject(document) && isObject(document.createElement); + +module.exports = function (it) { + return is ? document.createElement(it) : {}; +}; + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isObject = __w_pdfjs_require__(13); + +module.exports = function (it, S) { + if (!isObject(it)) return it; + var fn, val; + if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; + if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; + if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; + throw TypeError("Can't convert object to primitive value"); +}; + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var global = __w_pdfjs_require__(8); + +var hide = __w_pdfjs_require__(10); + +var has = __w_pdfjs_require__(21); + +var SRC = __w_pdfjs_require__(22)('src'); + +var $toString = __w_pdfjs_require__(23); + +var TO_STRING = 'toString'; +var TPL = ('' + $toString).split(TO_STRING); + +__w_pdfjs_require__(9).inspectSource = function (it) { + return $toString.call(it); +}; + +(module.exports = function (O, key, val, safe) { + var isFunction = typeof val == 'function'; + if (isFunction) has(val, 'name') || hide(val, 'name', key); + if (O[key] === val) return; + if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); + + if (O === global) { + O[key] = val; + } else if (!safe) { + delete O[key]; + hide(O, key, val); + } else if (O[key]) { + O[key] = val; + } else { + hide(O, key, val); + } +})(Function.prototype, TO_STRING, function toString() { + return typeof this == 'function' && this[SRC] || $toString.call(this); +}); + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var hasOwnProperty = {}.hasOwnProperty; + +module.exports = function (it, key) { + return hasOwnProperty.call(it, key); +}; + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var id = 0; +var px = Math.random(); + +module.exports = function (key) { + return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); +}; + +/***/ }), +/* 23 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = __w_pdfjs_require__(24)('native-function-to-string', Function.toString); + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var core = __w_pdfjs_require__(9); + +var global = __w_pdfjs_require__(8); + +var SHARED = '__core-js_shared__'; +var store = global[SHARED] || (global[SHARED] = {}); +(module.exports = function (key, value) { + return store[key] || (store[key] = value !== undefined ? value : {}); +})('versions', []).push({ + version: core.version, + mode: __w_pdfjs_require__(25) ? 'pure' : 'global', + copyright: '© 2019 Denis Pushkarev (zloirock.ru)' +}); + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = false; + +/***/ }), +/* 26 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var aFunction = __w_pdfjs_require__(27); + +module.exports = function (fn, that, length) { + aFunction(fn); + if (that === undefined) return fn; + + switch (length) { + case 1: + return function (a) { + return fn.call(that, a); + }; + + case 2: + return function (a, b) { + return fn.call(that, a, b); + }; + + case 3: + return function (a, b, c) { + return fn.call(that, a, b, c); + }; + } + + return function () { + return fn.apply(that, arguments); + }; +}; + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = function (it) { + if (typeof it != 'function') throw TypeError(it + ' is not a function!'); + return it; +}; + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var toInteger = __w_pdfjs_require__(29); + +var min = Math.min; + +module.exports = function (it) { + return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; +}; + +/***/ }), +/* 29 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var ceil = Math.ceil; +var floor = Math.floor; + +module.exports = function (it) { + return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); +}; + +/***/ }), +/* 30 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isRegExp = __w_pdfjs_require__(31); + +var defined = __w_pdfjs_require__(34); + +module.exports = function (that, searchString, NAME) { + if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!"); + return String(defined(that)); +}; + +/***/ }), +/* 31 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isObject = __w_pdfjs_require__(13); + +var cof = __w_pdfjs_require__(32); + +var MATCH = __w_pdfjs_require__(33)('match'); + +module.exports = function (it) { + var isRegExp; + return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp'); +}; + +/***/ }), +/* 32 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var toString = {}.toString; + +module.exports = function (it) { + return toString.call(it).slice(8, -1); +}; + +/***/ }), +/* 33 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var store = __w_pdfjs_require__(24)('wks'); + +var uid = __w_pdfjs_require__(22); + +var _Symbol = __w_pdfjs_require__(8).Symbol; + +var USE_SYMBOL = typeof _Symbol == 'function'; + +var $exports = module.exports = function (name) { + return store[name] || (store[name] = USE_SYMBOL && _Symbol[name] || (USE_SYMBOL ? _Symbol : uid)('Symbol.' + name)); +}; + +$exports.store = store; + +/***/ }), +/* 34 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = function (it) { + if (it == undefined) throw TypeError("Can't call method on " + it); + return it; +}; + +/***/ }), +/* 35 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var MATCH = __w_pdfjs_require__(33)('match'); + +module.exports = function (KEY) { + var re = /./; + + try { + '/./'[KEY](re); + } catch (e) { + try { + re[MATCH] = false; + return !'/./'[KEY](re); + } catch (f) {} + } + + return true; +}; + +/***/ }), +/* 36 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(37); + +module.exports = __w_pdfjs_require__(9).String.endsWith; + +/***/ }), +/* 37 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(7); + +var toLength = __w_pdfjs_require__(28); + +var context = __w_pdfjs_require__(30); + +var ENDS_WITH = 'endsWith'; +var $endsWith = ''[ENDS_WITH]; +$export($export.P + $export.F * __w_pdfjs_require__(35)(ENDS_WITH), 'String', { + endsWith: function endsWith(searchString) { + var that = context(this, searchString, ENDS_WITH); + var endPosition = arguments.length > 1 ? arguments[1] : undefined; + var len = toLength(that.length); + var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len); + var search = String(searchString); + return $endsWith ? $endsWith.call(that, search, end) : that.slice(end - search.length, end) === search; + } +}); + +/***/ }), +/* 38 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(39); + +module.exports = __w_pdfjs_require__(9).String.includes; + +/***/ }), +/* 39 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(7); + +var context = __w_pdfjs_require__(30); + +var INCLUDES = 'includes'; +$export($export.P + $export.F * __w_pdfjs_require__(35)(INCLUDES), 'String', { + includes: function includes(searchString) { + return !!~context(this, searchString, INCLUDES).indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +/***/ }), +/* 40 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(41); + +module.exports = __w_pdfjs_require__(9).Array.includes; + +/***/ }), +/* 41 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(7); + +var $includes = __w_pdfjs_require__(42)(true); + +$export($export.P, 'Array', { + includes: function includes(el) { + return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +__w_pdfjs_require__(46)('includes'); + +/***/ }), +/* 42 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var toIObject = __w_pdfjs_require__(43); + +var toLength = __w_pdfjs_require__(28); + +var toAbsoluteIndex = __w_pdfjs_require__(45); + +module.exports = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIObject($this); + var length = toLength(O.length); + var index = toAbsoluteIndex(fromIndex, length); + var value; + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + if (value != value) return true; + } else for (; length > index; index++) { + if (IS_INCLUDES || index in O) { + if (O[index] === el) return IS_INCLUDES || index || 0; + } + } + return !IS_INCLUDES && -1; + }; +}; + +/***/ }), +/* 43 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var IObject = __w_pdfjs_require__(44); + +var defined = __w_pdfjs_require__(34); + +module.exports = function (it) { + return IObject(defined(it)); +}; + +/***/ }), +/* 44 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var cof = __w_pdfjs_require__(32); + +module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { + return cof(it) == 'String' ? it.split('') : Object(it); +}; + +/***/ }), +/* 45 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var toInteger = __w_pdfjs_require__(29); + +var max = Math.max; +var min = Math.min; + +module.exports = function (index, length) { + index = toInteger(index); + return index < 0 ? max(index + length, 0) : min(index, length); +}; + +/***/ }), +/* 46 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var UNSCOPABLES = __w_pdfjs_require__(33)('unscopables'); + +var ArrayProto = Array.prototype; +if (ArrayProto[UNSCOPABLES] == undefined) __w_pdfjs_require__(10)(ArrayProto, UNSCOPABLES, {}); + +module.exports = function (key) { + ArrayProto[UNSCOPABLES][key] = true; +}; + +/***/ }), +/* 47 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(48); + +__w_pdfjs_require__(63); + +module.exports = __w_pdfjs_require__(9).Array.from; + +/***/ }), +/* 48 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $at = __w_pdfjs_require__(49)(true); + +__w_pdfjs_require__(50)(String, 'String', function (iterated) { + this._t = String(iterated); + this._i = 0; +}, function () { + var O = this._t; + var index = this._i; + var point; + if (index >= O.length) return { + value: undefined, + done: true + }; + point = $at(O, index); + this._i += point.length; + return { + value: point, + done: false + }; +}); + +/***/ }), +/* 49 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var toInteger = __w_pdfjs_require__(29); + +var defined = __w_pdfjs_require__(34); + +module.exports = function (TO_STRING) { + return function (that, pos) { + var s = String(defined(that)); + var i = toInteger(pos); + var l = s.length; + var a, b; + if (i < 0 || i >= l) return TO_STRING ? '' : undefined; + a = s.charCodeAt(i); + return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; + }; +}; + +/***/ }), +/* 50 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var LIBRARY = __w_pdfjs_require__(25); + +var $export = __w_pdfjs_require__(7); + +var redefine = __w_pdfjs_require__(20); + +var hide = __w_pdfjs_require__(10); + +var Iterators = __w_pdfjs_require__(51); + +var $iterCreate = __w_pdfjs_require__(52); + +var setToStringTag = __w_pdfjs_require__(60); + +var getPrototypeOf = __w_pdfjs_require__(61); + +var ITERATOR = __w_pdfjs_require__(33)('iterator'); + +var BUGGY = !([].keys && 'next' in [].keys()); +var FF_ITERATOR = '@@iterator'; +var KEYS = 'keys'; +var VALUES = 'values'; + +var returnThis = function returnThis() { + return this; +}; + +module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { + $iterCreate(Constructor, NAME, next); + + var getMethod = function getMethod(kind) { + if (!BUGGY && kind in proto) return proto[kind]; + + switch (kind) { + case KEYS: + return function keys() { + return new Constructor(this, kind); + }; + + case VALUES: + return function values() { + return new Constructor(this, kind); + }; + } + + return function entries() { + return new Constructor(this, kind); + }; + }; + + var TAG = NAME + ' Iterator'; + var DEF_VALUES = DEFAULT == VALUES; + var VALUES_BUG = false; + var proto = Base.prototype; + var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; + var $default = $native || getMethod(DEFAULT); + var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; + var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; + var methods, key, IteratorPrototype; + + if ($anyNative) { + IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); + + if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { + setToStringTag(IteratorPrototype, TAG, true); + if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); + } + } + + if (DEF_VALUES && $native && $native.name !== VALUES) { + VALUES_BUG = true; + + $default = function values() { + return $native.call(this); + }; + } + + if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { + hide(proto, ITERATOR, $default); + } + + Iterators[NAME] = $default; + Iterators[TAG] = returnThis; + + if (DEFAULT) { + methods = { + values: DEF_VALUES ? $default : getMethod(VALUES), + keys: IS_SET ? $default : getMethod(KEYS), + entries: $entries + }; + if (FORCED) for (key in methods) { + if (!(key in proto)) redefine(proto, key, methods[key]); + } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); + } + + return methods; +}; + +/***/ }), +/* 51 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = {}; + +/***/ }), +/* 52 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var create = __w_pdfjs_require__(53); + +var descriptor = __w_pdfjs_require__(19); + +var setToStringTag = __w_pdfjs_require__(60); + +var IteratorPrototype = {}; + +__w_pdfjs_require__(10)(IteratorPrototype, __w_pdfjs_require__(33)('iterator'), function () { + return this; +}); + +module.exports = function (Constructor, NAME, next) { + Constructor.prototype = create(IteratorPrototype, { + next: descriptor(1, next) + }); + setToStringTag(Constructor, NAME + ' Iterator'); +}; + +/***/ }), +/* 53 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var anObject = __w_pdfjs_require__(12); + +var dPs = __w_pdfjs_require__(54); + +var enumBugKeys = __w_pdfjs_require__(58); + +var IE_PROTO = __w_pdfjs_require__(57)('IE_PROTO'); + +var Empty = function Empty() {}; + +var PROTOTYPE = 'prototype'; + +var _createDict = function createDict() { + var iframe = __w_pdfjs_require__(17)('iframe'); + + var i = enumBugKeys.length; + var lt = '<'; + var gt = '>'; + var iframeDocument; + iframe.style.display = 'none'; + + __w_pdfjs_require__(59).appendChild(iframe); + + iframe.src = 'javascript:'; + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); + iframeDocument.close(); + _createDict = iframeDocument.F; + + while (i--) { + delete _createDict[PROTOTYPE][enumBugKeys[i]]; + } + + return _createDict(); +}; + +module.exports = Object.create || function create(O, Properties) { + var result; + + if (O !== null) { + Empty[PROTOTYPE] = anObject(O); + result = new Empty(); + Empty[PROTOTYPE] = null; + result[IE_PROTO] = O; + } else result = _createDict(); + + return Properties === undefined ? result : dPs(result, Properties); +}; + +/***/ }), +/* 54 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var dP = __w_pdfjs_require__(11); + +var anObject = __w_pdfjs_require__(12); + +var getKeys = __w_pdfjs_require__(55); + +module.exports = __w_pdfjs_require__(15) ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var keys = getKeys(Properties); + var length = keys.length; + var i = 0; + var P; + + while (length > i) { + dP.f(O, P = keys[i++], Properties[P]); + } + + return O; +}; + +/***/ }), +/* 55 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $keys = __w_pdfjs_require__(56); + +var enumBugKeys = __w_pdfjs_require__(58); + +module.exports = Object.keys || function keys(O) { + return $keys(O, enumBugKeys); +}; + +/***/ }), +/* 56 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var has = __w_pdfjs_require__(21); + +var toIObject = __w_pdfjs_require__(43); + +var arrayIndexOf = __w_pdfjs_require__(42)(false); + +var IE_PROTO = __w_pdfjs_require__(57)('IE_PROTO'); + +module.exports = function (object, names) { + var O = toIObject(object); + var i = 0; + var result = []; + var key; + + for (key in O) { + if (key != IE_PROTO) has(O, key) && result.push(key); + } + + while (names.length > i) { + if (has(O, key = names[i++])) { + ~arrayIndexOf(result, key) || result.push(key); + } + } + + return result; +}; + +/***/ }), +/* 57 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var shared = __w_pdfjs_require__(24)('keys'); + +var uid = __w_pdfjs_require__(22); + +module.exports = function (key) { + return shared[key] || (shared[key] = uid(key)); +}; + +/***/ }), +/* 58 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(','); + +/***/ }), +/* 59 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var document = __w_pdfjs_require__(8).document; + +module.exports = document && document.documentElement; + +/***/ }), +/* 60 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var def = __w_pdfjs_require__(11).f; + +var has = __w_pdfjs_require__(21); + +var TAG = __w_pdfjs_require__(33)('toStringTag'); + +module.exports = function (it, tag, stat) { + if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { + configurable: true, + value: tag + }); +}; + +/***/ }), +/* 61 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var has = __w_pdfjs_require__(21); + +var toObject = __w_pdfjs_require__(62); + +var IE_PROTO = __w_pdfjs_require__(57)('IE_PROTO'); + +var ObjectProto = Object.prototype; + +module.exports = Object.getPrototypeOf || function (O) { + O = toObject(O); + if (has(O, IE_PROTO)) return O[IE_PROTO]; + + if (typeof O.constructor == 'function' && O instanceof O.constructor) { + return O.constructor.prototype; + } + + return O instanceof Object ? ObjectProto : null; +}; + +/***/ }), +/* 62 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var defined = __w_pdfjs_require__(34); + +module.exports = function (it) { + return Object(defined(it)); +}; + +/***/ }), +/* 63 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var ctx = __w_pdfjs_require__(26); + +var $export = __w_pdfjs_require__(7); + +var toObject = __w_pdfjs_require__(62); + +var call = __w_pdfjs_require__(64); + +var isArrayIter = __w_pdfjs_require__(65); + +var toLength = __w_pdfjs_require__(28); + +var createProperty = __w_pdfjs_require__(66); + +var getIterFn = __w_pdfjs_require__(67); + +$export($export.S + $export.F * !__w_pdfjs_require__(69)(function (iter) { + Array.from(iter); +}), 'Array', { + from: function from(arrayLike) { + var O = toObject(arrayLike); + var C = typeof this == 'function' ? this : Array; + var aLen = arguments.length; + var mapfn = aLen > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + var index = 0; + var iterFn = getIterFn(O); + var length, result, step, iterator; + if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2); + + if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) { + for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) { + createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value); + } + } else { + length = toLength(O.length); + + for (result = new C(length); length > index; index++) { + createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]); + } + } + + result.length = index; + return result; + } +}); + +/***/ }), +/* 64 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var anObject = __w_pdfjs_require__(12); + +module.exports = function (iterator, fn, value, entries) { + try { + return entries ? fn(anObject(value)[0], value[1]) : fn(value); + } catch (e) { + var ret = iterator['return']; + if (ret !== undefined) anObject(ret.call(iterator)); + throw e; + } +}; + +/***/ }), +/* 65 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var Iterators = __w_pdfjs_require__(51); + +var ITERATOR = __w_pdfjs_require__(33)('iterator'); + +var ArrayProto = Array.prototype; + +module.exports = function (it) { + return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); +}; + +/***/ }), +/* 66 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $defineProperty = __w_pdfjs_require__(11); + +var createDesc = __w_pdfjs_require__(19); + +module.exports = function (object, index, value) { + if (index in object) $defineProperty.f(object, index, createDesc(0, value));else object[index] = value; +}; + +/***/ }), +/* 67 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var classof = __w_pdfjs_require__(68); + +var ITERATOR = __w_pdfjs_require__(33)('iterator'); + +var Iterators = __w_pdfjs_require__(51); + +module.exports = __w_pdfjs_require__(9).getIteratorMethod = function (it) { + if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)]; +}; + +/***/ }), +/* 68 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var cof = __w_pdfjs_require__(32); + +var TAG = __w_pdfjs_require__(33)('toStringTag'); + +var ARG = cof(function () { + return arguments; +}()) == 'Arguments'; + +var tryGet = function tryGet(it, key) { + try { + return it[key]; + } catch (e) {} +}; + +module.exports = function (it) { + var O, T, B; + return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T : ARG ? cof(O) : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; +}; + +/***/ }), +/* 69 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var ITERATOR = __w_pdfjs_require__(33)('iterator'); + +var SAFE_CLOSING = false; + +try { + var riter = [7][ITERATOR](); + + riter['return'] = function () { + SAFE_CLOSING = true; + }; + + Array.from(riter, function () { + throw 2; + }); +} catch (e) {} + +module.exports = function (exec, skipClosing) { + if (!skipClosing && !SAFE_CLOSING) return false; + var safe = false; + + try { + var arr = [7]; + var iter = arr[ITERATOR](); + + iter.next = function () { + return { + done: safe = true + }; + }; + + arr[ITERATOR] = function () { + return iter; + }; + + exec(arr); + } catch (e) {} + + return safe; +}; + +/***/ }), +/* 70 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(71); + +module.exports = __w_pdfjs_require__(9).Object.assign; + +/***/ }), +/* 71 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(7); + +$export($export.S + $export.F, 'Object', { + assign: __w_pdfjs_require__(72) +}); + +/***/ }), +/* 72 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var DESCRIPTORS = __w_pdfjs_require__(15); + +var getKeys = __w_pdfjs_require__(55); + +var gOPS = __w_pdfjs_require__(73); + +var pIE = __w_pdfjs_require__(74); + +var toObject = __w_pdfjs_require__(62); + +var IObject = __w_pdfjs_require__(44); + +var $assign = Object.assign; +module.exports = !$assign || __w_pdfjs_require__(16)(function () { + var A = {}; + var B = {}; + var S = Symbol(); + var K = 'abcdefghijklmnopqrst'; + A[S] = 7; + K.split('').forEach(function (k) { + B[k] = k; + }); + return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; +}) ? function assign(target, source) { + var T = toObject(target); + var aLen = arguments.length; + var index = 1; + var getSymbols = gOPS.f; + var isEnum = pIE.f; + + while (aLen > index) { + var S = IObject(arguments[index++]); + var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); + var length = keys.length; + var j = 0; + var key; + + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key]; + } + } + + return T; +} : $assign; + +/***/ }), +/* 73 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +exports.f = Object.getOwnPropertySymbols; + +/***/ }), +/* 74 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +exports.f = {}.propertyIsEnumerable; + +/***/ }), +/* 75 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(76); + +module.exports = __w_pdfjs_require__(9).Math.log2; + +/***/ }), +/* 76 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(7); + +$export($export.S, 'Math', { + log2: function log2(x) { + return Math.log(x) / Math.LN2; + } +}); + +/***/ }), +/* 77 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(78); + +module.exports = __w_pdfjs_require__(9).Number.isNaN; + +/***/ }), +/* 78 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(7); + +$export($export.S, 'Number', { + isNaN: function isNaN(number) { + return number != number; + } +}); + +/***/ }), +/* 79 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(80); + +module.exports = __w_pdfjs_require__(9).Number.isInteger; + +/***/ }), +/* 80 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(7); + +$export($export.S, 'Number', { + isInteger: __w_pdfjs_require__(81) +}); + +/***/ }), +/* 81 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isObject = __w_pdfjs_require__(13); + +var floor = Math.floor; + +module.exports = function isInteger(it) { + return !isObject(it) && isFinite(it) && floor(it) === it; +}; + +/***/ }), +/* 82 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(83); + +__w_pdfjs_require__(48); + +__w_pdfjs_require__(84); + +__w_pdfjs_require__(87); + +__w_pdfjs_require__(100); + +__w_pdfjs_require__(101); + +module.exports = __w_pdfjs_require__(9).Promise; + +/***/ }), +/* 83 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var classof = __w_pdfjs_require__(68); + +var test = {}; +test[__w_pdfjs_require__(33)('toStringTag')] = 'z'; + +if (test + '' != '[object z]') { + __w_pdfjs_require__(20)(Object.prototype, 'toString', function toString() { + return '[object ' + classof(this) + ']'; + }, true); +} + +/***/ }), +/* 84 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $iterators = __w_pdfjs_require__(85); + +var getKeys = __w_pdfjs_require__(55); + +var redefine = __w_pdfjs_require__(20); + +var global = __w_pdfjs_require__(8); + +var hide = __w_pdfjs_require__(10); + +var Iterators = __w_pdfjs_require__(51); + +var wks = __w_pdfjs_require__(33); + +var ITERATOR = wks('iterator'); +var TO_STRING_TAG = wks('toStringTag'); +var ArrayValues = Iterators.Array; +var DOMIterables = { + CSSRuleList: true, + CSSStyleDeclaration: false, + CSSValueList: false, + ClientRectList: false, + DOMRectList: false, + DOMStringList: false, + DOMTokenList: true, + DataTransferItemList: false, + FileList: false, + HTMLAllCollection: false, + HTMLCollection: false, + HTMLFormElement: false, + HTMLSelectElement: false, + MediaList: true, + MimeTypeArray: false, + NamedNodeMap: false, + NodeList: true, + PaintRequestList: false, + Plugin: false, + PluginArray: false, + SVGLengthList: false, + SVGNumberList: false, + SVGPathSegList: false, + SVGPointList: false, + SVGStringList: false, + SVGTransformList: false, + SourceBufferList: false, + StyleSheetList: true, + TextTrackCueList: false, + TextTrackList: false, + TouchList: false +}; + +for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) { + var NAME = collections[i]; + var explicit = DOMIterables[NAME]; + var Collection = global[NAME]; + var proto = Collection && Collection.prototype; + var key; + + if (proto) { + if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues); + if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); + Iterators[NAME] = ArrayValues; + if (explicit) for (key in $iterators) { + if (!proto[key]) redefine(proto, key, $iterators[key], true); + } + } +} + +/***/ }), +/* 85 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var addToUnscopables = __w_pdfjs_require__(46); + +var step = __w_pdfjs_require__(86); + +var Iterators = __w_pdfjs_require__(51); + +var toIObject = __w_pdfjs_require__(43); + +module.exports = __w_pdfjs_require__(50)(Array, 'Array', function (iterated, kind) { + this._t = toIObject(iterated); + this._i = 0; + this._k = kind; +}, function () { + var O = this._t; + var kind = this._k; + var index = this._i++; + + if (!O || index >= O.length) { + this._t = undefined; + return step(1); + } + + if (kind == 'keys') return step(0, index); + if (kind == 'values') return step(0, O[index]); + return step(0, [index, O[index]]); +}, 'values'); +Iterators.Arguments = Iterators.Array; +addToUnscopables('keys'); +addToUnscopables('values'); +addToUnscopables('entries'); + +/***/ }), +/* 86 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = function (done, value) { + return { + value: value, + done: !!done + }; +}; + +/***/ }), +/* 87 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var LIBRARY = __w_pdfjs_require__(25); + +var global = __w_pdfjs_require__(8); + +var ctx = __w_pdfjs_require__(26); + +var classof = __w_pdfjs_require__(68); + +var $export = __w_pdfjs_require__(7); + +var isObject = __w_pdfjs_require__(13); + +var aFunction = __w_pdfjs_require__(27); + +var anInstance = __w_pdfjs_require__(88); + +var forOf = __w_pdfjs_require__(89); + +var speciesConstructor = __w_pdfjs_require__(90); + +var task = __w_pdfjs_require__(91).set; + +var microtask = __w_pdfjs_require__(93)(); + +var newPromiseCapabilityModule = __w_pdfjs_require__(94); + +var perform = __w_pdfjs_require__(95); + +var userAgent = __w_pdfjs_require__(96); + +var promiseResolve = __w_pdfjs_require__(97); + +var PROMISE = 'Promise'; +var TypeError = global.TypeError; +var process = global.process; +var versions = process && process.versions; +var v8 = versions && versions.v8 || ''; +var $Promise = global[PROMISE]; +var isNode = classof(process) == 'process'; + +var empty = function empty() {}; + +var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper; +var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f; +var USE_NATIVE = !!function () { + try { + var promise = $Promise.resolve(1); + + var FakePromise = (promise.constructor = {})[__w_pdfjs_require__(33)('species')] = function (exec) { + exec(empty, empty); + }; + + return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise && v8.indexOf('6.6') !== 0 && userAgent.indexOf('Chrome/66') === -1; + } catch (e) {} +}(); + +var isThenable = function isThenable(it) { + var then; + return isObject(it) && typeof (then = it.then) == 'function' ? then : false; +}; + +var notify = function notify(promise, isReject) { + if (promise._n) return; + promise._n = true; + var chain = promise._c; + microtask(function () { + var value = promise._v; + var ok = promise._s == 1; + var i = 0; + + var run = function run(reaction) { + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then, exited; + + try { + if (handler) { + if (!ok) { + if (promise._h == 2) onHandleUnhandled(promise); + promise._h = 1; + } + + if (handler === true) result = value;else { + if (domain) domain.enter(); + result = handler(value); + + if (domain) { + domain.exit(); + exited = true; + } + } + + if (result === reaction.promise) { + reject(TypeError('Promise-chain cycle')); + } else if (then = isThenable(result)) { + then.call(result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (e) { + if (domain && !exited) domain.exit(); + reject(e); + } + }; + + while (chain.length > i) { + run(chain[i++]); + } + + promise._c = []; + promise._n = false; + if (isReject && !promise._h) onUnhandled(promise); + }); +}; + +var onUnhandled = function onUnhandled(promise) { + task.call(global, function () { + var value = promise._v; + var unhandled = isUnhandled(promise); + var result, handler, console; + + if (unhandled) { + result = perform(function () { + if (isNode) { + process.emit('unhandledRejection', value, promise); + } else if (handler = global.onunhandledrejection) { + handler({ + promise: promise, + reason: value + }); + } else if ((console = global.console) && console.error) { + console.error('Unhandled promise rejection', value); + } + }); + promise._h = isNode || isUnhandled(promise) ? 2 : 1; + } + + promise._a = undefined; + if (unhandled && result.e) throw result.v; + }); +}; + +var isUnhandled = function isUnhandled(promise) { + return promise._h !== 1 && (promise._a || promise._c).length === 0; +}; + +var onHandleUnhandled = function onHandleUnhandled(promise) { + task.call(global, function () { + var handler; + + if (isNode) { + process.emit('rejectionHandled', promise); + } else if (handler = global.onrejectionhandled) { + handler({ + promise: promise, + reason: promise._v + }); + } + }); +}; + +var $reject = function $reject(value) { + var promise = this; + if (promise._d) return; + promise._d = true; + promise = promise._w || promise; + promise._v = value; + promise._s = 2; + if (!promise._a) promise._a = promise._c.slice(); + notify(promise, true); +}; + +var $resolve = function $resolve(value) { + var promise = this; + var then; + if (promise._d) return; + promise._d = true; + promise = promise._w || promise; + + try { + if (promise === value) throw TypeError("Promise can't be resolved itself"); + + if (then = isThenable(value)) { + microtask(function () { + var wrapper = { + _w: promise, + _d: false + }; + + try { + then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); + } catch (e) { + $reject.call(wrapper, e); + } + }); + } else { + promise._v = value; + promise._s = 1; + notify(promise, false); + } + } catch (e) { + $reject.call({ + _w: promise, + _d: false + }, e); + } +}; + +if (!USE_NATIVE) { + $Promise = function Promise(executor) { + anInstance(this, $Promise, PROMISE, '_h'); + aFunction(executor); + Internal.call(this); + + try { + executor(ctx($resolve, this, 1), ctx($reject, this, 1)); + } catch (err) { + $reject.call(this, err); + } + }; + + Internal = function Promise(executor) { + this._c = []; + this._a = undefined; + this._s = 0; + this._d = false; + this._v = undefined; + this._h = 0; + this._n = false; + }; + + Internal.prototype = __w_pdfjs_require__(98)($Promise.prototype, { + then: function then(onFulfilled, onRejected) { + var reaction = newPromiseCapability(speciesConstructor(this, $Promise)); + reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; + reaction.fail = typeof onRejected == 'function' && onRejected; + reaction.domain = isNode ? process.domain : undefined; + + this._c.push(reaction); + + if (this._a) this._a.push(reaction); + if (this._s) notify(this, false); + return reaction.promise; + }, + 'catch': function _catch(onRejected) { + return this.then(undefined, onRejected); + } + }); + + OwnPromiseCapability = function OwnPromiseCapability() { + var promise = new Internal(); + this.promise = promise; + this.resolve = ctx($resolve, promise, 1); + this.reject = ctx($reject, promise, 1); + }; + + newPromiseCapabilityModule.f = newPromiseCapability = function newPromiseCapability(C) { + return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C); + }; +} + +$export($export.G + $export.W + $export.F * !USE_NATIVE, { + Promise: $Promise +}); + +__w_pdfjs_require__(60)($Promise, PROMISE); + +__w_pdfjs_require__(99)(PROMISE); + +Wrapper = __w_pdfjs_require__(9)[PROMISE]; +$export($export.S + $export.F * !USE_NATIVE, PROMISE, { + reject: function reject(r) { + var capability = newPromiseCapability(this); + var $$reject = capability.reject; + $$reject(r); + return capability.promise; + } +}); +$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, { + resolve: function resolve(x) { + return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x); + } +}); +$export($export.S + $export.F * !(USE_NATIVE && __w_pdfjs_require__(69)(function (iter) { + $Promise.all(iter)['catch'](empty); +})), PROMISE, { + all: function all(iterable) { + var C = this; + var capability = newPromiseCapability(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var values = []; + var index = 0; + var remaining = 1; + forOf(iterable, false, function (promise) { + var $index = index++; + var alreadyCalled = false; + values.push(undefined); + remaining++; + C.resolve(promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[$index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.e) reject(result.v); + return capability.promise; + }, + race: function race(iterable) { + var C = this; + var capability = newPromiseCapability(C); + var reject = capability.reject; + var result = perform(function () { + forOf(iterable, false, function (promise) { + C.resolve(promise).then(capability.resolve, reject); + }); + }); + if (result.e) reject(result.v); + return capability.promise; + } +}); + +/***/ }), +/* 88 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = function (it, Constructor, name, forbiddenField) { + if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) { + throw TypeError(name + ': incorrect invocation!'); + } + + return it; +}; + +/***/ }), +/* 89 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var ctx = __w_pdfjs_require__(26); + +var call = __w_pdfjs_require__(64); + +var isArrayIter = __w_pdfjs_require__(65); + +var anObject = __w_pdfjs_require__(12); + +var toLength = __w_pdfjs_require__(28); + +var getIterFn = __w_pdfjs_require__(67); + +var BREAK = {}; +var RETURN = {}; + +var _exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { + var iterFn = ITERATOR ? function () { + return iterable; + } : getIterFn(iterable); + var f = ctx(fn, that, entries ? 2 : 1); + var index = 0; + var length, step, iterator, result; + if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); + if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { + result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); + if (result === BREAK || result === RETURN) return result; + } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { + result = call(iterator, f, step.value, entries); + if (result === BREAK || result === RETURN) return result; + } +}; + +_exports.BREAK = BREAK; +_exports.RETURN = RETURN; + +/***/ }), +/* 90 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var anObject = __w_pdfjs_require__(12); + +var aFunction = __w_pdfjs_require__(27); + +var SPECIES = __w_pdfjs_require__(33)('species'); + +module.exports = function (O, D) { + var C = anObject(O).constructor; + var S; + return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); +}; + +/***/ }), +/* 91 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var ctx = __w_pdfjs_require__(26); + +var invoke = __w_pdfjs_require__(92); + +var html = __w_pdfjs_require__(59); + +var cel = __w_pdfjs_require__(17); + +var global = __w_pdfjs_require__(8); + +var process = global.process; +var setTask = global.setImmediate; +var clearTask = global.clearImmediate; +var MessageChannel = global.MessageChannel; +var Dispatch = global.Dispatch; +var counter = 0; +var queue = {}; +var ONREADYSTATECHANGE = 'onreadystatechange'; +var defer, channel, port; + +var run = function run() { + var id = +this; + + if (queue.hasOwnProperty(id)) { + var fn = queue[id]; + delete queue[id]; + fn(); + } +}; + +var listener = function listener(event) { + run.call(event.data); +}; + +if (!setTask || !clearTask) { + setTask = function setImmediate(fn) { + var args = []; + var i = 1; + + while (arguments.length > i) { + args.push(arguments[i++]); + } + + queue[++counter] = function () { + invoke(typeof fn == 'function' ? fn : Function(fn), args); + }; + + defer(counter); + return counter; + }; + + clearTask = function clearImmediate(id) { + delete queue[id]; + }; + + if (__w_pdfjs_require__(32)(process) == 'process') { + defer = function defer(id) { + process.nextTick(ctx(run, id, 1)); + }; + } else if (Dispatch && Dispatch.now) { + defer = function defer(id) { + Dispatch.now(ctx(run, id, 1)); + }; + } else if (MessageChannel) { + channel = new MessageChannel(); + port = channel.port2; + channel.port1.onmessage = listener; + defer = ctx(port.postMessage, port, 1); + } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) { + defer = function defer(id) { + global.postMessage(id + '', '*'); + }; + + global.addEventListener('message', listener, false); + } else if (ONREADYSTATECHANGE in cel('script')) { + defer = function defer(id) { + html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () { + html.removeChild(this); + run.call(id); + }; + }; + } else { + defer = function defer(id) { + setTimeout(ctx(run, id, 1), 0); + }; + } +} + +module.exports = { + set: setTask, + clear: clearTask +}; + +/***/ }), +/* 92 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = function (fn, args, that) { + var un = that === undefined; + + switch (args.length) { + case 0: + return un ? fn() : fn.call(that); + + case 1: + return un ? fn(args[0]) : fn.call(that, args[0]); + + case 2: + return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]); + + case 3: + return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]); + + case 4: + return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]); + } + + return fn.apply(that, args); +}; + +/***/ }), +/* 93 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var global = __w_pdfjs_require__(8); + +var macrotask = __w_pdfjs_require__(91).set; + +var Observer = global.MutationObserver || global.WebKitMutationObserver; +var process = global.process; +var Promise = global.Promise; +var isNode = __w_pdfjs_require__(32)(process) == 'process'; + +module.exports = function () { + var head, last, notify; + + var flush = function flush() { + var parent, fn; + if (isNode && (parent = process.domain)) parent.exit(); + + while (head) { + fn = head.fn; + head = head.next; + + try { + fn(); + } catch (e) { + if (head) notify();else last = undefined; + throw e; + } + } + + last = undefined; + if (parent) parent.enter(); + }; + + if (isNode) { + notify = function notify() { + process.nextTick(flush); + }; + } else if (Observer && !(global.navigator && global.navigator.standalone)) { + var toggle = true; + var node = document.createTextNode(''); + new Observer(flush).observe(node, { + characterData: true + }); + + notify = function notify() { + node.data = toggle = !toggle; + }; + } else if (Promise && Promise.resolve) { + var promise = Promise.resolve(undefined); + + notify = function notify() { + promise.then(flush); + }; + } else { + notify = function notify() { + macrotask.call(global, flush); + }; + } + + return function (fn) { + var task = { + fn: fn, + next: undefined + }; + if (last) last.next = task; + + if (!head) { + head = task; + notify(); + } + + last = task; + }; +}; + +/***/ }), +/* 94 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var aFunction = __w_pdfjs_require__(27); + +function PromiseCapability(C) { + var resolve, reject; + this.promise = new C(function ($$resolve, $$reject) { + if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aFunction(resolve); + this.reject = aFunction(reject); +} + +module.exports.f = function (C) { + return new PromiseCapability(C); +}; + +/***/ }), +/* 95 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = function (exec) { + try { + return { + e: false, + v: exec() + }; + } catch (e) { + return { + e: true, + v: e + }; + } +}; + +/***/ }), +/* 96 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var global = __w_pdfjs_require__(8); + +var navigator = global.navigator; +module.exports = navigator && navigator.userAgent || ''; + +/***/ }), +/* 97 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var anObject = __w_pdfjs_require__(12); + +var isObject = __w_pdfjs_require__(13); + +var newPromiseCapability = __w_pdfjs_require__(94); + +module.exports = function (C, x) { + anObject(C); + if (isObject(x) && x.constructor === C) return x; + var promiseCapability = newPromiseCapability.f(C); + var resolve = promiseCapability.resolve; + resolve(x); + return promiseCapability.promise; +}; + +/***/ }), +/* 98 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var redefine = __w_pdfjs_require__(20); + +module.exports = function (target, src, safe) { + for (var key in src) { + redefine(target, key, src[key], safe); + } + + return target; +}; + +/***/ }), +/* 99 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var global = __w_pdfjs_require__(8); + +var dP = __w_pdfjs_require__(11); + +var DESCRIPTORS = __w_pdfjs_require__(15); + +var SPECIES = __w_pdfjs_require__(33)('species'); + +module.exports = function (KEY) { + var C = global[KEY]; + if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { + configurable: true, + get: function get() { + return this; + } + }); +}; + +/***/ }), +/* 100 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(7); + +var core = __w_pdfjs_require__(9); + +var global = __w_pdfjs_require__(8); + +var speciesConstructor = __w_pdfjs_require__(90); + +var promiseResolve = __w_pdfjs_require__(97); + +$export($export.P + $export.R, 'Promise', { + 'finally': function _finally(onFinally) { + var C = speciesConstructor(this, core.Promise || global.Promise); + var isFunction = typeof onFinally == 'function'; + return this.then(isFunction ? function (x) { + return promiseResolve(C, onFinally()).then(function () { + return x; + }); + } : onFinally, isFunction ? function (e) { + return promiseResolve(C, onFinally()).then(function () { + throw e; + }); + } : onFinally); + } +}); + +/***/ }), +/* 101 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(7); + +var newPromiseCapability = __w_pdfjs_require__(94); + +var perform = __w_pdfjs_require__(95); + +$export($export.S, 'Promise', { + 'try': function _try(callbackfn) { + var promiseCapability = newPromiseCapability.f(this); + var result = perform(callbackfn); + (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v); + return promiseCapability.promise; + } +}); + +/***/ }), +/* 102 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(83); + +__w_pdfjs_require__(84); + +__w_pdfjs_require__(103); + +__w_pdfjs_require__(115); + +__w_pdfjs_require__(117); + +module.exports = __w_pdfjs_require__(9).WeakMap; + +/***/ }), +/* 103 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var global = __w_pdfjs_require__(8); + +var each = __w_pdfjs_require__(104)(0); + +var redefine = __w_pdfjs_require__(20); + +var meta = __w_pdfjs_require__(108); + +var assign = __w_pdfjs_require__(72); + +var weak = __w_pdfjs_require__(109); + +var isObject = __w_pdfjs_require__(13); + +var validate = __w_pdfjs_require__(110); + +var NATIVE_WEAK_MAP = __w_pdfjs_require__(110); + +var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global; +var WEAK_MAP = 'WeakMap'; +var getWeak = meta.getWeak; +var isExtensible = Object.isExtensible; +var uncaughtFrozenStore = weak.ufstore; +var InternalMap; + +var wrapper = function wrapper(get) { + return function WeakMap() { + return get(this, arguments.length > 0 ? arguments[0] : undefined); + }; +}; + +var methods = { + get: function get(key) { + if (isObject(key)) { + var data = getWeak(key); + if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key); + return data ? data[this._i] : undefined; + } + }, + set: function set(key, value) { + return weak.def(validate(this, WEAK_MAP), key, value); + } +}; + +var $WeakMap = module.exports = __w_pdfjs_require__(111)(WEAK_MAP, wrapper, methods, weak, true, true); + +if (NATIVE_WEAK_MAP && IS_IE11) { + InternalMap = weak.getConstructor(wrapper, WEAK_MAP); + assign(InternalMap.prototype, methods); + meta.NEED = true; + each(['delete', 'has', 'get', 'set'], function (key) { + var proto = $WeakMap.prototype; + var method = proto[key]; + redefine(proto, key, function (a, b) { + if (isObject(a) && !isExtensible(a)) { + if (!this._f) this._f = new InternalMap(); + + var result = this._f[key](a, b); + + return key == 'set' ? this : result; + } + + return method.call(this, a, b); + }); + }); +} + +/***/ }), +/* 104 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var ctx = __w_pdfjs_require__(26); + +var IObject = __w_pdfjs_require__(44); + +var toObject = __w_pdfjs_require__(62); + +var toLength = __w_pdfjs_require__(28); + +var asc = __w_pdfjs_require__(105); + +module.exports = function (TYPE, $create) { + var IS_MAP = TYPE == 1; + var IS_FILTER = TYPE == 2; + var IS_SOME = TYPE == 3; + var IS_EVERY = TYPE == 4; + var IS_FIND_INDEX = TYPE == 6; + var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; + var create = $create || asc; + return function ($this, callbackfn, that) { + var O = toObject($this); + var self = IObject(O); + var f = ctx(callbackfn, that, 3); + var length = toLength(self.length); + var index = 0; + var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; + var val, res; + + for (; length > index; index++) { + if (NO_HOLES || index in self) { + val = self[index]; + res = f(val, index, O); + + if (TYPE) { + if (IS_MAP) result[index] = res;else if (res) switch (TYPE) { + case 3: + return true; + + case 5: + return val; + + case 6: + return index; + + case 2: + result.push(val); + } else if (IS_EVERY) return false; + } + } + } + + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; + }; +}; + +/***/ }), +/* 105 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var speciesConstructor = __w_pdfjs_require__(106); + +module.exports = function (original, length) { + return new (speciesConstructor(original))(length); +}; + +/***/ }), +/* 106 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isObject = __w_pdfjs_require__(13); + +var isArray = __w_pdfjs_require__(107); + +var SPECIES = __w_pdfjs_require__(33)('species'); + +module.exports = function (original) { + var C; + + if (isArray(original)) { + C = original.constructor; + if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; + + if (isObject(C)) { + C = C[SPECIES]; + if (C === null) C = undefined; + } + } + + return C === undefined ? Array : C; +}; + +/***/ }), +/* 107 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var cof = __w_pdfjs_require__(32); + +module.exports = Array.isArray || function isArray(arg) { + return cof(arg) == 'Array'; +}; + +/***/ }), +/* 108 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +var META = __w_pdfjs_require__(22)('meta'); + +var isObject = __w_pdfjs_require__(13); + +var has = __w_pdfjs_require__(21); + +var setDesc = __w_pdfjs_require__(11).f; + +var id = 0; + +var isExtensible = Object.isExtensible || function () { + return true; +}; + +var FREEZE = !__w_pdfjs_require__(16)(function () { + return isExtensible(Object.preventExtensions({})); +}); + +var setMeta = function setMeta(it) { + setDesc(it, META, { + value: { + i: 'O' + ++id, + w: {} + } + }); +}; + +var fastKey = function fastKey(it, create) { + if (!isObject(it)) return _typeof(it) == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + + if (!has(it, META)) { + if (!isExtensible(it)) return 'F'; + if (!create) return 'E'; + setMeta(it); + } + + return it[META].i; +}; + +var getWeak = function getWeak(it, create) { + if (!has(it, META)) { + if (!isExtensible(it)) return true; + if (!create) return false; + setMeta(it); + } + + return it[META].w; +}; + +var onFreeze = function onFreeze(it) { + if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); + return it; +}; + +var meta = module.exports = { + KEY: META, + NEED: false, + fastKey: fastKey, + getWeak: getWeak, + onFreeze: onFreeze +}; + +/***/ }), +/* 109 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var redefineAll = __w_pdfjs_require__(98); + +var getWeak = __w_pdfjs_require__(108).getWeak; + +var anObject = __w_pdfjs_require__(12); + +var isObject = __w_pdfjs_require__(13); + +var anInstance = __w_pdfjs_require__(88); + +var forOf = __w_pdfjs_require__(89); + +var createArrayMethod = __w_pdfjs_require__(104); + +var $has = __w_pdfjs_require__(21); + +var validate = __w_pdfjs_require__(110); + +var arrayFind = createArrayMethod(5); +var arrayFindIndex = createArrayMethod(6); +var id = 0; + +var uncaughtFrozenStore = function uncaughtFrozenStore(that) { + return that._l || (that._l = new UncaughtFrozenStore()); +}; + +var UncaughtFrozenStore = function UncaughtFrozenStore() { + this.a = []; +}; + +var findUncaughtFrozen = function findUncaughtFrozen(store, key) { + return arrayFind(store.a, function (it) { + return it[0] === key; + }); +}; + +UncaughtFrozenStore.prototype = { + get: function get(key) { + var entry = findUncaughtFrozen(this, key); + if (entry) return entry[1]; + }, + has: function has(key) { + return !!findUncaughtFrozen(this, key); + }, + set: function set(key, value) { + var entry = findUncaughtFrozen(this, key); + if (entry) entry[1] = value;else this.a.push([key, value]); + }, + 'delete': function _delete(key) { + var index = arrayFindIndex(this.a, function (it) { + return it[0] === key; + }); + if (~index) this.a.splice(index, 1); + return !!~index; + } +}; +module.exports = { + getConstructor: function getConstructor(wrapper, NAME, IS_MAP, ADDER) { + var C = wrapper(function (that, iterable) { + anInstance(that, C, NAME, '_i'); + that._t = NAME; + that._i = id++; + that._l = undefined; + if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); + }); + redefineAll(C.prototype, { + 'delete': function _delete(key) { + if (!isObject(key)) return false; + var data = getWeak(key); + if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key); + return data && $has(data, this._i) && delete data[this._i]; + }, + has: function has(key) { + if (!isObject(key)) return false; + var data = getWeak(key); + if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key); + return data && $has(data, this._i); + } + }); + return C; + }, + def: function def(that, key, value) { + var data = getWeak(anObject(key), true); + if (data === true) uncaughtFrozenStore(that).set(key, value);else data[that._i] = value; + return that; + }, + ufstore: uncaughtFrozenStore +}; + +/***/ }), +/* 110 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isObject = __w_pdfjs_require__(13); + +module.exports = function (it, TYPE) { + if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!'); + return it; +}; + +/***/ }), +/* 111 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var global = __w_pdfjs_require__(8); + +var $export = __w_pdfjs_require__(7); + +var redefine = __w_pdfjs_require__(20); + +var redefineAll = __w_pdfjs_require__(98); + +var meta = __w_pdfjs_require__(108); + +var forOf = __w_pdfjs_require__(89); + +var anInstance = __w_pdfjs_require__(88); + +var isObject = __w_pdfjs_require__(13); + +var fails = __w_pdfjs_require__(16); + +var $iterDetect = __w_pdfjs_require__(69); + +var setToStringTag = __w_pdfjs_require__(60); + +var inheritIfRequired = __w_pdfjs_require__(112); + +module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) { + var Base = global[NAME]; + var C = Base; + var ADDER = IS_MAP ? 'set' : 'add'; + var proto = C && C.prototype; + var O = {}; + + var fixMethod = function fixMethod(KEY) { + var fn = proto[KEY]; + redefine(proto, KEY, KEY == 'delete' ? function (a) { + return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); + } : KEY == 'has' ? function has(a) { + return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); + } : KEY == 'get' ? function get(a) { + return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a); + } : KEY == 'add' ? function add(a) { + fn.call(this, a === 0 ? 0 : a); + return this; + } : function set(a, b) { + fn.call(this, a === 0 ? 0 : a, b); + return this; + }); + }; + + if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () { + new C().entries().next(); + }))) { + C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); + redefineAll(C.prototype, methods); + meta.NEED = true; + } else { + var instance = new C(); + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; + var THROWS_ON_PRIMITIVES = fails(function () { + instance.has(1); + }); + var ACCEPT_ITERABLES = $iterDetect(function (iter) { + new C(iter); + }); + var BUGGY_ZERO = !IS_WEAK && fails(function () { + var $instance = new C(); + var index = 5; + + while (index--) { + $instance[ADDER](index, index); + } + + return !$instance.has(-0); + }); + + if (!ACCEPT_ITERABLES) { + C = wrapper(function (target, iterable) { + anInstance(target, C, NAME); + var that = inheritIfRequired(new Base(), target, C); + if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); + return that; + }); + C.prototype = proto; + proto.constructor = C; + } + + if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + + if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); + if (IS_WEAK && proto.clear) delete proto.clear; + } + + setToStringTag(C, NAME); + O[NAME] = C; + $export($export.G + $export.W + $export.F * (C != Base), O); + if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP); + return C; +}; + +/***/ }), +/* 112 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isObject = __w_pdfjs_require__(13); + +var setPrototypeOf = __w_pdfjs_require__(113).set; + +module.exports = function (that, target, C) { + var S = target.constructor; + var P; + + if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) { + setPrototypeOf(that, P); + } + + return that; +}; + +/***/ }), +/* 113 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isObject = __w_pdfjs_require__(13); + +var anObject = __w_pdfjs_require__(12); + +var check = function check(O, proto) { + anObject(O); + if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); +}; + +module.exports = { + set: Object.setPrototypeOf || ('__proto__' in {} ? function (test, buggy, set) { + try { + set = __w_pdfjs_require__(26)(Function.call, __w_pdfjs_require__(114).f(Object.prototype, '__proto__').set, 2); + set(test, []); + buggy = !(test instanceof Array); + } catch (e) { + buggy = true; + } + + return function setPrototypeOf(O, proto) { + check(O, proto); + if (buggy) O.__proto__ = proto;else set(O, proto); + return O; + }; + }({}, false) : undefined), + check: check +}; + +/***/ }), +/* 114 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var pIE = __w_pdfjs_require__(74); + +var createDesc = __w_pdfjs_require__(19); + +var toIObject = __w_pdfjs_require__(43); + +var toPrimitive = __w_pdfjs_require__(18); + +var has = __w_pdfjs_require__(21); + +var IE8_DOM_DEFINE = __w_pdfjs_require__(14); + +var gOPD = Object.getOwnPropertyDescriptor; +exports.f = __w_pdfjs_require__(15) ? gOPD : function getOwnPropertyDescriptor(O, P) { + O = toIObject(O); + P = toPrimitive(P, true); + if (IE8_DOM_DEFINE) try { + return gOPD(O, P); + } catch (e) {} + if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); +}; + +/***/ }), +/* 115 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(116)('WeakMap'); + +/***/ }), +/* 116 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(7); + +module.exports = function (COLLECTION) { + $export($export.S, COLLECTION, { + of: function of() { + var length = arguments.length; + var A = new Array(length); + + while (length--) { + A[length] = arguments[length]; + } + + return new this(A); + } + }); +}; + +/***/ }), +/* 117 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(118)('WeakMap'); + +/***/ }), +/* 118 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(7); + +var aFunction = __w_pdfjs_require__(27); + +var ctx = __w_pdfjs_require__(26); + +var forOf = __w_pdfjs_require__(89); + +module.exports = function (COLLECTION) { + $export($export.S, COLLECTION, { + from: function from(source) { + var mapFn = arguments[1]; + var mapping, A, n, cb; + aFunction(this); + mapping = mapFn !== undefined; + if (mapping) aFunction(mapFn); + if (source == undefined) return new this(); + A = []; + + if (mapping) { + n = 0; + cb = ctx(mapFn, arguments[2], 2); + forOf(source, false, function (nextItem) { + A.push(cb(nextItem, n++)); + }); + } else { + forOf(source, false, A.push, A); + } + + return new this(A); + } + }); +}; + +/***/ }), +/* 119 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(83); + +__w_pdfjs_require__(84); + +__w_pdfjs_require__(120); + +__w_pdfjs_require__(121); + +__w_pdfjs_require__(122); + +module.exports = __w_pdfjs_require__(9).WeakSet; + +/***/ }), +/* 120 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var weak = __w_pdfjs_require__(109); + +var validate = __w_pdfjs_require__(110); + +var WEAK_SET = 'WeakSet'; + +__w_pdfjs_require__(111)(WEAK_SET, function (get) { + return function WeakSet() { + return get(this, arguments.length > 0 ? arguments[0] : undefined); + }; +}, { + add: function add(value) { + return weak.def(validate(this, WEAK_SET), value, true); + } +}, weak, false, true); + +/***/ }), +/* 121 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(116)('WeakSet'); + +/***/ }), +/* 122 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(118)('WeakSet'); + +/***/ }), +/* 123 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(124); + +module.exports = __w_pdfjs_require__(9).String.codePointAt; + +/***/ }), +/* 124 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(7); + +var $at = __w_pdfjs_require__(49)(false); + +$export($export.P, 'String', { + codePointAt: function codePointAt(pos) { + return $at(this, pos); + } +}); + +/***/ }), +/* 125 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(126); + +module.exports = __w_pdfjs_require__(9).String.fromCodePoint; + +/***/ }), +/* 126 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(7); + +var toAbsoluteIndex = __w_pdfjs_require__(45); + +var fromCharCode = String.fromCharCode; +var $fromCodePoint = String.fromCodePoint; +$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', { + fromCodePoint: function fromCodePoint(x) { + var res = []; + var aLen = arguments.length; + var i = 0; + var code; + + while (aLen > i) { + code = +arguments[i++]; + if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point'); + res.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)); + } + + return res.join(''); + } +}); + +/***/ }), +/* 127 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(128); + +__w_pdfjs_require__(83); + +module.exports = __w_pdfjs_require__(9).Symbol; + +/***/ }), +/* 128 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +var global = __w_pdfjs_require__(8); + +var has = __w_pdfjs_require__(21); + +var DESCRIPTORS = __w_pdfjs_require__(15); + +var $export = __w_pdfjs_require__(7); + +var redefine = __w_pdfjs_require__(20); + +var META = __w_pdfjs_require__(108).KEY; + +var $fails = __w_pdfjs_require__(16); + +var shared = __w_pdfjs_require__(24); + +var setToStringTag = __w_pdfjs_require__(60); + +var uid = __w_pdfjs_require__(22); + +var wks = __w_pdfjs_require__(33); + +var wksExt = __w_pdfjs_require__(129); + +var wksDefine = __w_pdfjs_require__(130); + +var enumKeys = __w_pdfjs_require__(131); + +var isArray = __w_pdfjs_require__(107); + +var anObject = __w_pdfjs_require__(12); + +var isObject = __w_pdfjs_require__(13); + +var toObject = __w_pdfjs_require__(62); + +var toIObject = __w_pdfjs_require__(43); + +var toPrimitive = __w_pdfjs_require__(18); + +var createDesc = __w_pdfjs_require__(19); + +var _create = __w_pdfjs_require__(53); + +var gOPNExt = __w_pdfjs_require__(132); + +var $GOPD = __w_pdfjs_require__(114); + +var $GOPS = __w_pdfjs_require__(73); + +var $DP = __w_pdfjs_require__(11); + +var $keys = __w_pdfjs_require__(55); + +var gOPD = $GOPD.f; +var dP = $DP.f; +var gOPN = gOPNExt.f; +var $Symbol = global.Symbol; +var $JSON = global.JSON; + +var _stringify = $JSON && $JSON.stringify; + +var PROTOTYPE = 'prototype'; +var HIDDEN = wks('_hidden'); +var TO_PRIMITIVE = wks('toPrimitive'); +var isEnum = {}.propertyIsEnumerable; +var SymbolRegistry = shared('symbol-registry'); +var AllSymbols = shared('symbols'); +var OPSymbols = shared('op-symbols'); +var ObjectProto = Object[PROTOTYPE]; +var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f; +var QObject = global.QObject; +var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; +var setSymbolDesc = DESCRIPTORS && $fails(function () { + return _create(dP({}, 'a', { + get: function get() { + return dP(this, 'a', { + value: 7 + }).a; + } + })).a != 7; +}) ? function (it, key, D) { + var protoDesc = gOPD(ObjectProto, key); + if (protoDesc) delete ObjectProto[key]; + dP(it, key, D); + if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); +} : dP; + +var wrap = function wrap(tag) { + var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); + + sym._k = tag; + return sym; +}; + +var isSymbol = USE_NATIVE && _typeof($Symbol.iterator) == 'symbol' ? function (it) { + return _typeof(it) == 'symbol'; +} : function (it) { + return it instanceof $Symbol; +}; + +var $defineProperty = function defineProperty(it, key, D) { + if (it === ObjectProto) $defineProperty(OPSymbols, key, D); + anObject(it); + key = toPrimitive(key, true); + anObject(D); + + if (has(AllSymbols, key)) { + if (!D.enumerable) { + if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); + it[HIDDEN][key] = true; + } else { + if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; + D = _create(D, { + enumerable: createDesc(0, false) + }); + } + + return setSymbolDesc(it, key, D); + } + + return dP(it, key, D); +}; + +var $defineProperties = function defineProperties(it, P) { + anObject(it); + var keys = enumKeys(P = toIObject(P)); + var i = 0; + var l = keys.length; + var key; + + while (l > i) { + $defineProperty(it, key = keys[i++], P[key]); + } + + return it; +}; + +var $create = function create(it, P) { + return P === undefined ? _create(it) : $defineProperties(_create(it), P); +}; + +var $propertyIsEnumerable = function propertyIsEnumerable(key) { + var E = isEnum.call(this, key = toPrimitive(key, true)); + if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; + return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; +}; + +var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { + it = toIObject(it); + key = toPrimitive(key, true); + if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; + var D = gOPD(it, key); + if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; + return D; +}; + +var $getOwnPropertyNames = function getOwnPropertyNames(it) { + var names = gOPN(toIObject(it)); + var result = []; + var i = 0; + var key; + + while (names.length > i) { + if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); + } + + return result; +}; + +var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { + var IS_OP = it === ObjectProto; + var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); + var result = []; + var i = 0; + var key; + + while (names.length > i) { + if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); + } + + return result; +}; + +if (!USE_NATIVE) { + $Symbol = function _Symbol() { + if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); + var tag = uid(arguments.length > 0 ? arguments[0] : undefined); + + var $set = function $set(value) { + if (this === ObjectProto) $set.call(OPSymbols, value); + if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; + setSymbolDesc(this, tag, createDesc(1, value)); + }; + + if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { + configurable: true, + set: $set + }); + return wrap(tag); + }; + + redefine($Symbol[PROTOTYPE], 'toString', function toString() { + return this._k; + }); + $GOPD.f = $getOwnPropertyDescriptor; + $DP.f = $defineProperty; + __w_pdfjs_require__(133).f = gOPNExt.f = $getOwnPropertyNames; + __w_pdfjs_require__(74).f = $propertyIsEnumerable; + $GOPS.f = $getOwnPropertySymbols; + + if (DESCRIPTORS && !__w_pdfjs_require__(25)) { + redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); + } + + wksExt.f = function (name) { + return wrap(wks(name)); + }; +} + +$export($export.G + $export.W + $export.F * !USE_NATIVE, { + Symbol: $Symbol +}); + +for (var es6Symbols = 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'.split(','), j = 0; es6Symbols.length > j;) { + wks(es6Symbols[j++]); +} + +for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) { + wksDefine(wellKnownSymbols[k++]); +} + +$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { + 'for': function _for(key) { + return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key); + }, + keyFor: function keyFor(sym) { + if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); + + for (var key in SymbolRegistry) { + if (SymbolRegistry[key] === sym) return key; + } + }, + useSetter: function useSetter() { + setter = true; + }, + useSimple: function useSimple() { + setter = false; + } +}); +$export($export.S + $export.F * !USE_NATIVE, 'Object', { + create: $create, + defineProperty: $defineProperty, + defineProperties: $defineProperties, + getOwnPropertyDescriptor: $getOwnPropertyDescriptor, + getOwnPropertyNames: $getOwnPropertyNames, + getOwnPropertySymbols: $getOwnPropertySymbols +}); +var FAILS_ON_PRIMITIVES = $fails(function () { + $GOPS.f(1); +}); +$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', { + getOwnPropertySymbols: function getOwnPropertySymbols(it) { + return $GOPS.f(toObject(it)); + } +}); +$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { + var S = $Symbol(); + return _stringify([S]) != '[null]' || _stringify({ + a: S + }) != '{}' || _stringify(Object(S)) != '{}'; +})), 'JSON', { + stringify: function stringify(it) { + var args = [it]; + var i = 1; + var replacer, $replacer; + + while (arguments.length > i) { + args.push(arguments[i++]); + } + + $replacer = replacer = args[1]; + if (!isObject(replacer) && it === undefined || isSymbol(it)) return; + if (!isArray(replacer)) replacer = function replacer(key, value) { + if (typeof $replacer == 'function') value = $replacer.call(this, key, value); + if (!isSymbol(value)) return value; + }; + args[1] = replacer; + return _stringify.apply($JSON, args); + } +}); +$Symbol[PROTOTYPE][TO_PRIMITIVE] || __w_pdfjs_require__(10)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); +setToStringTag($Symbol, 'Symbol'); +setToStringTag(Math, 'Math', true); +setToStringTag(global.JSON, 'JSON', true); + +/***/ }), +/* 129 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +exports.f = __w_pdfjs_require__(33); + +/***/ }), +/* 130 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var global = __w_pdfjs_require__(8); + +var core = __w_pdfjs_require__(9); + +var LIBRARY = __w_pdfjs_require__(25); + +var wksExt = __w_pdfjs_require__(129); + +var defineProperty = __w_pdfjs_require__(11).f; + +module.exports = function (name) { + var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); + if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { + value: wksExt.f(name) + }); +}; + +/***/ }), +/* 131 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var getKeys = __w_pdfjs_require__(55); + +var gOPS = __w_pdfjs_require__(73); + +var pIE = __w_pdfjs_require__(74); + +module.exports = function (it) { + var result = getKeys(it); + var getSymbols = gOPS.f; + + if (getSymbols) { + var symbols = getSymbols(it); + var isEnum = pIE.f; + var i = 0; + var key; + + while (symbols.length > i) { + if (isEnum.call(it, key = symbols[i++])) result.push(key); + } + } + + return result; +}; + +/***/ }), +/* 132 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +var toIObject = __w_pdfjs_require__(43); + +var gOPN = __w_pdfjs_require__(133).f; + +var toString = {}.toString; +var windowNames = (typeof window === "undefined" ? "undefined" : _typeof(window)) == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; + +var getWindowNames = function getWindowNames(it) { + try { + return gOPN(it); + } catch (e) { + return windowNames.slice(); + } +}; + +module.exports.f = function getOwnPropertyNames(it) { + return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); +}; + +/***/ }), +/* 133 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $keys = __w_pdfjs_require__(56); + +var hiddenKeys = __w_pdfjs_require__(58).concat('length', 'prototype'); + +exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return $keys(O, hiddenKeys); +}; + +/***/ }), +/* 134 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(135); + +module.exports = __w_pdfjs_require__(9).String.padStart; + +/***/ }), +/* 135 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(7); + +var $pad = __w_pdfjs_require__(136); + +var userAgent = __w_pdfjs_require__(96); + +var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent); +$export($export.P + $export.F * WEBKIT_BUG, 'String', { + padStart: function padStart(maxLength) { + return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true); + } +}); + +/***/ }), +/* 136 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var toLength = __w_pdfjs_require__(28); + +var repeat = __w_pdfjs_require__(137); + +var defined = __w_pdfjs_require__(34); + +module.exports = function (that, maxLength, fillString, left) { + var S = String(defined(that)); + var stringLength = S.length; + var fillStr = fillString === undefined ? ' ' : String(fillString); + var intMaxLength = toLength(maxLength); + if (intMaxLength <= stringLength || fillStr == '') return S; + var fillLen = intMaxLength - stringLength; + var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length)); + if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen); + return left ? stringFiller + S : S + stringFiller; +}; + +/***/ }), +/* 137 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var toInteger = __w_pdfjs_require__(29); + +var defined = __w_pdfjs_require__(34); + +module.exports = function repeat(count) { + var str = String(defined(this)); + var res = ''; + var n = toInteger(count); + if (n < 0 || n == Infinity) throw RangeError("Count can't be negative"); + + for (; n > 0; (n >>>= 1) && (str += str)) { + if (n & 1) res += str; + } + + return res; +}; + +/***/ }), +/* 138 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(139); + +module.exports = __w_pdfjs_require__(9).String.padEnd; + +/***/ }), +/* 139 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(7); + +var $pad = __w_pdfjs_require__(136); + +var userAgent = __w_pdfjs_require__(96); + +var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent); +$export($export.P + $export.F * WEBKIT_BUG, 'String', { + padEnd: function padEnd(maxLength) { + return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false); + } +}); + +/***/ }), +/* 140 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(141); + +module.exports = __w_pdfjs_require__(9).Object.values; + +/***/ }), +/* 141 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(7); + +var $values = __w_pdfjs_require__(142)(false); + +$export($export.S, 'Object', { + values: function values(it) { + return $values(it); + } +}); + +/***/ }), +/* 142 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var DESCRIPTORS = __w_pdfjs_require__(15); + +var getKeys = __w_pdfjs_require__(55); + +var toIObject = __w_pdfjs_require__(43); + +var isEnum = __w_pdfjs_require__(74).f; + +module.exports = function (isEntries) { + return function (it) { + var O = toIObject(it); + var keys = getKeys(O); + var length = keys.length; + var i = 0; + var result = []; + var key; + + while (length > i) { + key = keys[i++]; + + if (!DESCRIPTORS || isEnum.call(O, key)) { + result.push(isEntries ? [key, O[key]] : O[key]); + } + } + + return result; + }; +}; + +/***/ }), +/* 143 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +{ + var isReadableStreamSupported = false; + + if (typeof ReadableStream !== 'undefined') { + try { + new ReadableStream({ + start: function start(controller) { + controller.close(); + } + }); + isReadableStreamSupported = true; + } catch (e) {} + } + + if (isReadableStreamSupported) { + exports.ReadableStream = ReadableStream; + } else { + exports.ReadableStream = __w_pdfjs_require__(144).ReadableStream; + } +} + +/***/ }), +/* 144 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); } + +(function (e, a) { + for (var i in a) { + e[i] = a[i]; + } +})(exports, function (modules) { + var installedModules = {}; + + function __w_pdfjs_require__(moduleId) { + if (installedModules[moduleId]) return installedModules[moduleId].exports; + var module = installedModules[moduleId] = { + i: moduleId, + l: false, + exports: {} + }; + modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__); + module.l = true; + return module.exports; + } + + __w_pdfjs_require__.m = modules; + __w_pdfjs_require__.c = installedModules; + + __w_pdfjs_require__.i = function (value) { + return value; + }; + + __w_pdfjs_require__.d = function (exports, name, getter) { + if (!__w_pdfjs_require__.o(exports, name)) { + Object.defineProperty(exports, name, { + configurable: false, + enumerable: true, + get: getter + }); + } + }; + + __w_pdfjs_require__.n = function (module) { + var getter = module && module.__esModule ? function getDefault() { + return module['default']; + } : function getModuleExports() { + return module; + }; + + __w_pdfjs_require__.d(getter, 'a', getter); + + return getter; + }; + + __w_pdfjs_require__.o = function (object, property) { + return Object.prototype.hasOwnProperty.call(object, property); + }; + + __w_pdfjs_require__.p = ""; + return __w_pdfjs_require__(__w_pdfjs_require__.s = 7); +}([function (module, exports, __w_pdfjs_require__) { + "use strict"; + + var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) { + return _typeof2(obj); + } : function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); + }; + + var _require = __w_pdfjs_require__(1), + assert = _require.assert; + + function IsPropertyKey(argument) { + return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol'; + } + + exports.typeIsObject = function (x) { + return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function'; + }; + + exports.createDataProperty = function (o, p, v) { + assert(exports.typeIsObject(o)); + Object.defineProperty(o, p, { + value: v, + writable: true, + enumerable: true, + configurable: true + }); + }; + + exports.createArrayFromList = function (elements) { + return elements.slice(); + }; + + exports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) { + new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset); + }; + + exports.CreateIterResultObject = function (value, done) { + assert(typeof done === 'boolean'); + var obj = {}; + Object.defineProperty(obj, 'value', { + value: value, + enumerable: true, + writable: true, + configurable: true + }); + Object.defineProperty(obj, 'done', { + value: done, + enumerable: true, + writable: true, + configurable: true + }); + return obj; + }; + + exports.IsFiniteNonNegativeNumber = function (v) { + if (Number.isNaN(v)) { + return false; + } + + if (v === Infinity) { + return false; + } + + if (v < 0) { + return false; + } + + return true; + }; + + function Call(F, V, args) { + if (typeof F !== 'function') { + throw new TypeError('Argument is not a function'); + } + + return Function.prototype.apply.call(F, V, args); + } + + exports.InvokeOrNoop = function (O, P, args) { + assert(O !== undefined); + assert(IsPropertyKey(P)); + assert(Array.isArray(args)); + var method = O[P]; + + if (method === undefined) { + return undefined; + } + + return Call(method, O, args); + }; + + exports.PromiseInvokeOrNoop = function (O, P, args) { + assert(O !== undefined); + assert(IsPropertyKey(P)); + assert(Array.isArray(args)); + + try { + return Promise.resolve(exports.InvokeOrNoop(O, P, args)); + } catch (returnValueE) { + return Promise.reject(returnValueE); + } + }; + + exports.PromiseInvokeOrPerformFallback = function (O, P, args, F, argsF) { + assert(O !== undefined); + assert(IsPropertyKey(P)); + assert(Array.isArray(args)); + assert(Array.isArray(argsF)); + var method = void 0; + + try { + method = O[P]; + } catch (methodE) { + return Promise.reject(methodE); + } + + if (method === undefined) { + return F.apply(null, argsF); + } + + try { + return Promise.resolve(Call(method, O, args)); + } catch (e) { + return Promise.reject(e); + } + }; + + exports.TransferArrayBuffer = function (O) { + return O.slice(); + }; + + exports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) { + highWaterMark = Number(highWaterMark); + + if (Number.isNaN(highWaterMark) || highWaterMark < 0) { + throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN'); + } + + return highWaterMark; + }; + + exports.ValidateAndNormalizeQueuingStrategy = function (size, highWaterMark) { + if (size !== undefined && typeof size !== 'function') { + throw new TypeError('size property of a queuing strategy must be a function'); + } + + highWaterMark = exports.ValidateAndNormalizeHighWaterMark(highWaterMark); + return { + size: size, + highWaterMark: highWaterMark + }; + }; +}, function (module, exports, __w_pdfjs_require__) { + "use strict"; + + function rethrowAssertionErrorRejection(e) { + if (e && e.constructor === AssertionError) { + setTimeout(function () { + throw e; + }, 0); + } + } + + function AssertionError(message) { + this.name = 'AssertionError'; + this.message = message || ''; + this.stack = new Error().stack; + } + + AssertionError.prototype = Object.create(Error.prototype); + AssertionError.prototype.constructor = AssertionError; + + function assert(value, message) { + if (!value) { + throw new AssertionError(message); + } + } + + module.exports = { + rethrowAssertionErrorRejection: rethrowAssertionErrorRejection, + AssertionError: AssertionError, + assert: assert + }; +}, function (module, exports, __w_pdfjs_require__) { + "use strict"; + + var _createClass = function () { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + var _require = __w_pdfjs_require__(0), + InvokeOrNoop = _require.InvokeOrNoop, + PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop, + ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy, + typeIsObject = _require.typeIsObject; + + var _require2 = __w_pdfjs_require__(1), + assert = _require2.assert, + rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection; + + var _require3 = __w_pdfjs_require__(3), + DequeueValue = _require3.DequeueValue, + EnqueueValueWithSize = _require3.EnqueueValueWithSize, + PeekQueueValue = _require3.PeekQueueValue, + ResetQueue = _require3.ResetQueue; + + var WritableStream = function () { + function WritableStream() { + var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + size = _ref.size, + _ref$highWaterMark = _ref.highWaterMark, + highWaterMark = _ref$highWaterMark === undefined ? 1 : _ref$highWaterMark; + + _classCallCheck(this, WritableStream); + + this._state = 'writable'; + this._storedError = undefined; + this._writer = undefined; + this._writableStreamController = undefined; + this._writeRequests = []; + this._inFlightWriteRequest = undefined; + this._closeRequest = undefined; + this._inFlightCloseRequest = undefined; + this._pendingAbortRequest = undefined; + this._backpressure = false; + var type = underlyingSink.type; + + if (type !== undefined) { + throw new RangeError('Invalid type is specified'); + } + + this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark); + + this._writableStreamController.__startSteps(); + } + + _createClass(WritableStream, [{ + key: 'abort', + value: function abort(reason) { + if (IsWritableStream(this) === false) { + return Promise.reject(streamBrandCheckException('abort')); + } + + if (IsWritableStreamLocked(this) === true) { + return Promise.reject(new TypeError('Cannot abort a stream that already has a writer')); + } + + return WritableStreamAbort(this, reason); + } + }, { + key: 'getWriter', + value: function getWriter() { + if (IsWritableStream(this) === false) { + throw streamBrandCheckException('getWriter'); + } + + return AcquireWritableStreamDefaultWriter(this); + } + }, { + key: 'locked', + get: function get() { + if (IsWritableStream(this) === false) { + throw streamBrandCheckException('locked'); + } + + return IsWritableStreamLocked(this); + } + }]); + + return WritableStream; + }(); + + module.exports = { + AcquireWritableStreamDefaultWriter: AcquireWritableStreamDefaultWriter, + IsWritableStream: IsWritableStream, + IsWritableStreamLocked: IsWritableStreamLocked, + WritableStream: WritableStream, + WritableStreamAbort: WritableStreamAbort, + WritableStreamDefaultControllerError: WritableStreamDefaultControllerError, + WritableStreamDefaultWriterCloseWithErrorPropagation: WritableStreamDefaultWriterCloseWithErrorPropagation, + WritableStreamDefaultWriterRelease: WritableStreamDefaultWriterRelease, + WritableStreamDefaultWriterWrite: WritableStreamDefaultWriterWrite, + WritableStreamCloseQueuedOrInFlight: WritableStreamCloseQueuedOrInFlight + }; + + function AcquireWritableStreamDefaultWriter(stream) { + return new WritableStreamDefaultWriter(stream); + } + + function IsWritableStream(x) { + if (!typeIsObject(x)) { + return false; + } + + if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) { + return false; + } + + return true; + } + + function IsWritableStreamLocked(stream) { + assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams'); + + if (stream._writer === undefined) { + return false; + } + + return true; + } + + function WritableStreamAbort(stream, reason) { + var state = stream._state; + + if (state === 'closed') { + return Promise.resolve(undefined); + } + + if (state === 'errored') { + return Promise.reject(stream._storedError); + } + + var error = new TypeError('Requested to abort'); + + if (stream._pendingAbortRequest !== undefined) { + return Promise.reject(error); + } + + assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring'); + var wasAlreadyErroring = false; + + if (state === 'erroring') { + wasAlreadyErroring = true; + reason = undefined; + } + + var promise = new Promise(function (resolve, reject) { + stream._pendingAbortRequest = { + _resolve: resolve, + _reject: reject, + _reason: reason, + _wasAlreadyErroring: wasAlreadyErroring + }; + }); + + if (wasAlreadyErroring === false) { + WritableStreamStartErroring(stream, error); + } + + return promise; + } + + function WritableStreamAddWriteRequest(stream) { + assert(IsWritableStreamLocked(stream) === true); + assert(stream._state === 'writable'); + var promise = new Promise(function (resolve, reject) { + var writeRequest = { + _resolve: resolve, + _reject: reject + }; + + stream._writeRequests.push(writeRequest); + }); + return promise; + } + + function WritableStreamDealWithRejection(stream, error) { + var state = stream._state; + + if (state === 'writable') { + WritableStreamStartErroring(stream, error); + return; + } + + assert(state === 'erroring'); + WritableStreamFinishErroring(stream); + } + + function WritableStreamStartErroring(stream, reason) { + assert(stream._storedError === undefined, 'stream._storedError === undefined'); + assert(stream._state === 'writable', 'state must be writable'); + var controller = stream._writableStreamController; + assert(controller !== undefined, 'controller must not be undefined'); + stream._state = 'erroring'; + stream._storedError = reason; + var writer = stream._writer; + + if (writer !== undefined) { + WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason); + } + + if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) { + WritableStreamFinishErroring(stream); + } + } + + function WritableStreamFinishErroring(stream) { + assert(stream._state === 'erroring', 'stream._state === erroring'); + assert(WritableStreamHasOperationMarkedInFlight(stream) === false, 'WritableStreamHasOperationMarkedInFlight(stream) === false'); + stream._state = 'errored'; + + stream._writableStreamController.__errorSteps(); + + var storedError = stream._storedError; + + for (var i = 0; i < stream._writeRequests.length; i++) { + var writeRequest = stream._writeRequests[i]; + + writeRequest._reject(storedError); + } + + stream._writeRequests = []; + + if (stream._pendingAbortRequest === undefined) { + WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); + return; + } + + var abortRequest = stream._pendingAbortRequest; + stream._pendingAbortRequest = undefined; + + if (abortRequest._wasAlreadyErroring === true) { + abortRequest._reject(storedError); + + WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); + return; + } + + var promise = stream._writableStreamController.__abortSteps(abortRequest._reason); + + promise.then(function () { + abortRequest._resolve(); + + WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); + }, function (reason) { + abortRequest._reject(reason); + + WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); + }); + } + + function WritableStreamFinishInFlightWrite(stream) { + assert(stream._inFlightWriteRequest !== undefined); + + stream._inFlightWriteRequest._resolve(undefined); + + stream._inFlightWriteRequest = undefined; + } + + function WritableStreamFinishInFlightWriteWithError(stream, error) { + assert(stream._inFlightWriteRequest !== undefined); + + stream._inFlightWriteRequest._reject(error); + + stream._inFlightWriteRequest = undefined; + assert(stream._state === 'writable' || stream._state === 'erroring'); + WritableStreamDealWithRejection(stream, error); + } + + function WritableStreamFinishInFlightClose(stream) { + assert(stream._inFlightCloseRequest !== undefined); + + stream._inFlightCloseRequest._resolve(undefined); + + stream._inFlightCloseRequest = undefined; + var state = stream._state; + assert(state === 'writable' || state === 'erroring'); + + if (state === 'erroring') { + stream._storedError = undefined; + + if (stream._pendingAbortRequest !== undefined) { + stream._pendingAbortRequest._resolve(); + + stream._pendingAbortRequest = undefined; + } + } + + stream._state = 'closed'; + var writer = stream._writer; + + if (writer !== undefined) { + defaultWriterClosedPromiseResolve(writer); + } + + assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined'); + assert(stream._storedError === undefined, 'stream._storedError === undefined'); + } + + function WritableStreamFinishInFlightCloseWithError(stream, error) { + assert(stream._inFlightCloseRequest !== undefined); + + stream._inFlightCloseRequest._reject(error); + + stream._inFlightCloseRequest = undefined; + assert(stream._state === 'writable' || stream._state === 'erroring'); + + if (stream._pendingAbortRequest !== undefined) { + stream._pendingAbortRequest._reject(error); + + stream._pendingAbortRequest = undefined; + } + + WritableStreamDealWithRejection(stream, error); + } + + function WritableStreamCloseQueuedOrInFlight(stream) { + if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) { + return false; + } + + return true; + } + + function WritableStreamHasOperationMarkedInFlight(stream) { + if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) { + return false; + } + + return true; + } + + function WritableStreamMarkCloseRequestInFlight(stream) { + assert(stream._inFlightCloseRequest === undefined); + assert(stream._closeRequest !== undefined); + stream._inFlightCloseRequest = stream._closeRequest; + stream._closeRequest = undefined; + } + + function WritableStreamMarkFirstWriteRequestInFlight(stream) { + assert(stream._inFlightWriteRequest === undefined, 'there must be no pending write request'); + assert(stream._writeRequests.length !== 0, 'writeRequests must not be empty'); + stream._inFlightWriteRequest = stream._writeRequests.shift(); + } + + function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) { + assert(stream._state === 'errored', '_stream_.[[state]] is `"errored"`'); + + if (stream._closeRequest !== undefined) { + assert(stream._inFlightCloseRequest === undefined); + + stream._closeRequest._reject(stream._storedError); + + stream._closeRequest = undefined; + } + + var writer = stream._writer; + + if (writer !== undefined) { + defaultWriterClosedPromiseReject(writer, stream._storedError); + + writer._closedPromise["catch"](function () {}); + } + } + + function WritableStreamUpdateBackpressure(stream, backpressure) { + assert(stream._state === 'writable'); + assert(WritableStreamCloseQueuedOrInFlight(stream) === false); + var writer = stream._writer; + + if (writer !== undefined && backpressure !== stream._backpressure) { + if (backpressure === true) { + defaultWriterReadyPromiseReset(writer); + } else { + assert(backpressure === false); + defaultWriterReadyPromiseResolve(writer); + } + } + + stream._backpressure = backpressure; + } + + var WritableStreamDefaultWriter = function () { + function WritableStreamDefaultWriter(stream) { + _classCallCheck(this, WritableStreamDefaultWriter); + + if (IsWritableStream(stream) === false) { + throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance'); + } + + if (IsWritableStreamLocked(stream) === true) { + throw new TypeError('This stream has already been locked for exclusive writing by another writer'); + } + + this._ownerWritableStream = stream; + stream._writer = this; + var state = stream._state; + + if (state === 'writable') { + if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) { + defaultWriterReadyPromiseInitialize(this); + } else { + defaultWriterReadyPromiseInitializeAsResolved(this); + } + + defaultWriterClosedPromiseInitialize(this); + } else if (state === 'erroring') { + defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError); + + this._readyPromise["catch"](function () {}); + + defaultWriterClosedPromiseInitialize(this); + } else if (state === 'closed') { + defaultWriterReadyPromiseInitializeAsResolved(this); + defaultWriterClosedPromiseInitializeAsResolved(this); + } else { + assert(state === 'errored', 'state must be errored'); + var storedError = stream._storedError; + defaultWriterReadyPromiseInitializeAsRejected(this, storedError); + + this._readyPromise["catch"](function () {}); + + defaultWriterClosedPromiseInitializeAsRejected(this, storedError); + + this._closedPromise["catch"](function () {}); + } + } + + _createClass(WritableStreamDefaultWriter, [{ + key: 'abort', + value: function abort(reason) { + if (IsWritableStreamDefaultWriter(this) === false) { + return Promise.reject(defaultWriterBrandCheckException('abort')); + } + + if (this._ownerWritableStream === undefined) { + return Promise.reject(defaultWriterLockException('abort')); + } + + return WritableStreamDefaultWriterAbort(this, reason); + } + }, { + key: 'close', + value: function close() { + if (IsWritableStreamDefaultWriter(this) === false) { + return Promise.reject(defaultWriterBrandCheckException('close')); + } + + var stream = this._ownerWritableStream; + + if (stream === undefined) { + return Promise.reject(defaultWriterLockException('close')); + } + + if (WritableStreamCloseQueuedOrInFlight(stream) === true) { + return Promise.reject(new TypeError('cannot close an already-closing stream')); + } + + return WritableStreamDefaultWriterClose(this); + } + }, { + key: 'releaseLock', + value: function releaseLock() { + if (IsWritableStreamDefaultWriter(this) === false) { + throw defaultWriterBrandCheckException('releaseLock'); + } + + var stream = this._ownerWritableStream; + + if (stream === undefined) { + return; + } + + assert(stream._writer !== undefined); + WritableStreamDefaultWriterRelease(this); + } + }, { + key: 'write', + value: function write(chunk) { + if (IsWritableStreamDefaultWriter(this) === false) { + return Promise.reject(defaultWriterBrandCheckException('write')); + } + + if (this._ownerWritableStream === undefined) { + return Promise.reject(defaultWriterLockException('write to')); + } + + return WritableStreamDefaultWriterWrite(this, chunk); + } + }, { + key: 'closed', + get: function get() { + if (IsWritableStreamDefaultWriter(this) === false) { + return Promise.reject(defaultWriterBrandCheckException('closed')); + } + + return this._closedPromise; + } + }, { + key: 'desiredSize', + get: function get() { + if (IsWritableStreamDefaultWriter(this) === false) { + throw defaultWriterBrandCheckException('desiredSize'); + } + + if (this._ownerWritableStream === undefined) { + throw defaultWriterLockException('desiredSize'); + } + + return WritableStreamDefaultWriterGetDesiredSize(this); + } + }, { + key: 'ready', + get: function get() { + if (IsWritableStreamDefaultWriter(this) === false) { + return Promise.reject(defaultWriterBrandCheckException('ready')); + } + + return this._readyPromise; + } + }]); + + return WritableStreamDefaultWriter; + }(); + + function IsWritableStreamDefaultWriter(x) { + if (!typeIsObject(x)) { + return false; + } + + if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) { + return false; + } + + return true; + } + + function WritableStreamDefaultWriterAbort(writer, reason) { + var stream = writer._ownerWritableStream; + assert(stream !== undefined); + return WritableStreamAbort(stream, reason); + } + + function WritableStreamDefaultWriterClose(writer) { + var stream = writer._ownerWritableStream; + assert(stream !== undefined); + var state = stream._state; + + if (state === 'closed' || state === 'errored') { + return Promise.reject(new TypeError('The stream (in ' + state + ' state) is not in the writable state and cannot be closed')); + } + + assert(state === 'writable' || state === 'erroring'); + assert(WritableStreamCloseQueuedOrInFlight(stream) === false); + var promise = new Promise(function (resolve, reject) { + var closeRequest = { + _resolve: resolve, + _reject: reject + }; + stream._closeRequest = closeRequest; + }); + + if (stream._backpressure === true && state === 'writable') { + defaultWriterReadyPromiseResolve(writer); + } + + WritableStreamDefaultControllerClose(stream._writableStreamController); + return promise; + } + + function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) { + var stream = writer._ownerWritableStream; + assert(stream !== undefined); + var state = stream._state; + + if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') { + return Promise.resolve(); + } + + if (state === 'errored') { + return Promise.reject(stream._storedError); + } + + assert(state === 'writable' || state === 'erroring'); + return WritableStreamDefaultWriterClose(writer); + } + + function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) { + if (writer._closedPromiseState === 'pending') { + defaultWriterClosedPromiseReject(writer, error); + } else { + defaultWriterClosedPromiseResetToRejected(writer, error); + } + + writer._closedPromise["catch"](function () {}); + } + + function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) { + if (writer._readyPromiseState === 'pending') { + defaultWriterReadyPromiseReject(writer, error); + } else { + defaultWriterReadyPromiseResetToRejected(writer, error); + } + + writer._readyPromise["catch"](function () {}); + } + + function WritableStreamDefaultWriterGetDesiredSize(writer) { + var stream = writer._ownerWritableStream; + var state = stream._state; + + if (state === 'errored' || state === 'erroring') { + return null; + } + + if (state === 'closed') { + return 0; + } + + return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController); + } + + function WritableStreamDefaultWriterRelease(writer) { + var stream = writer._ownerWritableStream; + assert(stream !== undefined); + assert(stream._writer === writer); + var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\'s closedness'); + WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError); + WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError); + stream._writer = undefined; + writer._ownerWritableStream = undefined; + } + + function WritableStreamDefaultWriterWrite(writer, chunk) { + var stream = writer._ownerWritableStream; + assert(stream !== undefined); + var controller = stream._writableStreamController; + var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk); + + if (stream !== writer._ownerWritableStream) { + return Promise.reject(defaultWriterLockException('write to')); + } + + var state = stream._state; + + if (state === 'errored') { + return Promise.reject(stream._storedError); + } + + if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') { + return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to')); + } + + if (state === 'erroring') { + return Promise.reject(stream._storedError); + } + + assert(state === 'writable'); + var promise = WritableStreamAddWriteRequest(stream); + WritableStreamDefaultControllerWrite(controller, chunk, chunkSize); + return promise; + } + + var WritableStreamDefaultController = function () { + function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) { + _classCallCheck(this, WritableStreamDefaultController); + + if (IsWritableStream(stream) === false) { + throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance'); + } + + if (stream._writableStreamController !== undefined) { + throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor'); + } + + this._controlledWritableStream = stream; + this._underlyingSink = underlyingSink; + this._queue = undefined; + this._queueTotalSize = undefined; + ResetQueue(this); + this._started = false; + var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark); + this._strategySize = normalizedStrategy.size; + this._strategyHWM = normalizedStrategy.highWaterMark; + var backpressure = WritableStreamDefaultControllerGetBackpressure(this); + WritableStreamUpdateBackpressure(stream, backpressure); + } + + _createClass(WritableStreamDefaultController, [{ + key: 'error', + value: function error(e) { + if (IsWritableStreamDefaultController(this) === false) { + throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController'); + } + + var state = this._controlledWritableStream._state; + + if (state !== 'writable') { + return; + } + + WritableStreamDefaultControllerError(this, e); + } + }, { + key: '__abortSteps', + value: function __abortSteps(reason) { + return PromiseInvokeOrNoop(this._underlyingSink, 'abort', [reason]); + } + }, { + key: '__errorSteps', + value: function __errorSteps() { + ResetQueue(this); + } + }, { + key: '__startSteps', + value: function __startSteps() { + var _this = this; + + var startResult = InvokeOrNoop(this._underlyingSink, 'start', [this]); + var stream = this._controlledWritableStream; + Promise.resolve(startResult).then(function () { + assert(stream._state === 'writable' || stream._state === 'erroring'); + _this._started = true; + WritableStreamDefaultControllerAdvanceQueueIfNeeded(_this); + }, function (r) { + assert(stream._state === 'writable' || stream._state === 'erroring'); + _this._started = true; + WritableStreamDealWithRejection(stream, r); + })["catch"](rethrowAssertionErrorRejection); + } + }]); + + return WritableStreamDefaultController; + }(); + + function WritableStreamDefaultControllerClose(controller) { + EnqueueValueWithSize(controller, 'close', 0); + WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); + } + + function WritableStreamDefaultControllerGetChunkSize(controller, chunk) { + var strategySize = controller._strategySize; + + if (strategySize === undefined) { + return 1; + } + + try { + return strategySize(chunk); + } catch (chunkSizeE) { + WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE); + return 1; + } + } + + function WritableStreamDefaultControllerGetDesiredSize(controller) { + return controller._strategyHWM - controller._queueTotalSize; + } + + function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) { + var writeRecord = { + chunk: chunk + }; + + try { + EnqueueValueWithSize(controller, writeRecord, chunkSize); + } catch (enqueueE) { + WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE); + return; + } + + var stream = controller._controlledWritableStream; + + if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') { + var backpressure = WritableStreamDefaultControllerGetBackpressure(controller); + WritableStreamUpdateBackpressure(stream, backpressure); + } + + WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); + } + + function IsWritableStreamDefaultController(x) { + if (!typeIsObject(x)) { + return false; + } + + if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) { + return false; + } + + return true; + } + + function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) { + var stream = controller._controlledWritableStream; + + if (controller._started === false) { + return; + } + + if (stream._inFlightWriteRequest !== undefined) { + return; + } + + var state = stream._state; + + if (state === 'closed' || state === 'errored') { + return; + } + + if (state === 'erroring') { + WritableStreamFinishErroring(stream); + return; + } + + if (controller._queue.length === 0) { + return; + } + + var writeRecord = PeekQueueValue(controller); + + if (writeRecord === 'close') { + WritableStreamDefaultControllerProcessClose(controller); + } else { + WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk); + } + } + + function WritableStreamDefaultControllerErrorIfNeeded(controller, error) { + if (controller._controlledWritableStream._state === 'writable') { + WritableStreamDefaultControllerError(controller, error); + } + } + + function WritableStreamDefaultControllerProcessClose(controller) { + var stream = controller._controlledWritableStream; + WritableStreamMarkCloseRequestInFlight(stream); + DequeueValue(controller); + assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued'); + var sinkClosePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'close', []); + sinkClosePromise.then(function () { + WritableStreamFinishInFlightClose(stream); + }, function (reason) { + WritableStreamFinishInFlightCloseWithError(stream, reason); + })["catch"](rethrowAssertionErrorRejection); + } + + function WritableStreamDefaultControllerProcessWrite(controller, chunk) { + var stream = controller._controlledWritableStream; + WritableStreamMarkFirstWriteRequestInFlight(stream); + var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]); + sinkWritePromise.then(function () { + WritableStreamFinishInFlightWrite(stream); + var state = stream._state; + assert(state === 'writable' || state === 'erroring'); + DequeueValue(controller); + + if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') { + var backpressure = WritableStreamDefaultControllerGetBackpressure(controller); + WritableStreamUpdateBackpressure(stream, backpressure); + } + + WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); + }, function (reason) { + WritableStreamFinishInFlightWriteWithError(stream, reason); + })["catch"](rethrowAssertionErrorRejection); + } + + function WritableStreamDefaultControllerGetBackpressure(controller) { + var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller); + return desiredSize <= 0; + } + + function WritableStreamDefaultControllerError(controller, error) { + var stream = controller._controlledWritableStream; + assert(stream._state === 'writable'); + WritableStreamStartErroring(stream, error); + } + + function streamBrandCheckException(name) { + return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream'); + } + + function defaultWriterBrandCheckException(name) { + return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter'); + } + + function defaultWriterLockException(name) { + return new TypeError('Cannot ' + name + ' a stream using a released writer'); + } + + function defaultWriterClosedPromiseInitialize(writer) { + writer._closedPromise = new Promise(function (resolve, reject) { + writer._closedPromise_resolve = resolve; + writer._closedPromise_reject = reject; + writer._closedPromiseState = 'pending'; + }); + } + + function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) { + writer._closedPromise = Promise.reject(reason); + writer._closedPromise_resolve = undefined; + writer._closedPromise_reject = undefined; + writer._closedPromiseState = 'rejected'; + } + + function defaultWriterClosedPromiseInitializeAsResolved(writer) { + writer._closedPromise = Promise.resolve(undefined); + writer._closedPromise_resolve = undefined; + writer._closedPromise_reject = undefined; + writer._closedPromiseState = 'resolved'; + } + + function defaultWriterClosedPromiseReject(writer, reason) { + assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined'); + assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined'); + assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending'); + + writer._closedPromise_reject(reason); + + writer._closedPromise_resolve = undefined; + writer._closedPromise_reject = undefined; + writer._closedPromiseState = 'rejected'; + } + + function defaultWriterClosedPromiseResetToRejected(writer, reason) { + assert(writer._closedPromise_resolve === undefined, 'writer._closedPromise_resolve === undefined'); + assert(writer._closedPromise_reject === undefined, 'writer._closedPromise_reject === undefined'); + assert(writer._closedPromiseState !== 'pending', 'writer._closedPromiseState is not pending'); + writer._closedPromise = Promise.reject(reason); + writer._closedPromiseState = 'rejected'; + } + + function defaultWriterClosedPromiseResolve(writer) { + assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined'); + assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined'); + assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending'); + + writer._closedPromise_resolve(undefined); + + writer._closedPromise_resolve = undefined; + writer._closedPromise_reject = undefined; + writer._closedPromiseState = 'resolved'; + } + + function defaultWriterReadyPromiseInitialize(writer) { + writer._readyPromise = new Promise(function (resolve, reject) { + writer._readyPromise_resolve = resolve; + writer._readyPromise_reject = reject; + }); + writer._readyPromiseState = 'pending'; + } + + function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) { + writer._readyPromise = Promise.reject(reason); + writer._readyPromise_resolve = undefined; + writer._readyPromise_reject = undefined; + writer._readyPromiseState = 'rejected'; + } + + function defaultWriterReadyPromiseInitializeAsResolved(writer) { + writer._readyPromise = Promise.resolve(undefined); + writer._readyPromise_resolve = undefined; + writer._readyPromise_reject = undefined; + writer._readyPromiseState = 'fulfilled'; + } + + function defaultWriterReadyPromiseReject(writer, reason) { + assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined'); + assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined'); + + writer._readyPromise_reject(reason); + + writer._readyPromise_resolve = undefined; + writer._readyPromise_reject = undefined; + writer._readyPromiseState = 'rejected'; + } + + function defaultWriterReadyPromiseReset(writer) { + assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined'); + assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined'); + writer._readyPromise = new Promise(function (resolve, reject) { + writer._readyPromise_resolve = resolve; + writer._readyPromise_reject = reject; + }); + writer._readyPromiseState = 'pending'; + } + + function defaultWriterReadyPromiseResetToRejected(writer, reason) { + assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined'); + assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined'); + writer._readyPromise = Promise.reject(reason); + writer._readyPromiseState = 'rejected'; + } + + function defaultWriterReadyPromiseResolve(writer) { + assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined'); + assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined'); + + writer._readyPromise_resolve(undefined); + + writer._readyPromise_resolve = undefined; + writer._readyPromise_reject = undefined; + writer._readyPromiseState = 'fulfilled'; + } +}, function (module, exports, __w_pdfjs_require__) { + "use strict"; + + var _require = __w_pdfjs_require__(0), + IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber; + + var _require2 = __w_pdfjs_require__(1), + assert = _require2.assert; + + exports.DequeueValue = function (container) { + assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: DequeueValue should only be used on containers with [[queue]] and [[queueTotalSize]].'); + assert(container._queue.length > 0, 'Spec-level failure: should never dequeue from an empty queue.'); + + var pair = container._queue.shift(); + + container._queueTotalSize -= pair.size; + + if (container._queueTotalSize < 0) { + container._queueTotalSize = 0; + } + + return pair.value; + }; + + exports.EnqueueValueWithSize = function (container, value, size) { + assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: EnqueueValueWithSize should only be used on containers with [[queue]] and ' + '[[queueTotalSize]].'); + size = Number(size); + + if (!IsFiniteNonNegativeNumber(size)) { + throw new RangeError('Size must be a finite, non-NaN, non-negative number.'); + } + + container._queue.push({ + value: value, + size: size + }); + + container._queueTotalSize += size; + }; + + exports.PeekQueueValue = function (container) { + assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: PeekQueueValue should only be used on containers with [[queue]] and [[queueTotalSize]].'); + assert(container._queue.length > 0, 'Spec-level failure: should never peek at an empty queue.'); + var pair = container._queue[0]; + return pair.value; + }; + + exports.ResetQueue = function (container) { + assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: ResetQueue should only be used on containers with [[queue]] and [[queueTotalSize]].'); + container._queue = []; + container._queueTotalSize = 0; + }; +}, function (module, exports, __w_pdfjs_require__) { + "use strict"; + + var _createClass = function () { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + var _require = __w_pdfjs_require__(0), + ArrayBufferCopy = _require.ArrayBufferCopy, + CreateIterResultObject = _require.CreateIterResultObject, + IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber, + InvokeOrNoop = _require.InvokeOrNoop, + PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop, + TransferArrayBuffer = _require.TransferArrayBuffer, + ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy, + ValidateAndNormalizeHighWaterMark = _require.ValidateAndNormalizeHighWaterMark; + + var _require2 = __w_pdfjs_require__(0), + createArrayFromList = _require2.createArrayFromList, + createDataProperty = _require2.createDataProperty, + typeIsObject = _require2.typeIsObject; + + var _require3 = __w_pdfjs_require__(1), + assert = _require3.assert, + rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection; + + var _require4 = __w_pdfjs_require__(3), + DequeueValue = _require4.DequeueValue, + EnqueueValueWithSize = _require4.EnqueueValueWithSize, + ResetQueue = _require4.ResetQueue; + + var _require5 = __w_pdfjs_require__(2), + AcquireWritableStreamDefaultWriter = _require5.AcquireWritableStreamDefaultWriter, + IsWritableStream = _require5.IsWritableStream, + IsWritableStreamLocked = _require5.IsWritableStreamLocked, + WritableStreamAbort = _require5.WritableStreamAbort, + WritableStreamDefaultWriterCloseWithErrorPropagation = _require5.WritableStreamDefaultWriterCloseWithErrorPropagation, + WritableStreamDefaultWriterRelease = _require5.WritableStreamDefaultWriterRelease, + WritableStreamDefaultWriterWrite = _require5.WritableStreamDefaultWriterWrite, + WritableStreamCloseQueuedOrInFlight = _require5.WritableStreamCloseQueuedOrInFlight; + + var ReadableStream = function () { + function ReadableStream() { + var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + size = _ref.size, + highWaterMark = _ref.highWaterMark; + + _classCallCheck(this, ReadableStream); + + this._state = 'readable'; + this._reader = undefined; + this._storedError = undefined; + this._disturbed = false; + this._readableStreamController = undefined; + var type = underlyingSource.type; + var typeString = String(type); + + if (typeString === 'bytes') { + if (highWaterMark === undefined) { + highWaterMark = 0; + } + + this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark); + } else if (type === undefined) { + if (highWaterMark === undefined) { + highWaterMark = 1; + } + + this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark); + } else { + throw new RangeError('Invalid type is specified'); + } + } + + _createClass(ReadableStream, [{ + key: 'cancel', + value: function cancel(reason) { + if (IsReadableStream(this) === false) { + return Promise.reject(streamBrandCheckException('cancel')); + } + + if (IsReadableStreamLocked(this) === true) { + return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader')); + } + + return ReadableStreamCancel(this, reason); + } + }, { + key: 'getReader', + value: function getReader() { + var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + mode = _ref2.mode; + + if (IsReadableStream(this) === false) { + throw streamBrandCheckException('getReader'); + } + + if (mode === undefined) { + return AcquireReadableStreamDefaultReader(this); + } + + mode = String(mode); + + if (mode === 'byob') { + return AcquireReadableStreamBYOBReader(this); + } + + throw new RangeError('Invalid mode is specified'); + } + }, { + key: 'pipeThrough', + value: function pipeThrough(_ref3, options) { + var writable = _ref3.writable, + readable = _ref3.readable; + var promise = this.pipeTo(writable, options); + ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise); + return readable; + } + }, { + key: 'pipeTo', + value: function pipeTo(dest) { + var _this = this; + + var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + preventClose = _ref4.preventClose, + preventAbort = _ref4.preventAbort, + preventCancel = _ref4.preventCancel; + + if (IsReadableStream(this) === false) { + return Promise.reject(streamBrandCheckException('pipeTo')); + } + + if (IsWritableStream(dest) === false) { + return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\'s first argument must be a WritableStream')); + } + + preventClose = Boolean(preventClose); + preventAbort = Boolean(preventAbort); + preventCancel = Boolean(preventCancel); + + if (IsReadableStreamLocked(this) === true) { + return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream')); + } + + if (IsWritableStreamLocked(dest) === true) { + return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream')); + } + + var reader = AcquireReadableStreamDefaultReader(this); + var writer = AcquireWritableStreamDefaultWriter(dest); + var shuttingDown = false; + var currentWrite = Promise.resolve(); + return new Promise(function (resolve, reject) { + function pipeLoop() { + currentWrite = Promise.resolve(); + + if (shuttingDown === true) { + return Promise.resolve(); + } + + return writer._readyPromise.then(function () { + return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) { + var value = _ref5.value, + done = _ref5.done; + + if (done === true) { + return; + } + + currentWrite = WritableStreamDefaultWriterWrite(writer, value)["catch"](function () {}); + }); + }).then(pipeLoop); + } + + isOrBecomesErrored(_this, reader._closedPromise, function (storedError) { + if (preventAbort === false) { + shutdownWithAction(function () { + return WritableStreamAbort(dest, storedError); + }, true, storedError); + } else { + shutdown(true, storedError); + } + }); + isOrBecomesErrored(dest, writer._closedPromise, function (storedError) { + if (preventCancel === false) { + shutdownWithAction(function () { + return ReadableStreamCancel(_this, storedError); + }, true, storedError); + } else { + shutdown(true, storedError); + } + }); + isOrBecomesClosed(_this, reader._closedPromise, function () { + if (preventClose === false) { + shutdownWithAction(function () { + return WritableStreamDefaultWriterCloseWithErrorPropagation(writer); + }); + } else { + shutdown(); + } + }); + + if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') { + var destClosed = new TypeError('the destination writable stream closed before all data could be piped to it'); + + if (preventCancel === false) { + shutdownWithAction(function () { + return ReadableStreamCancel(_this, destClosed); + }, true, destClosed); + } else { + shutdown(true, destClosed); + } + } + + pipeLoop()["catch"](function (err) { + currentWrite = Promise.resolve(); + rethrowAssertionErrorRejection(err); + }); + + function waitForWritesToFinish() { + var oldCurrentWrite = currentWrite; + return currentWrite.then(function () { + return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined; + }); + } + + function isOrBecomesErrored(stream, promise, action) { + if (stream._state === 'errored') { + action(stream._storedError); + } else { + promise["catch"](action)["catch"](rethrowAssertionErrorRejection); + } + } + + function isOrBecomesClosed(stream, promise, action) { + if (stream._state === 'closed') { + action(); + } else { + promise.then(action)["catch"](rethrowAssertionErrorRejection); + } + } + + function shutdownWithAction(action, originalIsError, originalError) { + if (shuttingDown === true) { + return; + } + + shuttingDown = true; + + if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) { + waitForWritesToFinish().then(doTheRest); + } else { + doTheRest(); + } + + function doTheRest() { + action().then(function () { + return finalize(originalIsError, originalError); + }, function (newError) { + return finalize(true, newError); + })["catch"](rethrowAssertionErrorRejection); + } + } + + function shutdown(isError, error) { + if (shuttingDown === true) { + return; + } + + shuttingDown = true; + + if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) { + waitForWritesToFinish().then(function () { + return finalize(isError, error); + })["catch"](rethrowAssertionErrorRejection); + } else { + finalize(isError, error); + } + } + + function finalize(isError, error) { + WritableStreamDefaultWriterRelease(writer); + ReadableStreamReaderGenericRelease(reader); + + if (isError) { + reject(error); + } else { + resolve(undefined); + } + } + }); + } + }, { + key: 'tee', + value: function tee() { + if (IsReadableStream(this) === false) { + throw streamBrandCheckException('tee'); + } + + var branches = ReadableStreamTee(this, false); + return createArrayFromList(branches); + } + }, { + key: 'locked', + get: function get() { + if (IsReadableStream(this) === false) { + throw streamBrandCheckException('locked'); + } + + return IsReadableStreamLocked(this); + } + }]); + + return ReadableStream; + }(); + + module.exports = { + ReadableStream: ReadableStream, + IsReadableStreamDisturbed: IsReadableStreamDisturbed, + ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose, + ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue, + ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError, + ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize + }; + + function AcquireReadableStreamBYOBReader(stream) { + return new ReadableStreamBYOBReader(stream); + } + + function AcquireReadableStreamDefaultReader(stream) { + return new ReadableStreamDefaultReader(stream); + } + + function IsReadableStream(x) { + if (!typeIsObject(x)) { + return false; + } + + if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) { + return false; + } + + return true; + } + + function IsReadableStreamDisturbed(stream) { + assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams'); + return stream._disturbed; + } + + function IsReadableStreamLocked(stream) { + assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams'); + + if (stream._reader === undefined) { + return false; + } + + return true; + } + + function ReadableStreamTee(stream, cloneForBranch2) { + assert(IsReadableStream(stream) === true); + assert(typeof cloneForBranch2 === 'boolean'); + var reader = AcquireReadableStreamDefaultReader(stream); + var teeState = { + closedOrErrored: false, + canceled1: false, + canceled2: false, + reason1: undefined, + reason2: undefined + }; + teeState.promise = new Promise(function (resolve) { + teeState._resolve = resolve; + }); + var pull = create_ReadableStreamTeePullFunction(); + pull._reader = reader; + pull._teeState = teeState; + pull._cloneForBranch2 = cloneForBranch2; + var cancel1 = create_ReadableStreamTeeBranch1CancelFunction(); + cancel1._stream = stream; + cancel1._teeState = teeState; + var cancel2 = create_ReadableStreamTeeBranch2CancelFunction(); + cancel2._stream = stream; + cancel2._teeState = teeState; + var underlyingSource1 = Object.create(Object.prototype); + createDataProperty(underlyingSource1, 'pull', pull); + createDataProperty(underlyingSource1, 'cancel', cancel1); + var branch1Stream = new ReadableStream(underlyingSource1); + var underlyingSource2 = Object.create(Object.prototype); + createDataProperty(underlyingSource2, 'pull', pull); + createDataProperty(underlyingSource2, 'cancel', cancel2); + var branch2Stream = new ReadableStream(underlyingSource2); + pull._branch1 = branch1Stream._readableStreamController; + pull._branch2 = branch2Stream._readableStreamController; + + reader._closedPromise["catch"](function (r) { + if (teeState.closedOrErrored === true) { + return; + } + + ReadableStreamDefaultControllerError(pull._branch1, r); + ReadableStreamDefaultControllerError(pull._branch2, r); + teeState.closedOrErrored = true; + }); + + return [branch1Stream, branch2Stream]; + } + + function create_ReadableStreamTeePullFunction() { + function f() { + var reader = f._reader, + branch1 = f._branch1, + branch2 = f._branch2, + teeState = f._teeState; + return ReadableStreamDefaultReaderRead(reader).then(function (result) { + assert(typeIsObject(result)); + var value = result.value; + var done = result.done; + assert(typeof done === 'boolean'); + + if (done === true && teeState.closedOrErrored === false) { + if (teeState.canceled1 === false) { + ReadableStreamDefaultControllerClose(branch1); + } + + if (teeState.canceled2 === false) { + ReadableStreamDefaultControllerClose(branch2); + } + + teeState.closedOrErrored = true; + } + + if (teeState.closedOrErrored === true) { + return; + } + + var value1 = value; + var value2 = value; + + if (teeState.canceled1 === false) { + ReadableStreamDefaultControllerEnqueue(branch1, value1); + } + + if (teeState.canceled2 === false) { + ReadableStreamDefaultControllerEnqueue(branch2, value2); + } + }); + } + + return f; + } + + function create_ReadableStreamTeeBranch1CancelFunction() { + function f(reason) { + var stream = f._stream, + teeState = f._teeState; + teeState.canceled1 = true; + teeState.reason1 = reason; + + if (teeState.canceled2 === true) { + var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]); + var cancelResult = ReadableStreamCancel(stream, compositeReason); + + teeState._resolve(cancelResult); + } + + return teeState.promise; + } + + return f; + } + + function create_ReadableStreamTeeBranch2CancelFunction() { + function f(reason) { + var stream = f._stream, + teeState = f._teeState; + teeState.canceled2 = true; + teeState.reason2 = reason; + + if (teeState.canceled1 === true) { + var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]); + var cancelResult = ReadableStreamCancel(stream, compositeReason); + + teeState._resolve(cancelResult); + } + + return teeState.promise; + } + + return f; + } + + function ReadableStreamAddReadIntoRequest(stream) { + assert(IsReadableStreamBYOBReader(stream._reader) === true); + assert(stream._state === 'readable' || stream._state === 'closed'); + var promise = new Promise(function (resolve, reject) { + var readIntoRequest = { + _resolve: resolve, + _reject: reject + }; + + stream._reader._readIntoRequests.push(readIntoRequest); + }); + return promise; + } + + function ReadableStreamAddReadRequest(stream) { + assert(IsReadableStreamDefaultReader(stream._reader) === true); + assert(stream._state === 'readable'); + var promise = new Promise(function (resolve, reject) { + var readRequest = { + _resolve: resolve, + _reject: reject + }; + + stream._reader._readRequests.push(readRequest); + }); + return promise; + } + + function ReadableStreamCancel(stream, reason) { + stream._disturbed = true; + + if (stream._state === 'closed') { + return Promise.resolve(undefined); + } + + if (stream._state === 'errored') { + return Promise.reject(stream._storedError); + } + + ReadableStreamClose(stream); + + var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason); + + return sourceCancelPromise.then(function () { + return undefined; + }); + } + + function ReadableStreamClose(stream) { + assert(stream._state === 'readable'); + stream._state = 'closed'; + var reader = stream._reader; + + if (reader === undefined) { + return undefined; + } + + if (IsReadableStreamDefaultReader(reader) === true) { + for (var i = 0; i < reader._readRequests.length; i++) { + var _resolve = reader._readRequests[i]._resolve; + + _resolve(CreateIterResultObject(undefined, true)); + } + + reader._readRequests = []; + } + + defaultReaderClosedPromiseResolve(reader); + return undefined; + } + + function ReadableStreamError(stream, e) { + assert(IsReadableStream(stream) === true, 'stream must be ReadableStream'); + assert(stream._state === 'readable', 'state must be readable'); + stream._state = 'errored'; + stream._storedError = e; + var reader = stream._reader; + + if (reader === undefined) { + return undefined; + } + + if (IsReadableStreamDefaultReader(reader) === true) { + for (var i = 0; i < reader._readRequests.length; i++) { + var readRequest = reader._readRequests[i]; + + readRequest._reject(e); + } + + reader._readRequests = []; + } else { + assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader'); + + for (var _i = 0; _i < reader._readIntoRequests.length; _i++) { + var readIntoRequest = reader._readIntoRequests[_i]; + + readIntoRequest._reject(e); + } + + reader._readIntoRequests = []; + } + + defaultReaderClosedPromiseReject(reader, e); + + reader._closedPromise["catch"](function () {}); + } + + function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) { + var reader = stream._reader; + assert(reader._readIntoRequests.length > 0); + + var readIntoRequest = reader._readIntoRequests.shift(); + + readIntoRequest._resolve(CreateIterResultObject(chunk, done)); + } + + function ReadableStreamFulfillReadRequest(stream, chunk, done) { + var reader = stream._reader; + assert(reader._readRequests.length > 0); + + var readRequest = reader._readRequests.shift(); + + readRequest._resolve(CreateIterResultObject(chunk, done)); + } + + function ReadableStreamGetNumReadIntoRequests(stream) { + return stream._reader._readIntoRequests.length; + } + + function ReadableStreamGetNumReadRequests(stream) { + return stream._reader._readRequests.length; + } + + function ReadableStreamHasBYOBReader(stream) { + var reader = stream._reader; + + if (reader === undefined) { + return false; + } + + if (IsReadableStreamBYOBReader(reader) === false) { + return false; + } + + return true; + } + + function ReadableStreamHasDefaultReader(stream) { + var reader = stream._reader; + + if (reader === undefined) { + return false; + } + + if (IsReadableStreamDefaultReader(reader) === false) { + return false; + } + + return true; + } + + var ReadableStreamDefaultReader = function () { + function ReadableStreamDefaultReader(stream) { + _classCallCheck(this, ReadableStreamDefaultReader); + + if (IsReadableStream(stream) === false) { + throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance'); + } + + if (IsReadableStreamLocked(stream) === true) { + throw new TypeError('This stream has already been locked for exclusive reading by another reader'); + } + + ReadableStreamReaderGenericInitialize(this, stream); + this._readRequests = []; + } + + _createClass(ReadableStreamDefaultReader, [{ + key: 'cancel', + value: function cancel(reason) { + if (IsReadableStreamDefaultReader(this) === false) { + return Promise.reject(defaultReaderBrandCheckException('cancel')); + } + + if (this._ownerReadableStream === undefined) { + return Promise.reject(readerLockException('cancel')); + } + + return ReadableStreamReaderGenericCancel(this, reason); + } + }, { + key: 'read', + value: function read() { + if (IsReadableStreamDefaultReader(this) === false) { + return Promise.reject(defaultReaderBrandCheckException('read')); + } + + if (this._ownerReadableStream === undefined) { + return Promise.reject(readerLockException('read from')); + } + + return ReadableStreamDefaultReaderRead(this); + } + }, { + key: 'releaseLock', + value: function releaseLock() { + if (IsReadableStreamDefaultReader(this) === false) { + throw defaultReaderBrandCheckException('releaseLock'); + } + + if (this._ownerReadableStream === undefined) { + return; + } + + if (this._readRequests.length > 0) { + throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); + } + + ReadableStreamReaderGenericRelease(this); + } + }, { + key: 'closed', + get: function get() { + if (IsReadableStreamDefaultReader(this) === false) { + return Promise.reject(defaultReaderBrandCheckException('closed')); + } + + return this._closedPromise; + } + }]); + + return ReadableStreamDefaultReader; + }(); + + var ReadableStreamBYOBReader = function () { + function ReadableStreamBYOBReader(stream) { + _classCallCheck(this, ReadableStreamBYOBReader); + + if (!IsReadableStream(stream)) { + throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source'); + } + + if (IsReadableByteStreamController(stream._readableStreamController) === false) { + throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source'); + } + + if (IsReadableStreamLocked(stream)) { + throw new TypeError('This stream has already been locked for exclusive reading by another reader'); + } + + ReadableStreamReaderGenericInitialize(this, stream); + this._readIntoRequests = []; + } + + _createClass(ReadableStreamBYOBReader, [{ + key: 'cancel', + value: function cancel(reason) { + if (!IsReadableStreamBYOBReader(this)) { + return Promise.reject(byobReaderBrandCheckException('cancel')); + } + + if (this._ownerReadableStream === undefined) { + return Promise.reject(readerLockException('cancel')); + } + + return ReadableStreamReaderGenericCancel(this, reason); + } + }, { + key: 'read', + value: function read(view) { + if (!IsReadableStreamBYOBReader(this)) { + return Promise.reject(byobReaderBrandCheckException('read')); + } + + if (this._ownerReadableStream === undefined) { + return Promise.reject(readerLockException('read from')); + } + + if (!ArrayBuffer.isView(view)) { + return Promise.reject(new TypeError('view must be an array buffer view')); + } + + if (view.byteLength === 0) { + return Promise.reject(new TypeError('view must have non-zero byteLength')); + } + + return ReadableStreamBYOBReaderRead(this, view); + } + }, { + key: 'releaseLock', + value: function releaseLock() { + if (!IsReadableStreamBYOBReader(this)) { + throw byobReaderBrandCheckException('releaseLock'); + } + + if (this._ownerReadableStream === undefined) { + return; + } + + if (this._readIntoRequests.length > 0) { + throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); + } + + ReadableStreamReaderGenericRelease(this); + } + }, { + key: 'closed', + get: function get() { + if (!IsReadableStreamBYOBReader(this)) { + return Promise.reject(byobReaderBrandCheckException('closed')); + } + + return this._closedPromise; + } + }]); + + return ReadableStreamBYOBReader; + }(); + + function IsReadableStreamBYOBReader(x) { + if (!typeIsObject(x)) { + return false; + } + + if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) { + return false; + } + + return true; + } + + function IsReadableStreamDefaultReader(x) { + if (!typeIsObject(x)) { + return false; + } + + if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) { + return false; + } + + return true; + } + + function ReadableStreamReaderGenericInitialize(reader, stream) { + reader._ownerReadableStream = stream; + stream._reader = reader; + + if (stream._state === 'readable') { + defaultReaderClosedPromiseInitialize(reader); + } else if (stream._state === 'closed') { + defaultReaderClosedPromiseInitializeAsResolved(reader); + } else { + assert(stream._state === 'errored', 'state must be errored'); + defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError); + + reader._closedPromise["catch"](function () {}); + } + } + + function ReadableStreamReaderGenericCancel(reader, reason) { + var stream = reader._ownerReadableStream; + assert(stream !== undefined); + return ReadableStreamCancel(stream, reason); + } + + function ReadableStreamReaderGenericRelease(reader) { + assert(reader._ownerReadableStream !== undefined); + assert(reader._ownerReadableStream._reader === reader); + + if (reader._ownerReadableStream._state === 'readable') { + defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness')); + } else { + defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness')); + } + + reader._closedPromise["catch"](function () {}); + + reader._ownerReadableStream._reader = undefined; + reader._ownerReadableStream = undefined; + } + + function ReadableStreamBYOBReaderRead(reader, view) { + var stream = reader._ownerReadableStream; + assert(stream !== undefined); + stream._disturbed = true; + + if (stream._state === 'errored') { + return Promise.reject(stream._storedError); + } + + return ReadableByteStreamControllerPullInto(stream._readableStreamController, view); + } + + function ReadableStreamDefaultReaderRead(reader) { + var stream = reader._ownerReadableStream; + assert(stream !== undefined); + stream._disturbed = true; + + if (stream._state === 'closed') { + return Promise.resolve(CreateIterResultObject(undefined, true)); + } + + if (stream._state === 'errored') { + return Promise.reject(stream._storedError); + } + + assert(stream._state === 'readable'); + return stream._readableStreamController.__pullSteps(); + } + + var ReadableStreamDefaultController = function () { + function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) { + _classCallCheck(this, ReadableStreamDefaultController); + + if (IsReadableStream(stream) === false) { + throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance'); + } + + if (stream._readableStreamController !== undefined) { + throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor'); + } + + this._controlledReadableStream = stream; + this._underlyingSource = underlyingSource; + this._queue = undefined; + this._queueTotalSize = undefined; + ResetQueue(this); + this._started = false; + this._closeRequested = false; + this._pullAgain = false; + this._pulling = false; + var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark); + this._strategySize = normalizedStrategy.size; + this._strategyHWM = normalizedStrategy.highWaterMark; + var controller = this; + var startResult = InvokeOrNoop(underlyingSource, 'start', [this]); + Promise.resolve(startResult).then(function () { + controller._started = true; + assert(controller._pulling === false); + assert(controller._pullAgain === false); + ReadableStreamDefaultControllerCallPullIfNeeded(controller); + }, function (r) { + ReadableStreamDefaultControllerErrorIfNeeded(controller, r); + })["catch"](rethrowAssertionErrorRejection); + } + + _createClass(ReadableStreamDefaultController, [{ + key: 'close', + value: function close() { + if (IsReadableStreamDefaultController(this) === false) { + throw defaultControllerBrandCheckException('close'); + } + + if (this._closeRequested === true) { + throw new TypeError('The stream has already been closed; do not close it again!'); + } + + var state = this._controlledReadableStream._state; + + if (state !== 'readable') { + throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed'); + } + + ReadableStreamDefaultControllerClose(this); + } + }, { + key: 'enqueue', + value: function enqueue(chunk) { + if (IsReadableStreamDefaultController(this) === false) { + throw defaultControllerBrandCheckException('enqueue'); + } + + if (this._closeRequested === true) { + throw new TypeError('stream is closed or draining'); + } + + var state = this._controlledReadableStream._state; + + if (state !== 'readable') { + throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to'); + } + + return ReadableStreamDefaultControllerEnqueue(this, chunk); + } + }, { + key: 'error', + value: function error(e) { + if (IsReadableStreamDefaultController(this) === false) { + throw defaultControllerBrandCheckException('error'); + } + + var stream = this._controlledReadableStream; + + if (stream._state !== 'readable') { + throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored'); + } + + ReadableStreamDefaultControllerError(this, e); + } + }, { + key: '__cancelSteps', + value: function __cancelSteps(reason) { + ResetQueue(this); + return PromiseInvokeOrNoop(this._underlyingSource, 'cancel', [reason]); + } + }, { + key: '__pullSteps', + value: function __pullSteps() { + var stream = this._controlledReadableStream; + + if (this._queue.length > 0) { + var chunk = DequeueValue(this); + + if (this._closeRequested === true && this._queue.length === 0) { + ReadableStreamClose(stream); + } else { + ReadableStreamDefaultControllerCallPullIfNeeded(this); + } + + return Promise.resolve(CreateIterResultObject(chunk, false)); + } + + var pendingPromise = ReadableStreamAddReadRequest(stream); + ReadableStreamDefaultControllerCallPullIfNeeded(this); + return pendingPromise; + } + }, { + key: 'desiredSize', + get: function get() { + if (IsReadableStreamDefaultController(this) === false) { + throw defaultControllerBrandCheckException('desiredSize'); + } + + return ReadableStreamDefaultControllerGetDesiredSize(this); + } + }]); + + return ReadableStreamDefaultController; + }(); + + function IsReadableStreamDefaultController(x) { + if (!typeIsObject(x)) { + return false; + } + + if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) { + return false; + } + + return true; + } + + function ReadableStreamDefaultControllerCallPullIfNeeded(controller) { + var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller); + + if (shouldPull === false) { + return undefined; + } + + if (controller._pulling === true) { + controller._pullAgain = true; + return undefined; + } + + assert(controller._pullAgain === false); + controller._pulling = true; + var pullPromise = PromiseInvokeOrNoop(controller._underlyingSource, 'pull', [controller]); + pullPromise.then(function () { + controller._pulling = false; + + if (controller._pullAgain === true) { + controller._pullAgain = false; + return ReadableStreamDefaultControllerCallPullIfNeeded(controller); + } + + return undefined; + }, function (e) { + ReadableStreamDefaultControllerErrorIfNeeded(controller, e); + })["catch"](rethrowAssertionErrorRejection); + return undefined; + } + + function ReadableStreamDefaultControllerShouldCallPull(controller) { + var stream = controller._controlledReadableStream; + + if (stream._state === 'closed' || stream._state === 'errored') { + return false; + } + + if (controller._closeRequested === true) { + return false; + } + + if (controller._started === false) { + return false; + } + + if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { + return true; + } + + var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller); + + if (desiredSize > 0) { + return true; + } + + return false; + } + + function ReadableStreamDefaultControllerClose(controller) { + var stream = controller._controlledReadableStream; + assert(controller._closeRequested === false); + assert(stream._state === 'readable'); + controller._closeRequested = true; + + if (controller._queue.length === 0) { + ReadableStreamClose(stream); + } + } + + function ReadableStreamDefaultControllerEnqueue(controller, chunk) { + var stream = controller._controlledReadableStream; + assert(controller._closeRequested === false); + assert(stream._state === 'readable'); + + if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { + ReadableStreamFulfillReadRequest(stream, chunk, false); + } else { + var chunkSize = 1; + + if (controller._strategySize !== undefined) { + var strategySize = controller._strategySize; + + try { + chunkSize = strategySize(chunk); + } catch (chunkSizeE) { + ReadableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE); + throw chunkSizeE; + } + } + + try { + EnqueueValueWithSize(controller, chunk, chunkSize); + } catch (enqueueE) { + ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE); + throw enqueueE; + } + } + + ReadableStreamDefaultControllerCallPullIfNeeded(controller); + return undefined; + } + + function ReadableStreamDefaultControllerError(controller, e) { + var stream = controller._controlledReadableStream; + assert(stream._state === 'readable'); + ResetQueue(controller); + ReadableStreamError(stream, e); + } + + function ReadableStreamDefaultControllerErrorIfNeeded(controller, e) { + if (controller._controlledReadableStream._state === 'readable') { + ReadableStreamDefaultControllerError(controller, e); + } + } + + function ReadableStreamDefaultControllerGetDesiredSize(controller) { + var stream = controller._controlledReadableStream; + var state = stream._state; + + if (state === 'errored') { + return null; + } + + if (state === 'closed') { + return 0; + } + + return controller._strategyHWM - controller._queueTotalSize; + } + + var ReadableStreamBYOBRequest = function () { + function ReadableStreamBYOBRequest(controller, view) { + _classCallCheck(this, ReadableStreamBYOBRequest); + + this._associatedReadableByteStreamController = controller; + this._view = view; + } + + _createClass(ReadableStreamBYOBRequest, [{ + key: 'respond', + value: function respond(bytesWritten) { + if (IsReadableStreamBYOBRequest(this) === false) { + throw byobRequestBrandCheckException('respond'); + } + + if (this._associatedReadableByteStreamController === undefined) { + throw new TypeError('This BYOB request has been invalidated'); + } + + ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten); + } + }, { + key: 'respondWithNewView', + value: function respondWithNewView(view) { + if (IsReadableStreamBYOBRequest(this) === false) { + throw byobRequestBrandCheckException('respond'); + } + + if (this._associatedReadableByteStreamController === undefined) { + throw new TypeError('This BYOB request has been invalidated'); + } + + if (!ArrayBuffer.isView(view)) { + throw new TypeError('You can only respond with array buffer views'); + } + + ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view); + } + }, { + key: 'view', + get: function get() { + return this._view; + } + }]); + + return ReadableStreamBYOBRequest; + }(); + + var ReadableByteStreamController = function () { + function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) { + _classCallCheck(this, ReadableByteStreamController); + + if (IsReadableStream(stream) === false) { + throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source'); + } + + if (stream._readableStreamController !== undefined) { + throw new TypeError('ReadableByteStreamController instances can only be created by the ReadableStream constructor given a byte ' + 'source'); + } + + this._controlledReadableStream = stream; + this._underlyingByteSource = underlyingByteSource; + this._pullAgain = false; + this._pulling = false; + ReadableByteStreamControllerClearPendingPullIntos(this); + this._queue = this._queueTotalSize = undefined; + ResetQueue(this); + this._closeRequested = false; + this._started = false; + this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark); + var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize; + + if (autoAllocateChunkSize !== undefined) { + if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) { + throw new RangeError('autoAllocateChunkSize must be a positive integer'); + } + } + + this._autoAllocateChunkSize = autoAllocateChunkSize; + this._pendingPullIntos = []; + var controller = this; + var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]); + Promise.resolve(startResult).then(function () { + controller._started = true; + assert(controller._pulling === false); + assert(controller._pullAgain === false); + ReadableByteStreamControllerCallPullIfNeeded(controller); + }, function (r) { + if (stream._state === 'readable') { + ReadableByteStreamControllerError(controller, r); + } + })["catch"](rethrowAssertionErrorRejection); + } + + _createClass(ReadableByteStreamController, [{ + key: 'close', + value: function close() { + if (IsReadableByteStreamController(this) === false) { + throw byteStreamControllerBrandCheckException('close'); + } + + if (this._closeRequested === true) { + throw new TypeError('The stream has already been closed; do not close it again!'); + } + + var state = this._controlledReadableStream._state; + + if (state !== 'readable') { + throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed'); + } + + ReadableByteStreamControllerClose(this); + } + }, { + key: 'enqueue', + value: function enqueue(chunk) { + if (IsReadableByteStreamController(this) === false) { + throw byteStreamControllerBrandCheckException('enqueue'); + } + + if (this._closeRequested === true) { + throw new TypeError('stream is closed or draining'); + } + + var state = this._controlledReadableStream._state; + + if (state !== 'readable') { + throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to'); + } + + if (!ArrayBuffer.isView(chunk)) { + throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController'); + } + + ReadableByteStreamControllerEnqueue(this, chunk); + } + }, { + key: 'error', + value: function error(e) { + if (IsReadableByteStreamController(this) === false) { + throw byteStreamControllerBrandCheckException('error'); + } + + var stream = this._controlledReadableStream; + + if (stream._state !== 'readable') { + throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored'); + } + + ReadableByteStreamControllerError(this, e); + } + }, { + key: '__cancelSteps', + value: function __cancelSteps(reason) { + if (this._pendingPullIntos.length > 0) { + var firstDescriptor = this._pendingPullIntos[0]; + firstDescriptor.bytesFilled = 0; + } + + ResetQueue(this); + return PromiseInvokeOrNoop(this._underlyingByteSource, 'cancel', [reason]); + } + }, { + key: '__pullSteps', + value: function __pullSteps() { + var stream = this._controlledReadableStream; + assert(ReadableStreamHasDefaultReader(stream) === true); + + if (this._queueTotalSize > 0) { + assert(ReadableStreamGetNumReadRequests(stream) === 0); + + var entry = this._queue.shift(); + + this._queueTotalSize -= entry.byteLength; + ReadableByteStreamControllerHandleQueueDrain(this); + var view = void 0; + + try { + view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength); + } catch (viewE) { + return Promise.reject(viewE); + } + + return Promise.resolve(CreateIterResultObject(view, false)); + } + + var autoAllocateChunkSize = this._autoAllocateChunkSize; + + if (autoAllocateChunkSize !== undefined) { + var buffer = void 0; + + try { + buffer = new ArrayBuffer(autoAllocateChunkSize); + } catch (bufferE) { + return Promise.reject(bufferE); + } + + var pullIntoDescriptor = { + buffer: buffer, + byteOffset: 0, + byteLength: autoAllocateChunkSize, + bytesFilled: 0, + elementSize: 1, + ctor: Uint8Array, + readerType: 'default' + }; + + this._pendingPullIntos.push(pullIntoDescriptor); + } + + var promise = ReadableStreamAddReadRequest(stream); + ReadableByteStreamControllerCallPullIfNeeded(this); + return promise; + } + }, { + key: 'byobRequest', + get: function get() { + if (IsReadableByteStreamController(this) === false) { + throw byteStreamControllerBrandCheckException('byobRequest'); + } + + if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) { + var firstDescriptor = this._pendingPullIntos[0]; + var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled); + this._byobRequest = new ReadableStreamBYOBRequest(this, view); + } + + return this._byobRequest; + } + }, { + key: 'desiredSize', + get: function get() { + if (IsReadableByteStreamController(this) === false) { + throw byteStreamControllerBrandCheckException('desiredSize'); + } + + return ReadableByteStreamControllerGetDesiredSize(this); + } + }]); + + return ReadableByteStreamController; + }(); + + function IsReadableByteStreamController(x) { + if (!typeIsObject(x)) { + return false; + } + + if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) { + return false; + } + + return true; + } + + function IsReadableStreamBYOBRequest(x) { + if (!typeIsObject(x)) { + return false; + } + + if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) { + return false; + } + + return true; + } + + function ReadableByteStreamControllerCallPullIfNeeded(controller) { + var shouldPull = ReadableByteStreamControllerShouldCallPull(controller); + + if (shouldPull === false) { + return undefined; + } + + if (controller._pulling === true) { + controller._pullAgain = true; + return undefined; + } + + assert(controller._pullAgain === false); + controller._pulling = true; + var pullPromise = PromiseInvokeOrNoop(controller._underlyingByteSource, 'pull', [controller]); + pullPromise.then(function () { + controller._pulling = false; + + if (controller._pullAgain === true) { + controller._pullAgain = false; + ReadableByteStreamControllerCallPullIfNeeded(controller); + } + }, function (e) { + if (controller._controlledReadableStream._state === 'readable') { + ReadableByteStreamControllerError(controller, e); + } + })["catch"](rethrowAssertionErrorRejection); + return undefined; + } + + function ReadableByteStreamControllerClearPendingPullIntos(controller) { + ReadableByteStreamControllerInvalidateBYOBRequest(controller); + controller._pendingPullIntos = []; + } + + function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) { + assert(stream._state !== 'errored', 'state must not be errored'); + var done = false; + + if (stream._state === 'closed') { + assert(pullIntoDescriptor.bytesFilled === 0); + done = true; + } + + var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); + + if (pullIntoDescriptor.readerType === 'default') { + ReadableStreamFulfillReadRequest(stream, filledView, done); + } else { + assert(pullIntoDescriptor.readerType === 'byob'); + ReadableStreamFulfillReadIntoRequest(stream, filledView, done); + } + } + + function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) { + var bytesFilled = pullIntoDescriptor.bytesFilled; + var elementSize = pullIntoDescriptor.elementSize; + assert(bytesFilled <= pullIntoDescriptor.byteLength); + assert(bytesFilled % elementSize === 0); + return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize); + } + + function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) { + controller._queue.push({ + buffer: buffer, + byteOffset: byteOffset, + byteLength: byteLength + }); + + controller._queueTotalSize += byteLength; + } + + function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) { + var elementSize = pullIntoDescriptor.elementSize; + var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize; + var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled); + var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy; + var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize; + var totalBytesToCopyRemaining = maxBytesToCopy; + var ready = false; + + if (maxAlignedBytes > currentAlignedBytes) { + totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled; + ready = true; + } + + var queue = controller._queue; + + while (totalBytesToCopyRemaining > 0) { + var headOfQueue = queue[0]; + var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength); + var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; + ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy); + + if (headOfQueue.byteLength === bytesToCopy) { + queue.shift(); + } else { + headOfQueue.byteOffset += bytesToCopy; + headOfQueue.byteLength -= bytesToCopy; + } + + controller._queueTotalSize -= bytesToCopy; + ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor); + totalBytesToCopyRemaining -= bytesToCopy; + } + + if (ready === false) { + assert(controller._queueTotalSize === 0, 'queue must be empty'); + assert(pullIntoDescriptor.bytesFilled > 0); + assert(pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize); + } + + return ready; + } + + function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) { + assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor); + ReadableByteStreamControllerInvalidateBYOBRequest(controller); + pullIntoDescriptor.bytesFilled += size; + } + + function ReadableByteStreamControllerHandleQueueDrain(controller) { + assert(controller._controlledReadableStream._state === 'readable'); + + if (controller._queueTotalSize === 0 && controller._closeRequested === true) { + ReadableStreamClose(controller._controlledReadableStream); + } else { + ReadableByteStreamControllerCallPullIfNeeded(controller); + } + } + + function ReadableByteStreamControllerInvalidateBYOBRequest(controller) { + if (controller._byobRequest === undefined) { + return; + } + + controller._byobRequest._associatedReadableByteStreamController = undefined; + controller._byobRequest._view = undefined; + controller._byobRequest = undefined; + } + + function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) { + assert(controller._closeRequested === false); + + while (controller._pendingPullIntos.length > 0) { + if (controller._queueTotalSize === 0) { + return; + } + + var pullIntoDescriptor = controller._pendingPullIntos[0]; + + if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) { + ReadableByteStreamControllerShiftPendingPullInto(controller); + ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor); + } + } + } + + function ReadableByteStreamControllerPullInto(controller, view) { + var stream = controller._controlledReadableStream; + var elementSize = 1; + + if (view.constructor !== DataView) { + elementSize = view.constructor.BYTES_PER_ELEMENT; + } + + var ctor = view.constructor; + var pullIntoDescriptor = { + buffer: view.buffer, + byteOffset: view.byteOffset, + byteLength: view.byteLength, + bytesFilled: 0, + elementSize: elementSize, + ctor: ctor, + readerType: 'byob' + }; + + if (controller._pendingPullIntos.length > 0) { + pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); + + controller._pendingPullIntos.push(pullIntoDescriptor); + + return ReadableStreamAddReadIntoRequest(stream); + } + + if (stream._state === 'closed') { + var emptyView = new view.constructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0); + return Promise.resolve(CreateIterResultObject(emptyView, true)); + } + + if (controller._queueTotalSize > 0) { + if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) { + var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); + ReadableByteStreamControllerHandleQueueDrain(controller); + return Promise.resolve(CreateIterResultObject(filledView, false)); + } + + if (controller._closeRequested === true) { + var e = new TypeError('Insufficient bytes to fill elements in the given buffer'); + ReadableByteStreamControllerError(controller, e); + return Promise.reject(e); + } + } + + pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); + + controller._pendingPullIntos.push(pullIntoDescriptor); + + var promise = ReadableStreamAddReadIntoRequest(stream); + ReadableByteStreamControllerCallPullIfNeeded(controller); + return promise; + } + + function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) { + firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer); + assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0'); + var stream = controller._controlledReadableStream; + + if (ReadableStreamHasBYOBReader(stream) === true) { + while (ReadableStreamGetNumReadIntoRequests(stream) > 0) { + var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller); + ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor); + } + } + } + + function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) { + if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) { + throw new RangeError('bytesWritten out of range'); + } + + ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor); + + if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) { + return; + } + + ReadableByteStreamControllerShiftPendingPullInto(controller); + var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize; + + if (remainderSize > 0) { + var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; + var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end); + ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength); + } + + pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); + pullIntoDescriptor.bytesFilled -= remainderSize; + ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor); + ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); + } + + function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) { + var firstDescriptor = controller._pendingPullIntos[0]; + var stream = controller._controlledReadableStream; + + if (stream._state === 'closed') { + if (bytesWritten !== 0) { + throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream'); + } + + ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor); + } else { + assert(stream._state === 'readable'); + ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor); + } + } + + function ReadableByteStreamControllerShiftPendingPullInto(controller) { + var descriptor = controller._pendingPullIntos.shift(); + + ReadableByteStreamControllerInvalidateBYOBRequest(controller); + return descriptor; + } + + function ReadableByteStreamControllerShouldCallPull(controller) { + var stream = controller._controlledReadableStream; + + if (stream._state !== 'readable') { + return false; + } + + if (controller._closeRequested === true) { + return false; + } + + if (controller._started === false) { + return false; + } + + if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { + return true; + } + + if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) { + return true; + } + + if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) { + return true; + } + + return false; + } + + function ReadableByteStreamControllerClose(controller) { + var stream = controller._controlledReadableStream; + assert(controller._closeRequested === false); + assert(stream._state === 'readable'); + + if (controller._queueTotalSize > 0) { + controller._closeRequested = true; + return; + } + + if (controller._pendingPullIntos.length > 0) { + var firstPendingPullInto = controller._pendingPullIntos[0]; + + if (firstPendingPullInto.bytesFilled > 0) { + var e = new TypeError('Insufficient bytes to fill elements in the given buffer'); + ReadableByteStreamControllerError(controller, e); + throw e; + } + } + + ReadableStreamClose(stream); + } + + function ReadableByteStreamControllerEnqueue(controller, chunk) { + var stream = controller._controlledReadableStream; + assert(controller._closeRequested === false); + assert(stream._state === 'readable'); + var buffer = chunk.buffer; + var byteOffset = chunk.byteOffset; + var byteLength = chunk.byteLength; + var transferredBuffer = TransferArrayBuffer(buffer); + + if (ReadableStreamHasDefaultReader(stream) === true) { + if (ReadableStreamGetNumReadRequests(stream) === 0) { + ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); + } else { + assert(controller._queue.length === 0); + var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength); + ReadableStreamFulfillReadRequest(stream, transferredView, false); + } + } else if (ReadableStreamHasBYOBReader(stream) === true) { + ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); + ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); + } else { + assert(IsReadableStreamLocked(stream) === false, 'stream must not be locked'); + ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); + } + } + + function ReadableByteStreamControllerError(controller, e) { + var stream = controller._controlledReadableStream; + assert(stream._state === 'readable'); + ReadableByteStreamControllerClearPendingPullIntos(controller); + ResetQueue(controller); + ReadableStreamError(stream, e); + } + + function ReadableByteStreamControllerGetDesiredSize(controller) { + var stream = controller._controlledReadableStream; + var state = stream._state; + + if (state === 'errored') { + return null; + } + + if (state === 'closed') { + return 0; + } + + return controller._strategyHWM - controller._queueTotalSize; + } + + function ReadableByteStreamControllerRespond(controller, bytesWritten) { + bytesWritten = Number(bytesWritten); + + if (IsFiniteNonNegativeNumber(bytesWritten) === false) { + throw new RangeError('bytesWritten must be a finite'); + } + + assert(controller._pendingPullIntos.length > 0); + ReadableByteStreamControllerRespondInternal(controller, bytesWritten); + } + + function ReadableByteStreamControllerRespondWithNewView(controller, view) { + assert(controller._pendingPullIntos.length > 0); + var firstDescriptor = controller._pendingPullIntos[0]; + + if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) { + throw new RangeError('The region specified by view does not match byobRequest'); + } + + if (firstDescriptor.byteLength !== view.byteLength) { + throw new RangeError('The buffer of view has different capacity than byobRequest'); + } + + firstDescriptor.buffer = view.buffer; + ReadableByteStreamControllerRespondInternal(controller, view.byteLength); + } + + function streamBrandCheckException(name) { + return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream'); + } + + function readerLockException(name) { + return new TypeError('Cannot ' + name + ' a stream using a released reader'); + } + + function defaultReaderBrandCheckException(name) { + return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader'); + } + + function defaultReaderClosedPromiseInitialize(reader) { + reader._closedPromise = new Promise(function (resolve, reject) { + reader._closedPromise_resolve = resolve; + reader._closedPromise_reject = reject; + }); + } + + function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) { + reader._closedPromise = Promise.reject(reason); + reader._closedPromise_resolve = undefined; + reader._closedPromise_reject = undefined; + } + + function defaultReaderClosedPromiseInitializeAsResolved(reader) { + reader._closedPromise = Promise.resolve(undefined); + reader._closedPromise_resolve = undefined; + reader._closedPromise_reject = undefined; + } + + function defaultReaderClosedPromiseReject(reader, reason) { + assert(reader._closedPromise_resolve !== undefined); + assert(reader._closedPromise_reject !== undefined); + + reader._closedPromise_reject(reason); + + reader._closedPromise_resolve = undefined; + reader._closedPromise_reject = undefined; + } + + function defaultReaderClosedPromiseResetToRejected(reader, reason) { + assert(reader._closedPromise_resolve === undefined); + assert(reader._closedPromise_reject === undefined); + reader._closedPromise = Promise.reject(reason); + } + + function defaultReaderClosedPromiseResolve(reader) { + assert(reader._closedPromise_resolve !== undefined); + assert(reader._closedPromise_reject !== undefined); + + reader._closedPromise_resolve(undefined); + + reader._closedPromise_resolve = undefined; + reader._closedPromise_reject = undefined; + } + + function byobReaderBrandCheckException(name) { + return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader'); + } + + function defaultControllerBrandCheckException(name) { + return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController'); + } + + function byobRequestBrandCheckException(name) { + return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest'); + } + + function byteStreamControllerBrandCheckException(name) { + return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController'); + } + + function ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) { + try { + Promise.prototype.then.call(promise, undefined, function () {}); + } catch (e) {} + } +}, function (module, exports, __w_pdfjs_require__) { + "use strict"; + + var transformStream = __w_pdfjs_require__(6); + + var readableStream = __w_pdfjs_require__(4); + + var writableStream = __w_pdfjs_require__(2); + + exports.TransformStream = transformStream.TransformStream; + exports.ReadableStream = readableStream.ReadableStream; + exports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed; + exports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose; + exports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue; + exports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError; + exports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize; + exports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter; + exports.IsWritableStream = writableStream.IsWritableStream; + exports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked; + exports.WritableStream = writableStream.WritableStream; + exports.WritableStreamAbort = writableStream.WritableStreamAbort; + exports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError; + exports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation; + exports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease; + exports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite; +}, function (module, exports, __w_pdfjs_require__) { + "use strict"; + + var _createClass = function () { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + var _require = __w_pdfjs_require__(1), + assert = _require.assert; + + var _require2 = __w_pdfjs_require__(0), + InvokeOrNoop = _require2.InvokeOrNoop, + PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback, + PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop, + typeIsObject = _require2.typeIsObject; + + var _require3 = __w_pdfjs_require__(4), + ReadableStream = _require3.ReadableStream, + ReadableStreamDefaultControllerClose = _require3.ReadableStreamDefaultControllerClose, + ReadableStreamDefaultControllerEnqueue = _require3.ReadableStreamDefaultControllerEnqueue, + ReadableStreamDefaultControllerError = _require3.ReadableStreamDefaultControllerError, + ReadableStreamDefaultControllerGetDesiredSize = _require3.ReadableStreamDefaultControllerGetDesiredSize; + + var _require4 = __w_pdfjs_require__(2), + WritableStream = _require4.WritableStream, + WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError; + + function TransformStreamCloseReadable(transformStream) { + if (transformStream._errored === true) { + throw new TypeError('TransformStream is already errored'); + } + + if (transformStream._readableClosed === true) { + throw new TypeError('Readable side is already closed'); + } + + TransformStreamCloseReadableInternal(transformStream); + } + + function TransformStreamEnqueueToReadable(transformStream, chunk) { + if (transformStream._errored === true) { + throw new TypeError('TransformStream is already errored'); + } + + if (transformStream._readableClosed === true) { + throw new TypeError('Readable side is already closed'); + } + + var controller = transformStream._readableController; + + try { + ReadableStreamDefaultControllerEnqueue(controller, chunk); + } catch (e) { + transformStream._readableClosed = true; + TransformStreamErrorIfNeeded(transformStream, e); + throw transformStream._storedError; + } + + var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller); + var maybeBackpressure = desiredSize <= 0; + + if (maybeBackpressure === true && transformStream._backpressure === false) { + TransformStreamSetBackpressure(transformStream, true); + } + } + + function TransformStreamError(transformStream, e) { + if (transformStream._errored === true) { + throw new TypeError('TransformStream is already errored'); + } + + TransformStreamErrorInternal(transformStream, e); + } + + function TransformStreamCloseReadableInternal(transformStream) { + assert(transformStream._errored === false); + assert(transformStream._readableClosed === false); + + try { + ReadableStreamDefaultControllerClose(transformStream._readableController); + } catch (e) { + assert(false); + } + + transformStream._readableClosed = true; + } + + function TransformStreamErrorIfNeeded(transformStream, e) { + if (transformStream._errored === false) { + TransformStreamErrorInternal(transformStream, e); + } + } + + function TransformStreamErrorInternal(transformStream, e) { + assert(transformStream._errored === false); + transformStream._errored = true; + transformStream._storedError = e; + + if (transformStream._writableDone === false) { + WritableStreamDefaultControllerError(transformStream._writableController, e); + } + + if (transformStream._readableClosed === false) { + ReadableStreamDefaultControllerError(transformStream._readableController, e); + } + } + + function TransformStreamReadableReadyPromise(transformStream) { + assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); + + if (transformStream._backpressure === false) { + return Promise.resolve(); + } + + assert(transformStream._backpressure === true, '_backpressure should have been initialized'); + return transformStream._backpressureChangePromise; + } + + function TransformStreamSetBackpressure(transformStream, backpressure) { + assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed'); + + if (transformStream._backpressureChangePromise !== undefined) { + transformStream._backpressureChangePromise_resolve(backpressure); + } + + transformStream._backpressureChangePromise = new Promise(function (resolve) { + transformStream._backpressureChangePromise_resolve = resolve; + }); + + transformStream._backpressureChangePromise.then(function (resolution) { + assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed'); + }); + + transformStream._backpressure = backpressure; + } + + function TransformStreamDefaultTransform(chunk, transformStreamController) { + var transformStream = transformStreamController._controlledTransformStream; + TransformStreamEnqueueToReadable(transformStream, chunk); + return Promise.resolve(); + } + + function TransformStreamTransform(transformStream, chunk) { + assert(transformStream._errored === false); + assert(transformStream._transforming === false); + assert(transformStream._backpressure === false); + transformStream._transforming = true; + var transformer = transformStream._transformer; + var controller = transformStream._transformStreamController; + var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]); + return transformPromise.then(function () { + transformStream._transforming = false; + return TransformStreamReadableReadyPromise(transformStream); + }, function (e) { + TransformStreamErrorIfNeeded(transformStream, e); + return Promise.reject(e); + }); + } + + function IsTransformStreamDefaultController(x) { + if (!typeIsObject(x)) { + return false; + } + + if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) { + return false; + } + + return true; + } + + function IsTransformStream(x) { + if (!typeIsObject(x)) { + return false; + } + + if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) { + return false; + } + + return true; + } + + var TransformStreamSink = function () { + function TransformStreamSink(transformStream, startPromise) { + _classCallCheck(this, TransformStreamSink); + + this._transformStream = transformStream; + this._startPromise = startPromise; + } + + _createClass(TransformStreamSink, [{ + key: 'start', + value: function start(c) { + var transformStream = this._transformStream; + transformStream._writableController = c; + return this._startPromise.then(function () { + return TransformStreamReadableReadyPromise(transformStream); + }); + } + }, { + key: 'write', + value: function write(chunk) { + var transformStream = this._transformStream; + return TransformStreamTransform(transformStream, chunk); + } + }, { + key: 'abort', + value: function abort() { + var transformStream = this._transformStream; + transformStream._writableDone = true; + TransformStreamErrorInternal(transformStream, new TypeError('Writable side aborted')); + } + }, { + key: 'close', + value: function close() { + var transformStream = this._transformStream; + assert(transformStream._transforming === false); + transformStream._writableDone = true; + var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]); + return flushPromise.then(function () { + if (transformStream._errored === true) { + return Promise.reject(transformStream._storedError); + } + + if (transformStream._readableClosed === false) { + TransformStreamCloseReadableInternal(transformStream); + } + + return Promise.resolve(); + })["catch"](function (r) { + TransformStreamErrorIfNeeded(transformStream, r); + return Promise.reject(transformStream._storedError); + }); + } + }]); + + return TransformStreamSink; + }(); + + var TransformStreamSource = function () { + function TransformStreamSource(transformStream, startPromise) { + _classCallCheck(this, TransformStreamSource); + + this._transformStream = transformStream; + this._startPromise = startPromise; + } + + _createClass(TransformStreamSource, [{ + key: 'start', + value: function start(c) { + var transformStream = this._transformStream; + transformStream._readableController = c; + return this._startPromise.then(function () { + assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); + + if (transformStream._backpressure === true) { + return Promise.resolve(); + } + + assert(transformStream._backpressure === false, '_backpressure should have been initialized'); + return transformStream._backpressureChangePromise; + }); + } + }, { + key: 'pull', + value: function pull() { + var transformStream = this._transformStream; + assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false'); + assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); + TransformStreamSetBackpressure(transformStream, false); + return transformStream._backpressureChangePromise; + } + }, { + key: 'cancel', + value: function cancel() { + var transformStream = this._transformStream; + transformStream._readableClosed = true; + TransformStreamErrorInternal(transformStream, new TypeError('Readable side canceled')); + } + }]); + + return TransformStreamSource; + }(); + + var TransformStreamDefaultController = function () { + function TransformStreamDefaultController(transformStream) { + _classCallCheck(this, TransformStreamDefaultController); + + if (IsTransformStream(transformStream) === false) { + throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance'); + } + + if (transformStream._transformStreamController !== undefined) { + throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor'); + } + + this._controlledTransformStream = transformStream; + } + + _createClass(TransformStreamDefaultController, [{ + key: 'enqueue', + value: function enqueue(chunk) { + if (IsTransformStreamDefaultController(this) === false) { + throw defaultControllerBrandCheckException('enqueue'); + } + + TransformStreamEnqueueToReadable(this._controlledTransformStream, chunk); + } + }, { + key: 'close', + value: function close() { + if (IsTransformStreamDefaultController(this) === false) { + throw defaultControllerBrandCheckException('close'); + } + + TransformStreamCloseReadable(this._controlledTransformStream); + } + }, { + key: 'error', + value: function error(reason) { + if (IsTransformStreamDefaultController(this) === false) { + throw defaultControllerBrandCheckException('error'); + } + + TransformStreamError(this._controlledTransformStream, reason); + } + }, { + key: 'desiredSize', + get: function get() { + if (IsTransformStreamDefaultController(this) === false) { + throw defaultControllerBrandCheckException('desiredSize'); + } + + var transformStream = this._controlledTransformStream; + var readableController = transformStream._readableController; + return ReadableStreamDefaultControllerGetDesiredSize(readableController); + } + }]); + + return TransformStreamDefaultController; + }(); + + var TransformStream = function () { + function TransformStream() { + var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + _classCallCheck(this, TransformStream); + + this._transformer = transformer; + var readableStrategy = transformer.readableStrategy, + writableStrategy = transformer.writableStrategy; + this._transforming = false; + this._errored = false; + this._storedError = undefined; + this._writableController = undefined; + this._readableController = undefined; + this._transformStreamController = undefined; + this._writableDone = false; + this._readableClosed = false; + this._backpressure = undefined; + this._backpressureChangePromise = undefined; + this._backpressureChangePromise_resolve = undefined; + this._transformStreamController = new TransformStreamDefaultController(this); + var startPromise_resolve = void 0; + var startPromise = new Promise(function (resolve) { + startPromise_resolve = resolve; + }); + var source = new TransformStreamSource(this, startPromise); + this._readable = new ReadableStream(source, readableStrategy); + var sink = new TransformStreamSink(this, startPromise); + this._writable = new WritableStream(sink, writableStrategy); + assert(this._writableController !== undefined); + assert(this._readableController !== undefined); + var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController); + TransformStreamSetBackpressure(this, desiredSize <= 0); + var transformStream = this; + var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]); + startPromise_resolve(startResult); + startPromise["catch"](function (e) { + if (transformStream._errored === false) { + transformStream._errored = true; + transformStream._storedError = e; + } + }); + } + + _createClass(TransformStream, [{ + key: 'readable', + get: function get() { + if (IsTransformStream(this) === false) { + throw streamBrandCheckException('readable'); + } + + return this._readable; + } + }, { + key: 'writable', + get: function get() { + if (IsTransformStream(this) === false) { + throw streamBrandCheckException('writable'); + } + + return this._writable; + } + }]); + + return TransformStream; + }(); + + module.exports = { + TransformStream: TransformStream + }; + + function defaultControllerBrandCheckException(name) { + return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController'); + } + + function streamBrandCheckException(name) { + return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream'); + } +}, function (module, exports, __w_pdfjs_require__) { + module.exports = __w_pdfjs_require__(5); +}])); + +/***/ }), +/* 145 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +{ + var isURLSupported = false; + + try { + if (typeof URL === 'function' && _typeof(URL.prototype) === 'object' && 'origin' in URL.prototype) { + var u = new URL('b', 'http://a'); + u.pathname = 'c%20d'; + isURLSupported = u.href === 'http://a/c%20d'; + } + } catch (ex) {} + + if (isURLSupported) { + exports.URL = URL; + } else { + var PolyfillURL = __w_pdfjs_require__(146).URL; + + var OriginalURL = __w_pdfjs_require__(3).URL; + + if (OriginalURL) { + PolyfillURL.createObjectURL = function (blob) { + return OriginalURL.createObjectURL.apply(OriginalURL, arguments); + }; + + PolyfillURL.revokeObjectURL = function (url) { + OriginalURL.revokeObjectURL(url); + }; + } + + exports.URL = PolyfillURL; + } +} + +/***/ }), +/* 146 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +(function URLConstructorClosure() { + 'use strict'; + + var relative = Object.create(null); + relative['ftp'] = 21; + relative['file'] = 0; + relative['gopher'] = 70; + relative['http'] = 80; + relative['https'] = 443; + relative['ws'] = 80; + relative['wss'] = 443; + var relativePathDotMapping = Object.create(null); + relativePathDotMapping['%2e'] = '.'; + relativePathDotMapping['.%2e'] = '..'; + relativePathDotMapping['%2e.'] = '..'; + relativePathDotMapping['%2e%2e'] = '..'; + + function isRelativeScheme(scheme) { + return relative[scheme] !== undefined; + } + + function invalid() { + clear.call(this); + this._isInvalid = true; + } + + function IDNAToASCII(h) { + if (h === '') { + invalid.call(this); + } + + return h.toLowerCase(); + } + + function percentEscape(c) { + var unicode = c.charCodeAt(0); + + if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) === -1) { + return c; + } + + return encodeURIComponent(c); + } + + function percentEscapeQuery(c) { + var unicode = c.charCodeAt(0); + + if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) === -1) { + return c; + } + + return encodeURIComponent(c); + } + + var EOF, + ALPHA = /[a-zA-Z]/, + ALPHANUMERIC = /[a-zA-Z0-9\+\-\.]/; + + function parse(input, stateOverride, base) { + function err(message) { + errors.push(message); + } + + var state = stateOverride || 'scheme start', + cursor = 0, + buffer = '', + seenAt = false, + seenBracket = false, + errors = []; + + loop: while ((input[cursor - 1] !== EOF || cursor === 0) && !this._isInvalid) { + var c = input[cursor]; + + switch (state) { + case 'scheme start': + if (c && ALPHA.test(c)) { + buffer += c.toLowerCase(); + state = 'scheme'; + } else if (!stateOverride) { + buffer = ''; + state = 'no scheme'; + continue; + } else { + err('Invalid scheme.'); + break loop; + } + + break; + + case 'scheme': + if (c && ALPHANUMERIC.test(c)) { + buffer += c.toLowerCase(); + } else if (c === ':') { + this._scheme = buffer; + buffer = ''; + + if (stateOverride) { + break loop; + } + + if (isRelativeScheme(this._scheme)) { + this._isRelative = true; + } + + if (this._scheme === 'file') { + state = 'relative'; + } else if (this._isRelative && base && base._scheme === this._scheme) { + state = 'relative or authority'; + } else if (this._isRelative) { + state = 'authority first slash'; + } else { + state = 'scheme data'; + } + } else if (!stateOverride) { + buffer = ''; + cursor = 0; + state = 'no scheme'; + continue; + } else if (c === EOF) { + break loop; + } else { + err('Code point not allowed in scheme: ' + c); + break loop; + } + + break; + + case 'scheme data': + if (c === '?') { + this._query = '?'; + state = 'query'; + } else if (c === '#') { + this._fragment = '#'; + state = 'fragment'; + } else { + if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { + this._schemeData += percentEscape(c); + } + } + + break; + + case 'no scheme': + if (!base || !isRelativeScheme(base._scheme)) { + err('Missing scheme.'); + invalid.call(this); + } else { + state = 'relative'; + continue; + } + + break; + + case 'relative or authority': + if (c === '/' && input[cursor + 1] === '/') { + state = 'authority ignore slashes'; + } else { + err('Expected /, got: ' + c); + state = 'relative'; + continue; + } + + break; + + case 'relative': + this._isRelative = true; + + if (this._scheme !== 'file') { + this._scheme = base._scheme; + } + + if (c === EOF) { + this._host = base._host; + this._port = base._port; + this._path = base._path.slice(); + this._query = base._query; + this._username = base._username; + this._password = base._password; + break loop; + } else if (c === '/' || c === '\\') { + if (c === '\\') { + err('\\ is an invalid code point.'); + } + + state = 'relative slash'; + } else if (c === '?') { + this._host = base._host; + this._port = base._port; + this._path = base._path.slice(); + this._query = '?'; + this._username = base._username; + this._password = base._password; + state = 'query'; + } else if (c === '#') { + this._host = base._host; + this._port = base._port; + this._path = base._path.slice(); + this._query = base._query; + this._fragment = '#'; + this._username = base._username; + this._password = base._password; + state = 'fragment'; + } else { + var nextC = input[cursor + 1]; + var nextNextC = input[cursor + 2]; + + if (this._scheme !== 'file' || !ALPHA.test(c) || nextC !== ':' && nextC !== '|' || nextNextC !== EOF && nextNextC !== '/' && nextNextC !== '\\' && nextNextC !== '?' && nextNextC !== '#') { + this._host = base._host; + this._port = base._port; + this._username = base._username; + this._password = base._password; + this._path = base._path.slice(); + + this._path.pop(); + } + + state = 'relative path'; + continue; + } + + break; + + case 'relative slash': + if (c === '/' || c === '\\') { + if (c === '\\') { + err('\\ is an invalid code point.'); + } + + if (this._scheme === 'file') { + state = 'file host'; + } else { + state = 'authority ignore slashes'; + } + } else { + if (this._scheme !== 'file') { + this._host = base._host; + this._port = base._port; + this._username = base._username; + this._password = base._password; + } + + state = 'relative path'; + continue; + } + + break; + + case 'authority first slash': + if (c === '/') { + state = 'authority second slash'; + } else { + err('Expected \'/\', got: ' + c); + state = 'authority ignore slashes'; + continue; + } + + break; + + case 'authority second slash': + state = 'authority ignore slashes'; + + if (c !== '/') { + err('Expected \'/\', got: ' + c); + continue; + } + + break; + + case 'authority ignore slashes': + if (c !== '/' && c !== '\\') { + state = 'authority'; + continue; + } else { + err('Expected authority, got: ' + c); + } + + break; + + case 'authority': + if (c === '@') { + if (seenAt) { + err('@ already seen.'); + buffer += '%40'; + } + + seenAt = true; + + for (var i = 0; i < buffer.length; i++) { + var cp = buffer[i]; + + if (cp === '\t' || cp === '\n' || cp === '\r') { + err('Invalid whitespace in authority.'); + continue; + } + + if (cp === ':' && this._password === null) { + this._password = ''; + continue; + } + + var tempC = percentEscape(cp); + + if (this._password !== null) { + this._password += tempC; + } else { + this._username += tempC; + } + } + + buffer = ''; + } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { + cursor -= buffer.length; + buffer = ''; + state = 'host'; + continue; + } else { + buffer += c; + } + + break; + + case 'file host': + if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { + if (buffer.length === 2 && ALPHA.test(buffer[0]) && (buffer[1] === ':' || buffer[1] === '|')) { + state = 'relative path'; + } else if (buffer.length === 0) { + state = 'relative path start'; + } else { + this._host = IDNAToASCII.call(this, buffer); + buffer = ''; + state = 'relative path start'; + } + + continue; + } else if (c === '\t' || c === '\n' || c === '\r') { + err('Invalid whitespace in file host.'); + } else { + buffer += c; + } + + break; + + case 'host': + case 'hostname': + if (c === ':' && !seenBracket) { + this._host = IDNAToASCII.call(this, buffer); + buffer = ''; + state = 'port'; + + if (stateOverride === 'hostname') { + break loop; + } + } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { + this._host = IDNAToASCII.call(this, buffer); + buffer = ''; + state = 'relative path start'; + + if (stateOverride) { + break loop; + } + + continue; + } else if (c !== '\t' && c !== '\n' && c !== '\r') { + if (c === '[') { + seenBracket = true; + } else if (c === ']') { + seenBracket = false; + } + + buffer += c; + } else { + err('Invalid code point in host/hostname: ' + c); + } + + break; + + case 'port': + if (/[0-9]/.test(c)) { + buffer += c; + } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#' || stateOverride) { + if (buffer !== '') { + var temp = parseInt(buffer, 10); + + if (temp !== relative[this._scheme]) { + this._port = temp + ''; + } + + buffer = ''; + } + + if (stateOverride) { + break loop; + } + + state = 'relative path start'; + continue; + } else if (c === '\t' || c === '\n' || c === '\r') { + err('Invalid code point in port: ' + c); + } else { + invalid.call(this); + } + + break; + + case 'relative path start': + if (c === '\\') { + err('\'\\\' not allowed in path.'); + } + + state = 'relative path'; + + if (c !== '/' && c !== '\\') { + continue; + } + + break; + + case 'relative path': + if (c === EOF || c === '/' || c === '\\' || !stateOverride && (c === '?' || c === '#')) { + if (c === '\\') { + err('\\ not allowed in relative path.'); + } + + var tmp; + + if (tmp = relativePathDotMapping[buffer.toLowerCase()]) { + buffer = tmp; + } + + if (buffer === '..') { + this._path.pop(); + + if (c !== '/' && c !== '\\') { + this._path.push(''); + } + } else if (buffer === '.' && c !== '/' && c !== '\\') { + this._path.push(''); + } else if (buffer !== '.') { + if (this._scheme === 'file' && this._path.length === 0 && buffer.length === 2 && ALPHA.test(buffer[0]) && buffer[1] === '|') { + buffer = buffer[0] + ':'; + } + + this._path.push(buffer); + } + + buffer = ''; + + if (c === '?') { + this._query = '?'; + state = 'query'; + } else if (c === '#') { + this._fragment = '#'; + state = 'fragment'; + } + } else if (c !== '\t' && c !== '\n' && c !== '\r') { + buffer += percentEscape(c); + } + + break; + + case 'query': + if (!stateOverride && c === '#') { + this._fragment = '#'; + state = 'fragment'; + } else if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { + this._query += percentEscapeQuery(c); + } + + break; + + case 'fragment': + if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { + this._fragment += c; + } + + break; + } + + cursor++; + } + } + + function clear() { + this._scheme = ''; + this._schemeData = ''; + this._username = ''; + this._password = null; + this._host = ''; + this._port = ''; + this._path = []; + this._query = ''; + this._fragment = ''; + this._isInvalid = false; + this._isRelative = false; + } + + function JURL(url, base) { + if (base !== undefined && !(base instanceof JURL)) { + base = new JURL(String(base)); + } + + this._url = url; + clear.call(this); + var input = url.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g, ''); + parse.call(this, input, null, base); + } + + JURL.prototype = { + toString: function toString() { + return this.href; + }, + + get href() { + if (this._isInvalid) { + return this._url; + } + + var authority = ''; + + if (this._username !== '' || this._password !== null) { + authority = this._username + (this._password !== null ? ':' + this._password : '') + '@'; + } + + return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment; + }, + + set href(value) { + clear.call(this); + parse.call(this, value); + }, + + get protocol() { + return this._scheme + ':'; + }, + + set protocol(value) { + if (this._isInvalid) { + return; + } + + parse.call(this, value + ':', 'scheme start'); + }, + + get host() { + return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host; + }, + + set host(value) { + if (this._isInvalid || !this._isRelative) { + return; + } + + parse.call(this, value, 'host'); + }, + + get hostname() { + return this._host; + }, + + set hostname(value) { + if (this._isInvalid || !this._isRelative) { + return; + } + + parse.call(this, value, 'hostname'); + }, + + get port() { + return this._port; + }, + + set port(value) { + if (this._isInvalid || !this._isRelative) { + return; + } + + parse.call(this, value, 'port'); + }, + + get pathname() { + return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData; + }, + + set pathname(value) { + if (this._isInvalid || !this._isRelative) { + return; + } + + this._path = []; + parse.call(this, value, 'relative path start'); + }, + + get search() { + return this._isInvalid || !this._query || this._query === '?' ? '' : this._query; + }, + + set search(value) { + if (this._isInvalid || !this._isRelative) { + return; + } + + this._query = '?'; + + if (value[0] === '?') { + value = value.slice(1); + } + + parse.call(this, value, 'query'); + }, + + get hash() { + return this._isInvalid || !this._fragment || this._fragment === '#' ? '' : this._fragment; + }, + + set hash(value) { + if (this._isInvalid) { + return; + } + + this._fragment = '#'; + + if (value[0] === '#') { + value = value.slice(1); + } + + parse.call(this, value, 'fragment'); + }, + + get origin() { + var host; + + if (this._isInvalid || !this._scheme) { + return ''; + } + + switch (this._scheme) { + case 'data': + case 'file': + case 'javascript': + case 'mailto': + return 'null'; + + case 'blob': + try { + return new JURL(this._schemeData).origin || 'null'; + } catch (_) {} + + return 'null'; + } + + host = this.host; + + if (!host) { + return ''; + } + + return this._scheme + '://' + host; + } + + }; + exports.URL = JURL; +})(); + +/***/ }), +/* 147 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getDocument = getDocument; +exports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory; +exports.build = exports.version = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = void 0; + +var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); + +var _util = __w_pdfjs_require__(1); + +var _display_utils = __w_pdfjs_require__(151); + +var _font_loader = __w_pdfjs_require__(152); + +var _api_compatibility = __w_pdfjs_require__(153); + +var _canvas = __w_pdfjs_require__(154); + +var _global_scope = _interopRequireDefault(__w_pdfjs_require__(3)); + +var _worker_options = __w_pdfjs_require__(156); + +var _message_handler = __w_pdfjs_require__(157); + +var _metadata = __w_pdfjs_require__(158); + +var _transport_stream = __w_pdfjs_require__(160); + +var _webgl = __w_pdfjs_require__(161); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } + +function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } + +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } + +function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } + +function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +var DEFAULT_RANGE_CHUNK_SIZE = 65536; +var isWorkerDisabled = false; +var fallbackWorkerSrc; +var fakeWorkerFilesLoader = null; +{ + var useRequireEnsure = false; + + if (typeof window === 'undefined') { + isWorkerDisabled = true; + + if (typeof require.ensure === 'undefined') { + require.ensure = require('node-ensure'); + } + + useRequireEnsure = true; + } else if (typeof require !== 'undefined' && typeof require.ensure === 'function') { + useRequireEnsure = true; + } + + if (typeof requirejs !== 'undefined' && requirejs.toUrl) { + fallbackWorkerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js'); + } + + var dynamicLoaderSupported = typeof requirejs !== 'undefined' && requirejs.load; + fakeWorkerFilesLoader = useRequireEnsure ? function () { + return new Promise(function (resolve, reject) { + require.ensure([], function () { + try { + var worker; + worker = require('./pdf.worker.js'); + resolve(worker.WorkerMessageHandler); + } catch (ex) { + reject(ex); + } + }, reject, 'pdfjsWorker'); + }); + } : dynamicLoaderSupported ? function () { + return new Promise(function (resolve, reject) { + requirejs(['pdfjs-dist/build/pdf.worker'], function (worker) { + try { + resolve(worker.WorkerMessageHandler); + } catch (ex) { + reject(ex); + } + }, reject); + }); + } : null; + + if (!fallbackWorkerSrc && (typeof document === "undefined" ? "undefined" : _typeof(document)) === 'object' && 'currentScript' in document) { + var pdfjsFilePath = document.currentScript && document.currentScript.src; + + if (pdfjsFilePath) { + fallbackWorkerSrc = pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, '.worker$1$2'); + } + } +} +var createPDFNetworkStream; + +function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) { + createPDFNetworkStream = pdfNetworkStreamFactory; +} + +function getDocument(src) { + var task = new PDFDocumentLoadingTask(); + var source; + + if (typeof src === 'string') { + source = { + url: src + }; + } else if ((0, _util.isArrayBuffer)(src)) { + source = { + data: src + }; + } else if (src instanceof PDFDataRangeTransport) { + source = { + range: src + }; + } else { + if (_typeof(src) !== 'object') { + throw new Error('Invalid parameter in getDocument, ' + 'need either Uint8Array, string or a parameter object'); + } + + if (!src.url && !src.data && !src.range) { + throw new Error('Invalid parameter object: need either .data, .range or .url'); + } + + source = src; + } + + var params = Object.create(null); + var rangeTransport = null, + worker = null; + + for (var key in source) { + if (key === 'url' && typeof window !== 'undefined') { + params[key] = new _util.URL(source[key], window.location).href; + continue; + } else if (key === 'range') { + rangeTransport = source[key]; + continue; + } else if (key === 'worker') { + worker = source[key]; + continue; + } else if (key === 'data' && !(source[key] instanceof Uint8Array)) { + var pdfBytes = source[key]; + + if (typeof pdfBytes === 'string') { + params[key] = (0, _util.stringToBytes)(pdfBytes); + } else if (_typeof(pdfBytes) === 'object' && pdfBytes !== null && !isNaN(pdfBytes.length)) { + params[key] = new Uint8Array(pdfBytes); + } else if ((0, _util.isArrayBuffer)(pdfBytes)) { + params[key] = new Uint8Array(pdfBytes); + } else { + throw new Error('Invalid PDF binary data: either typed array, ' + 'string or array-like object is expected in the ' + 'data property.'); + } + + continue; + } + + params[key] = source[key]; + } + + params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE; + params.CMapReaderFactory = params.CMapReaderFactory || _display_utils.DOMCMapReaderFactory; + params.ignoreErrors = params.stopAtErrors !== true; + params.pdfBug = params.pdfBug === true; + var NativeImageDecoderValues = Object.values(_util.NativeImageDecoding); + + if (params.nativeImageDecoderSupport === undefined || !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) { + params.nativeImageDecoderSupport = _api_compatibility.apiCompatibilityParams.nativeImageDecoderSupport || _util.NativeImageDecoding.DECODE; + } + + if (!Number.isInteger(params.maxImageSize)) { + params.maxImageSize = -1; + } + + if (typeof params.isEvalSupported !== 'boolean') { + params.isEvalSupported = true; + } + + if (typeof params.disableFontFace !== 'boolean') { + params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false; + } + + if (typeof params.disableRange !== 'boolean') { + params.disableRange = false; + } + + if (typeof params.disableStream !== 'boolean') { + params.disableStream = false; + } + + if (typeof params.disableAutoFetch !== 'boolean') { + params.disableAutoFetch = false; + } + + if (typeof params.disableCreateObjectURL !== 'boolean') { + params.disableCreateObjectURL = _api_compatibility.apiCompatibilityParams.disableCreateObjectURL || false; + } + + (0, _util.setVerbosityLevel)(params.verbosity); + + if (!worker) { + var workerParams = { + postMessageTransfers: params.postMessageTransfers, + verbosity: params.verbosity, + port: _worker_options.GlobalWorkerOptions.workerPort + }; + worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams); + task._worker = worker; + } + + var docId = task.docId; + worker.promise.then(function () { + if (task.destroyed) { + throw new Error('Loading aborted'); + } + + return _fetchDocument(worker, params, rangeTransport, docId).then(function (workerId) { + if (task.destroyed) { + throw new Error('Loading aborted'); + } + + var networkStream; + + if (rangeTransport) { + networkStream = new _transport_stream.PDFDataTransportStream({ + length: params.length, + initialData: params.initialData, + progressiveDone: params.progressiveDone, + disableRange: params.disableRange, + disableStream: params.disableStream + }, rangeTransport); + } else if (!params.data) { + networkStream = createPDFNetworkStream({ + url: params.url, + length: params.length, + httpHeaders: params.httpHeaders, + withCredentials: params.withCredentials, + rangeChunkSize: params.rangeChunkSize, + disableRange: params.disableRange, + disableStream: params.disableStream + }); + } + + var messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port); + messageHandler.postMessageTransfers = worker.postMessageTransfers; + var transport = new WorkerTransport(messageHandler, task, networkStream, params); + task._transport = transport; + messageHandler.send('Ready', null); + }); + })["catch"](task._capability.reject); + return task; +} + +function _fetchDocument(worker, source, pdfDataRangeTransport, docId) { + if (worker.destroyed) { + return Promise.reject(new Error('Worker was destroyed')); + } + + if (pdfDataRangeTransport) { + source.length = pdfDataRangeTransport.length; + source.initialData = pdfDataRangeTransport.initialData; + source.progressiveDone = pdfDataRangeTransport.progressiveDone; + } + + return worker.messageHandler.sendWithPromise('GetDocRequest', { + docId: docId, + apiVersion: '2.2.228', + source: { + data: source.data, + url: source.url, + password: source.password, + disableAutoFetch: source.disableAutoFetch, + rangeChunkSize: source.rangeChunkSize, + length: source.length + }, + maxImageSize: source.maxImageSize, + disableFontFace: source.disableFontFace, + disableCreateObjectURL: source.disableCreateObjectURL, + postMessageTransfers: worker.postMessageTransfers, + docBaseUrl: source.docBaseUrl, + nativeImageDecoderSupport: source.nativeImageDecoderSupport, + ignoreErrors: source.ignoreErrors, + isEvalSupported: source.isEvalSupported + }).then(function (workerId) { + if (worker.destroyed) { + throw new Error('Worker was destroyed'); + } + + return workerId; + }); +} + +var PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() { + var nextDocumentId = 0; + + var PDFDocumentLoadingTask = + /*#__PURE__*/ + function () { + function PDFDocumentLoadingTask() { + _classCallCheck(this, PDFDocumentLoadingTask); + + this._capability = (0, _util.createPromiseCapability)(); + this._transport = null; + this._worker = null; + this.docId = 'd' + nextDocumentId++; + this.destroyed = false; + this.onPassword = null; + this.onProgress = null; + this.onUnsupportedFeature = null; + } + + _createClass(PDFDocumentLoadingTask, [{ + key: "destroy", + value: function destroy() { + var _this = this; + + this.destroyed = true; + var transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy(); + return transportDestroyed.then(function () { + _this._transport = null; + + if (_this._worker) { + _this._worker.destroy(); + + _this._worker = null; + } + }); + } + }, { + key: "then", + value: function then(onFulfilled, onRejected) { + (0, _display_utils.deprecated)('PDFDocumentLoadingTask.then method, ' + 'use the `promise` getter instead.'); + return this.promise.then.apply(this.promise, arguments); + } + }, { + key: "promise", + get: function get() { + return this._capability.promise; + } + }]); + + return PDFDocumentLoadingTask; + }(); + + return PDFDocumentLoadingTask; +}(); + +var PDFDataRangeTransport = +/*#__PURE__*/ +function () { + function PDFDataRangeTransport(length, initialData) { + var progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + _classCallCheck(this, PDFDataRangeTransport); + + this.length = length; + this.initialData = initialData; + this.progressiveDone = progressiveDone; + this._rangeListeners = []; + this._progressListeners = []; + this._progressiveReadListeners = []; + this._progressiveDoneListeners = []; + this._readyCapability = (0, _util.createPromiseCapability)(); + } + + _createClass(PDFDataRangeTransport, [{ + key: "addRangeListener", + value: function addRangeListener(listener) { + this._rangeListeners.push(listener); + } + }, { + key: "addProgressListener", + value: function addProgressListener(listener) { + this._progressListeners.push(listener); + } + }, { + key: "addProgressiveReadListener", + value: function addProgressiveReadListener(listener) { + this._progressiveReadListeners.push(listener); + } + }, { + key: "addProgressiveDoneListener", + value: function addProgressiveDoneListener(listener) { + this._progressiveDoneListeners.push(listener); + } + }, { + key: "onDataRange", + value: function onDataRange(begin, chunk) { + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = this._rangeListeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var listener = _step.value; + listener(begin, chunk); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator["return"] != null) { + _iterator["return"](); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + } + }, { + key: "onDataProgress", + value: function onDataProgress(loaded, total) { + var _this2 = this; + + this._readyCapability.promise.then(function () { + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + for (var _iterator2 = _this2._progressListeners[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + var listener = _step2.value; + listener(loaded, total); + } + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { + _iterator2["return"](); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + }); + } + }, { + key: "onDataProgressiveRead", + value: function onDataProgressiveRead(chunk) { + var _this3 = this; + + this._readyCapability.promise.then(function () { + var _iteratorNormalCompletion3 = true; + var _didIteratorError3 = false; + var _iteratorError3 = undefined; + + try { + for (var _iterator3 = _this3._progressiveReadListeners[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { + var listener = _step3.value; + listener(chunk); + } + } catch (err) { + _didIteratorError3 = true; + _iteratorError3 = err; + } finally { + try { + if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) { + _iterator3["return"](); + } + } finally { + if (_didIteratorError3) { + throw _iteratorError3; + } + } + } + }); + } + }, { + key: "onDataProgressiveDone", + value: function onDataProgressiveDone() { + var _this4 = this; + + this._readyCapability.promise.then(function () { + var _iteratorNormalCompletion4 = true; + var _didIteratorError4 = false; + var _iteratorError4 = undefined; + + try { + for (var _iterator4 = _this4._progressiveDoneListeners[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { + var listener = _step4.value; + listener(); + } + } catch (err) { + _didIteratorError4 = true; + _iteratorError4 = err; + } finally { + try { + if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) { + _iterator4["return"](); + } + } finally { + if (_didIteratorError4) { + throw _iteratorError4; + } + } + } + }); + } + }, { + key: "transportReady", + value: function transportReady() { + this._readyCapability.resolve(); + } + }, { + key: "requestDataRange", + value: function requestDataRange(begin, end) { + (0, _util.unreachable)('Abstract method PDFDataRangeTransport.requestDataRange'); + } + }, { + key: "abort", + value: function abort() {} + }]); + + return PDFDataRangeTransport; +}(); + +exports.PDFDataRangeTransport = PDFDataRangeTransport; + +var PDFDocumentProxy = +/*#__PURE__*/ +function () { + function PDFDocumentProxy(pdfInfo, transport) { + _classCallCheck(this, PDFDocumentProxy); + + this._pdfInfo = pdfInfo; + this._transport = transport; + } + + _createClass(PDFDocumentProxy, [{ + key: "getPage", + value: function getPage(pageNumber) { + return this._transport.getPage(pageNumber); + } + }, { + key: "getPageIndex", + value: function getPageIndex(ref) { + return this._transport.getPageIndex(ref); + } + }, { + key: "getDestinations", + value: function getDestinations() { + return this._transport.getDestinations(); + } + }, { + key: "getDestination", + value: function getDestination(id) { + return this._transport.getDestination(id); + } + }, { + key: "getPageLabels", + value: function getPageLabels() { + return this._transport.getPageLabels(); + } + }, { + key: "getPageLayout", + value: function getPageLayout() { + return this._transport.getPageLayout(); + } + }, { + key: "getPageMode", + value: function getPageMode() { + return this._transport.getPageMode(); + } + }, { + key: "getViewerPreferences", + value: function getViewerPreferences() { + return this._transport.getViewerPreferences(); + } + }, { + key: "getOpenActionDestination", + value: function getOpenActionDestination() { + return this._transport.getOpenActionDestination(); + } + }, { + key: "getAttachments", + value: function getAttachments() { + return this._transport.getAttachments(); + } + }, { + key: "getJavaScript", + value: function getJavaScript() { + return this._transport.getJavaScript(); + } + }, { + key: "getOutline", + value: function getOutline() { + return this._transport.getOutline(); + } + }, { + key: "getPermissions", + value: function getPermissions() { + return this._transport.getPermissions(); + } + }, { + key: "getMetadata", + value: function getMetadata() { + return this._transport.getMetadata(); + } + }, { + key: "getData", + value: function getData() { + return this._transport.getData(); + } + }, { + key: "getDownloadInfo", + value: function getDownloadInfo() { + return this._transport.downloadInfoCapability.promise; + } + }, { + key: "getStats", + value: function getStats() { + return this._transport.getStats(); + } + }, { + key: "cleanup", + value: function cleanup() { + this._transport.startCleanup(); + } + }, { + key: "destroy", + value: function destroy() { + return this.loadingTask.destroy(); + } + }, { + key: "numPages", + get: function get() { + return this._pdfInfo.numPages; + } + }, { + key: "fingerprint", + get: function get() { + return this._pdfInfo.fingerprint; + } + }, { + key: "loadingParams", + get: function get() { + return this._transport.loadingParams; + } + }, { + key: "loadingTask", + get: function get() { + return this._transport.loadingTask; + } + }]); + + return PDFDocumentProxy; +}(); + +exports.PDFDocumentProxy = PDFDocumentProxy; + +var PDFPageProxy = +/*#__PURE__*/ +function () { + function PDFPageProxy(pageIndex, pageInfo, transport) { + var pdfBug = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + + _classCallCheck(this, PDFPageProxy); + + this.pageIndex = pageIndex; + this._pageInfo = pageInfo; + this._transport = transport; + this._stats = pdfBug ? new _display_utils.StatTimer() : _display_utils.DummyStatTimer; + this._pdfBug = pdfBug; + this.commonObjs = transport.commonObjs; + this.objs = new PDFObjects(); + this.cleanupAfterRender = false; + this.pendingCleanup = false; + this.intentStates = Object.create(null); + this.destroyed = false; + } + + _createClass(PDFPageProxy, [{ + key: "getViewport", + value: function getViewport() { + var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + scale = _ref.scale, + _ref$rotation = _ref.rotation, + rotation = _ref$rotation === void 0 ? this.rotate : _ref$rotation, + _ref$dontFlip = _ref.dontFlip, + dontFlip = _ref$dontFlip === void 0 ? false : _ref$dontFlip; + + if (arguments.length > 1 || typeof arguments[0] === 'number') { + (0, _display_utils.deprecated)('getViewport is called with obsolete arguments.'); + scale = arguments[0]; + rotation = typeof arguments[1] === 'number' ? arguments[1] : this.rotate; + dontFlip = typeof arguments[2] === 'boolean' ? arguments[2] : false; + } + + return new _display_utils.PageViewport({ + viewBox: this.view, + scale: scale, + rotation: rotation, + dontFlip: dontFlip + }); + } + }, { + key: "getAnnotations", + value: function getAnnotations() { + var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref2$intent = _ref2.intent, + intent = _ref2$intent === void 0 ? null : _ref2$intent; + + if (!this.annotationsPromise || this.annotationsIntent !== intent) { + this.annotationsPromise = this._transport.getAnnotations(this.pageIndex, intent); + this.annotationsIntent = intent; + } + + return this.annotationsPromise; + } + }, { + key: "render", + value: function render(_ref3) { + var _this5 = this; + + var canvasContext = _ref3.canvasContext, + viewport = _ref3.viewport, + _ref3$intent = _ref3.intent, + intent = _ref3$intent === void 0 ? 'display' : _ref3$intent, + _ref3$enableWebGL = _ref3.enableWebGL, + enableWebGL = _ref3$enableWebGL === void 0 ? false : _ref3$enableWebGL, + _ref3$renderInteracti = _ref3.renderInteractiveForms, + renderInteractiveForms = _ref3$renderInteracti === void 0 ? false : _ref3$renderInteracti, + _ref3$transform = _ref3.transform, + transform = _ref3$transform === void 0 ? null : _ref3$transform, + _ref3$imageLayer = _ref3.imageLayer, + imageLayer = _ref3$imageLayer === void 0 ? null : _ref3$imageLayer, + _ref3$canvasFactory = _ref3.canvasFactory, + canvasFactory = _ref3$canvasFactory === void 0 ? null : _ref3$canvasFactory, + _ref3$background = _ref3.background, + background = _ref3$background === void 0 ? null : _ref3$background; + var stats = this._stats; + stats.time('Overall'); + this.pendingCleanup = false; + var renderingIntent = intent === 'print' ? 'print' : 'display'; + var canvasFactoryInstance = canvasFactory || new _display_utils.DOMCanvasFactory(); + var webGLContext = new _webgl.WebGLContext({ + enable: enableWebGL + }); + + if (!this.intentStates[renderingIntent]) { + this.intentStates[renderingIntent] = Object.create(null); + } + + var intentState = this.intentStates[renderingIntent]; + + if (!intentState.displayReadyCapability) { + intentState.receivingOperatorList = true; + intentState.displayReadyCapability = (0, _util.createPromiseCapability)(); + intentState.operatorList = { + fnArray: [], + argsArray: [], + lastChunk: false + }; + stats.time('Page Request'); + + this._transport.messageHandler.send('RenderPageRequest', { + pageIndex: this.pageNumber - 1, + intent: renderingIntent, + renderInteractiveForms: renderInteractiveForms === true + }); + } + + var complete = function complete(error) { + var i = intentState.renderTasks.indexOf(internalRenderTask); + + if (i >= 0) { + intentState.renderTasks.splice(i, 1); + } + + if (_this5.cleanupAfterRender || renderingIntent === 'print') { + _this5.pendingCleanup = true; + } + + _this5._tryCleanup(); + + if (error) { + internalRenderTask.capability.reject(error); + } else { + internalRenderTask.capability.resolve(); + } + + stats.timeEnd('Rendering'); + stats.timeEnd('Overall'); + }; + + var internalRenderTask = new InternalRenderTask({ + callback: complete, + params: { + canvasContext: canvasContext, + viewport: viewport, + transform: transform, + imageLayer: imageLayer, + background: background + }, + objs: this.objs, + commonObjs: this.commonObjs, + operatorList: intentState.operatorList, + pageNumber: this.pageNumber, + canvasFactory: canvasFactoryInstance, + webGLContext: webGLContext, + useRequestAnimationFrame: renderingIntent !== 'print', + pdfBug: this._pdfBug + }); + + if (!intentState.renderTasks) { + intentState.renderTasks = []; + } + + intentState.renderTasks.push(internalRenderTask); + var renderTask = internalRenderTask.task; + intentState.displayReadyCapability.promise.then(function (transparency) { + if (_this5.pendingCleanup) { + complete(); + return; + } + + stats.time('Rendering'); + internalRenderTask.initializeGraphics(transparency); + internalRenderTask.operatorListChanged(); + })["catch"](complete); + return renderTask; + } + }, { + key: "getOperatorList", + value: function getOperatorList() { + function operatorListChanged() { + if (intentState.operatorList.lastChunk) { + intentState.opListReadCapability.resolve(intentState.operatorList); + var i = intentState.renderTasks.indexOf(opListTask); + + if (i >= 0) { + intentState.renderTasks.splice(i, 1); + } + } + } + + var renderingIntent = 'oplist'; + + if (!this.intentStates[renderingIntent]) { + this.intentStates[renderingIntent] = Object.create(null); + } + + var intentState = this.intentStates[renderingIntent]; + var opListTask; + + if (!intentState.opListReadCapability) { + opListTask = {}; + opListTask.operatorListChanged = operatorListChanged; + intentState.receivingOperatorList = true; + intentState.opListReadCapability = (0, _util.createPromiseCapability)(); + intentState.renderTasks = []; + intentState.renderTasks.push(opListTask); + intentState.operatorList = { + fnArray: [], + argsArray: [], + lastChunk: false + }; + + this._stats.time('Page Request'); + + this._transport.messageHandler.send('RenderPageRequest', { + pageIndex: this.pageIndex, + intent: renderingIntent + }); + } + + return intentState.opListReadCapability.promise; + } + }, { + key: "streamTextContent", + value: function streamTextContent() { + var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref4$normalizeWhites = _ref4.normalizeWhitespace, + normalizeWhitespace = _ref4$normalizeWhites === void 0 ? false : _ref4$normalizeWhites, + _ref4$disableCombineT = _ref4.disableCombineTextItems, + disableCombineTextItems = _ref4$disableCombineT === void 0 ? false : _ref4$disableCombineT; + + var TEXT_CONTENT_CHUNK_SIZE = 100; + return this._transport.messageHandler.sendWithStream('GetTextContent', { + pageIndex: this.pageNumber - 1, + normalizeWhitespace: normalizeWhitespace === true, + combineTextItems: disableCombineTextItems !== true + }, { + highWaterMark: TEXT_CONTENT_CHUNK_SIZE, + size: function size(textContent) { + return textContent.items.length; + } + }); + } + }, { + key: "getTextContent", + value: function getTextContent() { + var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var readableStream = this.streamTextContent(params); + return new Promise(function (resolve, reject) { + function pump() { + reader.read().then(function (_ref5) { + var _textContent$items; + + var value = _ref5.value, + done = _ref5.done; + + if (done) { + resolve(textContent); + return; + } + + Object.assign(textContent.styles, value.styles); + + (_textContent$items = textContent.items).push.apply(_textContent$items, _toConsumableArray(value.items)); + + pump(); + }, reject); + } + + var reader = readableStream.getReader(); + var textContent = { + items: [], + styles: Object.create(null) + }; + pump(); + }); + } + }, { + key: "_destroy", + value: function _destroy() { + this.destroyed = true; + this._transport.pageCache[this.pageIndex] = null; + var waitOn = []; + Object.keys(this.intentStates).forEach(function (intent) { + if (intent === 'oplist') { + return; + } + + var intentState = this.intentStates[intent]; + intentState.renderTasks.forEach(function (renderTask) { + var renderCompleted = renderTask.capability.promise["catch"](function () {}); + waitOn.push(renderCompleted); + renderTask.cancel(); + }); + }, this); + this.objs.clear(); + this.annotationsPromise = null; + this.pendingCleanup = false; + return Promise.all(waitOn); + } + }, { + key: "cleanup", + value: function cleanup() { + var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + this.pendingCleanup = true; + + this._tryCleanup(resetStats); + } + }, { + key: "_tryCleanup", + value: function _tryCleanup() { + var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + + if (!this.pendingCleanup || Object.keys(this.intentStates).some(function (intent) { + var intentState = this.intentStates[intent]; + return intentState.renderTasks.length !== 0 || intentState.receivingOperatorList; + }, this)) { + return; + } + + Object.keys(this.intentStates).forEach(function (intent) { + delete this.intentStates[intent]; + }, this); + this.objs.clear(); + this.annotationsPromise = null; + + if (resetStats && this._stats instanceof _display_utils.StatTimer) { + this._stats = new _display_utils.StatTimer(); + } + + this.pendingCleanup = false; + } + }, { + key: "_startRenderPage", + value: function _startRenderPage(transparency, intent) { + var intentState = this.intentStates[intent]; + + if (intentState.displayReadyCapability) { + intentState.displayReadyCapability.resolve(transparency); + } + } + }, { + key: "_renderPageChunk", + value: function _renderPageChunk(operatorListChunk, intent) { + var intentState = this.intentStates[intent]; + + for (var i = 0, ii = operatorListChunk.length; i < ii; i++) { + intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]); + intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]); + } + + intentState.operatorList.lastChunk = operatorListChunk.lastChunk; + + for (var _i = 0; _i < intentState.renderTasks.length; _i++) { + intentState.renderTasks[_i].operatorListChanged(); + } + + if (operatorListChunk.lastChunk) { + intentState.receivingOperatorList = false; + + this._tryCleanup(); + } + } + }, { + key: "pageNumber", + get: function get() { + return this.pageIndex + 1; + } + }, { + key: "rotate", + get: function get() { + return this._pageInfo.rotate; + } + }, { + key: "ref", + get: function get() { + return this._pageInfo.ref; + } + }, { + key: "userUnit", + get: function get() { + return this._pageInfo.userUnit; + } + }, { + key: "view", + get: function get() { + return this._pageInfo.view; + } + }, { + key: "stats", + get: function get() { + return this._stats instanceof _display_utils.StatTimer ? this._stats : null; + } + }]); + + return PDFPageProxy; +}(); + +exports.PDFPageProxy = PDFPageProxy; + +var LoopbackPort = +/*#__PURE__*/ +function () { + function LoopbackPort() { + var defer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + + _classCallCheck(this, LoopbackPort); + + this._listeners = []; + this._defer = defer; + this._deferred = Promise.resolve(undefined); + } + + _createClass(LoopbackPort, [{ + key: "postMessage", + value: function postMessage(obj, transfers) { + var _this6 = this; + + function cloneValue(value) { + if (_typeof(value) !== 'object' || value === null) { + return value; + } + + if (cloned.has(value)) { + return cloned.get(value); + } + + var buffer, result; + + if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) { + var transferable = transfers && transfers.includes(buffer); + + if (value === buffer) { + result = value; + } else if (transferable) { + result = new value.constructor(buffer, value.byteOffset, value.byteLength); + } else { + result = new value.constructor(value); + } + + cloned.set(value, result); + return result; + } + + result = Array.isArray(value) ? [] : {}; + cloned.set(value, result); + + for (var i in value) { + var desc = void 0, + p = value; + + while (!(desc = Object.getOwnPropertyDescriptor(p, i))) { + p = Object.getPrototypeOf(p); + } + + if (typeof desc.value === 'undefined' || typeof desc.value === 'function') { + continue; + } + + result[i] = cloneValue(desc.value); + } + + return result; + } + + if (!this._defer) { + this._listeners.forEach(function (listener) { + listener.call(this, { + data: obj + }); + }, this); + + return; + } + + var cloned = new WeakMap(); + var e = { + data: cloneValue(obj) + }; + + this._deferred.then(function () { + _this6._listeners.forEach(function (listener) { + listener.call(this, e); + }, _this6); + }); + } + }, { + key: "addEventListener", + value: function addEventListener(name, listener) { + this._listeners.push(listener); + } + }, { + key: "removeEventListener", + value: function removeEventListener(name, listener) { + var i = this._listeners.indexOf(listener); + + this._listeners.splice(i, 1); + } + }, { + key: "terminate", + value: function terminate() { + this._listeners.length = 0; + } + }]); + + return LoopbackPort; +}(); + +exports.LoopbackPort = LoopbackPort; + +var PDFWorker = function PDFWorkerClosure() { + var pdfWorkerPorts = new WeakMap(); + var nextFakeWorkerId = 0; + var fakeWorkerFilesLoadedCapability; + + function _getWorkerSrc() { + if (_worker_options.GlobalWorkerOptions.workerSrc) { + return _worker_options.GlobalWorkerOptions.workerSrc; + } + + if (typeof fallbackWorkerSrc !== 'undefined') { + return fallbackWorkerSrc; + } + + throw new Error('No "GlobalWorkerOptions.workerSrc" specified.'); + } + + function getMainThreadWorkerMessageHandler() { + try { + if (typeof window !== 'undefined') { + return window.pdfjsWorker && window.pdfjsWorker.WorkerMessageHandler; + } + } catch (ex) {} + + return null; + } + + function setupFakeWorkerGlobal() { + if (fakeWorkerFilesLoadedCapability) { + return fakeWorkerFilesLoadedCapability.promise; + } + + fakeWorkerFilesLoadedCapability = (0, _util.createPromiseCapability)(); + var mainWorkerMessageHandler = getMainThreadWorkerMessageHandler(); + + if (mainWorkerMessageHandler) { + fakeWorkerFilesLoadedCapability.resolve(mainWorkerMessageHandler); + return fakeWorkerFilesLoadedCapability.promise; + } + + var loader = fakeWorkerFilesLoader || function () { + return (0, _display_utils.loadScript)(_getWorkerSrc()).then(function () { + return window.pdfjsWorker.WorkerMessageHandler; + }); + }; + + loader().then(fakeWorkerFilesLoadedCapability.resolve, fakeWorkerFilesLoadedCapability.reject); + return fakeWorkerFilesLoadedCapability.promise; + } + + function createCDNWrapper(url) { + var wrapper = 'importScripts(\'' + url + '\');'; + return _util.URL.createObjectURL(new Blob([wrapper])); + } + + var PDFWorker = + /*#__PURE__*/ + function () { + function PDFWorker() { + var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref6$name = _ref6.name, + name = _ref6$name === void 0 ? null : _ref6$name, + _ref6$port = _ref6.port, + port = _ref6$port === void 0 ? null : _ref6$port, + _ref6$postMessageTran = _ref6.postMessageTransfers, + postMessageTransfers = _ref6$postMessageTran === void 0 ? true : _ref6$postMessageTran, + _ref6$verbosity = _ref6.verbosity, + verbosity = _ref6$verbosity === void 0 ? (0, _util.getVerbosityLevel)() : _ref6$verbosity; + + _classCallCheck(this, PDFWorker); + + if (port && pdfWorkerPorts.has(port)) { + throw new Error('Cannot use more than one PDFWorker per port'); + } + + this.name = name; + this.destroyed = false; + this.postMessageTransfers = postMessageTransfers !== false; + this.verbosity = verbosity; + this._readyCapability = (0, _util.createPromiseCapability)(); + this._port = null; + this._webWorker = null; + this._messageHandler = null; + + if (port) { + pdfWorkerPorts.set(port, this); + + this._initializeFromPort(port); + + return; + } + + this._initialize(); + } + + _createClass(PDFWorker, [{ + key: "_initializeFromPort", + value: function _initializeFromPort(port) { + this._port = port; + this._messageHandler = new _message_handler.MessageHandler('main', 'worker', port); + + this._messageHandler.on('ready', function () {}); + + this._readyCapability.resolve(); + } + }, { + key: "_initialize", + value: function _initialize() { + var _this7 = this; + + if (typeof Worker !== 'undefined' && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) { + var workerSrc = _getWorkerSrc(); + + try { + if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) { + workerSrc = createCDNWrapper(new _util.URL(workerSrc, window.location).href); + } + + var worker = new Worker(workerSrc); + var messageHandler = new _message_handler.MessageHandler('main', 'worker', worker); + + var terminateEarly = function terminateEarly() { + worker.removeEventListener('error', onWorkerError); + messageHandler.destroy(); + worker.terminate(); + + if (_this7.destroyed) { + _this7._readyCapability.reject(new Error('Worker was destroyed')); + } else { + _this7._setupFakeWorker(); + } + }; + + var onWorkerError = function onWorkerError() { + if (!_this7._webWorker) { + terminateEarly(); + } + }; + + worker.addEventListener('error', onWorkerError); + messageHandler.on('test', function (data) { + worker.removeEventListener('error', onWorkerError); + + if (_this7.destroyed) { + terminateEarly(); + return; + } + + if (data && data.supportTypedArray) { + _this7._messageHandler = messageHandler; + _this7._port = worker; + _this7._webWorker = worker; + + if (!data.supportTransfers) { + _this7.postMessageTransfers = false; + } + + _this7._readyCapability.resolve(); + + messageHandler.send('configure', { + verbosity: _this7.verbosity + }); + } else { + _this7._setupFakeWorker(); + + messageHandler.destroy(); + worker.terminate(); + } + }); + messageHandler.on('ready', function (data) { + worker.removeEventListener('error', onWorkerError); + + if (_this7.destroyed) { + terminateEarly(); + return; + } + + try { + sendTest(); + } catch (e) { + _this7._setupFakeWorker(); + } + }); + + var sendTest = function sendTest() { + var testObj = new Uint8Array([_this7.postMessageTransfers ? 255 : 0]); + + try { + messageHandler.send('test', testObj, [testObj.buffer]); + } catch (ex) { + (0, _util.info)('Cannot use postMessage transfers'); + testObj[0] = 0; + messageHandler.send('test', testObj); + } + }; + + sendTest(); + return; + } catch (e) { + (0, _util.info)('The worker has been disabled.'); + } + } + + this._setupFakeWorker(); + } + }, { + key: "_setupFakeWorker", + value: function _setupFakeWorker() { + var _this8 = this; + + if (!isWorkerDisabled) { + (0, _util.warn)('Setting up fake worker.'); + isWorkerDisabled = true; + } + + setupFakeWorkerGlobal().then(function (WorkerMessageHandler) { + if (_this8.destroyed) { + _this8._readyCapability.reject(new Error('Worker was destroyed')); + + return; + } + + var port = new LoopbackPort(); + _this8._port = port; + var id = 'fake' + nextFakeWorkerId++; + var workerHandler = new _message_handler.MessageHandler(id + '_worker', id, port); + WorkerMessageHandler.setup(workerHandler, port); + var messageHandler = new _message_handler.MessageHandler(id, id + '_worker', port); + _this8._messageHandler = messageHandler; + + _this8._readyCapability.resolve(); + })["catch"](function (reason) { + _this8._readyCapability.reject(new Error("Setting up fake worker failed: \"".concat(reason.message, "\"."))); + }); + } + }, { + key: "destroy", + value: function destroy() { + this.destroyed = true; + + if (this._webWorker) { + this._webWorker.terminate(); + + this._webWorker = null; + } + + pdfWorkerPorts["delete"](this._port); + this._port = null; + + if (this._messageHandler) { + this._messageHandler.destroy(); + + this._messageHandler = null; + } + } + }, { + key: "promise", + get: function get() { + return this._readyCapability.promise; + } + }, { + key: "port", + get: function get() { + return this._port; + } + }, { + key: "messageHandler", + get: function get() { + return this._messageHandler; + } + }], [{ + key: "fromPort", + value: function fromPort(params) { + if (!params || !params.port) { + throw new Error('PDFWorker.fromPort - invalid method signature.'); + } + + if (pdfWorkerPorts.has(params.port)) { + return pdfWorkerPorts.get(params.port); + } + + return new PDFWorker(params); + } + }, { + key: "getWorkerSrc", + value: function getWorkerSrc() { + return _getWorkerSrc(); + } + }]); + + return PDFWorker; + }(); + + return PDFWorker; +}(); + +exports.PDFWorker = PDFWorker; + +var WorkerTransport = +/*#__PURE__*/ +function () { + function WorkerTransport(messageHandler, loadingTask, networkStream, params) { + _classCallCheck(this, WorkerTransport); + + this.messageHandler = messageHandler; + this.loadingTask = loadingTask; + this.commonObjs = new PDFObjects(); + this.fontLoader = new _font_loader.FontLoader({ + docId: loadingTask.docId, + onUnsupportedFeature: this._onUnsupportedFeature.bind(this) + }); + this._params = params; + this.CMapReaderFactory = new params.CMapReaderFactory({ + baseUrl: params.cMapUrl, + isCompressed: params.cMapPacked + }); + this.destroyed = false; + this.destroyCapability = null; + this._passwordCapability = null; + this._networkStream = networkStream; + this._fullReader = null; + this._lastProgress = null; + this.pageCache = []; + this.pagePromises = []; + this.downloadInfoCapability = (0, _util.createPromiseCapability)(); + this.setupMessageHandler(); + } + + _createClass(WorkerTransport, [{ + key: "destroy", + value: function destroy() { + var _this9 = this; + + if (this.destroyCapability) { + return this.destroyCapability.promise; + } + + this.destroyed = true; + this.destroyCapability = (0, _util.createPromiseCapability)(); + + if (this._passwordCapability) { + this._passwordCapability.reject(new Error('Worker was destroyed during onPassword callback')); + } + + var waitOn = []; + this.pageCache.forEach(function (page) { + if (page) { + waitOn.push(page._destroy()); + } + }); + this.pageCache.length = 0; + this.pagePromises.length = 0; + var terminated = this.messageHandler.sendWithPromise('Terminate', null); + waitOn.push(terminated); + Promise.all(waitOn).then(function () { + _this9.fontLoader.clear(); + + if (_this9._networkStream) { + _this9._networkStream.cancelAllRequests(); + } + + if (_this9.messageHandler) { + _this9.messageHandler.destroy(); + + _this9.messageHandler = null; + } + + _this9.destroyCapability.resolve(); + }, this.destroyCapability.reject); + return this.destroyCapability.promise; + } + }, { + key: "setupMessageHandler", + value: function setupMessageHandler() { + var messageHandler = this.messageHandler, + loadingTask = this.loadingTask; + messageHandler.on('GetReader', function (data, sink) { + var _this10 = this; + + (0, _util.assert)(this._networkStream); + this._fullReader = this._networkStream.getFullReader(); + + this._fullReader.onProgress = function (evt) { + _this10._lastProgress = { + loaded: evt.loaded, + total: evt.total + }; + }; + + sink.onPull = function () { + _this10._fullReader.read().then(function (_ref7) { + var value = _ref7.value, + done = _ref7.done; + + if (done) { + sink.close(); + return; + } + + (0, _util.assert)((0, _util.isArrayBuffer)(value)); + sink.enqueue(new Uint8Array(value), 1, [value]); + })["catch"](function (reason) { + sink.error(reason); + }); + }; + + sink.onCancel = function (reason) { + _this10._fullReader.cancel(reason); + }; + }, this); + messageHandler.on('ReaderHeadersReady', function (data) { + var _this11 = this; + + var headersCapability = (0, _util.createPromiseCapability)(); + var fullReader = this._fullReader; + fullReader.headersReady.then(function () { + if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) { + if (_this11._lastProgress && loadingTask.onProgress) { + loadingTask.onProgress(_this11._lastProgress); + } + + fullReader.onProgress = function (evt) { + if (loadingTask.onProgress) { + loadingTask.onProgress({ + loaded: evt.loaded, + total: evt.total + }); + } + }; + } + + headersCapability.resolve({ + isStreamingSupported: fullReader.isStreamingSupported, + isRangeSupported: fullReader.isRangeSupported, + contentLength: fullReader.contentLength + }); + }, headersCapability.reject); + return headersCapability.promise; + }, this); + messageHandler.on('GetRangeReader', function (data, sink) { + (0, _util.assert)(this._networkStream); + + var rangeReader = this._networkStream.getRangeReader(data.begin, data.end); + + if (!rangeReader) { + sink.close(); + return; + } + + sink.onPull = function () { + rangeReader.read().then(function (_ref8) { + var value = _ref8.value, + done = _ref8.done; + + if (done) { + sink.close(); + return; + } + + (0, _util.assert)((0, _util.isArrayBuffer)(value)); + sink.enqueue(new Uint8Array(value), 1, [value]); + })["catch"](function (reason) { + sink.error(reason); + }); + }; + + sink.onCancel = function (reason) { + rangeReader.cancel(reason); + }; + }, this); + messageHandler.on('GetDoc', function (_ref9) { + var pdfInfo = _ref9.pdfInfo; + this._numPages = pdfInfo.numPages; + + loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this)); + }, this); + messageHandler.on('PasswordRequest', function (exception) { + var _this12 = this; + + this._passwordCapability = (0, _util.createPromiseCapability)(); + + if (loadingTask.onPassword) { + var updatePassword = function updatePassword(password) { + _this12._passwordCapability.resolve({ + password: password + }); + }; + + try { + loadingTask.onPassword(updatePassword, exception.code); + } catch (ex) { + this._passwordCapability.reject(ex); + } + } else { + this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code)); + } + + return this._passwordCapability.promise; + }, this); + messageHandler.on('PasswordException', function (exception) { + loadingTask._capability.reject(new _util.PasswordException(exception.message, exception.code)); + }, this); + messageHandler.on('InvalidPDF', function (exception) { + loadingTask._capability.reject(new _util.InvalidPDFException(exception.message)); + }, this); + messageHandler.on('MissingPDF', function (exception) { + loadingTask._capability.reject(new _util.MissingPDFException(exception.message)); + }, this); + messageHandler.on('UnexpectedResponse', function (exception) { + loadingTask._capability.reject(new _util.UnexpectedResponseException(exception.message, exception.status)); + }, this); + messageHandler.on('UnknownError', function (exception) { + loadingTask._capability.reject(new _util.UnknownErrorException(exception.message, exception.details)); + }, this); + messageHandler.on('DataLoaded', function (data) { + if (loadingTask.onProgress) { + loadingTask.onProgress({ + loaded: data.length, + total: data.length + }); + } + + this.downloadInfoCapability.resolve(data); + }, this); + messageHandler.on('StartRenderPage', function (data) { + if (this.destroyed) { + return; + } + + var page = this.pageCache[data.pageIndex]; + + page._stats.timeEnd('Page Request'); + + page._startRenderPage(data.transparency, data.intent); + }, this); + messageHandler.on('RenderPageChunk', function (data) { + if (this.destroyed) { + return; + } + + var page = this.pageCache[data.pageIndex]; + + page._renderPageChunk(data.operatorList, data.intent); + }, this); + messageHandler.on('commonobj', function (data) { + var _this13 = this; + + if (this.destroyed) { + return; + } + + var _data = _slicedToArray(data, 3), + id = _data[0], + type = _data[1], + exportedData = _data[2]; + + if (this.commonObjs.has(id)) { + return; + } + + switch (type) { + case 'Font': + var params = this._params; + + if ('error' in exportedData) { + var exportedError = exportedData.error; + (0, _util.warn)("Error during font loading: ".concat(exportedError)); + this.commonObjs.resolve(id, exportedError); + break; + } + + var fontRegistry = null; + + if (params.pdfBug && _global_scope["default"].FontInspector && _global_scope["default"].FontInspector.enabled) { + fontRegistry = { + registerFont: function registerFont(font, url) { + _global_scope["default"]['FontInspector'].fontAdded(font, url); + } + }; + } + + var font = new _font_loader.FontFaceObject(exportedData, { + isEvalSupported: params.isEvalSupported, + disableFontFace: params.disableFontFace, + ignoreErrors: params.ignoreErrors, + onUnsupportedFeature: this._onUnsupportedFeature.bind(this), + fontRegistry: fontRegistry + }); + this.fontLoader.bind(font).then(function () { + _this13.commonObjs.resolve(id, font); + }, function (reason) { + messageHandler.sendWithPromise('FontFallback', { + id: id + })["finally"](function () { + _this13.commonObjs.resolve(id, font); + }); + }); + break; + + case 'FontPath': + case 'FontType3Res': + this.commonObjs.resolve(id, exportedData); + break; + + default: + throw new Error("Got unknown common object type ".concat(type)); + } + }, this); + messageHandler.on('obj', function (data) { + if (this.destroyed) { + return undefined; + } + + var _data2 = _slicedToArray(data, 4), + id = _data2[0], + pageIndex = _data2[1], + type = _data2[2], + imageData = _data2[3]; + + var pageProxy = this.pageCache[pageIndex]; + + if (pageProxy.objs.has(id)) { + return undefined; + } + + switch (type) { + case 'JpegStream': + return new Promise(function (resolve, reject) { + var img = new Image(); + + img.onload = function () { + resolve(img); + }; + + img.onerror = function () { + reject(new Error('Error during JPEG image loading')); + (0, _display_utils.releaseImageResources)(img); + }; + + img.src = imageData; + }).then(function (img) { + pageProxy.objs.resolve(id, img); + }); + + case 'Image': + pageProxy.objs.resolve(id, imageData); + var MAX_IMAGE_SIZE_TO_STORE = 8000000; + + if (imageData && 'data' in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) { + pageProxy.cleanupAfterRender = true; + } + + break; + + default: + throw new Error("Got unknown object type ".concat(type)); + } + + return undefined; + }, this); + messageHandler.on('DocProgress', function (data) { + if (this.destroyed) { + return; + } + + if (loadingTask.onProgress) { + loadingTask.onProgress({ + loaded: data.loaded, + total: data.total + }); + } + }, this); + messageHandler.on('PageError', function (data) { + if (this.destroyed) { + return; + } + + var page = this.pageCache[data.pageIndex]; + var intentState = page.intentStates[data.intent]; + + if (intentState.displayReadyCapability) { + intentState.displayReadyCapability.reject(new Error(data.error)); + } else { + throw new Error(data.error); + } + + if (intentState.operatorList) { + intentState.operatorList.lastChunk = true; + + for (var i = 0; i < intentState.renderTasks.length; i++) { + intentState.renderTasks[i].operatorListChanged(); + } + } + }, this); + messageHandler.on('UnsupportedFeature', this._onUnsupportedFeature, this); + messageHandler.on('JpegDecode', function (data) { + if (this.destroyed) { + return Promise.reject(new Error('Worker was destroyed')); + } + + if (typeof document === 'undefined') { + return Promise.reject(new Error('"document" is not defined.')); + } + + var _data3 = _slicedToArray(data, 2), + imageUrl = _data3[0], + components = _data3[1]; + + if (components !== 3 && components !== 1) { + return Promise.reject(new Error('Only 3 components or 1 component can be returned')); + } + + return new Promise(function (resolve, reject) { + var img = new Image(); + + img.onload = function () { + var width = img.width, + height = img.height; + var size = width * height; + var rgbaLength = size * 4; + var buf = new Uint8ClampedArray(size * components); + var tmpCanvas = document.createElement('canvas'); + tmpCanvas.width = width; + tmpCanvas.height = height; + var tmpCtx = tmpCanvas.getContext('2d'); + tmpCtx.drawImage(img, 0, 0); + var data = tmpCtx.getImageData(0, 0, width, height).data; + + if (components === 3) { + for (var i = 0, j = 0; i < rgbaLength; i += 4, j += 3) { + buf[j] = data[i]; + buf[j + 1] = data[i + 1]; + buf[j + 2] = data[i + 2]; + } + } else if (components === 1) { + for (var _i2 = 0, _j = 0; _i2 < rgbaLength; _i2 += 4, _j++) { + buf[_j] = data[_i2]; + } + } + + resolve({ + data: buf, + width: width, + height: height + }); + (0, _display_utils.releaseImageResources)(img); + tmpCanvas.width = 0; + tmpCanvas.height = 0; + tmpCanvas = null; + tmpCtx = null; + }; + + img.onerror = function () { + reject(new Error('JpegDecode failed to load image')); + (0, _display_utils.releaseImageResources)(img); + }; + + img.src = imageUrl; + }); + }, this); + messageHandler.on('FetchBuiltInCMap', function (data) { + if (this.destroyed) { + return Promise.reject(new Error('Worker was destroyed')); + } + + return this.CMapReaderFactory.fetch({ + name: data.name + }); + }, this); + } + }, { + key: "_onUnsupportedFeature", + value: function _onUnsupportedFeature(_ref10) { + var featureId = _ref10.featureId; + + if (this.destroyed) { + return; + } + + if (this.loadingTask.onUnsupportedFeature) { + this.loadingTask.onUnsupportedFeature(featureId); + } + } + }, { + key: "getData", + value: function getData() { + return this.messageHandler.sendWithPromise('GetData', null); + } + }, { + key: "getPage", + value: function getPage(pageNumber) { + var _this14 = this; + + if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) { + return Promise.reject(new Error('Invalid page request')); + } + + var pageIndex = pageNumber - 1; + + if (pageIndex in this.pagePromises) { + return this.pagePromises[pageIndex]; + } + + var promise = this.messageHandler.sendWithPromise('GetPage', { + pageIndex: pageIndex + }).then(function (pageInfo) { + if (_this14.destroyed) { + throw new Error('Transport destroyed'); + } + + var page = new PDFPageProxy(pageIndex, pageInfo, _this14, _this14._params.pdfBug); + _this14.pageCache[pageIndex] = page; + return page; + }); + this.pagePromises[pageIndex] = promise; + return promise; + } + }, { + key: "getPageIndex", + value: function getPageIndex(ref) { + return this.messageHandler.sendWithPromise('GetPageIndex', { + ref: ref + })["catch"](function (reason) { + return Promise.reject(new Error(reason)); + }); + } + }, { + key: "getAnnotations", + value: function getAnnotations(pageIndex, intent) { + return this.messageHandler.sendWithPromise('GetAnnotations', { + pageIndex: pageIndex, + intent: intent + }); + } + }, { + key: "getDestinations", + value: function getDestinations() { + return this.messageHandler.sendWithPromise('GetDestinations', null); + } + }, { + key: "getDestination", + value: function getDestination(id) { + if (typeof id !== 'string') { + return Promise.reject(new Error('Invalid destination request.')); + } + + return this.messageHandler.sendWithPromise('GetDestination', { + id: id + }); + } + }, { + key: "getPageLabels", + value: function getPageLabels() { + return this.messageHandler.sendWithPromise('GetPageLabels', null); + } + }, { + key: "getPageLayout", + value: function getPageLayout() { + return this.messageHandler.sendWithPromise('GetPageLayout', null); + } + }, { + key: "getPageMode", + value: function getPageMode() { + return this.messageHandler.sendWithPromise('GetPageMode', null); + } + }, { + key: "getViewerPreferences", + value: function getViewerPreferences() { + return this.messageHandler.sendWithPromise('GetViewerPreferences', null); + } + }, { + key: "getOpenActionDestination", + value: function getOpenActionDestination() { + return this.messageHandler.sendWithPromise('GetOpenActionDestination', null); + } + }, { + key: "getAttachments", + value: function getAttachments() { + return this.messageHandler.sendWithPromise('GetAttachments', null); + } + }, { + key: "getJavaScript", + value: function getJavaScript() { + return this.messageHandler.sendWithPromise('GetJavaScript', null); + } + }, { + key: "getOutline", + value: function getOutline() { + return this.messageHandler.sendWithPromise('GetOutline', null); + } + }, { + key: "getPermissions", + value: function getPermissions() { + return this.messageHandler.sendWithPromise('GetPermissions', null); + } + }, { + key: "getMetadata", + value: function getMetadata() { + var _this15 = this; + + return this.messageHandler.sendWithPromise('GetMetadata', null).then(function (results) { + return { + info: results[0], + metadata: results[1] ? new _metadata.Metadata(results[1]) : null, + contentDispositionFilename: _this15._fullReader ? _this15._fullReader.filename : null + }; + }); + } + }, { + key: "getStats", + value: function getStats() { + return this.messageHandler.sendWithPromise('GetStats', null); + } + }, { + key: "startCleanup", + value: function startCleanup() { + var _this16 = this; + + this.messageHandler.sendWithPromise('Cleanup', null).then(function () { + for (var i = 0, ii = _this16.pageCache.length; i < ii; i++) { + var page = _this16.pageCache[i]; + + if (page) { + page.cleanup(); + } + } + + _this16.commonObjs.clear(); + + _this16.fontLoader.clear(); + }); + } + }, { + key: "loadingParams", + get: function get() { + var params = this._params; + return (0, _util.shadow)(this, 'loadingParams', { + disableAutoFetch: params.disableAutoFetch, + disableCreateObjectURL: params.disableCreateObjectURL, + disableFontFace: params.disableFontFace, + nativeImageDecoderSupport: params.nativeImageDecoderSupport + }); + } + }]); + + return WorkerTransport; +}(); + +var PDFObjects = +/*#__PURE__*/ +function () { + function PDFObjects() { + _classCallCheck(this, PDFObjects); + + this._objs = Object.create(null); + } + + _createClass(PDFObjects, [{ + key: "_ensureObj", + value: function _ensureObj(objId) { + if (this._objs[objId]) { + return this._objs[objId]; + } + + return this._objs[objId] = { + capability: (0, _util.createPromiseCapability)(), + data: null, + resolved: false + }; + } + }, { + key: "get", + value: function get(objId) { + var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + + if (callback) { + this._ensureObj(objId).capability.promise.then(callback); + + return null; + } + + var obj = this._objs[objId]; + + if (!obj || !obj.resolved) { + throw new Error("Requesting object that isn't resolved yet ".concat(objId, ".")); + } + + return obj.data; + } + }, { + key: "has", + value: function has(objId) { + var obj = this._objs[objId]; + return obj ? obj.resolved : false; + } + }, { + key: "resolve", + value: function resolve(objId, data) { + var obj = this._ensureObj(objId); + + obj.resolved = true; + obj.data = data; + obj.capability.resolve(data); + } + }, { + key: "clear", + value: function clear() { + for (var objId in this._objs) { + var data = this._objs[objId].data; + + if (typeof Image !== 'undefined' && data instanceof Image) { + (0, _display_utils.releaseImageResources)(data); + } + } + + this._objs = Object.create(null); + } + }]); + + return PDFObjects; +}(); + +var RenderTask = +/*#__PURE__*/ +function () { + function RenderTask(internalRenderTask) { + _classCallCheck(this, RenderTask); + + this._internalRenderTask = internalRenderTask; + this.onContinue = null; + } + + _createClass(RenderTask, [{ + key: "cancel", + value: function cancel() { + this._internalRenderTask.cancel(); + } + }, { + key: "then", + value: function then(onFulfilled, onRejected) { + (0, _display_utils.deprecated)('RenderTask.then method, use the `promise` getter instead.'); + return this.promise.then.apply(this.promise, arguments); + } + }, { + key: "promise", + get: function get() { + return this._internalRenderTask.capability.promise; + } + }]); + + return RenderTask; +}(); + +var InternalRenderTask = function InternalRenderTaskClosure() { + var canvasInRendering = new WeakSet(); + + var InternalRenderTask = + /*#__PURE__*/ + function () { + function InternalRenderTask(_ref11) { + var callback = _ref11.callback, + params = _ref11.params, + objs = _ref11.objs, + commonObjs = _ref11.commonObjs, + operatorList = _ref11.operatorList, + pageNumber = _ref11.pageNumber, + canvasFactory = _ref11.canvasFactory, + webGLContext = _ref11.webGLContext, + _ref11$useRequestAnim = _ref11.useRequestAnimationFrame, + useRequestAnimationFrame = _ref11$useRequestAnim === void 0 ? false : _ref11$useRequestAnim, + _ref11$pdfBug = _ref11.pdfBug, + pdfBug = _ref11$pdfBug === void 0 ? false : _ref11$pdfBug; + + _classCallCheck(this, InternalRenderTask); + + this.callback = callback; + this.params = params; + this.objs = objs; + this.commonObjs = commonObjs; + this.operatorListIdx = null; + this.operatorList = operatorList; + this.pageNumber = pageNumber; + this.canvasFactory = canvasFactory; + this.webGLContext = webGLContext; + this._pdfBug = pdfBug; + this.running = false; + this.graphicsReadyCallback = null; + this.graphicsReady = false; + this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== 'undefined'; + this.cancelled = false; + this.capability = (0, _util.createPromiseCapability)(); + this.task = new RenderTask(this); + this._continueBound = this._continue.bind(this); + this._scheduleNextBound = this._scheduleNext.bind(this); + this._nextBound = this._next.bind(this); + this._canvas = params.canvasContext.canvas; + } + + _createClass(InternalRenderTask, [{ + key: "initializeGraphics", + value: function initializeGraphics() { + var transparency = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + + if (this.cancelled) { + return; + } + + if (this._canvas) { + if (canvasInRendering.has(this._canvas)) { + throw new Error('Cannot use the same canvas during multiple render() operations. ' + 'Use different canvas or ensure previous operations were ' + 'cancelled or completed.'); + } + + canvasInRendering.add(this._canvas); + } + + if (this._pdfBug && _global_scope["default"].StepperManager && _global_scope["default"].StepperManager.enabled) { + this.stepper = _global_scope["default"].StepperManager.create(this.pageNumber - 1); + this.stepper.init(this.operatorList); + this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint(); + } + + var _this$params = this.params, + canvasContext = _this$params.canvasContext, + viewport = _this$params.viewport, + transform = _this$params.transform, + imageLayer = _this$params.imageLayer, + background = _this$params.background; + this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, imageLayer); + this.gfx.beginDrawing({ + transform: transform, + viewport: viewport, + transparency: transparency, + background: background + }); + this.operatorListIdx = 0; + this.graphicsReady = true; + + if (this.graphicsReadyCallback) { + this.graphicsReadyCallback(); + } + } + }, { + key: "cancel", + value: function cancel() { + var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + this.running = false; + this.cancelled = true; + + if (this.gfx) { + this.gfx.endDrawing(); + } + + if (this._canvas) { + canvasInRendering["delete"](this._canvas); + } + + this.callback(error || new _display_utils.RenderingCancelledException("Rendering cancelled, page ".concat(this.pageNumber), 'canvas')); + } + }, { + key: "operatorListChanged", + value: function operatorListChanged() { + if (!this.graphicsReady) { + if (!this.graphicsReadyCallback) { + this.graphicsReadyCallback = this._continueBound; + } + + return; + } + + if (this.stepper) { + this.stepper.updateOperatorList(this.operatorList); + } + + if (this.running) { + return; + } + + this._continue(); + } + }, { + key: "_continue", + value: function _continue() { + this.running = true; + + if (this.cancelled) { + return; + } + + if (this.task.onContinue) { + this.task.onContinue(this._scheduleNextBound); + } else { + this._scheduleNext(); + } + } + }, { + key: "_scheduleNext", + value: function _scheduleNext() { + var _this17 = this; + + if (this._useRequestAnimationFrame) { + window.requestAnimationFrame(function () { + _this17._nextBound()["catch"](_this17.cancel.bind(_this17)); + }); + } else { + Promise.resolve().then(this._nextBound)["catch"](this.cancel.bind(this)); + } + } + }, { + key: "_next", + value: function () { + var _next2 = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee() { + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + if (!this.cancelled) { + _context.next = 2; + break; + } + + return _context.abrupt("return"); + + case 2: + this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper); + + if (this.operatorListIdx === this.operatorList.argsArray.length) { + this.running = false; + + if (this.operatorList.lastChunk) { + this.gfx.endDrawing(); + + if (this._canvas) { + canvasInRendering["delete"](this._canvas); + } + + this.callback(); + } + } + + case 4: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function _next() { + return _next2.apply(this, arguments); + } + + return _next; + }() + }]); + + return InternalRenderTask; + }(); + + return InternalRenderTask; +}(); + +var version = '2.2.228'; +exports.version = version; +var build = 'd7afb74a'; +exports.build = build; + +/***/ }), +/* 148 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = __w_pdfjs_require__(149); + +/***/ }), +/* 149 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(module) { + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +var runtime = function (exports) { + "use strict"; + + var Op = Object.prototype; + var hasOwn = Op.hasOwnProperty; + var undefined; + var $Symbol = typeof Symbol === "function" ? Symbol : {}; + var iteratorSymbol = $Symbol.iterator || "@@iterator"; + var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; + var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; + var generator = Object.create(protoGenerator.prototype); + var context = new Context(tryLocsList || []); + generator._invoke = makeInvokeMethod(innerFn, self, context); + return generator; + } + + exports.wrap = wrap; + + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) + }; + } catch (err) { + return { + type: "throw", + arg: err + }; + } + } + + var GenStateSuspendedStart = "suspendedStart"; + var GenStateSuspendedYield = "suspendedYield"; + var GenStateExecuting = "executing"; + var GenStateCompleted = "completed"; + var ContinueSentinel = {}; + + function Generator() {} + + function GeneratorFunction() {} + + function GeneratorFunctionPrototype() {} + + var IteratorPrototype = {}; + + IteratorPrototype[iteratorSymbol] = function () { + return this; + }; + + var getProto = Object.getPrototypeOf; + var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + + if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { + IteratorPrototype = NativeIteratorPrototype; + } + + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; + GeneratorFunctionPrototype.constructor = GeneratorFunction; + GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction"; + + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + prototype[method] = function (arg) { + return this._invoke(method, arg); + }; + }); + } + + exports.isGeneratorFunction = function (genFun) { + var ctor = typeof genFun === "function" && genFun.constructor; + return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false; + }; + + exports.mark = function (genFun) { + if (Object.setPrototypeOf) { + Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); + } else { + genFun.__proto__ = GeneratorFunctionPrototype; + + if (!(toStringTagSymbol in genFun)) { + genFun[toStringTagSymbol] = "GeneratorFunction"; + } + } + + genFun.prototype = Object.create(Gp); + return genFun; + }; + + exports.awrap = function (arg) { + return { + __await: arg + }; + }; + + function AsyncIterator(generator) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + + if (record.type === "throw") { + reject(record.arg); + } else { + var result = record.arg; + var value = result.value; + + if (value && _typeof(value) === "object" && hasOwn.call(value, "__await")) { + return Promise.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }); + } + + return Promise.resolve(value).then(function (unwrapped) { + result.value = unwrapped; + resolve(result); + }, function (error) { + return invoke("throw", error, resolve, reject); + }); + } + } + + var previousPromise; + + function enqueue(method, arg) { + function callInvokeWithMethodAndArg() { + return new Promise(function (resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + + return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + } + + this._invoke = enqueue; + } + + defineIteratorMethods(AsyncIterator.prototype); + + AsyncIterator.prototype[asyncIteratorSymbol] = function () { + return this; + }; + + exports.AsyncIterator = AsyncIterator; + + exports.async = function (innerFn, outerFn, self, tryLocsList) { + var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList)); + return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { + return result.done ? result.value : iter.next(); + }); + }; + + function makeInvokeMethod(innerFn, self, context) { + var state = GenStateSuspendedStart; + return function invoke(method, arg) { + if (state === GenStateExecuting) { + throw new Error("Generator is already running"); + } + + if (state === GenStateCompleted) { + if (method === "throw") { + throw arg; + } + + return doneResult(); + } + + context.method = method; + context.arg = arg; + + while (true) { + var delegate = context.delegate; + + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + + if (context.method === "next") { + context.sent = context._sent = context.arg; + } else if (context.method === "throw") { + if (state === GenStateSuspendedStart) { + state = GenStateCompleted; + throw context.arg; + } + + context.dispatchException(context.arg); + } else if (context.method === "return") { + context.abrupt("return", context.arg); + } + + state = GenStateExecuting; + var record = tryCatch(innerFn, self, context); + + if (record.type === "normal") { + state = context.done ? GenStateCompleted : GenStateSuspendedYield; + + if (record.arg === ContinueSentinel) { + continue; + } + + return { + value: record.arg, + done: context.done + }; + } else if (record.type === "throw") { + state = GenStateCompleted; + context.method = "throw"; + context.arg = record.arg; + } + } + }; + } + + function maybeInvokeDelegate(delegate, context) { + var method = delegate.iterator[context.method]; + + if (method === undefined) { + context.delegate = null; + + if (context.method === "throw") { + if (delegate.iterator["return"]) { + context.method = "return"; + context.arg = undefined; + maybeInvokeDelegate(delegate, context); + + if (context.method === "throw") { + return ContinueSentinel; + } + } + + context.method = "throw"; + context.arg = new TypeError("The iterator does not provide a 'throw' method"); + } + + return ContinueSentinel; + } + + var record = tryCatch(method, delegate.iterator, context.arg); + + if (record.type === "throw") { + context.method = "throw"; + context.arg = record.arg; + context.delegate = null; + return ContinueSentinel; + } + + var info = record.arg; + + if (!info) { + context.method = "throw"; + context.arg = new TypeError("iterator result is not an object"); + context.delegate = null; + return ContinueSentinel; + } + + if (info.done) { + context[delegate.resultName] = info.value; + context.next = delegate.nextLoc; + + if (context.method !== "return") { + context.method = "next"; + context.arg = undefined; + } + } else { + return info; + } + + context.delegate = null; + return ContinueSentinel; + } + + defineIteratorMethods(Gp); + Gp[toStringTagSymbol] = "Generator"; + + Gp[iteratorSymbol] = function () { + return this; + }; + + Gp.toString = function () { + return "[object Generator]"; + }; + + function pushTryEntry(locs) { + var entry = { + tryLoc: locs[0] + }; + + if (1 in locs) { + entry.catchLoc = locs[1]; + } + + if (2 in locs) { + entry.finallyLoc = locs[2]; + entry.afterLoc = locs[3]; + } + + this.tryEntries.push(entry); + } + + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal"; + delete record.arg; + entry.completion = record; + } + + function Context(tryLocsList) { + this.tryEntries = [{ + tryLoc: "root" + }]; + tryLocsList.forEach(pushTryEntry, this); + this.reset(true); + } + + exports.keys = function (object) { + var keys = []; + + for (var key in object) { + keys.push(key); + } + + keys.reverse(); + return function next() { + while (keys.length) { + var key = keys.pop(); + + if (key in object) { + next.value = key; + next.done = false; + return next; + } + } + + next.done = true; + return next; + }; + }; + + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + + if (iteratorMethod) { + return iteratorMethod.call(iterable); + } + + if (typeof iterable.next === "function") { + return iterable; + } + + if (!isNaN(iterable.length)) { + var i = -1, + next = function next() { + while (++i < iterable.length) { + if (hasOwn.call(iterable, i)) { + next.value = iterable[i]; + next.done = false; + return next; + } + } + + next.value = undefined; + next.done = true; + return next; + }; + + return next.next = next; + } + } + + return { + next: doneResult + }; + } + + exports.values = values; + + function doneResult() { + return { + value: undefined, + done: true + }; + } + + Context.prototype = { + constructor: Context, + reset: function reset(skipTempReset) { + this.prev = 0; + this.next = 0; + this.sent = this._sent = undefined; + this.done = false; + this.delegate = null; + this.method = "next"; + this.arg = undefined; + this.tryEntries.forEach(resetTryEntry); + + if (!skipTempReset) { + for (var name in this) { + if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { + this[name] = undefined; + } + } + } + }, + stop: function stop() { + this.done = true; + var rootEntry = this.tryEntries[0]; + var rootRecord = rootEntry.completion; + + if (rootRecord.type === "throw") { + throw rootRecord.arg; + } + + return this.rval; + }, + dispatchException: function dispatchException(exception) { + if (this.done) { + throw exception; + } + + var context = this; + + function handle(loc, caught) { + record.type = "throw"; + record.arg = exception; + context.next = loc; + + if (caught) { + context.method = "next"; + context.arg = undefined; + } + + return !!caught; + } + + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + var record = entry.completion; + + if (entry.tryLoc === "root") { + return handle("end"); + } + + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"); + var hasFinally = hasOwn.call(entry, "finallyLoc"); + + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } else if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + } else if (hasCatch) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } + } else if (hasFinally) { + if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + } else { + throw new Error("try statement without catch or finally"); + } + } + } + }, + abrupt: function abrupt(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + + if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + + if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { + finallyEntry = null; + } + + var record = finallyEntry ? finallyEntry.completion : {}; + record.type = type; + record.arg = arg; + + if (finallyEntry) { + this.method = "next"; + this.next = finallyEntry.finallyLoc; + return ContinueSentinel; + } + + return this.complete(record); + }, + complete: function complete(record, afterLoc) { + if (record.type === "throw") { + throw record.arg; + } + + if (record.type === "break" || record.type === "continue") { + this.next = record.arg; + } else if (record.type === "return") { + this.rval = this.arg = record.arg; + this.method = "return"; + this.next = "end"; + } else if (record.type === "normal" && afterLoc) { + this.next = afterLoc; + } + + return ContinueSentinel; + }, + finish: function finish(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + + if (entry.finallyLoc === finallyLoc) { + this.complete(entry.completion, entry.afterLoc); + resetTryEntry(entry); + return ContinueSentinel; + } + } + }, + "catch": function _catch(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + + if (record.type === "throw") { + var thrown = record.arg; + resetTryEntry(entry); + } + + return thrown; + } + } + + throw new Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(iterable, resultName, nextLoc) { + this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }; + + if (this.method === "next") { + this.arg = undefined; + } + + return ContinueSentinel; + } + }; + return exports; +}(( false ? undefined : _typeof(module)) === "object" ? module.exports : {}); + +try { + regeneratorRuntime = runtime; +} catch (accidentalStrictMode) { + Function("r", "regeneratorRuntime = r")(runtime); +} +/* WEBPACK VAR INJECTION */}.call(this, __w_pdfjs_require__(150)(module))) + +/***/ }), +/* 150 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = function (module) { + if (!module.webpackPolyfill) { + module.deprecate = function () {}; + + module.paths = []; + if (!module.children) module.children = []; + Object.defineProperty(module, "loaded", { + enumerable: true, + get: function get() { + return module.l; + } + }); + Object.defineProperty(module, "id", { + enumerable: true, + get: function get() { + return module.i; + } + }); + module.webpackPolyfill = 1; + } + + return module; +}; + +/***/ }), +/* 151 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.addLinkAttributes = addLinkAttributes; +exports.getFilenameFromUrl = getFilenameFromUrl; +exports.isFetchSupported = isFetchSupported; +exports.isValidFetchUrl = isValidFetchUrl; +exports.loadScript = loadScript; +exports.deprecated = deprecated; +exports.releaseImageResources = releaseImageResources; +exports.PDFDateString = exports.DummyStatTimer = exports.StatTimer = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = exports.RenderingCancelledException = exports.PageViewport = void 0; + +var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); + +var _util = __w_pdfjs_require__(1); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var DEFAULT_LINK_REL = 'noopener noreferrer nofollow'; +exports.DEFAULT_LINK_REL = DEFAULT_LINK_REL; +var SVG_NS = 'http://www.w3.org/2000/svg'; + +var DOMCanvasFactory = +/*#__PURE__*/ +function () { + function DOMCanvasFactory() { + _classCallCheck(this, DOMCanvasFactory); + } + + _createClass(DOMCanvasFactory, [{ + key: "create", + value: function create(width, height) { + if (width <= 0 || height <= 0) { + throw new Error('Invalid canvas size'); + } + + var canvas = document.createElement('canvas'); + var context = canvas.getContext('2d'); + canvas.width = width; + canvas.height = height; + return { + canvas: canvas, + context: context + }; + } + }, { + key: "reset", + value: function reset(canvasAndContext, width, height) { + if (!canvasAndContext.canvas) { + throw new Error('Canvas is not specified'); + } + + if (width <= 0 || height <= 0) { + throw new Error('Invalid canvas size'); + } + + canvasAndContext.canvas.width = width; + canvasAndContext.canvas.height = height; + } + }, { + key: "destroy", + value: function destroy(canvasAndContext) { + if (!canvasAndContext.canvas) { + throw new Error('Canvas is not specified'); + } + + canvasAndContext.canvas.width = 0; + canvasAndContext.canvas.height = 0; + canvasAndContext.canvas = null; + canvasAndContext.context = null; + } + }]); + + return DOMCanvasFactory; +}(); + +exports.DOMCanvasFactory = DOMCanvasFactory; + +var DOMCMapReaderFactory = +/*#__PURE__*/ +function () { + function DOMCMapReaderFactory(_ref) { + var _ref$baseUrl = _ref.baseUrl, + baseUrl = _ref$baseUrl === void 0 ? null : _ref$baseUrl, + _ref$isCompressed = _ref.isCompressed, + isCompressed = _ref$isCompressed === void 0 ? false : _ref$isCompressed; + + _classCallCheck(this, DOMCMapReaderFactory); + + this.baseUrl = baseUrl; + this.isCompressed = isCompressed; + } + + _createClass(DOMCMapReaderFactory, [{ + key: "fetch", + value: function (_fetch) { + function fetch(_x) { + return _fetch.apply(this, arguments); + } + + fetch.toString = function () { + return _fetch.toString(); + }; + + return fetch; + }( + /*#__PURE__*/ + function () { + var _ref3 = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee2(_ref2) { + var _this = this; + + var name, url, compressionType; + return _regenerator["default"].wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + name = _ref2.name; + + if (this.baseUrl) { + _context2.next = 3; + break; + } + + throw new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.'); + + case 3: + if (name) { + _context2.next = 5; + break; + } + + throw new Error('CMap name must be specified.'); + + case 5: + url = this.baseUrl + name + (this.isCompressed ? '.bcmap' : ''); + compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE; + + if (!(isFetchSupported() && isValidFetchUrl(url, document.baseURI))) { + _context2.next = 9; + break; + } + + return _context2.abrupt("return", fetch(url).then( + /*#__PURE__*/ + function () { + var _ref4 = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee(response) { + var cMapData; + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + if (response.ok) { + _context.next = 2; + break; + } + + throw new Error(response.statusText); + + case 2: + if (!_this.isCompressed) { + _context.next = 10; + break; + } + + _context.t0 = Uint8Array; + _context.next = 6; + return response.arrayBuffer(); + + case 6: + _context.t1 = _context.sent; + cMapData = new _context.t0(_context.t1); + _context.next = 15; + break; + + case 10: + _context.t2 = _util.stringToBytes; + _context.next = 13; + return response.text(); + + case 13: + _context.t3 = _context.sent; + cMapData = (0, _context.t2)(_context.t3); + + case 15: + return _context.abrupt("return", { + cMapData: cMapData, + compressionType: compressionType + }); + + case 16: + case "end": + return _context.stop(); + } + } + }, _callee); + })); + + return function (_x3) { + return _ref4.apply(this, arguments); + }; + }())["catch"](function (reason) { + throw new Error("Unable to load ".concat(_this.isCompressed ? 'binary ' : '') + "CMap at: ".concat(url)); + })); + + case 9: + return _context2.abrupt("return", new Promise(function (resolve, reject) { + var request = new XMLHttpRequest(); + request.open('GET', url, true); + + if (_this.isCompressed) { + request.responseType = 'arraybuffer'; + } + + request.onreadystatechange = function () { + if (request.readyState !== XMLHttpRequest.DONE) { + return; + } + + if (request.status === 200 || request.status === 0) { + var cMapData; + + if (_this.isCompressed && request.response) { + cMapData = new Uint8Array(request.response); + } else if (!_this.isCompressed && request.responseText) { + cMapData = (0, _util.stringToBytes)(request.responseText); + } + + if (cMapData) { + resolve({ + cMapData: cMapData, + compressionType: compressionType + }); + return; + } + } + + reject(new Error(request.statusText)); + }; + + request.send(null); + })["catch"](function (reason) { + throw new Error("Unable to load ".concat(_this.isCompressed ? 'binary ' : '') + "CMap at: ".concat(url)); + })); + + case 10: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + return function (_x2) { + return _ref3.apply(this, arguments); + }; + }()) + }]); + + return DOMCMapReaderFactory; +}(); + +exports.DOMCMapReaderFactory = DOMCMapReaderFactory; + +var DOMSVGFactory = +/*#__PURE__*/ +function () { + function DOMSVGFactory() { + _classCallCheck(this, DOMSVGFactory); + } + + _createClass(DOMSVGFactory, [{ + key: "create", + value: function create(width, height) { + (0, _util.assert)(width > 0 && height > 0, 'Invalid SVG dimensions'); + var svg = document.createElementNS(SVG_NS, 'svg:svg'); + svg.setAttribute('version', '1.1'); + svg.setAttribute('width', width + 'px'); + svg.setAttribute('height', height + 'px'); + svg.setAttribute('preserveAspectRatio', 'none'); + svg.setAttribute('viewBox', '0 0 ' + width + ' ' + height); + return svg; + } + }, { + key: "createElement", + value: function createElement(type) { + (0, _util.assert)(typeof type === 'string', 'Invalid SVG element type'); + return document.createElementNS(SVG_NS, type); + } + }]); + + return DOMSVGFactory; +}(); + +exports.DOMSVGFactory = DOMSVGFactory; + +var PageViewport = +/*#__PURE__*/ +function () { + function PageViewport(_ref5) { + var viewBox = _ref5.viewBox, + scale = _ref5.scale, + rotation = _ref5.rotation, + _ref5$offsetX = _ref5.offsetX, + offsetX = _ref5$offsetX === void 0 ? 0 : _ref5$offsetX, + _ref5$offsetY = _ref5.offsetY, + offsetY = _ref5$offsetY === void 0 ? 0 : _ref5$offsetY, + _ref5$dontFlip = _ref5.dontFlip, + dontFlip = _ref5$dontFlip === void 0 ? false : _ref5$dontFlip; + + _classCallCheck(this, PageViewport); + + this.viewBox = viewBox; + this.scale = scale; + this.rotation = rotation; + this.offsetX = offsetX; + this.offsetY = offsetY; + var centerX = (viewBox[2] + viewBox[0]) / 2; + var centerY = (viewBox[3] + viewBox[1]) / 2; + var rotateA, rotateB, rotateC, rotateD; + rotation = rotation % 360; + rotation = rotation < 0 ? rotation + 360 : rotation; + + switch (rotation) { + case 180: + rotateA = -1; + rotateB = 0; + rotateC = 0; + rotateD = 1; + break; + + case 90: + rotateA = 0; + rotateB = 1; + rotateC = 1; + rotateD = 0; + break; + + case 270: + rotateA = 0; + rotateB = -1; + rotateC = -1; + rotateD = 0; + break; + + default: + rotateA = 1; + rotateB = 0; + rotateC = 0; + rotateD = -1; + break; + } + + if (dontFlip) { + rotateC = -rotateC; + rotateD = -rotateD; + } + + var offsetCanvasX, offsetCanvasY; + var width, height; + + if (rotateA === 0) { + offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX; + offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY; + width = Math.abs(viewBox[3] - viewBox[1]) * scale; + height = Math.abs(viewBox[2] - viewBox[0]) * scale; + } else { + offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX; + offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY; + width = Math.abs(viewBox[2] - viewBox[0]) * scale; + height = Math.abs(viewBox[3] - viewBox[1]) * scale; + } + + this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY]; + this.width = width; + this.height = height; + } + + _createClass(PageViewport, [{ + key: "clone", + value: function clone() { + var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref6$scale = _ref6.scale, + scale = _ref6$scale === void 0 ? this.scale : _ref6$scale, + _ref6$rotation = _ref6.rotation, + rotation = _ref6$rotation === void 0 ? this.rotation : _ref6$rotation, + _ref6$dontFlip = _ref6.dontFlip, + dontFlip = _ref6$dontFlip === void 0 ? false : _ref6$dontFlip; + + return new PageViewport({ + viewBox: this.viewBox.slice(), + scale: scale, + rotation: rotation, + offsetX: this.offsetX, + offsetY: this.offsetY, + dontFlip: dontFlip + }); + } + }, { + key: "convertToViewportPoint", + value: function convertToViewportPoint(x, y) { + return _util.Util.applyTransform([x, y], this.transform); + } + }, { + key: "convertToViewportRectangle", + value: function convertToViewportRectangle(rect) { + var topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform); + + var bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform); + + return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]]; + } + }, { + key: "convertToPdfPoint", + value: function convertToPdfPoint(x, y) { + return _util.Util.applyInverseTransform([x, y], this.transform); + } + }]); + + return PageViewport; +}(); + +exports.PageViewport = PageViewport; + +var RenderingCancelledException = function RenderingCancelledException() { + function RenderingCancelledException(msg, type) { + this.message = msg; + this.type = type; + } + + RenderingCancelledException.prototype = new Error(); + RenderingCancelledException.prototype.name = 'RenderingCancelledException'; + RenderingCancelledException.constructor = RenderingCancelledException; + return RenderingCancelledException; +}(); + +exports.RenderingCancelledException = RenderingCancelledException; +var LinkTarget = { + NONE: 0, + SELF: 1, + BLANK: 2, + PARENT: 3, + TOP: 4 +}; +exports.LinkTarget = LinkTarget; +var LinkTargetStringMap = ['', '_self', '_blank', '_parent', '_top']; + +function addLinkAttributes(link) { + var _ref7 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + url = _ref7.url, + target = _ref7.target, + rel = _ref7.rel; + + link.href = link.title = url ? (0, _util.removeNullCharacters)(url) : ''; + + if (url) { + var LinkTargetValues = Object.values(LinkTarget); + var targetIndex = LinkTargetValues.includes(target) ? target : LinkTarget.NONE; + link.target = LinkTargetStringMap[targetIndex]; + link.rel = typeof rel === 'string' ? rel : DEFAULT_LINK_REL; + } +} + +function getFilenameFromUrl(url) { + var anchor = url.indexOf('#'); + var query = url.indexOf('?'); + var end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length); + return url.substring(url.lastIndexOf('/', end) + 1, end); +} + +var StatTimer = +/*#__PURE__*/ +function () { + function StatTimer() { + var enable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + + _classCallCheck(this, StatTimer); + + this.enabled = !!enable; + this.started = Object.create(null); + this.times = []; + } + + _createClass(StatTimer, [{ + key: "time", + value: function time(name) { + if (!this.enabled) { + return; + } + + if (name in this.started) { + (0, _util.warn)('Timer is already running for ' + name); + } + + this.started[name] = Date.now(); + } + }, { + key: "timeEnd", + value: function timeEnd(name) { + if (!this.enabled) { + return; + } + + if (!(name in this.started)) { + (0, _util.warn)('Timer has not been started for ' + name); + } + + this.times.push({ + 'name': name, + 'start': this.started[name], + 'end': Date.now() + }); + delete this.started[name]; + } + }, { + key: "toString", + value: function toString() { + var out = '', + longest = 0; + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = this.times[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var time = _step.value; + var name = time.name; + + if (name.length > longest) { + longest = name.length; + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator["return"] != null) { + _iterator["return"](); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + for (var _iterator2 = this.times[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + var _time = _step2.value; + var duration = _time.end - _time.start; + out += "".concat(_time.name.padEnd(longest), " ").concat(duration, "ms\n"); + } + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { + _iterator2["return"](); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + + return out; + } + }]); + + return StatTimer; +}(); + +exports.StatTimer = StatTimer; + +var DummyStatTimer = +/*#__PURE__*/ +function () { + function DummyStatTimer() { + _classCallCheck(this, DummyStatTimer); + + (0, _util.unreachable)('Cannot initialize DummyStatTimer.'); + } + + _createClass(DummyStatTimer, null, [{ + key: "time", + value: function time(name) {} + }, { + key: "timeEnd", + value: function timeEnd(name) {} + }, { + key: "toString", + value: function toString() { + return ''; + } + }]); + + return DummyStatTimer; +}(); + +exports.DummyStatTimer = DummyStatTimer; + +function isFetchSupported() { + return typeof fetch !== 'undefined' && typeof Response !== 'undefined' && 'body' in Response.prototype && typeof ReadableStream !== 'undefined'; +} + +function isValidFetchUrl(url, baseUrl) { + try { + var _ref8 = baseUrl ? new _util.URL(url, baseUrl) : new _util.URL(url), + protocol = _ref8.protocol; + + return protocol === 'http:' || protocol === 'https:'; + } catch (ex) { + return false; + } +} + +function loadScript(src) { + return new Promise(function (resolve, reject) { + var script = document.createElement('script'); + script.src = src; + script.onload = resolve; + + script.onerror = function () { + reject(new Error("Cannot load script at: ".concat(script.src))); + }; + + (document.head || document.documentElement).appendChild(script); + }); +} + +function deprecated(details) { + console.log('Deprecated API usage: ' + details); +} + +function releaseImageResources(img) { + (0, _util.assert)(img instanceof Image, 'Invalid `img` parameter.'); + var url = img.src; + + if (typeof url === 'string' && url.startsWith('blob:') && _util.URL.revokeObjectURL) { + _util.URL.revokeObjectURL(url); + } + + img.removeAttribute('src'); +} + +var pdfDateStringRegex; + +var PDFDateString = +/*#__PURE__*/ +function () { + function PDFDateString() { + _classCallCheck(this, PDFDateString); + } + + _createClass(PDFDateString, null, [{ + key: "toDateObject", + value: function toDateObject(input) { + if (!input || !(0, _util.isString)(input)) { + return null; + } + + if (!pdfDateStringRegex) { + pdfDateStringRegex = new RegExp('^D:' + '(\\d{4})' + '(\\d{2})?' + '(\\d{2})?' + '(\\d{2})?' + '(\\d{2})?' + '(\\d{2})?' + '([Z|+|-])?' + '(\\d{2})?' + '\'?' + '(\\d{2})?' + '\'?'); + } + + var matches = pdfDateStringRegex.exec(input); + + if (!matches) { + return null; + } + + var year = parseInt(matches[1], 10); + var month = parseInt(matches[2], 10); + month = month >= 1 && month <= 12 ? month - 1 : 0; + var day = parseInt(matches[3], 10); + day = day >= 1 && day <= 31 ? day : 1; + var hour = parseInt(matches[4], 10); + hour = hour >= 0 && hour <= 23 ? hour : 0; + var minute = parseInt(matches[5], 10); + minute = minute >= 0 && minute <= 59 ? minute : 0; + var second = parseInt(matches[6], 10); + second = second >= 0 && second <= 59 ? second : 0; + var universalTimeRelation = matches[7] || 'Z'; + var offsetHour = parseInt(matches[8], 10); + offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0; + var offsetMinute = parseInt(matches[9], 10) || 0; + offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0; + + if (universalTimeRelation === '-') { + hour += offsetHour; + minute += offsetMinute; + } else if (universalTimeRelation === '+') { + hour -= offsetHour; + minute -= offsetMinute; + } + + return new Date(Date.UTC(year, month, day, hour, minute, second)); + } + }]); + + return PDFDateString; +}(); + +exports.PDFDateString = PDFDateString; + +/***/ }), +/* 152 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.FontLoader = exports.FontFaceObject = void 0; + +var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); + +var _util = __w_pdfjs_require__(1); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var BaseFontLoader = +/*#__PURE__*/ +function () { + function BaseFontLoader(_ref) { + var docId = _ref.docId, + onUnsupportedFeature = _ref.onUnsupportedFeature; + + _classCallCheck(this, BaseFontLoader); + + if (this.constructor === BaseFontLoader) { + (0, _util.unreachable)('Cannot initialize BaseFontLoader.'); + } + + this.docId = docId; + this._onUnsupportedFeature = onUnsupportedFeature; + this.nativeFontFaces = []; + this.styleElement = null; + } + + _createClass(BaseFontLoader, [{ + key: "addNativeFontFace", + value: function addNativeFontFace(nativeFontFace) { + this.nativeFontFaces.push(nativeFontFace); + document.fonts.add(nativeFontFace); + } + }, { + key: "insertRule", + value: function insertRule(rule) { + var styleElement = this.styleElement; + + if (!styleElement) { + styleElement = this.styleElement = document.createElement('style'); + styleElement.id = "PDFJS_FONT_STYLE_TAG_".concat(this.docId); + document.documentElement.getElementsByTagName('head')[0].appendChild(styleElement); + } + + var styleSheet = styleElement.sheet; + styleSheet.insertRule(rule, styleSheet.cssRules.length); + } + }, { + key: "clear", + value: function clear() { + this.nativeFontFaces.forEach(function (nativeFontFace) { + document.fonts["delete"](nativeFontFace); + }); + this.nativeFontFaces.length = 0; + + if (this.styleElement) { + this.styleElement.remove(); + this.styleElement = null; + } + } + }, { + key: "bind", + value: function () { + var _bind = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee(font) { + var _this = this; + + var nativeFontFace, rule; + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + if (!(font.attached || font.missingFile)) { + _context.next = 2; + break; + } + + return _context.abrupt("return", undefined); + + case 2: + font.attached = true; + + if (!this.isFontLoadingAPISupported) { + _context.next = 19; + break; + } + + nativeFontFace = font.createNativeFontFace(); + + if (!nativeFontFace) { + _context.next = 18; + break; + } + + this.addNativeFontFace(nativeFontFace); + _context.prev = 7; + _context.next = 10; + return nativeFontFace.loaded; + + case 10: + _context.next = 18; + break; + + case 12: + _context.prev = 12; + _context.t0 = _context["catch"](7); + + this._onUnsupportedFeature({ + featureId: _util.UNSUPPORTED_FEATURES.font + }); + + (0, _util.warn)("Failed to load font '".concat(nativeFontFace.family, "': '").concat(_context.t0, "'.")); + font.disableFontFace = true; + throw _context.t0; + + case 18: + return _context.abrupt("return", undefined); + + case 19: + rule = font.createFontFaceRule(); + + if (!rule) { + _context.next = 25; + break; + } + + this.insertRule(rule); + + if (!this.isSyncFontLoadingSupported) { + _context.next = 24; + break; + } + + return _context.abrupt("return", undefined); + + case 24: + return _context.abrupt("return", new Promise(function (resolve) { + var request = _this._queueLoadingCallback(resolve); + + _this._prepareFontLoadEvent([rule], [font], request); + })); + + case 25: + return _context.abrupt("return", undefined); + + case 26: + case "end": + return _context.stop(); + } + } + }, _callee, this, [[7, 12]]); + })); + + function bind(_x) { + return _bind.apply(this, arguments); + } + + return bind; + }() + }, { + key: "_queueLoadingCallback", + value: function _queueLoadingCallback(callback) { + (0, _util.unreachable)('Abstract method `_queueLoadingCallback`.'); + } + }, { + key: "_prepareFontLoadEvent", + value: function _prepareFontLoadEvent(rules, fontsToLoad, request) { + (0, _util.unreachable)('Abstract method `_prepareFontLoadEvent`.'); + } + }, { + key: "isFontLoadingAPISupported", + get: function get() { + (0, _util.unreachable)('Abstract method `isFontLoadingAPISupported`.'); + } + }, { + key: "isSyncFontLoadingSupported", + get: function get() { + (0, _util.unreachable)('Abstract method `isSyncFontLoadingSupported`.'); + } + }, { + key: "_loadTestFont", + get: function get() { + (0, _util.unreachable)('Abstract method `_loadTestFont`.'); + } + }]); + + return BaseFontLoader; +}(); + +var FontLoader; +exports.FontLoader = FontLoader; +{ + exports.FontLoader = FontLoader = + /*#__PURE__*/ + function (_BaseFontLoader) { + _inherits(GenericFontLoader, _BaseFontLoader); + + function GenericFontLoader(docId) { + var _this2; + + _classCallCheck(this, GenericFontLoader); + + _this2 = _possibleConstructorReturn(this, _getPrototypeOf(GenericFontLoader).call(this, docId)); + _this2.loadingContext = { + requests: [], + nextRequestId: 0 + }; + _this2.loadTestFontId = 0; + return _this2; + } + + _createClass(GenericFontLoader, [{ + key: "_queueLoadingCallback", + value: function _queueLoadingCallback(callback) { + function completeRequest() { + (0, _util.assert)(!request.done, 'completeRequest() cannot be called twice.'); + request.done = true; + + while (context.requests.length > 0 && context.requests[0].done) { + var otherRequest = context.requests.shift(); + setTimeout(otherRequest.callback, 0); + } + } + + var context = this.loadingContext; + var request = { + id: "pdfjs-font-loading-".concat(context.nextRequestId++), + done: false, + complete: completeRequest, + callback: callback + }; + context.requests.push(request); + return request; + } + }, { + key: "_prepareFontLoadEvent", + value: function _prepareFontLoadEvent(rules, fonts, request) { + function int32(data, offset) { + return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff; + } + + function spliceString(s, offset, remove, insert) { + var chunk1 = s.substring(0, offset); + var chunk2 = s.substring(offset + remove); + return chunk1 + insert + chunk2; + } + + var i, ii; + var canvas = document.createElement('canvas'); + canvas.width = 1; + canvas.height = 1; + var ctx = canvas.getContext('2d'); + var called = 0; + + function isFontReady(name, callback) { + called++; + + if (called > 30) { + (0, _util.warn)('Load test font never loaded.'); + callback(); + return; + } + + ctx.font = '30px ' + name; + ctx.fillText('.', 0, 20); + var imageData = ctx.getImageData(0, 0, 1, 1); + + if (imageData.data[3] > 0) { + callback(); + return; + } + + setTimeout(isFontReady.bind(null, name, callback)); + } + + var loadTestFontId = "lt".concat(Date.now()).concat(this.loadTestFontId++); + var data = this._loadTestFont; + var COMMENT_OFFSET = 976; + data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId); + var CFF_CHECKSUM_OFFSET = 16; + var XXXX_VALUE = 0x58585858; + var checksum = int32(data, CFF_CHECKSUM_OFFSET); + + for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) { + checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0; + } + + if (i < loadTestFontId.length) { + checksum = checksum - XXXX_VALUE + int32(loadTestFontId + 'XXX', i) | 0; + } + + data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum)); + var url = "url(data:font/opentype;base64,".concat(btoa(data), ");"); + var rule = "@font-face {font-family:\"".concat(loadTestFontId, "\";src:").concat(url, "}"); + this.insertRule(rule); + var names = []; + + for (i = 0, ii = fonts.length; i < ii; i++) { + names.push(fonts[i].loadedName); + } + + names.push(loadTestFontId); + var div = document.createElement('div'); + div.setAttribute('style', 'visibility: hidden;' + 'width: 10px; height: 10px;' + 'position: absolute; top: 0px; left: 0px;'); + + for (i = 0, ii = names.length; i < ii; ++i) { + var span = document.createElement('span'); + span.textContent = 'Hi'; + span.style.fontFamily = names[i]; + div.appendChild(span); + } + + document.body.appendChild(div); + isFontReady(loadTestFontId, function () { + document.body.removeChild(div); + request.complete(); + }); + } + }, { + key: "isFontLoadingAPISupported", + get: function get() { + var supported = typeof document !== 'undefined' && !!document.fonts; + + if (supported && typeof navigator !== 'undefined') { + var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); + + if (m && m[1] < 63) { + supported = false; + } + } + + return (0, _util.shadow)(this, 'isFontLoadingAPISupported', supported); + } + }, { + key: "isSyncFontLoadingSupported", + get: function get() { + var supported = false; + + if (typeof navigator === 'undefined') { + supported = true; + } else { + var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); + + if (m && m[1] >= 14) { + supported = true; + } + } + + return (0, _util.shadow)(this, 'isSyncFontLoadingSupported', supported); + } + }, { + key: "_loadTestFont", + get: function get() { + var getLoadTestFont = function getLoadTestFont() { + return atob('T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA' + 'FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA' + 'ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA' + 'AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1' + 'AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD' + '6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM' + 'AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D' + 'IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA' + 'AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA' + 'AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB' + 'AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY' + 'AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA' + 'AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA' + 'AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC' + 'AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3' + 'Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj' + 'FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA=='); + }; + + return (0, _util.shadow)(this, '_loadTestFont', getLoadTestFont()); + } + }]); + + return GenericFontLoader; + }(BaseFontLoader); +} +var IsEvalSupportedCached = { + get value() { + return (0, _util.shadow)(this, 'value', (0, _util.isEvalSupported)()); + } + +}; + +var FontFaceObject = +/*#__PURE__*/ +function () { + function FontFaceObject(translatedData, _ref2) { + var _ref2$isEvalSupported = _ref2.isEvalSupported, + isEvalSupported = _ref2$isEvalSupported === void 0 ? true : _ref2$isEvalSupported, + _ref2$disableFontFace = _ref2.disableFontFace, + disableFontFace = _ref2$disableFontFace === void 0 ? false : _ref2$disableFontFace, + _ref2$ignoreErrors = _ref2.ignoreErrors, + ignoreErrors = _ref2$ignoreErrors === void 0 ? false : _ref2$ignoreErrors, + _ref2$onUnsupportedFe = _ref2.onUnsupportedFeature, + onUnsupportedFeature = _ref2$onUnsupportedFe === void 0 ? null : _ref2$onUnsupportedFe, + _ref2$fontRegistry = _ref2.fontRegistry, + fontRegistry = _ref2$fontRegistry === void 0 ? null : _ref2$fontRegistry; + + _classCallCheck(this, FontFaceObject); + + this.compiledGlyphs = Object.create(null); + + for (var i in translatedData) { + this[i] = translatedData[i]; + } + + this.isEvalSupported = isEvalSupported !== false; + this.disableFontFace = disableFontFace === true; + this.ignoreErrors = ignoreErrors === true; + this._onUnsupportedFeature = onUnsupportedFeature; + this.fontRegistry = fontRegistry; + } + + _createClass(FontFaceObject, [{ + key: "createNativeFontFace", + value: function createNativeFontFace() { + if (!this.data || this.disableFontFace) { + return null; + } + + var nativeFontFace = new FontFace(this.loadedName, this.data, {}); + + if (this.fontRegistry) { + this.fontRegistry.registerFont(this); + } + + return nativeFontFace; + } + }, { + key: "createFontFaceRule", + value: function createFontFaceRule() { + if (!this.data || this.disableFontFace) { + return null; + } + + var data = (0, _util.bytesToString)(new Uint8Array(this.data)); + var url = "url(data:".concat(this.mimetype, ";base64,").concat(btoa(data), ");"); + var rule = "@font-face {font-family:\"".concat(this.loadedName, "\";src:").concat(url, "}"); + + if (this.fontRegistry) { + this.fontRegistry.registerFont(this, url); + } + + return rule; + } + }, { + key: "getPathGenerator", + value: function getPathGenerator(objs, character) { + if (this.compiledGlyphs[character] !== undefined) { + return this.compiledGlyphs[character]; + } + + var cmds, current; + + try { + cmds = objs.get(this.loadedName + '_path_' + character); + } catch (ex) { + if (!this.ignoreErrors) { + throw ex; + } + + if (this._onUnsupportedFeature) { + this._onUnsupportedFeature({ + featureId: _util.UNSUPPORTED_FEATURES.font + }); + } + + (0, _util.warn)("getPathGenerator - ignoring character: \"".concat(ex, "\".")); + return this.compiledGlyphs[character] = function (c, size) {}; + } + + if (this.isEvalSupported && IsEvalSupportedCached.value) { + var args, + js = ''; + + for (var i = 0, ii = cmds.length; i < ii; i++) { + current = cmds[i]; + + if (current.args !== undefined) { + args = current.args.join(','); + } else { + args = ''; + } + + js += 'c.' + current.cmd + '(' + args + ');\n'; + } + + return this.compiledGlyphs[character] = new Function('c', 'size', js); + } + + return this.compiledGlyphs[character] = function (c, size) { + for (var _i = 0, _ii = cmds.length; _i < _ii; _i++) { + current = cmds[_i]; + + if (current.cmd === 'scale') { + current.args = [size, -size]; + } + + c[current.cmd].apply(c, current.args); + } + }; + } + }]); + + return FontFaceObject; +}(); + +exports.FontFaceObject = FontFaceObject; + +/***/ }), +/* 153 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var compatibilityParams = Object.create(null); +{ + var isNodeJS = __w_pdfjs_require__(4); + + var userAgent = typeof navigator !== 'undefined' && navigator.userAgent || ''; + var isIE = /Trident/.test(userAgent); + var isIOSChrome = /CriOS/.test(userAgent); + + (function checkOnBlobSupport() { + if (isIE || isIOSChrome) { + compatibilityParams.disableCreateObjectURL = true; + } + })(); + + (function checkFontFaceAndImage() { + if (isNodeJS()) { + compatibilityParams.disableFontFace = true; + compatibilityParams.nativeImageDecoderSupport = 'none'; + } + })(); +} +exports.apiCompatibilityParams = Object.freeze(compatibilityParams); + +/***/ }), +/* 154 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.CanvasGraphics = void 0; + +var _util = __w_pdfjs_require__(1); + +var _pattern_helper = __w_pdfjs_require__(155); + +var MIN_FONT_SIZE = 16; +var MAX_FONT_SIZE = 100; +var MAX_GROUP_SIZE = 4096; +var MIN_WIDTH_FACTOR = 0.65; +var COMPILE_TYPE3_GLYPHS = true; +var MAX_SIZE_TO_COMPILE = 1000; +var FULL_CHUNK_HEIGHT = 16; +var IsLittleEndianCached = { + get value() { + return (0, _util.shadow)(IsLittleEndianCached, 'value', (0, _util.isLittleEndian)()); + } + +}; + +function addContextCurrentTransform(ctx) { + if (!ctx.mozCurrentTransform) { + ctx._originalSave = ctx.save; + ctx._originalRestore = ctx.restore; + ctx._originalRotate = ctx.rotate; + ctx._originalScale = ctx.scale; + ctx._originalTranslate = ctx.translate; + ctx._originalTransform = ctx.transform; + ctx._originalSetTransform = ctx.setTransform; + ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0]; + ctx._transformStack = []; + Object.defineProperty(ctx, 'mozCurrentTransform', { + get: function getCurrentTransform() { + return this._transformMatrix; + } + }); + Object.defineProperty(ctx, 'mozCurrentTransformInverse', { + get: function getCurrentTransformInverse() { + var m = this._transformMatrix; + var a = m[0], + b = m[1], + c = m[2], + d = m[3], + e = m[4], + f = m[5]; + var ad_bc = a * d - b * c; + var bc_ad = b * c - a * d; + return [d / ad_bc, b / bc_ad, c / bc_ad, a / ad_bc, (d * e - c * f) / bc_ad, (b * e - a * f) / ad_bc]; + } + }); + + ctx.save = function ctxSave() { + var old = this._transformMatrix; + + this._transformStack.push(old); + + this._transformMatrix = old.slice(0, 6); + + this._originalSave(); + }; + + ctx.restore = function ctxRestore() { + var prev = this._transformStack.pop(); + + if (prev) { + this._transformMatrix = prev; + + this._originalRestore(); + } + }; + + ctx.translate = function ctxTranslate(x, y) { + var m = this._transformMatrix; + m[4] = m[0] * x + m[2] * y + m[4]; + m[5] = m[1] * x + m[3] * y + m[5]; + + this._originalTranslate(x, y); + }; + + ctx.scale = function ctxScale(x, y) { + var m = this._transformMatrix; + m[0] = m[0] * x; + m[1] = m[1] * x; + m[2] = m[2] * y; + m[3] = m[3] * y; + + this._originalScale(x, y); + }; + + ctx.transform = function ctxTransform(a, b, c, d, e, f) { + var m = this._transformMatrix; + this._transformMatrix = [m[0] * a + m[2] * b, m[1] * a + m[3] * b, m[0] * c + m[2] * d, m[1] * c + m[3] * d, m[0] * e + m[2] * f + m[4], m[1] * e + m[3] * f + m[5]]; + + ctx._originalTransform(a, b, c, d, e, f); + }; + + ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) { + this._transformMatrix = [a, b, c, d, e, f]; + + ctx._originalSetTransform(a, b, c, d, e, f); + }; + + ctx.rotate = function ctxRotate(angle) { + var cosValue = Math.cos(angle); + var sinValue = Math.sin(angle); + var m = this._transformMatrix; + this._transformMatrix = [m[0] * cosValue + m[2] * sinValue, m[1] * cosValue + m[3] * sinValue, m[0] * -sinValue + m[2] * cosValue, m[1] * -sinValue + m[3] * cosValue, m[4], m[5]]; + + this._originalRotate(angle); + }; + } +} + +var CachedCanvases = function CachedCanvasesClosure() { + function CachedCanvases(canvasFactory) { + this.canvasFactory = canvasFactory; + this.cache = Object.create(null); + } + + CachedCanvases.prototype = { + getCanvas: function CachedCanvases_getCanvas(id, width, height, trackTransform) { + var canvasEntry; + + if (this.cache[id] !== undefined) { + canvasEntry = this.cache[id]; + this.canvasFactory.reset(canvasEntry, width, height); + canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0); + } else { + canvasEntry = this.canvasFactory.create(width, height); + this.cache[id] = canvasEntry; + } + + if (trackTransform) { + addContextCurrentTransform(canvasEntry.context); + } + + return canvasEntry; + }, + clear: function clear() { + for (var id in this.cache) { + var canvasEntry = this.cache[id]; + this.canvasFactory.destroy(canvasEntry); + delete this.cache[id]; + } + } + }; + return CachedCanvases; +}(); + +function compileType3Glyph(imgData) { + var POINT_TO_PROCESS_LIMIT = 1000; + var width = imgData.width, + height = imgData.height; + var i, + j, + j0, + width1 = width + 1; + var points = new Uint8Array(width1 * (height + 1)); + var POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]); + var lineSize = width + 7 & ~7, + data0 = imgData.data; + var data = new Uint8Array(lineSize * height), + pos = 0, + ii; + + for (i = 0, ii = data0.length; i < ii; i++) { + var mask = 128, + elem = data0[i]; + + while (mask > 0) { + data[pos++] = elem & mask ? 0 : 255; + mask >>= 1; + } + } + + var count = 0; + pos = 0; + + if (data[pos] !== 0) { + points[0] = 1; + ++count; + } + + for (j = 1; j < width; j++) { + if (data[pos] !== data[pos + 1]) { + points[j] = data[pos] ? 2 : 1; + ++count; + } + + pos++; + } + + if (data[pos] !== 0) { + points[j] = 2; + ++count; + } + + for (i = 1; i < height; i++) { + pos = i * lineSize; + j0 = i * width1; + + if (data[pos - lineSize] !== data[pos]) { + points[j0] = data[pos] ? 1 : 8; + ++count; + } + + var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0); + + for (j = 1; j < width; j++) { + sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0); + + if (POINT_TYPES[sum]) { + points[j0 + j] = POINT_TYPES[sum]; + ++count; + } + + pos++; + } + + if (data[pos - lineSize] !== data[pos]) { + points[j0 + j] = data[pos] ? 2 : 4; + ++count; + } + + if (count > POINT_TO_PROCESS_LIMIT) { + return null; + } + } + + pos = lineSize * (height - 1); + j0 = i * width1; + + if (data[pos] !== 0) { + points[j0] = 8; + ++count; + } + + for (j = 1; j < width; j++) { + if (data[pos] !== data[pos + 1]) { + points[j0 + j] = data[pos] ? 4 : 8; + ++count; + } + + pos++; + } + + if (data[pos] !== 0) { + points[j0 + j] = 4; + ++count; + } + + if (count > POINT_TO_PROCESS_LIMIT) { + return null; + } + + var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]); + var outlines = []; + + for (i = 0; count && i <= height; i++) { + var p = i * width1; + var end = p + width; + + while (p < end && !points[p]) { + p++; + } + + if (p === end) { + continue; + } + + var coords = [p % width1, i]; + var type = points[p], + p0 = p, + pp; + + do { + var step = steps[type]; + + do { + p += step; + } while (!points[p]); + + pp = points[p]; + + if (pp !== 5 && pp !== 10) { + type = pp; + points[p] = 0; + } else { + type = pp & 0x33 * type >> 4; + points[p] &= type >> 2 | type << 2; + } + + coords.push(p % width1); + coords.push(p / width1 | 0); + + if (!points[p]) { + --count; + } + } while (p0 !== p); + + outlines.push(coords); + --i; + } + + var drawOutline = function drawOutline(c) { + c.save(); + c.scale(1 / width, -1 / height); + c.translate(0, -height); + c.beginPath(); + + for (var i = 0, ii = outlines.length; i < ii; i++) { + var o = outlines[i]; + c.moveTo(o[0], o[1]); + + for (var j = 2, jj = o.length; j < jj; j += 2) { + c.lineTo(o[j], o[j + 1]); + } + } + + c.fill(); + c.beginPath(); + c.restore(); + }; + + return drawOutline; +} + +var CanvasExtraState = function CanvasExtraStateClosure() { + function CanvasExtraState() { + this.alphaIsShape = false; + this.fontSize = 0; + this.fontSizeScale = 1; + this.textMatrix = _util.IDENTITY_MATRIX; + this.textMatrixScale = 1; + this.fontMatrix = _util.FONT_IDENTITY_MATRIX; + this.leading = 0; + this.x = 0; + this.y = 0; + this.lineX = 0; + this.lineY = 0; + this.charSpacing = 0; + this.wordSpacing = 0; + this.textHScale = 1; + this.textRenderingMode = _util.TextRenderingMode.FILL; + this.textRise = 0; + this.fillColor = '#000000'; + this.strokeColor = '#000000'; + this.patternFill = false; + this.fillAlpha = 1; + this.strokeAlpha = 1; + this.lineWidth = 1; + this.activeSMask = null; + this.resumeSMaskCtx = null; + } + + CanvasExtraState.prototype = { + clone: function CanvasExtraState_clone() { + return Object.create(this); + }, + setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) { + this.x = x; + this.y = y; + } + }; + return CanvasExtraState; +}(); + +var CanvasGraphics = function CanvasGraphicsClosure() { + var EXECUTION_TIME = 15; + var EXECUTION_STEPS = 10; + + function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, webGLContext, imageLayer) { + this.ctx = canvasCtx; + this.current = new CanvasExtraState(); + this.stateStack = []; + this.pendingClip = null; + this.pendingEOFill = false; + this.res = null; + this.xobjs = null; + this.commonObjs = commonObjs; + this.objs = objs; + this.canvasFactory = canvasFactory; + this.webGLContext = webGLContext; + this.imageLayer = imageLayer; + this.groupStack = []; + this.processingType3 = null; + this.baseTransform = null; + this.baseTransformStack = []; + this.groupLevel = 0; + this.smaskStack = []; + this.smaskCounter = 0; + this.tempSMask = null; + this.cachedCanvases = new CachedCanvases(this.canvasFactory); + + if (canvasCtx) { + addContextCurrentTransform(canvasCtx); + } + + this._cachedGetSinglePixelWidth = null; + } + + function putBinaryImageData(ctx, imgData) { + if (typeof ImageData !== 'undefined' && imgData instanceof ImageData) { + ctx.putImageData(imgData, 0, 0); + return; + } + + var height = imgData.height, + width = imgData.width; + var partialChunkHeight = height % FULL_CHUNK_HEIGHT; + var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; + var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; + var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); + var srcPos = 0, + destPos; + var src = imgData.data; + var dest = chunkImgData.data; + var i, j, thisChunkHeight, elemsInThisChunk; + + if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) { + var srcLength = src.byteLength; + var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2); + var dest32DataLength = dest32.length; + var fullSrcDiff = width + 7 >> 3; + var white = 0xFFFFFFFF; + var black = IsLittleEndianCached.value ? 0xFF000000 : 0x000000FF; + + for (i = 0; i < totalChunks; i++) { + thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; + destPos = 0; + + for (j = 0; j < thisChunkHeight; j++) { + var srcDiff = srcLength - srcPos; + var k = 0; + var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7; + var kEndUnrolled = kEnd & ~7; + var mask = 0; + var srcByte = 0; + + for (; k < kEndUnrolled; k += 8) { + srcByte = src[srcPos++]; + dest32[destPos++] = srcByte & 128 ? white : black; + dest32[destPos++] = srcByte & 64 ? white : black; + dest32[destPos++] = srcByte & 32 ? white : black; + dest32[destPos++] = srcByte & 16 ? white : black; + dest32[destPos++] = srcByte & 8 ? white : black; + dest32[destPos++] = srcByte & 4 ? white : black; + dest32[destPos++] = srcByte & 2 ? white : black; + dest32[destPos++] = srcByte & 1 ? white : black; + } + + for (; k < kEnd; k++) { + if (mask === 0) { + srcByte = src[srcPos++]; + mask = 128; + } + + dest32[destPos++] = srcByte & mask ? white : black; + mask >>= 1; + } + } + + while (destPos < dest32DataLength) { + dest32[destPos++] = 0; + } + + ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); + } + } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) { + j = 0; + elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4; + + for (i = 0; i < fullChunks; i++) { + dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); + srcPos += elemsInThisChunk; + ctx.putImageData(chunkImgData, 0, j); + j += FULL_CHUNK_HEIGHT; + } + + if (i < totalChunks) { + elemsInThisChunk = width * partialChunkHeight * 4; + dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); + ctx.putImageData(chunkImgData, 0, j); + } + } else if (imgData.kind === _util.ImageKind.RGB_24BPP) { + thisChunkHeight = FULL_CHUNK_HEIGHT; + elemsInThisChunk = width * thisChunkHeight; + + for (i = 0; i < totalChunks; i++) { + if (i >= fullChunks) { + thisChunkHeight = partialChunkHeight; + elemsInThisChunk = width * thisChunkHeight; + } + + destPos = 0; + + for (j = elemsInThisChunk; j--;) { + dest[destPos++] = src[srcPos++]; + dest[destPos++] = src[srcPos++]; + dest[destPos++] = src[srcPos++]; + dest[destPos++] = 255; + } + + ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); + } + } else { + throw new Error("bad image kind: ".concat(imgData.kind)); + } + } + + function putBinaryImageMask(ctx, imgData) { + var height = imgData.height, + width = imgData.width; + var partialChunkHeight = height % FULL_CHUNK_HEIGHT; + var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; + var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; + var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); + var srcPos = 0; + var src = imgData.data; + var dest = chunkImgData.data; + + for (var i = 0; i < totalChunks; i++) { + var thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; + var destPos = 3; + + for (var j = 0; j < thisChunkHeight; j++) { + var mask = 0; + + for (var k = 0; k < width; k++) { + if (!mask) { + var elem = src[srcPos++]; + mask = 128; + } + + dest[destPos] = elem & mask ? 0 : 255; + destPos += 4; + mask >>= 1; + } + } + + ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); + } + } + + function copyCtxState(sourceCtx, destCtx) { + var properties = ['strokeStyle', 'fillStyle', 'fillRule', 'globalAlpha', 'lineWidth', 'lineCap', 'lineJoin', 'miterLimit', 'globalCompositeOperation', 'font']; + + for (var i = 0, ii = properties.length; i < ii; i++) { + var property = properties[i]; + + if (sourceCtx[property] !== undefined) { + destCtx[property] = sourceCtx[property]; + } + } + + if (sourceCtx.setLineDash !== undefined) { + destCtx.setLineDash(sourceCtx.getLineDash()); + destCtx.lineDashOffset = sourceCtx.lineDashOffset; + } + } + + function resetCtxToDefault(ctx) { + ctx.strokeStyle = '#000000'; + ctx.fillStyle = '#000000'; + ctx.fillRule = 'nonzero'; + ctx.globalAlpha = 1; + ctx.lineWidth = 1; + ctx.lineCap = 'butt'; + ctx.lineJoin = 'miter'; + ctx.miterLimit = 10; + ctx.globalCompositeOperation = 'source-over'; + ctx.font = '10px sans-serif'; + + if (ctx.setLineDash !== undefined) { + ctx.setLineDash([]); + ctx.lineDashOffset = 0; + } + } + + function composeSMaskBackdrop(bytes, r0, g0, b0) { + var length = bytes.length; + + for (var i = 3; i < length; i += 4) { + var alpha = bytes[i]; + + if (alpha === 0) { + bytes[i - 3] = r0; + bytes[i - 2] = g0; + bytes[i - 1] = b0; + } else if (alpha < 255) { + var alpha_ = 255 - alpha; + bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8; + bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8; + bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8; + } + } + } + + function composeSMaskAlpha(maskData, layerData, transferMap) { + var length = maskData.length; + var scale = 1 / 255; + + for (var i = 3; i < length; i += 4) { + var alpha = transferMap ? transferMap[maskData[i]] : maskData[i]; + layerData[i] = layerData[i] * alpha * scale | 0; + } + } + + function composeSMaskLuminosity(maskData, layerData, transferMap) { + var length = maskData.length; + + for (var i = 3; i < length; i += 4) { + var y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28; + layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16; + } + } + + function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap) { + var hasBackdrop = !!backdrop; + var r0 = hasBackdrop ? backdrop[0] : 0; + var g0 = hasBackdrop ? backdrop[1] : 0; + var b0 = hasBackdrop ? backdrop[2] : 0; + var composeFn; + + if (subtype === 'Luminosity') { + composeFn = composeSMaskLuminosity; + } else { + composeFn = composeSMaskAlpha; + } + + var PIXELS_TO_PROCESS = 1048576; + var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width)); + + for (var row = 0; row < height; row += chunkSize) { + var chunkHeight = Math.min(chunkSize, height - row); + var maskData = maskCtx.getImageData(0, row, width, chunkHeight); + var layerData = layerCtx.getImageData(0, row, width, chunkHeight); + + if (hasBackdrop) { + composeSMaskBackdrop(maskData.data, r0, g0, b0); + } + + composeFn(maskData.data, layerData.data, transferMap); + maskCtx.putImageData(layerData, 0, row); + } + } + + function composeSMask(ctx, smask, layerCtx, webGLContext) { + var mask = smask.canvas; + var maskCtx = smask.context; + ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY, smask.offsetX, smask.offsetY); + var backdrop = smask.backdrop || null; + + if (!smask.transferMap && webGLContext.isEnabled) { + var composed = webGLContext.composeSMask({ + layer: layerCtx.canvas, + mask: mask, + properties: { + subtype: smask.subtype, + backdrop: backdrop + } + }); + ctx.setTransform(1, 0, 0, 1, 0, 0); + ctx.drawImage(composed, smask.offsetX, smask.offsetY); + return; + } + + genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, backdrop, smask.transferMap); + ctx.drawImage(mask, 0, 0); + } + + var LINE_CAP_STYLES = ['butt', 'round', 'square']; + var LINE_JOIN_STYLES = ['miter', 'round', 'bevel']; + var NORMAL_CLIP = {}; + var EO_CLIP = {}; + CanvasGraphics.prototype = { + beginDrawing: function beginDrawing(_ref) { + var transform = _ref.transform, + viewport = _ref.viewport, + _ref$transparency = _ref.transparency, + transparency = _ref$transparency === void 0 ? false : _ref$transparency, + _ref$background = _ref.background, + background = _ref$background === void 0 ? null : _ref$background; + var width = this.ctx.canvas.width; + var height = this.ctx.canvas.height; + this.ctx.save(); + this.ctx.fillStyle = background || 'rgb(255, 255, 255)'; + this.ctx.fillRect(0, 0, width, height); + this.ctx.restore(); + + if (transparency) { + var transparentCanvas = this.cachedCanvases.getCanvas('transparent', width, height, true); + this.compositeCtx = this.ctx; + this.transparentCanvas = transparentCanvas.canvas; + this.ctx = transparentCanvas.context; + this.ctx.save(); + this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform); + } + + this.ctx.save(); + resetCtxToDefault(this.ctx); + + if (transform) { + this.ctx.transform.apply(this.ctx, transform); + } + + this.ctx.transform.apply(this.ctx, viewport.transform); + this.baseTransform = this.ctx.mozCurrentTransform.slice(); + + if (this.imageLayer) { + this.imageLayer.beginLayout(); + } + }, + executeOperatorList: function CanvasGraphics_executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) { + var argsArray = operatorList.argsArray; + var fnArray = operatorList.fnArray; + var i = executionStartIdx || 0; + var argsArrayLen = argsArray.length; + + if (argsArrayLen === i) { + return i; + } + + var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === 'function'; + var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0; + var steps = 0; + var commonObjs = this.commonObjs; + var objs = this.objs; + var fnId; + + while (true) { + if (stepper !== undefined && i === stepper.nextBreakPoint) { + stepper.breakIt(i, continueCallback); + return i; + } + + fnId = fnArray[i]; + + if (fnId !== _util.OPS.dependency) { + this[fnId].apply(this, argsArray[i]); + } else { + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = argsArray[i][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var depObjId = _step.value; + var objsPool = depObjId.startsWith('g_') ? commonObjs : objs; + + if (!objsPool.has(depObjId)) { + objsPool.get(depObjId, continueCallback); + return i; + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator["return"] != null) { + _iterator["return"](); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + } + + i++; + + if (i === argsArrayLen) { + return i; + } + + if (chunkOperations && ++steps > EXECUTION_STEPS) { + if (Date.now() > endTime) { + continueCallback(); + return i; + } + + steps = 0; + } + } + }, + endDrawing: function CanvasGraphics_endDrawing() { + if (this.current.activeSMask !== null) { + this.endSMaskGroup(); + } + + this.ctx.restore(); + + if (this.transparentCanvas) { + this.ctx = this.compositeCtx; + this.ctx.save(); + this.ctx.setTransform(1, 0, 0, 1, 0, 0); + this.ctx.drawImage(this.transparentCanvas, 0, 0); + this.ctx.restore(); + this.transparentCanvas = null; + } + + this.cachedCanvases.clear(); + this.webGLContext.clear(); + + if (this.imageLayer) { + this.imageLayer.endLayout(); + } + }, + setLineWidth: function CanvasGraphics_setLineWidth(width) { + this.current.lineWidth = width; + this.ctx.lineWidth = width; + }, + setLineCap: function CanvasGraphics_setLineCap(style) { + this.ctx.lineCap = LINE_CAP_STYLES[style]; + }, + setLineJoin: function CanvasGraphics_setLineJoin(style) { + this.ctx.lineJoin = LINE_JOIN_STYLES[style]; + }, + setMiterLimit: function CanvasGraphics_setMiterLimit(limit) { + this.ctx.miterLimit = limit; + }, + setDash: function CanvasGraphics_setDash(dashArray, dashPhase) { + var ctx = this.ctx; + + if (ctx.setLineDash !== undefined) { + ctx.setLineDash(dashArray); + ctx.lineDashOffset = dashPhase; + } + }, + setRenderingIntent: function setRenderingIntent(intent) {}, + setFlatness: function setFlatness(flatness) {}, + setGState: function CanvasGraphics_setGState(states) { + for (var i = 0, ii = states.length; i < ii; i++) { + var state = states[i]; + var key = state[0]; + var value = state[1]; + + switch (key) { + case 'LW': + this.setLineWidth(value); + break; + + case 'LC': + this.setLineCap(value); + break; + + case 'LJ': + this.setLineJoin(value); + break; + + case 'ML': + this.setMiterLimit(value); + break; + + case 'D': + this.setDash(value[0], value[1]); + break; + + case 'RI': + this.setRenderingIntent(value); + break; + + case 'FL': + this.setFlatness(value); + break; + + case 'Font': + this.setFont(value[0], value[1]); + break; + + case 'CA': + this.current.strokeAlpha = state[1]; + break; + + case 'ca': + this.current.fillAlpha = state[1]; + this.ctx.globalAlpha = state[1]; + break; + + case 'BM': + this.ctx.globalCompositeOperation = value; + break; + + case 'SMask': + if (this.current.activeSMask) { + if (this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask) { + this.suspendSMaskGroup(); + } else { + this.endSMaskGroup(); + } + } + + this.current.activeSMask = value ? this.tempSMask : null; + + if (this.current.activeSMask) { + this.beginSMaskGroup(); + } + + this.tempSMask = null; + break; + } + } + }, + beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() { + var activeSMask = this.current.activeSMask; + var drawnWidth = activeSMask.canvas.width; + var drawnHeight = activeSMask.canvas.height; + var cacheId = 'smaskGroupAt' + this.groupLevel; + var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); + var currentCtx = this.ctx; + var currentTransform = currentCtx.mozCurrentTransform; + this.ctx.save(); + var groupCtx = scratchCanvas.context; + groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY); + groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY); + groupCtx.transform.apply(groupCtx, currentTransform); + activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse; + copyCtxState(currentCtx, groupCtx); + this.ctx = groupCtx; + this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]); + this.groupStack.push(currentCtx); + this.groupLevel++; + }, + suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() { + var groupCtx = this.ctx; + this.groupLevel--; + this.ctx = this.groupStack.pop(); + composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext); + this.ctx.restore(); + this.ctx.save(); + copyCtxState(groupCtx, this.ctx); + this.current.resumeSMaskCtx = groupCtx; + + var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform); + + this.ctx.transform.apply(this.ctx, deltaTransform); + groupCtx.save(); + groupCtx.setTransform(1, 0, 0, 1, 0, 0); + groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height); + groupCtx.restore(); + }, + resumeSMaskGroup: function CanvasGraphics_endSMaskGroup() { + var groupCtx = this.current.resumeSMaskCtx; + var currentCtx = this.ctx; + this.ctx = groupCtx; + this.groupStack.push(currentCtx); + this.groupLevel++; + }, + endSMaskGroup: function CanvasGraphics_endSMaskGroup() { + var groupCtx = this.ctx; + this.groupLevel--; + this.ctx = this.groupStack.pop(); + composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext); + this.ctx.restore(); + copyCtxState(groupCtx, this.ctx); + + var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform); + + this.ctx.transform.apply(this.ctx, deltaTransform); + }, + save: function CanvasGraphics_save() { + this.ctx.save(); + var old = this.current; + this.stateStack.push(old); + this.current = old.clone(); + this.current.resumeSMaskCtx = null; + }, + restore: function CanvasGraphics_restore() { + if (this.current.resumeSMaskCtx) { + this.resumeSMaskGroup(); + } + + if (this.current.activeSMask !== null && (this.stateStack.length === 0 || this.stateStack[this.stateStack.length - 1].activeSMask !== this.current.activeSMask)) { + this.endSMaskGroup(); + } + + if (this.stateStack.length !== 0) { + this.current = this.stateStack.pop(); + this.ctx.restore(); + this.pendingClip = null; + this._cachedGetSinglePixelWidth = null; + } + }, + transform: function CanvasGraphics_transform(a, b, c, d, e, f) { + this.ctx.transform(a, b, c, d, e, f); + this._cachedGetSinglePixelWidth = null; + }, + constructPath: function CanvasGraphics_constructPath(ops, args) { + var ctx = this.ctx; + var current = this.current; + var x = current.x, + y = current.y; + + for (var i = 0, j = 0, ii = ops.length; i < ii; i++) { + switch (ops[i] | 0) { + case _util.OPS.rectangle: + x = args[j++]; + y = args[j++]; + var width = args[j++]; + var height = args[j++]; + + if (width === 0) { + width = this.getSinglePixelWidth(); + } + + if (height === 0) { + height = this.getSinglePixelWidth(); + } + + var xw = x + width; + var yh = y + height; + this.ctx.moveTo(x, y); + this.ctx.lineTo(xw, y); + this.ctx.lineTo(xw, yh); + this.ctx.lineTo(x, yh); + this.ctx.lineTo(x, y); + this.ctx.closePath(); + break; + + case _util.OPS.moveTo: + x = args[j++]; + y = args[j++]; + ctx.moveTo(x, y); + break; + + case _util.OPS.lineTo: + x = args[j++]; + y = args[j++]; + ctx.lineTo(x, y); + break; + + case _util.OPS.curveTo: + x = args[j + 4]; + y = args[j + 5]; + ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y); + j += 6; + break; + + case _util.OPS.curveTo2: + ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]); + x = args[j + 2]; + y = args[j + 3]; + j += 4; + break; + + case _util.OPS.curveTo3: + x = args[j + 2]; + y = args[j + 3]; + ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y); + j += 4; + break; + + case _util.OPS.closePath: + ctx.closePath(); + break; + } + } + + current.setCurrentPoint(x, y); + }, + closePath: function CanvasGraphics_closePath() { + this.ctx.closePath(); + }, + stroke: function CanvasGraphics_stroke(consumePath) { + consumePath = typeof consumePath !== 'undefined' ? consumePath : true; + var ctx = this.ctx; + var strokeColor = this.current.strokeColor; + ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth); + ctx.globalAlpha = this.current.strokeAlpha; + + if (strokeColor && strokeColor.hasOwnProperty('type') && strokeColor.type === 'Pattern') { + ctx.save(); + ctx.strokeStyle = strokeColor.getPattern(ctx, this); + ctx.stroke(); + ctx.restore(); + } else { + ctx.stroke(); + } + + if (consumePath) { + this.consumePath(); + } + + ctx.globalAlpha = this.current.fillAlpha; + }, + closeStroke: function CanvasGraphics_closeStroke() { + this.closePath(); + this.stroke(); + }, + fill: function CanvasGraphics_fill(consumePath) { + consumePath = typeof consumePath !== 'undefined' ? consumePath : true; + var ctx = this.ctx; + var fillColor = this.current.fillColor; + var isPatternFill = this.current.patternFill; + var needRestore = false; + + if (isPatternFill) { + ctx.save(); + + if (this.baseTransform) { + ctx.setTransform.apply(ctx, this.baseTransform); + } + + ctx.fillStyle = fillColor.getPattern(ctx, this); + needRestore = true; + } + + if (this.pendingEOFill) { + ctx.fill('evenodd'); + this.pendingEOFill = false; + } else { + ctx.fill(); + } + + if (needRestore) { + ctx.restore(); + } + + if (consumePath) { + this.consumePath(); + } + }, + eoFill: function CanvasGraphics_eoFill() { + this.pendingEOFill = true; + this.fill(); + }, + fillStroke: function CanvasGraphics_fillStroke() { + this.fill(false); + this.stroke(false); + this.consumePath(); + }, + eoFillStroke: function CanvasGraphics_eoFillStroke() { + this.pendingEOFill = true; + this.fillStroke(); + }, + closeFillStroke: function CanvasGraphics_closeFillStroke() { + this.closePath(); + this.fillStroke(); + }, + closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() { + this.pendingEOFill = true; + this.closePath(); + this.fillStroke(); + }, + endPath: function CanvasGraphics_endPath() { + this.consumePath(); + }, + clip: function CanvasGraphics_clip() { + this.pendingClip = NORMAL_CLIP; + }, + eoClip: function CanvasGraphics_eoClip() { + this.pendingClip = EO_CLIP; + }, + beginText: function CanvasGraphics_beginText() { + this.current.textMatrix = _util.IDENTITY_MATRIX; + this.current.textMatrixScale = 1; + this.current.x = this.current.lineX = 0; + this.current.y = this.current.lineY = 0; + }, + endText: function CanvasGraphics_endText() { + var paths = this.pendingTextPaths; + var ctx = this.ctx; + + if (paths === undefined) { + ctx.beginPath(); + return; + } + + ctx.save(); + ctx.beginPath(); + + for (var i = 0; i < paths.length; i++) { + var path = paths[i]; + ctx.setTransform.apply(ctx, path.transform); + ctx.translate(path.x, path.y); + path.addToPath(ctx, path.fontSize); + } + + ctx.restore(); + ctx.clip(); + ctx.beginPath(); + delete this.pendingTextPaths; + }, + setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) { + this.current.charSpacing = spacing; + }, + setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) { + this.current.wordSpacing = spacing; + }, + setHScale: function CanvasGraphics_setHScale(scale) { + this.current.textHScale = scale / 100; + }, + setLeading: function CanvasGraphics_setLeading(leading) { + this.current.leading = -leading; + }, + setFont: function CanvasGraphics_setFont(fontRefName, size) { + var fontObj = this.commonObjs.get(fontRefName); + var current = this.current; + + if (!fontObj) { + throw new Error("Can't find font for ".concat(fontRefName)); + } + + current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX; + + if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) { + (0, _util.warn)('Invalid font matrix for font ' + fontRefName); + } + + if (size < 0) { + size = -size; + current.fontDirection = -1; + } else { + current.fontDirection = 1; + } + + this.current.font = fontObj; + this.current.fontSize = size; + + if (fontObj.isType3Font) { + return; + } + + var name = fontObj.loadedName || 'sans-serif'; + var bold = fontObj.black ? '900' : fontObj.bold ? 'bold' : 'normal'; + var italic = fontObj.italic ? 'italic' : 'normal'; + var typeface = "\"".concat(name, "\", ").concat(fontObj.fallbackName); + var browserFontSize = size < MIN_FONT_SIZE ? MIN_FONT_SIZE : size > MAX_FONT_SIZE ? MAX_FONT_SIZE : size; + this.current.fontSizeScale = size / browserFontSize; + this.ctx.font = "".concat(italic, " ").concat(bold, " ").concat(browserFontSize, "px ").concat(typeface); + }, + setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) { + this.current.textRenderingMode = mode; + }, + setTextRise: function CanvasGraphics_setTextRise(rise) { + this.current.textRise = rise; + }, + moveText: function CanvasGraphics_moveText(x, y) { + this.current.x = this.current.lineX += x; + this.current.y = this.current.lineY += y; + }, + setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) { + this.setLeading(-y); + this.moveText(x, y); + }, + setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) { + this.current.textMatrix = [a, b, c, d, e, f]; + this.current.textMatrixScale = Math.sqrt(a * a + b * b); + this.current.x = this.current.lineX = 0; + this.current.y = this.current.lineY = 0; + }, + nextLine: function CanvasGraphics_nextLine() { + this.moveText(0, this.current.leading); + }, + paintChar: function paintChar(character, x, y, patternTransform) { + var ctx = this.ctx; + var current = this.current; + var font = current.font; + var textRenderingMode = current.textRenderingMode; + var fontSize = current.fontSize / current.fontSizeScale; + var fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; + var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG); + var patternFill = current.patternFill && font.data; + var addToPath; + + if (font.disableFontFace || isAddToPathSet || patternFill) { + addToPath = font.getPathGenerator(this.commonObjs, character); + } + + if (font.disableFontFace || patternFill) { + ctx.save(); + ctx.translate(x, y); + ctx.beginPath(); + addToPath(ctx, fontSize); + + if (patternTransform) { + ctx.setTransform.apply(ctx, patternTransform); + } + + if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + ctx.fill(); + } + + if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + ctx.stroke(); + } + + ctx.restore(); + } else { + if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + ctx.fillText(character, x, y); + } + + if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + ctx.strokeText(character, x, y); + } + } + + if (isAddToPathSet) { + var paths = this.pendingTextPaths || (this.pendingTextPaths = []); + paths.push({ + transform: ctx.mozCurrentTransform, + x: x, + y: y, + fontSize: fontSize, + addToPath: addToPath + }); + } + }, + + get isFontSubpixelAAEnabled() { + var _this$cachedCanvases$ = this.cachedCanvases.getCanvas('isFontSubpixelAAEnabled', 10, 10), + ctx = _this$cachedCanvases$.context; + + ctx.scale(1.5, 1); + ctx.fillText('I', 0, 10); + var data = ctx.getImageData(0, 0, 10, 10).data; + var enabled = false; + + for (var i = 3; i < data.length; i += 4) { + if (data[i] > 0 && data[i] < 255) { + enabled = true; + break; + } + } + + return (0, _util.shadow)(this, 'isFontSubpixelAAEnabled', enabled); + }, + + showText: function CanvasGraphics_showText(glyphs) { + var current = this.current; + var font = current.font; + + if (font.isType3Font) { + return this.showType3Text(glyphs); + } + + var fontSize = current.fontSize; + + if (fontSize === 0) { + return undefined; + } + + var ctx = this.ctx; + var fontSizeScale = current.fontSizeScale; + var charSpacing = current.charSpacing; + var wordSpacing = current.wordSpacing; + var fontDirection = current.fontDirection; + var textHScale = current.textHScale * fontDirection; + var glyphsLength = glyphs.length; + var vertical = font.vertical; + var spacingDir = vertical ? 1 : -1; + var defaultVMetrics = font.defaultVMetrics; + var widthAdvanceScale = fontSize * current.fontMatrix[0]; + var simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill; + ctx.save(); + var patternTransform; + + if (current.patternFill) { + ctx.save(); + var pattern = current.fillColor.getPattern(ctx, this); + patternTransform = ctx.mozCurrentTransform; + ctx.restore(); + ctx.fillStyle = pattern; + } + + ctx.transform.apply(ctx, current.textMatrix); + ctx.translate(current.x, current.y + current.textRise); + + if (fontDirection > 0) { + ctx.scale(textHScale, -1); + } else { + ctx.scale(textHScale, 1); + } + + var lineWidth = current.lineWidth; + var scale = current.textMatrixScale; + + if (scale === 0 || lineWidth === 0) { + var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; + + if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + this._cachedGetSinglePixelWidth = null; + lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR; + } + } else { + lineWidth /= scale; + } + + if (fontSizeScale !== 1.0) { + ctx.scale(fontSizeScale, fontSizeScale); + lineWidth /= fontSizeScale; + } + + ctx.lineWidth = lineWidth; + var x = 0, + i; + + for (i = 0; i < glyphsLength; ++i) { + var glyph = glyphs[i]; + + if ((0, _util.isNum)(glyph)) { + x += spacingDir * glyph * fontSize / 1000; + continue; + } + + var restoreNeeded = false; + var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; + var character = glyph.fontChar; + var accent = glyph.accent; + var scaledX, scaledY, scaledAccentX, scaledAccentY; + var width = glyph.width; + + if (vertical) { + var vmetric, vx, vy; + vmetric = glyph.vmetric || defaultVMetrics; + vx = glyph.vmetric ? vmetric[1] : width * 0.5; + vx = -vx * widthAdvanceScale; + vy = vmetric[2] * widthAdvanceScale; + width = vmetric ? -vmetric[0] : width; + scaledX = vx / fontSizeScale; + scaledY = (x + vy) / fontSizeScale; + } else { + scaledX = x / fontSizeScale; + scaledY = 0; + } + + if (font.remeasure && width > 0) { + var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale; + + if (width < measuredWidth && this.isFontSubpixelAAEnabled) { + var characterScaleX = width / measuredWidth; + restoreNeeded = true; + ctx.save(); + ctx.scale(characterScaleX, 1); + scaledX /= characterScaleX; + } else if (width !== measuredWidth) { + scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale; + } + } + + if (glyph.isInFont || font.missingFile) { + if (simpleFillText && !accent) { + ctx.fillText(character, scaledX, scaledY); + } else { + this.paintChar(character, scaledX, scaledY, patternTransform); + + if (accent) { + scaledAccentX = scaledX + accent.offset.x / fontSizeScale; + scaledAccentY = scaledY - accent.offset.y / fontSizeScale; + this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform); + } + } + } + + var charWidth = width * widthAdvanceScale + spacing * fontDirection; + x += charWidth; + + if (restoreNeeded) { + ctx.restore(); + } + } + + if (vertical) { + current.y -= x * textHScale; + } else { + current.x += x * textHScale; + } + + ctx.restore(); + }, + showType3Text: function CanvasGraphics_showType3Text(glyphs) { + var ctx = this.ctx; + var current = this.current; + var font = current.font; + var fontSize = current.fontSize; + var fontDirection = current.fontDirection; + var spacingDir = font.vertical ? 1 : -1; + var charSpacing = current.charSpacing; + var wordSpacing = current.wordSpacing; + var textHScale = current.textHScale * fontDirection; + var fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX; + var glyphsLength = glyphs.length; + var isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE; + var i, glyph, width, spacingLength; + + if (isTextInvisible || fontSize === 0) { + return; + } + + this._cachedGetSinglePixelWidth = null; + ctx.save(); + ctx.transform.apply(ctx, current.textMatrix); + ctx.translate(current.x, current.y); + ctx.scale(textHScale, fontDirection); + + for (i = 0; i < glyphsLength; ++i) { + glyph = glyphs[i]; + + if ((0, _util.isNum)(glyph)) { + spacingLength = spacingDir * glyph * fontSize / 1000; + this.ctx.translate(spacingLength, 0); + current.x += spacingLength * textHScale; + continue; + } + + var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; + var operatorList = font.charProcOperatorList[glyph.operatorListId]; + + if (!operatorList) { + (0, _util.warn)("Type3 character \"".concat(glyph.operatorListId, "\" is not available.")); + continue; + } + + this.processingType3 = glyph; + this.save(); + ctx.scale(fontSize, fontSize); + ctx.transform.apply(ctx, fontMatrix); + this.executeOperatorList(operatorList); + this.restore(); + + var transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix); + + width = transformed[0] * fontSize + spacing; + ctx.translate(width, 0); + current.x += width * textHScale; + } + + ctx.restore(); + this.processingType3 = null; + }, + setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {}, + setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) { + this.ctx.rect(llx, lly, urx - llx, ury - lly); + this.clip(); + this.endPath(); + }, + getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) { + var _this = this; + + var pattern; + + if (IR[0] === 'TilingPattern') { + var color = IR[1]; + var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice(); + var canvasGraphicsFactory = { + createCanvasGraphics: function createCanvasGraphics(ctx) { + return new CanvasGraphics(ctx, _this.commonObjs, _this.objs, _this.canvasFactory, _this.webGLContext); + } + }; + pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform); + } else { + pattern = (0, _pattern_helper.getShadingPatternFromIR)(IR); + } + + return pattern; + }, + setStrokeColorN: function CanvasGraphics_setStrokeColorN() { + this.current.strokeColor = this.getColorN_Pattern(arguments); + }, + setFillColorN: function CanvasGraphics_setFillColorN() { + this.current.fillColor = this.getColorN_Pattern(arguments); + this.current.patternFill = true; + }, + setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) { + var color = _util.Util.makeCssRgb(r, g, b); + + this.ctx.strokeStyle = color; + this.current.strokeColor = color; + }, + setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) { + var color = _util.Util.makeCssRgb(r, g, b); + + this.ctx.fillStyle = color; + this.current.fillColor = color; + this.current.patternFill = false; + }, + shadingFill: function CanvasGraphics_shadingFill(patternIR) { + var ctx = this.ctx; + this.save(); + var pattern = (0, _pattern_helper.getShadingPatternFromIR)(patternIR); + ctx.fillStyle = pattern.getPattern(ctx, this, true); + var inv = ctx.mozCurrentTransformInverse; + + if (inv) { + var canvas = ctx.canvas; + var width = canvas.width; + var height = canvas.height; + + var bl = _util.Util.applyTransform([0, 0], inv); + + var br = _util.Util.applyTransform([0, height], inv); + + var ul = _util.Util.applyTransform([width, 0], inv); + + var ur = _util.Util.applyTransform([width, height], inv); + + var x0 = Math.min(bl[0], br[0], ul[0], ur[0]); + var y0 = Math.min(bl[1], br[1], ul[1], ur[1]); + var x1 = Math.max(bl[0], br[0], ul[0], ur[0]); + var y1 = Math.max(bl[1], br[1], ul[1], ur[1]); + this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0); + } else { + this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10); + } + + this.restore(); + }, + beginInlineImage: function CanvasGraphics_beginInlineImage() { + (0, _util.unreachable)('Should not call beginInlineImage'); + }, + beginImageData: function CanvasGraphics_beginImageData() { + (0, _util.unreachable)('Should not call beginImageData'); + }, + paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, bbox) { + this.save(); + this.baseTransformStack.push(this.baseTransform); + + if (Array.isArray(matrix) && matrix.length === 6) { + this.transform.apply(this, matrix); + } + + this.baseTransform = this.ctx.mozCurrentTransform; + + if (bbox) { + var width = bbox[2] - bbox[0]; + var height = bbox[3] - bbox[1]; + this.ctx.rect(bbox[0], bbox[1], width, height); + this.clip(); + this.endPath(); + } + }, + paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() { + this.restore(); + this.baseTransform = this.baseTransformStack.pop(); + }, + beginGroup: function CanvasGraphics_beginGroup(group) { + this.save(); + var currentCtx = this.ctx; + + if (!group.isolated) { + (0, _util.info)('TODO: Support non-isolated groups.'); + } + + if (group.knockout) { + (0, _util.warn)('Knockout groups not supported.'); + } + + var currentTransform = currentCtx.mozCurrentTransform; + + if (group.matrix) { + currentCtx.transform.apply(currentCtx, group.matrix); + } + + if (!group.bbox) { + throw new Error('Bounding box is required.'); + } + + var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform); + + var canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height]; + bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0]; + var offsetX = Math.floor(bounds[0]); + var offsetY = Math.floor(bounds[1]); + var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1); + var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1); + var scaleX = 1, + scaleY = 1; + + if (drawnWidth > MAX_GROUP_SIZE) { + scaleX = drawnWidth / MAX_GROUP_SIZE; + drawnWidth = MAX_GROUP_SIZE; + } + + if (drawnHeight > MAX_GROUP_SIZE) { + scaleY = drawnHeight / MAX_GROUP_SIZE; + drawnHeight = MAX_GROUP_SIZE; + } + + var cacheId = 'groupAt' + this.groupLevel; + + if (group.smask) { + cacheId += '_smask_' + this.smaskCounter++ % 2; + } + + var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); + var groupCtx = scratchCanvas.context; + groupCtx.scale(1 / scaleX, 1 / scaleY); + groupCtx.translate(-offsetX, -offsetY); + groupCtx.transform.apply(groupCtx, currentTransform); + + if (group.smask) { + this.smaskStack.push({ + canvas: scratchCanvas.canvas, + context: groupCtx, + offsetX: offsetX, + offsetY: offsetY, + scaleX: scaleX, + scaleY: scaleY, + subtype: group.smask.subtype, + backdrop: group.smask.backdrop, + transferMap: group.smask.transferMap || null, + startTransformInverse: null + }); + } else { + currentCtx.setTransform(1, 0, 0, 1, 0, 0); + currentCtx.translate(offsetX, offsetY); + currentCtx.scale(scaleX, scaleY); + } + + copyCtxState(currentCtx, groupCtx); + this.ctx = groupCtx; + this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]); + this.groupStack.push(currentCtx); + this.groupLevel++; + this.current.activeSMask = null; + }, + endGroup: function CanvasGraphics_endGroup(group) { + this.groupLevel--; + var groupCtx = this.ctx; + this.ctx = this.groupStack.pop(); + + if (this.ctx.imageSmoothingEnabled !== undefined) { + this.ctx.imageSmoothingEnabled = false; + } else { + this.ctx.mozImageSmoothingEnabled = false; + } + + if (group.smask) { + this.tempSMask = this.smaskStack.pop(); + } else { + this.ctx.drawImage(groupCtx.canvas, 0, 0); + } + + this.restore(); + }, + beginAnnotations: function CanvasGraphics_beginAnnotations() { + this.save(); + + if (this.baseTransform) { + this.ctx.setTransform.apply(this.ctx, this.baseTransform); + } + }, + endAnnotations: function CanvasGraphics_endAnnotations() { + this.restore(); + }, + beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform, matrix) { + this.save(); + resetCtxToDefault(this.ctx); + this.current = new CanvasExtraState(); + + if (Array.isArray(rect) && rect.length === 4) { + var width = rect[2] - rect[0]; + var height = rect[3] - rect[1]; + this.ctx.rect(rect[0], rect[1], width, height); + this.clip(); + this.endPath(); + } + + this.transform.apply(this, transform); + this.transform.apply(this, matrix); + }, + endAnnotation: function CanvasGraphics_endAnnotation() { + this.restore(); + }, + paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) { + var domImage = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId); + + if (!domImage) { + (0, _util.warn)('Dependent image isn\'t ready yet'); + return; + } + + this.save(); + var ctx = this.ctx; + ctx.scale(1 / w, -1 / h); + ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height, 0, -h, w, h); + + if (this.imageLayer) { + var currentTransform = ctx.mozCurrentTransformInverse; + var position = this.getCanvasPosition(0, 0); + this.imageLayer.appendImage({ + objId: objId, + left: position[0], + top: position[1], + width: w / currentTransform[0], + height: h / currentTransform[3] + }); + } + + this.restore(); + }, + paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) { + var ctx = this.ctx; + var width = img.width, + height = img.height; + var fillColor = this.current.fillColor; + var isPatternFill = this.current.patternFill; + var glyph = this.processingType3; + + if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) { + if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) { + glyph.compiled = compileType3Glyph({ + data: img.data, + width: width, + height: height + }); + } else { + glyph.compiled = null; + } + } + + if (glyph && glyph.compiled) { + glyph.compiled(ctx); + return; + } + + var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); + var maskCtx = maskCanvas.context; + maskCtx.save(); + putBinaryImageMask(maskCtx, img); + maskCtx.globalCompositeOperation = 'source-in'; + maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; + maskCtx.fillRect(0, 0, width, height); + maskCtx.restore(); + this.paintInlineImageXObject(maskCanvas.canvas); + }, + paintImageMaskXObjectRepeat: function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX, scaleY, positions) { + var width = imgData.width; + var height = imgData.height; + var fillColor = this.current.fillColor; + var isPatternFill = this.current.patternFill; + var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); + var maskCtx = maskCanvas.context; + maskCtx.save(); + putBinaryImageMask(maskCtx, imgData); + maskCtx.globalCompositeOperation = 'source-in'; + maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; + maskCtx.fillRect(0, 0, width, height); + maskCtx.restore(); + var ctx = this.ctx; + + for (var i = 0, ii = positions.length; i < ii; i += 2) { + ctx.save(); + ctx.transform(scaleX, 0, 0, scaleY, positions[i], positions[i + 1]); + ctx.scale(1, -1); + ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); + ctx.restore(); + } + }, + paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(images) { + var ctx = this.ctx; + var fillColor = this.current.fillColor; + var isPatternFill = this.current.patternFill; + + for (var i = 0, ii = images.length; i < ii; i++) { + var image = images[i]; + var width = image.width, + height = image.height; + var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); + var maskCtx = maskCanvas.context; + maskCtx.save(); + putBinaryImageMask(maskCtx, image); + maskCtx.globalCompositeOperation = 'source-in'; + maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; + maskCtx.fillRect(0, 0, width, height); + maskCtx.restore(); + ctx.save(); + ctx.transform.apply(ctx, image.transform); + ctx.scale(1, -1); + ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); + ctx.restore(); + } + }, + paintImageXObject: function CanvasGraphics_paintImageXObject(objId) { + var imgData = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId); + + if (!imgData) { + (0, _util.warn)('Dependent image isn\'t ready yet'); + return; + } + + this.paintInlineImageXObject(imgData); + }, + paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, positions) { + var imgData = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId); + + if (!imgData) { + (0, _util.warn)('Dependent image isn\'t ready yet'); + return; + } + + var width = imgData.width; + var height = imgData.height; + var map = []; + + for (var i = 0, ii = positions.length; i < ii; i += 2) { + map.push({ + transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]], + x: 0, + y: 0, + w: width, + h: height + }); + } + + this.paintInlineImageXObjectGroup(imgData, map); + }, + paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(imgData) { + var width = imgData.width; + var height = imgData.height; + var ctx = this.ctx; + this.save(); + ctx.scale(1 / width, -1 / height); + var currentTransform = ctx.mozCurrentTransformInverse; + var a = currentTransform[0], + b = currentTransform[1]; + var widthScale = Math.max(Math.sqrt(a * a + b * b), 1); + var c = currentTransform[2], + d = currentTransform[3]; + var heightScale = Math.max(Math.sqrt(c * c + d * d), 1); + var imgToPaint, tmpCanvas; + + if (typeof HTMLElement === 'function' && imgData instanceof HTMLElement || !imgData.data) { + imgToPaint = imgData; + } else { + tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', width, height); + var tmpCtx = tmpCanvas.context; + putBinaryImageData(tmpCtx, imgData); + imgToPaint = tmpCanvas.canvas; + } + + var paintWidth = width, + paintHeight = height; + var tmpCanvasId = 'prescale1'; + + while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) { + var newWidth = paintWidth, + newHeight = paintHeight; + + if (widthScale > 2 && paintWidth > 1) { + newWidth = Math.ceil(paintWidth / 2); + widthScale /= paintWidth / newWidth; + } + + if (heightScale > 2 && paintHeight > 1) { + newHeight = Math.ceil(paintHeight / 2); + heightScale /= paintHeight / newHeight; + } + + tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight); + tmpCtx = tmpCanvas.context; + tmpCtx.clearRect(0, 0, newWidth, newHeight); + tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight); + imgToPaint = tmpCanvas.canvas; + paintWidth = newWidth; + paintHeight = newHeight; + tmpCanvasId = tmpCanvasId === 'prescale1' ? 'prescale2' : 'prescale1'; + } + + ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height); + + if (this.imageLayer) { + var position = this.getCanvasPosition(0, -height); + this.imageLayer.appendImage({ + imgData: imgData, + left: position[0], + top: position[1], + width: width / currentTransform[0], + height: height / currentTransform[3] + }); + } + + this.restore(); + }, + paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) { + var ctx = this.ctx; + var w = imgData.width; + var h = imgData.height; + var tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', w, h); + var tmpCtx = tmpCanvas.context; + putBinaryImageData(tmpCtx, imgData); + + for (var i = 0, ii = map.length; i < ii; i++) { + var entry = map[i]; + ctx.save(); + ctx.transform.apply(ctx, entry.transform); + ctx.scale(1, -1); + ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1); + + if (this.imageLayer) { + var position = this.getCanvasPosition(entry.x, entry.y); + this.imageLayer.appendImage({ + imgData: imgData, + left: position[0], + top: position[1], + width: w, + height: h + }); + } + + ctx.restore(); + } + }, + paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() { + this.ctx.fillRect(0, 0, 1, 1); + }, + paintXObject: function CanvasGraphics_paintXObject() { + (0, _util.warn)('Unsupported \'paintXObject\' command.'); + }, + markPoint: function CanvasGraphics_markPoint(tag) {}, + markPointProps: function CanvasGraphics_markPointProps(tag, properties) {}, + beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {}, + beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(tag, properties) {}, + endMarkedContent: function CanvasGraphics_endMarkedContent() {}, + beginCompat: function CanvasGraphics_beginCompat() {}, + endCompat: function CanvasGraphics_endCompat() {}, + consumePath: function CanvasGraphics_consumePath() { + var ctx = this.ctx; + + if (this.pendingClip) { + if (this.pendingClip === EO_CLIP) { + ctx.clip('evenodd'); + } else { + ctx.clip(); + } + + this.pendingClip = null; + } + + ctx.beginPath(); + }, + getSinglePixelWidth: function getSinglePixelWidth(scale) { + if (this._cachedGetSinglePixelWidth === null) { + var inverse = this.ctx.mozCurrentTransformInverse; + this._cachedGetSinglePixelWidth = Math.sqrt(Math.max(inverse[0] * inverse[0] + inverse[1] * inverse[1], inverse[2] * inverse[2] + inverse[3] * inverse[3])); + } + + return this._cachedGetSinglePixelWidth; + }, + getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) { + var transform = this.ctx.mozCurrentTransform; + return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]]; + } + }; + + for (var op in _util.OPS) { + CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op]; + } + + return CanvasGraphics; +}(); + +exports.CanvasGraphics = CanvasGraphics; + +/***/ }), +/* 155 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getShadingPatternFromIR = getShadingPatternFromIR; +exports.TilingPattern = void 0; + +var _util = __w_pdfjs_require__(1); + +var ShadingIRs = {}; +ShadingIRs.RadialAxial = { + fromIR: function RadialAxial_fromIR(raw) { + var type = raw[1]; + var colorStops = raw[2]; + var p0 = raw[3]; + var p1 = raw[4]; + var r0 = raw[5]; + var r1 = raw[6]; + return { + type: 'Pattern', + getPattern: function RadialAxial_getPattern(ctx) { + var grad; + + if (type === 'axial') { + grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]); + } else if (type === 'radial') { + grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1); + } + + for (var i = 0, ii = colorStops.length; i < ii; ++i) { + var c = colorStops[i]; + grad.addColorStop(c[0], c[1]); + } + + return grad; + } + }; + } +}; + +var createMeshCanvas = function createMeshCanvasClosure() { + function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) { + var coords = context.coords, + colors = context.colors; + var bytes = data.data, + rowSize = data.width * 4; + var tmp; + + if (coords[p1 + 1] > coords[p2 + 1]) { + tmp = p1; + p1 = p2; + p2 = tmp; + tmp = c1; + c1 = c2; + c2 = tmp; + } + + if (coords[p2 + 1] > coords[p3 + 1]) { + tmp = p2; + p2 = p3; + p3 = tmp; + tmp = c2; + c2 = c3; + c3 = tmp; + } + + if (coords[p1 + 1] > coords[p2 + 1]) { + tmp = p1; + p1 = p2; + p2 = tmp; + tmp = c1; + c1 = c2; + c2 = tmp; + } + + var x1 = (coords[p1] + context.offsetX) * context.scaleX; + var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY; + var x2 = (coords[p2] + context.offsetX) * context.scaleX; + var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY; + var x3 = (coords[p3] + context.offsetX) * context.scaleX; + var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY; + + if (y1 >= y3) { + return; + } + + var c1r = colors[c1], + c1g = colors[c1 + 1], + c1b = colors[c1 + 2]; + var c2r = colors[c2], + c2g = colors[c2 + 1], + c2b = colors[c2 + 2]; + var c3r = colors[c3], + c3g = colors[c3 + 1], + c3b = colors[c3 + 2]; + var minY = Math.round(y1), + maxY = Math.round(y3); + var xa, car, cag, cab; + var xb, cbr, cbg, cbb; + var k; + + for (var y = minY; y <= maxY; y++) { + if (y < y2) { + k = y < y1 ? 0 : y1 === y2 ? 1 : (y1 - y) / (y1 - y2); + xa = x1 - (x1 - x2) * k; + car = c1r - (c1r - c2r) * k; + cag = c1g - (c1g - c2g) * k; + cab = c1b - (c1b - c2b) * k; + } else { + k = y > y3 ? 1 : y2 === y3 ? 0 : (y2 - y) / (y2 - y3); + xa = x2 - (x2 - x3) * k; + car = c2r - (c2r - c3r) * k; + cag = c2g - (c2g - c3g) * k; + cab = c2b - (c2b - c3b) * k; + } + + k = y < y1 ? 0 : y > y3 ? 1 : (y1 - y) / (y1 - y3); + xb = x1 - (x1 - x3) * k; + cbr = c1r - (c1r - c3r) * k; + cbg = c1g - (c1g - c3g) * k; + cbb = c1b - (c1b - c3b) * k; + var x1_ = Math.round(Math.min(xa, xb)); + var x2_ = Math.round(Math.max(xa, xb)); + var j = rowSize * y + x1_ * 4; + + for (var x = x1_; x <= x2_; x++) { + k = (xa - x) / (xa - xb); + k = k < 0 ? 0 : k > 1 ? 1 : k; + bytes[j++] = car - (car - cbr) * k | 0; + bytes[j++] = cag - (cag - cbg) * k | 0; + bytes[j++] = cab - (cab - cbb) * k | 0; + bytes[j++] = 255; + } + } + } + + function drawFigure(data, figure, context) { + var ps = figure.coords; + var cs = figure.colors; + var i, ii; + + switch (figure.type) { + case 'lattice': + var verticesPerRow = figure.verticesPerRow; + var rows = Math.floor(ps.length / verticesPerRow) - 1; + var cols = verticesPerRow - 1; + + for (i = 0; i < rows; i++) { + var q = i * verticesPerRow; + + for (var j = 0; j < cols; j++, q++) { + drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]); + drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]); + } + } + + break; + + case 'triangles': + for (i = 0, ii = ps.length; i < ii; i += 3) { + drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]); + } + + break; + + default: + throw new Error('illegal figure'); + } + } + + function createMeshCanvas(bounds, combinesScale, coords, colors, figures, backgroundColor, cachedCanvases, webGLContext) { + var EXPECTED_SCALE = 1.1; + var MAX_PATTERN_SIZE = 3000; + var BORDER_SIZE = 2; + var offsetX = Math.floor(bounds[0]); + var offsetY = Math.floor(bounds[1]); + var boundsWidth = Math.ceil(bounds[2]) - offsetX; + var boundsHeight = Math.ceil(bounds[3]) - offsetY; + var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); + var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); + var scaleX = boundsWidth / width; + var scaleY = boundsHeight / height; + var context = { + coords: coords, + colors: colors, + offsetX: -offsetX, + offsetY: -offsetY, + scaleX: 1 / scaleX, + scaleY: 1 / scaleY + }; + var paddedWidth = width + BORDER_SIZE * 2; + var paddedHeight = height + BORDER_SIZE * 2; + var canvas, tmpCanvas, i, ii; + + if (webGLContext.isEnabled) { + canvas = webGLContext.drawFigures({ + width: width, + height: height, + backgroundColor: backgroundColor, + figures: figures, + context: context + }); + tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false); + tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE); + canvas = tmpCanvas.canvas; + } else { + tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false); + var tmpCtx = tmpCanvas.context; + var data = tmpCtx.createImageData(width, height); + + if (backgroundColor) { + var bytes = data.data; + + for (i = 0, ii = bytes.length; i < ii; i += 4) { + bytes[i] = backgroundColor[0]; + bytes[i + 1] = backgroundColor[1]; + bytes[i + 2] = backgroundColor[2]; + bytes[i + 3] = 255; + } + } + + for (i = 0; i < figures.length; i++) { + drawFigure(data, figures[i], context); + } + + tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE); + canvas = tmpCanvas.canvas; + } + + return { + canvas: canvas, + offsetX: offsetX - BORDER_SIZE * scaleX, + offsetY: offsetY - BORDER_SIZE * scaleY, + scaleX: scaleX, + scaleY: scaleY + }; + } + + return createMeshCanvas; +}(); + +ShadingIRs.Mesh = { + fromIR: function Mesh_fromIR(raw) { + var coords = raw[2]; + var colors = raw[3]; + var figures = raw[4]; + var bounds = raw[5]; + var matrix = raw[6]; + var background = raw[8]; + return { + type: 'Pattern', + getPattern: function Mesh_getPattern(ctx, owner, shadingFill) { + var scale; + + if (shadingFill) { + scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform); + } else { + scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform); + + if (matrix) { + var matrixScale = _util.Util.singularValueDecompose2dScale(matrix); + + scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]]; + } + } + + var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords, colors, figures, shadingFill ? null : background, owner.cachedCanvases, owner.webGLContext); + + if (!shadingFill) { + ctx.setTransform.apply(ctx, owner.baseTransform); + + if (matrix) { + ctx.transform.apply(ctx, matrix); + } + } + + ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY); + ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY); + return ctx.createPattern(temporaryPatternCanvas.canvas, 'no-repeat'); + } + }; + } +}; +ShadingIRs.Dummy = { + fromIR: function Dummy_fromIR() { + return { + type: 'Pattern', + getPattern: function Dummy_fromIR_getPattern() { + return 'hotpink'; + } + }; + } +}; + +function getShadingPatternFromIR(raw) { + var shadingIR = ShadingIRs[raw[0]]; + + if (!shadingIR) { + throw new Error("Unknown IR type: ".concat(raw[0])); + } + + return shadingIR.fromIR(raw); +} + +var TilingPattern = function TilingPatternClosure() { + var PaintType = { + COLORED: 1, + UNCOLORED: 2 + }; + var MAX_PATTERN_SIZE = 3000; + + function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) { + this.operatorList = IR[2]; + this.matrix = IR[3] || [1, 0, 0, 1, 0, 0]; + this.bbox = IR[4]; + this.xstep = IR[5]; + this.ystep = IR[6]; + this.paintType = IR[7]; + this.tilingType = IR[8]; + this.color = color; + this.canvasGraphicsFactory = canvasGraphicsFactory; + this.baseTransform = baseTransform; + this.type = 'Pattern'; + this.ctx = ctx; + } + + TilingPattern.prototype = { + createPatternCanvas: function TilinPattern_createPatternCanvas(owner) { + var operatorList = this.operatorList; + var bbox = this.bbox; + var xstep = this.xstep; + var ystep = this.ystep; + var paintType = this.paintType; + var tilingType = this.tilingType; + var color = this.color; + var canvasGraphicsFactory = this.canvasGraphicsFactory; + (0, _util.info)('TilingType: ' + tilingType); + var x0 = bbox[0], + y0 = bbox[1], + x1 = bbox[2], + y1 = bbox[3]; + + var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix); + + var curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform); + + var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]]; + var dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]); + var dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]); + var tmpCanvas = owner.cachedCanvases.getCanvas('pattern', dimx.size, dimy.size, true); + var tmpCtx = tmpCanvas.context; + var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx); + graphics.groupLevel = owner.groupLevel; + this.setFillAndStrokeStyleToContext(graphics, paintType, color); + graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0); + graphics.transform(1, 0, 0, 1, -x0, -y0); + this.clipBbox(graphics, bbox, x0, y0, x1, y1); + graphics.executeOperatorList(operatorList); + this.ctx.transform(1, 0, 0, 1, x0, y0); + this.ctx.scale(1 / dimx.scale, 1 / dimy.scale); + return tmpCanvas.canvas; + }, + getSizeAndScale: function TilingPattern_getSizeAndScale(step, realOutputSize, scale) { + step = Math.abs(step); + var maxSize = Math.max(MAX_PATTERN_SIZE, realOutputSize); + var size = Math.ceil(step * scale); + + if (size >= maxSize) { + size = maxSize; + } else { + scale = size / step; + } + + return { + scale: scale, + size: size + }; + }, + clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) { + if (Array.isArray(bbox) && bbox.length === 4) { + var bboxWidth = x1 - x0; + var bboxHeight = y1 - y0; + graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight); + graphics.clip(); + graphics.endPath(); + } + }, + setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(graphics, paintType, color) { + var context = graphics.ctx, + current = graphics.current; + + switch (paintType) { + case PaintType.COLORED: + var ctx = this.ctx; + context.fillStyle = ctx.fillStyle; + context.strokeStyle = ctx.strokeStyle; + current.fillColor = ctx.fillStyle; + current.strokeColor = ctx.strokeStyle; + break; + + case PaintType.UNCOLORED: + var cssColor = _util.Util.makeCssRgb(color[0], color[1], color[2]); + + context.fillStyle = cssColor; + context.strokeStyle = cssColor; + current.fillColor = cssColor; + current.strokeColor = cssColor; + break; + + default: + throw new _util.FormatError("Unsupported paint type: ".concat(paintType)); + } + }, + getPattern: function TilingPattern_getPattern(ctx, owner) { + ctx = this.ctx; + ctx.setTransform.apply(ctx, this.baseTransform); + ctx.transform.apply(ctx, this.matrix); + var temporaryPatternCanvas = this.createPatternCanvas(owner); + return ctx.createPattern(temporaryPatternCanvas, 'repeat'); + } + }; + return TilingPattern; +}(); + +exports.TilingPattern = TilingPattern; + +/***/ }), +/* 156 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.GlobalWorkerOptions = void 0; +var GlobalWorkerOptions = Object.create(null); +exports.GlobalWorkerOptions = GlobalWorkerOptions; +GlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort; +GlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? '' : GlobalWorkerOptions.workerSrc; + +/***/ }), +/* 157 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.MessageHandler = MessageHandler; + +var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); + +var _util = __w_pdfjs_require__(1); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function resolveCall(_x, _x2) { + return _resolveCall.apply(this, arguments); +} + +function _resolveCall() { + _resolveCall = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee(fn, args) { + var thisArg, + _args = arguments; + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + thisArg = _args.length > 2 && _args[2] !== undefined ? _args[2] : null; + + if (fn) { + _context.next = 3; + break; + } + + return _context.abrupt("return", undefined); + + case 3: + return _context.abrupt("return", fn.apply(thisArg, args)); + + case 4: + case "end": + return _context.stop(); + } + } + }, _callee); + })); + return _resolveCall.apply(this, arguments); +} + +function wrapReason(reason) { + if (_typeof(reason) !== 'object') { + return reason; + } + + switch (reason.name) { + case 'AbortException': + return new _util.AbortException(reason.message); + + case 'MissingPDFException': + return new _util.MissingPDFException(reason.message); + + case 'UnexpectedResponseException': + return new _util.UnexpectedResponseException(reason.message, reason.status); + + default: + return new _util.UnknownErrorException(reason.message, reason.details); + } +} + +function makeReasonSerializable(reason) { + if (!(reason instanceof Error) || reason instanceof _util.AbortException || reason instanceof _util.MissingPDFException || reason instanceof _util.UnexpectedResponseException || reason instanceof _util.UnknownErrorException) { + return reason; + } + + return new _util.UnknownErrorException(reason.message, reason.toString()); +} + +function resolveOrReject(capability, success, reason) { + if (success) { + capability.resolve(); + } else { + capability.reject(reason); + } +} + +function finalize(promise) { + return Promise.resolve(promise)["catch"](function () {}); +} + +function MessageHandler(sourceName, targetName, comObj) { + var _this = this; + + this.sourceName = sourceName; + this.targetName = targetName; + this.comObj = comObj; + this.callbackId = 1; + this.streamId = 1; + this.postMessageTransfers = true; + this.streamSinks = Object.create(null); + this.streamControllers = Object.create(null); + var callbacksCapabilities = this.callbacksCapabilities = Object.create(null); + var ah = this.actionHandler = Object.create(null); + + this._onComObjOnMessage = function (event) { + var data = event.data; + + if (data.targetName !== _this.sourceName) { + return; + } + + if (data.stream) { + _this._processStreamMessage(data); + } else if (data.isReply) { + var callbackId = data.callbackId; + + if (data.callbackId in callbacksCapabilities) { + var callback = callbacksCapabilities[callbackId]; + delete callbacksCapabilities[callbackId]; + + if ('error' in data) { + callback.reject(wrapReason(data.error)); + } else { + callback.resolve(data.data); + } + } else { + throw new Error("Cannot resolve callback ".concat(callbackId)); + } + } else if (data.action in ah) { + var action = ah[data.action]; + + if (data.callbackId) { + var _sourceName = _this.sourceName; + var _targetName = data.sourceName; + Promise.resolve().then(function () { + return action[0].call(action[1], data.data); + }).then(function (result) { + comObj.postMessage({ + sourceName: _sourceName, + targetName: _targetName, + isReply: true, + callbackId: data.callbackId, + data: result + }); + }, function (reason) { + comObj.postMessage({ + sourceName: _sourceName, + targetName: _targetName, + isReply: true, + callbackId: data.callbackId, + error: makeReasonSerializable(reason) + }); + }); + } else if (data.streamId) { + _this._createStreamSink(data); + } else { + action[0].call(action[1], data.data); + } + } else { + throw new Error("Unknown action from worker: ".concat(data.action)); + } + }; + + comObj.addEventListener('message', this._onComObjOnMessage); +} + +MessageHandler.prototype = { + on: function on(actionName, handler, scope) { + var ah = this.actionHandler; + + if (ah[actionName]) { + throw new Error("There is already an actionName called \"".concat(actionName, "\"")); + } + + ah[actionName] = [handler, scope]; + }, + send: function send(actionName, data, transfers) { + var message = { + sourceName: this.sourceName, + targetName: this.targetName, + action: actionName, + data: data + }; + this.postMessage(message, transfers); + }, + sendWithPromise: function sendWithPromise(actionName, data, transfers) { + var callbackId = this.callbackId++; + var message = { + sourceName: this.sourceName, + targetName: this.targetName, + action: actionName, + data: data, + callbackId: callbackId + }; + var capability = (0, _util.createPromiseCapability)(); + this.callbacksCapabilities[callbackId] = capability; + + try { + this.postMessage(message, transfers); + } catch (e) { + capability.reject(e); + } + + return capability.promise; + }, + sendWithStream: function sendWithStream(actionName, data, queueingStrategy, transfers) { + var _this2 = this; + + var streamId = this.streamId++; + var sourceName = this.sourceName; + var targetName = this.targetName; + return new _util.ReadableStream({ + start: function start(controller) { + var startCapability = (0, _util.createPromiseCapability)(); + _this2.streamControllers[streamId] = { + controller: controller, + startCall: startCapability, + isClosed: false + }; + + _this2.postMessage({ + sourceName: sourceName, + targetName: targetName, + action: actionName, + streamId: streamId, + data: data, + desiredSize: controller.desiredSize + }); + + return startCapability.promise; + }, + pull: function pull(controller) { + var pullCapability = (0, _util.createPromiseCapability)(); + _this2.streamControllers[streamId].pullCall = pullCapability; + + _this2.postMessage({ + sourceName: sourceName, + targetName: targetName, + stream: 'pull', + streamId: streamId, + desiredSize: controller.desiredSize + }); + + return pullCapability.promise; + }, + cancel: function cancel(reason) { + var cancelCapability = (0, _util.createPromiseCapability)(); + _this2.streamControllers[streamId].cancelCall = cancelCapability; + _this2.streamControllers[streamId].isClosed = true; + + _this2.postMessage({ + sourceName: sourceName, + targetName: targetName, + stream: 'cancel', + reason: reason, + streamId: streamId + }); + + return cancelCapability.promise; + } + }, queueingStrategy); + }, + _createStreamSink: function _createStreamSink(data) { + var _this3 = this; + + var self = this; + var action = this.actionHandler[data.action]; + var streamId = data.streamId; + var desiredSize = data.desiredSize; + var sourceName = this.sourceName; + var targetName = data.sourceName; + var capability = (0, _util.createPromiseCapability)(); + + var sendStreamRequest = function sendStreamRequest(_ref) { + var stream = _ref.stream, + chunk = _ref.chunk, + transfers = _ref.transfers, + success = _ref.success, + reason = _ref.reason; + + _this3.postMessage({ + sourceName: sourceName, + targetName: targetName, + stream: stream, + streamId: streamId, + chunk: chunk, + success: success, + reason: reason + }, transfers); + }; + + var streamSink = { + enqueue: function enqueue(chunk) { + var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; + var transfers = arguments.length > 2 ? arguments[2] : undefined; + + if (this.isCancelled) { + return; + } + + var lastDesiredSize = this.desiredSize; + this.desiredSize -= size; + + if (lastDesiredSize > 0 && this.desiredSize <= 0) { + this.sinkCapability = (0, _util.createPromiseCapability)(); + this.ready = this.sinkCapability.promise; + } + + sendStreamRequest({ + stream: 'enqueue', + chunk: chunk, + transfers: transfers + }); + }, + close: function close() { + if (this.isCancelled) { + return; + } + + this.isCancelled = true; + sendStreamRequest({ + stream: 'close' + }); + delete self.streamSinks[streamId]; + }, + error: function error(reason) { + if (this.isCancelled) { + return; + } + + this.isCancelled = true; + sendStreamRequest({ + stream: 'error', + reason: reason + }); + }, + sinkCapability: capability, + onPull: null, + onCancel: null, + isCancelled: false, + desiredSize: desiredSize, + ready: null + }; + streamSink.sinkCapability.resolve(); + streamSink.ready = streamSink.sinkCapability.promise; + this.streamSinks[streamId] = streamSink; + resolveCall(action[0], [data.data, streamSink], action[1]).then(function () { + sendStreamRequest({ + stream: 'start_complete', + success: true + }); + }, function (reason) { + sendStreamRequest({ + stream: 'start_complete', + success: false, + reason: reason + }); + }); + }, + _processStreamMessage: function _processStreamMessage(data) { + var _this4 = this; + + var sourceName = this.sourceName; + var targetName = data.sourceName; + var streamId = data.streamId; + + var sendStreamResponse = function sendStreamResponse(_ref2) { + var stream = _ref2.stream, + success = _ref2.success, + reason = _ref2.reason; + + _this4.comObj.postMessage({ + sourceName: sourceName, + targetName: targetName, + stream: stream, + success: success, + streamId: streamId, + reason: reason + }); + }; + + var deleteStreamController = function deleteStreamController() { + Promise.all([_this4.streamControllers[data.streamId].startCall, _this4.streamControllers[data.streamId].pullCall, _this4.streamControllers[data.streamId].cancelCall].map(function (capability) { + return capability && finalize(capability.promise); + })).then(function () { + delete _this4.streamControllers[data.streamId]; + }); + }; + + switch (data.stream) { + case 'start_complete': + resolveOrReject(this.streamControllers[data.streamId].startCall, data.success, wrapReason(data.reason)); + break; + + case 'pull_complete': + resolveOrReject(this.streamControllers[data.streamId].pullCall, data.success, wrapReason(data.reason)); + break; + + case 'pull': + if (!this.streamSinks[data.streamId]) { + sendStreamResponse({ + stream: 'pull_complete', + success: true + }); + break; + } + + if (this.streamSinks[data.streamId].desiredSize <= 0 && data.desiredSize > 0) { + this.streamSinks[data.streamId].sinkCapability.resolve(); + } + + this.streamSinks[data.streamId].desiredSize = data.desiredSize; + resolveCall(this.streamSinks[data.streamId].onPull).then(function () { + sendStreamResponse({ + stream: 'pull_complete', + success: true + }); + }, function (reason) { + sendStreamResponse({ + stream: 'pull_complete', + success: false, + reason: reason + }); + }); + break; + + case 'enqueue': + (0, _util.assert)(this.streamControllers[data.streamId], 'enqueue should have stream controller'); + + if (!this.streamControllers[data.streamId].isClosed) { + this.streamControllers[data.streamId].controller.enqueue(data.chunk); + } + + break; + + case 'close': + (0, _util.assert)(this.streamControllers[data.streamId], 'close should have stream controller'); + + if (this.streamControllers[data.streamId].isClosed) { + break; + } + + this.streamControllers[data.streamId].isClosed = true; + this.streamControllers[data.streamId].controller.close(); + deleteStreamController(); + break; + + case 'error': + (0, _util.assert)(this.streamControllers[data.streamId], 'error should have stream controller'); + this.streamControllers[data.streamId].controller.error(wrapReason(data.reason)); + deleteStreamController(); + break; + + case 'cancel_complete': + resolveOrReject(this.streamControllers[data.streamId].cancelCall, data.success, wrapReason(data.reason)); + deleteStreamController(); + break; + + case 'cancel': + if (!this.streamSinks[data.streamId]) { + break; + } + + resolveCall(this.streamSinks[data.streamId].onCancel, [wrapReason(data.reason)]).then(function () { + sendStreamResponse({ + stream: 'cancel_complete', + success: true + }); + }, function (reason) { + sendStreamResponse({ + stream: 'cancel_complete', + success: false, + reason: reason + }); + }); + this.streamSinks[data.streamId].sinkCapability.reject(wrapReason(data.reason)); + this.streamSinks[data.streamId].isCancelled = true; + delete this.streamSinks[data.streamId]; + break; + + default: + throw new Error('Unexpected stream case'); + } + }, + postMessage: function postMessage(message, transfers) { + if (transfers && this.postMessageTransfers) { + this.comObj.postMessage(message, transfers); + } else { + this.comObj.postMessage(message); + } + }, + destroy: function destroy() { + this.comObj.removeEventListener('message', this._onComObjOnMessage); + } +}; + +/***/ }), +/* 158 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Metadata = void 0; + +var _util = __w_pdfjs_require__(1); + +var _xml_parser = __w_pdfjs_require__(159); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var Metadata = +/*#__PURE__*/ +function () { + function Metadata(data) { + _classCallCheck(this, Metadata); + + (0, _util.assert)(typeof data === 'string', 'Metadata: input is not a string'); + data = this._repair(data); + var parser = new _xml_parser.SimpleXMLParser(); + var xmlDocument = parser.parseFromString(data); + this._metadata = Object.create(null); + + if (xmlDocument) { + this._parse(xmlDocument); + } + } + + _createClass(Metadata, [{ + key: "_repair", + value: function _repair(data) { + return data.replace(/^([^<]+)/, '').replace(/>\\376\\377([^<]+)/g, function (all, codes) { + var bytes = codes.replace(/\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) { + return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1); + }).replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) { + switch (name) { + case 'amp': + return '&'; + + case 'apos': + return '\''; + + case 'gt': + return '>'; + + case 'lt': + return '<'; + + case 'quot': + return '\"'; + } + + throw new Error("_repair: ".concat(name, " isn't defined.")); + }); + var chars = ''; + + for (var i = 0, ii = bytes.length; i < ii; i += 2) { + var code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1); + + if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) { + chars += String.fromCharCode(code); + } else { + chars += '&#x' + (0x10000 + code).toString(16).substring(1) + ';'; + } + } + + return '>' + chars; + }); + } + }, { + key: "_parse", + value: function _parse(xmlDocument) { + var rdf = xmlDocument.documentElement; + + if (rdf.nodeName.toLowerCase() !== 'rdf:rdf') { + rdf = rdf.firstChild; + + while (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf') { + rdf = rdf.nextSibling; + } + } + + var nodeName = rdf ? rdf.nodeName.toLowerCase() : null; + + if (!rdf || nodeName !== 'rdf:rdf' || !rdf.hasChildNodes()) { + return; + } + + var children = rdf.childNodes; + + for (var i = 0, ii = children.length; i < ii; i++) { + var desc = children[i]; + + if (desc.nodeName.toLowerCase() !== 'rdf:description') { + continue; + } + + for (var j = 0, jj = desc.childNodes.length; j < jj; j++) { + if (desc.childNodes[j].nodeName.toLowerCase() !== '#text') { + var entry = desc.childNodes[j]; + var name = entry.nodeName.toLowerCase(); + this._metadata[name] = entry.textContent.trim(); + } + } + } + } + }, { + key: "get", + value: function get(name) { + var data = this._metadata[name]; + return typeof data !== 'undefined' ? data : null; + } + }, { + key: "getAll", + value: function getAll() { + return this._metadata; + } + }, { + key: "has", + value: function has(name) { + return typeof this._metadata[name] !== 'undefined'; + } + }]); + + return Metadata; +}(); + +exports.Metadata = Metadata; + +/***/ }), +/* 159 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SimpleXMLParser = void 0; + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } + +function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var XMLParserErrorCode = { + NoError: 0, + EndOfDocument: -1, + UnterminatedCdat: -2, + UnterminatedXmlDeclaration: -3, + UnterminatedDoctypeDeclaration: -4, + UnterminatedComment: -5, + MalformedElement: -6, + OutOfMemory: -7, + UnterminatedAttributeValue: -8, + UnterminatedElement: -9, + ElementNeverBegun: -10 +}; + +function isWhitespace(s, index) { + var ch = s[index]; + return ch === ' ' || ch === '\n' || ch === '\r' || ch === '\t'; +} + +function isWhitespaceString(s) { + for (var i = 0, ii = s.length; i < ii; i++) { + if (!isWhitespace(s, i)) { + return false; + } + } + + return true; +} + +var XMLParserBase = +/*#__PURE__*/ +function () { + function XMLParserBase() { + _classCallCheck(this, XMLParserBase); + } + + _createClass(XMLParserBase, [{ + key: "_resolveEntities", + value: function _resolveEntities(s) { + var _this = this; + + return s.replace(/&([^;]+);/g, function (all, entity) { + if (entity.substring(0, 2) === '#x') { + return String.fromCharCode(parseInt(entity.substring(2), 16)); + } else if (entity.substring(0, 1) === '#') { + return String.fromCharCode(parseInt(entity.substring(1), 10)); + } + + switch (entity) { + case 'lt': + return '<'; + + case 'gt': + return '>'; + + case 'amp': + return '&'; + + case 'quot': + return '\"'; + } + + return _this.onResolveEntity(entity); + }); + } + }, { + key: "_parseContent", + value: function _parseContent(s, start) { + var pos = start, + name, + attributes = []; + + function skipWs() { + while (pos < s.length && isWhitespace(s, pos)) { + ++pos; + } + } + + while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') { + ++pos; + } + + name = s.substring(start, pos); + skipWs(); + + while (pos < s.length && s[pos] !== '>' && s[pos] !== '/' && s[pos] !== '?') { + skipWs(); + var attrName = '', + attrValue = ''; + + while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '=') { + attrName += s[pos]; + ++pos; + } + + skipWs(); + + if (s[pos] !== '=') { + return null; + } + + ++pos; + skipWs(); + var attrEndChar = s[pos]; + + if (attrEndChar !== '\"' && attrEndChar !== '\'') { + return null; + } + + var attrEndIndex = s.indexOf(attrEndChar, ++pos); + + if (attrEndIndex < 0) { + return null; + } + + attrValue = s.substring(pos, attrEndIndex); + attributes.push({ + name: attrName, + value: this._resolveEntities(attrValue) + }); + pos = attrEndIndex + 1; + skipWs(); + } + + return { + name: name, + attributes: attributes, + parsed: pos - start + }; + } + }, { + key: "_parseProcessingInstruction", + value: function _parseProcessingInstruction(s, start) { + var pos = start, + name, + value; + + function skipWs() { + while (pos < s.length && isWhitespace(s, pos)) { + ++pos; + } + } + + while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') { + ++pos; + } + + name = s.substring(start, pos); + skipWs(); + var attrStart = pos; + + while (pos < s.length && (s[pos] !== '?' || s[pos + 1] !== '>')) { + ++pos; + } + + value = s.substring(attrStart, pos); + return { + name: name, + value: value, + parsed: pos - start + }; + } + }, { + key: "parseXml", + value: function parseXml(s) { + var i = 0; + + while (i < s.length) { + var ch = s[i]; + var j = i; + + if (ch === '<') { + ++j; + var ch2 = s[j]; + var q = void 0; + + switch (ch2) { + case '/': + ++j; + q = s.indexOf('>', j); + + if (q < 0) { + this.onError(XMLParserErrorCode.UnterminatedElement); + return; + } + + this.onEndElement(s.substring(j, q)); + j = q + 1; + break; + + case '?': + ++j; + + var pi = this._parseProcessingInstruction(s, j); + + if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== '?>') { + this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration); + return; + } + + this.onPi(pi.name, pi.value); + j += pi.parsed + 2; + break; + + case '!': + if (s.substring(j + 1, j + 3) === '--') { + q = s.indexOf('-->', j + 3); + + if (q < 0) { + this.onError(XMLParserErrorCode.UnterminatedComment); + return; + } + + this.onComment(s.substring(j + 3, q)); + j = q + 3; + } else if (s.substring(j + 1, j + 8) === '[CDATA[') { + q = s.indexOf(']]>', j + 8); + + if (q < 0) { + this.onError(XMLParserErrorCode.UnterminatedCdat); + return; + } + + this.onCdata(s.substring(j + 8, q)); + j = q + 3; + } else if (s.substring(j + 1, j + 8) === 'DOCTYPE') { + var q2 = s.indexOf('[', j + 8); + var complexDoctype = false; + q = s.indexOf('>', j + 8); + + if (q < 0) { + this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration); + return; + } + + if (q2 > 0 && q > q2) { + q = s.indexOf(']>', j + 8); + + if (q < 0) { + this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration); + return; + } + + complexDoctype = true; + } + + var doctypeContent = s.substring(j + 8, q + (complexDoctype ? 1 : 0)); + this.onDoctype(doctypeContent); + j = q + (complexDoctype ? 2 : 1); + } else { + this.onError(XMLParserErrorCode.MalformedElement); + return; + } + + break; + + default: + var content = this._parseContent(s, j); + + if (content === null) { + this.onError(XMLParserErrorCode.MalformedElement); + return; + } + + var isClosed = false; + + if (s.substring(j + content.parsed, j + content.parsed + 2) === '/>') { + isClosed = true; + } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== '>') { + this.onError(XMLParserErrorCode.UnterminatedElement); + return; + } + + this.onBeginElement(content.name, content.attributes, isClosed); + j += content.parsed + (isClosed ? 2 : 1); + break; + } + } else { + while (j < s.length && s[j] !== '<') { + j++; + } + + var text = s.substring(i, j); + this.onText(this._resolveEntities(text)); + } + + i = j; + } + } + }, { + key: "onResolveEntity", + value: function onResolveEntity(name) { + return "&".concat(name, ";"); + } + }, { + key: "onPi", + value: function onPi(name, value) {} + }, { + key: "onComment", + value: function onComment(text) {} + }, { + key: "onCdata", + value: function onCdata(text) {} + }, { + key: "onDoctype", + value: function onDoctype(doctypeContent) {} + }, { + key: "onText", + value: function onText(text) {} + }, { + key: "onBeginElement", + value: function onBeginElement(name, attributes, isEmpty) {} + }, { + key: "onEndElement", + value: function onEndElement(name) {} + }, { + key: "onError", + value: function onError(code) {} + }]); + + return XMLParserBase; +}(); + +var SimpleDOMNode = +/*#__PURE__*/ +function () { + function SimpleDOMNode(nodeName, nodeValue) { + _classCallCheck(this, SimpleDOMNode); + + this.nodeName = nodeName; + this.nodeValue = nodeValue; + Object.defineProperty(this, 'parentNode', { + value: null, + writable: true + }); + } + + _createClass(SimpleDOMNode, [{ + key: "hasChildNodes", + value: function hasChildNodes() { + return this.childNodes && this.childNodes.length > 0; + } + }, { + key: "firstChild", + get: function get() { + return this.childNodes && this.childNodes[0]; + } + }, { + key: "nextSibling", + get: function get() { + var childNodes = this.parentNode.childNodes; + + if (!childNodes) { + return undefined; + } + + var index = childNodes.indexOf(this); + + if (index === -1) { + return undefined; + } + + return childNodes[index + 1]; + } + }, { + key: "textContent", + get: function get() { + if (!this.childNodes) { + return this.nodeValue || ''; + } + + return this.childNodes.map(function (child) { + return child.textContent; + }).join(''); + } + }]); + + return SimpleDOMNode; +}(); + +var SimpleXMLParser = +/*#__PURE__*/ +function (_XMLParserBase) { + _inherits(SimpleXMLParser, _XMLParserBase); + + function SimpleXMLParser() { + var _this2; + + _classCallCheck(this, SimpleXMLParser); + + _this2 = _possibleConstructorReturn(this, _getPrototypeOf(SimpleXMLParser).call(this)); + _this2._currentFragment = null; + _this2._stack = null; + _this2._errorCode = XMLParserErrorCode.NoError; + return _this2; + } + + _createClass(SimpleXMLParser, [{ + key: "parseFromString", + value: function parseFromString(data) { + this._currentFragment = []; + this._stack = []; + this._errorCode = XMLParserErrorCode.NoError; + this.parseXml(data); + + if (this._errorCode !== XMLParserErrorCode.NoError) { + return undefined; + } + + var _this$_currentFragmen = _slicedToArray(this._currentFragment, 1), + documentElement = _this$_currentFragmen[0]; + + if (!documentElement) { + return undefined; + } + + return { + documentElement: documentElement + }; + } + }, { + key: "onResolveEntity", + value: function onResolveEntity(name) { + switch (name) { + case 'apos': + return '\''; + } + + return _get(_getPrototypeOf(SimpleXMLParser.prototype), "onResolveEntity", this).call(this, name); + } + }, { + key: "onText", + value: function onText(text) { + if (isWhitespaceString(text)) { + return; + } + + var node = new SimpleDOMNode('#text', text); + + this._currentFragment.push(node); + } + }, { + key: "onCdata", + value: function onCdata(text) { + var node = new SimpleDOMNode('#text', text); + + this._currentFragment.push(node); + } + }, { + key: "onBeginElement", + value: function onBeginElement(name, attributes, isEmpty) { + var node = new SimpleDOMNode(name); + node.childNodes = []; + + this._currentFragment.push(node); + + if (isEmpty) { + return; + } + + this._stack.push(this._currentFragment); + + this._currentFragment = node.childNodes; + } + }, { + key: "onEndElement", + value: function onEndElement(name) { + this._currentFragment = this._stack.pop() || []; + var lastElement = this._currentFragment[this._currentFragment.length - 1]; + + if (!lastElement) { + return; + } + + for (var i = 0, ii = lastElement.childNodes.length; i < ii; i++) { + lastElement.childNodes[i].parentNode = lastElement; + } + } + }, { + key: "onError", + value: function onError(code) { + this._errorCode = code; + } + }]); + + return SimpleXMLParser; +}(XMLParserBase); + +exports.SimpleXMLParser = SimpleXMLParser; + +/***/ }), +/* 160 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFDataTransportStream = void 0; + +var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); + +var _util = __w_pdfjs_require__(1); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var PDFDataTransportStream = +/*#__PURE__*/ +function () { + function PDFDataTransportStream(params, pdfDataRangeTransport) { + var _this = this; + + _classCallCheck(this, PDFDataTransportStream); + + (0, _util.assert)(pdfDataRangeTransport); + this._queuedChunks = []; + this._progressiveDone = params.progressiveDone || false; + var initialData = params.initialData; + + if (initialData && initialData.length > 0) { + var buffer = new Uint8Array(initialData).buffer; + + this._queuedChunks.push(buffer); + } + + this._pdfDataRangeTransport = pdfDataRangeTransport; + this._isStreamingSupported = !params.disableStream; + this._isRangeSupported = !params.disableRange; + this._contentLength = params.length; + this._fullRequestReader = null; + this._rangeReaders = []; + + this._pdfDataRangeTransport.addRangeListener(function (begin, chunk) { + _this._onReceiveData({ + begin: begin, + chunk: chunk + }); + }); + + this._pdfDataRangeTransport.addProgressListener(function (loaded, total) { + _this._onProgress({ + loaded: loaded, + total: total + }); + }); + + this._pdfDataRangeTransport.addProgressiveReadListener(function (chunk) { + _this._onReceiveData({ + chunk: chunk + }); + }); + + this._pdfDataRangeTransport.addProgressiveDoneListener(function () { + _this._onProgressiveDone(); + }); + + this._pdfDataRangeTransport.transportReady(); + } + + _createClass(PDFDataTransportStream, [{ + key: "_onReceiveData", + value: function _onReceiveData(args) { + var buffer = new Uint8Array(args.chunk).buffer; + + if (args.begin === undefined) { + if (this._fullRequestReader) { + this._fullRequestReader._enqueue(buffer); + } else { + this._queuedChunks.push(buffer); + } + } else { + var found = this._rangeReaders.some(function (rangeReader) { + if (rangeReader._begin !== args.begin) { + return false; + } + + rangeReader._enqueue(buffer); + + return true; + }); + + (0, _util.assert)(found); + } + } + }, { + key: "_onProgress", + value: function _onProgress(evt) { + if (evt.total === undefined) { + var firstReader = this._rangeReaders[0]; + + if (firstReader && firstReader.onProgress) { + firstReader.onProgress({ + loaded: evt.loaded + }); + } + } else { + var fullReader = this._fullRequestReader; + + if (fullReader && fullReader.onProgress) { + fullReader.onProgress({ + loaded: evt.loaded, + total: evt.total + }); + } + } + } + }, { + key: "_onProgressiveDone", + value: function _onProgressiveDone() { + if (this._fullRequestReader) { + this._fullRequestReader.progressiveDone(); + } + + this._progressiveDone = true; + } + }, { + key: "_removeRangeReader", + value: function _removeRangeReader(reader) { + var i = this._rangeReaders.indexOf(reader); + + if (i >= 0) { + this._rangeReaders.splice(i, 1); + } + } + }, { + key: "getFullReader", + value: function getFullReader() { + (0, _util.assert)(!this._fullRequestReader); + var queuedChunks = this._queuedChunks; + this._queuedChunks = null; + return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone); + } + }, { + key: "getRangeReader", + value: function getRangeReader(begin, end) { + if (end <= this._progressiveDataLength) { + return null; + } + + var reader = new PDFDataTransportStreamRangeReader(this, begin, end); + + this._pdfDataRangeTransport.requestDataRange(begin, end); + + this._rangeReaders.push(reader); + + return reader; + } + }, { + key: "cancelAllRequests", + value: function cancelAllRequests(reason) { + if (this._fullRequestReader) { + this._fullRequestReader.cancel(reason); + } + + var readers = this._rangeReaders.slice(0); + + readers.forEach(function (rangeReader) { + rangeReader.cancel(reason); + }); + + this._pdfDataRangeTransport.abort(); + } + }, { + key: "_progressiveDataLength", + get: function get() { + return this._fullRequestReader ? this._fullRequestReader._loaded : 0; + } + }]); + + return PDFDataTransportStream; +}(); + +exports.PDFDataTransportStream = PDFDataTransportStream; + +var PDFDataTransportStreamReader = +/*#__PURE__*/ +function () { + function PDFDataTransportStreamReader(stream, queuedChunks) { + var progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + _classCallCheck(this, PDFDataTransportStreamReader); + + this._stream = stream; + this._done = progressiveDone || false; + this._filename = null; + this._queuedChunks = queuedChunks || []; + this._loaded = 0; + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = this._queuedChunks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var chunk = _step.value; + this._loaded += chunk.byteLength; + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator["return"] != null) { + _iterator["return"](); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + this._requests = []; + this._headersReady = Promise.resolve(); + stream._fullRequestReader = this; + this.onProgress = null; + } + + _createClass(PDFDataTransportStreamReader, [{ + key: "_enqueue", + value: function _enqueue(chunk) { + if (this._done) { + return; + } + + if (this._requests.length > 0) { + var requestCapability = this._requests.shift(); + + requestCapability.resolve({ + value: chunk, + done: false + }); + } else { + this._queuedChunks.push(chunk); + } + + this._loaded += chunk.byteLength; + } + }, { + key: "read", + value: function () { + var _read = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee() { + var chunk, requestCapability; + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + if (!(this._queuedChunks.length > 0)) { + _context.next = 3; + break; + } + + chunk = this._queuedChunks.shift(); + return _context.abrupt("return", { + value: chunk, + done: false + }); + + case 3: + if (!this._done) { + _context.next = 5; + break; + } + + return _context.abrupt("return", { + value: undefined, + done: true + }); + + case 5: + requestCapability = (0, _util.createPromiseCapability)(); + + this._requests.push(requestCapability); + + return _context.abrupt("return", requestCapability.promise); + + case 8: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function read() { + return _read.apply(this, arguments); + } + + return read; + }() + }, { + key: "cancel", + value: function cancel(reason) { + this._done = true; + + this._requests.forEach(function (requestCapability) { + requestCapability.resolve({ + value: undefined, + done: true + }); + }); + + this._requests = []; + } + }, { + key: "progressiveDone", + value: function progressiveDone() { + if (this._done) { + return; + } + + this._done = true; + } + }, { + key: "headersReady", + get: function get() { + return this._headersReady; + } + }, { + key: "filename", + get: function get() { + return this._filename; + } + }, { + key: "isRangeSupported", + get: function get() { + return this._stream._isRangeSupported; + } + }, { + key: "isStreamingSupported", + get: function get() { + return this._stream._isStreamingSupported; + } + }, { + key: "contentLength", + get: function get() { + return this._stream._contentLength; + } + }]); + + return PDFDataTransportStreamReader; +}(); + +var PDFDataTransportStreamRangeReader = +/*#__PURE__*/ +function () { + function PDFDataTransportStreamRangeReader(stream, begin, end) { + _classCallCheck(this, PDFDataTransportStreamRangeReader); + + this._stream = stream; + this._begin = begin; + this._end = end; + this._queuedChunk = null; + this._requests = []; + this._done = false; + this.onProgress = null; + } + + _createClass(PDFDataTransportStreamRangeReader, [{ + key: "_enqueue", + value: function _enqueue(chunk) { + if (this._done) { + return; + } + + if (this._requests.length === 0) { + this._queuedChunk = chunk; + } else { + var requestsCapability = this._requests.shift(); + + requestsCapability.resolve({ + value: chunk, + done: false + }); + + this._requests.forEach(function (requestCapability) { + requestCapability.resolve({ + value: undefined, + done: true + }); + }); + + this._requests = []; + } + + this._done = true; + + this._stream._removeRangeReader(this); + } + }, { + key: "read", + value: function () { + var _read2 = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee2() { + var chunk, requestCapability; + return _regenerator["default"].wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + if (!this._queuedChunk) { + _context2.next = 4; + break; + } + + chunk = this._queuedChunk; + this._queuedChunk = null; + return _context2.abrupt("return", { + value: chunk, + done: false + }); + + case 4: + if (!this._done) { + _context2.next = 6; + break; + } + + return _context2.abrupt("return", { + value: undefined, + done: true + }); + + case 6: + requestCapability = (0, _util.createPromiseCapability)(); + + this._requests.push(requestCapability); + + return _context2.abrupt("return", requestCapability.promise); + + case 9: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + function read() { + return _read2.apply(this, arguments); + } + + return read; + }() + }, { + key: "cancel", + value: function cancel(reason) { + this._done = true; + + this._requests.forEach(function (requestCapability) { + requestCapability.resolve({ + value: undefined, + done: true + }); + }); + + this._requests = []; + + this._stream._removeRangeReader(this); + } + }, { + key: "isStreamingSupported", + get: function get() { + return false; + } + }]); + + return PDFDataTransportStreamRangeReader; +}(); + +/***/ }), +/* 161 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.WebGLContext = void 0; + +var _util = __w_pdfjs_require__(1); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var WebGLContext = +/*#__PURE__*/ +function () { + function WebGLContext(_ref) { + var _ref$enable = _ref.enable, + enable = _ref$enable === void 0 ? false : _ref$enable; + + _classCallCheck(this, WebGLContext); + + this._enabled = enable === true; + } + + _createClass(WebGLContext, [{ + key: "composeSMask", + value: function composeSMask(_ref2) { + var layer = _ref2.layer, + mask = _ref2.mask, + properties = _ref2.properties; + return WebGLUtils.composeSMask(layer, mask, properties); + } + }, { + key: "drawFigures", + value: function drawFigures(_ref3) { + var width = _ref3.width, + height = _ref3.height, + backgroundColor = _ref3.backgroundColor, + figures = _ref3.figures, + context = _ref3.context; + return WebGLUtils.drawFigures(width, height, backgroundColor, figures, context); + } + }, { + key: "clear", + value: function clear() { + WebGLUtils.cleanup(); + } + }, { + key: "isEnabled", + get: function get() { + var enabled = this._enabled; + + if (enabled) { + enabled = WebGLUtils.tryInitGL(); + } + + return (0, _util.shadow)(this, 'isEnabled', enabled); + } + }]); + + return WebGLContext; +}(); + +exports.WebGLContext = WebGLContext; + +var WebGLUtils = function WebGLUtilsClosure() { + function loadShader(gl, code, shaderType) { + var shader = gl.createShader(shaderType); + gl.shaderSource(shader, code); + gl.compileShader(shader); + var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS); + + if (!compiled) { + var errorMsg = gl.getShaderInfoLog(shader); + throw new Error('Error during shader compilation: ' + errorMsg); + } + + return shader; + } + + function createVertexShader(gl, code) { + return loadShader(gl, code, gl.VERTEX_SHADER); + } + + function createFragmentShader(gl, code) { + return loadShader(gl, code, gl.FRAGMENT_SHADER); + } + + function createProgram(gl, shaders) { + var program = gl.createProgram(); + + for (var i = 0, ii = shaders.length; i < ii; ++i) { + gl.attachShader(program, shaders[i]); + } + + gl.linkProgram(program); + var linked = gl.getProgramParameter(program, gl.LINK_STATUS); + + if (!linked) { + var errorMsg = gl.getProgramInfoLog(program); + throw new Error('Error during program linking: ' + errorMsg); + } + + return program; + } + + function createTexture(gl, image, textureId) { + gl.activeTexture(textureId); + var texture = gl.createTexture(); + gl.bindTexture(gl.TEXTURE_2D, texture); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); + gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image); + return texture; + } + + var currentGL, currentCanvas; + + function generateGL() { + if (currentGL) { + return; + } + + currentCanvas = document.createElement('canvas'); + currentGL = currentCanvas.getContext('webgl', { + premultipliedalpha: false + }); + } + + var smaskVertexShaderCode = '\ + attribute vec2 a_position; \ + attribute vec2 a_texCoord; \ + \ + uniform vec2 u_resolution; \ + \ + varying vec2 v_texCoord; \ + \ + void main() { \ + vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0; \ + gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \ + \ + v_texCoord = a_texCoord; \ + } '; + var smaskFragmentShaderCode = '\ + precision mediump float; \ + \ + uniform vec4 u_backdrop; \ + uniform int u_subtype; \ + uniform sampler2D u_image; \ + uniform sampler2D u_mask; \ + \ + varying vec2 v_texCoord; \ + \ + void main() { \ + vec4 imageColor = texture2D(u_image, v_texCoord); \ + vec4 maskColor = texture2D(u_mask, v_texCoord); \ + if (u_backdrop.a > 0.0) { \ + maskColor.rgb = maskColor.rgb * maskColor.a + \ + u_backdrop.rgb * (1.0 - maskColor.a); \ + } \ + float lum; \ + if (u_subtype == 0) { \ + lum = maskColor.a; \ + } else { \ + lum = maskColor.r * 0.3 + maskColor.g * 0.59 + \ + maskColor.b * 0.11; \ + } \ + imageColor.a *= lum; \ + imageColor.rgb *= imageColor.a; \ + gl_FragColor = imageColor; \ + } '; + var smaskCache = null; + + function initSmaskGL() { + var canvas, gl; + generateGL(); + canvas = currentCanvas; + currentCanvas = null; + gl = currentGL; + currentGL = null; + var vertexShader = createVertexShader(gl, smaskVertexShaderCode); + var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode); + var program = createProgram(gl, [vertexShader, fragmentShader]); + gl.useProgram(program); + var cache = {}; + cache.gl = gl; + cache.canvas = canvas; + cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution'); + cache.positionLocation = gl.getAttribLocation(program, 'a_position'); + cache.backdropLocation = gl.getUniformLocation(program, 'u_backdrop'); + cache.subtypeLocation = gl.getUniformLocation(program, 'u_subtype'); + var texCoordLocation = gl.getAttribLocation(program, 'a_texCoord'); + var texLayerLocation = gl.getUniformLocation(program, 'u_image'); + var texMaskLocation = gl.getUniformLocation(program, 'u_mask'); + var texCoordBuffer = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer); + gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0]), gl.STATIC_DRAW); + gl.enableVertexAttribArray(texCoordLocation); + gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0); + gl.uniform1i(texLayerLocation, 0); + gl.uniform1i(texMaskLocation, 1); + smaskCache = cache; + } + + function composeSMask(layer, mask, properties) { + var width = layer.width, + height = layer.height; + + if (!smaskCache) { + initSmaskGL(); + } + + var cache = smaskCache, + canvas = cache.canvas, + gl = cache.gl; + canvas.width = width; + canvas.height = height; + gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); + gl.uniform2f(cache.resolutionLocation, width, height); + + if (properties.backdrop) { + gl.uniform4f(cache.resolutionLocation, properties.backdrop[0], properties.backdrop[1], properties.backdrop[2], 1); + } else { + gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0); + } + + gl.uniform1i(cache.subtypeLocation, properties.subtype === 'Luminosity' ? 1 : 0); + var texture = createTexture(gl, layer, gl.TEXTURE0); + var maskTexture = createTexture(gl, mask, gl.TEXTURE1); + var buffer = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, buffer); + gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0, 0, width, 0, 0, height, 0, height, width, 0, width, height]), gl.STATIC_DRAW); + gl.enableVertexAttribArray(cache.positionLocation); + gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0); + gl.clearColor(0, 0, 0, 0); + gl.enable(gl.BLEND); + gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA); + gl.clear(gl.COLOR_BUFFER_BIT); + gl.drawArrays(gl.TRIANGLES, 0, 6); + gl.flush(); + gl.deleteTexture(texture); + gl.deleteTexture(maskTexture); + gl.deleteBuffer(buffer); + return canvas; + } + + var figuresVertexShaderCode = '\ + attribute vec2 a_position; \ + attribute vec3 a_color; \ + \ + uniform vec2 u_resolution; \ + uniform vec2 u_scale; \ + uniform vec2 u_offset; \ + \ + varying vec4 v_color; \ + \ + void main() { \ + vec2 position = (a_position + u_offset) * u_scale; \ + vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0; \ + gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \ + \ + v_color = vec4(a_color / 255.0, 1.0); \ + } '; + var figuresFragmentShaderCode = '\ + precision mediump float; \ + \ + varying vec4 v_color; \ + \ + void main() { \ + gl_FragColor = v_color; \ + } '; + var figuresCache = null; + + function initFiguresGL() { + var canvas, gl; + generateGL(); + canvas = currentCanvas; + currentCanvas = null; + gl = currentGL; + currentGL = null; + var vertexShader = createVertexShader(gl, figuresVertexShaderCode); + var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode); + var program = createProgram(gl, [vertexShader, fragmentShader]); + gl.useProgram(program); + var cache = {}; + cache.gl = gl; + cache.canvas = canvas; + cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution'); + cache.scaleLocation = gl.getUniformLocation(program, 'u_scale'); + cache.offsetLocation = gl.getUniformLocation(program, 'u_offset'); + cache.positionLocation = gl.getAttribLocation(program, 'a_position'); + cache.colorLocation = gl.getAttribLocation(program, 'a_color'); + figuresCache = cache; + } + + function drawFigures(width, height, backgroundColor, figures, context) { + if (!figuresCache) { + initFiguresGL(); + } + + var cache = figuresCache, + canvas = cache.canvas, + gl = cache.gl; + canvas.width = width; + canvas.height = height; + gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); + gl.uniform2f(cache.resolutionLocation, width, height); + var count = 0; + var i, ii, rows; + + for (i = 0, ii = figures.length; i < ii; i++) { + switch (figures[i].type) { + case 'lattice': + rows = figures[i].coords.length / figures[i].verticesPerRow | 0; + count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6; + break; + + case 'triangles': + count += figures[i].coords.length; + break; + } + } + + var coords = new Float32Array(count * 2); + var colors = new Uint8Array(count * 3); + var coordsMap = context.coords, + colorsMap = context.colors; + var pIndex = 0, + cIndex = 0; + + for (i = 0, ii = figures.length; i < ii; i++) { + var figure = figures[i], + ps = figure.coords, + cs = figure.colors; + + switch (figure.type) { + case 'lattice': + var cols = figure.verticesPerRow; + rows = ps.length / cols | 0; + + for (var row = 1; row < rows; row++) { + var offset = row * cols + 1; + + for (var col = 1; col < cols; col++, offset++) { + coords[pIndex] = coordsMap[ps[offset - cols - 1]]; + coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1]; + coords[pIndex + 2] = coordsMap[ps[offset - cols]]; + coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1]; + coords[pIndex + 4] = coordsMap[ps[offset - 1]]; + coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1]; + colors[cIndex] = colorsMap[cs[offset - cols - 1]]; + colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1]; + colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2]; + colors[cIndex + 3] = colorsMap[cs[offset - cols]]; + colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1]; + colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2]; + colors[cIndex + 6] = colorsMap[cs[offset - 1]]; + colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1]; + colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2]; + coords[pIndex + 6] = coords[pIndex + 2]; + coords[pIndex + 7] = coords[pIndex + 3]; + coords[pIndex + 8] = coords[pIndex + 4]; + coords[pIndex + 9] = coords[pIndex + 5]; + coords[pIndex + 10] = coordsMap[ps[offset]]; + coords[pIndex + 11] = coordsMap[ps[offset] + 1]; + colors[cIndex + 9] = colors[cIndex + 3]; + colors[cIndex + 10] = colors[cIndex + 4]; + colors[cIndex + 11] = colors[cIndex + 5]; + colors[cIndex + 12] = colors[cIndex + 6]; + colors[cIndex + 13] = colors[cIndex + 7]; + colors[cIndex + 14] = colors[cIndex + 8]; + colors[cIndex + 15] = colorsMap[cs[offset]]; + colors[cIndex + 16] = colorsMap[cs[offset] + 1]; + colors[cIndex + 17] = colorsMap[cs[offset] + 2]; + pIndex += 12; + cIndex += 18; + } + } + + break; + + case 'triangles': + for (var j = 0, jj = ps.length; j < jj; j++) { + coords[pIndex] = coordsMap[ps[j]]; + coords[pIndex + 1] = coordsMap[ps[j] + 1]; + colors[cIndex] = colorsMap[cs[j]]; + colors[cIndex + 1] = colorsMap[cs[j] + 1]; + colors[cIndex + 2] = colorsMap[cs[j] + 2]; + pIndex += 2; + cIndex += 3; + } + + break; + } + } + + if (backgroundColor) { + gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, backgroundColor[2] / 255, 1.0); + } else { + gl.clearColor(0, 0, 0, 0); + } + + gl.clear(gl.COLOR_BUFFER_BIT); + var coordsBuffer = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer); + gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW); + gl.enableVertexAttribArray(cache.positionLocation); + gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0); + var colorsBuffer = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer); + gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW); + gl.enableVertexAttribArray(cache.colorLocation); + gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false, 0, 0); + gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY); + gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY); + gl.drawArrays(gl.TRIANGLES, 0, count); + gl.flush(); + gl.deleteBuffer(coordsBuffer); + gl.deleteBuffer(colorsBuffer); + return canvas; + } + + return { + tryInitGL: function tryInitGL() { + try { + generateGL(); + return !!currentGL; + } catch (ex) {} + + return false; + }, + composeSMask: composeSMask, + drawFigures: drawFigures, + cleanup: function cleanup() { + if (smaskCache && smaskCache.canvas) { + smaskCache.canvas.width = 0; + smaskCache.canvas.height = 0; + } + + if (figuresCache && figuresCache.canvas) { + figuresCache.canvas.width = 0; + figuresCache.canvas.height = 0; + } + + smaskCache = null; + figuresCache = null; + } + }; +}(); + +/***/ }), +/* 162 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.renderTextLayer = void 0; + +var _util = __w_pdfjs_require__(1); + +var _global_scope = _interopRequireDefault(__w_pdfjs_require__(3)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +var renderTextLayer = function renderTextLayerClosure() { + var MAX_TEXT_DIVS_TO_RENDER = 100000; + var NonWhitespaceRegexp = /\S/; + + function isAllWhitespace(str) { + return !NonWhitespaceRegexp.test(str); + } + + var styleBuf = ['left: ', 0, 'px; top: ', 0, 'px; font-size: ', 0, 'px; font-family: ', '', ';']; + + function appendText(task, geom, styles) { + var textDiv = document.createElement('span'); + var textDivProperties = { + style: null, + angle: 0, + canvasWidth: 0, + isWhitespace: false, + originalTransform: null, + paddingBottom: 0, + paddingLeft: 0, + paddingRight: 0, + paddingTop: 0, + scale: 1 + }; + + task._textDivs.push(textDiv); + + if (isAllWhitespace(geom.str)) { + textDivProperties.isWhitespace = true; + + task._textDivProperties.set(textDiv, textDivProperties); + + return; + } + + var tx = _util.Util.transform(task._viewport.transform, geom.transform); + + var angle = Math.atan2(tx[1], tx[0]); + var style = styles[geom.fontName]; + + if (style.vertical) { + angle += Math.PI / 2; + } + + var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]); + var fontAscent = fontHeight; + + if (style.ascent) { + fontAscent = style.ascent * fontAscent; + } else if (style.descent) { + fontAscent = (1 + style.descent) * fontAscent; + } + + var left; + var top; + + if (angle === 0) { + left = tx[4]; + top = tx[5] - fontAscent; + } else { + left = tx[4] + fontAscent * Math.sin(angle); + top = tx[5] - fontAscent * Math.cos(angle); + } + + styleBuf[1] = left; + styleBuf[3] = top; + styleBuf[5] = fontHeight; + styleBuf[7] = style.fontFamily; + textDivProperties.style = styleBuf.join(''); + textDiv.setAttribute('style', textDivProperties.style); + textDiv.textContent = geom.str; + + if (task._fontInspectorEnabled) { + textDiv.dataset.fontName = geom.fontName; + } + + if (angle !== 0) { + textDivProperties.angle = angle * (180 / Math.PI); + } + + if (geom.str.length > 1) { + if (style.vertical) { + textDivProperties.canvasWidth = geom.height * task._viewport.scale; + } else { + textDivProperties.canvasWidth = geom.width * task._viewport.scale; + } + } + + task._textDivProperties.set(textDiv, textDivProperties); + + if (task._textContentStream) { + task._layoutText(textDiv); + } + + if (task._enhanceTextSelection) { + var angleCos = 1, + angleSin = 0; + + if (angle !== 0) { + angleCos = Math.cos(angle); + angleSin = Math.sin(angle); + } + + var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale; + var divHeight = fontHeight; + var m, b; + + if (angle !== 0) { + m = [angleCos, angleSin, -angleSin, angleCos, left, top]; + b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m); + } else { + b = [left, top, left + divWidth, top + divHeight]; + } + + task._bounds.push({ + left: b[0], + top: b[1], + right: b[2], + bottom: b[3], + div: textDiv, + size: [divWidth, divHeight], + m: m + }); + } + } + + function render(task) { + if (task._canceled) { + return; + } + + var textDivs = task._textDivs; + var capability = task._capability; + var textDivsLength = textDivs.length; + + if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) { + task._renderingDone = true; + capability.resolve(); + return; + } + + if (!task._textContentStream) { + for (var i = 0; i < textDivsLength; i++) { + task._layoutText(textDivs[i]); + } + } + + task._renderingDone = true; + capability.resolve(); + } + + function expand(task) { + var bounds = task._bounds; + var viewport = task._viewport; + var expanded = expandBounds(viewport.width, viewport.height, bounds); + + for (var i = 0; i < expanded.length; i++) { + var div = bounds[i].div; + + var divProperties = task._textDivProperties.get(div); + + if (divProperties.angle === 0) { + divProperties.paddingLeft = bounds[i].left - expanded[i].left; + divProperties.paddingTop = bounds[i].top - expanded[i].top; + divProperties.paddingRight = expanded[i].right - bounds[i].right; + divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom; + + task._textDivProperties.set(div, divProperties); + + continue; + } + + var e = expanded[i], + b = bounds[i]; + var m = b.m, + c = m[0], + s = m[1]; + var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size]; + var ts = new Float64Array(64); + points.forEach(function (p, i) { + var t = _util.Util.applyTransform(p, m); + + ts[i + 0] = c && (e.left - t[0]) / c; + ts[i + 4] = s && (e.top - t[1]) / s; + ts[i + 8] = c && (e.right - t[0]) / c; + ts[i + 12] = s && (e.bottom - t[1]) / s; + ts[i + 16] = s && (e.left - t[0]) / -s; + ts[i + 20] = c && (e.top - t[1]) / c; + ts[i + 24] = s && (e.right - t[0]) / -s; + ts[i + 28] = c && (e.bottom - t[1]) / c; + ts[i + 32] = c && (e.left - t[0]) / -c; + ts[i + 36] = s && (e.top - t[1]) / -s; + ts[i + 40] = c && (e.right - t[0]) / -c; + ts[i + 44] = s && (e.bottom - t[1]) / -s; + ts[i + 48] = s && (e.left - t[0]) / s; + ts[i + 52] = c && (e.top - t[1]) / -c; + ts[i + 56] = s && (e.right - t[0]) / s; + ts[i + 60] = c && (e.bottom - t[1]) / -c; + }); + + var findPositiveMin = function findPositiveMin(ts, offset, count) { + var result = 0; + + for (var i = 0; i < count; i++) { + var t = ts[offset++]; + + if (t > 0) { + result = result ? Math.min(t, result) : t; + } + } + + return result; + }; + + var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s)); + divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale; + divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale; + divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale; + divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale; + + task._textDivProperties.set(div, divProperties); + } + } + + function expandBounds(width, height, boxes) { + var bounds = boxes.map(function (box, i) { + return { + x1: box.left, + y1: box.top, + x2: box.right, + y2: box.bottom, + index: i, + x1New: undefined, + x2New: undefined + }; + }); + expandBoundsLTR(width, bounds); + var expanded = new Array(boxes.length); + bounds.forEach(function (b) { + var i = b.index; + expanded[i] = { + left: b.x1New, + top: 0, + right: b.x2New, + bottom: 0 + }; + }); + boxes.map(function (box, i) { + var e = expanded[i], + b = bounds[i]; + b.x1 = box.top; + b.y1 = width - e.right; + b.x2 = box.bottom; + b.y2 = width - e.left; + b.index = i; + b.x1New = undefined; + b.x2New = undefined; + }); + expandBoundsLTR(height, bounds); + bounds.forEach(function (b) { + var i = b.index; + expanded[i].top = b.x1New; + expanded[i].bottom = b.x2New; + }); + return expanded; + } + + function expandBoundsLTR(width, bounds) { + bounds.sort(function (a, b) { + return a.x1 - b.x1 || a.index - b.index; + }); + var fakeBoundary = { + x1: -Infinity, + y1: -Infinity, + x2: 0, + y2: Infinity, + index: -1, + x1New: 0, + x2New: 0 + }; + var horizon = [{ + start: -Infinity, + end: Infinity, + boundary: fakeBoundary + }]; + bounds.forEach(function (boundary) { + var i = 0; + + while (i < horizon.length && horizon[i].end <= boundary.y1) { + i++; + } + + var j = horizon.length - 1; + + while (j >= 0 && horizon[j].start >= boundary.y2) { + j--; + } + + var horizonPart, affectedBoundary; + var q, + k, + maxXNew = -Infinity; + + for (q = i; q <= j; q++) { + horizonPart = horizon[q]; + affectedBoundary = horizonPart.boundary; + var xNew; + + if (affectedBoundary.x2 > boundary.x1) { + xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1; + } else if (affectedBoundary.x2New === undefined) { + xNew = (affectedBoundary.x2 + boundary.x1) / 2; + } else { + xNew = affectedBoundary.x2New; + } + + if (xNew > maxXNew) { + maxXNew = xNew; + } + } + + boundary.x1New = maxXNew; + + for (q = i; q <= j; q++) { + horizonPart = horizon[q]; + affectedBoundary = horizonPart.boundary; + + if (affectedBoundary.x2New === undefined) { + if (affectedBoundary.x2 > boundary.x1) { + if (affectedBoundary.index > boundary.index) { + affectedBoundary.x2New = affectedBoundary.x2; + } + } else { + affectedBoundary.x2New = maxXNew; + } + } else if (affectedBoundary.x2New > maxXNew) { + affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2); + } + } + + var changedHorizon = [], + lastBoundary = null; + + for (q = i; q <= j; q++) { + horizonPart = horizon[q]; + affectedBoundary = horizonPart.boundary; + var useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary; + + if (lastBoundary === useBoundary) { + changedHorizon[changedHorizon.length - 1].end = horizonPart.end; + } else { + changedHorizon.push({ + start: horizonPart.start, + end: horizonPart.end, + boundary: useBoundary + }); + lastBoundary = useBoundary; + } + } + + if (horizon[i].start < boundary.y1) { + changedHorizon[0].start = boundary.y1; + changedHorizon.unshift({ + start: horizon[i].start, + end: boundary.y1, + boundary: horizon[i].boundary + }); + } + + if (boundary.y2 < horizon[j].end) { + changedHorizon[changedHorizon.length - 1].end = boundary.y2; + changedHorizon.push({ + start: boundary.y2, + end: horizon[j].end, + boundary: horizon[j].boundary + }); + } + + for (q = i; q <= j; q++) { + horizonPart = horizon[q]; + affectedBoundary = horizonPart.boundary; + + if (affectedBoundary.x2New !== undefined) { + continue; + } + + var used = false; + + for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) { + used = horizon[k].boundary === affectedBoundary; + } + + for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) { + used = horizon[k].boundary === affectedBoundary; + } + + for (k = 0; !used && k < changedHorizon.length; k++) { + used = changedHorizon[k].boundary === affectedBoundary; + } + + if (!used) { + affectedBoundary.x2New = maxXNew; + } + } + + Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon)); + }); + horizon.forEach(function (horizonPart) { + var affectedBoundary = horizonPart.boundary; + + if (affectedBoundary.x2New === undefined) { + affectedBoundary.x2New = Math.max(width, affectedBoundary.x2); + } + }); + } + + function TextLayerRenderTask(_ref) { + var _this = this; + + var textContent = _ref.textContent, + textContentStream = _ref.textContentStream, + container = _ref.container, + viewport = _ref.viewport, + textDivs = _ref.textDivs, + textContentItemsStr = _ref.textContentItemsStr, + enhanceTextSelection = _ref.enhanceTextSelection; + this._textContent = textContent; + this._textContentStream = textContentStream; + this._container = container; + this._viewport = viewport; + this._textDivs = textDivs || []; + this._textContentItemsStr = textContentItemsStr || []; + this._enhanceTextSelection = !!enhanceTextSelection; + this._fontInspectorEnabled = !!(_global_scope["default"].FontInspector && _global_scope["default"].FontInspector.enabled); + this._reader = null; + this._layoutTextLastFontSize = null; + this._layoutTextLastFontFamily = null; + this._layoutTextCtx = null; + this._textDivProperties = new WeakMap(); + this._renderingDone = false; + this._canceled = false; + this._capability = (0, _util.createPromiseCapability)(); + this._renderTimer = null; + this._bounds = []; + + this._capability.promise["finally"](function () { + if (_this._layoutTextCtx) { + _this._layoutTextCtx.canvas.width = 0; + _this._layoutTextCtx.canvas.height = 0; + _this._layoutTextCtx = null; + } + }); + } + + TextLayerRenderTask.prototype = { + get promise() { + return this._capability.promise; + }, + + cancel: function TextLayer_cancel() { + this._canceled = true; + + if (this._reader) { + this._reader.cancel(new _util.AbortException('TextLayer task cancelled.')); + + this._reader = null; + } + + if (this._renderTimer !== null) { + clearTimeout(this._renderTimer); + this._renderTimer = null; + } + + this._capability.reject(new Error('TextLayer task cancelled.')); + }, + _processItems: function _processItems(items, styleCache) { + for (var i = 0, len = items.length; i < len; i++) { + this._textContentItemsStr.push(items[i].str); + + appendText(this, items[i], styleCache); + } + }, + _layoutText: function _layoutText(textDiv) { + var textLayerFrag = this._container; + + var textDivProperties = this._textDivProperties.get(textDiv); + + if (textDivProperties.isWhitespace) { + return; + } + + var fontSize = textDiv.style.fontSize; + var fontFamily = textDiv.style.fontFamily; + + if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) { + this._layoutTextCtx.font = fontSize + ' ' + fontFamily; + this._layoutTextLastFontSize = fontSize; + this._layoutTextLastFontFamily = fontFamily; + } + + var width = this._layoutTextCtx.measureText(textDiv.textContent).width; + + var transform = ''; + + if (textDivProperties.canvasWidth !== 0 && width > 0) { + textDivProperties.scale = textDivProperties.canvasWidth / width; + transform = "scaleX(".concat(textDivProperties.scale, ")"); + } + + if (textDivProperties.angle !== 0) { + transform = "rotate(".concat(textDivProperties.angle, "deg) ").concat(transform); + } + + if (transform.length > 0) { + textDivProperties.originalTransform = transform; + textDiv.style.transform = transform; + } + + this._textDivProperties.set(textDiv, textDivProperties); + + textLayerFrag.appendChild(textDiv); + }, + _render: function TextLayer_render(timeout) { + var _this2 = this; + + var capability = (0, _util.createPromiseCapability)(); + var styleCache = Object.create(null); + var canvas = document.createElement('canvas'); + canvas.mozOpaque = true; + this._layoutTextCtx = canvas.getContext('2d', { + alpha: false + }); + + if (this._textContent) { + var textItems = this._textContent.items; + var textStyles = this._textContent.styles; + + this._processItems(textItems, textStyles); + + capability.resolve(); + } else if (this._textContentStream) { + var pump = function pump() { + _this2._reader.read().then(function (_ref2) { + var value = _ref2.value, + done = _ref2.done; + + if (done) { + capability.resolve(); + return; + } + + Object.assign(styleCache, value.styles); + + _this2._processItems(value.items, styleCache); + + pump(); + }, capability.reject); + }; + + this._reader = this._textContentStream.getReader(); + pump(); + } else { + throw new Error('Neither "textContent" nor "textContentStream"' + ' parameters specified.'); + } + + capability.promise.then(function () { + styleCache = null; + + if (!timeout) { + render(_this2); + } else { + _this2._renderTimer = setTimeout(function () { + render(_this2); + _this2._renderTimer = null; + }, timeout); + } + }, this._capability.reject); + }, + expandTextDivs: function TextLayer_expandTextDivs(expandDivs) { + if (!this._enhanceTextSelection || !this._renderingDone) { + return; + } + + if (this._bounds !== null) { + expand(this); + this._bounds = null; + } + + for (var i = 0, ii = this._textDivs.length; i < ii; i++) { + var div = this._textDivs[i]; + + var divProperties = this._textDivProperties.get(div); + + if (divProperties.isWhitespace) { + continue; + } + + if (expandDivs) { + var transform = '', + padding = ''; + + if (divProperties.scale !== 1) { + transform = 'scaleX(' + divProperties.scale + ')'; + } + + if (divProperties.angle !== 0) { + transform = 'rotate(' + divProperties.angle + 'deg) ' + transform; + } + + if (divProperties.paddingLeft !== 0) { + padding += ' padding-left: ' + divProperties.paddingLeft / divProperties.scale + 'px;'; + transform += ' translateX(' + -divProperties.paddingLeft / divProperties.scale + 'px)'; + } + + if (divProperties.paddingTop !== 0) { + padding += ' padding-top: ' + divProperties.paddingTop + 'px;'; + transform += ' translateY(' + -divProperties.paddingTop + 'px)'; + } + + if (divProperties.paddingRight !== 0) { + padding += ' padding-right: ' + divProperties.paddingRight / divProperties.scale + 'px;'; + } + + if (divProperties.paddingBottom !== 0) { + padding += ' padding-bottom: ' + divProperties.paddingBottom + 'px;'; + } + + if (padding !== '') { + div.setAttribute('style', divProperties.style + padding); + } + + if (transform !== '') { + div.style.transform = transform; + } + } else { + div.style.padding = 0; + div.style.transform = divProperties.originalTransform || ''; + } + } + } + }; + + function renderTextLayer(renderParameters) { + var task = new TextLayerRenderTask({ + textContent: renderParameters.textContent, + textContentStream: renderParameters.textContentStream, + container: renderParameters.container, + viewport: renderParameters.viewport, + textDivs: renderParameters.textDivs, + textContentItemsStr: renderParameters.textContentItemsStr, + enhanceTextSelection: renderParameters.enhanceTextSelection + }); + + task._render(renderParameters.timeout); + + return task; + } + + return renderTextLayer; +}(); + +exports.renderTextLayer = renderTextLayer; + +/***/ }), +/* 163 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.AnnotationLayer = void 0; + +var _display_utils = __w_pdfjs_require__(151); + +var _util = __w_pdfjs_require__(1); + +function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var AnnotationElementFactory = +/*#__PURE__*/ +function () { + function AnnotationElementFactory() { + _classCallCheck(this, AnnotationElementFactory); + } + + _createClass(AnnotationElementFactory, null, [{ + key: "create", + value: function create(parameters) { + var subtype = parameters.data.annotationType; + + switch (subtype) { + case _util.AnnotationType.LINK: + return new LinkAnnotationElement(parameters); + + case _util.AnnotationType.TEXT: + return new TextAnnotationElement(parameters); + + case _util.AnnotationType.WIDGET: + var fieldType = parameters.data.fieldType; + + switch (fieldType) { + case 'Tx': + return new TextWidgetAnnotationElement(parameters); + + case 'Btn': + if (parameters.data.radioButton) { + return new RadioButtonWidgetAnnotationElement(parameters); + } else if (parameters.data.checkBox) { + return new CheckboxWidgetAnnotationElement(parameters); + } + + return new PushButtonWidgetAnnotationElement(parameters); + + case 'Ch': + return new ChoiceWidgetAnnotationElement(parameters); + } + + return new WidgetAnnotationElement(parameters); + + case _util.AnnotationType.POPUP: + return new PopupAnnotationElement(parameters); + + case _util.AnnotationType.FREETEXT: + return new FreeTextAnnotationElement(parameters); + + case _util.AnnotationType.LINE: + return new LineAnnotationElement(parameters); + + case _util.AnnotationType.SQUARE: + return new SquareAnnotationElement(parameters); + + case _util.AnnotationType.CIRCLE: + return new CircleAnnotationElement(parameters); + + case _util.AnnotationType.POLYLINE: + return new PolylineAnnotationElement(parameters); + + case _util.AnnotationType.CARET: + return new CaretAnnotationElement(parameters); + + case _util.AnnotationType.INK: + return new InkAnnotationElement(parameters); + + case _util.AnnotationType.POLYGON: + return new PolygonAnnotationElement(parameters); + + case _util.AnnotationType.HIGHLIGHT: + return new HighlightAnnotationElement(parameters); + + case _util.AnnotationType.UNDERLINE: + return new UnderlineAnnotationElement(parameters); + + case _util.AnnotationType.SQUIGGLY: + return new SquigglyAnnotationElement(parameters); + + case _util.AnnotationType.STRIKEOUT: + return new StrikeOutAnnotationElement(parameters); + + case _util.AnnotationType.STAMP: + return new StampAnnotationElement(parameters); + + case _util.AnnotationType.FILEATTACHMENT: + return new FileAttachmentAnnotationElement(parameters); + + default: + return new AnnotationElement(parameters); + } + } + }]); + + return AnnotationElementFactory; +}(); + +var AnnotationElement = +/*#__PURE__*/ +function () { + function AnnotationElement(parameters) { + var isRenderable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var ignoreBorder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + _classCallCheck(this, AnnotationElement); + + this.isRenderable = isRenderable; + this.data = parameters.data; + this.layer = parameters.layer; + this.page = parameters.page; + this.viewport = parameters.viewport; + this.linkService = parameters.linkService; + this.downloadManager = parameters.downloadManager; + this.imageResourcesPath = parameters.imageResourcesPath; + this.renderInteractiveForms = parameters.renderInteractiveForms; + this.svgFactory = parameters.svgFactory; + + if (isRenderable) { + this.container = this._createContainer(ignoreBorder); + } + } + + _createClass(AnnotationElement, [{ + key: "_createContainer", + value: function _createContainer() { + var ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + var data = this.data, + page = this.page, + viewport = this.viewport; + var container = document.createElement('section'); + var width = data.rect[2] - data.rect[0]; + var height = data.rect[3] - data.rect[1]; + container.setAttribute('data-annotation-id', data.id); + + var rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]); + + container.style.transform = 'matrix(' + viewport.transform.join(',') + ')'; + container.style.transformOrigin = -rect[0] + 'px ' + -rect[1] + 'px'; + + if (!ignoreBorder && data.borderStyle.width > 0) { + container.style.borderWidth = data.borderStyle.width + 'px'; + + if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) { + width = width - 2 * data.borderStyle.width; + height = height - 2 * data.borderStyle.width; + } + + var horizontalRadius = data.borderStyle.horizontalCornerRadius; + var verticalRadius = data.borderStyle.verticalCornerRadius; + + if (horizontalRadius > 0 || verticalRadius > 0) { + var radius = horizontalRadius + 'px / ' + verticalRadius + 'px'; + container.style.borderRadius = radius; + } + + switch (data.borderStyle.style) { + case _util.AnnotationBorderStyleType.SOLID: + container.style.borderStyle = 'solid'; + break; + + case _util.AnnotationBorderStyleType.DASHED: + container.style.borderStyle = 'dashed'; + break; + + case _util.AnnotationBorderStyleType.BEVELED: + (0, _util.warn)('Unimplemented border style: beveled'); + break; + + case _util.AnnotationBorderStyleType.INSET: + (0, _util.warn)('Unimplemented border style: inset'); + break; + + case _util.AnnotationBorderStyleType.UNDERLINE: + container.style.borderBottomStyle = 'solid'; + break; + + default: + break; + } + + if (data.color) { + container.style.borderColor = _util.Util.makeCssRgb(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0); + } else { + container.style.borderWidth = 0; + } + } + + container.style.left = rect[0] + 'px'; + container.style.top = rect[1] + 'px'; + container.style.width = width + 'px'; + container.style.height = height + 'px'; + return container; + } + }, { + key: "_createPopup", + value: function _createPopup(container, trigger, data) { + if (!trigger) { + trigger = document.createElement('div'); + trigger.style.height = container.style.height; + trigger.style.width = container.style.width; + container.appendChild(trigger); + } + + var popupElement = new PopupElement({ + container: container, + trigger: trigger, + color: data.color, + title: data.title, + modificationDate: data.modificationDate, + contents: data.contents, + hideWrapper: true + }); + var popup = popupElement.render(); + popup.style.left = container.style.width; + container.appendChild(popup); + } + }, { + key: "render", + value: function render() { + (0, _util.unreachable)('Abstract method `AnnotationElement.render` called'); + } + }]); + + return AnnotationElement; +}(); + +var LinkAnnotationElement = +/*#__PURE__*/ +function (_AnnotationElement) { + _inherits(LinkAnnotationElement, _AnnotationElement); + + function LinkAnnotationElement(parameters) { + _classCallCheck(this, LinkAnnotationElement); + + var isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action); + return _possibleConstructorReturn(this, _getPrototypeOf(LinkAnnotationElement).call(this, parameters, isRenderable)); + } + + _createClass(LinkAnnotationElement, [{ + key: "render", + value: function render() { + this.container.className = 'linkAnnotation'; + var data = this.data, + linkService = this.linkService; + var link = document.createElement('a'); + (0, _display_utils.addLinkAttributes)(link, { + url: data.url, + target: data.newWindow ? _display_utils.LinkTarget.BLANK : linkService.externalLinkTarget, + rel: linkService.externalLinkRel + }); + + if (!data.url) { + if (data.action) { + this._bindNamedAction(link, data.action); + } else { + this._bindLink(link, data.dest); + } + } + + this.container.appendChild(link); + return this.container; + } + }, { + key: "_bindLink", + value: function _bindLink(link, destination) { + var _this = this; + + link.href = this.linkService.getDestinationHash(destination); + + link.onclick = function () { + if (destination) { + _this.linkService.navigateTo(destination); + } + + return false; + }; + + if (destination) { + link.className = 'internalLink'; + } + } + }, { + key: "_bindNamedAction", + value: function _bindNamedAction(link, action) { + var _this2 = this; + + link.href = this.linkService.getAnchorUrl(''); + + link.onclick = function () { + _this2.linkService.executeNamedAction(action); + + return false; + }; + + link.className = 'internalLink'; + } + }]); + + return LinkAnnotationElement; +}(AnnotationElement); + +var TextAnnotationElement = +/*#__PURE__*/ +function (_AnnotationElement2) { + _inherits(TextAnnotationElement, _AnnotationElement2); + + function TextAnnotationElement(parameters) { + _classCallCheck(this, TextAnnotationElement); + + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + return _possibleConstructorReturn(this, _getPrototypeOf(TextAnnotationElement).call(this, parameters, isRenderable)); + } + + _createClass(TextAnnotationElement, [{ + key: "render", + value: function render() { + this.container.className = 'textAnnotation'; + var image = document.createElement('img'); + image.style.height = this.container.style.height; + image.style.width = this.container.style.width; + image.src = this.imageResourcesPath + 'annotation-' + this.data.name.toLowerCase() + '.svg'; + image.alt = '[{{type}} Annotation]'; + image.dataset.l10nId = 'text_annotation_type'; + image.dataset.l10nArgs = JSON.stringify({ + type: this.data.name + }); + + if (!this.data.hasPopup) { + this._createPopup(this.container, image, this.data); + } + + this.container.appendChild(image); + return this.container; + } + }]); + + return TextAnnotationElement; +}(AnnotationElement); + +var WidgetAnnotationElement = +/*#__PURE__*/ +function (_AnnotationElement3) { + _inherits(WidgetAnnotationElement, _AnnotationElement3); + + function WidgetAnnotationElement() { + _classCallCheck(this, WidgetAnnotationElement); + + return _possibleConstructorReturn(this, _getPrototypeOf(WidgetAnnotationElement).apply(this, arguments)); + } + + _createClass(WidgetAnnotationElement, [{ + key: "render", + value: function render() { + return this.container; + } + }]); + + return WidgetAnnotationElement; +}(AnnotationElement); + +var TextWidgetAnnotationElement = +/*#__PURE__*/ +function (_WidgetAnnotationElem) { + _inherits(TextWidgetAnnotationElement, _WidgetAnnotationElem); + + function TextWidgetAnnotationElement(parameters) { + _classCallCheck(this, TextWidgetAnnotationElement); + + var isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue; + return _possibleConstructorReturn(this, _getPrototypeOf(TextWidgetAnnotationElement).call(this, parameters, isRenderable)); + } + + _createClass(TextWidgetAnnotationElement, [{ + key: "render", + value: function render() { + var TEXT_ALIGNMENT = ['left', 'center', 'right']; + this.container.className = 'textWidgetAnnotation'; + var element = null; + + if (this.renderInteractiveForms) { + if (this.data.multiLine) { + element = document.createElement('textarea'); + element.textContent = this.data.fieldValue; + } else { + element = document.createElement('input'); + element.type = 'text'; + element.setAttribute('value', this.data.fieldValue); + } + + element.disabled = this.data.readOnly; + + if (this.data.maxLen !== null) { + element.maxLength = this.data.maxLen; + } + + if (this.data.comb) { + var fieldWidth = this.data.rect[2] - this.data.rect[0]; + var combWidth = fieldWidth / this.data.maxLen; + element.classList.add('comb'); + element.style.letterSpacing = 'calc(' + combWidth + 'px - 1ch)'; + } + } else { + element = document.createElement('div'); + element.textContent = this.data.fieldValue; + element.style.verticalAlign = 'middle'; + element.style.display = 'table-cell'; + var font = null; + + if (this.data.fontRefName && this.page.commonObjs.has(this.data.fontRefName)) { + font = this.page.commonObjs.get(this.data.fontRefName); + } + + this._setTextStyle(element, font); + } + + if (this.data.textAlignment !== null) { + element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment]; + } + + this.container.appendChild(element); + return this.container; + } + }, { + key: "_setTextStyle", + value: function _setTextStyle(element, font) { + var style = element.style; + style.fontSize = this.data.fontSize + 'px'; + style.direction = this.data.fontDirection < 0 ? 'rtl' : 'ltr'; + + if (!font) { + return; + } + + style.fontWeight = font.black ? font.bold ? '900' : 'bold' : font.bold ? 'bold' : 'normal'; + style.fontStyle = font.italic ? 'italic' : 'normal'; + var fontFamily = font.loadedName ? '"' + font.loadedName + '", ' : ''; + var fallbackName = font.fallbackName || 'Helvetica, sans-serif'; + style.fontFamily = fontFamily + fallbackName; + } + }]); + + return TextWidgetAnnotationElement; +}(WidgetAnnotationElement); + +var CheckboxWidgetAnnotationElement = +/*#__PURE__*/ +function (_WidgetAnnotationElem2) { + _inherits(CheckboxWidgetAnnotationElement, _WidgetAnnotationElem2); + + function CheckboxWidgetAnnotationElement(parameters) { + _classCallCheck(this, CheckboxWidgetAnnotationElement); + + return _possibleConstructorReturn(this, _getPrototypeOf(CheckboxWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms)); + } + + _createClass(CheckboxWidgetAnnotationElement, [{ + key: "render", + value: function render() { + this.container.className = 'buttonWidgetAnnotation checkBox'; + var element = document.createElement('input'); + element.disabled = this.data.readOnly; + element.type = 'checkbox'; + + if (this.data.fieldValue && this.data.fieldValue !== 'Off') { + element.setAttribute('checked', true); + } + + this.container.appendChild(element); + return this.container; + } + }]); + + return CheckboxWidgetAnnotationElement; +}(WidgetAnnotationElement); + +var RadioButtonWidgetAnnotationElement = +/*#__PURE__*/ +function (_WidgetAnnotationElem3) { + _inherits(RadioButtonWidgetAnnotationElement, _WidgetAnnotationElem3); + + function RadioButtonWidgetAnnotationElement(parameters) { + _classCallCheck(this, RadioButtonWidgetAnnotationElement); + + return _possibleConstructorReturn(this, _getPrototypeOf(RadioButtonWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms)); + } + + _createClass(RadioButtonWidgetAnnotationElement, [{ + key: "render", + value: function render() { + this.container.className = 'buttonWidgetAnnotation radioButton'; + var element = document.createElement('input'); + element.disabled = this.data.readOnly; + element.type = 'radio'; + element.name = this.data.fieldName; + + if (this.data.fieldValue === this.data.buttonValue) { + element.setAttribute('checked', true); + } + + this.container.appendChild(element); + return this.container; + } + }]); + + return RadioButtonWidgetAnnotationElement; +}(WidgetAnnotationElement); + +var PushButtonWidgetAnnotationElement = +/*#__PURE__*/ +function (_LinkAnnotationElemen) { + _inherits(PushButtonWidgetAnnotationElement, _LinkAnnotationElemen); + + function PushButtonWidgetAnnotationElement() { + _classCallCheck(this, PushButtonWidgetAnnotationElement); + + return _possibleConstructorReturn(this, _getPrototypeOf(PushButtonWidgetAnnotationElement).apply(this, arguments)); + } + + _createClass(PushButtonWidgetAnnotationElement, [{ + key: "render", + value: function render() { + var container = _get(_getPrototypeOf(PushButtonWidgetAnnotationElement.prototype), "render", this).call(this); + + container.className = 'buttonWidgetAnnotation pushButton'; + return container; + } + }]); + + return PushButtonWidgetAnnotationElement; +}(LinkAnnotationElement); + +var ChoiceWidgetAnnotationElement = +/*#__PURE__*/ +function (_WidgetAnnotationElem4) { + _inherits(ChoiceWidgetAnnotationElement, _WidgetAnnotationElem4); + + function ChoiceWidgetAnnotationElement(parameters) { + _classCallCheck(this, ChoiceWidgetAnnotationElement); + + return _possibleConstructorReturn(this, _getPrototypeOf(ChoiceWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms)); + } + + _createClass(ChoiceWidgetAnnotationElement, [{ + key: "render", + value: function render() { + this.container.className = 'choiceWidgetAnnotation'; + var selectElement = document.createElement('select'); + selectElement.disabled = this.data.readOnly; + + if (!this.data.combo) { + selectElement.size = this.data.options.length; + + if (this.data.multiSelect) { + selectElement.multiple = true; + } + } + + for (var i = 0, ii = this.data.options.length; i < ii; i++) { + var option = this.data.options[i]; + var optionElement = document.createElement('option'); + optionElement.textContent = option.displayValue; + optionElement.value = option.exportValue; + + if (this.data.fieldValue.includes(option.displayValue)) { + optionElement.setAttribute('selected', true); + } + + selectElement.appendChild(optionElement); + } + + this.container.appendChild(selectElement); + return this.container; + } + }]); + + return ChoiceWidgetAnnotationElement; +}(WidgetAnnotationElement); + +var PopupAnnotationElement = +/*#__PURE__*/ +function (_AnnotationElement4) { + _inherits(PopupAnnotationElement, _AnnotationElement4); + + function PopupAnnotationElement(parameters) { + _classCallCheck(this, PopupAnnotationElement); + + var isRenderable = !!(parameters.data.title || parameters.data.contents); + return _possibleConstructorReturn(this, _getPrototypeOf(PopupAnnotationElement).call(this, parameters, isRenderable)); + } + + _createClass(PopupAnnotationElement, [{ + key: "render", + value: function render() { + var IGNORE_TYPES = ['Line', 'Square', 'Circle', 'PolyLine', 'Polygon', 'Ink']; + this.container.className = 'popupAnnotation'; + + if (IGNORE_TYPES.includes(this.data.parentType)) { + return this.container; + } + + var selector = '[data-annotation-id="' + this.data.parentId + '"]'; + var parentElement = this.layer.querySelector(selector); + + if (!parentElement) { + return this.container; + } + + var popup = new PopupElement({ + container: this.container, + trigger: parentElement, + color: this.data.color, + title: this.data.title, + modificationDate: this.data.modificationDate, + contents: this.data.contents + }); + var parentLeft = parseFloat(parentElement.style.left); + var parentWidth = parseFloat(parentElement.style.width); + this.container.style.transformOrigin = -(parentLeft + parentWidth) + 'px -' + parentElement.style.top; + this.container.style.left = parentLeft + parentWidth + 'px'; + this.container.appendChild(popup.render()); + return this.container; + } + }]); + + return PopupAnnotationElement; +}(AnnotationElement); + +var PopupElement = +/*#__PURE__*/ +function () { + function PopupElement(parameters) { + _classCallCheck(this, PopupElement); + + this.container = parameters.container; + this.trigger = parameters.trigger; + this.color = parameters.color; + this.title = parameters.title; + this.modificationDate = parameters.modificationDate; + this.contents = parameters.contents; + this.hideWrapper = parameters.hideWrapper || false; + this.pinned = false; + } + + _createClass(PopupElement, [{ + key: "render", + value: function render() { + var BACKGROUND_ENLIGHT = 0.7; + var wrapper = document.createElement('div'); + wrapper.className = 'popupWrapper'; + this.hideElement = this.hideWrapper ? wrapper : this.container; + this.hideElement.setAttribute('hidden', true); + var popup = document.createElement('div'); + popup.className = 'popup'; + var color = this.color; + + if (color) { + var r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0]; + var g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1]; + var b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2]; + popup.style.backgroundColor = _util.Util.makeCssRgb(r | 0, g | 0, b | 0); + } + + var title = document.createElement('h1'); + title.textContent = this.title; + popup.appendChild(title); + + var dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate); + + if (dateObject) { + var modificationDate = document.createElement('span'); + modificationDate.textContent = '{{date}}, {{time}}'; + modificationDate.dataset.l10nId = 'annotation_date_string'; + modificationDate.dataset.l10nArgs = JSON.stringify({ + date: dateObject.toLocaleDateString(), + time: dateObject.toLocaleTimeString() + }); + popup.appendChild(modificationDate); + } + + var contents = this._formatContents(this.contents); + + popup.appendChild(contents); + this.trigger.addEventListener('click', this._toggle.bind(this)); + this.trigger.addEventListener('mouseover', this._show.bind(this, false)); + this.trigger.addEventListener('mouseout', this._hide.bind(this, false)); + popup.addEventListener('click', this._hide.bind(this, true)); + wrapper.appendChild(popup); + return wrapper; + } + }, { + key: "_formatContents", + value: function _formatContents(contents) { + var p = document.createElement('p'); + var lines = contents.split(/(?:\r\n?|\n)/); + + for (var i = 0, ii = lines.length; i < ii; ++i) { + var line = lines[i]; + p.appendChild(document.createTextNode(line)); + + if (i < ii - 1) { + p.appendChild(document.createElement('br')); + } + } + + return p; + } + }, { + key: "_toggle", + value: function _toggle() { + if (this.pinned) { + this._hide(true); + } else { + this._show(true); + } + } + }, { + key: "_show", + value: function _show() { + var pin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + + if (pin) { + this.pinned = true; + } + + if (this.hideElement.hasAttribute('hidden')) { + this.hideElement.removeAttribute('hidden'); + this.container.style.zIndex += 1; + } + } + }, { + key: "_hide", + value: function _hide() { + var unpin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + + if (unpin) { + this.pinned = false; + } + + if (!this.hideElement.hasAttribute('hidden') && !this.pinned) { + this.hideElement.setAttribute('hidden', true); + this.container.style.zIndex -= 1; + } + } + }]); + + return PopupElement; +}(); + +var FreeTextAnnotationElement = +/*#__PURE__*/ +function (_AnnotationElement5) { + _inherits(FreeTextAnnotationElement, _AnnotationElement5); + + function FreeTextAnnotationElement(parameters) { + _classCallCheck(this, FreeTextAnnotationElement); + + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + return _possibleConstructorReturn(this, _getPrototypeOf(FreeTextAnnotationElement).call(this, parameters, isRenderable, true)); + } + + _createClass(FreeTextAnnotationElement, [{ + key: "render", + value: function render() { + this.container.className = 'freeTextAnnotation'; + + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + + return this.container; + } + }]); + + return FreeTextAnnotationElement; +}(AnnotationElement); + +var LineAnnotationElement = +/*#__PURE__*/ +function (_AnnotationElement6) { + _inherits(LineAnnotationElement, _AnnotationElement6); + + function LineAnnotationElement(parameters) { + _classCallCheck(this, LineAnnotationElement); + + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + return _possibleConstructorReturn(this, _getPrototypeOf(LineAnnotationElement).call(this, parameters, isRenderable, true)); + } + + _createClass(LineAnnotationElement, [{ + key: "render", + value: function render() { + this.container.className = 'lineAnnotation'; + var data = this.data; + var width = data.rect[2] - data.rect[0]; + var height = data.rect[3] - data.rect[1]; + var svg = this.svgFactory.create(width, height); + var line = this.svgFactory.createElement('svg:line'); + line.setAttribute('x1', data.rect[2] - data.lineCoordinates[0]); + line.setAttribute('y1', data.rect[3] - data.lineCoordinates[1]); + line.setAttribute('x2', data.rect[2] - data.lineCoordinates[2]); + line.setAttribute('y2', data.rect[3] - data.lineCoordinates[3]); + line.setAttribute('stroke-width', data.borderStyle.width); + line.setAttribute('stroke', 'transparent'); + svg.appendChild(line); + this.container.append(svg); + + this._createPopup(this.container, line, data); + + return this.container; + } + }]); + + return LineAnnotationElement; +}(AnnotationElement); + +var SquareAnnotationElement = +/*#__PURE__*/ +function (_AnnotationElement7) { + _inherits(SquareAnnotationElement, _AnnotationElement7); + + function SquareAnnotationElement(parameters) { + _classCallCheck(this, SquareAnnotationElement); + + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + return _possibleConstructorReturn(this, _getPrototypeOf(SquareAnnotationElement).call(this, parameters, isRenderable, true)); + } + + _createClass(SquareAnnotationElement, [{ + key: "render", + value: function render() { + this.container.className = 'squareAnnotation'; + var data = this.data; + var width = data.rect[2] - data.rect[0]; + var height = data.rect[3] - data.rect[1]; + var svg = this.svgFactory.create(width, height); + var borderWidth = data.borderStyle.width; + var square = this.svgFactory.createElement('svg:rect'); + square.setAttribute('x', borderWidth / 2); + square.setAttribute('y', borderWidth / 2); + square.setAttribute('width', width - borderWidth); + square.setAttribute('height', height - borderWidth); + square.setAttribute('stroke-width', borderWidth); + square.setAttribute('stroke', 'transparent'); + square.setAttribute('fill', 'none'); + svg.appendChild(square); + this.container.append(svg); + + this._createPopup(this.container, square, data); + + return this.container; + } + }]); + + return SquareAnnotationElement; +}(AnnotationElement); + +var CircleAnnotationElement = +/*#__PURE__*/ +function (_AnnotationElement8) { + _inherits(CircleAnnotationElement, _AnnotationElement8); + + function CircleAnnotationElement(parameters) { + _classCallCheck(this, CircleAnnotationElement); + + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + return _possibleConstructorReturn(this, _getPrototypeOf(CircleAnnotationElement).call(this, parameters, isRenderable, true)); + } + + _createClass(CircleAnnotationElement, [{ + key: "render", + value: function render() { + this.container.className = 'circleAnnotation'; + var data = this.data; + var width = data.rect[2] - data.rect[0]; + var height = data.rect[3] - data.rect[1]; + var svg = this.svgFactory.create(width, height); + var borderWidth = data.borderStyle.width; + var circle = this.svgFactory.createElement('svg:ellipse'); + circle.setAttribute('cx', width / 2); + circle.setAttribute('cy', height / 2); + circle.setAttribute('rx', width / 2 - borderWidth / 2); + circle.setAttribute('ry', height / 2 - borderWidth / 2); + circle.setAttribute('stroke-width', borderWidth); + circle.setAttribute('stroke', 'transparent'); + circle.setAttribute('fill', 'none'); + svg.appendChild(circle); + this.container.append(svg); + + this._createPopup(this.container, circle, data); + + return this.container; + } + }]); + + return CircleAnnotationElement; +}(AnnotationElement); + +var PolylineAnnotationElement = +/*#__PURE__*/ +function (_AnnotationElement9) { + _inherits(PolylineAnnotationElement, _AnnotationElement9); + + function PolylineAnnotationElement(parameters) { + var _this3; + + _classCallCheck(this, PolylineAnnotationElement); + + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + _this3 = _possibleConstructorReturn(this, _getPrototypeOf(PolylineAnnotationElement).call(this, parameters, isRenderable, true)); + _this3.containerClassName = 'polylineAnnotation'; + _this3.svgElementName = 'svg:polyline'; + return _this3; + } + + _createClass(PolylineAnnotationElement, [{ + key: "render", + value: function render() { + this.container.className = this.containerClassName; + var data = this.data; + var width = data.rect[2] - data.rect[0]; + var height = data.rect[3] - data.rect[1]; + var svg = this.svgFactory.create(width, height); + var vertices = data.vertices; + var points = []; + + for (var i = 0, ii = vertices.length; i < ii; i++) { + var x = vertices[i].x - data.rect[0]; + var y = data.rect[3] - vertices[i].y; + points.push(x + ',' + y); + } + + points = points.join(' '); + var borderWidth = data.borderStyle.width; + var polyline = this.svgFactory.createElement(this.svgElementName); + polyline.setAttribute('points', points); + polyline.setAttribute('stroke-width', borderWidth); + polyline.setAttribute('stroke', 'transparent'); + polyline.setAttribute('fill', 'none'); + svg.appendChild(polyline); + this.container.append(svg); + + this._createPopup(this.container, polyline, data); + + return this.container; + } + }]); + + return PolylineAnnotationElement; +}(AnnotationElement); + +var PolygonAnnotationElement = +/*#__PURE__*/ +function (_PolylineAnnotationEl) { + _inherits(PolygonAnnotationElement, _PolylineAnnotationEl); + + function PolygonAnnotationElement(parameters) { + var _this4; + + _classCallCheck(this, PolygonAnnotationElement); + + _this4 = _possibleConstructorReturn(this, _getPrototypeOf(PolygonAnnotationElement).call(this, parameters)); + _this4.containerClassName = 'polygonAnnotation'; + _this4.svgElementName = 'svg:polygon'; + return _this4; + } + + return PolygonAnnotationElement; +}(PolylineAnnotationElement); + +var CaretAnnotationElement = +/*#__PURE__*/ +function (_AnnotationElement10) { + _inherits(CaretAnnotationElement, _AnnotationElement10); + + function CaretAnnotationElement(parameters) { + _classCallCheck(this, CaretAnnotationElement); + + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + return _possibleConstructorReturn(this, _getPrototypeOf(CaretAnnotationElement).call(this, parameters, isRenderable, true)); + } + + _createClass(CaretAnnotationElement, [{ + key: "render", + value: function render() { + this.container.className = 'caretAnnotation'; + + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + + return this.container; + } + }]); + + return CaretAnnotationElement; +}(AnnotationElement); + +var InkAnnotationElement = +/*#__PURE__*/ +function (_AnnotationElement11) { + _inherits(InkAnnotationElement, _AnnotationElement11); + + function InkAnnotationElement(parameters) { + var _this5; + + _classCallCheck(this, InkAnnotationElement); + + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + _this5 = _possibleConstructorReturn(this, _getPrototypeOf(InkAnnotationElement).call(this, parameters, isRenderable, true)); + _this5.containerClassName = 'inkAnnotation'; + _this5.svgElementName = 'svg:polyline'; + return _this5; + } + + _createClass(InkAnnotationElement, [{ + key: "render", + value: function render() { + this.container.className = this.containerClassName; + var data = this.data; + var width = data.rect[2] - data.rect[0]; + var height = data.rect[3] - data.rect[1]; + var svg = this.svgFactory.create(width, height); + var inkLists = data.inkLists; + + for (var i = 0, ii = inkLists.length; i < ii; i++) { + var inkList = inkLists[i]; + var points = []; + + for (var j = 0, jj = inkList.length; j < jj; j++) { + var x = inkList[j].x - data.rect[0]; + var y = data.rect[3] - inkList[j].y; + points.push(x + ',' + y); + } + + points = points.join(' '); + var borderWidth = data.borderStyle.width; + var polyline = this.svgFactory.createElement(this.svgElementName); + polyline.setAttribute('points', points); + polyline.setAttribute('stroke-width', borderWidth); + polyline.setAttribute('stroke', 'transparent'); + polyline.setAttribute('fill', 'none'); + + this._createPopup(this.container, polyline, data); + + svg.appendChild(polyline); + } + + this.container.append(svg); + return this.container; + } + }]); + + return InkAnnotationElement; +}(AnnotationElement); + +var HighlightAnnotationElement = +/*#__PURE__*/ +function (_AnnotationElement12) { + _inherits(HighlightAnnotationElement, _AnnotationElement12); + + function HighlightAnnotationElement(parameters) { + _classCallCheck(this, HighlightAnnotationElement); + + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + return _possibleConstructorReturn(this, _getPrototypeOf(HighlightAnnotationElement).call(this, parameters, isRenderable, true)); + } + + _createClass(HighlightAnnotationElement, [{ + key: "render", + value: function render() { + this.container.className = 'highlightAnnotation'; + + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + + return this.container; + } + }]); + + return HighlightAnnotationElement; +}(AnnotationElement); + +var UnderlineAnnotationElement = +/*#__PURE__*/ +function (_AnnotationElement13) { + _inherits(UnderlineAnnotationElement, _AnnotationElement13); + + function UnderlineAnnotationElement(parameters) { + _classCallCheck(this, UnderlineAnnotationElement); + + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + return _possibleConstructorReturn(this, _getPrototypeOf(UnderlineAnnotationElement).call(this, parameters, isRenderable, true)); + } + + _createClass(UnderlineAnnotationElement, [{ + key: "render", + value: function render() { + this.container.className = 'underlineAnnotation'; + + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + + return this.container; + } + }]); + + return UnderlineAnnotationElement; +}(AnnotationElement); + +var SquigglyAnnotationElement = +/*#__PURE__*/ +function (_AnnotationElement14) { + _inherits(SquigglyAnnotationElement, _AnnotationElement14); + + function SquigglyAnnotationElement(parameters) { + _classCallCheck(this, SquigglyAnnotationElement); + + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + return _possibleConstructorReturn(this, _getPrototypeOf(SquigglyAnnotationElement).call(this, parameters, isRenderable, true)); + } + + _createClass(SquigglyAnnotationElement, [{ + key: "render", + value: function render() { + this.container.className = 'squigglyAnnotation'; + + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + + return this.container; + } + }]); + + return SquigglyAnnotationElement; +}(AnnotationElement); + +var StrikeOutAnnotationElement = +/*#__PURE__*/ +function (_AnnotationElement15) { + _inherits(StrikeOutAnnotationElement, _AnnotationElement15); + + function StrikeOutAnnotationElement(parameters) { + _classCallCheck(this, StrikeOutAnnotationElement); + + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + return _possibleConstructorReturn(this, _getPrototypeOf(StrikeOutAnnotationElement).call(this, parameters, isRenderable, true)); + } + + _createClass(StrikeOutAnnotationElement, [{ + key: "render", + value: function render() { + this.container.className = 'strikeoutAnnotation'; + + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + + return this.container; + } + }]); + + return StrikeOutAnnotationElement; +}(AnnotationElement); + +var StampAnnotationElement = +/*#__PURE__*/ +function (_AnnotationElement16) { + _inherits(StampAnnotationElement, _AnnotationElement16); + + function StampAnnotationElement(parameters) { + _classCallCheck(this, StampAnnotationElement); + + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + return _possibleConstructorReturn(this, _getPrototypeOf(StampAnnotationElement).call(this, parameters, isRenderable, true)); + } + + _createClass(StampAnnotationElement, [{ + key: "render", + value: function render() { + this.container.className = 'stampAnnotation'; + + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + + return this.container; + } + }]); + + return StampAnnotationElement; +}(AnnotationElement); + +var FileAttachmentAnnotationElement = +/*#__PURE__*/ +function (_AnnotationElement17) { + _inherits(FileAttachmentAnnotationElement, _AnnotationElement17); + + function FileAttachmentAnnotationElement(parameters) { + var _this6; + + _classCallCheck(this, FileAttachmentAnnotationElement); + + _this6 = _possibleConstructorReturn(this, _getPrototypeOf(FileAttachmentAnnotationElement).call(this, parameters, true)); + var _this6$data$file = _this6.data.file, + filename = _this6$data$file.filename, + content = _this6$data$file.content; + _this6.filename = (0, _display_utils.getFilenameFromUrl)(filename); + _this6.content = content; + + if (_this6.linkService.eventBus) { + _this6.linkService.eventBus.dispatch('fileattachmentannotation', { + source: _assertThisInitialized(_this6), + id: (0, _util.stringToPDFString)(filename), + filename: filename, + content: content + }); + } + + return _this6; + } + + _createClass(FileAttachmentAnnotationElement, [{ + key: "render", + value: function render() { + this.container.className = 'fileAttachmentAnnotation'; + var trigger = document.createElement('div'); + trigger.style.height = this.container.style.height; + trigger.style.width = this.container.style.width; + trigger.addEventListener('dblclick', this._download.bind(this)); + + if (!this.data.hasPopup && (this.data.title || this.data.contents)) { + this._createPopup(this.container, trigger, this.data); + } + + this.container.appendChild(trigger); + return this.container; + } + }, { + key: "_download", + value: function _download() { + if (!this.downloadManager) { + (0, _util.warn)('Download cannot be started due to unavailable download manager'); + return; + } + + this.downloadManager.downloadData(this.content, this.filename, ''); + } + }]); + + return FileAttachmentAnnotationElement; +}(AnnotationElement); + +var AnnotationLayer = +/*#__PURE__*/ +function () { + function AnnotationLayer() { + _classCallCheck(this, AnnotationLayer); + } + + _createClass(AnnotationLayer, null, [{ + key: "render", + value: function render(parameters) { + for (var i = 0, ii = parameters.annotations.length; i < ii; i++) { + var data = parameters.annotations[i]; + + if (!data) { + continue; + } + + var element = AnnotationElementFactory.create({ + data: data, + layer: parameters.div, + page: parameters.page, + viewport: parameters.viewport, + linkService: parameters.linkService, + downloadManager: parameters.downloadManager, + imageResourcesPath: parameters.imageResourcesPath || '', + renderInteractiveForms: parameters.renderInteractiveForms || false, + svgFactory: new _display_utils.DOMSVGFactory() + }); + + if (element.isRenderable) { + parameters.div.appendChild(element.render()); + } + } + } + }, { + key: "update", + value: function update(parameters) { + for (var i = 0, ii = parameters.annotations.length; i < ii; i++) { + var data = parameters.annotations[i]; + var element = parameters.div.querySelector('[data-annotation-id="' + data.id + '"]'); + + if (element) { + element.style.transform = 'matrix(' + parameters.viewport.transform.join(',') + ')'; + } + } + + parameters.div.removeAttribute('hidden'); + } + }]); + + return AnnotationLayer; +}(); + +exports.AnnotationLayer = AnnotationLayer; + +/***/ }), +/* 164 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SVGGraphics = void 0; + +var _util = __w_pdfjs_require__(1); + +var _display_utils = __w_pdfjs_require__(151); + +var _is_node = _interopRequireDefault(__w_pdfjs_require__(4)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } + +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } + +function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } + +function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } + +function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var SVGGraphics = function SVGGraphics() { + throw new Error('Not implemented: SVGGraphics'); +}; + +exports.SVGGraphics = SVGGraphics; +{ + var opListToTree = function opListToTree(opList) { + var opTree = []; + var tmp = []; + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = opList[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var opListElement = _step.value; + + if (opListElement.fn === 'save') { + opTree.push({ + 'fnId': 92, + 'fn': 'group', + 'items': [] + }); + tmp.push(opTree); + opTree = opTree[opTree.length - 1].items; + continue; + } + + if (opListElement.fn === 'restore') { + opTree = tmp.pop(); + } else { + opTree.push(opListElement); + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator["return"] != null) { + _iterator["return"](); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + return opTree; + }; + + var pf = function pf(value) { + if (Number.isInteger(value)) { + return value.toString(); + } + + var s = value.toFixed(10); + var i = s.length - 1; + + if (s[i] !== '0') { + return s; + } + + do { + i--; + } while (s[i] === '0'); + + return s.substring(0, s[i] === '.' ? i : i + 1); + }; + + var pm = function pm(m) { + if (m[4] === 0 && m[5] === 0) { + if (m[1] === 0 && m[2] === 0) { + if (m[0] === 1 && m[3] === 1) { + return ''; + } + + return "scale(".concat(pf(m[0]), " ").concat(pf(m[3]), ")"); + } + + if (m[0] === m[3] && m[1] === -m[2]) { + var a = Math.acos(m[0]) * 180 / Math.PI; + return "rotate(".concat(pf(a), ")"); + } + } else { + if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) { + return "translate(".concat(pf(m[4]), " ").concat(pf(m[5]), ")"); + } + } + + return "matrix(".concat(pf(m[0]), " ").concat(pf(m[1]), " ").concat(pf(m[2]), " ").concat(pf(m[3]), " ").concat(pf(m[4]), " ") + "".concat(pf(m[5]), ")"); + }; + + var SVG_DEFAULTS = { + fontStyle: 'normal', + fontWeight: 'normal', + fillColor: '#000000' + }; + var XML_NS = 'http://www.w3.org/XML/1998/namespace'; + var XLINK_NS = 'http://www.w3.org/1999/xlink'; + var LINE_CAP_STYLES = ['butt', 'round', 'square']; + var LINE_JOIN_STYLES = ['miter', 'round', 'bevel']; + + var convertImgDataToPng = function () { + var PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]); + var CHUNK_WRAPPER_SIZE = 12; + var crcTable = new Int32Array(256); + + for (var i = 0; i < 256; i++) { + var c = i; + + for (var h = 0; h < 8; h++) { + if (c & 1) { + c = 0xedB88320 ^ c >> 1 & 0x7fffffff; + } else { + c = c >> 1 & 0x7fffffff; + } + } + + crcTable[i] = c; + } + + function crc32(data, start, end) { + var crc = -1; + + for (var _i = start; _i < end; _i++) { + var a = (crc ^ data[_i]) & 0xff; + var b = crcTable[a]; + crc = crc >>> 8 ^ b; + } + + return crc ^ -1; + } + + function writePngChunk(type, body, data, offset) { + var p = offset; + var len = body.length; + data[p] = len >> 24 & 0xff; + data[p + 1] = len >> 16 & 0xff; + data[p + 2] = len >> 8 & 0xff; + data[p + 3] = len & 0xff; + p += 4; + data[p] = type.charCodeAt(0) & 0xff; + data[p + 1] = type.charCodeAt(1) & 0xff; + data[p + 2] = type.charCodeAt(2) & 0xff; + data[p + 3] = type.charCodeAt(3) & 0xff; + p += 4; + data.set(body, p); + p += body.length; + var crc = crc32(data, offset + 4, p); + data[p] = crc >> 24 & 0xff; + data[p + 1] = crc >> 16 & 0xff; + data[p + 2] = crc >> 8 & 0xff; + data[p + 3] = crc & 0xff; + } + + function adler32(data, start, end) { + var a = 1; + var b = 0; + + for (var _i2 = start; _i2 < end; ++_i2) { + a = (a + (data[_i2] & 0xff)) % 65521; + b = (b + a) % 65521; + } + + return b << 16 | a; + } + + function deflateSync(literals) { + if (!(0, _is_node["default"])()) { + return deflateSyncUncompressed(literals); + } + + try { + var input; + + if (parseInt(process.versions.node) >= 8) { + input = literals; + } else { + input = new Buffer(literals); + } + + var output = require('zlib').deflateSync(input, { + level: 9 + }); + + return output instanceof Uint8Array ? output : new Uint8Array(output); + } catch (e) { + (0, _util.warn)('Not compressing PNG because zlib.deflateSync is unavailable: ' + e); + } + + return deflateSyncUncompressed(literals); + } + + function deflateSyncUncompressed(literals) { + var len = literals.length; + var maxBlockLength = 0xFFFF; + var deflateBlocks = Math.ceil(len / maxBlockLength); + var idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4); + var pi = 0; + idat[pi++] = 0x78; + idat[pi++] = 0x9c; + var pos = 0; + + while (len > maxBlockLength) { + idat[pi++] = 0x00; + idat[pi++] = 0xff; + idat[pi++] = 0xff; + idat[pi++] = 0x00; + idat[pi++] = 0x00; + idat.set(literals.subarray(pos, pos + maxBlockLength), pi); + pi += maxBlockLength; + pos += maxBlockLength; + len -= maxBlockLength; + } + + idat[pi++] = 0x01; + idat[pi++] = len & 0xff; + idat[pi++] = len >> 8 & 0xff; + idat[pi++] = ~len & 0xffff & 0xff; + idat[pi++] = (~len & 0xffff) >> 8 & 0xff; + idat.set(literals.subarray(pos), pi); + pi += literals.length - pos; + var adler = adler32(literals, 0, literals.length); + idat[pi++] = adler >> 24 & 0xff; + idat[pi++] = adler >> 16 & 0xff; + idat[pi++] = adler >> 8 & 0xff; + idat[pi++] = adler & 0xff; + return idat; + } + + function encode(imgData, kind, forceDataSchema, isMask) { + var width = imgData.width; + var height = imgData.height; + var bitDepth, colorType, lineSize; + var bytes = imgData.data; + + switch (kind) { + case _util.ImageKind.GRAYSCALE_1BPP: + colorType = 0; + bitDepth = 1; + lineSize = width + 7 >> 3; + break; + + case _util.ImageKind.RGB_24BPP: + colorType = 2; + bitDepth = 8; + lineSize = width * 3; + break; + + case _util.ImageKind.RGBA_32BPP: + colorType = 6; + bitDepth = 8; + lineSize = width * 4; + break; + + default: + throw new Error('invalid format'); + } + + var literals = new Uint8Array((1 + lineSize) * height); + var offsetLiterals = 0, + offsetBytes = 0; + + for (var y = 0; y < height; ++y) { + literals[offsetLiterals++] = 0; + literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals); + offsetBytes += lineSize; + offsetLiterals += lineSize; + } + + if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) { + offsetLiterals = 0; + + for (var _y = 0; _y < height; _y++) { + offsetLiterals++; + + for (var _i3 = 0; _i3 < lineSize; _i3++) { + literals[offsetLiterals++] ^= 0xFF; + } + } + } + + var ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]); + var idat = deflateSync(literals); + var pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length; + var data = new Uint8Array(pngLength); + var offset = 0; + data.set(PNG_HEADER, offset); + offset += PNG_HEADER.length; + writePngChunk('IHDR', ihdr, data, offset); + offset += CHUNK_WRAPPER_SIZE + ihdr.length; + writePngChunk('IDATA', idat, data, offset); + offset += CHUNK_WRAPPER_SIZE + idat.length; + writePngChunk('IEND', new Uint8Array(0), data, offset); + return (0, _util.createObjectURL)(data, 'image/png', forceDataSchema); + } + + return function convertImgDataToPng(imgData, forceDataSchema, isMask) { + var kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind; + return encode(imgData, kind, forceDataSchema, isMask); + }; + }(); + + var SVGExtraState = + /*#__PURE__*/ + function () { + function SVGExtraState() { + _classCallCheck(this, SVGExtraState); + + this.fontSizeScale = 1; + this.fontWeight = SVG_DEFAULTS.fontWeight; + this.fontSize = 0; + this.textMatrix = _util.IDENTITY_MATRIX; + this.fontMatrix = _util.FONT_IDENTITY_MATRIX; + this.leading = 0; + this.textRenderingMode = _util.TextRenderingMode.FILL; + this.textMatrixScale = 1; + this.x = 0; + this.y = 0; + this.lineX = 0; + this.lineY = 0; + this.charSpacing = 0; + this.wordSpacing = 0; + this.textHScale = 1; + this.textRise = 0; + this.fillColor = SVG_DEFAULTS.fillColor; + this.strokeColor = '#000000'; + this.fillAlpha = 1; + this.strokeAlpha = 1; + this.lineWidth = 1; + this.lineJoin = ''; + this.lineCap = ''; + this.miterLimit = 0; + this.dashArray = []; + this.dashPhase = 0; + this.dependencies = []; + this.activeClipUrl = null; + this.clipGroup = null; + this.maskId = ''; + } + + _createClass(SVGExtraState, [{ + key: "clone", + value: function clone() { + return Object.create(this); + } + }, { + key: "setCurrentPoint", + value: function setCurrentPoint(x, y) { + this.x = x; + this.y = y; + } + }]); + + return SVGExtraState; + }(); + + var clipCount = 0; + var maskCount = 0; + var shadingCount = 0; + + exports.SVGGraphics = SVGGraphics = + /*#__PURE__*/ + function () { + function SVGGraphics(commonObjs, objs, forceDataSchema) { + _classCallCheck(this, SVGGraphics); + + this.svgFactory = new _display_utils.DOMSVGFactory(); + this.current = new SVGExtraState(); + this.transformMatrix = _util.IDENTITY_MATRIX; + this.transformStack = []; + this.extraStack = []; + this.commonObjs = commonObjs; + this.objs = objs; + this.pendingClip = null; + this.pendingEOFill = false; + this.embedFonts = false; + this.embeddedFonts = Object.create(null); + this.cssStyle = null; + this.forceDataSchema = !!forceDataSchema; + this._operatorIdMapping = []; + + for (var op in _util.OPS) { + this._operatorIdMapping[_util.OPS[op]] = op; + } + } + + _createClass(SVGGraphics, [{ + key: "save", + value: function save() { + this.transformStack.push(this.transformMatrix); + var old = this.current; + this.extraStack.push(old); + this.current = old.clone(); + } + }, { + key: "restore", + value: function restore() { + this.transformMatrix = this.transformStack.pop(); + this.current = this.extraStack.pop(); + this.pendingClip = null; + this.tgrp = null; + } + }, { + key: "group", + value: function group(items) { + this.save(); + this.executeOpTree(items); + this.restore(); + } + }, { + key: "loadDependencies", + value: function loadDependencies(operatorList) { + var _this = this; + + var fnArray = operatorList.fnArray; + var argsArray = operatorList.argsArray; + + for (var i = 0, ii = fnArray.length; i < ii; i++) { + if (fnArray[i] !== _util.OPS.dependency) { + continue; + } + + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + var _loop = function _loop() { + var obj = _step2.value; + var objsPool = obj.startsWith('g_') ? _this.commonObjs : _this.objs; + var promise = new Promise(function (resolve) { + objsPool.get(obj, resolve); + }); + + _this.current.dependencies.push(promise); + }; + + for (var _iterator2 = argsArray[i][Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + _loop(); + } + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { + _iterator2["return"](); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + } + + return Promise.all(this.current.dependencies); + } + }, { + key: "transform", + value: function transform(a, b, c, d, e, f) { + var transformMatrix = [a, b, c, d, e, f]; + this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix); + this.tgrp = null; + } + }, { + key: "getSVG", + value: function getSVG(operatorList, viewport) { + var _this2 = this; + + this.viewport = viewport; + + var svgElement = this._initialize(viewport); + + return this.loadDependencies(operatorList).then(function () { + _this2.transformMatrix = _util.IDENTITY_MATRIX; + + _this2.executeOpTree(_this2.convertOpList(operatorList)); + + return svgElement; + }); + } + }, { + key: "convertOpList", + value: function convertOpList(operatorList) { + var operatorIdMapping = this._operatorIdMapping; + var argsArray = operatorList.argsArray; + var fnArray = operatorList.fnArray; + var opList = []; + + for (var i = 0, ii = fnArray.length; i < ii; i++) { + var fnId = fnArray[i]; + opList.push({ + 'fnId': fnId, + 'fn': operatorIdMapping[fnId], + 'args': argsArray[i] + }); + } + + return opListToTree(opList); + } + }, { + key: "executeOpTree", + value: function executeOpTree(opTree) { + var _iteratorNormalCompletion3 = true; + var _didIteratorError3 = false; + var _iteratorError3 = undefined; + + try { + for (var _iterator3 = opTree[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { + var opTreeElement = _step3.value; + var fn = opTreeElement.fn; + var fnId = opTreeElement.fnId; + var args = opTreeElement.args; + + switch (fnId | 0) { + case _util.OPS.beginText: + this.beginText(); + break; + + case _util.OPS.dependency: + break; + + case _util.OPS.setLeading: + this.setLeading(args); + break; + + case _util.OPS.setLeadingMoveText: + this.setLeadingMoveText(args[0], args[1]); + break; + + case _util.OPS.setFont: + this.setFont(args); + break; + + case _util.OPS.showText: + this.showText(args[0]); + break; + + case _util.OPS.showSpacedText: + this.showText(args[0]); + break; + + case _util.OPS.endText: + this.endText(); + break; + + case _util.OPS.moveText: + this.moveText(args[0], args[1]); + break; + + case _util.OPS.setCharSpacing: + this.setCharSpacing(args[0]); + break; + + case _util.OPS.setWordSpacing: + this.setWordSpacing(args[0]); + break; + + case _util.OPS.setHScale: + this.setHScale(args[0]); + break; + + case _util.OPS.setTextMatrix: + this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]); + break; + + case _util.OPS.setTextRise: + this.setTextRise(args[0]); + break; + + case _util.OPS.setTextRenderingMode: + this.setTextRenderingMode(args[0]); + break; + + case _util.OPS.setLineWidth: + this.setLineWidth(args[0]); + break; + + case _util.OPS.setLineJoin: + this.setLineJoin(args[0]); + break; + + case _util.OPS.setLineCap: + this.setLineCap(args[0]); + break; + + case _util.OPS.setMiterLimit: + this.setMiterLimit(args[0]); + break; + + case _util.OPS.setFillRGBColor: + this.setFillRGBColor(args[0], args[1], args[2]); + break; + + case _util.OPS.setStrokeRGBColor: + this.setStrokeRGBColor(args[0], args[1], args[2]); + break; + + case _util.OPS.setStrokeColorN: + this.setStrokeColorN(args); + break; + + case _util.OPS.setFillColorN: + this.setFillColorN(args); + break; + + case _util.OPS.shadingFill: + this.shadingFill(args[0]); + break; + + case _util.OPS.setDash: + this.setDash(args[0], args[1]); + break; + + case _util.OPS.setRenderingIntent: + this.setRenderingIntent(args[0]); + break; + + case _util.OPS.setFlatness: + this.setFlatness(args[0]); + break; + + case _util.OPS.setGState: + this.setGState(args[0]); + break; + + case _util.OPS.fill: + this.fill(); + break; + + case _util.OPS.eoFill: + this.eoFill(); + break; + + case _util.OPS.stroke: + this.stroke(); + break; + + case _util.OPS.fillStroke: + this.fillStroke(); + break; + + case _util.OPS.eoFillStroke: + this.eoFillStroke(); + break; + + case _util.OPS.clip: + this.clip('nonzero'); + break; + + case _util.OPS.eoClip: + this.clip('evenodd'); + break; + + case _util.OPS.paintSolidColorImageMask: + this.paintSolidColorImageMask(); + break; + + case _util.OPS.paintJpegXObject: + this.paintJpegXObject(args[0], args[1], args[2]); + break; + + case _util.OPS.paintImageXObject: + this.paintImageXObject(args[0]); + break; + + case _util.OPS.paintInlineImageXObject: + this.paintInlineImageXObject(args[0]); + break; + + case _util.OPS.paintImageMaskXObject: + this.paintImageMaskXObject(args[0]); + break; + + case _util.OPS.paintFormXObjectBegin: + this.paintFormXObjectBegin(args[0], args[1]); + break; + + case _util.OPS.paintFormXObjectEnd: + this.paintFormXObjectEnd(); + break; + + case _util.OPS.closePath: + this.closePath(); + break; + + case _util.OPS.closeStroke: + this.closeStroke(); + break; + + case _util.OPS.closeFillStroke: + this.closeFillStroke(); + break; + + case _util.OPS.closeEOFillStroke: + this.closeEOFillStroke(); + break; + + case _util.OPS.nextLine: + this.nextLine(); + break; + + case _util.OPS.transform: + this.transform(args[0], args[1], args[2], args[3], args[4], args[5]); + break; + + case _util.OPS.constructPath: + this.constructPath(args[0], args[1]); + break; + + case _util.OPS.endPath: + this.endPath(); + break; + + case 92: + this.group(opTreeElement.items); + break; + + default: + (0, _util.warn)("Unimplemented operator ".concat(fn)); + break; + } + } + } catch (err) { + _didIteratorError3 = true; + _iteratorError3 = err; + } finally { + try { + if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) { + _iterator3["return"](); + } + } finally { + if (_didIteratorError3) { + throw _iteratorError3; + } + } + } + } + }, { + key: "setWordSpacing", + value: function setWordSpacing(wordSpacing) { + this.current.wordSpacing = wordSpacing; + } + }, { + key: "setCharSpacing", + value: function setCharSpacing(charSpacing) { + this.current.charSpacing = charSpacing; + } + }, { + key: "nextLine", + value: function nextLine() { + this.moveText(0, this.current.leading); + } + }, { + key: "setTextMatrix", + value: function setTextMatrix(a, b, c, d, e, f) { + var current = this.current; + current.textMatrix = current.lineMatrix = [a, b, c, d, e, f]; + current.textMatrixScale = Math.sqrt(a * a + b * b); + current.x = current.lineX = 0; + current.y = current.lineY = 0; + current.xcoords = []; + current.tspan = this.svgFactory.createElement('svg:tspan'); + current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); + current.tspan.setAttributeNS(null, 'font-size', "".concat(pf(current.fontSize), "px")); + current.tspan.setAttributeNS(null, 'y', pf(-current.y)); + current.txtElement = this.svgFactory.createElement('svg:text'); + current.txtElement.appendChild(current.tspan); + } + }, { + key: "beginText", + value: function beginText() { + var current = this.current; + current.x = current.lineX = 0; + current.y = current.lineY = 0; + current.textMatrix = _util.IDENTITY_MATRIX; + current.lineMatrix = _util.IDENTITY_MATRIX; + current.textMatrixScale = 1; + current.tspan = this.svgFactory.createElement('svg:tspan'); + current.txtElement = this.svgFactory.createElement('svg:text'); + current.txtgrp = this.svgFactory.createElement('svg:g'); + current.xcoords = []; + } + }, { + key: "moveText", + value: function moveText(x, y) { + var current = this.current; + current.x = current.lineX += x; + current.y = current.lineY += y; + current.xcoords = []; + current.tspan = this.svgFactory.createElement('svg:tspan'); + current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); + current.tspan.setAttributeNS(null, 'font-size', "".concat(pf(current.fontSize), "px")); + current.tspan.setAttributeNS(null, 'y', pf(-current.y)); + } + }, { + key: "showText", + value: function showText(glyphs) { + var current = this.current; + var font = current.font; + var fontSize = current.fontSize; + + if (fontSize === 0) { + return; + } + + var charSpacing = current.charSpacing; + var wordSpacing = current.wordSpacing; + var fontDirection = current.fontDirection; + var textHScale = current.textHScale * fontDirection; + var vertical = font.vertical; + var widthAdvanceScale = fontSize * current.fontMatrix[0]; + var x = 0; + var _iteratorNormalCompletion4 = true; + var _didIteratorError4 = false; + var _iteratorError4 = undefined; + + try { + for (var _iterator4 = glyphs[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { + var glyph = _step4.value; + + if (glyph === null) { + x += fontDirection * wordSpacing; + continue; + } else if ((0, _util.isNum)(glyph)) { + x += -glyph * fontSize * 0.001; + continue; + } + + var width = glyph.width; + var character = glyph.fontChar; + var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; + var charWidth = width * widthAdvanceScale + spacing * fontDirection; + + if (!glyph.isInFont && !font.missingFile) { + x += charWidth; + continue; + } + + current.xcoords.push(current.x + x * textHScale); + current.tspan.textContent += character; + x += charWidth; + } + } catch (err) { + _didIteratorError4 = true; + _iteratorError4 = err; + } finally { + try { + if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) { + _iterator4["return"](); + } + } finally { + if (_didIteratorError4) { + throw _iteratorError4; + } + } + } + + if (vertical) { + current.y -= x * textHScale; + } else { + current.x += x * textHScale; + } + + current.tspan.setAttributeNS(null, 'x', current.xcoords.map(pf).join(' ')); + current.tspan.setAttributeNS(null, 'y', pf(-current.y)); + current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); + current.tspan.setAttributeNS(null, 'font-size', "".concat(pf(current.fontSize), "px")); + + if (current.fontStyle !== SVG_DEFAULTS.fontStyle) { + current.tspan.setAttributeNS(null, 'font-style', current.fontStyle); + } + + if (current.fontWeight !== SVG_DEFAULTS.fontWeight) { + current.tspan.setAttributeNS(null, 'font-weight', current.fontWeight); + } + + var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; + + if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + if (current.fillColor !== SVG_DEFAULTS.fillColor) { + current.tspan.setAttributeNS(null, 'fill', current.fillColor); + } + + if (current.fillAlpha < 1) { + current.tspan.setAttributeNS(null, 'fill-opacity', current.fillAlpha); + } + } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) { + current.tspan.setAttributeNS(null, 'fill', 'transparent'); + } else { + current.tspan.setAttributeNS(null, 'fill', 'none'); + } + + if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + var lineWidthScale = 1 / (current.textMatrixScale || 1); + + this._setStrokeAttributes(current.tspan, lineWidthScale); + } + + var textMatrix = current.textMatrix; + + if (current.textRise !== 0) { + textMatrix = textMatrix.slice(); + textMatrix[5] += current.textRise; + } + + current.txtElement.setAttributeNS(null, 'transform', "".concat(pm(textMatrix), " scale(1, -1)")); + current.txtElement.setAttributeNS(XML_NS, 'xml:space', 'preserve'); + current.txtElement.appendChild(current.tspan); + current.txtgrp.appendChild(current.txtElement); + + this._ensureTransformGroup().appendChild(current.txtElement); + } + }, { + key: "setLeadingMoveText", + value: function setLeadingMoveText(x, y) { + this.setLeading(-y); + this.moveText(x, y); + } + }, { + key: "addFontStyle", + value: function addFontStyle(fontObj) { + if (!this.cssStyle) { + this.cssStyle = this.svgFactory.createElement('svg:style'); + this.cssStyle.setAttributeNS(null, 'type', 'text/css'); + this.defs.appendChild(this.cssStyle); + } + + var url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema); + this.cssStyle.textContent += "@font-face { font-family: \"".concat(fontObj.loadedName, "\";") + " src: url(".concat(url, "); }\n"); + } + }, { + key: "setFont", + value: function setFont(details) { + var current = this.current; + var fontObj = this.commonObjs.get(details[0]); + var size = details[1]; + current.font = fontObj; + + if (this.embedFonts && fontObj.data && !this.embeddedFonts[fontObj.loadedName]) { + this.addFontStyle(fontObj); + this.embeddedFonts[fontObj.loadedName] = fontObj; + } + + current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX; + var bold = fontObj.black ? fontObj.bold ? 'bolder' : 'bold' : fontObj.bold ? 'bold' : 'normal'; + var italic = fontObj.italic ? 'italic' : 'normal'; + + if (size < 0) { + size = -size; + current.fontDirection = -1; + } else { + current.fontDirection = 1; + } + + current.fontSize = size; + current.fontFamily = fontObj.loadedName; + current.fontWeight = bold; + current.fontStyle = italic; + current.tspan = this.svgFactory.createElement('svg:tspan'); + current.tspan.setAttributeNS(null, 'y', pf(-current.y)); + current.xcoords = []; + } + }, { + key: "endText", + value: function endText() { + var current = this.current; + + if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement && current.txtElement.hasChildNodes()) { + current.element = current.txtElement; + this.clip('nonzero'); + this.endPath(); + } + } + }, { + key: "setLineWidth", + value: function setLineWidth(width) { + if (width > 0) { + this.current.lineWidth = width; + } + } + }, { + key: "setLineCap", + value: function setLineCap(style) { + this.current.lineCap = LINE_CAP_STYLES[style]; + } + }, { + key: "setLineJoin", + value: function setLineJoin(style) { + this.current.lineJoin = LINE_JOIN_STYLES[style]; + } + }, { + key: "setMiterLimit", + value: function setMiterLimit(limit) { + this.current.miterLimit = limit; + } + }, { + key: "setStrokeAlpha", + value: function setStrokeAlpha(strokeAlpha) { + this.current.strokeAlpha = strokeAlpha; + } + }, { + key: "setStrokeRGBColor", + value: function setStrokeRGBColor(r, g, b) { + this.current.strokeColor = _util.Util.makeCssRgb(r, g, b); + } + }, { + key: "setFillAlpha", + value: function setFillAlpha(fillAlpha) { + this.current.fillAlpha = fillAlpha; + } + }, { + key: "setFillRGBColor", + value: function setFillRGBColor(r, g, b) { + this.current.fillColor = _util.Util.makeCssRgb(r, g, b); + this.current.tspan = this.svgFactory.createElement('svg:tspan'); + this.current.xcoords = []; + } + }, { + key: "setStrokeColorN", + value: function setStrokeColorN(args) { + this.current.strokeColor = this._makeColorN_Pattern(args); + } + }, { + key: "setFillColorN", + value: function setFillColorN(args) { + this.current.fillColor = this._makeColorN_Pattern(args); + } + }, { + key: "shadingFill", + value: function shadingFill(args) { + var width = this.viewport.width; + var height = this.viewport.height; + + var inv = _util.Util.inverseTransform(this.transformMatrix); + + var bl = _util.Util.applyTransform([0, 0], inv); + + var br = _util.Util.applyTransform([0, height], inv); + + var ul = _util.Util.applyTransform([width, 0], inv); + + var ur = _util.Util.applyTransform([width, height], inv); + + var x0 = Math.min(bl[0], br[0], ul[0], ur[0]); + var y0 = Math.min(bl[1], br[1], ul[1], ur[1]); + var x1 = Math.max(bl[0], br[0], ul[0], ur[0]); + var y1 = Math.max(bl[1], br[1], ul[1], ur[1]); + var rect = this.svgFactory.createElement('svg:rect'); + rect.setAttributeNS(null, 'x', x0); + rect.setAttributeNS(null, 'y', y0); + rect.setAttributeNS(null, 'width', x1 - x0); + rect.setAttributeNS(null, 'height', y1 - y0); + rect.setAttributeNS(null, 'fill', this._makeShadingPattern(args)); + + this._ensureTransformGroup().appendChild(rect); + } + }, { + key: "_makeColorN_Pattern", + value: function _makeColorN_Pattern(args) { + if (args[0] === 'TilingPattern') { + return this._makeTilingPattern(args); + } + + return this._makeShadingPattern(args); + } + }, { + key: "_makeTilingPattern", + value: function _makeTilingPattern(args) { + var color = args[1]; + var operatorList = args[2]; + var matrix = args[3] || _util.IDENTITY_MATRIX; + + var _args$ = _slicedToArray(args[4], 4), + x0 = _args$[0], + y0 = _args$[1], + x1 = _args$[2], + y1 = _args$[3]; + + var xstep = args[5]; + var ystep = args[6]; + var paintType = args[7]; + var tilingId = "shading".concat(shadingCount++); + + var _Util$applyTransform = _util.Util.applyTransform([x0, y0], matrix), + _Util$applyTransform2 = _slicedToArray(_Util$applyTransform, 2), + tx0 = _Util$applyTransform2[0], + ty0 = _Util$applyTransform2[1]; + + var _Util$applyTransform3 = _util.Util.applyTransform([x1, y1], matrix), + _Util$applyTransform4 = _slicedToArray(_Util$applyTransform3, 2), + tx1 = _Util$applyTransform4[0], + ty1 = _Util$applyTransform4[1]; + + var _Util$singularValueDe = _util.Util.singularValueDecompose2dScale(matrix), + _Util$singularValueDe2 = _slicedToArray(_Util$singularValueDe, 2), + xscale = _Util$singularValueDe2[0], + yscale = _Util$singularValueDe2[1]; + + var txstep = xstep * xscale; + var tystep = ystep * yscale; + var tiling = this.svgFactory.createElement('svg:pattern'); + tiling.setAttributeNS(null, 'id', tilingId); + tiling.setAttributeNS(null, 'patternUnits', 'userSpaceOnUse'); + tiling.setAttributeNS(null, 'width', txstep); + tiling.setAttributeNS(null, 'height', tystep); + tiling.setAttributeNS(null, 'x', "".concat(tx0)); + tiling.setAttributeNS(null, 'y', "".concat(ty0)); + var svg = this.svg; + var transformMatrix = this.transformMatrix; + var fillColor = this.current.fillColor; + var strokeColor = this.current.strokeColor; + var bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0); + this.svg = bbox; + this.transformMatrix = matrix; + + if (paintType === 2) { + var cssColor = _util.Util.makeCssRgb.apply(_util.Util, _toConsumableArray(color)); + + this.current.fillColor = cssColor; + this.current.strokeColor = cssColor; + } + + this.executeOpTree(this.convertOpList(operatorList)); + this.svg = svg; + this.transformMatrix = transformMatrix; + this.current.fillColor = fillColor; + this.current.strokeColor = strokeColor; + tiling.appendChild(bbox.childNodes[0]); + this.defs.appendChild(tiling); + return "url(#".concat(tilingId, ")"); + } + }, { + key: "_makeShadingPattern", + value: function _makeShadingPattern(args) { + switch (args[0]) { + case 'RadialAxial': + var shadingId = "shading".concat(shadingCount++); + var colorStops = args[2]; + var gradient; + + switch (args[1]) { + case 'axial': + var point0 = args[3]; + var point1 = args[4]; + gradient = this.svgFactory.createElement('svg:linearGradient'); + gradient.setAttributeNS(null, 'id', shadingId); + gradient.setAttributeNS(null, 'gradientUnits', 'userSpaceOnUse'); + gradient.setAttributeNS(null, 'x1', point0[0]); + gradient.setAttributeNS(null, 'y1', point0[1]); + gradient.setAttributeNS(null, 'x2', point1[0]); + gradient.setAttributeNS(null, 'y2', point1[1]); + break; + + case 'radial': + var focalPoint = args[3]; + var circlePoint = args[4]; + var focalRadius = args[5]; + var circleRadius = args[6]; + gradient = this.svgFactory.createElement('svg:radialGradient'); + gradient.setAttributeNS(null, 'id', shadingId); + gradient.setAttributeNS(null, 'gradientUnits', 'userSpaceOnUse'); + gradient.setAttributeNS(null, 'cx', circlePoint[0]); + gradient.setAttributeNS(null, 'cy', circlePoint[1]); + gradient.setAttributeNS(null, 'r', circleRadius); + gradient.setAttributeNS(null, 'fx', focalPoint[0]); + gradient.setAttributeNS(null, 'fy', focalPoint[1]); + gradient.setAttributeNS(null, 'fr', focalRadius); + break; + + default: + throw new Error("Unknown RadialAxial type: ".concat(args[1])); + } + + var _iteratorNormalCompletion5 = true; + var _didIteratorError5 = false; + var _iteratorError5 = undefined; + + try { + for (var _iterator5 = colorStops[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) { + var colorStop = _step5.value; + var stop = this.svgFactory.createElement('svg:stop'); + stop.setAttributeNS(null, 'offset', colorStop[0]); + stop.setAttributeNS(null, 'stop-color', colorStop[1]); + gradient.appendChild(stop); + } + } catch (err) { + _didIteratorError5 = true; + _iteratorError5 = err; + } finally { + try { + if (!_iteratorNormalCompletion5 && _iterator5["return"] != null) { + _iterator5["return"](); + } + } finally { + if (_didIteratorError5) { + throw _iteratorError5; + } + } + } + + this.defs.appendChild(gradient); + return "url(#".concat(shadingId, ")"); + + case 'Mesh': + (0, _util.warn)('Unimplemented pattern Mesh'); + return null; + + case 'Dummy': + return 'hotpink'; + + default: + throw new Error("Unknown IR type: ".concat(args[0])); + } + } + }, { + key: "setDash", + value: function setDash(dashArray, dashPhase) { + this.current.dashArray = dashArray; + this.current.dashPhase = dashPhase; + } + }, { + key: "constructPath", + value: function constructPath(ops, args) { + var current = this.current; + var x = current.x, + y = current.y; + var d = []; + var j = 0; + var _iteratorNormalCompletion6 = true; + var _didIteratorError6 = false; + var _iteratorError6 = undefined; + + try { + for (var _iterator6 = ops[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) { + var op = _step6.value; + + switch (op | 0) { + case _util.OPS.rectangle: + x = args[j++]; + y = args[j++]; + var width = args[j++]; + var height = args[j++]; + var xw = x + width; + var yh = y + height; + d.push('M', pf(x), pf(y), 'L', pf(xw), pf(y), 'L', pf(xw), pf(yh), 'L', pf(x), pf(yh), 'Z'); + break; + + case _util.OPS.moveTo: + x = args[j++]; + y = args[j++]; + d.push('M', pf(x), pf(y)); + break; + + case _util.OPS.lineTo: + x = args[j++]; + y = args[j++]; + d.push('L', pf(x), pf(y)); + break; + + case _util.OPS.curveTo: + x = args[j + 4]; + y = args[j + 5]; + d.push('C', pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y)); + j += 6; + break; + + case _util.OPS.curveTo2: + x = args[j + 2]; + y = args[j + 3]; + d.push('C', pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3])); + j += 4; + break; + + case _util.OPS.curveTo3: + x = args[j + 2]; + y = args[j + 3]; + d.push('C', pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y)); + j += 4; + break; + + case _util.OPS.closePath: + d.push('Z'); + break; + } + } + } catch (err) { + _didIteratorError6 = true; + _iteratorError6 = err; + } finally { + try { + if (!_iteratorNormalCompletion6 && _iterator6["return"] != null) { + _iterator6["return"](); + } + } finally { + if (_didIteratorError6) { + throw _iteratorError6; + } + } + } + + d = d.join(' '); + + if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) { + d = current.path.getAttributeNS(null, 'd') + d; + } else { + current.path = this.svgFactory.createElement('svg:path'); + + this._ensureTransformGroup().appendChild(current.path); + } + + current.path.setAttributeNS(null, 'd', d); + current.path.setAttributeNS(null, 'fill', 'none'); + current.element = current.path; + current.setCurrentPoint(x, y); + } + }, { + key: "endPath", + value: function endPath() { + var current = this.current; + current.path = null; + + if (!this.pendingClip) { + return; + } + + if (!current.element) { + this.pendingClip = null; + return; + } + + var clipId = "clippath".concat(clipCount++); + var clipPath = this.svgFactory.createElement('svg:clipPath'); + clipPath.setAttributeNS(null, 'id', clipId); + clipPath.setAttributeNS(null, 'transform', pm(this.transformMatrix)); + var clipElement = current.element.cloneNode(true); + + if (this.pendingClip === 'evenodd') { + clipElement.setAttributeNS(null, 'clip-rule', 'evenodd'); + } else { + clipElement.setAttributeNS(null, 'clip-rule', 'nonzero'); + } + + this.pendingClip = null; + clipPath.appendChild(clipElement); + this.defs.appendChild(clipPath); + + if (current.activeClipUrl) { + current.clipGroup = null; + this.extraStack.forEach(function (prev) { + prev.clipGroup = null; + }); + clipPath.setAttributeNS(null, 'clip-path', current.activeClipUrl); + } + + current.activeClipUrl = "url(#".concat(clipId, ")"); + this.tgrp = null; + } + }, { + key: "clip", + value: function clip(type) { + this.pendingClip = type; + } + }, { + key: "closePath", + value: function closePath() { + var current = this.current; + + if (current.path) { + var d = "".concat(current.path.getAttributeNS(null, 'd'), "Z"); + current.path.setAttributeNS(null, 'd', d); + } + } + }, { + key: "setLeading", + value: function setLeading(leading) { + this.current.leading = -leading; + } + }, { + key: "setTextRise", + value: function setTextRise(textRise) { + this.current.textRise = textRise; + } + }, { + key: "setTextRenderingMode", + value: function setTextRenderingMode(textRenderingMode) { + this.current.textRenderingMode = textRenderingMode; + } + }, { + key: "setHScale", + value: function setHScale(scale) { + this.current.textHScale = scale / 100; + } + }, { + key: "setRenderingIntent", + value: function setRenderingIntent(intent) {} + }, { + key: "setFlatness", + value: function setFlatness(flatness) {} + }, { + key: "setGState", + value: function setGState(states) { + var _iteratorNormalCompletion7 = true; + var _didIteratorError7 = false; + var _iteratorError7 = undefined; + + try { + for (var _iterator7 = states[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) { + var _step7$value = _slicedToArray(_step7.value, 2), + key = _step7$value[0], + value = _step7$value[1]; + + switch (key) { + case 'LW': + this.setLineWidth(value); + break; + + case 'LC': + this.setLineCap(value); + break; + + case 'LJ': + this.setLineJoin(value); + break; + + case 'ML': + this.setMiterLimit(value); + break; + + case 'D': + this.setDash(value[0], value[1]); + break; + + case 'RI': + this.setRenderingIntent(value); + break; + + case 'FL': + this.setFlatness(value); + break; + + case 'Font': + this.setFont(value); + break; + + case 'CA': + this.setStrokeAlpha(value); + break; + + case 'ca': + this.setFillAlpha(value); + break; + + default: + (0, _util.warn)("Unimplemented graphic state operator ".concat(key)); + break; + } + } + } catch (err) { + _didIteratorError7 = true; + _iteratorError7 = err; + } finally { + try { + if (!_iteratorNormalCompletion7 && _iterator7["return"] != null) { + _iterator7["return"](); + } + } finally { + if (_didIteratorError7) { + throw _iteratorError7; + } + } + } + } + }, { + key: "fill", + value: function fill() { + var current = this.current; + + if (current.element) { + current.element.setAttributeNS(null, 'fill', current.fillColor); + current.element.setAttributeNS(null, 'fill-opacity', current.fillAlpha); + this.endPath(); + } + } + }, { + key: "stroke", + value: function stroke() { + var current = this.current; + + if (current.element) { + this._setStrokeAttributes(current.element); + + current.element.setAttributeNS(null, 'fill', 'none'); + this.endPath(); + } + } + }, { + key: "_setStrokeAttributes", + value: function _setStrokeAttributes(element) { + var lineWidthScale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; + var current = this.current; + var dashArray = current.dashArray; + + if (lineWidthScale !== 1 && dashArray.length > 0) { + dashArray = dashArray.map(function (value) { + return lineWidthScale * value; + }); + } + + element.setAttributeNS(null, 'stroke', current.strokeColor); + element.setAttributeNS(null, 'stroke-opacity', current.strokeAlpha); + element.setAttributeNS(null, 'stroke-miterlimit', pf(current.miterLimit)); + element.setAttributeNS(null, 'stroke-linecap', current.lineCap); + element.setAttributeNS(null, 'stroke-linejoin', current.lineJoin); + element.setAttributeNS(null, 'stroke-width', pf(lineWidthScale * current.lineWidth) + 'px'); + element.setAttributeNS(null, 'stroke-dasharray', dashArray.map(pf).join(' ')); + element.setAttributeNS(null, 'stroke-dashoffset', pf(lineWidthScale * current.dashPhase) + 'px'); + } + }, { + key: "eoFill", + value: function eoFill() { + if (this.current.element) { + this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd'); + } + + this.fill(); + } + }, { + key: "fillStroke", + value: function fillStroke() { + this.stroke(); + this.fill(); + } + }, { + key: "eoFillStroke", + value: function eoFillStroke() { + if (this.current.element) { + this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd'); + } + + this.fillStroke(); + } + }, { + key: "closeStroke", + value: function closeStroke() { + this.closePath(); + this.stroke(); + } + }, { + key: "closeFillStroke", + value: function closeFillStroke() { + this.closePath(); + this.fillStroke(); + } + }, { + key: "closeEOFillStroke", + value: function closeEOFillStroke() { + this.closePath(); + this.eoFillStroke(); + } + }, { + key: "paintSolidColorImageMask", + value: function paintSolidColorImageMask() { + var rect = this.svgFactory.createElement('svg:rect'); + rect.setAttributeNS(null, 'x', '0'); + rect.setAttributeNS(null, 'y', '0'); + rect.setAttributeNS(null, 'width', '1px'); + rect.setAttributeNS(null, 'height', '1px'); + rect.setAttributeNS(null, 'fill', this.current.fillColor); + + this._ensureTransformGroup().appendChild(rect); + } + }, { + key: "paintJpegXObject", + value: function paintJpegXObject(objId, w, h) { + var imgObj = this.objs.get(objId); + var imgEl = this.svgFactory.createElement('svg:image'); + imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgObj.src); + imgEl.setAttributeNS(null, 'width', pf(w)); + imgEl.setAttributeNS(null, 'height', pf(h)); + imgEl.setAttributeNS(null, 'x', '0'); + imgEl.setAttributeNS(null, 'y', pf(-h)); + imgEl.setAttributeNS(null, 'transform', "scale(".concat(pf(1 / w), " ").concat(pf(-1 / h), ")")); + + this._ensureTransformGroup().appendChild(imgEl); + } + }, { + key: "paintImageXObject", + value: function paintImageXObject(objId) { + var imgData = this.objs.get(objId); + + if (!imgData) { + (0, _util.warn)("Dependent image with object ID ".concat(objId, " is not ready yet")); + return; + } + + this.paintInlineImageXObject(imgData); + } + }, { + key: "paintInlineImageXObject", + value: function paintInlineImageXObject(imgData, mask) { + var width = imgData.width; + var height = imgData.height; + var imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask); + var cliprect = this.svgFactory.createElement('svg:rect'); + cliprect.setAttributeNS(null, 'x', '0'); + cliprect.setAttributeNS(null, 'y', '0'); + cliprect.setAttributeNS(null, 'width', pf(width)); + cliprect.setAttributeNS(null, 'height', pf(height)); + this.current.element = cliprect; + this.clip('nonzero'); + var imgEl = this.svgFactory.createElement('svg:image'); + imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgSrc); + imgEl.setAttributeNS(null, 'x', '0'); + imgEl.setAttributeNS(null, 'y', pf(-height)); + imgEl.setAttributeNS(null, 'width', pf(width) + 'px'); + imgEl.setAttributeNS(null, 'height', pf(height) + 'px'); + imgEl.setAttributeNS(null, 'transform', "scale(".concat(pf(1 / width), " ").concat(pf(-1 / height), ")")); + + if (mask) { + mask.appendChild(imgEl); + } else { + this._ensureTransformGroup().appendChild(imgEl); + } + } + }, { + key: "paintImageMaskXObject", + value: function paintImageMaskXObject(imgData) { + var current = this.current; + var width = imgData.width; + var height = imgData.height; + var fillColor = current.fillColor; + current.maskId = "mask".concat(maskCount++); + var mask = this.svgFactory.createElement('svg:mask'); + mask.setAttributeNS(null, 'id', current.maskId); + var rect = this.svgFactory.createElement('svg:rect'); + rect.setAttributeNS(null, 'x', '0'); + rect.setAttributeNS(null, 'y', '0'); + rect.setAttributeNS(null, 'width', pf(width)); + rect.setAttributeNS(null, 'height', pf(height)); + rect.setAttributeNS(null, 'fill', fillColor); + rect.setAttributeNS(null, 'mask', "url(#".concat(current.maskId, ")")); + this.defs.appendChild(mask); + + this._ensureTransformGroup().appendChild(rect); + + this.paintInlineImageXObject(imgData, mask); + } + }, { + key: "paintFormXObjectBegin", + value: function paintFormXObjectBegin(matrix, bbox) { + if (Array.isArray(matrix) && matrix.length === 6) { + this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]); + } + + if (bbox) { + var width = bbox[2] - bbox[0]; + var height = bbox[3] - bbox[1]; + var cliprect = this.svgFactory.createElement('svg:rect'); + cliprect.setAttributeNS(null, 'x', bbox[0]); + cliprect.setAttributeNS(null, 'y', bbox[1]); + cliprect.setAttributeNS(null, 'width', pf(width)); + cliprect.setAttributeNS(null, 'height', pf(height)); + this.current.element = cliprect; + this.clip('nonzero'); + this.endPath(); + } + } + }, { + key: "paintFormXObjectEnd", + value: function paintFormXObjectEnd() {} + }, { + key: "_initialize", + value: function _initialize(viewport) { + var svg = this.svgFactory.create(viewport.width, viewport.height); + var definitions = this.svgFactory.createElement('svg:defs'); + svg.appendChild(definitions); + this.defs = definitions; + var rootGroup = this.svgFactory.createElement('svg:g'); + rootGroup.setAttributeNS(null, 'transform', pm(viewport.transform)); + svg.appendChild(rootGroup); + this.svg = rootGroup; + return svg; + } + }, { + key: "_ensureClipGroup", + value: function _ensureClipGroup() { + if (!this.current.clipGroup) { + var clipGroup = this.svgFactory.createElement('svg:g'); + clipGroup.setAttributeNS(null, 'clip-path', this.current.activeClipUrl); + this.svg.appendChild(clipGroup); + this.current.clipGroup = clipGroup; + } + + return this.current.clipGroup; + } + }, { + key: "_ensureTransformGroup", + value: function _ensureTransformGroup() { + if (!this.tgrp) { + this.tgrp = this.svgFactory.createElement('svg:g'); + this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix)); + + if (this.current.activeClipUrl) { + this._ensureClipGroup().appendChild(this.tgrp); + } else { + this.svg.appendChild(this.tgrp); + } + } + + return this.tgrp; + } + }]); + + return SVGGraphics; + }(); +} + +/***/ }), +/* 165 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFNodeStream = void 0; + +var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); + +var _util = __w_pdfjs_require__(1); + +var _network_utils = __w_pdfjs_require__(166); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var fs = require('fs'); + +var http = require('http'); + +var https = require('https'); + +var url = require('url'); + +var fileUriRegex = /^file:\/\/\/[a-zA-Z]:\//; + +function parseUrl(sourceUrl) { + var parsedUrl = url.parse(sourceUrl); + + if (parsedUrl.protocol === 'file:' || parsedUrl.host) { + return parsedUrl; + } + + if (/^[a-z]:[/\\]/i.test(sourceUrl)) { + return url.parse("file:///".concat(sourceUrl)); + } + + if (!parsedUrl.host) { + parsedUrl.protocol = 'file:'; + } + + return parsedUrl; +} + +var PDFNodeStream = +/*#__PURE__*/ +function () { + function PDFNodeStream(source) { + _classCallCheck(this, PDFNodeStream); + + this.source = source; + this.url = parseUrl(source.url); + this.isHttp = this.url.protocol === 'http:' || this.url.protocol === 'https:'; + this.isFsUrl = this.url.protocol === 'file:'; + this.httpHeaders = this.isHttp && source.httpHeaders || {}; + this._fullRequestReader = null; + this._rangeRequestReaders = []; + } + + _createClass(PDFNodeStream, [{ + key: "getFullReader", + value: function getFullReader() { + (0, _util.assert)(!this._fullRequestReader); + this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this); + return this._fullRequestReader; + } + }, { + key: "getRangeReader", + value: function getRangeReader(start, end) { + if (end <= this._progressiveDataLength) { + return null; + } + + var rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end); + + this._rangeRequestReaders.push(rangeReader); + + return rangeReader; + } + }, { + key: "cancelAllRequests", + value: function cancelAllRequests(reason) { + if (this._fullRequestReader) { + this._fullRequestReader.cancel(reason); + } + + var readers = this._rangeRequestReaders.slice(0); + + readers.forEach(function (reader) { + reader.cancel(reason); + }); + } + }, { + key: "_progressiveDataLength", + get: function get() { + return this._fullRequestReader ? this._fullRequestReader._loaded : 0; + } + }]); + + return PDFNodeStream; +}(); + +exports.PDFNodeStream = PDFNodeStream; + +var BaseFullReader = +/*#__PURE__*/ +function () { + function BaseFullReader(stream) { + _classCallCheck(this, BaseFullReader); + + this._url = stream.url; + this._done = false; + this._storedError = null; + this.onProgress = null; + var source = stream.source; + this._contentLength = source.length; + this._loaded = 0; + this._filename = null; + this._disableRange = source.disableRange || false; + this._rangeChunkSize = source.rangeChunkSize; + + if (!this._rangeChunkSize && !this._disableRange) { + this._disableRange = true; + } + + this._isStreamingSupported = !source.disableStream; + this._isRangeSupported = !source.disableRange; + this._readableStream = null; + this._readCapability = (0, _util.createPromiseCapability)(); + this._headersCapability = (0, _util.createPromiseCapability)(); + } + + _createClass(BaseFullReader, [{ + key: "read", + value: function () { + var _read = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee() { + var chunk, buffer; + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return this._readCapability.promise; + + case 2: + if (!this._done) { + _context.next = 4; + break; + } + + return _context.abrupt("return", { + value: undefined, + done: true + }); + + case 4: + if (!this._storedError) { + _context.next = 6; + break; + } + + throw this._storedError; + + case 6: + chunk = this._readableStream.read(); + + if (!(chunk === null)) { + _context.next = 10; + break; + } + + this._readCapability = (0, _util.createPromiseCapability)(); + return _context.abrupt("return", this.read()); + + case 10: + this._loaded += chunk.length; + + if (this.onProgress) { + this.onProgress({ + loaded: this._loaded, + total: this._contentLength + }); + } + + buffer = new Uint8Array(chunk).buffer; + return _context.abrupt("return", { + value: buffer, + done: false + }); + + case 14: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function read() { + return _read.apply(this, arguments); + } + + return read; + }() + }, { + key: "cancel", + value: function cancel(reason) { + if (!this._readableStream) { + this._error(reason); + + return; + } + + this._readableStream.destroy(reason); + } + }, { + key: "_error", + value: function _error(reason) { + this._storedError = reason; + + this._readCapability.resolve(); + } + }, { + key: "_setReadableStream", + value: function _setReadableStream(readableStream) { + var _this = this; + + this._readableStream = readableStream; + readableStream.on('readable', function () { + _this._readCapability.resolve(); + }); + readableStream.on('end', function () { + readableStream.destroy(); + _this._done = true; + + _this._readCapability.resolve(); + }); + readableStream.on('error', function (reason) { + _this._error(reason); + }); + + if (!this._isStreamingSupported && this._isRangeSupported) { + this._error(new _util.AbortException('streaming is disabled')); + } + + if (this._storedError) { + this._readableStream.destroy(this._storedError); + } + } + }, { + key: "headersReady", + get: function get() { + return this._headersCapability.promise; + } + }, { + key: "filename", + get: function get() { + return this._filename; + } + }, { + key: "contentLength", + get: function get() { + return this._contentLength; + } + }, { + key: "isRangeSupported", + get: function get() { + return this._isRangeSupported; + } + }, { + key: "isStreamingSupported", + get: function get() { + return this._isStreamingSupported; + } + }]); + + return BaseFullReader; +}(); + +var BaseRangeReader = +/*#__PURE__*/ +function () { + function BaseRangeReader(stream) { + _classCallCheck(this, BaseRangeReader); + + this._url = stream.url; + this._done = false; + this._storedError = null; + this.onProgress = null; + this._loaded = 0; + this._readableStream = null; + this._readCapability = (0, _util.createPromiseCapability)(); + var source = stream.source; + this._isStreamingSupported = !source.disableStream; + } + + _createClass(BaseRangeReader, [{ + key: "read", + value: function () { + var _read2 = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee2() { + var chunk, buffer; + return _regenerator["default"].wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + _context2.next = 2; + return this._readCapability.promise; + + case 2: + if (!this._done) { + _context2.next = 4; + break; + } + + return _context2.abrupt("return", { + value: undefined, + done: true + }); + + case 4: + if (!this._storedError) { + _context2.next = 6; + break; + } + + throw this._storedError; + + case 6: + chunk = this._readableStream.read(); + + if (!(chunk === null)) { + _context2.next = 10; + break; + } + + this._readCapability = (0, _util.createPromiseCapability)(); + return _context2.abrupt("return", this.read()); + + case 10: + this._loaded += chunk.length; + + if (this.onProgress) { + this.onProgress({ + loaded: this._loaded + }); + } + + buffer = new Uint8Array(chunk).buffer; + return _context2.abrupt("return", { + value: buffer, + done: false + }); + + case 14: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + function read() { + return _read2.apply(this, arguments); + } + + return read; + }() + }, { + key: "cancel", + value: function cancel(reason) { + if (!this._readableStream) { + this._error(reason); + + return; + } + + this._readableStream.destroy(reason); + } + }, { + key: "_error", + value: function _error(reason) { + this._storedError = reason; + + this._readCapability.resolve(); + } + }, { + key: "_setReadableStream", + value: function _setReadableStream(readableStream) { + var _this2 = this; + + this._readableStream = readableStream; + readableStream.on('readable', function () { + _this2._readCapability.resolve(); + }); + readableStream.on('end', function () { + readableStream.destroy(); + _this2._done = true; + + _this2._readCapability.resolve(); + }); + readableStream.on('error', function (reason) { + _this2._error(reason); + }); + + if (this._storedError) { + this._readableStream.destroy(this._storedError); + } + } + }, { + key: "isStreamingSupported", + get: function get() { + return this._isStreamingSupported; + } + }]); + + return BaseRangeReader; +}(); + +function createRequestOptions(url, headers) { + return { + protocol: url.protocol, + auth: url.auth, + host: url.hostname, + port: url.port, + path: url.path, + method: 'GET', + headers: headers + }; +} + +var PDFNodeStreamFullReader = +/*#__PURE__*/ +function (_BaseFullReader) { + _inherits(PDFNodeStreamFullReader, _BaseFullReader); + + function PDFNodeStreamFullReader(stream) { + var _this3; + + _classCallCheck(this, PDFNodeStreamFullReader); + + _this3 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFullReader).call(this, stream)); + + var handleResponse = function handleResponse(response) { + if (response.statusCode === 404) { + var error = new _util.MissingPDFException("Missing PDF \"".concat(_this3._url, "\".")); + _this3._storedError = error; + + _this3._headersCapability.reject(error); + + return; + } + + _this3._headersCapability.resolve(); + + _this3._setReadableStream(response); + + var getResponseHeader = function getResponseHeader(name) { + return _this3._readableStream.headers[name.toLowerCase()]; + }; + + var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ + getResponseHeader: getResponseHeader, + isHttp: stream.isHttp, + rangeChunkSize: _this3._rangeChunkSize, + disableRange: _this3._disableRange + }), + allowRangeRequests = _validateRangeRequest.allowRangeRequests, + suggestedLength = _validateRangeRequest.suggestedLength; + + _this3._isRangeSupported = allowRangeRequests; + _this3._contentLength = suggestedLength || _this3._contentLength; + _this3._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); + }; + + _this3._request = null; + + if (_this3._url.protocol === 'http:') { + _this3._request = http.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse); + } else { + _this3._request = https.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse); + } + + _this3._request.on('error', function (reason) { + _this3._storedError = reason; + + _this3._headersCapability.reject(reason); + }); + + _this3._request.end(); + + return _this3; + } + + return PDFNodeStreamFullReader; +}(BaseFullReader); + +var PDFNodeStreamRangeReader = +/*#__PURE__*/ +function (_BaseRangeReader) { + _inherits(PDFNodeStreamRangeReader, _BaseRangeReader); + + function PDFNodeStreamRangeReader(stream, start, end) { + var _this4; + + _classCallCheck(this, PDFNodeStreamRangeReader); + + _this4 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamRangeReader).call(this, stream)); + _this4._httpHeaders = {}; + + for (var property in stream.httpHeaders) { + var value = stream.httpHeaders[property]; + + if (typeof value === 'undefined') { + continue; + } + + _this4._httpHeaders[property] = value; + } + + _this4._httpHeaders['Range'] = "bytes=".concat(start, "-").concat(end - 1); + + var handleResponse = function handleResponse(response) { + if (response.statusCode === 404) { + var error = new _util.MissingPDFException("Missing PDF \"".concat(_this4._url, "\".")); + _this4._storedError = error; + return; + } + + _this4._setReadableStream(response); + }; + + _this4._request = null; + + if (_this4._url.protocol === 'http:') { + _this4._request = http.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse); + } else { + _this4._request = https.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse); + } + + _this4._request.on('error', function (reason) { + _this4._storedError = reason; + }); + + _this4._request.end(); + + return _this4; + } + + return PDFNodeStreamRangeReader; +}(BaseRangeReader); + +var PDFNodeStreamFsFullReader = +/*#__PURE__*/ +function (_BaseFullReader2) { + _inherits(PDFNodeStreamFsFullReader, _BaseFullReader2); + + function PDFNodeStreamFsFullReader(stream) { + var _this5; + + _classCallCheck(this, PDFNodeStreamFsFullReader); + + _this5 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFsFullReader).call(this, stream)); + var path = decodeURIComponent(_this5._url.path); + + if (fileUriRegex.test(_this5._url.href)) { + path = path.replace(/^\//, ''); + } + + fs.lstat(path, function (error, stat) { + if (error) { + if (error.code === 'ENOENT') { + error = new _util.MissingPDFException("Missing PDF \"".concat(path, "\".")); + } + + _this5._storedError = error; + + _this5._headersCapability.reject(error); + + return; + } + + _this5._contentLength = stat.size; + + _this5._setReadableStream(fs.createReadStream(path)); + + _this5._headersCapability.resolve(); + }); + return _this5; + } + + return PDFNodeStreamFsFullReader; +}(BaseFullReader); + +var PDFNodeStreamFsRangeReader = +/*#__PURE__*/ +function (_BaseRangeReader2) { + _inherits(PDFNodeStreamFsRangeReader, _BaseRangeReader2); + + function PDFNodeStreamFsRangeReader(stream, start, end) { + var _this6; + + _classCallCheck(this, PDFNodeStreamFsRangeReader); + + _this6 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFsRangeReader).call(this, stream)); + var path = decodeURIComponent(_this6._url.path); + + if (fileUriRegex.test(_this6._url.href)) { + path = path.replace(/^\//, ''); + } + + _this6._setReadableStream(fs.createReadStream(path, { + start: start, + end: end - 1 + })); + + return _this6; + } + + return PDFNodeStreamFsRangeReader; +}(BaseRangeReader); + +/***/ }), +/* 166 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.createResponseStatusError = createResponseStatusError; +exports.extractFilenameFromHeader = extractFilenameFromHeader; +exports.validateRangeRequestCapabilities = validateRangeRequestCapabilities; +exports.validateResponseStatus = validateResponseStatus; + +var _util = __w_pdfjs_require__(1); + +var _content_disposition = __w_pdfjs_require__(167); + +function validateRangeRequestCapabilities(_ref) { + var getResponseHeader = _ref.getResponseHeader, + isHttp = _ref.isHttp, + rangeChunkSize = _ref.rangeChunkSize, + disableRange = _ref.disableRange; + (0, _util.assert)(rangeChunkSize > 0, 'Range chunk size must be larger than zero'); + var returnValues = { + allowRangeRequests: false, + suggestedLength: undefined + }; + var length = parseInt(getResponseHeader('Content-Length'), 10); + + if (!Number.isInteger(length)) { + return returnValues; + } + + returnValues.suggestedLength = length; + + if (length <= 2 * rangeChunkSize) { + return returnValues; + } + + if (disableRange || !isHttp) { + return returnValues; + } + + if (getResponseHeader('Accept-Ranges') !== 'bytes') { + return returnValues; + } + + var contentEncoding = getResponseHeader('Content-Encoding') || 'identity'; + + if (contentEncoding !== 'identity') { + return returnValues; + } + + returnValues.allowRangeRequests = true; + return returnValues; +} + +function extractFilenameFromHeader(getResponseHeader) { + var contentDisposition = getResponseHeader('Content-Disposition'); + + if (contentDisposition) { + var filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition); + + if (/\.pdf$/i.test(filename)) { + return filename; + } + } + + return null; +} + +function createResponseStatusError(status, url) { + if (status === 404 || status === 0 && /^file:/.test(url)) { + return new _util.MissingPDFException('Missing PDF "' + url + '".'); + } + + return new _util.UnexpectedResponseException('Unexpected server response (' + status + ') while retrieving PDF "' + url + '".', status); +} + +function validateResponseStatus(status) { + return status === 200 || status === 206; +} + +/***/ }), +/* 167 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader; + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } + +function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function getFilenameFromContentDispositionHeader(contentDisposition) { + var needsEncodingFixup = true; + var tmp = toParamRegExp('filename\\*', 'i').exec(contentDisposition); + + if (tmp) { + tmp = tmp[1]; + var filename = rfc2616unquote(tmp); + filename = unescape(filename); + filename = rfc5987decode(filename); + filename = rfc2047decode(filename); + return fixupEncoding(filename); + } + + tmp = rfc2231getparam(contentDisposition); + + if (tmp) { + var _filename = rfc2047decode(tmp); + + return fixupEncoding(_filename); + } + + tmp = toParamRegExp('filename', 'i').exec(contentDisposition); + + if (tmp) { + tmp = tmp[1]; + + var _filename2 = rfc2616unquote(tmp); + + _filename2 = rfc2047decode(_filename2); + return fixupEncoding(_filename2); + } + + function toParamRegExp(attributePattern, flags) { + return new RegExp('(?:^|;)\\s*' + attributePattern + '\\s*=\\s*' + '(' + '[^";\\s][^;\\s]*' + '|' + '"(?:[^"\\\\]|\\\\"?)+"?' + ')', flags); + } + + function textdecode(encoding, value) { + if (encoding) { + if (!/^[\x00-\xFF]+$/.test(value)) { + return value; + } + + try { + var decoder = new TextDecoder(encoding, { + fatal: true + }); + var bytes = Array.from(value, function (ch) { + return ch.charCodeAt(0) & 0xFF; + }); + value = decoder.decode(new Uint8Array(bytes)); + needsEncodingFixup = false; + } catch (e) { + if (/^utf-?8$/i.test(encoding)) { + try { + value = decodeURIComponent(escape(value)); + needsEncodingFixup = false; + } catch (err) {} + } + } + } + + return value; + } + + function fixupEncoding(value) { + if (needsEncodingFixup && /[\x80-\xff]/.test(value)) { + value = textdecode('utf-8', value); + + if (needsEncodingFixup) { + value = textdecode('iso-8859-1', value); + } + } + + return value; + } + + function rfc2231getparam(contentDisposition) { + var matches = [], + match; + var iter = toParamRegExp('filename\\*((?!0\\d)\\d+)(\\*?)', 'ig'); + + while ((match = iter.exec(contentDisposition)) !== null) { + var _match = match, + _match2 = _slicedToArray(_match, 4), + n = _match2[1], + quot = _match2[2], + part = _match2[3]; + + n = parseInt(n, 10); + + if (n in matches) { + if (n === 0) { + break; + } + + continue; + } + + matches[n] = [quot, part]; + } + + var parts = []; + + for (var n = 0; n < matches.length; ++n) { + if (!(n in matches)) { + break; + } + + var _matches$n = _slicedToArray(matches[n], 2), + quot = _matches$n[0], + part = _matches$n[1]; + + part = rfc2616unquote(part); + + if (quot) { + part = unescape(part); + + if (n === 0) { + part = rfc5987decode(part); + } + } + + parts.push(part); + } + + return parts.join(''); + } + + function rfc2616unquote(value) { + if (value.startsWith('"')) { + var parts = value.slice(1).split('\\"'); + + for (var i = 0; i < parts.length; ++i) { + var quotindex = parts[i].indexOf('"'); + + if (quotindex !== -1) { + parts[i] = parts[i].slice(0, quotindex); + parts.length = i + 1; + } + + parts[i] = parts[i].replace(/\\(.)/g, '$1'); + } + + value = parts.join('"'); + } + + return value; + } + + function rfc5987decode(extvalue) { + var encodingend = extvalue.indexOf('\''); + + if (encodingend === -1) { + return extvalue; + } + + var encoding = extvalue.slice(0, encodingend); + var langvalue = extvalue.slice(encodingend + 1); + var value = langvalue.replace(/^[^']*'/, ''); + return textdecode(encoding, value); + } + + function rfc2047decode(value) { + if (!value.startsWith('=?') || /[\x00-\x19\x80-\xff]/.test(value)) { + return value; + } + + return value.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function (_, charset, encoding, text) { + if (encoding === 'q' || encoding === 'Q') { + text = text.replace(/_/g, ' '); + text = text.replace(/=([0-9a-fA-F]{2})/g, function (_, hex) { + return String.fromCharCode(parseInt(hex, 16)); + }); + return textdecode(charset, text); + } + + try { + text = atob(text); + } catch (e) {} + + return textdecode(charset, text); + }); + } + + return ''; +} + +/***/ }), +/* 168 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFNetworkStream = void 0; + +var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); + +var _util = __w_pdfjs_require__(1); + +var _network_utils = __w_pdfjs_require__(166); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +; +var OK_RESPONSE = 200; +var PARTIAL_CONTENT_RESPONSE = 206; + +function getArrayBuffer(xhr) { + var data = xhr.response; + + if (typeof data !== 'string') { + return data; + } + + var array = (0, _util.stringToBytes)(data); + return array.buffer; +} + +var NetworkManager = +/*#__PURE__*/ +function () { + function NetworkManager(url, args) { + _classCallCheck(this, NetworkManager); + + this.url = url; + args = args || {}; + this.isHttp = /^https?:/i.test(url); + this.httpHeaders = this.isHttp && args.httpHeaders || {}; + this.withCredentials = args.withCredentials || false; + + this.getXhr = args.getXhr || function NetworkManager_getXhr() { + return new XMLHttpRequest(); + }; + + this.currXhrId = 0; + this.pendingRequests = Object.create(null); + } + + _createClass(NetworkManager, [{ + key: "requestRange", + value: function requestRange(begin, end, listeners) { + var args = { + begin: begin, + end: end + }; + + for (var prop in listeners) { + args[prop] = listeners[prop]; + } + + return this.request(args); + } + }, { + key: "requestFull", + value: function requestFull(listeners) { + return this.request(listeners); + } + }, { + key: "request", + value: function request(args) { + var xhr = this.getXhr(); + var xhrId = this.currXhrId++; + var pendingRequest = this.pendingRequests[xhrId] = { + xhr: xhr + }; + xhr.open('GET', this.url); + xhr.withCredentials = this.withCredentials; + + for (var property in this.httpHeaders) { + var value = this.httpHeaders[property]; + + if (typeof value === 'undefined') { + continue; + } + + xhr.setRequestHeader(property, value); + } + + if (this.isHttp && 'begin' in args && 'end' in args) { + xhr.setRequestHeader('Range', "bytes=".concat(args.begin, "-").concat(args.end - 1)); + pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE; + } else { + pendingRequest.expectedStatus = OK_RESPONSE; + } + + xhr.responseType = 'arraybuffer'; + + if (args.onError) { + xhr.onerror = function (evt) { + args.onError(xhr.status); + }; + } + + xhr.onreadystatechange = this.onStateChange.bind(this, xhrId); + xhr.onprogress = this.onProgress.bind(this, xhrId); + pendingRequest.onHeadersReceived = args.onHeadersReceived; + pendingRequest.onDone = args.onDone; + pendingRequest.onError = args.onError; + pendingRequest.onProgress = args.onProgress; + xhr.send(null); + return xhrId; + } + }, { + key: "onProgress", + value: function onProgress(xhrId, evt) { + var pendingRequest = this.pendingRequests[xhrId]; + + if (!pendingRequest) { + return; + } + + if (pendingRequest.onProgress) { + pendingRequest.onProgress(evt); + } + } + }, { + key: "onStateChange", + value: function onStateChange(xhrId, evt) { + var pendingRequest = this.pendingRequests[xhrId]; + + if (!pendingRequest) { + return; + } + + var xhr = pendingRequest.xhr; + + if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) { + pendingRequest.onHeadersReceived(); + delete pendingRequest.onHeadersReceived; + } + + if (xhr.readyState !== 4) { + return; + } + + if (!(xhrId in this.pendingRequests)) { + return; + } + + delete this.pendingRequests[xhrId]; + + if (xhr.status === 0 && this.isHttp) { + if (pendingRequest.onError) { + pendingRequest.onError(xhr.status); + } + + return; + } + + var xhrStatus = xhr.status || OK_RESPONSE; + var ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE; + + if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) { + if (pendingRequest.onError) { + pendingRequest.onError(xhr.status); + } + + return; + } + + var chunk = getArrayBuffer(xhr); + + if (xhrStatus === PARTIAL_CONTENT_RESPONSE) { + var rangeHeader = xhr.getResponseHeader('Content-Range'); + var matches = /bytes (\d+)-(\d+)\/(\d+)/.exec(rangeHeader); + pendingRequest.onDone({ + begin: parseInt(matches[1], 10), + chunk: chunk + }); + } else if (chunk) { + pendingRequest.onDone({ + begin: 0, + chunk: chunk + }); + } else if (pendingRequest.onError) { + pendingRequest.onError(xhr.status); + } + } + }, { + key: "hasPendingRequests", + value: function hasPendingRequests() { + for (var xhrId in this.pendingRequests) { + return true; + } + + return false; + } + }, { + key: "getRequestXhr", + value: function getRequestXhr(xhrId) { + return this.pendingRequests[xhrId].xhr; + } + }, { + key: "isPendingRequest", + value: function isPendingRequest(xhrId) { + return xhrId in this.pendingRequests; + } + }, { + key: "abortAllRequests", + value: function abortAllRequests() { + for (var xhrId in this.pendingRequests) { + this.abortRequest(xhrId | 0); + } + } + }, { + key: "abortRequest", + value: function abortRequest(xhrId) { + var xhr = this.pendingRequests[xhrId].xhr; + delete this.pendingRequests[xhrId]; + xhr.abort(); + } + }]); + + return NetworkManager; +}(); + +var PDFNetworkStream = +/*#__PURE__*/ +function () { + function PDFNetworkStream(source) { + _classCallCheck(this, PDFNetworkStream); + + this._source = source; + this._manager = new NetworkManager(source.url, { + httpHeaders: source.httpHeaders, + withCredentials: source.withCredentials + }); + this._rangeChunkSize = source.rangeChunkSize; + this._fullRequestReader = null; + this._rangeRequestReaders = []; + } + + _createClass(PDFNetworkStream, [{ + key: "_onRangeRequestReaderClosed", + value: function _onRangeRequestReaderClosed(reader) { + var i = this._rangeRequestReaders.indexOf(reader); + + if (i >= 0) { + this._rangeRequestReaders.splice(i, 1); + } + } + }, { + key: "getFullReader", + value: function getFullReader() { + (0, _util.assert)(!this._fullRequestReader); + this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source); + return this._fullRequestReader; + } + }, { + key: "getRangeReader", + value: function getRangeReader(begin, end) { + var reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end); + reader.onClosed = this._onRangeRequestReaderClosed.bind(this); + + this._rangeRequestReaders.push(reader); + + return reader; + } + }, { + key: "cancelAllRequests", + value: function cancelAllRequests(reason) { + if (this._fullRequestReader) { + this._fullRequestReader.cancel(reason); + } + + var readers = this._rangeRequestReaders.slice(0); + + readers.forEach(function (reader) { + reader.cancel(reason); + }); + } + }]); + + return PDFNetworkStream; +}(); + +exports.PDFNetworkStream = PDFNetworkStream; + +var PDFNetworkStreamFullRequestReader = +/*#__PURE__*/ +function () { + function PDFNetworkStreamFullRequestReader(manager, source) { + _classCallCheck(this, PDFNetworkStreamFullRequestReader); + + this._manager = manager; + var args = { + onHeadersReceived: this._onHeadersReceived.bind(this), + onDone: this._onDone.bind(this), + onError: this._onError.bind(this), + onProgress: this._onProgress.bind(this) + }; + this._url = source.url; + this._fullRequestId = manager.requestFull(args); + this._headersReceivedCapability = (0, _util.createPromiseCapability)(); + this._disableRange = source.disableRange || false; + this._contentLength = source.length; + this._rangeChunkSize = source.rangeChunkSize; + + if (!this._rangeChunkSize && !this._disableRange) { + this._disableRange = true; + } + + this._isStreamingSupported = false; + this._isRangeSupported = false; + this._cachedChunks = []; + this._requests = []; + this._done = false; + this._storedError = undefined; + this._filename = null; + this.onProgress = null; + } + + _createClass(PDFNetworkStreamFullRequestReader, [{ + key: "_onHeadersReceived", + value: function _onHeadersReceived() { + var fullRequestXhrId = this._fullRequestId; + + var fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId); + + var getResponseHeader = function getResponseHeader(name) { + return fullRequestXhr.getResponseHeader(name); + }; + + var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ + getResponseHeader: getResponseHeader, + isHttp: this._manager.isHttp, + rangeChunkSize: this._rangeChunkSize, + disableRange: this._disableRange + }), + allowRangeRequests = _validateRangeRequest.allowRangeRequests, + suggestedLength = _validateRangeRequest.suggestedLength; + + if (allowRangeRequests) { + this._isRangeSupported = true; + } + + this._contentLength = suggestedLength || this._contentLength; + this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); + + if (this._isRangeSupported) { + this._manager.abortRequest(fullRequestXhrId); + } + + this._headersReceivedCapability.resolve(); + } + }, { + key: "_onDone", + value: function _onDone(args) { + if (args) { + if (this._requests.length > 0) { + var requestCapability = this._requests.shift(); + + requestCapability.resolve({ + value: args.chunk, + done: false + }); + } else { + this._cachedChunks.push(args.chunk); + } + } + + this._done = true; + + if (this._cachedChunks.length > 0) { + return; + } + + this._requests.forEach(function (requestCapability) { + requestCapability.resolve({ + value: undefined, + done: true + }); + }); + + this._requests = []; + } + }, { + key: "_onError", + value: function _onError(status) { + var url = this._url; + var exception = (0, _network_utils.createResponseStatusError)(status, url); + this._storedError = exception; + + this._headersReceivedCapability.reject(exception); + + this._requests.forEach(function (requestCapability) { + requestCapability.reject(exception); + }); + + this._requests = []; + this._cachedChunks = []; + } + }, { + key: "_onProgress", + value: function _onProgress(data) { + if (this.onProgress) { + this.onProgress({ + loaded: data.loaded, + total: data.lengthComputable ? data.total : this._contentLength + }); + } + } + }, { + key: "read", + value: function () { + var _read = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee() { + var chunk, requestCapability; + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + if (!this._storedError) { + _context.next = 2; + break; + } + + throw this._storedError; + + case 2: + if (!(this._cachedChunks.length > 0)) { + _context.next = 5; + break; + } + + chunk = this._cachedChunks.shift(); + return _context.abrupt("return", { + value: chunk, + done: false + }); + + case 5: + if (!this._done) { + _context.next = 7; + break; + } + + return _context.abrupt("return", { + value: undefined, + done: true + }); + + case 7: + requestCapability = (0, _util.createPromiseCapability)(); + + this._requests.push(requestCapability); + + return _context.abrupt("return", requestCapability.promise); + + case 10: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function read() { + return _read.apply(this, arguments); + } + + return read; + }() + }, { + key: "cancel", + value: function cancel(reason) { + this._done = true; + + this._headersReceivedCapability.reject(reason); + + this._requests.forEach(function (requestCapability) { + requestCapability.resolve({ + value: undefined, + done: true + }); + }); + + this._requests = []; + + if (this._manager.isPendingRequest(this._fullRequestId)) { + this._manager.abortRequest(this._fullRequestId); + } + + this._fullRequestReader = null; + } + }, { + key: "filename", + get: function get() { + return this._filename; + } + }, { + key: "isRangeSupported", + get: function get() { + return this._isRangeSupported; + } + }, { + key: "isStreamingSupported", + get: function get() { + return this._isStreamingSupported; + } + }, { + key: "contentLength", + get: function get() { + return this._contentLength; + } + }, { + key: "headersReady", + get: function get() { + return this._headersReceivedCapability.promise; + } + }]); + + return PDFNetworkStreamFullRequestReader; +}(); + +var PDFNetworkStreamRangeRequestReader = +/*#__PURE__*/ +function () { + function PDFNetworkStreamRangeRequestReader(manager, begin, end) { + _classCallCheck(this, PDFNetworkStreamRangeRequestReader); + + this._manager = manager; + var args = { + onDone: this._onDone.bind(this), + onProgress: this._onProgress.bind(this) + }; + this._requestId = manager.requestRange(begin, end, args); + this._requests = []; + this._queuedChunk = null; + this._done = false; + this.onProgress = null; + this.onClosed = null; + } + + _createClass(PDFNetworkStreamRangeRequestReader, [{ + key: "_close", + value: function _close() { + if (this.onClosed) { + this.onClosed(this); + } + } + }, { + key: "_onDone", + value: function _onDone(data) { + var chunk = data.chunk; + + if (this._requests.length > 0) { + var requestCapability = this._requests.shift(); + + requestCapability.resolve({ + value: chunk, + done: false + }); + } else { + this._queuedChunk = chunk; + } + + this._done = true; + + this._requests.forEach(function (requestCapability) { + requestCapability.resolve({ + value: undefined, + done: true + }); + }); + + this._requests = []; + + this._close(); + } + }, { + key: "_onProgress", + value: function _onProgress(evt) { + if (!this.isStreamingSupported && this.onProgress) { + this.onProgress({ + loaded: evt.loaded + }); + } + } + }, { + key: "read", + value: function () { + var _read2 = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee2() { + var chunk, requestCapability; + return _regenerator["default"].wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + if (!(this._queuedChunk !== null)) { + _context2.next = 4; + break; + } + + chunk = this._queuedChunk; + this._queuedChunk = null; + return _context2.abrupt("return", { + value: chunk, + done: false + }); + + case 4: + if (!this._done) { + _context2.next = 6; + break; + } + + return _context2.abrupt("return", { + value: undefined, + done: true + }); + + case 6: + requestCapability = (0, _util.createPromiseCapability)(); + + this._requests.push(requestCapability); + + return _context2.abrupt("return", requestCapability.promise); + + case 9: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + function read() { + return _read2.apply(this, arguments); + } + + return read; + }() + }, { + key: "cancel", + value: function cancel(reason) { + this._done = true; + + this._requests.forEach(function (requestCapability) { + requestCapability.resolve({ + value: undefined, + done: true + }); + }); + + this._requests = []; + + if (this._manager.isPendingRequest(this._requestId)) { + this._manager.abortRequest(this._requestId); + } + + this._close(); + } + }, { + key: "isStreamingSupported", + get: function get() { + return false; + } + }]); + + return PDFNetworkStreamRangeRequestReader; +}(); + +/***/ }), +/* 169 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFFetchStream = void 0; + +var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); + +var _util = __w_pdfjs_require__(1); + +var _network_utils = __w_pdfjs_require__(166); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function createFetchOptions(headers, withCredentials, abortController) { + return { + method: 'GET', + headers: headers, + signal: abortController && abortController.signal, + mode: 'cors', + credentials: withCredentials ? 'include' : 'same-origin', + redirect: 'follow' + }; +} + +var PDFFetchStream = +/*#__PURE__*/ +function () { + function PDFFetchStream(source) { + _classCallCheck(this, PDFFetchStream); + + this.source = source; + this.isHttp = /^https?:/i.test(source.url); + this.httpHeaders = this.isHttp && source.httpHeaders || {}; + this._fullRequestReader = null; + this._rangeRequestReaders = []; + } + + _createClass(PDFFetchStream, [{ + key: "getFullReader", + value: function getFullReader() { + (0, _util.assert)(!this._fullRequestReader); + this._fullRequestReader = new PDFFetchStreamReader(this); + return this._fullRequestReader; + } + }, { + key: "getRangeReader", + value: function getRangeReader(begin, end) { + if (end <= this._progressiveDataLength) { + return null; + } + + var reader = new PDFFetchStreamRangeReader(this, begin, end); + + this._rangeRequestReaders.push(reader); + + return reader; + } + }, { + key: "cancelAllRequests", + value: function cancelAllRequests(reason) { + if (this._fullRequestReader) { + this._fullRequestReader.cancel(reason); + } + + var readers = this._rangeRequestReaders.slice(0); + + readers.forEach(function (reader) { + reader.cancel(reason); + }); + } + }, { + key: "_progressiveDataLength", + get: function get() { + return this._fullRequestReader ? this._fullRequestReader._loaded : 0; + } + }]); + + return PDFFetchStream; +}(); + +exports.PDFFetchStream = PDFFetchStream; + +var PDFFetchStreamReader = +/*#__PURE__*/ +function () { + function PDFFetchStreamReader(stream) { + var _this = this; + + _classCallCheck(this, PDFFetchStreamReader); + + this._stream = stream; + this._reader = null; + this._loaded = 0; + this._filename = null; + var source = stream.source; + this._withCredentials = source.withCredentials || false; + this._contentLength = source.length; + this._headersCapability = (0, _util.createPromiseCapability)(); + this._disableRange = source.disableRange || false; + this._rangeChunkSize = source.rangeChunkSize; + + if (!this._rangeChunkSize && !this._disableRange) { + this._disableRange = true; + } + + if (typeof AbortController !== 'undefined') { + this._abortController = new AbortController(); + } + + this._isStreamingSupported = !source.disableStream; + this._isRangeSupported = !source.disableRange; + this._headers = new Headers(); + + for (var property in this._stream.httpHeaders) { + var value = this._stream.httpHeaders[property]; + + if (typeof value === 'undefined') { + continue; + } + + this._headers.append(property, value); + } + + var url = source.url; + fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) { + if (!(0, _network_utils.validateResponseStatus)(response.status)) { + throw (0, _network_utils.createResponseStatusError)(response.status, url); + } + + _this._reader = response.body.getReader(); + + _this._headersCapability.resolve(); + + var getResponseHeader = function getResponseHeader(name) { + return response.headers.get(name); + }; + + var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ + getResponseHeader: getResponseHeader, + isHttp: _this._stream.isHttp, + rangeChunkSize: _this._rangeChunkSize, + disableRange: _this._disableRange + }), + allowRangeRequests = _validateRangeRequest.allowRangeRequests, + suggestedLength = _validateRangeRequest.suggestedLength; + + _this._isRangeSupported = allowRangeRequests; + _this._contentLength = suggestedLength || _this._contentLength; + _this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); + + if (!_this._isStreamingSupported && _this._isRangeSupported) { + _this.cancel(new _util.AbortException('Streaming is disabled.')); + } + })["catch"](this._headersCapability.reject); + this.onProgress = null; + } + + _createClass(PDFFetchStreamReader, [{ + key: "read", + value: function () { + var _read = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee() { + var _ref, value, done, buffer; + + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return this._headersCapability.promise; + + case 2: + _context.next = 4; + return this._reader.read(); + + case 4: + _ref = _context.sent; + value = _ref.value; + done = _ref.done; + + if (!done) { + _context.next = 9; + break; + } + + return _context.abrupt("return", { + value: value, + done: done + }); + + case 9: + this._loaded += value.byteLength; + + if (this.onProgress) { + this.onProgress({ + loaded: this._loaded, + total: this._contentLength + }); + } + + buffer = new Uint8Array(value).buffer; + return _context.abrupt("return", { + value: buffer, + done: false + }); + + case 13: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function read() { + return _read.apply(this, arguments); + } + + return read; + }() + }, { + key: "cancel", + value: function cancel(reason) { + if (this._reader) { + this._reader.cancel(reason); + } + + if (this._abortController) { + this._abortController.abort(); + } + } + }, { + key: "headersReady", + get: function get() { + return this._headersCapability.promise; + } + }, { + key: "filename", + get: function get() { + return this._filename; + } + }, { + key: "contentLength", + get: function get() { + return this._contentLength; + } + }, { + key: "isRangeSupported", + get: function get() { + return this._isRangeSupported; + } + }, { + key: "isStreamingSupported", + get: function get() { + return this._isStreamingSupported; + } + }]); + + return PDFFetchStreamReader; +}(); + +var PDFFetchStreamRangeReader = +/*#__PURE__*/ +function () { + function PDFFetchStreamRangeReader(stream, begin, end) { + var _this2 = this; + + _classCallCheck(this, PDFFetchStreamRangeReader); + + this._stream = stream; + this._reader = null; + this._loaded = 0; + var source = stream.source; + this._withCredentials = source.withCredentials || false; + this._readCapability = (0, _util.createPromiseCapability)(); + this._isStreamingSupported = !source.disableStream; + + if (typeof AbortController !== 'undefined') { + this._abortController = new AbortController(); + } + + this._headers = new Headers(); + + for (var property in this._stream.httpHeaders) { + var value = this._stream.httpHeaders[property]; + + if (typeof value === 'undefined') { + continue; + } + + this._headers.append(property, value); + } + + this._headers.append('Range', "bytes=".concat(begin, "-").concat(end - 1)); + + var url = source.url; + fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) { + if (!(0, _network_utils.validateResponseStatus)(response.status)) { + throw (0, _network_utils.createResponseStatusError)(response.status, url); + } + + _this2._readCapability.resolve(); + + _this2._reader = response.body.getReader(); + }); + this.onProgress = null; + } + + _createClass(PDFFetchStreamRangeReader, [{ + key: "read", + value: function () { + var _read2 = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee2() { + var _ref2, value, done, buffer; + + return _regenerator["default"].wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + _context2.next = 2; + return this._readCapability.promise; + + case 2: + _context2.next = 4; + return this._reader.read(); + + case 4: + _ref2 = _context2.sent; + value = _ref2.value; + done = _ref2.done; + + if (!done) { + _context2.next = 9; + break; + } + + return _context2.abrupt("return", { + value: value, + done: done + }); + + case 9: + this._loaded += value.byteLength; + + if (this.onProgress) { + this.onProgress({ + loaded: this._loaded + }); + } + + buffer = new Uint8Array(value).buffer; + return _context2.abrupt("return", { + value: buffer, + done: false + }); + + case 13: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + function read() { + return _read2.apply(this, arguments); + } + + return read; + }() + }, { + key: "cancel", + value: function cancel(reason) { + if (this._reader) { + this._reader.cancel(reason); + } + + if (this._abortController) { + this._abortController.abort(); + } + } + }, { + key: "isStreamingSupported", + get: function get() { + return this._isStreamingSupported; + } + }]); + + return PDFFetchStreamRangeReader; +}(); + +/***/ }) +/******/ ]); +}); +//# sourceMappingURL=pdf.js.map \ No newline at end of file diff --git a/htdocs/vendor/pdfjs/build/pdf.js.map b/htdocs/vendor/pdfjs/build/pdf.js.map new file mode 100644 index 0000000..7da23f8 --- /dev/null +++ b/htdocs/vendor/pdfjs/build/pdf.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://pdfjs-dist/build/pdf/webpack/universalModuleDefinition","webpack://pdfjs-dist/build/pdf/webpack/bootstrap","webpack://pdfjs-dist/build/pdf/src/pdf.js","webpack://pdfjs-dist/build/pdf/src/shared/util.js","webpack://pdfjs-dist/build/pdf/src/shared/compatibility.js","webpack://pdfjs-dist/build/pdf/src/shared/global_scope.js","webpack://pdfjs-dist/build/pdf/src/shared/is_node.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/string/starts-with.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.starts-with.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_export.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_global.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_core.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_hide.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-dp.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_an-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_is-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_ie8-dom-define.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_descriptors.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_fails.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_dom-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_to-primitive.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_property-desc.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_redefine.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_has.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_uid.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_function-to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_shared.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_library.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_ctx.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_a-function.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_to-length.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_to-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_string-context.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_is-regexp.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_cof.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_wks.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_defined.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_fails-is-regexp.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/string/ends-with.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.ends-with.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/string/includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/array/includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.array.includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_array-includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_to-iobject.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iobject.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_to-absolute-index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_add-to-unscopables.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/array/from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_string-at.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iter-define.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iterators.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iter-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-dps.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-keys-internal.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_shared-key.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_enum-bug-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_html.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_set-to-string-tag.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-gpo.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_to-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iter-call.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_is-array-iter.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_create-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/core.get-iterator-method.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_classof.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iter-detect.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/object/assign.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.object.assign.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-assign.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-gops.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-pie.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/math/log2.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.math.log2.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/number/is-nan.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.number.is-nan.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/number/is-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.number.is-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_is-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/promise.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.object.to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/web.dom.iterable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iter-step.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.promise.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_an-instance.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_for-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_species-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_task.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_invoke.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_microtask.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_new-promise-capability.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_perform.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_user-agent.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_promise-resolve.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_redefine-all.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_set-species.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.promise.finally.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.promise.try.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/weak-map.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.weak-map.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_array-methods.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_array-species-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_array-species-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_is-array.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_meta.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_collection-weak.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_validate-collection.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_collection.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_inherit-if-required.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_set-proto.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-gopd.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.weak-map.of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_set-collection-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.weak-map.from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_set-collection-from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/weak-set.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.weak-set.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.weak-set.of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.weak-set.from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/string/code-point-at.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.code-point-at.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/string/from-code-point.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.from-code-point.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es6/symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_wks-ext.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_wks-define.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_enum-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-gopn-ext.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-gopn.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/string/pad-start.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.string.pad-start.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_string-pad.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_string-repeat.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/string/pad-end.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.string.pad-end.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/object/values.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.object.values.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-to-array.js","webpack://pdfjs-dist/build/pdf/src/shared/streams_polyfill.js","webpack://pdfjs-dist/build/pdf/external/streams/streams-lib.js","webpack://pdfjs-dist/build/pdf/src/shared/url_polyfill.js","webpack://pdfjs-dist/build/pdf/external/url/url-lib.js","webpack://pdfjs-dist/build/pdf/src/display/api.js","webpack://pdfjs-dist/build/pdf/node_modules/@babel/runtime/regenerator/index.js","webpack://pdfjs-dist/build/pdf/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js","webpack://pdfjs-dist/build/pdf/node_modules/webpack/buildin/module.js","webpack://pdfjs-dist/build/pdf/src/display/display_utils.js","webpack://pdfjs-dist/build/pdf/src/display/font_loader.js","webpack://pdfjs-dist/build/pdf/src/display/api_compatibility.js","webpack://pdfjs-dist/build/pdf/src/display/canvas.js","webpack://pdfjs-dist/build/pdf/src/display/pattern_helper.js","webpack://pdfjs-dist/build/pdf/src/display/worker_options.js","webpack://pdfjs-dist/build/pdf/src/shared/message_handler.js","webpack://pdfjs-dist/build/pdf/src/display/metadata.js","webpack://pdfjs-dist/build/pdf/src/display/xml_parser.js","webpack://pdfjs-dist/build/pdf/src/display/transport_stream.js","webpack://pdfjs-dist/build/pdf/src/display/webgl.js","webpack://pdfjs-dist/build/pdf/src/display/text_layer.js","webpack://pdfjs-dist/build/pdf/src/display/annotation_layer.js","webpack://pdfjs-dist/build/pdf/src/display/svg.js","webpack://pdfjs-dist/build/pdf/src/display/node_stream.js","webpack://pdfjs-dist/build/pdf/src/display/network_utils.js","webpack://pdfjs-dist/build/pdf/src/display/content_disposition.js","webpack://pdfjs-dist/build/pdf/src/display/network.js","webpack://pdfjs-dist/build/pdf/src/display/fetch_stream.js"],"names":["pdfjsVersion","pdfjsBuild","pdfjsSharedUtil","require","pdfjsDisplayAPI","pdfjsDisplayTextLayer","pdfjsDisplayAnnotationLayer","pdfjsDisplayDisplayUtils","pdfjsDisplaySVG","pdfjsDisplayWorkerOptions","pdfjsDisplayAPICompatibility","isNodeJS","PDFNodeStream","params","PDFNetworkStream","PDFFetchStream","exports","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","NativeImageDecoding","NONE","DECODE","DISPLAY","PermissionFlag","PRINT","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","TextRenderingMode","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","ImageKind","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","AnnotationType","TEXT","LINK","FREETEXT","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","INK","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","AnnotationFlag","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","AnnotationFieldFlag","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","AnnotationBorderStyleType","SOLID","DASHED","BEVELED","INSET","StreamType","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RL","FontType","TYPE1","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","VerbosityLevel","ERRORS","WARNINGS","INFOS","CMapCompressionType","BINARY","STREAM","OPS","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","UNSUPPORTED_FEATURES","unknown","forms","javaScript","smask","shadingPattern","font","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","Number","console","unreachable","base","other","url","absoluteUrl","baseUrl","_isValidProtocol","Object","value","enumerable","configurable","writable","PasswordException","UnknownErrorException","InvalidPDFException","MissingPDFException","UnexpectedResponseException","FormatError","AbortException","NullCharactersRegExp","warn","str","assert","bytes","length","MAX_ARGUMENT_COUNT","String","strBuf","i","chunkEnd","Math","chunk","arr","resultLength","ii","item","itemLength","arrayByteLength","pos","data","stringToBytes","x","offset","buffer8","view32","Util","rgbBuf","m1","m2","xt","p","m","yt","d","p1","p2","r","p3","p4","v","transpose","a","b","c","first","second","sx","sy","rect","orderedX","rect1","rect2","orderedY","result","PDFStringTranslateTable","n","code","decodeURIComponent","escape","unescape","encodeURIComponent","arr1","arr2","element","ch","capability","isSettled","get","resolve","reject","createObjectURL","digits","forceDataSchema","URL","blob","type","buffer","b1","b2","b3","d1","d2","d3","d4","globalScope","hasDOM","Buffer","Element","div","document","OriginalDOMTokenListAdd","DOMTokenList","OriginalDOMTokenListRemove","token","force","arguments","Array","module","window","global","self","process","$export","toLength","context","STARTS_WITH","$startsWith","startsWith","that","index","search","core","hide","redefine","ctx","PROTOTYPE","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","target","expProto","source","own","out","exp","Function","__g","version","__e","dP","createDesc","object","anObject","IE8_DOM_DEFINE","toPrimitive","P","TypeError","O","Attributes","isObject","it","exec","is","S","val","fn","has","SRC","$toString","TO_STRING","TPL","isFunction","hasOwnProperty","id","px","key","SHARED","store","mode","copyright","aFunction","toInteger","min","ceil","floor","isNaN","isRegExp","defined","cof","MATCH","toString","uid","Symbol","USE_SYMBOL","$exports","re","ENDS_WITH","$endsWith","endsWith","endPosition","len","end","INCLUDES","includes","$includes","toIObject","toAbsoluteIndex","IS_INCLUDES","el","IObject","max","UNSCOPABLES","ArrayProto","$at","done","point","s","l","LIBRARY","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","getMethod","kind","proto","TAG","NAME","DEF_VALUES","DEFAULT","VALUES_BUG","Base","$native","$default","$entries","$anyNative","IteratorPrototype","methods","values","keys","IS_SET","entries","create","descriptor","Constructor","next","dPs","enumBugKeys","IE_PROTO","Empty","createDict","iframe","lt","gt","iframeDocument","Properties","getKeys","$keys","arrayIndexOf","names","shared","def","stat","toObject","ObjectProto","call","isArrayIter","createProperty","getIterFn","from","C","aLen","mapfn","mapping","iterFn","iterator","step","ret","$defineProperty","classof","ARG","tryGet","SAFE_CLOSING","riter","safe","iter","assign","DESCRIPTORS","gOPS","pIE","$assign","A","B","K","T","getSymbols","isEnum","j","log2","number","isInteger","isFinite","test","$iterators","wks","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","addToUnscopables","anInstance","forOf","speciesConstructor","task","microtask","newPromiseCapabilityModule","perform","userAgent","promiseResolve","PROMISE","versions","v8","$Promise","isNode","empty","newPromiseCapability","newGenericPromiseCapability","USE_NATIVE","promise","FakePromise","isThenable","notify","chain","ok","run","handler","reaction","domain","onHandleUnhandled","exited","then","isReject","onUnhandled","unhandled","isUnhandled","reason","$reject","$resolve","wrapper","_w","_d","Internal","executor","OwnPromiseCapability","Promise","Wrapper","$$reject","all","remaining","$index","alreadyCalled","race","forbiddenField","name","BREAK","RETURN","f","iterable","SPECIES","invoke","html","cel","setTask","clearTask","MessageChannel","Dispatch","counter","queue","ONREADYSTATECHANGE","listener","event","args","defer","channel","port","setTimeout","set","clear","un","macrotask","Observer","flush","parent","head","last","toggle","node","characterData","e","navigator","promiseCapability","src","onFinally","each","meta","weak","validate","NATIVE_WEAK_MAP","IS_IE11","WEAK_MAP","getWeak","isExtensible","uncaughtFrozenStore","$WeakMap","InternalMap","method","asc","IS_MAP","TYPE","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$create","res","isArray","original","META","setDesc","FREEZE","setMeta","w","fastKey","onFreeze","KEY","NEED","redefineAll","createArrayMethod","$has","arrayFind","arrayFindIndex","UncaughtFrozenStore","findUncaughtFrozen","entry","getConstructor","ufstore","fails","$iterDetect","inheritIfRequired","ADDER","fixMethod","IS_WEAK","common","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","setPrototypeOf","check","buggy","gOPD","of","mapFn","cb","WEAK_SET","add","codePointAt","fromCharCode","$fromCodePoint","fromCodePoint","RangeError","$fails","wksExt","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$GOPS","$DP","gOPN","$Symbol","$JSON","_stringify","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","QObject","setter","setSymbolDesc","protoDesc","wrap","sym","isSymbol","D","$defineProperties","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","tag","$set","es6Symbols","wellKnownSymbols","k","keyFor","useSetter","useSimple","defineProperty","defineProperties","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","FAILS_ON_PRIMITIVES","stringify","$replacer","replacer","symbols","windowNames","getWindowNames","hiddenKeys","$pad","WEBKIT_BUG","padStart","repeat","stringLength","fillStr","fillString","intMaxLength","fillLen","stringFiller","left","padEnd","$values","isReadableStreamSupported","start","controller","installedModules","modules","__w_pdfjs_require__","getter","_typeof","obj","_require","elements","IsPropertyKey","Call","F","highWaterMark","size","message","AssertionError","Error","rethrowAssertionErrorRejection","_createClass","props","InvokeOrNoop","PromiseInvokeOrNoop","ValidateAndNormalizeQueuingStrategy","typeIsObject","_require2","_require3","DequeueValue","EnqueueValueWithSize","PeekQueueValue","ResetQueue","WritableStream","underlyingSink","_ref","_ref$highWaterMark","_classCallCheck","IsWritableStream","streamBrandCheckException","IsWritableStreamLocked","WritableStreamAbort","AcquireWritableStreamDefaultWriter","WritableStreamDefaultControllerError","WritableStreamDefaultWriterCloseWithErrorPropagation","WritableStreamDefaultWriterRelease","WritableStreamDefaultWriterWrite","WritableStreamCloseQueuedOrInFlight","stream","state","error","wasAlreadyErroring","_resolve","_reject","_reason","_wasAlreadyErroring","WritableStreamStartErroring","writeRequest","WritableStreamFinishErroring","writer","WritableStreamDefaultWriterEnsureReadyPromiseRejected","WritableStreamHasOperationMarkedInFlight","storedError","WritableStreamRejectCloseAndClosedPromiseIfNeeded","abortRequest","WritableStreamDealWithRejection","defaultWriterClosedPromiseResolve","defaultWriterClosedPromiseReject","backpressure","defaultWriterReadyPromiseReset","defaultWriterReadyPromiseResolve","WritableStreamDefaultWriter","defaultWriterReadyPromiseInitialize","defaultWriterReadyPromiseInitializeAsResolved","defaultWriterClosedPromiseInitialize","defaultWriterReadyPromiseInitializeAsRejected","defaultWriterClosedPromiseInitializeAsResolved","defaultWriterClosedPromiseInitializeAsRejected","IsWritableStreamDefaultWriter","defaultWriterBrandCheckException","defaultWriterLockException","WritableStreamDefaultWriterAbort","WritableStreamDefaultWriterClose","WritableStreamDefaultWriterGetDesiredSize","closeRequest","WritableStreamDefaultControllerClose","defaultWriterClosedPromiseResetToRejected","defaultWriterReadyPromiseReject","defaultWriterReadyPromiseResetToRejected","WritableStreamDefaultControllerGetDesiredSize","releasedError","WritableStreamDefaultWriterEnsureClosedPromiseRejected","chunkSize","WritableStreamDefaultControllerGetChunkSize","WritableStreamAddWriteRequest","WritableStreamDefaultControllerWrite","WritableStreamDefaultController","normalizedStrategy","WritableStreamDefaultControllerGetBackpressure","WritableStreamUpdateBackpressure","IsWritableStreamDefaultController","_this","startResult","WritableStreamDefaultControllerAdvanceQueueIfNeeded","strategySize","WritableStreamDefaultControllerErrorIfNeeded","writeRecord","WritableStreamDefaultControllerProcessClose","WritableStreamDefaultControllerProcessWrite","WritableStreamMarkCloseRequestInFlight","sinkClosePromise","WritableStreamFinishInFlightClose","WritableStreamFinishInFlightCloseWithError","WritableStreamMarkFirstWriteRequestInFlight","sinkWritePromise","WritableStreamFinishInFlightWrite","WritableStreamFinishInFlightWriteWithError","desiredSize","IsFiniteNonNegativeNumber","container","pair","ArrayBufferCopy","CreateIterResultObject","TransferArrayBuffer","ValidateAndNormalizeHighWaterMark","createArrayFromList","createDataProperty","_require4","_require5","ReadableStream","underlyingSource","typeString","IsReadableStream","IsReadableStreamLocked","ReadableStreamCancel","_ref2","AcquireReadableStreamDefaultReader","AcquireReadableStreamBYOBReader","_ref3","readable","ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue","_ref4","preventClose","preventAbort","preventCancel","Boolean","reader","shuttingDown","currentWrite","_ref5","isOrBecomesErrored","shutdownWithAction","shutdown","isOrBecomesClosed","dest","destClosed","pipeLoop","oldCurrentWrite","waitForWritesToFinish","action","doTheRest","finalize","ReadableStreamReaderGenericRelease","branches","ReadableStreamTee","IsReadableStreamDisturbed","ReadableStreamDefaultControllerClose","ReadableStreamDefaultControllerEnqueue","ReadableStreamDefaultControllerError","ReadableStreamDefaultControllerGetDesiredSize","teeState","closedOrErrored","canceled1","canceled2","reason1","reason2","pull","create_ReadableStreamTeePullFunction","cancel1","create_ReadableStreamTeeBranch1CancelFunction","cancel2","create_ReadableStreamTeeBranch2CancelFunction","underlyingSource1","branch1Stream","underlyingSource2","branch2Stream","branch1","branch2","value1","value2","compositeReason","cancelResult","IsReadableStreamBYOBReader","readIntoRequest","IsReadableStreamDefaultReader","readRequest","ReadableStreamClose","sourceCancelPromise","defaultReaderClosedPromiseResolve","_i","defaultReaderClosedPromiseReject","ReadableStreamDefaultReader","ReadableStreamReaderGenericInitialize","defaultReaderBrandCheckException","readerLockException","ReadableStreamReaderGenericCancel","ReadableStreamDefaultReaderRead","ReadableStreamBYOBReader","IsReadableByteStreamController","byobReaderBrandCheckException","ArrayBuffer","view","ReadableStreamBYOBReaderRead","defaultReaderClosedPromiseInitialize","defaultReaderClosedPromiseInitializeAsResolved","defaultReaderClosedPromiseInitializeAsRejected","defaultReaderClosedPromiseResetToRejected","ReadableByteStreamControllerPullInto","ReadableStreamDefaultController","ReadableStreamDefaultControllerCallPullIfNeeded","ReadableStreamDefaultControllerErrorIfNeeded","IsReadableStreamDefaultController","defaultControllerBrandCheckException","pendingPromise","ReadableStreamAddReadRequest","shouldPull","ReadableStreamDefaultControllerShouldCallPull","pullPromise","ReadableStreamGetNumReadRequests","ReadableStreamFulfillReadRequest","ReadableStreamError","ReadableStreamBYOBRequest","IsReadableStreamBYOBRequest","byobRequestBrandCheckException","ReadableByteStreamControllerRespond","ReadableByteStreamControllerRespondWithNewView","ReadableByteStreamController","ReadableByteStreamControllerClearPendingPullIntos","autoAllocateChunkSize","underlyingByteSource","ReadableByteStreamControllerCallPullIfNeeded","ReadableByteStreamControllerError","byteStreamControllerBrandCheckException","ReadableByteStreamControllerClose","ReadableByteStreamControllerEnqueue","firstDescriptor","ReadableStreamHasDefaultReader","ReadableByteStreamControllerHandleQueueDrain","pullIntoDescriptor","byteOffset","byteLength","bytesFilled","elementSize","ctor","readerType","ReadableByteStreamControllerGetDesiredSize","ReadableByteStreamControllerShouldCallPull","ReadableByteStreamControllerInvalidateBYOBRequest","filledView","ReadableByteStreamControllerConvertPullIntoDescriptor","ReadableStreamFulfillReadIntoRequest","currentAlignedBytes","maxBytesToCopy","maxBytesFilled","maxAlignedBytes","totalBytesToCopyRemaining","ready","headOfQueue","bytesToCopy","destStart","ReadableByteStreamControllerFillHeadPullIntoDescriptor","ReadableByteStreamControllerFillPullIntoDescriptorFromQueue","ReadableByteStreamControllerShiftPendingPullInto","ReadableByteStreamControllerCommitPullIntoDescriptor","ReadableStreamAddReadIntoRequest","emptyView","ReadableStreamHasBYOBReader","ReadableStreamGetNumReadIntoRequests","remainderSize","remainder","ReadableByteStreamControllerEnqueueChunkToQueue","ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue","bytesWritten","ReadableByteStreamControllerRespondInClosedState","ReadableByteStreamControllerRespondInReadableState","firstPendingPullInto","transferredBuffer","transferredView","ReadableByteStreamControllerRespondInternal","transformStream","readableStream","writableStream","PromiseInvokeOrPerformFallback","TransformStreamCloseReadableInternal","TransformStreamErrorIfNeeded","maybeBackpressure","TransformStreamSetBackpressure","TransformStreamErrorInternal","resolution","transformStreamController","TransformStreamEnqueueToReadable","transformer","transformPromise","TransformStreamReadableReadyPromise","TransformStreamSink","TransformStreamTransform","flushPromise","TransformStreamSource","TransformStreamDefaultController","IsTransformStream","IsTransformStreamDefaultController","TransformStreamCloseReadable","TransformStreamError","readableController","TransformStream","readableStrategy","writableStrategy","startPromise_resolve","startPromise","sink","isURLSupported","u","PolyfillURL","OriginalURL","relative","relativePathDotMapping","h","invalid","unicode","ALPHA","ALPHANUMERIC","errors","stateOverride","cursor","seenAt","seenBracket","input","err","isRelativeScheme","percentEscape","nextC","nextNextC","cp","tempC","IDNAToASCII","temp","parseInt","tmp","percentEscapeQuery","parse","JURL","authority","host","DEFAULT_RANGE_CHUNK_SIZE","isWorkerDisabled","fakeWorkerFilesLoader","useRequireEnsure","__non_webpack_require__","requirejs","fallbackWorkerSrc","dynamicLoaderSupported","worker","pdfjsFilePath","createPDFNetworkStream","isArrayBuffer","range","rangeTransport","pdfBytes","NativeImageDecoderValues","apiCompatibilityParams","setVerbosityLevel","workerParams","postMessageTransfers","GlobalWorkerOptions","PDFWorker","docId","networkStream","initialData","progressiveDone","disableRange","disableStream","httpHeaders","withCredentials","rangeChunkSize","messageHandler","transport","pdfDataRangeTransport","apiVersion","password","disableAutoFetch","maxImageSize","disableFontFace","disableCreateObjectURL","docBaseUrl","nativeImageDecoderSupport","ignoreErrors","isEvalSupported","PDFDocumentLoadingTask","nextDocumentId","constructor","transportDestroyed","deprecated","addRangeListener","addProgressListener","addProgressiveReadListener","addProgressiveDoneListener","onDataRange","onDataProgress","onDataProgressiveRead","requestDataRange","getPage","getPageIndex","getDestination","pdfBug","getViewport","rotation","dontFlip","scale","viewBox","getAnnotations","intent","enableWebGL","renderInteractiveForms","imageLayer","canvasFactory","background","render","stats","renderingIntent","canvasFactoryInstance","webGLContext","enable","intentState","fnArray","argsArray","lastChunk","pageIndex","complete","internalRenderTask","callback","canvasContext","viewport","objs","commonObjs","operatorList","pageNumber","useRequestAnimationFrame","renderTask","transparency","opListTask","streamTextContent","normalizeWhitespace","disableCombineTextItems","TEXT_CONTENT_CHUNK_SIZE","combineTextItems","textContent","getTextContent","pump","items","styles","waitOn","renderCompleted","resetStats","cleanup","_tryCleanup","_startRenderPage","_renderPageChunk","operatorListChunk","postMessage","cloned","transferable","transfers","desc","cloneValue","addEventListener","removeEventListener","pdfWorkerPorts","nextFakeWorkerId","fakeWorkerFilesLoadedCapability","mainWorkerMessageHandler","getMainThreadWorkerMessageHandler","loader","getWorkerSrc","_initializeFromPort","workerSrc","isSameOrigin","createCDNWrapper","terminateEarly","onWorkerError","sendTest","testObj","info","setupFakeWorkerGlobal","WorkerMessageHandler","workerHandler","loadingTask","onUnsupportedFeature","isCompressed","page","terminated","evt","loaded","total","headersCapability","fullReader","isStreamingSupported","isRangeSupported","contentLength","rangeReader","pdfInfo","updatePassword","exception","exportedError","exportedData","fontRegistry","registerFont","pageProxy","img","releaseImageResources","MAX_IMAGE_SIZE_TO_STORE","imageData","components","width","rgbaLength","buf","tmpCanvas","tmpCtx","height","_onUnsupportedFeature","pageInfo","ref","results","metadata","contentDispositionFilename","_ensureObj","resolved","InternalRenderTask","canvasInRendering","initializeGraphics","cancel","build","runtime","Op","hasOwn","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","protoGenerator","outerFn","generator","tryLocsList","makeInvokeMethod","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","getProto","NativeIteratorPrototype","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","prototype","genFun","__await","record","tryCatch","previousPromise","callInvokeWithMethodAndArg","defineIteratorMethods","AsyncIterator","doneResult","delegate","delegateResult","maybeInvokeDelegate","tryLoc","locs","iteratorMethod","Context","reset","stop","rootEntry","rootRecord","dispatchException","handle","hasCatch","hasFinally","abrupt","finallyEntry","finish","resetTryEntry","thrown","delegateYield","resultName","nextLoc","regeneratorRuntime","DEFAULT_LINK_REL","SVG_NS","canvas","canvasAndContext","destroy","compressionType","isFetchSupported","isValidFetchUrl","response","cMapData","request","XMLHttpRequest","svg","createElement","offsetX","offsetY","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","clone","convertToViewportPoint","convertToViewportRectangle","topLeft","bottomRight","convertToPdfPoint","RenderingCancelledException","LinkTarget","SELF","BLANK","PARENT","TOP","LinkTargetStringMap","link","removeNullCharacters","LinkTargetValues","targetIndex","anchor","query","time","Date","timeEnd","longest","duration","Response","protocol","script","isString","pdfDateStringRegex","matches","year","month","day","hour","minute","universalTimeRelation","offsetHour","offsetMinute","addNativeFontFace","insertRule","styleElement","styleSheet","nativeFontFace","featureId","rule","_queueLoadingCallback","_prepareFontLoadEvent","FontLoader","requests","nextRequestId","otherRequest","chunk1","chunk2","called","isFontReady","loadTestFontId","COMMENT_OFFSET","spliceString","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","int32","string32","btoa","fonts","span","supported","shadow","getLoadTestFont","atob","IsEvalSupportedCached","translatedData","bytesToString","getPathGenerator","cmds","js","current","compatibilityParams","isIE","isIOSChrome","MIN_FONT_SIZE","MAX_FONT_SIZE","MAX_GROUP_SIZE","MIN_WIDTH_FACTOR","COMPILE_TYPE3_GLYPHS","MAX_SIZE_TO_COMPILE","FULL_CHUNK_HEIGHT","IsLittleEndianCached","ad_bc","bc_ad","old","prev","cosValue","sinValue","CachedCanvases","getCanvas","canvasEntry","addContextCurrentTransform","POINT_TO_PROCESS_LIMIT","imgData","width1","points","POINT_TYPES","lineSize","data0","mask","elem","count","j0","sum","steps","outlines","coords","p0","pp","drawOutline","o","jj","CanvasExtraState","setCurrentPoint","CanvasGraphics","EXECUTION_TIME","EXECUTION_STEPS","partialChunkHeight","fullChunks","totalChunks","chunkImgData","srcPos","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","thisChunkHeight","destPos","srcDiff","kEnd","kEndUnrolled","srcByte","elemsInThisChunk","properties","property","sourceCtx","destCtx","alpha","alpha_","r0","g0","b0","maskData","transferMap","layerData","y","hasBackdrop","backdrop","subtype","composeFn","PIXELS_TO_PROCESS","row","chunkHeight","maskCtx","layerCtx","composeSMaskBackdrop","composed","layer","genericComposeSMask","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","beginDrawing","transparentCanvas","resetCtxToDefault","executeOperatorList","executionStartIdx","argsArrayLen","chunkOperations","endTime","stepper","fnId","objsPool","depObjId","continueCallback","endDrawing","states","beginSMaskGroup","activeSMask","drawnWidth","drawnHeight","cacheId","scratchCanvas","currentCtx","currentTransform","groupCtx","copyCtxState","suspendSMaskGroup","composeSMask","deltaTransform","resumeSMaskGroup","endSMaskGroup","ops","xw","yh","consumePath","strokeColor","fillColor","isPatternFill","needRestore","paths","path","fontObj","bold","italic","typeface","browserFontSize","paintChar","textRenderingMode","fontSize","fillStrokeMode","isAddToPathSet","patternFill","addToPath","enabled","fontSizeScale","charSpacing","wordSpacing","fontDirection","textHScale","glyphsLength","glyphs","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","patternTransform","lineWidth","glyph","isNum","restoreNeeded","spacing","character","accent","vmetric","vx","vy","scaledX","scaledY","measuredWidth","characterScaleX","scaledAccentX","scaledAccentY","charWidth","showType3Text","fontMatrix","isTextInvisible","spacingLength","transformed","urx","ury","getColorN_Pattern","IR","color","baseTransform","canvasGraphicsFactory","createCanvasGraphics","getShadingPatternFromIR","inv","bl","br","ul","ur","x0","y0","x1","y1","matrix","bbox","group","bounds","canvasBounds","scaleX","scaleY","startTransformInverse","domImage","position","objId","top","maskCanvas","putBinaryImageMask","positions","images","image","map","widthScale","heightScale","imgToPaint","putBinaryImageData","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","getSinglePixelWidth","inverse","getCanvasPosition","ShadingIRs","fromIR","raw","colorStops","r1","getPattern","grad","createMeshCanvas","colors","rowSize","c1","c2","c3","x2","y2","x3","y3","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","minY","maxY","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","ps","figure","cs","verticesPerRow","rows","cols","q","drawTriangle","EXPECTED_SCALE","MAX_PATTERN_SIZE","BORDER_SIZE","boundsWidth","boundsHeight","combinesScale","paddedWidth","paddedHeight","backgroundColor","figures","cachedCanvases","drawFigure","owner","matrixScale","temporaryPatternCanvas","shadingIR","TilingPattern","PaintType","COLORED","UNCOLORED","createPatternCanvas","xstep","ystep","paintType","tilingType","curMatrixScale","combinedScale","dimx","dimy","graphics","getSizeAndScale","maxSize","clipBbox","bboxWidth","bboxHeight","setFillAndStrokeStyleToContext","cssColor","thisArg","callbacksCapabilities","ah","callbackId","wrapReason","sourceName","targetName","comObj","isReply","makeReasonSerializable","MessageHandler","on","send","sendWithPromise","sendWithStream","streamId","startCapability","startCall","isClosed","pullCapability","cancelCapability","_createStreamSink","sendStreamRequest","success","streamSink","enqueue","lastDesiredSize","close","sinkCapability","onPull","onCancel","isCancelled","resolveCall","_processStreamMessage","sendStreamResponse","deleteStreamController","resolveOrReject","parser","xmlDocument","_repair","chars","_parse","rdf","nodeName","children","XMLParserErrorCode","NoError","EndOfDocument","UnterminatedCdat","UnterminatedXmlDeclaration","UnterminatedDoctypeDeclaration","UnterminatedComment","MalformedElement","OutOfMemory","UnterminatedAttributeValue","UnterminatedElement","ElementNeverBegun","isWhitespace","_resolveEntities","entity","_parseContent","attributes","skipWs","attrName","attrValue","attrEndChar","attrEndIndex","parsed","_parseProcessingInstruction","attrStart","parseXml","ch2","pi","q2","complexDoctype","doctypeContent","content","text","onResolveEntity","onPi","onComment","onCdata","onDoctype","onText","onBeginElement","onEndElement","onError","childNodes","child","parseFromString","documentElement","isWhitespaceString","lastElement","begin","_onReceiveData","found","_onProgress","firstReader","_removeRangeReader","queuedChunks","getRangeReader","cancelAllRequests","readers","_enqueue","requestCapability","requestsCapability","WebGLUtils","drawFigures","shader","gl","compiled","errorMsg","loadShader","program","shaders","linked","texture","currentCanvas","currentGL","premultipliedalpha","smaskVertexShaderCode","smaskFragmentShaderCode","smaskCache","generateGL","vertexShader","createVertexShader","fragmentShader","createFragmentShader","cache","texCoordLocation","texLayerLocation","texMaskLocation","texCoordBuffer","initSmaskGL","createTexture","maskTexture","figuresVertexShaderCode","figuresFragmentShaderCode","figuresCache","initFiguresGL","coordsMap","colorsMap","pIndex","cIndex","col","coordsBuffer","colorsBuffer","tryInitGL","renderTextLayer","MAX_TEXT_DIVS_TO_RENDER","NonWhitespaceRegexp","styleBuf","textDiv","textDivProperties","style","angle","canvasWidth","originalTransform","paddingBottom","paddingLeft","paddingRight","paddingTop","isAllWhitespace","geom","tx","fontHeight","fontAscent","angleCos","angleSin","divWidth","divHeight","right","bottom","textDivs","textDivsLength","expanded","expandBounds","divProperties","ts","t","findPositiveMin","boxScale","box","x1New","x2New","expandBoundsLTR","boxes","fakeBoundary","horizon","boundary","maxXNew","horizonPart","affectedBoundary","xNew","changedHorizon","lastBoundary","useBoundary","used","textContentItemsStr","TextLayerRenderTask","clearTimeout","_processItems","appendText","_layoutText","textLayerFrag","fontFamily","_render","styleCache","textItems","textStyles","expandTextDivs","expand","padding","renderParameters","textContentStream","enhanceTextSelection","parameters","fieldType","isRenderable","ignoreBorder","_createContainer","horizontalRadius","verticalRadius","radius","_createPopup","trigger","popupElement","title","modificationDate","contents","hideWrapper","popup","addLinkAttributes","linkService","rel","_bindLink","_bindNamedAction","JSON","TEXT_ALIGNMENT","fieldWidth","combWidth","_setTextStyle","fallbackName","selectElement","option","optionElement","IGNORE_TYPES","selector","parentElement","parentLeft","parseFloat","parentWidth","BACKGROUND_ENLIGHT","g","dateObject","PDFDateString","date","_formatContents","lines","line","pin","_show","unpin","_hide","borderWidth","square","circle","vertices","polyline","inkLists","inkList","getFilenameFromUrl","stringToPDFString","filename","downloadManager","imageResourcesPath","svgFactory","SVGGraphics","opTree","opListElement","pf","SVG_DEFAULTS","fontStyle","fontWeight","XML_NS","XLINK_NS","convertImgDataToPng","PNG_HEADER","CHUNK_WRAPPER_SIZE","crcTable","crc","body","crc32","deflateSyncUncompressed","output","level","literals","maxBlockLength","deflateBlocks","idat","adler","adler32","colorType","bitDepth","offsetLiterals","offsetBytes","ihdr","deflateSync","pngLength","writePngChunk","encode","clipCount","maskCount","shadingCount","loadDependencies","transformMatrix","getSVG","svgElement","convertOpList","operatorIdMapping","opList","opListToTree","executeOpTree","opTreeElement","lineWidthScale","textMatrix","pm","addFontStyle","details","setStrokeAlpha","setFillAlpha","_makeColorN_Pattern","_makeTilingPattern","tilingId","txstep","tystep","tiling","tx1","ty1","_makeShadingPattern","shadingId","point0","point1","gradient","focalPoint","circlePoint","focalRadius","circleRadius","colorStop","op","clipId","clipPath","clipElement","_setStrokeAttributes","dashArray","imgObj","imgEl","imgSrc","cliprect","_initialize","definitions","rootGroup","clipGroup","fs","http","https","fileUriRegex","parsedUrl","parseUrl","_error","_setReadableStream","auth","headers","handleResponse","getResponseHeader","isHttp","suggestedLength","extractFilenameFromHeader","createRequestOptions","returnValues","allowRangeRequests","contentEncoding","contentDisposition","getFilenameFromContentDispositionHeader","status","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","decoder","fatal","textdecode","parts","part","quotindex","encodingend","extvalue","encoding","langvalue","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","xhr","array","requestRange","listeners","requestFull","xhrId","pendingRequest","onProgress","onStateChange","xhrStatus","ok_response_on_range_request","getArrayBuffer","rangeHeader","getRequestXhr","isPendingRequest","_onRangeRequestReaderClosed","onHeadersReceived","onDone","manager","fullRequestXhrId","fullRequestXhr","_onDone","_onError","createResponseStatusError","signal","abortController","credentials","redirect","fetch","createFetchOptions","validateResponseStatus"],"mappings":"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","file":"pdf.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __w_pdfjs_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__w_pdfjs_require__.m = modules;\n\n \t// expose the module cache\n \t__w_pdfjs_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__w_pdfjs_require__.d = function(exports, name, getter) {\n \t\tif(!__w_pdfjs_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__w_pdfjs_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__w_pdfjs_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __w_pdfjs_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__w_pdfjs_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __w_pdfjs_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__w_pdfjs_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__w_pdfjs_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__w_pdfjs_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __w_pdfjs_require__(__w_pdfjs_require__.s = 0);\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable no-unused-vars */\n\n'use strict';\n\nvar pdfjsVersion =\n typeof PDFJSDev !== 'undefined' ? PDFJSDev.eval('BUNDLE_VERSION') : void 0;\nvar pdfjsBuild =\n typeof PDFJSDev !== 'undefined' ? PDFJSDev.eval('BUNDLE_BUILD') : void 0;\n\nvar pdfjsSharedUtil = require('./shared/util.js');\nvar pdfjsDisplayAPI = require('./display/api.js');\nvar pdfjsDisplayTextLayer = require('./display/text_layer.js');\nvar pdfjsDisplayAnnotationLayer = require('./display/annotation_layer.js');\nvar pdfjsDisplayDisplayUtils = require('./display/display_utils.js');\nvar pdfjsDisplaySVG = require('./display/svg.js');\nlet pdfjsDisplayWorkerOptions = require('./display/worker_options.js');\nlet pdfjsDisplayAPICompatibility = require('./display/api_compatibility.js');\n\nif (typeof PDFJSDev === 'undefined' || PDFJSDev.test('GENERIC')) {\n const isNodeJS = require('./shared/is_node.js');\n if (isNodeJS()) {\n let PDFNodeStream = require('./display/node_stream.js').PDFNodeStream;\n pdfjsDisplayAPI.setPDFNetworkStreamFactory((params) => {\n return new PDFNodeStream(params);\n });\n } else {\n let PDFNetworkStream = require('./display/network.js').PDFNetworkStream;\n let PDFFetchStream;\n if (pdfjsDisplayDisplayUtils.isFetchSupported()) {\n PDFFetchStream = require('./display/fetch_stream.js').PDFFetchStream;\n }\n pdfjsDisplayAPI.setPDFNetworkStreamFactory((params) => {\n if (PDFFetchStream &&\n pdfjsDisplayDisplayUtils.isValidFetchUrl(params.url)) {\n return new PDFFetchStream(params);\n }\n return new PDFNetworkStream(params);\n });\n }\n} else if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('CHROME')) {\n let PDFNetworkStream = require('./display/network.js').PDFNetworkStream;\n let PDFFetchStream;\n let isChromeWithFetchCredentials = function() {\n // fetch does not include credentials until Chrome 61.0.3138.0 and later.\n // https://chromium.googlesource.com/chromium/src/+/2e231cf052ca5e68e22baf0008ac9e5e29121707\n try {\n // Indexed properties on window are read-only in Chrome 61.0.3151.0+\n // https://chromium.googlesource.com/chromium/src.git/+/58ab4a971b06dec13e4edf9de8382ca6847f6190\n window[999] = 123; // should throw. Note: JS strict mode MUST be enabled.\n delete window[999];\n return false;\n } catch (e) {\n return true;\n }\n };\n if (pdfjsDisplayDisplayUtils.isFetchSupported() &&\n isChromeWithFetchCredentials()) {\n PDFFetchStream = require('./display/fetch_stream.js').PDFFetchStream;\n }\n pdfjsDisplayAPI.setPDFNetworkStreamFactory((params) => {\n if (PDFFetchStream &&\n pdfjsDisplayDisplayUtils.isValidFetchUrl(params.url)) {\n return new PDFFetchStream(params);\n }\n return new PDFNetworkStream(params);\n });\n}\n\nexports.build = pdfjsDisplayAPI.build;\nexports.version = pdfjsDisplayAPI.version;\nexports.getDocument = pdfjsDisplayAPI.getDocument;\nexports.LoopbackPort = pdfjsDisplayAPI.LoopbackPort;\nexports.PDFDataRangeTransport = pdfjsDisplayAPI.PDFDataRangeTransport;\nexports.PDFWorker = pdfjsDisplayAPI.PDFWorker;\nexports.renderTextLayer = pdfjsDisplayTextLayer.renderTextLayer;\nexports.AnnotationLayer = pdfjsDisplayAnnotationLayer.AnnotationLayer;\nexports.createPromiseCapability = pdfjsSharedUtil.createPromiseCapability;\nexports.PasswordResponses = pdfjsSharedUtil.PasswordResponses;\nexports.InvalidPDFException = pdfjsSharedUtil.InvalidPDFException;\nexports.MissingPDFException = pdfjsSharedUtil.MissingPDFException;\nexports.SVGGraphics = pdfjsDisplaySVG.SVGGraphics;\nexports.NativeImageDecoding = pdfjsSharedUtil.NativeImageDecoding;\nexports.CMapCompressionType = pdfjsSharedUtil.CMapCompressionType;\nexports.PermissionFlag = pdfjsSharedUtil.PermissionFlag;\nexports.UnexpectedResponseException =\n pdfjsSharedUtil.UnexpectedResponseException;\nexports.OPS = pdfjsSharedUtil.OPS;\nexports.VerbosityLevel = pdfjsSharedUtil.VerbosityLevel;\nexports.UNSUPPORTED_FEATURES = pdfjsSharedUtil.UNSUPPORTED_FEATURES;\nexports.createValidAbsoluteUrl = pdfjsSharedUtil.createValidAbsoluteUrl;\nexports.createObjectURL = pdfjsSharedUtil.createObjectURL;\nexports.removeNullCharacters = pdfjsSharedUtil.removeNullCharacters;\nexports.shadow = pdfjsSharedUtil.shadow;\nexports.Util = pdfjsSharedUtil.Util;\nexports.ReadableStream = pdfjsSharedUtil.ReadableStream;\nexports.URL = pdfjsSharedUtil.URL;\nexports.RenderingCancelledException =\n pdfjsDisplayDisplayUtils.RenderingCancelledException;\nexports.getFilenameFromUrl = pdfjsDisplayDisplayUtils.getFilenameFromUrl;\nexports.LinkTarget = pdfjsDisplayDisplayUtils.LinkTarget;\nexports.addLinkAttributes = pdfjsDisplayDisplayUtils.addLinkAttributes;\nexports.loadScript = pdfjsDisplayDisplayUtils.loadScript;\nexports.PDFDateString = pdfjsDisplayDisplayUtils.PDFDateString;\nexports.GlobalWorkerOptions = pdfjsDisplayWorkerOptions.GlobalWorkerOptions;\nexports.apiCompatibilityParams =\n pdfjsDisplayAPICompatibility.apiCompatibilityParams;\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport './compatibility';\nimport { ReadableStream } from './streams_polyfill';\nimport { URL } from './url_polyfill';\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\nconst NativeImageDecoding = {\n NONE: 'none',\n DECODE: 'decode',\n DISPLAY: 'display',\n};\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800,\n};\n\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4,\n};\n\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3,\n};\n\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26,\n};\n\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200,\n};\n\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000,\n};\n\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5,\n};\n\nconst StreamType = {\n UNKNOWN: 0,\n FLATE: 1,\n LZW: 2,\n DCT: 3,\n JPX: 4,\n JBIG: 5,\n A85: 6,\n AHX: 7,\n CCF: 8,\n RL: 9,\n};\n\nconst FontType = {\n UNKNOWN: 0,\n TYPE1: 1,\n TYPE1C: 2,\n CIDFONTTYPE0: 3,\n CIDFONTTYPE0C: 4,\n TRUETYPE: 5,\n CIDFONTTYPE2: 6,\n TYPE3: 7,\n OPENTYPE: 8,\n TYPE0: 9,\n MMTYPE1: 10,\n};\n\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5,\n};\n\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n // Intentionally start from 1 so it is easy to spot bad operators that will be\n // 0's.\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotations: 78,\n endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91,\n};\n\nconst UNSUPPORTED_FEATURES = {\n unknown: 'unknown',\n forms: 'forms',\n javaScript: 'javaScript',\n smask: 'smask',\n shadingPattern: 'shadingPattern',\n font: 'font',\n};\n\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2,\n};\n\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\n\nfunction getVerbosityLevel() {\n return verbosity;\n}\n\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log('Info: ' + msg);\n }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log('Warning: ' + msg);\n }\n}\n\nfunction unreachable(msg) {\n throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\n\n// Checks if URLs have the same origin. For non-HTTP based URLs, returns false.\nfunction isSameOrigin(baseUrl, otherUrl) {\n try {\n var base = new URL(baseUrl);\n if (!base.origin || base.origin === 'null') {\n return false; // non-HTTP url\n }\n } catch (e) {\n return false;\n }\n\n var other = new URL(otherUrl, base);\n return base.origin === other.origin;\n}\n\n// Checks if URLs use one of the whitelisted protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n switch (url.protocol) {\n case 'http:':\n case 'https:':\n case 'ftp:':\n case 'mailto:':\n case 'tel:':\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} baseUrl - An absolute URL.\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl) {\n if (!url) {\n return null;\n }\n try {\n var absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) { /* `new URL()` will throw on incorrect data. */ }\n return null;\n}\n\nfunction shadow(obj, prop, value) {\n Object.defineProperty(obj, prop, { value,\n enumerable: true,\n configurable: true,\n writable: false, });\n return value;\n}\n\nvar PasswordException = (function PasswordExceptionClosure() {\n function PasswordException(msg, code) {\n this.name = 'PasswordException';\n this.message = msg;\n this.code = code;\n }\n\n PasswordException.prototype = new Error();\n PasswordException.constructor = PasswordException;\n\n return PasswordException;\n})();\n\nvar UnknownErrorException = (function UnknownErrorExceptionClosure() {\n function UnknownErrorException(msg, details) {\n this.name = 'UnknownErrorException';\n this.message = msg;\n this.details = details;\n }\n\n UnknownErrorException.prototype = new Error();\n UnknownErrorException.constructor = UnknownErrorException;\n\n return UnknownErrorException;\n})();\n\nvar InvalidPDFException = (function InvalidPDFExceptionClosure() {\n function InvalidPDFException(msg) {\n this.name = 'InvalidPDFException';\n this.message = msg;\n }\n\n InvalidPDFException.prototype = new Error();\n InvalidPDFException.constructor = InvalidPDFException;\n\n return InvalidPDFException;\n})();\n\nvar MissingPDFException = (function MissingPDFExceptionClosure() {\n function MissingPDFException(msg) {\n this.name = 'MissingPDFException';\n this.message = msg;\n }\n\n MissingPDFException.prototype = new Error();\n MissingPDFException.constructor = MissingPDFException;\n\n return MissingPDFException;\n})();\n\nvar UnexpectedResponseException =\n (function UnexpectedResponseExceptionClosure() {\n function UnexpectedResponseException(msg, status) {\n this.name = 'UnexpectedResponseException';\n this.message = msg;\n this.status = status;\n }\n\n UnexpectedResponseException.prototype = new Error();\n UnexpectedResponseException.constructor = UnexpectedResponseException;\n\n return UnexpectedResponseException;\n})();\n\n/**\n * Error caused during parsing PDF data.\n */\nlet FormatError = (function FormatErrorClosure() {\n function FormatError(msg) {\n this.message = msg;\n }\n\n FormatError.prototype = new Error();\n FormatError.prototype.name = 'FormatError';\n FormatError.constructor = FormatError;\n\n return FormatError;\n})();\n\n/**\n * Error used to indicate task cancellation.\n */\nlet AbortException = (function AbortExceptionClosure() {\n function AbortException(msg) {\n this.name = 'AbortException';\n this.message = msg;\n }\n\n AbortException.prototype = new Error();\n AbortException.constructor = AbortException;\n\n return AbortException;\n})();\n\nvar NullCharactersRegExp = /\\x00/g;\n\nfunction removeNullCharacters(str) {\n if (typeof str !== 'string') {\n warn('The argument for removeNullCharacters must be a string.');\n return str;\n }\n return str.replace(NullCharactersRegExp, '');\n}\n\nfunction bytesToString(bytes) {\n assert(bytes !== null && typeof bytes === 'object' &&\n bytes.length !== undefined, 'Invalid argument for bytesToString');\n var length = bytes.length;\n var MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n var strBuf = [];\n for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n var chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join('');\n}\n\nfunction stringToBytes(str) {\n assert(typeof str === 'string', 'Invalid argument for stringToBytes');\n var length = str.length;\n var bytes = new Uint8Array(length);\n for (var i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xFF;\n }\n return bytes;\n}\n\n/**\n * Gets length of the array (Array, Uint8Array, or string) in bytes.\n * @param {Array|Uint8Array|string} arr\n * @returns {number}\n */\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n assert(arr.byteLength !== undefined);\n return arr.byteLength;\n}\n\n/**\n * Combines array items (arrays) into single Uint8Array object.\n * @param {Array} arr - the array of the arrays (Array, Uint8Array, or string).\n * @returns {Uint8Array}\n */\nfunction arraysToBytes(arr) {\n // Shortcut: if first and only item is Uint8Array, return it.\n if (arr.length === 1 && (arr[0] instanceof Uint8Array)) {\n return arr[0];\n }\n var resultLength = 0;\n var i, ii = arr.length;\n var item, itemLength;\n for (i = 0; i < ii; i++) {\n item = arr[i];\n itemLength = arrayByteLength(item);\n resultLength += itemLength;\n }\n var pos = 0;\n var data = new Uint8Array(resultLength);\n for (i = 0; i < ii; i++) {\n item = arr[i];\n if (!(item instanceof Uint8Array)) {\n if (typeof item === 'string') {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n return data;\n}\n\nfunction string32(value) {\n return String.fromCharCode((value >> 24) & 0xff, (value >> 16) & 0xff,\n (value >> 8) & 0xff, value & 0xff);\n}\n\n// Calculate the base 2 logarithm of the number `x`. This differs from the\n// native function in the sense that it returns the ceiling value and that it\n// returns 0 instead of `Infinity`/`NaN` for `x` values smaller than/equal to 0.\nfunction log2(x) {\n if (x <= 0) {\n return 0;\n }\n return Math.ceil(Math.log2(x));\n}\n\nfunction readInt8(data, start) {\n return (data[start] << 24) >> 24;\n}\n\nfunction readUint16(data, offset) {\n return (data[offset] << 8) | data[offset + 1];\n}\n\nfunction readUint32(data, offset) {\n return ((data[offset] << 24) | (data[offset + 1] << 16) |\n (data[offset + 2] << 8) | data[offset + 3]) >>> 0;\n}\n\n// Lazy test the endianness of the platform\n// NOTE: This will be 'true' for simulated TypedArrays\nfunction isLittleEndian() {\n var buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n var view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return (view32[0] === 1);\n}\n\n// Checks if it's possible to eval JS expressions.\nfunction isEvalSupported() {\n try {\n new Function(''); // eslint-disable-line no-new, no-new-func\n return true;\n } catch (e) {\n return false;\n }\n}\n\nvar Util = (function UtilClosure() {\n function Util() {}\n\n var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')'];\n\n // makeCssRgb() can be called thousands of times. Using |rgbBuf| avoids\n // creating many intermediate strings.\n Util.makeCssRgb = function Util_makeCssRgb(r, g, b) {\n rgbBuf[1] = r;\n rgbBuf[3] = g;\n rgbBuf[5] = b;\n return rgbBuf.join('');\n };\n\n // Concatenates two transformation matrices together and returns the result.\n Util.transform = function Util_transform(m1, m2) {\n return [\n m1[0] * m2[0] + m1[2] * m2[1],\n m1[1] * m2[0] + m1[3] * m2[1],\n m1[0] * m2[2] + m1[2] * m2[3],\n m1[1] * m2[2] + m1[3] * m2[3],\n m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n m1[1] * m2[4] + m1[3] * m2[5] + m1[5]\n ];\n };\n\n // For 2d affine transforms\n Util.applyTransform = function Util_applyTransform(p, m) {\n var xt = p[0] * m[0] + p[1] * m[2] + m[4];\n var yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n };\n\n Util.applyInverseTransform = function Util_applyInverseTransform(p, m) {\n var d = m[0] * m[3] - m[1] * m[2];\n var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n };\n\n // Applies the transform to the rectangle and finds the minimum axially\n // aligned bounding box.\n Util.getAxialAlignedBoundingBox =\n function Util_getAxialAlignedBoundingBox(r, m) {\n\n var p1 = Util.applyTransform(r, m);\n var p2 = Util.applyTransform(r.slice(2, 4), m);\n var p3 = Util.applyTransform([r[0], r[3]], m);\n var p4 = Util.applyTransform([r[2], r[1]], m);\n return [\n Math.min(p1[0], p2[0], p3[0], p4[0]),\n Math.min(p1[1], p2[1], p3[1], p4[1]),\n Math.max(p1[0], p2[0], p3[0], p4[0]),\n Math.max(p1[1], p2[1], p3[1], p4[1])\n ];\n };\n\n Util.inverseTransform = function Util_inverseTransform(m) {\n var d = m[0] * m[3] - m[1] * m[2];\n return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d,\n (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n };\n\n // Apply a generic 3d matrix M on a 3-vector v:\n // | a b c | | X |\n // | d e f | x | Y |\n // | g h i | | Z |\n // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i],\n // with v as [X,Y,Z]\n Util.apply3dTransform = function Util_apply3dTransform(m, v) {\n return [\n m[0] * v[0] + m[1] * v[1] + m[2] * v[2],\n m[3] * v[0] + m[4] * v[1] + m[5] * v[2],\n m[6] * v[0] + m[7] * v[1] + m[8] * v[2]\n ];\n };\n\n // This calculation uses Singular Value Decomposition.\n // The SVD can be represented with formula A = USV. We are interested in the\n // matrix S here because it represents the scale values.\n Util.singularValueDecompose2dScale =\n function Util_singularValueDecompose2dScale(m) {\n\n var transpose = [m[0], m[2], m[1], m[3]];\n\n // Multiply matrix m with its transpose.\n var a = m[0] * transpose[0] + m[1] * transpose[2];\n var b = m[0] * transpose[1] + m[1] * transpose[3];\n var c = m[2] * transpose[0] + m[3] * transpose[2];\n var d = m[2] * transpose[1] + m[3] * transpose[3];\n\n // Solve the second degree polynomial to get roots.\n var first = (a + d) / 2;\n var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;\n var sx = first + second || 1;\n var sy = first - second || 1;\n\n // Scale values are the square roots of the eigenvalues.\n return [Math.sqrt(sx), Math.sqrt(sy)];\n };\n\n // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n // For coordinate systems whose origin lies in the bottom-left, this\n // means normalization to (BL,TR) ordering. For systems with origin in the\n // top-left, this means (TL,BR) ordering.\n Util.normalizeRect = function Util_normalizeRect(rect) {\n var r = rect.slice(0); // clone rect\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n };\n\n // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n // intersection of rect1 and rect2. If no intersection, returns 'false'\n // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n Util.intersect = function Util_intersect(rect1, rect2) {\n function compare(a, b) {\n return a - b;\n }\n\n // Order points along the axes\n var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare),\n orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare),\n result = [];\n\n rect1 = Util.normalizeRect(rect1);\n rect2 = Util.normalizeRect(rect2);\n\n // X: first and second points belong to different rectangles?\n if ((orderedX[0] === rect1[0] && orderedX[1] === rect2[0]) ||\n (orderedX[0] === rect2[0] && orderedX[1] === rect1[0])) {\n // Intersection must be between second and third points\n result[0] = orderedX[1];\n result[2] = orderedX[2];\n } else {\n return false;\n }\n\n // Y: first and second points belong to different rectangles?\n if ((orderedY[0] === rect1[1] && orderedY[1] === rect2[1]) ||\n (orderedY[0] === rect2[1] && orderedY[1] === rect1[1])) {\n // Intersection must be between second and third points\n result[1] = orderedY[1];\n result[3] = orderedY[2];\n } else {\n return false;\n }\n\n return result;\n };\n\n return Util;\n})();\n\nconst PDFStringTranslateTable = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014,\n 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C,\n 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160,\n 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC\n];\n\nfunction stringToPDFString(str) {\n var i, n = str.length, strBuf = [];\n if (str[0] === '\\xFE' && str[1] === '\\xFF') {\n // UTF16BE BOM\n for (i = 2; i < n; i += 2) {\n strBuf.push(String.fromCharCode(\n (str.charCodeAt(i) << 8) | str.charCodeAt(i + 1)));\n }\n } else {\n for (i = 0; i < n; ++i) {\n var code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n }\n return strBuf.join('');\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isEmptyObj(obj) {\n for (var key in obj) {\n return false;\n }\n return true;\n}\n\nfunction isBool(v) {\n return typeof v === 'boolean';\n}\n\nfunction isNum(v) {\n return typeof v === 'number';\n}\n\nfunction isString(v) {\n return typeof v === 'string';\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === 'object' && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n return arr1.every(function(element, index) {\n return element === arr2[index];\n });\n}\n\n// Checks if ch is one of the following characters: SPACE, TAB, CR or LF.\nfunction isSpace(ch) {\n return (ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A);\n}\n\n/**\n * Promise Capability object.\n *\n * @typedef {Object} PromiseCapability\n * @property {Promise} promise - A Promise object.\n * @property {boolean} settled - If the Promise has been fulfilled/rejected.\n * @property {function} resolve - Fulfills the Promise.\n * @property {function} reject - Rejects the Promise.\n */\n\n/**\n * Creates a promise capability object.\n * @alias createPromiseCapability\n *\n * @return {PromiseCapability}\n */\nfunction createPromiseCapability() {\n const capability = Object.create(null);\n let isSettled = false;\n\n Object.defineProperty(capability, 'settled', {\n get() {\n return isSettled;\n },\n });\n capability.promise = new Promise(function(resolve, reject) {\n capability.resolve = function(data) {\n isSettled = true;\n resolve(data);\n };\n capability.reject = function(reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\nvar createObjectURL = (function createObjectURLClosure() {\n // Blob/createObjectURL is not available, falling back to data schema.\n var digits =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\n return function createObjectURL(data, contentType, forceDataSchema = false) {\n if (!forceDataSchema && URL.createObjectURL) {\n const blob = new Blob([data], { type: contentType, });\n return URL.createObjectURL(blob);\n }\n\n var buffer = 'data:' + contentType + ';base64,';\n for (var i = 0, ii = data.length; i < ii; i += 3) {\n var b1 = data[i] & 0xFF;\n var b2 = data[i + 1] & 0xFF;\n var b3 = data[i + 2] & 0xFF;\n var d1 = b1 >> 2, d2 = ((b1 & 3) << 4) | (b2 >> 4);\n var d3 = i + 1 < ii ? ((b2 & 0xF) << 2) | (b3 >> 6) : 64;\n var d4 = i + 2 < ii ? (b3 & 0x3F) : 64;\n buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n }\n return buffer;\n };\n})();\n\nexport {\n FONT_IDENTITY_MATRIX,\n IDENTITY_MATRIX,\n OPS,\n VerbosityLevel,\n UNSUPPORTED_FEATURES,\n AnnotationBorderStyleType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationType,\n FontType,\n ImageKind,\n CMapCompressionType,\n AbortException,\n InvalidPDFException,\n MissingPDFException,\n NativeImageDecoding,\n PasswordException,\n PasswordResponses,\n PermissionFlag,\n StreamType,\n TextRenderingMode,\n UnexpectedResponseException,\n UnknownErrorException,\n Util,\n FormatError,\n arrayByteLength,\n arraysToBytes,\n assert,\n bytesToString,\n createPromiseCapability,\n createObjectURL,\n getVerbosityLevel,\n info,\n isArrayBuffer,\n isArrayEqual,\n isBool,\n isEmptyObj,\n isNum,\n isString,\n isSpace,\n isSameOrigin,\n createValidAbsoluteUrl,\n isLittleEndian,\n isEvalSupported,\n log2,\n readInt8,\n readUint16,\n readUint32,\n removeNullCharacters,\n ReadableStream,\n URL,\n setVerbosityLevel,\n shadow,\n string32,\n stringToBytes,\n stringToPDFString,\n stringToUTF8String,\n utf8StringToString,\n warn,\n unreachable,\n};\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst globalScope = require('./global_scope');\n\n// Skip compatibility checks for the extensions and if we already ran\n// this module.\nif ((typeof PDFJSDev === 'undefined' ||\n !PDFJSDev.test('FIREFOX || MOZCENTRAL')) &&\n !globalScope._pdfjsCompatibilityChecked) {\n\nglobalScope._pdfjsCompatibilityChecked = true;\n\nconst isNodeJS = require('./is_node');\n\nconst hasDOM = typeof window === 'object' && typeof document === 'object';\n\n// Support: Node.js\n(function checkNodeBtoa() {\n if (globalScope.btoa || !isNodeJS()) {\n return;\n }\n globalScope.btoa = function(chars) {\n // eslint-disable-next-line no-undef\n return Buffer.from(chars, 'binary').toString('base64');\n };\n})();\n\n// Support: Node.js\n(function checkNodeAtob() {\n if (globalScope.atob || !isNodeJS()) {\n return;\n }\n globalScope.atob = function(input) {\n // eslint-disable-next-line no-undef\n return Buffer.from(input, 'base64').toString('binary');\n };\n})();\n\n// Provides support for ChildNode.remove in legacy browsers.\n// Support: IE.\n(function checkChildNodeRemove() {\n if (!hasDOM) {\n return;\n }\n if (typeof Element.prototype.remove !== 'undefined') {\n return;\n }\n Element.prototype.remove = function () {\n if (this.parentNode) {\n // eslint-disable-next-line mozilla/avoid-removeChild\n this.parentNode.removeChild(this);\n }\n };\n})();\n\n// Provides support for DOMTokenList.prototype.{add, remove}, with more than\n// one parameter, in legacy browsers.\n// Support: IE\n(function checkDOMTokenListAddRemove() {\n if (!hasDOM || isNodeJS()) {\n return;\n }\n const div = document.createElement('div');\n div.classList.add('testOne', 'testTwo');\n\n if (div.classList.contains('testOne') === true &&\n div.classList.contains('testTwo') === true) {\n return;\n }\n const OriginalDOMTokenListAdd = DOMTokenList.prototype.add;\n const OriginalDOMTokenListRemove = DOMTokenList.prototype.remove;\n\n DOMTokenList.prototype.add = function(...tokens) {\n for (let token of tokens) {\n OriginalDOMTokenListAdd.call(this, token);\n }\n };\n DOMTokenList.prototype.remove = function(...tokens) {\n for (let token of tokens) {\n OriginalDOMTokenListRemove.call(this, token);\n }\n };\n})();\n\n// Provides support for DOMTokenList.prototype.toggle, with the optional\n// \"force\" parameter, in legacy browsers.\n// Support: IE\n(function checkDOMTokenListToggle() {\n if (!hasDOM || isNodeJS()) {\n return;\n }\n const div = document.createElement('div');\n if (div.classList.toggle('test', 0) === false) {\n return;\n }\n\n DOMTokenList.prototype.toggle = function(token) {\n let force = (arguments.length > 1 ? !!arguments[1] : !this.contains(token));\n return (this[force ? 'add' : 'remove'](token), force);\n };\n})();\n\n// Provides support for String.prototype.startsWith in legacy browsers.\n// Support: IE, Chrome<41\n(function checkStringStartsWith() {\n if (String.prototype.startsWith) {\n return;\n }\n require('core-js/fn/string/starts-with');\n})();\n\n// Provides support for String.prototype.endsWith in legacy browsers.\n// Support: IE, Chrome<41\n(function checkStringEndsWith() {\n if (String.prototype.endsWith) {\n return;\n }\n require('core-js/fn/string/ends-with');\n})();\n\n// Provides support for String.prototype.includes in legacy browsers.\n// Support: IE, Chrome<41\n(function checkStringIncludes() {\n if (String.prototype.includes) {\n return;\n }\n require('core-js/fn/string/includes');\n})();\n\n// Provides support for Array.prototype.includes in legacy browsers.\n// Support: IE, Chrome<47\n(function checkArrayIncludes() {\n if (Array.prototype.includes) {\n return;\n }\n require('core-js/fn/array/includes');\n})();\n\n// Provides support for Array.from in legacy browsers.\n// Support: IE\n(function checkArrayFrom() {\n if (Array.from) {\n return;\n }\n require('core-js/fn/array/from');\n})();\n\n// Provides support for Object.assign in legacy browsers.\n// Support: IE\n(function checkObjectAssign() {\n if (Object.assign) {\n return;\n }\n require('core-js/fn/object/assign');\n})();\n\n// Provides support for Math.log2 in legacy browsers.\n// Support: IE, Chrome<38\n(function checkMathLog2() {\n if (Math.log2) {\n return;\n }\n Math.log2 = require('core-js/fn/math/log2');\n})();\n\n// Provides support for Number.isNaN in legacy browsers.\n// Support: IE.\n(function checkNumberIsNaN() {\n if (Number.isNaN) {\n return;\n }\n Number.isNaN = require('core-js/fn/number/is-nan');\n})();\n\n// Provides support for Number.isInteger in legacy browsers.\n// Support: IE, Chrome<34\n(function checkNumberIsInteger() {\n if (Number.isInteger) {\n return;\n }\n Number.isInteger = require('core-js/fn/number/is-integer');\n})();\n\n// Support: IE, Safari<11, Chrome<63\n(function checkPromise() {\n if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('IMAGE_DECODERS')) {\n // The current image decoders are synchronous, hence `Promise` shouldn't\n // need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n if (globalScope.Promise && (globalScope.Promise.prototype &&\n globalScope.Promise.prototype.finally)) {\n return;\n }\n globalScope.Promise = require('core-js/fn/promise');\n})();\n\n// Support: IE<11, Safari<8, Chrome<36\n(function checkWeakMap() {\n if (globalScope.WeakMap) {\n return;\n }\n globalScope.WeakMap = require('core-js/fn/weak-map');\n})();\n\n// Support: IE11\n(function checkWeakSet() {\n if (globalScope.WeakSet) {\n return;\n }\n globalScope.WeakSet = require('core-js/fn/weak-set');\n})();\n\n// Provides support for String.codePointAt in legacy browsers.\n// Support: IE11.\n(function checkStringCodePointAt() {\n if (String.codePointAt) {\n return;\n }\n String.codePointAt = require('core-js/fn/string/code-point-at');\n})();\n\n// Provides support for String.fromCodePoint in legacy browsers.\n// Support: IE11.\n(function checkStringFromCodePoint() {\n if (String.fromCodePoint) {\n return;\n }\n String.fromCodePoint = require('core-js/fn/string/from-code-point');\n})();\n\n// Support: IE\n(function checkSymbol() {\n if (globalScope.Symbol) {\n return;\n }\n require('core-js/es6/symbol');\n})();\n\n// Provides support for String.prototype.padStart in legacy browsers.\n// Support: IE, Chrome<57\n(function checkStringPadStart() {\n if (String.prototype.padStart) {\n return;\n }\n require('core-js/fn/string/pad-start');\n})();\n\n// Provides support for String.prototype.padEnd in legacy browsers.\n// Support: IE, Chrome<57\n(function checkStringPadEnd() {\n if (String.prototype.padEnd) {\n return;\n }\n require('core-js/fn/string/pad-end');\n})();\n\n// Provides support for Object.values in legacy browsers.\n// Support: IE, Chrome<54\n(function checkObjectValues() {\n if (Object.values) {\n return;\n }\n Object.values = require('core-js/fn/object/values');\n})();\n\n}\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals module */\n\nmodule.exports =\n (typeof window !== 'undefined' && window.Math === Math) ? window :\n // eslint-disable-next-line no-undef\n (typeof global !== 'undefined' && global.Math === Math) ? global :\n (typeof self !== 'undefined' && self.Math === Math) ? self : {};\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals module, process */\n\nmodule.exports = function isNodeJS() {\n // NW.js / Electron is a browser context, but copies some Node.js objects; see\n // http://docs.nwjs.io/en/latest/For%20Users/Advanced/JavaScript%20Contexts%20in%20NW.js/#access-nodejs-and-nwjs-api-in-browser-context\n // https://electronjs.org/docs/api/process#processversionselectron\n return typeof process === 'object' &&\n process + '' === '[object process]' &&\n !process.versions['nw'] && !process.versions['electron'];\n};\n","require('../../modules/es6.string.starts-with');\nmodule.exports = require('../../modules/_core').String.startsWith;\n","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var core = module.exports = { version: '2.6.9' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","module.exports = false;\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","require('../../modules/es6.string.ends-with');\nmodule.exports = require('../../modules/_core').String.endsWith;\n","// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = context(this, searchString, ENDS_WITH);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","require('../../modules/es6.string.includes');\nmodule.exports = require('../../modules/_core').String.includes;\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","require('../../modules/es7.array.includes');\nmodule.exports = require('../../modules/_core').Array.includes;\n","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = {};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","exports.f = Object.getOwnPropertySymbols;\n","exports.f = {}.propertyIsEnumerable;\n","require('../../modules/es6.math.log2');\nmodule.exports = require('../../modules/_core').Math.log2;\n","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n","require('../../modules/es6.number.is-nan');\nmodule.exports = require('../../modules/_core').Number.isNaN;\n","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","require('../../modules/es6.number.is-integer');\nmodule.exports = require('../../modules/_core').Number.isInteger;\n","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { isInteger: require('./_is-integer') });\n","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object');\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.promise');\nrequire('../modules/es7.promise.finally');\nrequire('../modules/es7.promise.try');\nmodule.exports = require('../modules/_core').Promise;\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n","'use strict';\n// https://github.com/tc39/proposal-promise-try\nvar $export = require('./_export');\nvar newPromiseCapability = require('./_new-promise-capability');\nvar perform = require('./_perform');\n\n$export($export.S, 'Promise', { 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapability.f(this);\n var result = perform(callbackfn);\n (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n return promiseCapability.promise;\n} });\n","require('../modules/es6.object.to-string');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.weak-map');\nrequire('../modules/es7.weak-map.of');\nrequire('../modules/es7.weak-map.from');\nmodule.exports = require('../modules/_core').WeakMap;\n","'use strict';\nvar global = require('./_global');\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar validate = require('./_validate-collection');\nvar NATIVE_WEAK_MAP = require('./_validate-collection');\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of\nrequire('./_set-collection-of')('WeakMap');\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { of: function of() {\n var length = arguments.length;\n var A = new Array(length);\n while (length--) A[length] = arguments[length];\n return new this(A);\n } });\n};\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from\nrequire('./_set-collection-from')('WeakMap');\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar ctx = require('./_ctx');\nvar forOf = require('./_for-of');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {\n var mapFn = arguments[1];\n var mapping, A, n, cb;\n aFunction(this);\n mapping = mapFn !== undefined;\n if (mapping) aFunction(mapFn);\n if (source == undefined) return new this();\n A = [];\n if (mapping) {\n n = 0;\n cb = ctx(mapFn, arguments[2], 2);\n forOf(source, false, function (nextItem) {\n A.push(cb(nextItem, n++));\n });\n } else {\n forOf(source, false, A.push, A);\n }\n return new this(A);\n } });\n};\n","require('../modules/es6.object.to-string');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.weak-set');\nrequire('../modules/es7.weak-set.of');\nrequire('../modules/es7.weak-set.from');\nmodule.exports = require('../modules/_core').WeakSet;\n","'use strict';\nvar weak = require('./_collection-weak');\nvar validate = require('./_validate-collection');\nvar WEAK_SET = 'WeakSet';\n\n// 23.4 WeakSet Objects\nrequire('./_collection')(WEAK_SET, function (get) {\n return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return weak.def(validate(this, WEAK_SET), value, true);\n }\n}, weak, false, true);\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of\nrequire('./_set-collection-of')('WeakSet');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from\nrequire('./_set-collection-from')('WeakSet');\n","require('../../modules/es6.string.code-point-at');\nmodule.exports = require('../../modules/_core').String.codePointAt;\n","'use strict';\nvar $export = require('./_export');\nvar $at = require('./_string-at')(false);\n$export($export.P, 'String', {\n // 21.1.3.3 String.prototype.codePointAt(pos)\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n});\n","require('../../modules/es6.string.from-code-point');\nmodule.exports = require('../../modules/_core').String.fromCodePoint;\n","var $export = require('./_export');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n // 21.1.2.2 String.fromCodePoint(...codePoints)\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var res = [];\n var aLen = arguments.length;\n var i = 0;\n var code;\n while (aLen > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n );\n } return res.join('');\n }\n});\n","require('../modules/es6.symbol');\nrequire('../modules/es6.object.to-string');\nmodule.exports = require('../modules/_core').Symbol;\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","require('../../modules/es7.string.pad-start');\nmodule.exports = require('../../modules/_core').String.padStart;\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\nvar WEBKIT_BUG = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n\n$export($export.P + $export.F * WEBKIT_BUG, 'String', {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('./_to-length');\nvar repeat = require('./_string-repeat');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, maxLength, fillString, left) {\n var S = String(defined(that));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n if (intMaxLength <= stringLength || fillStr == '') return S;\n var fillLen = intMaxLength - stringLength;\n var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return left ? stringFiller + S : S + stringFiller;\n};\n","'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n return res;\n};\n","require('../../modules/es7.string.pad-end');\nmodule.exports = require('../../modules/_core').String.padEnd;\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\nvar WEBKIT_BUG = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n\n$export($export.P + $export.F * WEBKIT_BUG, 'String', {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n }\n});\n","require('../../modules/es7.object.values');\nmodule.exports = require('../../modules/_core').Object.values;\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n","var DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || isEnum.call(O, key)) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable no-restricted-globals */\n\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('MOZCENTRAL')) {\n if (typeof ReadableStream === 'undefined') {\n throw new Error('Please enable ReadableStream support by resetting the ' +\n '\"javascript.options.streams\" preference to \"true\" in about:config.');\n }\n exports.ReadableStream = ReadableStream;\n} else {\n let isReadableStreamSupported = false;\n if (typeof ReadableStream !== 'undefined') {\n // MS Edge may say it has ReadableStream but they are not up to spec yet.\n try {\n // eslint-disable-next-line no-new\n new ReadableStream({\n start(controller) {\n controller.close();\n },\n });\n isReadableStreamSupported = true;\n } catch (e) {\n // The ReadableStream constructor cannot be used.\n }\n }\n if (isReadableStreamSupported) {\n exports.ReadableStream = ReadableStream;\n } else if (typeof PDFJSDev !== 'undefined' &&\n PDFJSDev.test('IMAGE_DECODERS')) {\n class DummyReadableStream {\n constructor() {\n throw new Error('The current image decoders are synchronous, ' +\n 'hence `ReadableStream` shouldn\\'t need to be ' +\n 'polyfilled for the IMAGE_DECODERS build target.');\n }\n }\n exports.ReadableStream = DummyReadableStream;\n } else {\n exports.ReadableStream =\n require('../../external/streams/streams-lib').ReadableStream;\n }\n}\n","/*\n * To the extent possible under law, the authors have dedicated all copyright\n * and related and neighboring rights to this software to the public\n * domain worldwide. This software is distributed without any warranty.\n *\n * You should have received a copy of the CC0 Public Domain Dedication along\n * with this software. If not, see https://creativecommons.org/publicdomain/zero/1.0/.\n */\n\n(function(e, a) { for(var i in a) e[i] = a[i]; }(exports, /******/ (function(modules) { // webpackBootstrap\n/******/ // The module cache\n/******/ var installedModules = {};\n/******/\n/******/ // The require function\n/******/ function __w_pdfjs_require__(moduleId) {\n/******/\n/******/ // Check if module is in cache\n/******/ if(installedModules[moduleId])\n/******/ return installedModules[moduleId].exports;\n/******/\n/******/ // Create a new module (and put it into the cache)\n/******/ var module = installedModules[moduleId] = {\n/******/ i: moduleId,\n/******/ l: false,\n/******/ exports: {}\n/******/ };\n/******/\n/******/ // Execute the module function\n/******/ modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n/******/\n/******/ // Flag the module as loaded\n/******/ module.l = true;\n/******/\n/******/ // Return the exports of the module\n/******/ return module.exports;\n/******/ }\n/******/\n/******/\n/******/ // expose the modules object (__webpack_modules__)\n/******/ __w_pdfjs_require__.m = modules;\n/******/\n/******/ // expose the module cache\n/******/ __w_pdfjs_require__.c = installedModules;\n/******/\n/******/ // identity function for calling harmony imports with the correct context\n/******/ __w_pdfjs_require__.i = function(value) { return value; };\n/******/\n/******/ // define getter function for harmony exports\n/******/ __w_pdfjs_require__.d = function(exports, name, getter) {\n/******/ if(!__w_pdfjs_require__.o(exports, name)) {\n/******/ Object.defineProperty(exports, name, {\n/******/ configurable: false,\n/******/ enumerable: true,\n/******/ get: getter\n/******/ });\n/******/ }\n/******/ };\n/******/\n/******/ // getDefaultExport function for compatibility with non-harmony modules\n/******/ __w_pdfjs_require__.n = function(module) {\n/******/ var getter = module && module.__esModule ?\n/******/ function getDefault() { return module['default']; } :\n/******/ function getModuleExports() { return module; };\n/******/ __w_pdfjs_require__.d(getter, 'a', getter);\n/******/ return getter;\n/******/ };\n/******/\n/******/ // Object.prototype.hasOwnProperty.call\n/******/ __w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ // __webpack_public_path__\n/******/ __w_pdfjs_require__.p = \"\";\n/******/\n/******/ // Load entry module and return exports\n/******/ return __w_pdfjs_require__(__w_pdfjs_require__.s = 7);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _require = __w_pdfjs_require__(1),\n assert = _require.assert;\n\nfunction IsPropertyKey(argument) {\n return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol';\n}\n\nexports.typeIsObject = function (x) {\n return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function';\n};\n\nexports.createDataProperty = function (o, p, v) {\n assert(exports.typeIsObject(o));\n Object.defineProperty(o, p, { value: v, writable: true, enumerable: true, configurable: true });\n};\n\nexports.createArrayFromList = function (elements) {\n // We use arrays to represent lists, so this is basically a no-op.\n // Do a slice though just in case we happen to depend on the unique-ness.\n return elements.slice();\n};\n\nexports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) {\n new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n};\n\nexports.CreateIterResultObject = function (value, done) {\n assert(typeof done === 'boolean');\n var obj = {};\n Object.defineProperty(obj, 'value', { value: value, enumerable: true, writable: true, configurable: true });\n Object.defineProperty(obj, 'done', { value: done, enumerable: true, writable: true, configurable: true });\n return obj;\n};\n\nexports.IsFiniteNonNegativeNumber = function (v) {\n if (Number.isNaN(v)) {\n return false;\n }\n if (v === Infinity) {\n return false;\n }\n if (v < 0) {\n return false;\n }\n\n return true;\n};\n\nfunction Call(F, V, args) {\n if (typeof F !== 'function') {\n throw new TypeError('Argument is not a function');\n }\n\n return Function.prototype.apply.call(F, V, args);\n}\n\nexports.InvokeOrNoop = function (O, P, args) {\n assert(O !== undefined);\n assert(IsPropertyKey(P));\n assert(Array.isArray(args));\n\n var method = O[P];\n if (method === undefined) {\n return undefined;\n }\n\n return Call(method, O, args);\n};\n\nexports.PromiseInvokeOrNoop = function (O, P, args) {\n assert(O !== undefined);\n assert(IsPropertyKey(P));\n assert(Array.isArray(args));\n try {\n return Promise.resolve(exports.InvokeOrNoop(O, P, args));\n } catch (returnValueE) {\n return Promise.reject(returnValueE);\n }\n};\n\nexports.PromiseInvokeOrPerformFallback = function (O, P, args, F, argsF) {\n assert(O !== undefined);\n assert(IsPropertyKey(P));\n assert(Array.isArray(args));\n assert(Array.isArray(argsF));\n\n var method = void 0;\n try {\n method = O[P];\n } catch (methodE) {\n return Promise.reject(methodE);\n }\n\n if (method === undefined) {\n return F.apply(null, argsF);\n }\n\n try {\n return Promise.resolve(Call(method, O, args));\n } catch (e) {\n return Promise.reject(e);\n }\n};\n\n// Not implemented correctly\nexports.TransferArrayBuffer = function (O) {\n return O.slice();\n};\n\nexports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) {\n highWaterMark = Number(highWaterMark);\n if (Number.isNaN(highWaterMark) || highWaterMark < 0) {\n throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN');\n }\n\n return highWaterMark;\n};\n\nexports.ValidateAndNormalizeQueuingStrategy = function (size, highWaterMark) {\n if (size !== undefined && typeof size !== 'function') {\n throw new TypeError('size property of a queuing strategy must be a function');\n }\n\n highWaterMark = exports.ValidateAndNormalizeHighWaterMark(highWaterMark);\n\n return { size: size, highWaterMark: highWaterMark };\n};\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction rethrowAssertionErrorRejection(e) {\n // Used throughout the reference implementation, as `.catch(rethrowAssertionErrorRejection)`, to ensure any errors\n // get shown. There are places in the spec where we do promise transformations and purposefully ignore or don't\n // expect any errors, but assertion errors are always problematic.\n if (e && e.constructor === AssertionError) {\n setTimeout(function () {\n throw e;\n }, 0);\n }\n};\n\nfunction AssertionError(message) {\n this.name = 'AssertionError';\n this.message = message || '';\n this.stack = new Error().stack;\n}\nAssertionError.prototype = Object.create(Error.prototype);\nAssertionError.prototype.constructor = AssertionError;\n\nfunction assert(value, message) {\n if (!value) {\n throw new AssertionError(message);\n }\n}\n\nmodule.exports = {\n rethrowAssertionErrorRejection: rethrowAssertionErrorRejection,\n AssertionError: AssertionError,\n assert: assert\n};\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = __w_pdfjs_require__(0),\n InvokeOrNoop = _require.InvokeOrNoop,\n PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,\n ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,\n typeIsObject = _require.typeIsObject;\n\nvar _require2 = __w_pdfjs_require__(1),\n assert = _require2.assert,\n rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection;\n\nvar _require3 = __w_pdfjs_require__(3),\n DequeueValue = _require3.DequeueValue,\n EnqueueValueWithSize = _require3.EnqueueValueWithSize,\n PeekQueueValue = _require3.PeekQueueValue,\n ResetQueue = _require3.ResetQueue;\n\nvar WritableStream = function () {\n function WritableStream() {\n var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n size = _ref.size,\n _ref$highWaterMark = _ref.highWaterMark,\n highWaterMark = _ref$highWaterMark === undefined ? 1 : _ref$highWaterMark;\n\n _classCallCheck(this, WritableStream);\n\n this._state = 'writable';\n\n // The error that will be reported by new method calls once the state becomes errored. Only set when [[state]] is\n // 'erroring' or 'errored'. May be set to an undefined value.\n this._storedError = undefined;\n\n this._writer = undefined;\n\n // Initialize to undefined first because the constructor of the controller checks this\n // variable to validate the caller.\n this._writableStreamController = undefined;\n\n // This queue is placed here instead of the writer class in order to allow for passing a writer to the next data\n // producer without waiting for the queued writes to finish.\n this._writeRequests = [];\n\n // Write requests are removed from _writeRequests when write() is called on the underlying sink. This prevents\n // them from being erroneously rejected on error. If a write() call is in-flight, the request is stored here.\n this._inFlightWriteRequest = undefined;\n\n // The promise that was returned from writer.close(). Stored here because it may be fulfilled after the writer\n // has been detached.\n this._closeRequest = undefined;\n\n // Close request is removed from _closeRequest when close() is called on the underlying sink. This prevents it\n // from being erroneously rejected on error. If a close() call is in-flight, the request is stored here.\n this._inFlightCloseRequest = undefined;\n\n // The promise that was returned from writer.abort(). This may also be fulfilled after the writer has detached.\n this._pendingAbortRequest = undefined;\n\n // The backpressure signal set by the controller.\n this._backpressure = false;\n\n var type = underlyingSink.type;\n\n if (type !== undefined) {\n throw new RangeError('Invalid type is specified');\n }\n\n this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark);\n this._writableStreamController.__startSteps();\n }\n\n _createClass(WritableStream, [{\n key: 'abort',\n value: function abort(reason) {\n if (IsWritableStream(this) === false) {\n return Promise.reject(streamBrandCheckException('abort'));\n }\n\n if (IsWritableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('Cannot abort a stream that already has a writer'));\n }\n\n return WritableStreamAbort(this, reason);\n }\n }, {\n key: 'getWriter',\n value: function getWriter() {\n if (IsWritableStream(this) === false) {\n throw streamBrandCheckException('getWriter');\n }\n\n return AcquireWritableStreamDefaultWriter(this);\n }\n }, {\n key: 'locked',\n get: function get() {\n if (IsWritableStream(this) === false) {\n throw streamBrandCheckException('locked');\n }\n\n return IsWritableStreamLocked(this);\n }\n }]);\n\n return WritableStream;\n}();\n\nmodule.exports = {\n AcquireWritableStreamDefaultWriter: AcquireWritableStreamDefaultWriter,\n IsWritableStream: IsWritableStream,\n IsWritableStreamLocked: IsWritableStreamLocked,\n WritableStream: WritableStream,\n WritableStreamAbort: WritableStreamAbort,\n WritableStreamDefaultControllerError: WritableStreamDefaultControllerError,\n WritableStreamDefaultWriterCloseWithErrorPropagation: WritableStreamDefaultWriterCloseWithErrorPropagation,\n WritableStreamDefaultWriterRelease: WritableStreamDefaultWriterRelease,\n WritableStreamDefaultWriterWrite: WritableStreamDefaultWriterWrite,\n WritableStreamCloseQueuedOrInFlight: WritableStreamCloseQueuedOrInFlight\n};\n\n// Abstract operations for the WritableStream.\n\nfunction AcquireWritableStreamDefaultWriter(stream) {\n return new WritableStreamDefaultWriter(stream);\n}\n\nfunction IsWritableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n return false;\n }\n\n return true;\n}\n\nfunction IsWritableStreamLocked(stream) {\n assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams');\n\n if (stream._writer === undefined) {\n return false;\n }\n\n return true;\n}\n\nfunction WritableStreamAbort(stream, reason) {\n var state = stream._state;\n if (state === 'closed') {\n return Promise.resolve(undefined);\n }\n if (state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n var error = new TypeError('Requested to abort');\n if (stream._pendingAbortRequest !== undefined) {\n return Promise.reject(error);\n }\n\n assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring');\n\n var wasAlreadyErroring = false;\n if (state === 'erroring') {\n wasAlreadyErroring = true;\n // reason will not be used, so don't keep a reference to it.\n reason = undefined;\n }\n\n var promise = new Promise(function (resolve, reject) {\n stream._pendingAbortRequest = {\n _resolve: resolve,\n _reject: reject,\n _reason: reason,\n _wasAlreadyErroring: wasAlreadyErroring\n };\n });\n\n if (wasAlreadyErroring === false) {\n WritableStreamStartErroring(stream, error);\n }\n\n return promise;\n}\n\n// WritableStream API exposed for controllers.\n\nfunction WritableStreamAddWriteRequest(stream) {\n assert(IsWritableStreamLocked(stream) === true);\n assert(stream._state === 'writable');\n\n var promise = new Promise(function (resolve, reject) {\n var writeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n\n stream._writeRequests.push(writeRequest);\n });\n\n return promise;\n}\n\nfunction WritableStreamDealWithRejection(stream, error) {\n var state = stream._state;\n\n if (state === 'writable') {\n WritableStreamStartErroring(stream, error);\n return;\n }\n\n assert(state === 'erroring');\n WritableStreamFinishErroring(stream);\n}\n\nfunction WritableStreamStartErroring(stream, reason) {\n assert(stream._storedError === undefined, 'stream._storedError === undefined');\n assert(stream._state === 'writable', 'state must be writable');\n\n var controller = stream._writableStreamController;\n assert(controller !== undefined, 'controller must not be undefined');\n\n stream._state = 'erroring';\n stream._storedError = reason;\n var writer = stream._writer;\n if (writer !== undefined) {\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n }\n\n if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) {\n WritableStreamFinishErroring(stream);\n }\n}\n\nfunction WritableStreamFinishErroring(stream) {\n assert(stream._state === 'erroring', 'stream._state === erroring');\n assert(WritableStreamHasOperationMarkedInFlight(stream) === false, 'WritableStreamHasOperationMarkedInFlight(stream) === false');\n stream._state = 'errored';\n stream._writableStreamController.__errorSteps();\n\n var storedError = stream._storedError;\n for (var i = 0; i < stream._writeRequests.length; i++) {\n var writeRequest = stream._writeRequests[i];\n writeRequest._reject(storedError);\n }\n stream._writeRequests = [];\n\n if (stream._pendingAbortRequest === undefined) {\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n\n var abortRequest = stream._pendingAbortRequest;\n stream._pendingAbortRequest = undefined;\n\n if (abortRequest._wasAlreadyErroring === true) {\n abortRequest._reject(storedError);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n\n var promise = stream._writableStreamController.__abortSteps(abortRequest._reason);\n promise.then(function () {\n abortRequest._resolve();\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n }, function (reason) {\n abortRequest._reject(reason);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n });\n}\n\nfunction WritableStreamFinishInFlightWrite(stream) {\n assert(stream._inFlightWriteRequest !== undefined);\n stream._inFlightWriteRequest._resolve(undefined);\n stream._inFlightWriteRequest = undefined;\n}\n\nfunction WritableStreamFinishInFlightWriteWithError(stream, error) {\n assert(stream._inFlightWriteRequest !== undefined);\n stream._inFlightWriteRequest._reject(error);\n stream._inFlightWriteRequest = undefined;\n\n assert(stream._state === 'writable' || stream._state === 'erroring');\n\n WritableStreamDealWithRejection(stream, error);\n}\n\nfunction WritableStreamFinishInFlightClose(stream) {\n assert(stream._inFlightCloseRequest !== undefined);\n stream._inFlightCloseRequest._resolve(undefined);\n stream._inFlightCloseRequest = undefined;\n\n var state = stream._state;\n\n assert(state === 'writable' || state === 'erroring');\n\n if (state === 'erroring') {\n // The error was too late to do anything, so it is ignored.\n stream._storedError = undefined;\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._resolve();\n stream._pendingAbortRequest = undefined;\n }\n }\n\n stream._state = 'closed';\n\n var writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseResolve(writer);\n }\n\n assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined');\n assert(stream._storedError === undefined, 'stream._storedError === undefined');\n}\n\nfunction WritableStreamFinishInFlightCloseWithError(stream, error) {\n assert(stream._inFlightCloseRequest !== undefined);\n stream._inFlightCloseRequest._reject(error);\n stream._inFlightCloseRequest = undefined;\n\n assert(stream._state === 'writable' || stream._state === 'erroring');\n\n // Never execute sink abort() after sink close().\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._reject(error);\n stream._pendingAbortRequest = undefined;\n }\n WritableStreamDealWithRejection(stream, error);\n}\n\n// TODO(ricea): Fix alphabetical order.\nfunction WritableStreamCloseQueuedOrInFlight(stream) {\n if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n\n return true;\n}\n\nfunction WritableStreamHasOperationMarkedInFlight(stream) {\n if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n\n return true;\n}\n\nfunction WritableStreamMarkCloseRequestInFlight(stream) {\n assert(stream._inFlightCloseRequest === undefined);\n assert(stream._closeRequest !== undefined);\n stream._inFlightCloseRequest = stream._closeRequest;\n stream._closeRequest = undefined;\n}\n\nfunction WritableStreamMarkFirstWriteRequestInFlight(stream) {\n assert(stream._inFlightWriteRequest === undefined, 'there must be no pending write request');\n assert(stream._writeRequests.length !== 0, 'writeRequests must not be empty');\n stream._inFlightWriteRequest = stream._writeRequests.shift();\n}\n\nfunction WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n assert(stream._state === 'errored', '_stream_.[[state]] is `\"errored\"`');\n if (stream._closeRequest !== undefined) {\n assert(stream._inFlightCloseRequest === undefined);\n\n stream._closeRequest._reject(stream._storedError);\n stream._closeRequest = undefined;\n }\n var writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseReject(writer, stream._storedError);\n writer._closedPromise.catch(function () {});\n }\n}\n\nfunction WritableStreamUpdateBackpressure(stream, backpressure) {\n assert(stream._state === 'writable');\n assert(WritableStreamCloseQueuedOrInFlight(stream) === false);\n\n var writer = stream._writer;\n if (writer !== undefined && backpressure !== stream._backpressure) {\n if (backpressure === true) {\n defaultWriterReadyPromiseReset(writer);\n } else {\n assert(backpressure === false);\n\n defaultWriterReadyPromiseResolve(writer);\n }\n }\n\n stream._backpressure = backpressure;\n}\n\nvar WritableStreamDefaultWriter = function () {\n function WritableStreamDefaultWriter(stream) {\n _classCallCheck(this, WritableStreamDefaultWriter);\n\n if (IsWritableStream(stream) === false) {\n throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance');\n }\n if (IsWritableStreamLocked(stream) === true) {\n throw new TypeError('This stream has already been locked for exclusive writing by another writer');\n }\n\n this._ownerWritableStream = stream;\n stream._writer = this;\n\n var state = stream._state;\n\n if (state === 'writable') {\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) {\n defaultWriterReadyPromiseInitialize(this);\n } else {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n }\n\n defaultWriterClosedPromiseInitialize(this);\n } else if (state === 'erroring') {\n defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\n this._readyPromise.catch(function () {});\n defaultWriterClosedPromiseInitialize(this);\n } else if (state === 'closed') {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n defaultWriterClosedPromiseInitializeAsResolved(this);\n } else {\n assert(state === 'errored', 'state must be errored');\n\n var storedError = stream._storedError;\n defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\n this._readyPromise.catch(function () {});\n defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n this._closedPromise.catch(function () {});\n }\n }\n\n _createClass(WritableStreamDefaultWriter, [{\n key: 'abort',\n value: function abort(reason) {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('abort'));\n }\n\n if (this._ownerWritableStream === undefined) {\n return Promise.reject(defaultWriterLockException('abort'));\n }\n\n return WritableStreamDefaultWriterAbort(this, reason);\n }\n }, {\n key: 'close',\n value: function close() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('close'));\n }\n\n var stream = this._ownerWritableStream;\n\n if (stream === undefined) {\n return Promise.reject(defaultWriterLockException('close'));\n }\n\n if (WritableStreamCloseQueuedOrInFlight(stream) === true) {\n return Promise.reject(new TypeError('cannot close an already-closing stream'));\n }\n\n return WritableStreamDefaultWriterClose(this);\n }\n }, {\n key: 'releaseLock',\n value: function releaseLock() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n throw defaultWriterBrandCheckException('releaseLock');\n }\n\n var stream = this._ownerWritableStream;\n\n if (stream === undefined) {\n return;\n }\n\n assert(stream._writer !== undefined);\n\n WritableStreamDefaultWriterRelease(this);\n }\n }, {\n key: 'write',\n value: function write(chunk) {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('write'));\n }\n\n if (this._ownerWritableStream === undefined) {\n return Promise.reject(defaultWriterLockException('write to'));\n }\n\n return WritableStreamDefaultWriterWrite(this, chunk);\n }\n }, {\n key: 'closed',\n get: function get() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('closed'));\n }\n\n return this._closedPromise;\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n throw defaultWriterBrandCheckException('desiredSize');\n }\n\n if (this._ownerWritableStream === undefined) {\n throw defaultWriterLockException('desiredSize');\n }\n\n return WritableStreamDefaultWriterGetDesiredSize(this);\n }\n }, {\n key: 'ready',\n get: function get() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('ready'));\n }\n\n return this._readyPromise;\n }\n }]);\n\n return WritableStreamDefaultWriter;\n}();\n\n// Abstract operations for the WritableStreamDefaultWriter.\n\nfunction IsWritableStreamDefaultWriter(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n return false;\n }\n\n return true;\n}\n\n// A client of WritableStreamDefaultWriter may use these functions directly to bypass state check.\n\nfunction WritableStreamDefaultWriterAbort(writer, reason) {\n var stream = writer._ownerWritableStream;\n\n assert(stream !== undefined);\n\n return WritableStreamAbort(stream, reason);\n}\n\nfunction WritableStreamDefaultWriterClose(writer) {\n var stream = writer._ownerWritableStream;\n\n assert(stream !== undefined);\n\n var state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return Promise.reject(new TypeError('The stream (in ' + state + ' state) is not in the writable state and cannot be closed'));\n }\n\n assert(state === 'writable' || state === 'erroring');\n assert(WritableStreamCloseQueuedOrInFlight(stream) === false);\n\n var promise = new Promise(function (resolve, reject) {\n var closeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n\n stream._closeRequest = closeRequest;\n });\n\n if (stream._backpressure === true && state === 'writable') {\n defaultWriterReadyPromiseResolve(writer);\n }\n\n WritableStreamDefaultControllerClose(stream._writableStreamController);\n\n return promise;\n}\n\nfunction WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n var stream = writer._ownerWritableStream;\n\n assert(stream !== undefined);\n\n var state = stream._state;\n if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\n return Promise.resolve();\n }\n\n if (state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n\n assert(state === 'writable' || state === 'erroring');\n\n return WritableStreamDefaultWriterClose(writer);\n}\n\nfunction WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n if (writer._closedPromiseState === 'pending') {\n defaultWriterClosedPromiseReject(writer, error);\n } else {\n defaultWriterClosedPromiseResetToRejected(writer, error);\n }\n writer._closedPromise.catch(function () {});\n}\n\nfunction WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n if (writer._readyPromiseState === 'pending') {\n defaultWriterReadyPromiseReject(writer, error);\n } else {\n defaultWriterReadyPromiseResetToRejected(writer, error);\n }\n writer._readyPromise.catch(function () {});\n}\n\nfunction WritableStreamDefaultWriterGetDesiredSize(writer) {\n var stream = writer._ownerWritableStream;\n var state = stream._state;\n\n if (state === 'errored' || state === 'erroring') {\n return null;\n }\n\n if (state === 'closed') {\n return 0;\n }\n\n return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\n}\n\nfunction WritableStreamDefaultWriterRelease(writer) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n assert(stream._writer === writer);\n\n var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\\'s closedness');\n\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n\n // The state transitions to \"errored\" before the sink abort() method runs, but the writer.closed promise is not\n // rejected until afterwards. This means that simply testing state will not work.\n WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n\n stream._writer = undefined;\n writer._ownerWritableStream = undefined;\n}\n\nfunction WritableStreamDefaultWriterWrite(writer, chunk) {\n var stream = writer._ownerWritableStream;\n\n assert(stream !== undefined);\n\n var controller = stream._writableStreamController;\n\n var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\n\n if (stream !== writer._ownerWritableStream) {\n return Promise.reject(defaultWriterLockException('write to'));\n }\n\n var state = stream._state;\n if (state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\n return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to'));\n }\n if (state === 'erroring') {\n return Promise.reject(stream._storedError);\n }\n\n assert(state === 'writable');\n\n var promise = WritableStreamAddWriteRequest(stream);\n\n WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n\n return promise;\n}\n\nvar WritableStreamDefaultController = function () {\n function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) {\n _classCallCheck(this, WritableStreamDefaultController);\n\n if (IsWritableStream(stream) === false) {\n throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance');\n }\n\n if (stream._writableStreamController !== undefined) {\n throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor');\n }\n\n this._controlledWritableStream = stream;\n\n this._underlyingSink = underlyingSink;\n\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n this._queue = undefined;\n this._queueTotalSize = undefined;\n ResetQueue(this);\n\n this._started = false;\n\n var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);\n this._strategySize = normalizedStrategy.size;\n this._strategyHWM = normalizedStrategy.highWaterMark;\n\n var backpressure = WritableStreamDefaultControllerGetBackpressure(this);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n\n _createClass(WritableStreamDefaultController, [{\n key: 'error',\n value: function error(e) {\n if (IsWritableStreamDefaultController(this) === false) {\n throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController');\n }\n var state = this._controlledWritableStream._state;\n if (state !== 'writable') {\n // The stream is closed, errored or will be soon. The sink can't do anything useful if it gets an error here, so\n // just treat it as a no-op.\n return;\n }\n\n WritableStreamDefaultControllerError(this, e);\n }\n }, {\n key: '__abortSteps',\n value: function __abortSteps(reason) {\n return PromiseInvokeOrNoop(this._underlyingSink, 'abort', [reason]);\n }\n }, {\n key: '__errorSteps',\n value: function __errorSteps() {\n ResetQueue(this);\n }\n }, {\n key: '__startSteps',\n value: function __startSteps() {\n var _this = this;\n\n var startResult = InvokeOrNoop(this._underlyingSink, 'start', [this]);\n var stream = this._controlledWritableStream;\n\n Promise.resolve(startResult).then(function () {\n assert(stream._state === 'writable' || stream._state === 'erroring');\n _this._started = true;\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(_this);\n }, function (r) {\n assert(stream._state === 'writable' || stream._state === 'erroring');\n _this._started = true;\n WritableStreamDealWithRejection(stream, r);\n }).catch(rethrowAssertionErrorRejection);\n }\n }]);\n\n return WritableStreamDefaultController;\n}();\n\n// Abstract operations implementing interface required by the WritableStream.\n\nfunction WritableStreamDefaultControllerClose(controller) {\n EnqueueValueWithSize(controller, 'close', 0);\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n}\n\nfunction WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n var strategySize = controller._strategySize;\n\n if (strategySize === undefined) {\n return 1;\n }\n\n try {\n return strategySize(chunk);\n } catch (chunkSizeE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n return 1;\n }\n}\n\nfunction WritableStreamDefaultControllerGetDesiredSize(controller) {\n return controller._strategyHWM - controller._queueTotalSize;\n}\n\nfunction WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n var writeRecord = { chunk: chunk };\n\n try {\n EnqueueValueWithSize(controller, writeRecord, chunkSize);\n } catch (enqueueE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n return;\n }\n\n var stream = controller._controlledWritableStream;\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') {\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n}\n\n// Abstract operations for the WritableStreamDefaultController.\n\nfunction IsWritableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) {\n return false;\n }\n\n return true;\n}\n\nfunction WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n var stream = controller._controlledWritableStream;\n\n if (controller._started === false) {\n return;\n }\n\n if (stream._inFlightWriteRequest !== undefined) {\n return;\n }\n\n var state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return;\n }\n if (state === 'erroring') {\n WritableStreamFinishErroring(stream);\n return;\n }\n\n if (controller._queue.length === 0) {\n return;\n }\n\n var writeRecord = PeekQueueValue(controller);\n if (writeRecord === 'close') {\n WritableStreamDefaultControllerProcessClose(controller);\n } else {\n WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk);\n }\n}\n\nfunction WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n if (controller._controlledWritableStream._state === 'writable') {\n WritableStreamDefaultControllerError(controller, error);\n }\n}\n\nfunction WritableStreamDefaultControllerProcessClose(controller) {\n var stream = controller._controlledWritableStream;\n\n WritableStreamMarkCloseRequestInFlight(stream);\n\n DequeueValue(controller);\n assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued');\n\n var sinkClosePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'close', []);\n sinkClosePromise.then(function () {\n WritableStreamFinishInFlightClose(stream);\n }, function (reason) {\n WritableStreamFinishInFlightCloseWithError(stream, reason);\n }).catch(rethrowAssertionErrorRejection);\n}\n\nfunction WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n var stream = controller._controlledWritableStream;\n\n WritableStreamMarkFirstWriteRequestInFlight(stream);\n\n var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]);\n sinkWritePromise.then(function () {\n WritableStreamFinishInFlightWrite(stream);\n\n var state = stream._state;\n assert(state === 'writable' || state === 'erroring');\n\n DequeueValue(controller);\n\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') {\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, function (reason) {\n WritableStreamFinishInFlightWriteWithError(stream, reason);\n }).catch(rethrowAssertionErrorRejection);\n}\n\nfunction WritableStreamDefaultControllerGetBackpressure(controller) {\n var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n return desiredSize <= 0;\n}\n\n// A client of WritableStreamDefaultController may use these functions directly to bypass state check.\n\nfunction WritableStreamDefaultControllerError(controller, error) {\n var stream = controller._controlledWritableStream;\n\n assert(stream._state === 'writable');\n\n WritableStreamStartErroring(stream, error);\n}\n\n// Helper functions for the WritableStream.\n\nfunction streamBrandCheckException(name) {\n return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream');\n}\n\n// Helper functions for the WritableStreamDefaultWriter.\n\nfunction defaultWriterBrandCheckException(name) {\n return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter');\n}\n\nfunction defaultWriterLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released writer');\n}\n\nfunction defaultWriterClosedPromiseInitialize(writer) {\n writer._closedPromise = new Promise(function (resolve, reject) {\n writer._closedPromise_resolve = resolve;\n writer._closedPromise_reject = reject;\n writer._closedPromiseState = 'pending';\n });\n}\n\nfunction defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\n writer._closedPromise = Promise.reject(reason);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\n}\n\nfunction defaultWriterClosedPromiseInitializeAsResolved(writer) {\n writer._closedPromise = Promise.resolve(undefined);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n}\n\nfunction defaultWriterClosedPromiseReject(writer, reason) {\n assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');\n assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');\n assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');\n\n writer._closedPromise_reject(reason);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\n}\n\nfunction defaultWriterClosedPromiseResetToRejected(writer, reason) {\n assert(writer._closedPromise_resolve === undefined, 'writer._closedPromise_resolve === undefined');\n assert(writer._closedPromise_reject === undefined, 'writer._closedPromise_reject === undefined');\n assert(writer._closedPromiseState !== 'pending', 'writer._closedPromiseState is not pending');\n\n writer._closedPromise = Promise.reject(reason);\n writer._closedPromiseState = 'rejected';\n}\n\nfunction defaultWriterClosedPromiseResolve(writer) {\n assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');\n assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');\n assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');\n\n writer._closedPromise_resolve(undefined);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n}\n\nfunction defaultWriterReadyPromiseInitialize(writer) {\n writer._readyPromise = new Promise(function (resolve, reject) {\n writer._readyPromise_resolve = resolve;\n writer._readyPromise_reject = reject;\n });\n writer._readyPromiseState = 'pending';\n}\n\nfunction defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\n writer._readyPromise = Promise.reject(reason);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\n}\n\nfunction defaultWriterReadyPromiseInitializeAsResolved(writer) {\n writer._readyPromise = Promise.resolve(undefined);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n}\n\nfunction defaultWriterReadyPromiseReject(writer, reason) {\n assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');\n assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');\n\n writer._readyPromise_reject(reason);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\n}\n\nfunction defaultWriterReadyPromiseReset(writer) {\n assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');\n assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');\n\n writer._readyPromise = new Promise(function (resolve, reject) {\n writer._readyPromise_resolve = resolve;\n writer._readyPromise_reject = reject;\n });\n writer._readyPromiseState = 'pending';\n}\n\nfunction defaultWriterReadyPromiseResetToRejected(writer, reason) {\n assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');\n assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');\n\n writer._readyPromise = Promise.reject(reason);\n writer._readyPromiseState = 'rejected';\n}\n\nfunction defaultWriterReadyPromiseResolve(writer) {\n assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');\n assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');\n\n writer._readyPromise_resolve(undefined);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n}\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _require = __w_pdfjs_require__(0),\n IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber;\n\nvar _require2 = __w_pdfjs_require__(1),\n assert = _require2.assert;\n\nexports.DequeueValue = function (container) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: DequeueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n assert(container._queue.length > 0, 'Spec-level failure: should never dequeue from an empty queue.');\n\n var pair = container._queue.shift();\n container._queueTotalSize -= pair.size;\n if (container._queueTotalSize < 0) {\n container._queueTotalSize = 0;\n }\n\n return pair.value;\n};\n\nexports.EnqueueValueWithSize = function (container, value, size) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: EnqueueValueWithSize should only be used on containers with [[queue]] and ' + '[[queueTotalSize]].');\n\n size = Number(size);\n if (!IsFiniteNonNegativeNumber(size)) {\n throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n }\n\n container._queue.push({ value: value, size: size });\n container._queueTotalSize += size;\n};\n\nexports.PeekQueueValue = function (container) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: PeekQueueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n assert(container._queue.length > 0, 'Spec-level failure: should never peek at an empty queue.');\n\n var pair = container._queue[0];\n return pair.value;\n};\n\nexports.ResetQueue = function (container) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: ResetQueue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n\n container._queue = [];\n container._queueTotalSize = 0;\n};\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = __w_pdfjs_require__(0),\n ArrayBufferCopy = _require.ArrayBufferCopy,\n CreateIterResultObject = _require.CreateIterResultObject,\n IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber,\n InvokeOrNoop = _require.InvokeOrNoop,\n PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,\n TransferArrayBuffer = _require.TransferArrayBuffer,\n ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,\n ValidateAndNormalizeHighWaterMark = _require.ValidateAndNormalizeHighWaterMark;\n\nvar _require2 = __w_pdfjs_require__(0),\n createArrayFromList = _require2.createArrayFromList,\n createDataProperty = _require2.createDataProperty,\n typeIsObject = _require2.typeIsObject;\n\nvar _require3 = __w_pdfjs_require__(1),\n assert = _require3.assert,\n rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection;\n\nvar _require4 = __w_pdfjs_require__(3),\n DequeueValue = _require4.DequeueValue,\n EnqueueValueWithSize = _require4.EnqueueValueWithSize,\n ResetQueue = _require4.ResetQueue;\n\nvar _require5 = __w_pdfjs_require__(2),\n AcquireWritableStreamDefaultWriter = _require5.AcquireWritableStreamDefaultWriter,\n IsWritableStream = _require5.IsWritableStream,\n IsWritableStreamLocked = _require5.IsWritableStreamLocked,\n WritableStreamAbort = _require5.WritableStreamAbort,\n WritableStreamDefaultWriterCloseWithErrorPropagation = _require5.WritableStreamDefaultWriterCloseWithErrorPropagation,\n WritableStreamDefaultWriterRelease = _require5.WritableStreamDefaultWriterRelease,\n WritableStreamDefaultWriterWrite = _require5.WritableStreamDefaultWriterWrite,\n WritableStreamCloseQueuedOrInFlight = _require5.WritableStreamCloseQueuedOrInFlight;\n\nvar ReadableStream = function () {\n function ReadableStream() {\n var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n size = _ref.size,\n highWaterMark = _ref.highWaterMark;\n\n _classCallCheck(this, ReadableStream);\n\n // Exposed to controllers.\n this._state = 'readable';\n\n this._reader = undefined;\n this._storedError = undefined;\n\n this._disturbed = false;\n\n // Initialize to undefined first because the constructor of the controller checks this\n // variable to validate the caller.\n this._readableStreamController = undefined;\n var type = underlyingSource.type;\n var typeString = String(type);\n if (typeString === 'bytes') {\n if (highWaterMark === undefined) {\n highWaterMark = 0;\n }\n this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark);\n } else if (type === undefined) {\n if (highWaterMark === undefined) {\n highWaterMark = 1;\n }\n this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark);\n } else {\n throw new RangeError('Invalid type is specified');\n }\n }\n\n _createClass(ReadableStream, [{\n key: 'cancel',\n value: function cancel(reason) {\n if (IsReadableStream(this) === false) {\n return Promise.reject(streamBrandCheckException('cancel'));\n }\n\n if (IsReadableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader'));\n }\n\n return ReadableStreamCancel(this, reason);\n }\n }, {\n key: 'getReader',\n value: function getReader() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mode = _ref2.mode;\n\n if (IsReadableStream(this) === false) {\n throw streamBrandCheckException('getReader');\n }\n\n if (mode === undefined) {\n return AcquireReadableStreamDefaultReader(this);\n }\n\n mode = String(mode);\n\n if (mode === 'byob') {\n return AcquireReadableStreamBYOBReader(this);\n }\n\n throw new RangeError('Invalid mode is specified');\n }\n }, {\n key: 'pipeThrough',\n value: function pipeThrough(_ref3, options) {\n var writable = _ref3.writable,\n readable = _ref3.readable;\n\n var promise = this.pipeTo(writable, options);\n\n ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise);\n\n return readable;\n }\n }, {\n key: 'pipeTo',\n value: function pipeTo(dest) {\n var _this = this;\n\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n preventClose = _ref4.preventClose,\n preventAbort = _ref4.preventAbort,\n preventCancel = _ref4.preventCancel;\n\n if (IsReadableStream(this) === false) {\n return Promise.reject(streamBrandCheckException('pipeTo'));\n }\n if (IsWritableStream(dest) === false) {\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\\'s first argument must be a WritableStream'));\n }\n\n preventClose = Boolean(preventClose);\n preventAbort = Boolean(preventAbort);\n preventCancel = Boolean(preventCancel);\n\n if (IsReadableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\n }\n if (IsWritableStreamLocked(dest) === true) {\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\n }\n\n var reader = AcquireReadableStreamDefaultReader(this);\n var writer = AcquireWritableStreamDefaultWriter(dest);\n\n var shuttingDown = false;\n\n // This is used to keep track of the spec's requirement that we wait for ongoing writes during shutdown.\n var currentWrite = Promise.resolve();\n\n return new Promise(function (resolve, reject) {\n // Using reader and writer, read all chunks from this and write them to dest\n // - Backpressure must be enforced\n // - Shutdown must stop all activity\n function pipeLoop() {\n currentWrite = Promise.resolve();\n\n if (shuttingDown === true) {\n return Promise.resolve();\n }\n\n return writer._readyPromise.then(function () {\n return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) {\n var value = _ref5.value,\n done = _ref5.done;\n\n if (done === true) {\n return;\n }\n\n currentWrite = WritableStreamDefaultWriterWrite(writer, value).catch(function () {});\n });\n }).then(pipeLoop);\n }\n\n // Errors must be propagated forward\n isOrBecomesErrored(_this, reader._closedPromise, function (storedError) {\n if (preventAbort === false) {\n shutdownWithAction(function () {\n return WritableStreamAbort(dest, storedError);\n }, true, storedError);\n } else {\n shutdown(true, storedError);\n }\n });\n\n // Errors must be propagated backward\n isOrBecomesErrored(dest, writer._closedPromise, function (storedError) {\n if (preventCancel === false) {\n shutdownWithAction(function () {\n return ReadableStreamCancel(_this, storedError);\n }, true, storedError);\n } else {\n shutdown(true, storedError);\n }\n });\n\n // Closing must be propagated forward\n isOrBecomesClosed(_this, reader._closedPromise, function () {\n if (preventClose === false) {\n shutdownWithAction(function () {\n return WritableStreamDefaultWriterCloseWithErrorPropagation(writer);\n });\n } else {\n shutdown();\n }\n });\n\n // Closing must be propagated backward\n if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') {\n var destClosed = new TypeError('the destination writable stream closed before all data could be piped to it');\n\n if (preventCancel === false) {\n shutdownWithAction(function () {\n return ReadableStreamCancel(_this, destClosed);\n }, true, destClosed);\n } else {\n shutdown(true, destClosed);\n }\n }\n\n pipeLoop().catch(function (err) {\n currentWrite = Promise.resolve();\n rethrowAssertionErrorRejection(err);\n });\n\n function waitForWritesToFinish() {\n // Another write may have started while we were waiting on this currentWrite, so we have to be sure to wait\n // for that too.\n var oldCurrentWrite = currentWrite;\n return currentWrite.then(function () {\n return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined;\n });\n }\n\n function isOrBecomesErrored(stream, promise, action) {\n if (stream._state === 'errored') {\n action(stream._storedError);\n } else {\n promise.catch(action).catch(rethrowAssertionErrorRejection);\n }\n }\n\n function isOrBecomesClosed(stream, promise, action) {\n if (stream._state === 'closed') {\n action();\n } else {\n promise.then(action).catch(rethrowAssertionErrorRejection);\n }\n }\n\n function shutdownWithAction(action, originalIsError, originalError) {\n if (shuttingDown === true) {\n return;\n }\n shuttingDown = true;\n\n if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\n waitForWritesToFinish().then(doTheRest);\n } else {\n doTheRest();\n }\n\n function doTheRest() {\n action().then(function () {\n return finalize(originalIsError, originalError);\n }, function (newError) {\n return finalize(true, newError);\n }).catch(rethrowAssertionErrorRejection);\n }\n }\n\n function shutdown(isError, error) {\n if (shuttingDown === true) {\n return;\n }\n shuttingDown = true;\n\n if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\n waitForWritesToFinish().then(function () {\n return finalize(isError, error);\n }).catch(rethrowAssertionErrorRejection);\n } else {\n finalize(isError, error);\n }\n }\n\n function finalize(isError, error) {\n WritableStreamDefaultWriterRelease(writer);\n ReadableStreamReaderGenericRelease(reader);\n\n if (isError) {\n reject(error);\n } else {\n resolve(undefined);\n }\n }\n });\n }\n }, {\n key: 'tee',\n value: function tee() {\n if (IsReadableStream(this) === false) {\n throw streamBrandCheckException('tee');\n }\n\n var branches = ReadableStreamTee(this, false);\n return createArrayFromList(branches);\n }\n }, {\n key: 'locked',\n get: function get() {\n if (IsReadableStream(this) === false) {\n throw streamBrandCheckException('locked');\n }\n\n return IsReadableStreamLocked(this);\n }\n }]);\n\n return ReadableStream;\n}();\n\nmodule.exports = {\n ReadableStream: ReadableStream,\n IsReadableStreamDisturbed: IsReadableStreamDisturbed,\n ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose,\n ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue,\n ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError,\n ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize\n};\n\n// Abstract operations for the ReadableStream.\n\nfunction AcquireReadableStreamBYOBReader(stream) {\n return new ReadableStreamBYOBReader(stream);\n}\n\nfunction AcquireReadableStreamDefaultReader(stream) {\n return new ReadableStreamDefaultReader(stream);\n}\n\nfunction IsReadableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n return false;\n }\n\n return true;\n}\n\nfunction IsReadableStreamDisturbed(stream) {\n assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams');\n\n return stream._disturbed;\n}\n\nfunction IsReadableStreamLocked(stream) {\n assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams');\n\n if (stream._reader === undefined) {\n return false;\n }\n\n return true;\n}\n\nfunction ReadableStreamTee(stream, cloneForBranch2) {\n assert(IsReadableStream(stream) === true);\n assert(typeof cloneForBranch2 === 'boolean');\n\n var reader = AcquireReadableStreamDefaultReader(stream);\n\n var teeState = {\n closedOrErrored: false,\n canceled1: false,\n canceled2: false,\n reason1: undefined,\n reason2: undefined\n };\n teeState.promise = new Promise(function (resolve) {\n teeState._resolve = resolve;\n });\n\n var pull = create_ReadableStreamTeePullFunction();\n pull._reader = reader;\n pull._teeState = teeState;\n pull._cloneForBranch2 = cloneForBranch2;\n\n var cancel1 = create_ReadableStreamTeeBranch1CancelFunction();\n cancel1._stream = stream;\n cancel1._teeState = teeState;\n\n var cancel2 = create_ReadableStreamTeeBranch2CancelFunction();\n cancel2._stream = stream;\n cancel2._teeState = teeState;\n\n var underlyingSource1 = Object.create(Object.prototype);\n createDataProperty(underlyingSource1, 'pull', pull);\n createDataProperty(underlyingSource1, 'cancel', cancel1);\n var branch1Stream = new ReadableStream(underlyingSource1);\n\n var underlyingSource2 = Object.create(Object.prototype);\n createDataProperty(underlyingSource2, 'pull', pull);\n createDataProperty(underlyingSource2, 'cancel', cancel2);\n var branch2Stream = new ReadableStream(underlyingSource2);\n\n pull._branch1 = branch1Stream._readableStreamController;\n pull._branch2 = branch2Stream._readableStreamController;\n\n reader._closedPromise.catch(function (r) {\n if (teeState.closedOrErrored === true) {\n return;\n }\n\n ReadableStreamDefaultControllerError(pull._branch1, r);\n ReadableStreamDefaultControllerError(pull._branch2, r);\n teeState.closedOrErrored = true;\n });\n\n return [branch1Stream, branch2Stream];\n}\n\nfunction create_ReadableStreamTeePullFunction() {\n function f() {\n var reader = f._reader,\n branch1 = f._branch1,\n branch2 = f._branch2,\n teeState = f._teeState;\n\n\n return ReadableStreamDefaultReaderRead(reader).then(function (result) {\n assert(typeIsObject(result));\n var value = result.value;\n var done = result.done;\n assert(typeof done === 'boolean');\n\n if (done === true && teeState.closedOrErrored === false) {\n if (teeState.canceled1 === false) {\n ReadableStreamDefaultControllerClose(branch1);\n }\n if (teeState.canceled2 === false) {\n ReadableStreamDefaultControllerClose(branch2);\n }\n teeState.closedOrErrored = true;\n }\n\n if (teeState.closedOrErrored === true) {\n return;\n }\n\n var value1 = value;\n var value2 = value;\n\n // There is no way to access the cloning code right now in the reference implementation.\n // If we add one then we'll need an implementation for serializable objects.\n // if (teeState.canceled2 === false && cloneForBranch2 === true) {\n // value2 = StructuredDeserialize(StructuredSerialize(value2));\n // }\n\n if (teeState.canceled1 === false) {\n ReadableStreamDefaultControllerEnqueue(branch1, value1);\n }\n\n if (teeState.canceled2 === false) {\n ReadableStreamDefaultControllerEnqueue(branch2, value2);\n }\n });\n }\n return f;\n}\n\nfunction create_ReadableStreamTeeBranch1CancelFunction() {\n function f(reason) {\n var stream = f._stream,\n teeState = f._teeState;\n\n\n teeState.canceled1 = true;\n teeState.reason1 = reason;\n if (teeState.canceled2 === true) {\n var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n teeState._resolve(cancelResult);\n }\n return teeState.promise;\n }\n return f;\n}\n\nfunction create_ReadableStreamTeeBranch2CancelFunction() {\n function f(reason) {\n var stream = f._stream,\n teeState = f._teeState;\n\n\n teeState.canceled2 = true;\n teeState.reason2 = reason;\n if (teeState.canceled1 === true) {\n var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n teeState._resolve(cancelResult);\n }\n return teeState.promise;\n }\n return f;\n}\n\n// ReadableStream API exposed for controllers.\n\nfunction ReadableStreamAddReadIntoRequest(stream) {\n assert(IsReadableStreamBYOBReader(stream._reader) === true);\n assert(stream._state === 'readable' || stream._state === 'closed');\n\n var promise = new Promise(function (resolve, reject) {\n var readIntoRequest = {\n _resolve: resolve,\n _reject: reject\n };\n\n stream._reader._readIntoRequests.push(readIntoRequest);\n });\n\n return promise;\n}\n\nfunction ReadableStreamAddReadRequest(stream) {\n assert(IsReadableStreamDefaultReader(stream._reader) === true);\n assert(stream._state === 'readable');\n\n var promise = new Promise(function (resolve, reject) {\n var readRequest = {\n _resolve: resolve,\n _reject: reject\n };\n\n stream._reader._readRequests.push(readRequest);\n });\n\n return promise;\n}\n\nfunction ReadableStreamCancel(stream, reason) {\n stream._disturbed = true;\n\n if (stream._state === 'closed') {\n return Promise.resolve(undefined);\n }\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n\n ReadableStreamClose(stream);\n\n var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason);\n return sourceCancelPromise.then(function () {\n return undefined;\n });\n}\n\nfunction ReadableStreamClose(stream) {\n assert(stream._state === 'readable');\n\n stream._state = 'closed';\n\n var reader = stream._reader;\n\n if (reader === undefined) {\n return undefined;\n }\n\n if (IsReadableStreamDefaultReader(reader) === true) {\n for (var i = 0; i < reader._readRequests.length; i++) {\n var _resolve = reader._readRequests[i]._resolve;\n\n _resolve(CreateIterResultObject(undefined, true));\n }\n reader._readRequests = [];\n }\n\n defaultReaderClosedPromiseResolve(reader);\n\n return undefined;\n}\n\nfunction ReadableStreamError(stream, e) {\n assert(IsReadableStream(stream) === true, 'stream must be ReadableStream');\n assert(stream._state === 'readable', 'state must be readable');\n\n stream._state = 'errored';\n stream._storedError = e;\n\n var reader = stream._reader;\n\n if (reader === undefined) {\n return undefined;\n }\n\n if (IsReadableStreamDefaultReader(reader) === true) {\n for (var i = 0; i < reader._readRequests.length; i++) {\n var readRequest = reader._readRequests[i];\n readRequest._reject(e);\n }\n\n reader._readRequests = [];\n } else {\n assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader');\n\n for (var _i = 0; _i < reader._readIntoRequests.length; _i++) {\n var readIntoRequest = reader._readIntoRequests[_i];\n readIntoRequest._reject(e);\n }\n\n reader._readIntoRequests = [];\n }\n\n defaultReaderClosedPromiseReject(reader, e);\n reader._closedPromise.catch(function () {});\n}\n\nfunction ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n var reader = stream._reader;\n\n assert(reader._readIntoRequests.length > 0);\n\n var readIntoRequest = reader._readIntoRequests.shift();\n readIntoRequest._resolve(CreateIterResultObject(chunk, done));\n}\n\nfunction ReadableStreamFulfillReadRequest(stream, chunk, done) {\n var reader = stream._reader;\n\n assert(reader._readRequests.length > 0);\n\n var readRequest = reader._readRequests.shift();\n readRequest._resolve(CreateIterResultObject(chunk, done));\n}\n\nfunction ReadableStreamGetNumReadIntoRequests(stream) {\n return stream._reader._readIntoRequests.length;\n}\n\nfunction ReadableStreamGetNumReadRequests(stream) {\n return stream._reader._readRequests.length;\n}\n\nfunction ReadableStreamHasBYOBReader(stream) {\n var reader = stream._reader;\n\n if (reader === undefined) {\n return false;\n }\n\n if (IsReadableStreamBYOBReader(reader) === false) {\n return false;\n }\n\n return true;\n}\n\nfunction ReadableStreamHasDefaultReader(stream) {\n var reader = stream._reader;\n\n if (reader === undefined) {\n return false;\n }\n\n if (IsReadableStreamDefaultReader(reader) === false) {\n return false;\n }\n\n return true;\n}\n\n// Readers\n\nvar ReadableStreamDefaultReader = function () {\n function ReadableStreamDefaultReader(stream) {\n _classCallCheck(this, ReadableStreamDefaultReader);\n\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance');\n }\n if (IsReadableStreamLocked(stream) === true) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n\n ReadableStreamReaderGenericInitialize(this, stream);\n\n this._readRequests = [];\n }\n\n _createClass(ReadableStreamDefaultReader, [{\n key: 'cancel',\n value: function cancel(reason) {\n if (IsReadableStreamDefaultReader(this) === false) {\n return Promise.reject(defaultReaderBrandCheckException('cancel'));\n }\n\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('cancel'));\n }\n\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n }, {\n key: 'read',\n value: function read() {\n if (IsReadableStreamDefaultReader(this) === false) {\n return Promise.reject(defaultReaderBrandCheckException('read'));\n }\n\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('read from'));\n }\n\n return ReadableStreamDefaultReaderRead(this);\n }\n }, {\n key: 'releaseLock',\n value: function releaseLock() {\n if (IsReadableStreamDefaultReader(this) === false) {\n throw defaultReaderBrandCheckException('releaseLock');\n }\n\n if (this._ownerReadableStream === undefined) {\n return;\n }\n\n if (this._readRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n\n ReadableStreamReaderGenericRelease(this);\n }\n }, {\n key: 'closed',\n get: function get() {\n if (IsReadableStreamDefaultReader(this) === false) {\n return Promise.reject(defaultReaderBrandCheckException('closed'));\n }\n\n return this._closedPromise;\n }\n }]);\n\n return ReadableStreamDefaultReader;\n}();\n\nvar ReadableStreamBYOBReader = function () {\n function ReadableStreamBYOBReader(stream) {\n _classCallCheck(this, ReadableStreamBYOBReader);\n\n if (!IsReadableStream(stream)) {\n throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source');\n }\n if (IsReadableByteStreamController(stream._readableStreamController) === false) {\n throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source');\n }\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n\n ReadableStreamReaderGenericInitialize(this, stream);\n\n this._readIntoRequests = [];\n }\n\n _createClass(ReadableStreamBYOBReader, [{\n key: 'cancel',\n value: function cancel(reason) {\n if (!IsReadableStreamBYOBReader(this)) {\n return Promise.reject(byobReaderBrandCheckException('cancel'));\n }\n\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('cancel'));\n }\n\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n }, {\n key: 'read',\n value: function read(view) {\n if (!IsReadableStreamBYOBReader(this)) {\n return Promise.reject(byobReaderBrandCheckException('read'));\n }\n\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('read from'));\n }\n\n if (!ArrayBuffer.isView(view)) {\n return Promise.reject(new TypeError('view must be an array buffer view'));\n }\n\n if (view.byteLength === 0) {\n return Promise.reject(new TypeError('view must have non-zero byteLength'));\n }\n\n return ReadableStreamBYOBReaderRead(this, view);\n }\n }, {\n key: 'releaseLock',\n value: function releaseLock() {\n if (!IsReadableStreamBYOBReader(this)) {\n throw byobReaderBrandCheckException('releaseLock');\n }\n\n if (this._ownerReadableStream === undefined) {\n return;\n }\n\n if (this._readIntoRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n\n ReadableStreamReaderGenericRelease(this);\n }\n }, {\n key: 'closed',\n get: function get() {\n if (!IsReadableStreamBYOBReader(this)) {\n return Promise.reject(byobReaderBrandCheckException('closed'));\n }\n\n return this._closedPromise;\n }\n }]);\n\n return ReadableStreamBYOBReader;\n}();\n\n// Abstract operations for the readers.\n\nfunction IsReadableStreamBYOBReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n return false;\n }\n\n return true;\n}\n\nfunction IsReadableStreamDefaultReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n return false;\n }\n\n return true;\n}\n\nfunction ReadableStreamReaderGenericInitialize(reader, stream) {\n reader._ownerReadableStream = stream;\n stream._reader = reader;\n\n if (stream._state === 'readable') {\n defaultReaderClosedPromiseInitialize(reader);\n } else if (stream._state === 'closed') {\n defaultReaderClosedPromiseInitializeAsResolved(reader);\n } else {\n assert(stream._state === 'errored', 'state must be errored');\n\n defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n reader._closedPromise.catch(function () {});\n }\n}\n\n// A client of ReadableStreamDefaultReader and ReadableStreamBYOBReader may use these functions directly to bypass state\n// check.\n\nfunction ReadableStreamReaderGenericCancel(reader, reason) {\n var stream = reader._ownerReadableStream;\n assert(stream !== undefined);\n return ReadableStreamCancel(stream, reason);\n}\n\nfunction ReadableStreamReaderGenericRelease(reader) {\n assert(reader._ownerReadableStream !== undefined);\n assert(reader._ownerReadableStream._reader === reader);\n\n if (reader._ownerReadableStream._state === 'readable') {\n defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\n } else {\n defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\n }\n reader._closedPromise.catch(function () {});\n\n reader._ownerReadableStream._reader = undefined;\n reader._ownerReadableStream = undefined;\n}\n\nfunction ReadableStreamBYOBReaderRead(reader, view) {\n var stream = reader._ownerReadableStream;\n\n assert(stream !== undefined);\n\n stream._disturbed = true;\n\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n\n // Controllers must implement this.\n return ReadableByteStreamControllerPullInto(stream._readableStreamController, view);\n}\n\nfunction ReadableStreamDefaultReaderRead(reader) {\n var stream = reader._ownerReadableStream;\n\n assert(stream !== undefined);\n\n stream._disturbed = true;\n\n if (stream._state === 'closed') {\n return Promise.resolve(CreateIterResultObject(undefined, true));\n }\n\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n\n assert(stream._state === 'readable');\n\n return stream._readableStreamController.__pullSteps();\n}\n\n// Controllers\n\nvar ReadableStreamDefaultController = function () {\n function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) {\n _classCallCheck(this, ReadableStreamDefaultController);\n\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance');\n }\n\n if (stream._readableStreamController !== undefined) {\n throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor');\n }\n\n this._controlledReadableStream = stream;\n\n this._underlyingSource = underlyingSource;\n\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n this._queue = undefined;\n this._queueTotalSize = undefined;\n ResetQueue(this);\n\n this._started = false;\n this._closeRequested = false;\n this._pullAgain = false;\n this._pulling = false;\n\n var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);\n this._strategySize = normalizedStrategy.size;\n this._strategyHWM = normalizedStrategy.highWaterMark;\n\n var controller = this;\n\n var startResult = InvokeOrNoop(underlyingSource, 'start', [this]);\n Promise.resolve(startResult).then(function () {\n controller._started = true;\n\n assert(controller._pulling === false);\n assert(controller._pullAgain === false);\n\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }, function (r) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, r);\n }).catch(rethrowAssertionErrorRejection);\n }\n\n _createClass(ReadableStreamDefaultController, [{\n key: 'close',\n value: function close() {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('close');\n }\n\n if (this._closeRequested === true) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n\n var state = this._controlledReadableStream._state;\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');\n }\n\n ReadableStreamDefaultControllerClose(this);\n }\n }, {\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n\n if (this._closeRequested === true) {\n throw new TypeError('stream is closed or draining');\n }\n\n var state = this._controlledReadableStream._state;\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');\n }\n\n return ReadableStreamDefaultControllerEnqueue(this, chunk);\n }\n }, {\n key: 'error',\n value: function error(e) {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('error');\n }\n\n var stream = this._controlledReadableStream;\n if (stream._state !== 'readable') {\n throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');\n }\n\n ReadableStreamDefaultControllerError(this, e);\n }\n }, {\n key: '__cancelSteps',\n value: function __cancelSteps(reason) {\n ResetQueue(this);\n return PromiseInvokeOrNoop(this._underlyingSource, 'cancel', [reason]);\n }\n }, {\n key: '__pullSteps',\n value: function __pullSteps() {\n var stream = this._controlledReadableStream;\n\n if (this._queue.length > 0) {\n var chunk = DequeueValue(this);\n\n if (this._closeRequested === true && this._queue.length === 0) {\n ReadableStreamClose(stream);\n } else {\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n\n return Promise.resolve(CreateIterResultObject(chunk, false));\n }\n\n var pendingPromise = ReadableStreamAddReadRequest(stream);\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n return pendingPromise;\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('desiredSize');\n }\n\n return ReadableStreamDefaultControllerGetDesiredSize(this);\n }\n }]);\n\n return ReadableStreamDefaultController;\n}();\n\n// Abstract operations for the ReadableStreamDefaultController.\n\nfunction IsReadableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) {\n return false;\n }\n\n return true;\n}\n\nfunction ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n if (shouldPull === false) {\n return undefined;\n }\n\n if (controller._pulling === true) {\n controller._pullAgain = true;\n return undefined;\n }\n\n assert(controller._pullAgain === false);\n\n controller._pulling = true;\n\n var pullPromise = PromiseInvokeOrNoop(controller._underlyingSource, 'pull', [controller]);\n pullPromise.then(function () {\n controller._pulling = false;\n\n if (controller._pullAgain === true) {\n controller._pullAgain = false;\n return ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n return undefined;\n }, function (e) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, e);\n }).catch(rethrowAssertionErrorRejection);\n\n return undefined;\n}\n\nfunction ReadableStreamDefaultControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableStream;\n\n if (stream._state === 'closed' || stream._state === 'errored') {\n return false;\n }\n\n if (controller._closeRequested === true) {\n return false;\n }\n\n if (controller._started === false) {\n return false;\n }\n\n if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n\n return false;\n}\n\n// A client of ReadableStreamDefaultController may use these functions directly to bypass state check.\n\nfunction ReadableStreamDefaultControllerClose(controller) {\n var stream = controller._controlledReadableStream;\n\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n\n controller._closeRequested = true;\n\n if (controller._queue.length === 0) {\n ReadableStreamClose(stream);\n }\n}\n\nfunction ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n var stream = controller._controlledReadableStream;\n\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n\n if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n ReadableStreamFulfillReadRequest(stream, chunk, false);\n } else {\n var chunkSize = 1;\n\n if (controller._strategySize !== undefined) {\n var strategySize = controller._strategySize;\n try {\n chunkSize = strategySize(chunk);\n } catch (chunkSizeE) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n throw chunkSizeE;\n }\n }\n\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n } catch (enqueueE) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n throw enqueueE;\n }\n }\n\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n\n return undefined;\n}\n\nfunction ReadableStreamDefaultControllerError(controller, e) {\n var stream = controller._controlledReadableStream;\n\n assert(stream._state === 'readable');\n\n ResetQueue(controller);\n\n ReadableStreamError(stream, e);\n}\n\nfunction ReadableStreamDefaultControllerErrorIfNeeded(controller, e) {\n if (controller._controlledReadableStream._state === 'readable') {\n ReadableStreamDefaultControllerError(controller, e);\n }\n}\n\nfunction ReadableStreamDefaultControllerGetDesiredSize(controller) {\n var stream = controller._controlledReadableStream;\n var state = stream._state;\n\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n\n return controller._strategyHWM - controller._queueTotalSize;\n}\n\nvar ReadableStreamBYOBRequest = function () {\n function ReadableStreamBYOBRequest(controller, view) {\n _classCallCheck(this, ReadableStreamBYOBRequest);\n\n this._associatedReadableByteStreamController = controller;\n this._view = view;\n }\n\n _createClass(ReadableStreamBYOBRequest, [{\n key: 'respond',\n value: function respond(bytesWritten) {\n if (IsReadableStreamBYOBRequest(this) === false) {\n throw byobRequestBrandCheckException('respond');\n }\n\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n\n ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\n }\n }, {\n key: 'respondWithNewView',\n value: function respondWithNewView(view) {\n if (IsReadableStreamBYOBRequest(this) === false) {\n throw byobRequestBrandCheckException('respond');\n }\n\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n\n if (!ArrayBuffer.isView(view)) {\n throw new TypeError('You can only respond with array buffer views');\n }\n\n ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n }\n }, {\n key: 'view',\n get: function get() {\n return this._view;\n }\n }]);\n\n return ReadableStreamBYOBRequest;\n}();\n\nvar ReadableByteStreamController = function () {\n function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) {\n _classCallCheck(this, ReadableByteStreamController);\n\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source');\n }\n\n if (stream._readableStreamController !== undefined) {\n throw new TypeError('ReadableByteStreamController instances can only be created by the ReadableStream constructor given a byte ' + 'source');\n }\n\n this._controlledReadableStream = stream;\n\n this._underlyingByteSource = underlyingByteSource;\n\n this._pullAgain = false;\n this._pulling = false;\n\n ReadableByteStreamControllerClearPendingPullIntos(this);\n\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n this._queue = this._queueTotalSize = undefined;\n ResetQueue(this);\n\n this._closeRequested = false;\n this._started = false;\n\n this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark);\n\n var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\n if (autoAllocateChunkSize !== undefined) {\n if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) {\n throw new RangeError('autoAllocateChunkSize must be a positive integer');\n }\n }\n this._autoAllocateChunkSize = autoAllocateChunkSize;\n\n this._pendingPullIntos = [];\n\n var controller = this;\n\n var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]);\n Promise.resolve(startResult).then(function () {\n controller._started = true;\n\n assert(controller._pulling === false);\n assert(controller._pullAgain === false);\n\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }, function (r) {\n if (stream._state === 'readable') {\n ReadableByteStreamControllerError(controller, r);\n }\n }).catch(rethrowAssertionErrorRejection);\n }\n\n _createClass(ReadableByteStreamController, [{\n key: 'close',\n value: function close() {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('close');\n }\n\n if (this._closeRequested === true) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n\n var state = this._controlledReadableStream._state;\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');\n }\n\n ReadableByteStreamControllerClose(this);\n }\n }, {\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('enqueue');\n }\n\n if (this._closeRequested === true) {\n throw new TypeError('stream is closed or draining');\n }\n\n var state = this._controlledReadableStream._state;\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');\n }\n\n if (!ArrayBuffer.isView(chunk)) {\n throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController');\n }\n\n ReadableByteStreamControllerEnqueue(this, chunk);\n }\n }, {\n key: 'error',\n value: function error(e) {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('error');\n }\n\n var stream = this._controlledReadableStream;\n if (stream._state !== 'readable') {\n throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');\n }\n\n ReadableByteStreamControllerError(this, e);\n }\n }, {\n key: '__cancelSteps',\n value: function __cancelSteps(reason) {\n if (this._pendingPullIntos.length > 0) {\n var firstDescriptor = this._pendingPullIntos[0];\n firstDescriptor.bytesFilled = 0;\n }\n\n ResetQueue(this);\n\n return PromiseInvokeOrNoop(this._underlyingByteSource, 'cancel', [reason]);\n }\n }, {\n key: '__pullSteps',\n value: function __pullSteps() {\n var stream = this._controlledReadableStream;\n assert(ReadableStreamHasDefaultReader(stream) === true);\n\n if (this._queueTotalSize > 0) {\n assert(ReadableStreamGetNumReadRequests(stream) === 0);\n\n var entry = this._queue.shift();\n this._queueTotalSize -= entry.byteLength;\n\n ReadableByteStreamControllerHandleQueueDrain(this);\n\n var view = void 0;\n try {\n view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n } catch (viewE) {\n return Promise.reject(viewE);\n }\n\n return Promise.resolve(CreateIterResultObject(view, false));\n }\n\n var autoAllocateChunkSize = this._autoAllocateChunkSize;\n if (autoAllocateChunkSize !== undefined) {\n var buffer = void 0;\n try {\n buffer = new ArrayBuffer(autoAllocateChunkSize);\n } catch (bufferE) {\n return Promise.reject(bufferE);\n }\n\n var pullIntoDescriptor = {\n buffer: buffer,\n byteOffset: 0,\n byteLength: autoAllocateChunkSize,\n bytesFilled: 0,\n elementSize: 1,\n ctor: Uint8Array,\n readerType: 'default'\n };\n\n this._pendingPullIntos.push(pullIntoDescriptor);\n }\n\n var promise = ReadableStreamAddReadRequest(stream);\n\n ReadableByteStreamControllerCallPullIfNeeded(this);\n\n return promise;\n }\n }, {\n key: 'byobRequest',\n get: function get() {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('byobRequest');\n }\n\n if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) {\n var firstDescriptor = this._pendingPullIntos[0];\n var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\n\n this._byobRequest = new ReadableStreamBYOBRequest(this, view);\n }\n\n return this._byobRequest;\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('desiredSize');\n }\n\n return ReadableByteStreamControllerGetDesiredSize(this);\n }\n }]);\n\n return ReadableByteStreamController;\n}();\n\n// Abstract operations for the ReadableByteStreamController.\n\nfunction IsReadableByteStreamController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) {\n return false;\n }\n\n return true;\n}\n\nfunction IsReadableStreamBYOBRequest(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n return false;\n }\n\n return true;\n}\n\nfunction ReadableByteStreamControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n if (shouldPull === false) {\n return undefined;\n }\n\n if (controller._pulling === true) {\n controller._pullAgain = true;\n return undefined;\n }\n\n assert(controller._pullAgain === false);\n\n controller._pulling = true;\n\n // TODO: Test controller argument\n var pullPromise = PromiseInvokeOrNoop(controller._underlyingByteSource, 'pull', [controller]);\n pullPromise.then(function () {\n controller._pulling = false;\n\n if (controller._pullAgain === true) {\n controller._pullAgain = false;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }, function (e) {\n if (controller._controlledReadableStream._state === 'readable') {\n ReadableByteStreamControllerError(controller, e);\n }\n }).catch(rethrowAssertionErrorRejection);\n\n return undefined;\n}\n\nfunction ReadableByteStreamControllerClearPendingPullIntos(controller) {\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n controller._pendingPullIntos = [];\n}\n\nfunction ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n assert(stream._state !== 'errored', 'state must not be errored');\n\n var done = false;\n if (stream._state === 'closed') {\n assert(pullIntoDescriptor.bytesFilled === 0);\n done = true;\n }\n\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n if (pullIntoDescriptor.readerType === 'default') {\n ReadableStreamFulfillReadRequest(stream, filledView, done);\n } else {\n assert(pullIntoDescriptor.readerType === 'byob');\n ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\n }\n}\n\nfunction ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n var bytesFilled = pullIntoDescriptor.bytesFilled;\n var elementSize = pullIntoDescriptor.elementSize;\n\n assert(bytesFilled <= pullIntoDescriptor.byteLength);\n assert(bytesFilled % elementSize === 0);\n\n return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n}\n\nfunction ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n controller._queue.push({ buffer: buffer, byteOffset: byteOffset, byteLength: byteLength });\n controller._queueTotalSize += byteLength;\n}\n\nfunction ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n var elementSize = pullIntoDescriptor.elementSize;\n\n var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\n\n var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\n\n var totalBytesToCopyRemaining = maxBytesToCopy;\n var ready = false;\n if (maxAlignedBytes > currentAlignedBytes) {\n totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n ready = true;\n }\n\n var queue = controller._queue;\n\n while (totalBytesToCopyRemaining > 0) {\n var headOfQueue = queue[0];\n\n var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n\n var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\n\n if (headOfQueue.byteLength === bytesToCopy) {\n queue.shift();\n } else {\n headOfQueue.byteOffset += bytesToCopy;\n headOfQueue.byteLength -= bytesToCopy;\n }\n controller._queueTotalSize -= bytesToCopy;\n\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n\n totalBytesToCopyRemaining -= bytesToCopy;\n }\n\n if (ready === false) {\n assert(controller._queueTotalSize === 0, 'queue must be empty');\n assert(pullIntoDescriptor.bytesFilled > 0);\n assert(pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize);\n }\n\n return ready;\n}\n\nfunction ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor);\n\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n pullIntoDescriptor.bytesFilled += size;\n}\n\nfunction ReadableByteStreamControllerHandleQueueDrain(controller) {\n assert(controller._controlledReadableStream._state === 'readable');\n\n if (controller._queueTotalSize === 0 && controller._closeRequested === true) {\n ReadableStreamClose(controller._controlledReadableStream);\n } else {\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n}\n\nfunction ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n if (controller._byobRequest === undefined) {\n return;\n }\n\n controller._byobRequest._associatedReadableByteStreamController = undefined;\n controller._byobRequest._view = undefined;\n controller._byobRequest = undefined;\n}\n\nfunction ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n assert(controller._closeRequested === false);\n\n while (controller._pendingPullIntos.length > 0) {\n if (controller._queueTotalSize === 0) {\n return;\n }\n\n var pullIntoDescriptor = controller._pendingPullIntos[0];\n\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);\n }\n }\n}\n\nfunction ReadableByteStreamControllerPullInto(controller, view) {\n var stream = controller._controlledReadableStream;\n\n var elementSize = 1;\n if (view.constructor !== DataView) {\n elementSize = view.constructor.BYTES_PER_ELEMENT;\n }\n\n var ctor = view.constructor;\n\n var pullIntoDescriptor = {\n buffer: view.buffer,\n byteOffset: view.byteOffset,\n byteLength: view.byteLength,\n bytesFilled: 0,\n elementSize: elementSize,\n ctor: ctor,\n readerType: 'byob'\n };\n\n if (controller._pendingPullIntos.length > 0) {\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n controller._pendingPullIntos.push(pullIntoDescriptor);\n\n // No ReadableByteStreamControllerCallPullIfNeeded() call since:\n // - No change happens on desiredSize\n // - The source has already been notified of that there's at least 1 pending read(view)\n\n return ReadableStreamAddReadIntoRequest(stream);\n }\n\n if (stream._state === 'closed') {\n var emptyView = new view.constructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\n return Promise.resolve(CreateIterResultObject(emptyView, true));\n }\n\n if (controller._queueTotalSize > 0) {\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n\n ReadableByteStreamControllerHandleQueueDrain(controller);\n\n return Promise.resolve(CreateIterResultObject(filledView, false));\n }\n\n if (controller._closeRequested === true) {\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n\n return Promise.reject(e);\n }\n }\n\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n controller._pendingPullIntos.push(pullIntoDescriptor);\n\n var promise = ReadableStreamAddReadIntoRequest(stream);\n\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n\n return promise;\n}\n\nfunction ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n\n assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0');\n\n var stream = controller._controlledReadableStream;\n if (ReadableStreamHasBYOBReader(stream) === true) {\n while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\n }\n }\n}\n\nfunction ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\n if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) {\n throw new RangeError('bytesWritten out of range');\n }\n\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n\n if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\n // TODO: Figure out whether we should detach the buffer or not here.\n return;\n }\n\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n\n var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\n if (remainderSize > 0) {\n var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end);\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);\n }\n\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n pullIntoDescriptor.bytesFilled -= remainderSize;\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);\n\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n}\n\nfunction ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n var firstDescriptor = controller._pendingPullIntos[0];\n\n var stream = controller._controlledReadableStream;\n\n if (stream._state === 'closed') {\n if (bytesWritten !== 0) {\n throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\n }\n\n ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor);\n } else {\n assert(stream._state === 'readable');\n\n ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n }\n}\n\nfunction ReadableByteStreamControllerShiftPendingPullInto(controller) {\n var descriptor = controller._pendingPullIntos.shift();\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n return descriptor;\n}\n\nfunction ReadableByteStreamControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableStream;\n\n if (stream._state !== 'readable') {\n return false;\n }\n\n if (controller._closeRequested === true) {\n return false;\n }\n\n if (controller._started === false) {\n return false;\n }\n\n if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n\n if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n return true;\n }\n\n if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) {\n return true;\n }\n\n return false;\n}\n\n// A client of ReadableByteStreamController may use these functions directly to bypass state check.\n\nfunction ReadableByteStreamControllerClose(controller) {\n var stream = controller._controlledReadableStream;\n\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n\n if (controller._queueTotalSize > 0) {\n controller._closeRequested = true;\n\n return;\n }\n\n if (controller._pendingPullIntos.length > 0) {\n var firstPendingPullInto = controller._pendingPullIntos[0];\n if (firstPendingPullInto.bytesFilled > 0) {\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n\n throw e;\n }\n }\n\n ReadableStreamClose(stream);\n}\n\nfunction ReadableByteStreamControllerEnqueue(controller, chunk) {\n var stream = controller._controlledReadableStream;\n\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n\n var buffer = chunk.buffer;\n var byteOffset = chunk.byteOffset;\n var byteLength = chunk.byteLength;\n var transferredBuffer = TransferArrayBuffer(buffer);\n\n if (ReadableStreamHasDefaultReader(stream) === true) {\n if (ReadableStreamGetNumReadRequests(stream) === 0) {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n } else {\n assert(controller._queue.length === 0);\n\n var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n ReadableStreamFulfillReadRequest(stream, transferredView, false);\n }\n } else if (ReadableStreamHasBYOBReader(stream) === true) {\n // TODO: Ideally in this branch detaching should happen only if the buffer is not consumed fully.\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n } else {\n assert(IsReadableStreamLocked(stream) === false, 'stream must not be locked');\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n}\n\nfunction ReadableByteStreamControllerError(controller, e) {\n var stream = controller._controlledReadableStream;\n\n assert(stream._state === 'readable');\n\n ReadableByteStreamControllerClearPendingPullIntos(controller);\n\n ResetQueue(controller);\n ReadableStreamError(stream, e);\n}\n\nfunction ReadableByteStreamControllerGetDesiredSize(controller) {\n var stream = controller._controlledReadableStream;\n var state = stream._state;\n\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n\n return controller._strategyHWM - controller._queueTotalSize;\n}\n\nfunction ReadableByteStreamControllerRespond(controller, bytesWritten) {\n bytesWritten = Number(bytesWritten);\n if (IsFiniteNonNegativeNumber(bytesWritten) === false) {\n throw new RangeError('bytesWritten must be a finite');\n }\n\n assert(controller._pendingPullIntos.length > 0);\n\n ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n}\n\nfunction ReadableByteStreamControllerRespondWithNewView(controller, view) {\n assert(controller._pendingPullIntos.length > 0);\n\n var firstDescriptor = controller._pendingPullIntos[0];\n\n if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\n throw new RangeError('The region specified by view does not match byobRequest');\n }\n if (firstDescriptor.byteLength !== view.byteLength) {\n throw new RangeError('The buffer of view has different capacity than byobRequest');\n }\n\n firstDescriptor.buffer = view.buffer;\n\n ReadableByteStreamControllerRespondInternal(controller, view.byteLength);\n}\n\n// Helper functions for the ReadableStream.\n\nfunction streamBrandCheckException(name) {\n return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream');\n}\n\n// Helper functions for the readers.\n\nfunction readerLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released reader');\n}\n\n// Helper functions for the ReadableStreamDefaultReader.\n\nfunction defaultReaderBrandCheckException(name) {\n return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader');\n}\n\nfunction defaultReaderClosedPromiseInitialize(reader) {\n reader._closedPromise = new Promise(function (resolve, reject) {\n reader._closedPromise_resolve = resolve;\n reader._closedPromise_reject = reject;\n });\n}\n\nfunction defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n reader._closedPromise = Promise.reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n}\n\nfunction defaultReaderClosedPromiseInitializeAsResolved(reader) {\n reader._closedPromise = Promise.resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n}\n\nfunction defaultReaderClosedPromiseReject(reader, reason) {\n assert(reader._closedPromise_resolve !== undefined);\n assert(reader._closedPromise_reject !== undefined);\n\n reader._closedPromise_reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n}\n\nfunction defaultReaderClosedPromiseResetToRejected(reader, reason) {\n assert(reader._closedPromise_resolve === undefined);\n assert(reader._closedPromise_reject === undefined);\n\n reader._closedPromise = Promise.reject(reason);\n}\n\nfunction defaultReaderClosedPromiseResolve(reader) {\n assert(reader._closedPromise_resolve !== undefined);\n assert(reader._closedPromise_reject !== undefined);\n\n reader._closedPromise_resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n}\n\n// Helper functions for the ReadableStreamDefaultReader.\n\nfunction byobReaderBrandCheckException(name) {\n return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader');\n}\n\n// Helper functions for the ReadableStreamDefaultController.\n\nfunction defaultControllerBrandCheckException(name) {\n return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController');\n}\n\n// Helper functions for the ReadableStreamBYOBRequest.\n\nfunction byobRequestBrandCheckException(name) {\n return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest');\n}\n\n// Helper functions for the ReadableByteStreamController.\n\nfunction byteStreamControllerBrandCheckException(name) {\n return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController');\n}\n\n// Helper function for ReadableStream pipeThrough\n\nfunction ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) {\n try {\n // This relies on the brand-check that is enforced by Promise.prototype.then(). As with the rest of the reference\n // implementation, it doesn't attempt to do the right thing if someone has modified the global environment.\n Promise.prototype.then.call(promise, undefined, function () {});\n } catch (e) {\n // The brand check failed, therefore the internal slot is not present and there's nothing further to do.\n }\n}\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar transformStream = __w_pdfjs_require__(6);\nvar readableStream = __w_pdfjs_require__(4);\nvar writableStream = __w_pdfjs_require__(2);\n\nexports.TransformStream = transformStream.TransformStream;\nexports.ReadableStream = readableStream.ReadableStream;\nexports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed;\nexports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose;\nexports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue;\nexports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError;\nexports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize;\nexports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter;\nexports.IsWritableStream = writableStream.IsWritableStream;\nexports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked;\nexports.WritableStream = writableStream.WritableStream;\nexports.WritableStreamAbort = writableStream.WritableStreamAbort;\nexports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError;\nexports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation;\nexports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease;\nexports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = __w_pdfjs_require__(1),\n assert = _require.assert;\n\nvar _require2 = __w_pdfjs_require__(0),\n InvokeOrNoop = _require2.InvokeOrNoop,\n PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback,\n PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop,\n typeIsObject = _require2.typeIsObject;\n\nvar _require3 = __w_pdfjs_require__(4),\n ReadableStream = _require3.ReadableStream,\n ReadableStreamDefaultControllerClose = _require3.ReadableStreamDefaultControllerClose,\n ReadableStreamDefaultControllerEnqueue = _require3.ReadableStreamDefaultControllerEnqueue,\n ReadableStreamDefaultControllerError = _require3.ReadableStreamDefaultControllerError,\n ReadableStreamDefaultControllerGetDesiredSize = _require3.ReadableStreamDefaultControllerGetDesiredSize;\n\nvar _require4 = __w_pdfjs_require__(2),\n WritableStream = _require4.WritableStream,\n WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError;\n\n// Methods on the transform stream controller object\n\nfunction TransformStreamCloseReadable(transformStream) {\n // console.log('TransformStreamCloseReadable()');\n\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n\n if (transformStream._readableClosed === true) {\n throw new TypeError('Readable side is already closed');\n }\n\n TransformStreamCloseReadableInternal(transformStream);\n}\n\nfunction TransformStreamEnqueueToReadable(transformStream, chunk) {\n // console.log('TransformStreamEnqueueToReadable()');\n\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n\n if (transformStream._readableClosed === true) {\n throw new TypeError('Readable side is already closed');\n }\n\n // We throttle transformer.transform invocation based on the backpressure of the ReadableStream, but we still\n // accept TransformStreamEnqueueToReadable() calls.\n\n var controller = transformStream._readableController;\n\n try {\n ReadableStreamDefaultControllerEnqueue(controller, chunk);\n } catch (e) {\n // This happens when readableStrategy.size() throws.\n // The ReadableStream has already errored itself.\n transformStream._readableClosed = true;\n TransformStreamErrorIfNeeded(transformStream, e);\n\n throw transformStream._storedError;\n }\n\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n var maybeBackpressure = desiredSize <= 0;\n\n if (maybeBackpressure === true && transformStream._backpressure === false) {\n // This allows pull() again. When desiredSize is 0, it's possible that a pull() will happen immediately (but\n // asynchronously) after this because of pending read()s and set _backpressure back to false.\n //\n // If pull() could be called from inside enqueue(), then this logic would be wrong. This cannot happen\n // because there is always a promise pending from start() or pull() when _backpressure is false.\n TransformStreamSetBackpressure(transformStream, true);\n }\n}\n\nfunction TransformStreamError(transformStream, e) {\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n\n TransformStreamErrorInternal(transformStream, e);\n}\n\n// Abstract operations.\n\nfunction TransformStreamCloseReadableInternal(transformStream) {\n assert(transformStream._errored === false);\n assert(transformStream._readableClosed === false);\n\n try {\n ReadableStreamDefaultControllerClose(transformStream._readableController);\n } catch (e) {\n assert(false);\n }\n\n transformStream._readableClosed = true;\n}\n\nfunction TransformStreamErrorIfNeeded(transformStream, e) {\n if (transformStream._errored === false) {\n TransformStreamErrorInternal(transformStream, e);\n }\n}\n\nfunction TransformStreamErrorInternal(transformStream, e) {\n // console.log('TransformStreamErrorInternal()');\n\n assert(transformStream._errored === false);\n\n transformStream._errored = true;\n transformStream._storedError = e;\n\n if (transformStream._writableDone === false) {\n WritableStreamDefaultControllerError(transformStream._writableController, e);\n }\n if (transformStream._readableClosed === false) {\n ReadableStreamDefaultControllerError(transformStream._readableController, e);\n }\n}\n\n// Used for preventing the next write() call on TransformStreamSink until there\n// is no longer backpressure.\nfunction TransformStreamReadableReadyPromise(transformStream) {\n assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n\n if (transformStream._backpressure === false) {\n return Promise.resolve();\n }\n\n assert(transformStream._backpressure === true, '_backpressure should have been initialized');\n\n return transformStream._backpressureChangePromise;\n}\n\nfunction TransformStreamSetBackpressure(transformStream, backpressure) {\n // console.log(`TransformStreamSetBackpressure(${backpressure})`);\n\n // Passes also when called during construction.\n assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed');\n\n if (transformStream._backpressureChangePromise !== undefined) {\n // The fulfillment value is just for a sanity check.\n transformStream._backpressureChangePromise_resolve(backpressure);\n }\n\n transformStream._backpressureChangePromise = new Promise(function (resolve) {\n transformStream._backpressureChangePromise_resolve = resolve;\n });\n\n transformStream._backpressureChangePromise.then(function (resolution) {\n assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed');\n });\n\n transformStream._backpressure = backpressure;\n}\n\nfunction TransformStreamDefaultTransform(chunk, transformStreamController) {\n var transformStream = transformStreamController._controlledTransformStream;\n TransformStreamEnqueueToReadable(transformStream, chunk);\n return Promise.resolve();\n}\n\nfunction TransformStreamTransform(transformStream, chunk) {\n // console.log('TransformStreamTransform()');\n\n assert(transformStream._errored === false);\n assert(transformStream._transforming === false);\n assert(transformStream._backpressure === false);\n\n transformStream._transforming = true;\n\n var transformer = transformStream._transformer;\n var controller = transformStream._transformStreamController;\n\n var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]);\n\n return transformPromise.then(function () {\n transformStream._transforming = false;\n\n return TransformStreamReadableReadyPromise(transformStream);\n }, function (e) {\n TransformStreamErrorIfNeeded(transformStream, e);\n return Promise.reject(e);\n });\n}\n\nfunction IsTransformStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n return false;\n }\n\n return true;\n}\n\nfunction IsTransformStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n return false;\n }\n\n return true;\n}\n\nvar TransformStreamSink = function () {\n function TransformStreamSink(transformStream, startPromise) {\n _classCallCheck(this, TransformStreamSink);\n\n this._transformStream = transformStream;\n this._startPromise = startPromise;\n }\n\n _createClass(TransformStreamSink, [{\n key: 'start',\n value: function start(c) {\n var transformStream = this._transformStream;\n\n transformStream._writableController = c;\n\n return this._startPromise.then(function () {\n return TransformStreamReadableReadyPromise(transformStream);\n });\n }\n }, {\n key: 'write',\n value: function write(chunk) {\n // console.log('TransformStreamSink.write()');\n\n var transformStream = this._transformStream;\n\n return TransformStreamTransform(transformStream, chunk);\n }\n }, {\n key: 'abort',\n value: function abort() {\n var transformStream = this._transformStream;\n transformStream._writableDone = true;\n TransformStreamErrorInternal(transformStream, new TypeError('Writable side aborted'));\n }\n }, {\n key: 'close',\n value: function close() {\n // console.log('TransformStreamSink.close()');\n\n var transformStream = this._transformStream;\n\n assert(transformStream._transforming === false);\n\n transformStream._writableDone = true;\n\n var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]);\n // Return a promise that is fulfilled with undefined on success.\n return flushPromise.then(function () {\n if (transformStream._errored === true) {\n return Promise.reject(transformStream._storedError);\n }\n if (transformStream._readableClosed === false) {\n TransformStreamCloseReadableInternal(transformStream);\n }\n return Promise.resolve();\n }).catch(function (r) {\n TransformStreamErrorIfNeeded(transformStream, r);\n return Promise.reject(transformStream._storedError);\n });\n }\n }]);\n\n return TransformStreamSink;\n}();\n\nvar TransformStreamSource = function () {\n function TransformStreamSource(transformStream, startPromise) {\n _classCallCheck(this, TransformStreamSource);\n\n this._transformStream = transformStream;\n this._startPromise = startPromise;\n }\n\n _createClass(TransformStreamSource, [{\n key: 'start',\n value: function start(c) {\n var transformStream = this._transformStream;\n\n transformStream._readableController = c;\n\n return this._startPromise.then(function () {\n // Prevent the first pull() call until there is backpressure.\n\n assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n\n if (transformStream._backpressure === true) {\n return Promise.resolve();\n }\n\n assert(transformStream._backpressure === false, '_backpressure should have been initialized');\n\n return transformStream._backpressureChangePromise;\n });\n }\n }, {\n key: 'pull',\n value: function pull() {\n // console.log('TransformStreamSource.pull()');\n\n var transformStream = this._transformStream;\n\n // Invariant. Enforced by the promises returned by start() and pull().\n assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false');\n\n assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n\n TransformStreamSetBackpressure(transformStream, false);\n\n // Prevent the next pull() call until there is backpressure.\n return transformStream._backpressureChangePromise;\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n var transformStream = this._transformStream;\n transformStream._readableClosed = true;\n TransformStreamErrorInternal(transformStream, new TypeError('Readable side canceled'));\n }\n }]);\n\n return TransformStreamSource;\n}();\n\nvar TransformStreamDefaultController = function () {\n function TransformStreamDefaultController(transformStream) {\n _classCallCheck(this, TransformStreamDefaultController);\n\n if (IsTransformStream(transformStream) === false) {\n throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance');\n }\n\n if (transformStream._transformStreamController !== undefined) {\n throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor');\n }\n\n this._controlledTransformStream = transformStream;\n }\n\n _createClass(TransformStreamDefaultController, [{\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n\n TransformStreamEnqueueToReadable(this._controlledTransformStream, chunk);\n }\n }, {\n key: 'close',\n value: function close() {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('close');\n }\n\n TransformStreamCloseReadable(this._controlledTransformStream);\n }\n }, {\n key: 'error',\n value: function error(reason) {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('error');\n }\n\n TransformStreamError(this._controlledTransformStream, reason);\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('desiredSize');\n }\n\n var transformStream = this._controlledTransformStream;\n var readableController = transformStream._readableController;\n\n return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n }\n }]);\n\n return TransformStreamDefaultController;\n}();\n\nvar TransformStream = function () {\n function TransformStream() {\n var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, TransformStream);\n\n this._transformer = transformer;\n var readableStrategy = transformer.readableStrategy,\n writableStrategy = transformer.writableStrategy;\n\n\n this._transforming = false;\n this._errored = false;\n this._storedError = undefined;\n\n this._writableController = undefined;\n this._readableController = undefined;\n this._transformStreamController = undefined;\n\n this._writableDone = false;\n this._readableClosed = false;\n\n this._backpressure = undefined;\n this._backpressureChangePromise = undefined;\n this._backpressureChangePromise_resolve = undefined;\n\n this._transformStreamController = new TransformStreamDefaultController(this);\n\n var startPromise_resolve = void 0;\n var startPromise = new Promise(function (resolve) {\n startPromise_resolve = resolve;\n });\n\n var source = new TransformStreamSource(this, startPromise);\n\n this._readable = new ReadableStream(source, readableStrategy);\n\n var sink = new TransformStreamSink(this, startPromise);\n\n this._writable = new WritableStream(sink, writableStrategy);\n\n assert(this._writableController !== undefined);\n assert(this._readableController !== undefined);\n\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController);\n // Set _backpressure based on desiredSize. As there is no read() at this point, we can just interpret\n // desiredSize being non-positive as backpressure.\n TransformStreamSetBackpressure(this, desiredSize <= 0);\n\n var transformStream = this;\n var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]);\n startPromise_resolve(startResult);\n startPromise.catch(function (e) {\n // The underlyingSink and underlyingSource will error the readable and writable ends on their own.\n if (transformStream._errored === false) {\n transformStream._errored = true;\n transformStream._storedError = e;\n }\n });\n }\n\n _createClass(TransformStream, [{\n key: 'readable',\n get: function get() {\n if (IsTransformStream(this) === false) {\n throw streamBrandCheckException('readable');\n }\n\n return this._readable;\n }\n }, {\n key: 'writable',\n get: function get() {\n if (IsTransformStream(this) === false) {\n throw streamBrandCheckException('writable');\n }\n\n return this._writable;\n }\n }]);\n\n return TransformStream;\n}();\n\nmodule.exports = { TransformStream: TransformStream };\n\n// Helper functions for the TransformStreamDefaultController.\n\nfunction defaultControllerBrandCheckException(name) {\n return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController');\n}\n\n// Helper functions for the TransformStream.\n\nfunction streamBrandCheckException(name) {\n return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream');\n}\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\nmodule.exports = __w_pdfjs_require__(5);\n\n\n/***/ })\n/******/ ])));","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable no-restricted-globals */\n\nif (typeof PDFJSDev !== 'undefined' && !PDFJSDev.test('GENERIC')) {\n // The `URL` constructor is assumed to be available in the extension builds.\n exports.URL = URL;\n} else {\n let isURLSupported = false;\n try {\n if (typeof URL === 'function' && typeof URL.prototype === 'object' &&\n ('origin' in URL.prototype)) {\n const u = new URL('b', 'http://a');\n u.pathname = 'c%20d';\n isURLSupported = (u.href === 'http://a/c%20d');\n }\n } catch (ex) {\n // The `URL` constructor cannot be used.\n }\n\n if (isURLSupported) {\n exports.URL = URL;\n } else if (typeof PDFJSDev !== 'undefined' &&\n PDFJSDev.test('IMAGE_DECODERS')) {\n class DummyURL {\n constructor() {\n throw new Error('The current image decoders doesn\\'t utilize the ' +\n '`URL` constructor, hence it shouldn\\'t need to be ' +\n 'polyfilled for the IMAGE_DECODERS build target.');\n }\n }\n exports.URL = DummyURL;\n } else {\n const PolyfillURL = require('../../external/url/url-lib').URL;\n\n // Attempt to copy over the static methods.\n const OriginalURL = require('./global_scope').URL;\n if (OriginalURL) {\n PolyfillURL.createObjectURL = function(blob) {\n // IE extension allows a second optional options argument, see\n // http://msdn.microsoft.com/en-us/library/ie/hh772302(v=vs.85).aspx\n return OriginalURL.createObjectURL.apply(OriginalURL, arguments);\n };\n PolyfillURL.revokeObjectURL = function(url) {\n OriginalURL.revokeObjectURL(url);\n };\n }\n exports.URL = PolyfillURL;\n }\n}\n","/* Any copyright is dedicated to the Public Domain.\n * http://creativecommons.org/publicdomain/zero/1.0/\n */\n\n// Polyfill obtained from: https://github.com/Polymer/URL\n\n(function URLConstructorClosure() {\n 'use strict';\n\n var relative = Object.create(null);\n relative['ftp'] = 21;\n relative['file'] = 0;\n relative['gopher'] = 70;\n relative['http'] = 80;\n relative['https'] = 443;\n relative['ws'] = 80;\n relative['wss'] = 443;\n\n var relativePathDotMapping = Object.create(null);\n relativePathDotMapping['%2e'] = '.';\n relativePathDotMapping['.%2e'] = '..';\n relativePathDotMapping['%2e.'] = '..';\n relativePathDotMapping['%2e%2e'] = '..';\n\n function isRelativeScheme(scheme) {\n return relative[scheme] !== undefined;\n }\n\n function invalid() {\n clear.call(this);\n this._isInvalid = true;\n }\n\n function IDNAToASCII(h) {\n if (h === '') {\n invalid.call(this);\n }\n // XXX\n return h.toLowerCase();\n }\n\n function percentEscape(c) {\n var unicode = c.charCodeAt(0);\n if (unicode > 0x20 &&\n unicode < 0x7F &&\n // \" # < > ? `\n [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) === -1\n ) {\n return c;\n }\n return encodeURIComponent(c);\n }\n\n function percentEscapeQuery(c) {\n // XXX This actually needs to encode c using encoding and then\n // convert the bytes one-by-one.\n\n var unicode = c.charCodeAt(0);\n if (unicode > 0x20 &&\n unicode < 0x7F &&\n // \" # < > ` (do not escape '?')\n [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) === -1\n ) {\n return c;\n }\n return encodeURIComponent(c);\n }\n\n var EOF, ALPHA = /[a-zA-Z]/,\n ALPHANUMERIC = /[a-zA-Z0-9\\+\\-\\.]/;\n\n function parse(input, stateOverride, base) {\n function err(message) {\n errors.push(message);\n }\n\n var state = stateOverride || 'scheme start',\n cursor = 0,\n buffer = '',\n seenAt = false,\n seenBracket = false,\n errors = [];\n\n loop: while ((input[cursor - 1] !== EOF || cursor === 0) &&\n !this._isInvalid) {\n var c = input[cursor];\n switch (state) {\n case 'scheme start':\n if (c && ALPHA.test(c)) {\n buffer += c.toLowerCase(); // ASCII-safe\n state = 'scheme';\n } else if (!stateOverride) {\n buffer = '';\n state = 'no scheme';\n continue;\n } else {\n err('Invalid scheme.');\n break loop;\n }\n break;\n\n case 'scheme':\n if (c && ALPHANUMERIC.test(c)) {\n buffer += c.toLowerCase(); // ASCII-safe\n } else if (c === ':') {\n this._scheme = buffer;\n buffer = '';\n if (stateOverride) {\n break loop;\n }\n if (isRelativeScheme(this._scheme)) {\n this._isRelative = true;\n }\n if (this._scheme === 'file') {\n state = 'relative';\n } else if (this._isRelative && base &&\n base._scheme === this._scheme) {\n state = 'relative or authority';\n } else if (this._isRelative) {\n state = 'authority first slash';\n } else {\n state = 'scheme data';\n }\n } else if (!stateOverride) {\n buffer = '';\n cursor = 0;\n state = 'no scheme';\n continue;\n } else if (c === EOF) {\n break loop;\n } else {\n err('Code point not allowed in scheme: ' + c);\n break loop;\n }\n break;\n\n case 'scheme data':\n if (c === '?') {\n this._query = '?';\n state = 'query';\n } else if (c === '#') {\n this._fragment = '#';\n state = 'fragment';\n } else {\n // XXX error handling\n if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n this._schemeData += percentEscape(c);\n }\n }\n break;\n\n case 'no scheme':\n if (!base || !(isRelativeScheme(base._scheme))) {\n err('Missing scheme.');\n invalid.call(this);\n } else {\n state = 'relative';\n continue;\n }\n break;\n\n case 'relative or authority':\n if (c === '/' && input[cursor + 1] === '/') {\n state = 'authority ignore slashes';\n } else {\n err('Expected /, got: ' + c);\n state = 'relative';\n continue;\n }\n break;\n\n case 'relative':\n this._isRelative = true;\n if (this._scheme !== 'file') {\n this._scheme = base._scheme;\n }\n if (c === EOF) {\n this._host = base._host;\n this._port = base._port;\n this._path = base._path.slice();\n this._query = base._query;\n this._username = base._username;\n this._password = base._password;\n break loop;\n } else if (c === '/' || c === '\\\\') {\n if (c === '\\\\') {\n err('\\\\ is an invalid code point.');\n }\n state = 'relative slash';\n } else if (c === '?') {\n this._host = base._host;\n this._port = base._port;\n this._path = base._path.slice();\n this._query = '?';\n this._username = base._username;\n this._password = base._password;\n state = 'query';\n } else if (c === '#') {\n this._host = base._host;\n this._port = base._port;\n this._path = base._path.slice();\n this._query = base._query;\n this._fragment = '#';\n this._username = base._username;\n this._password = base._password;\n state = 'fragment';\n } else {\n var nextC = input[cursor + 1];\n var nextNextC = input[cursor + 2];\n if (this._scheme !== 'file' || !ALPHA.test(c) ||\n (nextC !== ':' && nextC !== '|') ||\n (nextNextC !== EOF && nextNextC !== '/' && nextNextC !== '\\\\' &&\n nextNextC !== '?' && nextNextC !== '#')) {\n this._host = base._host;\n this._port = base._port;\n this._username = base._username;\n this._password = base._password;\n this._path = base._path.slice();\n this._path.pop();\n }\n state = 'relative path';\n continue;\n }\n break;\n\n case 'relative slash':\n if (c === '/' || c === '\\\\') {\n if (c === '\\\\') {\n err('\\\\ is an invalid code point.');\n }\n if (this._scheme === 'file') {\n state = 'file host';\n } else {\n state = 'authority ignore slashes';\n }\n } else {\n if (this._scheme !== 'file') {\n this._host = base._host;\n this._port = base._port;\n this._username = base._username;\n this._password = base._password;\n }\n state = 'relative path';\n continue;\n }\n break;\n\n case 'authority first slash':\n if (c === '/') {\n state = 'authority second slash';\n } else {\n err('Expected \\'/\\', got: ' + c);\n state = 'authority ignore slashes';\n continue;\n }\n break;\n\n case 'authority second slash':\n state = 'authority ignore slashes';\n if (c !== '/') {\n err('Expected \\'/\\', got: ' + c);\n continue;\n }\n break;\n\n case 'authority ignore slashes':\n if (c !== '/' && c !== '\\\\') {\n state = 'authority';\n continue;\n } else {\n err('Expected authority, got: ' + c);\n }\n break;\n\n case 'authority':\n if (c === '@') {\n if (seenAt) {\n err('@ already seen.');\n buffer += '%40';\n }\n seenAt = true;\n for (var i = 0; i < buffer.length; i++) {\n var cp = buffer[i];\n if (cp === '\\t' || cp === '\\n' || cp === '\\r') {\n err('Invalid whitespace in authority.');\n continue;\n }\n // XXX check URL code points\n if (cp === ':' && this._password === null) {\n this._password = '';\n continue;\n }\n var tempC = percentEscape(cp);\n if (this._password !== null) {\n this._password += tempC;\n } else {\n this._username += tempC;\n }\n }\n buffer = '';\n } else if (c === EOF || c === '/' || c === '\\\\' ||\n c === '?' || c === '#') {\n cursor -= buffer.length;\n buffer = '';\n state = 'host';\n continue;\n } else {\n buffer += c;\n }\n break;\n\n case 'file host':\n if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#') {\n if (buffer.length === 2 && ALPHA.test(buffer[0]) &&\n (buffer[1] === ':' || buffer[1] === '|')) {\n state = 'relative path';\n } else if (buffer.length === 0) {\n state = 'relative path start';\n } else {\n this._host = IDNAToASCII.call(this, buffer);\n buffer = '';\n state = 'relative path start';\n }\n continue;\n } else if (c === '\\t' || c === '\\n' || c === '\\r') {\n err('Invalid whitespace in file host.');\n } else {\n buffer += c;\n }\n break;\n\n case 'host':\n case 'hostname':\n if (c === ':' && !seenBracket) {\n // XXX host parsing\n this._host = IDNAToASCII.call(this, buffer);\n buffer = '';\n state = 'port';\n if (stateOverride === 'hostname') {\n break loop;\n }\n } else if (c === EOF || c === '/' ||\n c === '\\\\' || c === '?' || c === '#') {\n this._host = IDNAToASCII.call(this, buffer);\n buffer = '';\n state = 'relative path start';\n if (stateOverride) {\n break loop;\n }\n continue;\n } else if (c !== '\\t' && c !== '\\n' && c !== '\\r') {\n if (c === '[') {\n seenBracket = true;\n } else if (c === ']') {\n seenBracket = false;\n }\n buffer += c;\n } else {\n err('Invalid code point in host/hostname: ' + c);\n }\n break;\n\n case 'port':\n if (/[0-9]/.test(c)) {\n buffer += c;\n } else if (c === EOF || c === '/' || c === '\\\\' ||\n c === '?' || c === '#' || stateOverride) {\n if (buffer !== '') {\n var temp = parseInt(buffer, 10);\n if (temp !== relative[this._scheme]) {\n this._port = temp + '';\n }\n buffer = '';\n }\n if (stateOverride) {\n break loop;\n }\n state = 'relative path start';\n continue;\n } else if (c === '\\t' || c === '\\n' || c === '\\r') {\n err('Invalid code point in port: ' + c);\n } else {\n invalid.call(this);\n }\n break;\n\n case 'relative path start':\n if (c === '\\\\') {\n err('\\'\\\\\\' not allowed in path.');\n }\n state = 'relative path';\n if (c !== '/' && c !== '\\\\') {\n continue;\n }\n break;\n\n case 'relative path':\n if (c === EOF || c === '/' || c === '\\\\' ||\n (!stateOverride && (c === '?' || c === '#'))) {\n if (c === '\\\\') {\n err('\\\\ not allowed in relative path.');\n }\n var tmp;\n if ((tmp = relativePathDotMapping[buffer.toLowerCase()])) {\n buffer = tmp;\n }\n if (buffer === '..') {\n this._path.pop();\n if (c !== '/' && c !== '\\\\') {\n this._path.push('');\n }\n } else if (buffer === '.' && c !== '/' && c !== '\\\\') {\n this._path.push('');\n } else if (buffer !== '.') {\n if (this._scheme === 'file' && this._path.length === 0 &&\n buffer.length === 2 && ALPHA.test(buffer[0]) &&\n buffer[1] === '|') {\n buffer = buffer[0] + ':';\n }\n this._path.push(buffer);\n }\n buffer = '';\n if (c === '?') {\n this._query = '?';\n state = 'query';\n } else if (c === '#') {\n this._fragment = '#';\n state = 'fragment';\n }\n } else if (c !== '\\t' && c !== '\\n' && c !== '\\r') {\n buffer += percentEscape(c);\n }\n break;\n\n case 'query':\n if (!stateOverride && c === '#') {\n this._fragment = '#';\n state = 'fragment';\n } else if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n this._query += percentEscapeQuery(c);\n }\n break;\n\n case 'fragment':\n if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n this._fragment += c;\n }\n break;\n }\n\n cursor++;\n }\n }\n\n function clear() {\n this._scheme = '';\n this._schemeData = '';\n this._username = '';\n this._password = null;\n this._host = '';\n this._port = '';\n this._path = [];\n this._query = '';\n this._fragment = '';\n this._isInvalid = false;\n this._isRelative = false;\n }\n\n // Does not process domain names or IP addresses.\n // Does not handle encoding for the query parameter.\n function JURL(url, base /* , encoding */) {\n if (base !== undefined && !(base instanceof JURL)) {\n base = new JURL(String(base));\n }\n\n this._url = url;\n clear.call(this);\n\n var input = url.replace(/^[ \\t\\r\\n\\f]+|[ \\t\\r\\n\\f]+$/g, '');\n // encoding = encoding || 'utf-8'\n\n parse.call(this, input, null, base);\n }\n\n JURL.prototype = {\n toString() {\n return this.href;\n },\n get href() {\n if (this._isInvalid) {\n return this._url;\n }\n var authority = '';\n if (this._username !== '' || this._password !== null) {\n authority = this._username +\n (this._password !== null ? ':' + this._password : '') + '@';\n }\n\n return this.protocol +\n (this._isRelative ? '//' + authority + this.host : '') +\n this.pathname + this._query + this._fragment;\n },\n // The named parameter should be different from the setter's function name.\n // Otherwise Safari 5 will throw an error (see issue 8541)\n set href(value) {\n clear.call(this);\n parse.call(this, value);\n },\n\n get protocol() {\n return this._scheme + ':';\n },\n set protocol(value) {\n if (this._isInvalid) {\n return;\n }\n parse.call(this, value + ':', 'scheme start');\n },\n\n get host() {\n return this._isInvalid ? '' : this._port ?\n this._host + ':' + this._port : this._host;\n },\n set host(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n parse.call(this, value, 'host');\n },\n\n get hostname() {\n return this._host;\n },\n set hostname(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n parse.call(this, value, 'hostname');\n },\n\n get port() {\n return this._port;\n },\n set port(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n parse.call(this, value, 'port');\n },\n\n get pathname() {\n return this._isInvalid ? '' : this._isRelative ?\n '/' + this._path.join('/') : this._schemeData;\n },\n set pathname(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n this._path = [];\n parse.call(this, value, 'relative path start');\n },\n\n get search() {\n return this._isInvalid || !this._query || this._query === '?' ?\n '' : this._query;\n },\n set search(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n this._query = '?';\n if (value[0] === '?') {\n value = value.slice(1);\n }\n parse.call(this, value, 'query');\n },\n\n get hash() {\n return this._isInvalid || !this._fragment || this._fragment === '#' ?\n '' : this._fragment;\n },\n set hash(value) {\n if (this._isInvalid) {\n return;\n }\n this._fragment = '#';\n if (value[0] === '#') {\n value = value.slice(1);\n }\n parse.call(this, value, 'fragment');\n },\n\n get origin() {\n var host;\n if (this._isInvalid || !this._scheme) {\n return '';\n }\n // javascript: Gecko returns String(\"\"), WebKit/Blink String(\"null\")\n // Gecko throws error for \"data://\"\n // data: Gecko returns \"\", Blink returns \"data://\", WebKit returns \"null\"\n // Gecko returns String(\"\") for file: mailto:\n // WebKit/Blink returns String(\"SCHEME://\") for file: mailto:\n switch (this._scheme) {\n case 'data':\n case 'file':\n case 'javascript':\n case 'mailto':\n return 'null';\n case 'blob':\n // Special case of blob: -- returns valid origin of _schemeData.\n try {\n return new JURL(this._schemeData).origin || 'null';\n } catch (_) {\n // Invalid _schemeData origin -- ignoring errors.\n }\n return 'null';\n }\n host = this.host;\n if (!host) {\n return '';\n }\n return this._scheme + '://' + host;\n },\n };\n\n exports.URL = JURL;\n})();\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals requirejs, __non_webpack_require__ */\n/* eslint no-var: error */\n\nimport {\n assert, createPromiseCapability, getVerbosityLevel, info, InvalidPDFException,\n isArrayBuffer, isSameOrigin, MissingPDFException, NativeImageDecoding,\n PasswordException, setVerbosityLevel, shadow, stringToBytes,\n UnexpectedResponseException, UnknownErrorException, unreachable, URL, warn\n} from '../shared/util';\nimport {\n deprecated, DOMCanvasFactory, DOMCMapReaderFactory, DummyStatTimer,\n loadScript, PageViewport, releaseImageResources, RenderingCancelledException,\n StatTimer\n} from './display_utils';\nimport { FontFaceObject, FontLoader } from './font_loader';\nimport { apiCompatibilityParams } from './api_compatibility';\nimport { CanvasGraphics } from './canvas';\nimport globalScope from '../shared/global_scope';\nimport { GlobalWorkerOptions } from './worker_options';\nimport { MessageHandler } from '../shared/message_handler';\nimport { Metadata } from './metadata';\nimport { PDFDataTransportStream } from './transport_stream';\nimport { WebGLContext } from './webgl';\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536; // 2^16 = 65536\n\nlet isWorkerDisabled = false;\nlet fallbackWorkerSrc;\n\nlet fakeWorkerFilesLoader = null;\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('GENERIC')) {\n let useRequireEnsure = false;\n // For GENERIC build we need to add support for different fake file loaders\n // for different frameworks.\n if (typeof window === 'undefined') {\n // node.js - disable worker and set require.ensure.\n isWorkerDisabled = true;\n if (typeof __non_webpack_require__.ensure === 'undefined') {\n __non_webpack_require__.ensure = __non_webpack_require__('node-ensure');\n }\n useRequireEnsure = true;\n } else if (typeof __non_webpack_require__ !== 'undefined' &&\n typeof __non_webpack_require__.ensure === 'function') {\n useRequireEnsure = true;\n }\n if (typeof requirejs !== 'undefined' && requirejs.toUrl) {\n fallbackWorkerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js');\n }\n const dynamicLoaderSupported =\n typeof requirejs !== 'undefined' && requirejs.load;\n fakeWorkerFilesLoader = useRequireEnsure ? (function() {\n return new Promise(function(resolve, reject) {\n __non_webpack_require__.ensure([], function() {\n try {\n let worker;\n if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('LIB')) {\n worker = __non_webpack_require__('../pdf.worker.js');\n } else {\n worker = __non_webpack_require__('./pdf.worker.js');\n }\n resolve(worker.WorkerMessageHandler);\n } catch (ex) {\n reject(ex);\n }\n }, reject, 'pdfjsWorker');\n });\n }) : dynamicLoaderSupported ? (function() {\n return new Promise(function(resolve, reject) {\n requirejs(['pdfjs-dist/build/pdf.worker'], function(worker) {\n try {\n resolve(worker.WorkerMessageHandler);\n } catch (ex) {\n reject(ex);\n }\n }, reject);\n });\n }) : null;\n\n if (!fallbackWorkerSrc && typeof document === 'object' &&\n 'currentScript' in document) {\n const pdfjsFilePath = document.currentScript && document.currentScript.src;\n if (pdfjsFilePath) {\n fallbackWorkerSrc =\n pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, '.worker$1$2');\n }\n }\n}\n\n/**\n * @typedef {function} IPDFStreamFactory\n * @param {DocumentInitParameters} params The document initialization\n * parameters. The \"url\" key is always present.\n * @return {IPDFStream}\n */\n\n/** @type IPDFStreamFactory */\nlet createPDFNetworkStream;\n\n/**\n * Sets the function that instantiates a IPDFStream as an alternative PDF data\n * transport.\n * @param {IPDFStreamFactory} pdfNetworkStreamFactory - the factory function\n * that takes document initialization parameters (including a \"url\") and returns\n * an instance of IPDFStream.\n */\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n createPDFNetworkStream = pdfNetworkStreamFactory;\n}\n\n/**\n * Document initialization / loading parameters object.\n *\n * @typedef {Object} DocumentInitParameters\n * @property {string} url - The URL of the PDF.\n * @property {TypedArray|Array|string} data - Binary PDF data. Use typed arrays\n * (Uint8Array) to improve the memory usage. If PDF data is BASE64-encoded,\n * use atob() to convert it to a binary string first.\n * @property {Object} httpHeaders - Basic authentication headers.\n * @property {boolean} withCredentials - Indicates whether or not cross-site\n * Access-Control requests should be made using credentials such as cookies\n * or authorization headers. The default is false.\n * @property {string} password - For decrypting password-protected PDFs.\n * @property {TypedArray} initialData - A typed array with the first portion or\n * all of the pdf data. Used by the extension since some data is already\n * loaded before the switch to range requests.\n * @property {number} length - The PDF file length. It's used for progress\n * reports and range requests operations.\n * @property {PDFDataRangeTransport} range\n * @property {number} rangeChunkSize - Optional parameter to specify\n * maximum number of bytes fetched per range request. The default value is\n * 2^16 = 65536.\n * @property {PDFWorker} worker - (optional) The worker that will be used for\n * the loading and parsing of the PDF data.\n * @property {boolean} postMessageTransfers - (optional) Enables transfer usage\n * in postMessage for ArrayBuffers. The default value is `true`.\n * @property {number} verbosity - (optional) Controls the logging level; the\n * constants from {VerbosityLevel} should be used.\n * @property {string} docBaseUrl - (optional) The base URL of the document,\n * used when attempting to recover valid absolute URLs for annotations, and\n * outline items, that (incorrectly) only specify relative URLs.\n * @property {string} nativeImageDecoderSupport - (optional) Strategy for\n * decoding certain (simple) JPEG images in the browser. This is useful for\n * environments without DOM image and canvas support, such as e.g. Node.js.\n * Valid values are 'decode', 'display' or 'none'; where 'decode' is intended\n * for browsers with full image/canvas support, 'display' for environments\n * with limited image support through stubs (useful for SVG conversion),\n * and 'none' where JPEG images will be decoded entirely by PDF.js.\n * The default value is 'decode'.\n * @property {string} cMapUrl - (optional) The URL where the predefined\n * Adobe CMaps are located. Include trailing slash.\n * @property {boolean} cMapPacked - (optional) Specifies if the Adobe CMaps are\n * binary packed.\n * @property {Object} CMapReaderFactory - (optional) The factory that will be\n * used when reading built-in CMap files. Providing a custom factory is useful\n * for environments without `XMLHttpRequest` support, such as e.g. Node.js.\n * The default value is {DOMCMapReaderFactory}.\n * @property {boolean} stopAtErrors - (optional) Reject certain promises, e.g.\n * `getOperatorList`, `getTextContent`, and `RenderTask`, when the associated\n * PDF data cannot be successfully parsed, instead of attempting to recover\n * whatever possible of the data. The default value is `false`.\n * @property {number} maxImageSize - (optional) The maximum allowed image size\n * in total pixels, i.e. width * height. Images above this value will not be\n * rendered. Use -1 for no limit, which is also the default value.\n * @property {boolean} isEvalSupported - (optional) Determines if we can eval\n * strings as JS. Primarily used to improve performance of font rendering,\n * and when parsing PDF functions. The default value is `true`.\n * @property {boolean} disableFontFace - (optional) By default fonts are\n * converted to OpenType fonts and loaded via font face rules. If disabled,\n * fonts will be rendered using a built-in font renderer that constructs the\n * glyphs with primitive path commands. The default value is `false`.\n * @property {boolean} disableRange - (optional) Disable range request loading\n * of PDF files. When enabled, and if the server supports partial content\n * requests, then the PDF will be fetched in chunks.\n * The default value is `false`.\n * @property {boolean} disableStream - (optional) Disable streaming of PDF file\n * data. By default PDF.js attempts to load PDFs in chunks.\n * The default value is `false`.\n * @property {boolean} disableAutoFetch - (optional) Disable pre-fetching of PDF\n * file data. When range requests are enabled PDF.js will automatically keep\n * fetching more data even if it isn't needed to display the current page.\n * The default value is `false`.\n * NOTE: It is also necessary to disable streaming, see above,\n * in order for disabling of pre-fetching to work correctly.\n * @property {boolean} disableCreateObjectURL - (optional) Disable the use of\n * `URL.createObjectURL`, for compatibility with older browsers.\n * The default value is `false`.\n * @property {boolean} pdfBug - (optional) Enables special hooks for debugging\n * PDF.js (see `web/debugger.js`). The default value is `false`.\n */\n\n/**\n * @typedef {Object} PDFDocumentStats\n * @property {Array} streamTypes - Used stream types in the document (an item\n * is set to true if specific stream ID was used in the document).\n * @property {Array} fontTypes - Used font type in the document (an item is set\n * to true if specific font ID was used in the document).\n */\n\n/**\n * This is the main entry point for loading a PDF and interacting with it.\n * NOTE: If a URL is used to fetch the PDF data a standard XMLHttpRequest(XHR)\n * is used, which means it must follow the same origin rules that any XHR does\n * e.g. No cross domain requests without CORS.\n *\n * @param {string|TypedArray|DocumentInitParameters|PDFDataRangeTransport} src\n * Can be a url to where a PDF is located, a typed array (Uint8Array)\n * already populated with data or parameter object.\n *\n * @return {PDFDocumentLoadingTask}\n */\nfunction getDocument(src) {\n const task = new PDFDocumentLoadingTask();\n\n let source;\n if (typeof src === 'string') {\n source = { url: src, };\n } else if (isArrayBuffer(src)) {\n source = { data: src, };\n } else if (src instanceof PDFDataRangeTransport) {\n source = { range: src, };\n } else {\n if (typeof src !== 'object') {\n throw new Error('Invalid parameter in getDocument, ' +\n 'need either Uint8Array, string or a parameter object');\n }\n if (!src.url && !src.data && !src.range) {\n throw new Error(\n 'Invalid parameter object: need either .data, .range or .url');\n }\n source = src;\n }\n const params = Object.create(null);\n let rangeTransport = null, worker = null;\n\n for (const key in source) {\n if (key === 'url' && typeof window !== 'undefined') {\n // The full path is required in the 'url' field.\n params[key] = new URL(source[key], window.location).href;\n continue;\n } else if (key === 'range') {\n rangeTransport = source[key];\n continue;\n } else if (key === 'worker') {\n worker = source[key];\n continue;\n } else if (key === 'data' && !(source[key] instanceof Uint8Array)) {\n // Converting string or array-like data to Uint8Array.\n const pdfBytes = source[key];\n if (typeof pdfBytes === 'string') {\n params[key] = stringToBytes(pdfBytes);\n } else if (typeof pdfBytes === 'object' && pdfBytes !== null &&\n !isNaN(pdfBytes.length)) {\n params[key] = new Uint8Array(pdfBytes);\n } else if (isArrayBuffer(pdfBytes)) {\n params[key] = new Uint8Array(pdfBytes);\n } else {\n throw new Error('Invalid PDF binary data: either typed array, ' +\n 'string or array-like object is expected in the ' +\n 'data property.');\n }\n continue;\n }\n params[key] = source[key];\n }\n\n params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;\n params.CMapReaderFactory = params.CMapReaderFactory || DOMCMapReaderFactory;\n params.ignoreErrors = params.stopAtErrors !== true;\n params.pdfBug = params.pdfBug === true;\n\n const NativeImageDecoderValues = Object.values(NativeImageDecoding);\n if (params.nativeImageDecoderSupport === undefined ||\n !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) {\n params.nativeImageDecoderSupport =\n (apiCompatibilityParams.nativeImageDecoderSupport ||\n NativeImageDecoding.DECODE);\n }\n if (!Number.isInteger(params.maxImageSize)) {\n params.maxImageSize = -1;\n }\n if (typeof params.isEvalSupported !== 'boolean') {\n params.isEvalSupported = true;\n }\n if (typeof params.disableFontFace !== 'boolean') {\n params.disableFontFace = apiCompatibilityParams.disableFontFace || false;\n }\n\n if (typeof params.disableRange !== 'boolean') {\n params.disableRange = false;\n }\n if (typeof params.disableStream !== 'boolean') {\n params.disableStream = false;\n }\n if (typeof params.disableAutoFetch !== 'boolean') {\n params.disableAutoFetch = false;\n }\n if (typeof params.disableCreateObjectURL !== 'boolean') {\n params.disableCreateObjectURL =\n apiCompatibilityParams.disableCreateObjectURL || false;\n }\n\n // Set the main-thread verbosity level.\n setVerbosityLevel(params.verbosity);\n\n if (!worker) {\n const workerParams = {\n postMessageTransfers: params.postMessageTransfers,\n verbosity: params.verbosity,\n port: GlobalWorkerOptions.workerPort,\n };\n // Worker was not provided -- creating and owning our own. If message port\n // is specified in global worker options, using it.\n worker = workerParams.port ? PDFWorker.fromPort(workerParams) :\n new PDFWorker(workerParams);\n task._worker = worker;\n }\n const docId = task.docId;\n worker.promise.then(function() {\n if (task.destroyed) {\n throw new Error('Loading aborted');\n }\n return _fetchDocument(worker, params, rangeTransport, docId).then(\n function(workerId) {\n if (task.destroyed) {\n throw new Error('Loading aborted');\n }\n\n let networkStream;\n if (rangeTransport) {\n networkStream = new PDFDataTransportStream({\n length: params.length,\n initialData: params.initialData,\n progressiveDone: params.progressiveDone,\n disableRange: params.disableRange,\n disableStream: params.disableStream,\n }, rangeTransport);\n } else if (!params.data) {\n networkStream = createPDFNetworkStream({\n url: params.url,\n length: params.length,\n httpHeaders: params.httpHeaders,\n withCredentials: params.withCredentials,\n rangeChunkSize: params.rangeChunkSize,\n disableRange: params.disableRange,\n disableStream: params.disableStream,\n });\n }\n\n const messageHandler = new MessageHandler(docId, workerId, worker.port);\n messageHandler.postMessageTransfers = worker.postMessageTransfers;\n const transport = new WorkerTransport(messageHandler, task, networkStream,\n params);\n task._transport = transport;\n messageHandler.send('Ready', null);\n });\n }).catch(task._capability.reject);\n\n return task;\n}\n\n/**\n * Starts fetching of specified PDF document/data.\n * @param {PDFWorker} worker\n * @param {Object} source\n * @param {PDFDataRangeTransport} pdfDataRangeTransport\n * @param {string} docId Unique document id, used as MessageHandler id.\n * @returns {Promise} The promise, which is resolved when worker id of\n * MessageHandler is known.\n * @private\n */\nfunction _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n if (worker.destroyed) {\n return Promise.reject(new Error('Worker was destroyed'));\n }\n\n if (pdfDataRangeTransport) {\n source.length = pdfDataRangeTransport.length;\n source.initialData = pdfDataRangeTransport.initialData;\n source.progressiveDone = pdfDataRangeTransport.progressiveDone;\n }\n return worker.messageHandler.sendWithPromise('GetDocRequest', {\n docId,\n apiVersion: (typeof PDFJSDev !== 'undefined' ?\n PDFJSDev.eval('BUNDLE_VERSION') : null),\n source: { // Only send the required properties, and *not* the entire object.\n data: source.data,\n url: source.url,\n password: source.password,\n disableAutoFetch: source.disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize,\n length: source.length,\n },\n maxImageSize: source.maxImageSize,\n disableFontFace: source.disableFontFace,\n disableCreateObjectURL: source.disableCreateObjectURL,\n postMessageTransfers: worker.postMessageTransfers,\n docBaseUrl: source.docBaseUrl,\n nativeImageDecoderSupport: source.nativeImageDecoderSupport,\n ignoreErrors: source.ignoreErrors,\n isEvalSupported: source.isEvalSupported,\n }).then(function(workerId) {\n if (worker.destroyed) {\n throw new Error('Worker was destroyed');\n }\n return workerId;\n });\n}\n\n/**\n * PDF document loading operation.\n * @class\n * @alias PDFDocumentLoadingTask\n */\nconst PDFDocumentLoadingTask = (function PDFDocumentLoadingTaskClosure() {\n let nextDocumentId = 0;\n\n /** @constructs PDFDocumentLoadingTask */\n class PDFDocumentLoadingTask {\n constructor() {\n this._capability = createPromiseCapability();\n this._transport = null;\n this._worker = null;\n\n /**\n * Unique document loading task id -- used in MessageHandlers.\n * @type {string}\n */\n this.docId = 'd' + (nextDocumentId++);\n\n /**\n * Shows if loading task is destroyed.\n * @type {boolean}\n */\n this.destroyed = false;\n\n /**\n * Callback to request a password if wrong or no password was provided.\n * The callback receives two parameters: function that needs to be called\n * with new password and reason (see {PasswordResponses}).\n */\n this.onPassword = null;\n\n /**\n * Callback to be able to monitor the loading progress of the PDF file\n * (necessary to implement e.g. a loading bar). The callback receives\n * an {Object} with the properties: {number} loaded and {number} total.\n */\n this.onProgress = null;\n\n /**\n * Callback to when unsupported feature is used. The callback receives\n * an {UNSUPPORTED_FEATURES} argument.\n */\n this.onUnsupportedFeature = null;\n }\n\n /**\n * @return {Promise}\n */\n get promise() {\n return this._capability.promise;\n }\n\n /**\n * Aborts all network requests and destroys worker.\n * @return {Promise} A promise that is resolved after destruction activity\n * is completed.\n */\n destroy() {\n this.destroyed = true;\n\n const transportDestroyed = !this._transport ? Promise.resolve() :\n this._transport.destroy();\n return transportDestroyed.then(() => {\n this._transport = null;\n if (this._worker) {\n this._worker.destroy();\n this._worker = null;\n }\n });\n }\n\n /**\n * Registers callbacks to indicate the document loading completion.\n *\n * @param {function} onFulfilled The callback for the loading completion.\n * @param {function} onRejected The callback for the loading failure.\n * @return {Promise} A promise that is resolved after the onFulfilled or\n * onRejected callback.\n */\n then(onFulfilled, onRejected) {\n deprecated('PDFDocumentLoadingTask.then method, ' +\n 'use the `promise` getter instead.');\n return this.promise.then.apply(this.promise, arguments);\n }\n }\n return PDFDocumentLoadingTask;\n})();\n\n/**\n * Abstract class to support range requests file loading.\n * @param {number} length\n * @param {Uint8Array} initialData\n * @param {boolean} progressiveDone\n */\nclass PDFDataRangeTransport {\n constructor(length, initialData, progressiveDone = false) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = createPromiseCapability();\n }\n\n addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n\n addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n\n addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n\n addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n\n onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\n }\n }\n\n onDataProgress(loaded, total) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressListeners) {\n listener(loaded, total);\n }\n });\n }\n\n onDataProgressiveRead(chunk) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveReadListeners) {\n listener(chunk);\n }\n });\n }\n\n onDataProgressiveDone() {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveDoneListeners) {\n listener();\n }\n });\n }\n\n transportReady() {\n this._readyCapability.resolve();\n }\n\n requestDataRange(begin, end) {\n unreachable('Abstract method PDFDataRangeTransport.requestDataRange');\n }\n\n abort() {}\n}\n\n/**\n * Proxy to a PDFDocument in the worker thread. Also, contains commonly used\n * properties that can be read synchronously.\n */\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n }\n\n /**\n * @return {number} Total number of pages the PDF contains.\n */\n get numPages() {\n return this._pdfInfo.numPages;\n }\n\n /**\n * @return {string} A (not guaranteed to be) unique ID to identify a PDF.\n */\n get fingerprint() {\n return this._pdfInfo.fingerprint;\n }\n\n /**\n * @param {number} pageNumber - The page number to get. The first page is 1.\n * @return {Promise} A promise that is resolved with a {@link PDFPageProxy}\n * object.\n */\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n\n /**\n * @param {{num: number, gen: number}} ref - The page reference. Must have\n * the `num` and `gen` properties.\n * @return {Promise} A promise that is resolved with the page index that is\n * associated with the reference.\n */\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n\n /**\n * @return {Promise} A promise that is resolved with a lookup table for\n * mapping named destinations to reference numbers.\n *\n * This can be slow for large documents. Use `getDestination` instead.\n */\n getDestinations() {\n return this._transport.getDestinations();\n }\n\n /**\n * @param {string} id - The named destination to get.\n * @return {Promise} A promise that is resolved with all information\n * of the given named destination.\n */\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Array} containing\n * the page labels that correspond to the page indexes, or `null` when\n * no page labels are present in the PDF file.\n */\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n\n /**\n * @return {Promise} A promise that is resolved with a {string} containing\n * the page layout name.\n */\n getPageLayout() {\n return this._transport.getPageLayout();\n }\n\n /**\n * @return {Promise} A promise that is resolved with a {string} containing\n * the page mode name.\n */\n getPageMode() {\n return this._transport.getPageMode();\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Object} containing\n * the viewer preferences.\n */\n getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Array} containing the\n * destination, or `null` when no open action is present in the PDF file.\n */\n getOpenActionDestination() {\n return this._transport.getOpenActionDestination();\n }\n\n /**\n * @return {Promise} A promise that is resolved with a lookup table for\n * mapping named attachments to their content.\n */\n getAttachments() {\n return this._transport.getAttachments();\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Array} of all the\n * JavaScript strings in the name tree, or `null` if no JavaScript exists.\n */\n getJavaScript() {\n return this._transport.getJavaScript();\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Array} that is a\n * tree outline (if it has one) of the PDF. The tree is in the format of:\n * [\n * {\n * title: string,\n * bold: boolean,\n * italic: boolean,\n * color: rgb Uint8ClampedArray,\n * count: integer or undefined,\n * dest: dest obj,\n * url: string,\n * items: array of more items like this\n * },\n * ...\n * ]\n */\n getOutline() {\n return this._transport.getOutline();\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Array} that contains\n * the permission flags for the PDF document, or `null` when\n * no permissions are present in the PDF file.\n */\n getPermissions() {\n return this._transport.getPermissions();\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Object} that has\n * `info` and `metadata` properties. `info` is an {Object} filled with\n * anything available in the information dictionary and similarly\n * `metadata` is a {Metadata} object with information from the metadata\n * section of the PDF.\n */\n getMetadata() {\n return this._transport.getMetadata();\n }\n\n /**\n * @return {Promise} A promise that is resolved with a {TypedArray} that has\n * the raw data from the PDF.\n */\n getData() {\n return this._transport.getData();\n }\n\n /**\n * @return {Promise} A promise that is resolved when the document's data\n * is loaded. It is resolved with an {Object} that contains the `length`\n * property that indicates size of the PDF data in bytes.\n */\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n\n /**\n * @return {Promise} A promise this is resolved with current statistics about\n * document structures (see {@link PDFDocumentStats}).\n */\n getStats() {\n return this._transport.getStats();\n }\n\n /**\n * Cleans up resources allocated by the document, e.g. created `@font-face`.\n */\n cleanup() {\n this._transport.startCleanup();\n }\n\n /**\n * Destroys the current document instance and terminates the worker.\n */\n destroy() {\n return this.loadingTask.destroy();\n }\n\n /**\n * @return {Object} A subset of the current {DocumentInitParameters},\n * which are either needed in the viewer and/or whose default values\n * may be affected by the `apiCompatibilityParams`.\n */\n get loadingParams() {\n return this._transport.loadingParams;\n }\n\n /**\n * @return {PDFDocumentLoadingTask} The loadingTask for the current document.\n */\n get loadingTask() {\n return this._transport.loadingTask;\n }\n}\n\n/**\n * Page getViewport parameters.\n *\n * @typedef {Object} GetViewportParameters\n * @property {number} scale - The desired scale of the viewport.\n * @property {number} rotation - (optional) The desired rotation, in degrees, of\n * the viewport. If omitted it defaults to the page rotation.\n * @property {boolean} dontFlip - (optional) If true, the y-axis will not be\n * flipped. The default value is `false`.\n */\n\n/**\n * Page getTextContent parameters.\n *\n * @typedef {Object} getTextContentParameters\n * @property {boolean} normalizeWhitespace - replaces all occurrences of\n * whitespace with standard spaces (0x20). The default value is `false`.\n * @property {boolean} disableCombineTextItems - do not attempt to combine\n * same line {@link TextItem}'s. The default value is `false`.\n */\n\n/**\n * Page text content.\n *\n * @typedef {Object} TextContent\n * @property {array} items - array of {@link TextItem}\n * @property {Object} styles - {@link TextStyle} objects, indexed by font name.\n */\n\n/**\n * Page text content part.\n *\n * @typedef {Object} TextItem\n * @property {string} str - text content.\n * @property {string} dir - text direction: 'ttb', 'ltr' or 'rtl'.\n * @property {array} transform - transformation matrix.\n * @property {number} width - width in device space.\n * @property {number} height - height in device space.\n * @property {string} fontName - font name used by pdf.js for converted font.\n */\n\n/**\n * Text style.\n *\n * @typedef {Object} TextStyle\n * @property {number} ascent - font ascent.\n * @property {number} descent - font descent.\n * @property {boolean} vertical - text is in vertical mode.\n * @property {string} fontFamily - possible font family\n */\n\n/**\n * Page annotation parameters.\n *\n * @typedef {Object} GetAnnotationsParameters\n * @property {string} intent - Determines the annotations that will be fetched,\n * can be either 'display' (viewable annotations) or 'print'\n * (printable annotations).\n * If the parameter is omitted, all annotations are fetched.\n */\n\n/**\n * Page render parameters.\n *\n * @typedef {Object} RenderParameters\n * @property {Object} canvasContext - A 2D context of a DOM Canvas object.\n * @property {PageViewport} viewport - Rendering viewport obtained by\n * calling the `PDFPageProxy.getViewport` method.\n * @property {string} intent - Rendering intent, can be 'display' or 'print'\n * (default value is 'display').\n * @property {boolean} enableWebGL - (optional) Enables WebGL accelerated\n * rendering for some operations. The default value is `false`.\n * @property {boolean} renderInteractiveForms - (optional) Whether or not\n * interactive form elements are rendered in the display\n * layer. If so, we do not render them on canvas as well.\n * @property {Array} transform - (optional) Additional transform, applied\n * just before viewport transform.\n * @property {Object} imageLayer - (optional) An object that has beginLayout,\n * endLayout and appendImage functions.\n * @property {Object} canvasFactory - (optional) The factory that will be used\n * when creating canvases. The default value is\n * {DOMCanvasFactory}.\n * @property {Object} background - (optional) Background to use for the canvas.\n * Can use any valid canvas.fillStyle: A DOMString parsed as\n * CSS value, a CanvasGradient object (a linear or\n * radial gradient) or a CanvasPattern object (a repetitive\n * image). The default value is 'rgb(255,255,255)'.\n */\n\n/**\n * PDF page operator list.\n *\n * @typedef {Object} PDFOperatorList\n * @property {Array} fnArray - Array containing the operator functions.\n * @property {Array} argsArray - Array containing the arguments of the\n * functions.\n */\n\n/**\n * Proxy to a PDFPage in the worker thread.\n * @alias PDFPageProxy\n */\nclass PDFPageProxy {\n constructor(pageIndex, pageInfo, transport, pdfBug = false) {\n this.pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._transport = transport;\n this._stats = (pdfBug ? new StatTimer() : DummyStatTimer);\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this.intentStates = Object.create(null);\n this.destroyed = false;\n }\n\n /**\n * @return {number} Page number of the page. First page is 1.\n */\n get pageNumber() {\n return this.pageIndex + 1;\n }\n\n /**\n * @return {number} The number of degrees the page is rotated clockwise.\n */\n get rotate() {\n return this._pageInfo.rotate;\n }\n\n /**\n * @return {Object} The reference that points to this page. It has 'num' and\n * 'gen' properties.\n */\n get ref() {\n return this._pageInfo.ref;\n }\n\n /**\n * @return {number} The default size of units in 1/72nds of an inch.\n */\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n\n /**\n * @return {Array} An array of the visible portion of the PDF page in the\n * user space units - [x1, y1, x2, y2].\n */\n get view() {\n return this._pageInfo.view;\n }\n\n /**\n * @param {GetViewportParameters} params - Viewport parameters.\n * @return {PageViewport} Contains 'width' and 'height' properties\n * along with transforms required for rendering.\n */\n getViewport({ scale, rotation = this.rotate, dontFlip = false, } = {}) {\n if ((typeof PDFJSDev !== 'undefined' && PDFJSDev.test('GENERIC')) &&\n (arguments.length > 1 || typeof arguments[0] === 'number')) {\n deprecated('getViewport is called with obsolete arguments.');\n scale = arguments[0];\n rotation = typeof arguments[1] === 'number' ? arguments[1] : this.rotate;\n dontFlip = typeof arguments[2] === 'boolean' ? arguments[2] : false;\n }\n return new PageViewport({\n viewBox: this.view,\n scale,\n rotation,\n dontFlip,\n });\n }\n\n /**\n * @param {GetAnnotationsParameters} params - Annotation parameters.\n * @return {Promise} A promise that is resolved with an {Array} of the\n * annotation objects.\n */\n getAnnotations({ intent = null, } = {}) {\n if (!this.annotationsPromise || this.annotationsIntent !== intent) {\n this.annotationsPromise = this._transport.getAnnotations(this.pageIndex,\n intent);\n this.annotationsIntent = intent;\n }\n return this.annotationsPromise;\n }\n\n /**\n * Begins the process of rendering a page to the desired context.\n * @param {RenderParameters} params Page render parameters.\n * @return {RenderTask} An object that contains the promise, which\n * is resolved when the page finishes rendering.\n */\n render({ canvasContext, viewport, intent = 'display', enableWebGL = false,\n renderInteractiveForms = false, transform = null, imageLayer = null,\n canvasFactory = null, background = null, }) {\n const stats = this._stats;\n stats.time('Overall');\n\n // If there was a pending destroy, cancel it so no cleanup happens during\n // this call to render.\n this.pendingCleanup = false;\n\n const renderingIntent = (intent === 'print' ? 'print' : 'display');\n const canvasFactoryInstance = canvasFactory || new DOMCanvasFactory();\n const webGLContext = new WebGLContext({\n enable: enableWebGL,\n });\n\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n const intentState = this.intentStates[renderingIntent];\n\n // If there's no displayReadyCapability yet, then the operatorList\n // was never requested before. Make the request and create the promise.\n if (!intentState.displayReadyCapability) {\n intentState.receivingOperatorList = true;\n intentState.displayReadyCapability = createPromiseCapability();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n };\n\n stats.time('Page Request');\n this._transport.messageHandler.send('RenderPageRequest', {\n pageIndex: this.pageNumber - 1,\n intent: renderingIntent,\n renderInteractiveForms: renderInteractiveForms === true,\n });\n }\n\n const complete = (error) => {\n const i = intentState.renderTasks.indexOf(internalRenderTask);\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n\n // Attempt to reduce memory usage during *printing*, by always running\n // cleanup once rendering has finished (regardless of cleanupAfterRender).\n if (this.cleanupAfterRender || renderingIntent === 'print') {\n this.pendingCleanup = true;\n }\n this._tryCleanup();\n\n if (error) {\n internalRenderTask.capability.reject(error);\n } else {\n internalRenderTask.capability.resolve();\n }\n stats.timeEnd('Rendering');\n stats.timeEnd('Overall');\n };\n\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n params: { // Include the required properties, and *not* the entire object.\n canvasContext,\n viewport,\n transform,\n imageLayer,\n background,\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n operatorList: intentState.operatorList,\n pageNumber: this.pageNumber,\n canvasFactory: canvasFactoryInstance,\n webGLContext,\n useRequestAnimationFrame: renderingIntent !== 'print',\n pdfBug: this._pdfBug,\n });\n\n if (!intentState.renderTasks) {\n intentState.renderTasks = [];\n }\n intentState.renderTasks.push(internalRenderTask);\n const renderTask = internalRenderTask.task;\n\n intentState.displayReadyCapability.promise.then((transparency) => {\n if (this.pendingCleanup) {\n complete();\n return;\n }\n stats.time('Rendering');\n internalRenderTask.initializeGraphics(transparency);\n internalRenderTask.operatorListChanged();\n }).catch(complete);\n\n return renderTask;\n }\n\n /**\n * @return {Promise} A promise resolved with an {@link PDFOperatorList}\n * object that represents page's operator list.\n */\n getOperatorList() {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n\n const i = intentState.renderTasks.indexOf(opListTask);\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n }\n }\n\n const renderingIntent = 'oplist';\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n const intentState = this.intentStates[renderingIntent];\n let opListTask;\n\n if (!intentState.opListReadCapability) {\n opListTask = {};\n opListTask.operatorListChanged = operatorListChanged;\n intentState.receivingOperatorList = true;\n intentState.opListReadCapability = createPromiseCapability();\n intentState.renderTasks = [];\n intentState.renderTasks.push(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n };\n\n this._stats.time('Page Request');\n this._transport.messageHandler.send('RenderPageRequest', {\n pageIndex: this.pageIndex,\n intent: renderingIntent,\n });\n }\n return intentState.opListReadCapability.promise;\n }\n\n /**\n * @param {getTextContentParameters} params - getTextContent parameters.\n * @return {ReadableStream} ReadableStream to read textContent chunks.\n */\n streamTextContent({ normalizeWhitespace = false,\n disableCombineTextItems = false, } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n\n return this._transport.messageHandler.sendWithStream('GetTextContent', {\n pageIndex: this.pageNumber - 1,\n normalizeWhitespace: normalizeWhitespace === true,\n combineTextItems: disableCombineTextItems !== true,\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size(textContent) {\n return textContent.items.length;\n },\n });\n }\n\n /**\n * @param {getTextContentParameters} params - getTextContent parameters.\n * @return {Promise} That is resolved a {@link TextContent}\n * object that represent the page text content.\n */\n getTextContent(params = {}) {\n const readableStream = this.streamTextContent(params);\n\n return new Promise(function(resolve, reject) {\n function pump() {\n reader.read().then(function({ value, done, }) {\n if (done) {\n resolve(textContent);\n return;\n }\n Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n pump();\n }, reject);\n }\n\n const reader = readableStream.getReader();\n const textContent = {\n items: [],\n styles: Object.create(null),\n };\n pump();\n });\n }\n\n /**\n * Destroys page object.\n */\n _destroy() {\n this.destroyed = true;\n this._transport.pageCache[this.pageIndex] = null;\n\n const waitOn = [];\n Object.keys(this.intentStates).forEach(function(intent) {\n if (intent === 'oplist') {\n // Avoid errors below, since the renderTasks are just stubs.\n return;\n }\n const intentState = this.intentStates[intent];\n intentState.renderTasks.forEach(function(renderTask) {\n const renderCompleted = renderTask.capability.promise.\n catch(function() {}); // ignoring failures\n waitOn.push(renderCompleted);\n renderTask.cancel();\n });\n }, this);\n this.objs.clear();\n this.annotationsPromise = null;\n this.pendingCleanup = false;\n return Promise.all(waitOn);\n }\n\n /**\n * Cleans up resources allocated by the page.\n * @param {boolean} resetStats - (optional) Reset page stats, if enabled.\n * The default value is `false`.\n */\n cleanup(resetStats = false) {\n this.pendingCleanup = true;\n this._tryCleanup(resetStats);\n }\n\n /**\n * For internal use only. Attempts to clean up if rendering is in a state\n * where that's possible.\n * @ignore\n */\n _tryCleanup(resetStats = false) {\n if (!this.pendingCleanup ||\n Object.keys(this.intentStates).some(function(intent) {\n const intentState = this.intentStates[intent];\n return (intentState.renderTasks.length !== 0 ||\n intentState.receivingOperatorList);\n }, this)) {\n return;\n }\n\n Object.keys(this.intentStates).forEach(function(intent) {\n delete this.intentStates[intent];\n }, this);\n this.objs.clear();\n this.annotationsPromise = null;\n if (resetStats && this._stats instanceof StatTimer) {\n this._stats = new StatTimer();\n }\n this.pendingCleanup = false;\n }\n\n /**\n * For internal use only.\n * @ignore\n */\n _startRenderPage(transparency, intent) {\n const intentState = this.intentStates[intent];\n // TODO Refactor RenderPageRequest to separate rendering\n // and operator list logic\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.resolve(transparency);\n }\n }\n\n /**\n * For internal use only.\n * @ignore\n */\n _renderPageChunk(operatorListChunk, intent) {\n const intentState = this.intentStates[intent];\n // Add the new chunk to the current operator list.\n for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(\n operatorListChunk.argsArray[i]);\n }\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n\n // Notify all the rendering tasks there are more operators to be consumed.\n for (let i = 0; i < intentState.renderTasks.length; i++) {\n intentState.renderTasks[i].operatorListChanged();\n }\n\n if (operatorListChunk.lastChunk) {\n intentState.receivingOperatorList = false;\n this._tryCleanup();\n }\n }\n\n /**\n * @return {Object} Returns page stats, if enabled.\n */\n get stats() {\n return (this._stats instanceof StatTimer ? this._stats : null);\n }\n}\n\nclass LoopbackPort {\n constructor(defer = true) {\n this._listeners = [];\n this._defer = defer;\n this._deferred = Promise.resolve(undefined);\n }\n\n postMessage(obj, transfers) {\n function cloneValue(value) {\n // Trying to perform a structured clone close to the spec, including\n // transfers.\n if (typeof value !== 'object' || value === null) {\n return value;\n }\n if (cloned.has(value)) { // already cloned the object\n return cloned.get(value);\n }\n let buffer, result;\n if ((buffer = value.buffer) && isArrayBuffer(buffer)) {\n // We found object with ArrayBuffer (typed array).\n const transferable = transfers && transfers.includes(buffer);\n if (value === buffer) {\n // Special case when we are faking typed arrays in compatibility.js.\n result = value;\n } else if (transferable) {\n result = new value.constructor(buffer, value.byteOffset,\n value.byteLength);\n } else {\n result = new value.constructor(value);\n }\n cloned.set(value, result);\n return result;\n }\n result = Array.isArray(value) ? [] : {};\n cloned.set(value, result); // adding to cache now for cyclic references\n // Cloning all value and object properties, however ignoring properties\n // defined via getter.\n for (const i in value) {\n let desc, p = value;\n while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {\n p = Object.getPrototypeOf(p);\n }\n if (typeof desc.value === 'undefined' ||\n typeof desc.value === 'function') {\n continue;\n }\n result[i] = cloneValue(desc.value);\n }\n return result;\n }\n\n if (!this._defer) {\n this._listeners.forEach(function(listener) {\n listener.call(this, { data: obj, });\n }, this);\n return;\n }\n\n const cloned = new WeakMap();\n const e = { data: cloneValue(obj), };\n this._deferred.then(() => {\n this._listeners.forEach(function(listener) {\n listener.call(this, e);\n }, this);\n });\n }\n\n addEventListener(name, listener) {\n this._listeners.push(listener);\n }\n\n removeEventListener(name, listener) {\n const i = this._listeners.indexOf(listener);\n this._listeners.splice(i, 1);\n }\n\n terminate() {\n this._listeners.length = 0;\n }\n}\n\n/**\n * @typedef {Object} PDFWorkerParameters\n * @property {string} name - (optional) The name of the worker.\n * @property {Object} port - (optional) The `workerPort`.\n * @property {boolean} postMessageTransfers - (optional) Enables transfer usage\n * in postMessage for ArrayBuffers. The default value is `true`.\n * @property {number} verbosity - (optional) Controls the logging level; the\n * constants from {VerbosityLevel} should be used.\n */\n\n/**\n * PDF.js web worker abstraction, it controls instantiation of PDF documents and\n * WorkerTransport for them. If creation of a web worker is not possible,\n * a \"fake\" worker will be used instead.\n * @class\n */\nconst PDFWorker = (function PDFWorkerClosure() {\n const pdfWorkerPorts = new WeakMap();\n let nextFakeWorkerId = 0;\n let fakeWorkerFilesLoadedCapability;\n\n function getWorkerSrc() {\n if (GlobalWorkerOptions.workerSrc) {\n return GlobalWorkerOptions.workerSrc;\n }\n if (typeof fallbackWorkerSrc !== 'undefined') {\n return fallbackWorkerSrc;\n }\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n function getMainThreadWorkerMessageHandler() {\n try {\n if (typeof window !== 'undefined') {\n return (window.pdfjsWorker && window.pdfjsWorker.WorkerMessageHandler);\n }\n } catch (ex) { }\n return null;\n }\n\n // Loads worker code into main thread.\n function setupFakeWorkerGlobal() {\n if (fakeWorkerFilesLoadedCapability) {\n return fakeWorkerFilesLoadedCapability.promise;\n }\n fakeWorkerFilesLoadedCapability = createPromiseCapability();\n\n const mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();\n if (mainWorkerMessageHandler) {\n // The worker was already loaded using a `

    j#e9rfrOf`3HW9Y@96L6q8Y+L8`#Gdk{pcRzZM0#9h&@kjJn@j8f# zIzCiE9iM7%$M?$VWT(~1Az0@KUbe;X%5Ai=I>!Q+keBG(i@U9W7bGi6C zXh8{1YyUC=Yf}iSJC|ox*t&1=cF;?6P&`I z_)&z*Nqv${`N=RPCt03Ojug+yG0>dno}~VhiDI3chI}?KAKhz|_vCf(*#)0m3ve2L zG6$RozX08GeQOa~($g972vAdY!U5U!>!oIuM)pgBNRu?;fE^Z&YQh5c5 zy>x9tmLs~0oo82($LhM3*MoPVcdv4~9@179cH6}cpz9UzTVlH2N6z6<*Ef_yIMMB# z4O;a#=?*pBk?w)SCXP(-aGE8?b5b0j5O!snay4R6+ zlaX$2i@Ix!zq?0C_szUgy%l^$g1YZkA>E8i_bZmK`+fLds^D(sN)L0S$5D0<{ogZE zh4sW}tB1p~9?pn+7Q-VV?@1QvS*LUl%WY2)GRv_N-iyN5%~o?r2Lm1VT&aq|5h z{2ct((R&XWZ!UVi0)Hb;&yPxaEit`5(Y;~H?&apC_X2ov#`I1UPwzC+90v6+73ob; zx;IsZ_p%G=EkS3u^7dAUueVN|-VV~e%HKOEVZHc-ULMEvvIzEKXT5(VFOPM42{C&A zp*+3ch^J2}-RI|(WT*u7MS{ojnsPk6i9n(yeRGxFHy{3D<>_0hO&_ z9a{PhpkIr;$(TNF3DzW8eGg0DQ_}Z>^t~Z{??~VKy6+?D`^@h9;?&YL*N66fEB=1& z&-CA`?-tk?-XBu zFZwrA&TXW5cGG`1>4$VkKO2qymyy3o-jB&g5BGnq!uo$uo`Dc$2BI7pm}B%niZKJ5 zc;mW5>w!JsYGi!LK$Efu2;c@fl{L^M)&L9Nz|WznXW&lgdw~1lKSKI<&`*;W4>s^J z^y|>?^JbQrJix8Pz&F}EsEiDT8+$NDyn`1h8N5_EgGt63oUg1w7Qw+~Vg~VCgBidE zk-=PeThIDZzqAI6%wU-_SRsP}8En;q?RxNp4E9@tr%nw|3)A1TUHX2w=bq1Sy#@Hq;EoX5`H6TrqY*9R3k6D z;cUp-eo3s+iS?4$i4R_!_{`a9>tykCHF5fq zK=AZkf!ND=Y%mx!L;Gh83*^tZAW(IM6{wnN4WDJLnKf$Dtm2SaFHD&A&bHaUz=+wq zuAbu$%$c(?du~w4+~P@d-wjk<84{?P2h0yyvLGZdW5L?wt3m^bS7imN77n}k>S1M9 z&oo!xKJn^bO~3lDfrX2P&t3Ftpz4~)D;7r%U%WgpZE<$+wNci!39GK1IPBU3{2Aib zK-H3%$=AhPcHI)WuF_n0@N95V-tg-h^>uwCuDfCTb@v6TmW~TlT|aKsvT@^=RqR-H tdgSt$%H>m?uYcr|HMtjvN~!GAq^@i6l&0y_aCw1ICy+j?Nov=NTzFjMedelBqgti^UQ)p% z6V2c0FhV<`$D@30Xgq!nUq=s*{G(1!sGVFY8Cz!YXMhXpKQ1#8&A7Iv_Q U103N5XSl!>Zg7VOJW1|FzIH}ZoB#j- literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/Adobe-Japan1-1.bcmap b/htdocs/vendor/pdfjs/web/cmaps/Adobe-Japan1-1.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..dad42c5ad7dad57954fc9a051ee7e222e83bee45 GIT binary patch literal 226 zcmW;C(F(y(0LJk%m!9Idac9QeF4x+{N-pdPuoG%*&RJ?#Ymy{Mk|arzBuSDai8t{m zKI;43eEnmeg6?_&uT`o(&8Vu9$|{OVHQOyQY6Ze)bwSNW+2x+gi$1gExaK(Y-wVo_ zV7&D^Eyk#v&Y8NAw+u-lghV0Mh7NS02Ynd85JoVD2~1%Ib6CI`GD7x@CoEK=wI literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/Adobe-Japan1-2.bcmap b/htdocs/vendor/pdfjs/web/cmaps/Adobe-Japan1-2.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..090819a064533f20aa68f562275556397683ae81 GIT binary patch literal 233 zcmW;C!HPjq0LJmd(q>-alr^r|-KAuqWZ^!6;WQL3=iZc+NRl*3(xgd}BuSbiNs@RE zkK#{#zs=X*`$$FYa!u#IbFK`VrV;ow3{yt3_Lq`Y&2d%Hk?~T-)@56#U6l>`B87r{ z_m0%cQM&p%Eu~~Il!!-TNh{{@2yw4h{6aM9tce!d=%9-pe$dANLyYi?G5#>Y6f?}R Zz!EF0vB4Jq*kO+YjyU0r3$EhhCY~ULRonmo literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/Adobe-Japan1-3.bcmap b/htdocs/vendor/pdfjs/web/cmaps/Adobe-Japan1-3.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..087dfc155860e65d2dc828dd432ffe88239fde23 GIT binary patch literal 242 zcmW;C!Ab&A0EOW@?&>M-#%1H=ZkB`0VnAFpPf*Pzg~>bJ83I>gL_|b{h=@pth)9G) zNJNB)MCe=iDE;OXBS?d4* literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/Adobe-Japan1-4.bcmap b/htdocs/vendor/pdfjs/web/cmaps/Adobe-Japan1-4.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..46aa9bffe576e9a8b714646aed7f9e1a4e99dfe2 GIT binary patch literal 337 zcmW;CQAa~z0LJlmyWFREzd-BM-MQ#uW*1|2(fI_`UM;qr?LEiX)ig;aNs=U)B$;HA zWRlEGW+pQ;NhZlmk|cH4fARco9)Is(HfX1FdTBB4$|=({CZ-L;l!2H%ucVc8T$OZW zIJIEww5{h{74!Q7iG=*`9jTS0bas4NN=g4@BpeJyt&qnf#BV+`BgAr^6|jO;tf7c? zY+w^x*v1Zav4?#epoBvl;TR_<;}mD8;2amY#1*Qz#tm*!Lmds=p@|mSxJL(F^w7rx a9`S?$p7DZL3^BqR-tmD?eBoPIKjIHvDu)yR literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/Adobe-Japan1-5.bcmap b/htdocs/vendor/pdfjs/web/cmaps/Adobe-Japan1-5.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..5b4b65cc6292a5ba7d89e976565bf08814bb88b6 GIT binary patch literal 430 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 BxW^%pYjuN-9#jwV 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 literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/Adobe-Korea1-0.bcmap b/htdocs/vendor/pdfjs/web/cmaps/Adobe-Korea1-0.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..cef1a9985191f53c4a8a35811d1caeecdd1a1820 GIT binary patch literal 241 zcmW;CK}*750LJlm9s3mT#ba}M+i{E?2I0Ydf^;t$thU~bV5eb3M1+Wlh=_;<6+}yI|M2!7c7^j|X(nMGt)pFvJLB jOfba^k9fi}Uhs-HyyF9NeBuk=Sl|as{9=Vak*&o)>2O)q literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/Adobe-Korea1-1.bcmap b/htdocs/vendor/pdfjs/web/cmaps/Adobe-Korea1-1.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..11ffa36df8404ab970df2a24b2d80b1dc6348436 GIT binary patch literal 386 zcmW;IVMjwz7{KwnUhY$zFR*p%-F-PT8QF{OC#ZI;vURs}uh^?~l4MqrBuSDalO#zd zNs=Ts!7SO2zVPu$BF)nH~I5FL(VM>=iW5wWz_Cxu(|1DW$h za=719c~A8QG93-avRUze?+Yb;sYcAwl~P38yOZ%m%1wkqmZhgkg)T;kH->RcU=n3i zFpU|^Vh;0Iz#^8gj1{b64eQuI6`RR!J?x`~103QA$2h?$&Tx(kT;dAXxWO&% wP)7szXyO5nc)~MUc)=^)@Qx3B;tSvS!7ucv`Ah+A5@^#vn+Tc;L%L%90TF_m@Bjb+ literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/Adobe-Korea1-2.bcmap b/htdocs/vendor/pdfjs/web/cmaps/Adobe-Korea1-2.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..3172308c79d57147cdbe05930228043faa48ca54 GIT binary patch literal 391 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 f42+FTOpJ|eK+FZid_XJ }}!1;lb046pnFxKb%J literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/B5pc-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/B5pc-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..ce0013167f852a873b639e301088c094d468a750 GIT binary patch literal 1099 zcmW-g`%~0q6vodN6a}qhlS>5pun5Mq5J!##vdM@Bf}@NT7m;gd^fxrqTR%L%JoC!)l4};NoKa|MO+K-CAa~m;Yy` zTdjJ8G1Z)yv?e_XG;o5ZH6}Pa2(*7(bPX13xi0#9ng;QCPDf*cZvnXeZG=E4V1^R` zoRvxy;O4Ai+72k&S1{ECpkGb4=2BAudTmq=)uyA=8JOxyQ9dy;?RWuYM=I0Kr6@a# zm_A*FvdfKWmj&gsAg0|K%I*ZFJ®2-Ds;%-*{dpuU>v^DLBo-c0)(C|^V~)q7$@ z{aT1<0Hy{bN<#_Lm#HZG=P~UsLiy@7rUPy$2a=c$2B93xXF8OCa!B3vwV)jKXF9wU zz5g(KznM_BQqZ}<``gR@4u?0-WN-(%F9AX;RGaa9ga(p$@iBOaih3t7U8K5x( z!cJ~LIW>#vR6fe-K&I2xDBlrNlRvsQZG!Zs_nFSbV(6JFfF>(MH3zZYoCyKVmFUyr z4bWm#ih#tHNcL)R05n%X$XO4Rvr$av7NDFerWB1l#fLaIWt>s{7^F{x*Fn~56 z2yaUP&$bGt^X|C*e2VhQ!L5A}Q~MH>b_>(@D^V_JOc!!cE-L@xHk2RYm@d77a%lro zM+{2GM@&B|SeF&7%L>*{3f2_`>xzPPRl&NdVEwFMT~n~GS#W7*5I}bZEbB~TQ!#G>3#<@hBFz@ zM%>t20?@00cFW9kYcD~&Idml6XmW^`%Ri^t@ zD8IkS^uQbCftv9!8s(v#>5sK2k6vPWv<0=k*I`qik>BW_2Xp&XCjAQLV+HeZA^Qy^ zL(o7zrVY9Q^hLn@K~;vq0(@&o6}_Kf@lX!aP&LjSCde30VR{mP<|o+zV++AB63jGW zLK&%Kucw&+!>b_VX)%V5E(93JgQ!tr9Q_dHjClb}%IsOxnO}JO%^D zQz35L#>*$dzIW`GnjFD7QmDR{H8-t vrdKjO(@~zOJ)g&;Jm1DKe{F<0GX}&NKY$rerFbPXc+3#E&b*VWK6&oH7Gi0w literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/B5pc-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/B5pc-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..73b99ff2fbca40e7ca5501f61e3f2f29c1fc1af6 GIT binary patch literal 144 zcmZR65agU+P+63jo>8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T=44ustm~1;v(TI2l^-9&YkfwB h*M71;l(nECj@2Kr98sav2P-`~e{wDhU7p literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/CNS-EUC-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/CNS-EUC-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..61d1d0cb001dd484630e52eb7e47eaabbdee62cd GIT binary patch literal 1780 zcmeIy+gDU&9LDkA-kV{N7%VIoIuhGKu~2XrO+`8pQjuoF2qrneFl_OF49p-n=(4rp z-2+WBSyWb*wJk$C%#4~H6s;_^QahLCDe_RpU(xgP!rQ!QtuDIxto6R@z54FG9(lO3 z)ZZEktY})^t`-&*IrCjkXOUXc=x@+ecPQAdtq!W?Ek1vs)gSP-YmEh|CC$z1)%QU) zpar!+2Vc51O)Z$dpuDtfp}UME(n(RGrfKT?Jl%&K*Oa8ISE@wWBNg?MT02tVv+_HS zPj`6q65WyCovl}Tx*ygZ^LwUBa!;r3%Pa+^P)YbG<|i>x5{)Dr6l*1sLt+_;5XII=qKm{NMXV<=Sutdab&!!vB3Cj} zBqL20Q)DAu5_uHsRE!ETsz^*zjA|13$wm#uQx(HY@w6mEqqt2mR#Lb+XpfpZOiOq% zg=;C?Ac+EN*hg`f9A2gLc2FWi?(ItI-H_5}p~M(UWGa25DKX9xNuga$)<`-DCq?XX zL{<97k|`G=D!S4IO9+lYu-d_s#&IKQ2G9BQSW&+^53h;da_#us134VMK{FDoRPGTCsFZY6z zw=(O&sT%O>9B_Ip(+BSGeC5?)Mk^<&5Nct^c?LZLa_74z$_-g%xPCUH1lfi~k>h>l%Q+0o(|0 ALjV8( literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/CNS-EUC-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/CNS-EUC-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..1a393a51e079d1b5e7898423463fac5e87170da2 GIT binary patch literal 1920 zcmeIy`%_eP7{~GFoWo_^SS+j^bOnx!Vxi!&+J)#M5fy1jtYA?KEX#@)WZ7K=7a5uZ z-?Pvrt3_pHS%)&T%d&RQ=w_*1?0&x)S(fcz(dXG8`k9%gnSN;Inb*wu&hyjz%sk3W zeU-mE9NgTosYfjDp%s%u@69_ddT88nTiQ(_(^a+T4!l$f6$HPPXY%xE?V2SsgiR8_{TB+8Vr z0`s0Cd3<}w5;G1NG`*6>chK}IX*`_1*CX$%pyRD{GDqIOQ<@+;Fh`nn(kY8q!}d`_ z70%%nw{U58w_XM!bD3>mWDOX-2;7;;ptL($1@2nJ+yQpE!B_=|&1d?+?gp@DCAj-M z#t-hnzj2Q*1NY8hI>3F^;Qm6eS7KVg16P6vZA=(Ev;pk97(6_W34lk|f&C@m(Q}y1 z;IZq0u>?#gj0Ze^HFzSA*$EEZ3ZA?aOkTi*z`>irp%vgM3$qnGT?3w33Z6}8yqdi@ zUO9B4!5#0!_tcFbaUnRI!L)UUWP%#P@7xMc6WB24|Xx8 zY35Ho20e9rXrB%2sdE||WmzF8D zqL^bn7bOfE!Cp|rMG$>}M-|Zz=*<^{kS$U~2(ra_!hozx5jVl=kGhX&4r>6cYhaBq zY<5~<$ojc8p`_*^SH@F|d8s=ED-Ot&L#{$uDTQ36BV7PL#+>OAKp&*tJgq9L2LW4^ z)#{?PI-Z$}x*9atYlF-!*gM8D3CBi=Z+5`1VfbCfx0cv8z)m6C^}`=msN=MzqCYvL zV~{Eot%Ox7nIcj>#7YBk&nYp8bSH6NliVd9=)`IV@vu^|Ks@Rr*4l{2`y~-#ohH#U zO~jKz$r$mpi+EN;Y%s|X@%$w5!YxS8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T=Ij@2sOyo)qo~91%8!qshLNF; gfw7T^iLsFlh`E564~T_;SPY1zfLN|EgW;7w0IZHEdH?_b literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/CNS2-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/CNS2-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..c89b3527fe57ad3b32061f36b73c756ead3fb071 GIT binary patch literal 504 zcmW;IX)8ow0L5`6Ns=T<(sPF-F)m3)lCgy(%}A1wWv;C;ce;0)jHG-a`#Sc0-}im& z!>4eLH@_FB^Xebsx0I?buh!Gm?H1W4lbo3&%O+vAtL=)gdUdzbr;93QhpM?$twYNk~HkIwOJ&|HsTmI*hZ_tSQ;1)BX%%R z0wx6+0#nUkx&X|?6AzfJ2Xi@KKAJdzuLdlngT-*t36{#hvH`3FkruF82-XrvKUi-7 z8@XUJhPc31E!fTgI}xNC>{fui6tEvcTERgPI7}o1;HVKC=Yf-0qJh&oaApMOk)#(~ zRD#P?a1~10!F4gXNg{*bwh7$jgZnt*1`ihSD1)ac!hX-}_riXD_VcsfEBn2%-y8eA dv)>2%eX`#t`+c$BH~R(HFTj33=$HJP{s+tZ#wGv& literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/CNS2-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/CNS2-V.bcmap new file mode 100644 index 0000000..7588cec --- /dev/null +++ b/htdocs/vendor/pdfjs/web/cmaps/CNS2-V.bcmap @@ -0,0 +1,3 @@ +àRCopyright 1990-2009 Adobe Systems Incorporated. +All rights reserved. +See ./LICENSEáCNS2-H \ No newline at end of file diff --git a/htdocs/vendor/pdfjs/web/cmaps/ETHK-B5-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/ETHK-B5-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..cb29415de4f5a669c1b47e34ab889b5fdee6e428 GIT binary patch literal 4426 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 VUn5lgC0;DLe}&hDRI?#j{~y^L&k+Cs literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/ETHK-B5-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/ETHK-B5-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..f09aec6318dbec88491e3e488526882eaa930f37 GIT binary patch literal 158 zcmZR65agU+P+63jo>8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T=^EnUt?Oi}>ygN@FqW~AiHWh1 w4T!mbm=B1BfLIKOrGQv2k!7Jb!z({NhS&Ox46h9v*%)5=Co&#;!uU=Q09TwZ8~^|S literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/ETen-B5-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/ETen-B5-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..c2d77462d298cdb261f5e2eed5218fcba35cbe4e GIT binary patch literal 1125 zcmW-g`&ZOe6vfY1bQH7_;w1qNhb4%_41%&6h$BY=Az6ZfV9H5>nS>Pr!NhA>tPy-< zY6h8_Y2qsc1xeEk6EqM_%``zCBG1qU{U5sZ!~SKjv(CMDfA*a=@?LCVQAKgyrd+Fj zvB?w~5*8Y2(zCfR+oDgcD6v{Lm*^77PG;L^Yiup&zI(^f#)x{RsX2feB@wQ1F5HlUhRlx;3d+lo-O8<}>zg0drtY3Cx8oq0^3uRz(Q zW7=g#`NE%Rw}!GihG~y4${u0b8-!!;IuV3&BA1;{#sk!+LGa17D5s_~ zoytZz?ZQJ6V>x;>xdSvAl?)Ku z6v}Q*R)EGb2t4bAayE?V++37%$xO{5=u=$@o;CA8Hx&-h;tIY~kxWzXqrC8BdQpmD zFPG*!Hs=G>SV7-h3N9_4=-m>mW<4OJB>|jU%9zeO;+pdb$}0t3t1naQ0+d!W(~rwh zE@(^_HlSQo{>3dQKSeQJnul^}Ez{))l*^wm{j7LiQ9Q3Gp1&xbZHi}`;(1l^ysCKq zs(4;gJg=E?QM*4tXBsSSPi9kx2GC^!hmI(e4poxtJ}B2SnQla)+)(BDEd!%FRTk~5 zz_(Ln-D$-cUEz??rQUec1?A>yrfwsy>n;H3)i~KTFsEPjr9TJX9#9{lmtp?E2Bv{3 zoHa<0HkiQl#0L|fWCD!1g3C|<(~t>esGQxNrUMMFfWW8u7&Pn((3b^a!^AlJG0Yrs z0~p%~E+Z_$7eu=kfZbUs SS}75n>;w+>cVXen+8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T=^B!nr|V>@>ygN@FqW~AiHWh1 w4T!mbm=B1BfLIKOrGQv2k!7Jb!z({NhS&Ox46h9v*%)5=Co&#;!uU=Q0BE@{TmS$7 literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/ETenms-B5-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/ETenms-B5-H.bcmap new file mode 100644 index 0000000..a7d69db --- /dev/null +++ b/htdocs/vendor/pdfjs/web/cmaps/ETenms-B5-H.bcmap @@ -0,0 +1,3 @@ +àRCopyright 1990-2009 Adobe Systems Incorporated. +All rights reserved. +See ./LICENSEá ETen-B5-H` ^ \ No newline at end of file diff --git a/htdocs/vendor/pdfjs/web/cmaps/ETenms-B5-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/ETenms-B5-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..adc5d618d6912cb3a67e4745b63764120f93d17f GIT binary patch literal 172 zcmZR65agU+P+63jo>8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T?HZDrms_msWUA}o$hOe?l^;Xn zWoOQ25yqxk#>Oidj7*6<3u74@nV1+G*?^b}i1~n62#CdiSPF>cfS5@MD9-?tKV{GO GP7na4qA}0_ literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/EUC-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/EUC-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..e92ea5b3b99b1f20d31c9760481de0472e72685b GIT binary patch literal 578 zcmW;HX-^Yj6b0a!LR#wJkfLdA#QItYF__k&#-$pgwHAR0XbY(^j9ToQiYX4xOdvHz z^BOzU4fhQfs9HsF!Cm{wpW;vPT)#Xy_vC!JuD|J|F9gk~~n5M;9B5#aw zmMK{_pRicpnUjV&X_z^i=c6kU#UlH^x0uN-Zcb5|;haS`AM8t}1~Vy1mV_j`W*7F< z5~8j%Sz0d&CuDX^6mmYamwIXm{c=f!SC+Gir_7t&NfCV zHDQ96hrp{Ss5KL(!Rub|rV}hS5@X=)UhpnNoCixs!TTNHgP*X$$29n)fn}8_g3tZn n%SQ0kP2|D1ec(GIE`T4S;O9>8YYj04eh-UqLp>(Re@6cS^@+ph literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/EUC-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/EUC-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..7a7c183228dfdc5c236b7914ca68298520ac60a1 GIT binary patch literal 170 zcmZR65agU+P+63jo>8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T>Kf{->ygO1a1rBPe_qDDft*Zx sgPB`_!~OsLz3v`wueYcFuf=+=*PWVn zy}YQTs=kB}N|oa#DU8z6zYh`Dt1F6VfA!-q5nkI&;jcpi!e4uo({-;al$3^_qm|^) zpL@-rqgJKNJsRh9j~0)l6(|pYkpM&wCn{pWa4BL&Oo~`DavB&;fOTYGM8>P9z^ftP zH8J5eBol4NarS)Pwc{KmJzCY15S0o}^}IenEh9v&mPkqq{?N;I55=e#YOQnhK90nI z(Ltzn>0^LeuOB-H^@eHeJk$mJP$LCDb2vV~tQ7$=Ge8-qeq^LcNtR z#tYpJ9(Tyr3>q*_p*G>D9BOms_!+1zVdE0iRx); zF*d@N2=$J^R}A%TfUg3om-yzjubVmrb%0DIK^-(q zoyB*%X(|Kikaa2_>eGNJUi6uMss`$F$#|XyPc?8Ze}i?Zo#P8!nCh3Exm1|uZGLH) zE&zitT>(bIrW>%+0j=dz?8@|tBm^BdQjGeX0 z!bK{~o&gIIX0yS9GiM74JE5N)Bz^W1%~=#)7bEXMfO4Hj#9n*io^z4ge}%M@=*z-Y|dQZP|`%eTe} z^H##*jq{;|oz~CC%8o*6oR0%b#6g#Hp3_PSn!f;+Oy;Y>&N$}lz|NZI+rUy>^BuDD z3XNPKV5yFU7_c<^LMoWYxNs3H-Lg;&mSI?^A?%!S;YYA6EHul`B5GV{0n5h1J;HLx zLOWr(_JvNc{PczAU>Ed@XgTE|&Hff_)#&~0*v{7byTGc9{$4rgDvk1UORIHDput@(BBZEL{d`v@8|ju+y|uE!#_}X^D%z=~!w7`zdPaG1x7~GI#Jc_PLu)x@B%o zbKr8kY%im_WnQVpyqpWxie*ku5|_DAZMNlhuscD^17LT}D;7DhoMPn!VP4Bh2-tmW zW*IJ&OSD* zR><~i6sz1?*|=H@*5h7n1nZ4neTw6AhP808KGRw(-lZAV5@qLgdS)#J?1^QKThVV= zy9YKv);hojPp)-ik82phx(Vzl*15!IvbB;1u3N#LN3C;1{-#^c2YX>yzl7sV`#RV6 z(zSj=vQ*Ke^>&i7;nL|gij_FWMj6p>G!nAWM8Y>(mCDQw{+(S*K*BqZM5?o~J0KaW zu0ca8(TH*in%)V`V1j0pg<2Ze@_&X0vS;L$g~q>!3M;H(Mlfa}d4+$#sK@n>{4veF(5PfbjR(iWvF6 zhQz<`BoV)!P(=KiN~(VK5bFmhV$%nkBI-UoBsV{F@!!Tj%82EonGY8+esn8h=*QC} z_~Rww`B*PmZt(k@${@5rE+I%MfEHX0?ZikrG}mxGw3Ak7AjJb$Y*oYmz_?WlElSvGlyuFx@OS3J_fm4+rcGOIoY+4v^Xs=` z$jR*-61QDN%-g++SiAk4SbnQkM8j`Ck(}RJ$;nUQ#PrFdh{C7yME|Kscl}ejWNNN~ z7CkINi%~M5#h!=e4#9Djk_n9(h$hNH8x?j!pvC9!P)v7Wry2fQ{Z1>iQ;r?4WV%BW zclrSBG|am(91}Pu0=^rF-OZ4NyEJr{w>{Ci`v@Diqjq^ulFXlZy=3QSw-n~3p`Shc z)EVG&ImfdQK40UQf}GDkC}RBY4n9dm&hMFuc;)vFK1qZA%U>rvFn!75m=5cg0!0k| zQo$z~Fn(#~cn&#Vyc{zj?8V4JJH=ii-aN7FC1c%a+slTQ6}49kpF3`^O%@(f-F^U; zW5~V*TDEK74lT#C9|!HcW4}Qb9?`)4yU=oz_WLp6Fda~6d5(i*X!)jtJc)EvVm?`N zbkH*gS4hM`HxUl4e1s_C*+VypI;>$oV9vai(3ljX*M8dvClG9(a6tU>*Z4&m4 zNko6%BJ*#j@=&4f@8HO9H=DLc41D)&i~6 z@a++_vdC{Trg*~2&EK68k!jQSFxk>Wt>62hRoIXCi*n6*6pYaUXxHP9;xV2i992l< z`7^xgmdMj=OqWZxUYd4vgLkeH$;U>HRlsq&Pi*=lK@nYl8cFG&5j=5!^4L}W=dw=t KcNEe6tK@(8IPMSt literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/Ext-RKSJ-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/Ext-RKSJ-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..ea4d2d97b8bc1df2abebce0d4f8c58789f723eb1 GIT binary patch literal 2542 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 n1WGc8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T>RM5v>ygN#sKmI}pMl|k4-f~j zG8_m1(*FERdxM!+_J#r3kw6>*#Nj|3#vr&i+EGF=`+zS48-q}zgLHFIt0N-=1WGc< ggIR10jYd!*Mh1jnBC~2K<36T-PyT%@0*w1a03e<=y#N3J literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/GB-EUC-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/GB-EUC-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..e39908b9844939a3c6d6baccced5771b8c1b1b2d GIT binary patch literal 549 zcmW;HX-^Yj6b0bvh=x@^fcgdPo2C^bbR!B*V$ecRss^bX`N|ESR}dF ziYT(U;(|CJ$SNud2>cj-3g`OeNzTp5Nv`@Y)R0Q|8Qq;-8R6G7pS#-U(?lSVit8fW zXJ+&VrU>?Qq>OaRh-LJIr!bIAivN967`mw&y?hMoy6|{!1{)fi!;OkfA;o61EZUXA zrr7tLQB^4WPDMWP#3Gg@qg3suI<?M`$=f?v}^3bnaxfB>#NYMU^7k zeoSNs$ZOA)=ecs1NV}1XlOHqWu#XgvM&(EqIpotqrVET-1<#z|xynSrSRHs#&h&%v z2$-k=lVywnrf!3m7?rPznS0=M6L@n5yv<|c;N2B4eVQ2r@7uwLi{Rr4CIdc&z>E)k zKFTD)>~-+vEU@sWv=U&h9?T1JMCOO6LVj&UT(|%hOPPn@+byu<2FpcEH(0p_R$XB2 z5EBFIm%;Z_%mCPE13zlP&*O{KFoB0odEc2XC8swyI@Z{ E08&E2d;kCd literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/GB-EUC-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/GB-EUC-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..d5be5446aa40898742183202ce0624b8acee5234 GIT binary patch literal 179 zcmZR65agU+P+63jo>8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T;qIjC8tSa;ktnio5kreT14D}) z8$(MN1LGbEAUm9ex5dqlVUJX^5<`m<8)J(L6GMwFBf}nPZpIb|AT7hl(Bdr3utyfi TmIJaQq#0U5fOIGW!yb76lc_S5 literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/GB-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/GB-H.bcmap new file mode 100644 index 0000000..39189c5 --- /dev/null +++ b/htdocs/vendor/pdfjs/web/cmaps/GB-H.bcmap @@ -0,0 +1,4 @@ +àRCopyright 1990-2009 Adobe Systems Incorporated. +All rights reserved. +See ./LICENSE!!º]aX!!]`21> p z$]‚"R‚d-Uƒ7*„ 4„%+ „Z „{/…%…<9K…b1]†."‡ ‰`]‡,"]ˆ +"]ˆh"]‰F"]Š$"]‹"]‹`"]Œ>"]"]z"]ŽX"]6"]"]r"]‘P"]’."]“ "]“j"]”H"]•&"]–"]–b"]—@"]˜"]˜|"]™Z"]š8"]›"]›t"]œR"]0"]ž"]žl"]ŸJ"] ("]¡"]¡d"]¢B"]£ "X£~']¤W"]¥5"]¦"]¦q"]§O"]¨-"]© "]©i"]ªG"]«%"]¬"]¬a"]­?"]®"]®{"]¯Y"]°7"]±"]±s"]²Q"]³/"]´ "]´k"]µI"]¶'"]·"]·c"]¸A"]¹"]¹}"]º["]»9 \ No newline at end of file diff --git a/htdocs/vendor/pdfjs/web/cmaps/GB-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/GB-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..310834512ffe49cbb7ca903abc2dc1aaa934e6f4 GIT binary patch literal 175 zcmZR65agU+P+63jo>8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T;_jsDktm|5#L!~Tz|dmH#?TVR zz_>>O$PQ=WZE>?>*dx^plyqWaY;j>?Xt8Bv*dxu&*x~@BWf&P+oTVA|$O74NKz4*Q OLrVyd4rO52BM$&=>M(}@ literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/GBK-EUC-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/GBK-EUC-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..05fff7e8254c995031783fb3b4892d58a6b176ac GIT binary patch literal 14692 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 U$d&`LBcvHxLV$EA1H&G90L*YQ;Q#;t literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/GBK2K-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/GBK2K-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..46f6ba5967cdfb381f001eb1193f17b43d943962 GIT binary patch literal 19662 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 BHq8J4 literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/GBKp-EUC-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/GBKp-EUC-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..5cb0af687ee20a10ecc367892ae49d7b1e74acd1 GIT binary patch literal 14686 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 literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/GBKp-EUC-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/GBKp-EUC-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..bca93b8efbb18a13e15025ad41d23db8267d2577 GIT binary patch literal 181 zcmZR65agU+P+63jo>8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|Tof+Gg1Hm literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/GBT-EUC-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/GBT-EUC-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..4b4e2d32294538b5093ed3870bb9de37abf21599 GIT binary patch literal 7290 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 literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/GBT-EUC-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/GBT-EUC-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..38f706699f395dcdad5c6ad93d1a9b6fe9f66c78 GIT binary patch literal 180 zcmZR65agU+P+63jo>8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T>FyMw>l*5;>yaq3a1ld`Jp)6F z9UDVS7z5)T2_QS1g}24cj$w~fvl2s#6B}cT3ll?&EhEDoX>P_A2OurO$k5^}&9Fxn U$d&`LBcvHxLV$EA1H&G90MDZ`>Hq)$ literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/GBT-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/GBT-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..8437ac33771536813228e3f9c1cb6c35af3acc72 GIT binary patch literal 7269 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 WM;6GI1F|Ee8CpVsbSMME9(e#*4Ku$0 literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/GBpc-EUC-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/GBpc-EUC-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..c9edf67cf6d640607080ad2775c14760df77dd96 GIT binary patch literal 557 zcmW;JSx*yT6b9g#5sk8Wp~4N)&xVRox)HTbV$ezus|KWvvDSQMS~>x=+B(ya0BUlu z6%kOt4Hc2GF1UglxbS2ABPP6unKL6=RYgKy|sm^&HD=; z+9wK$t)ehQepj)s%u_r}`l(`yg7UVH+^&(zQA3V2kz3v=XL`Ztad5W*jA@Jk##_Kd z9Ww~-#lii9U~)TSfvGcK8b{@WO6C%Hcmh1y4IY;=1Zf!{oti z6ubz4xoRc@UY-Q=dw_$U(n*6?$3RJtJ6^g;jq>$5#5V`P+ilD>@U9aqc)|M$rVo5* z2OmA)(*`C9J|6*Jb}~a?@jO@xfv-Cl8+_{m-~Hf66>}N8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|To({Gim?; literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..7b24ea4629d0d4cc9f0cd5852edde324156ef0b1 GIT binary patch literal 553 zcmW;HTTc^F6a`>fNJ|+U1WZdKHfIVU1k*BRx(Q8g4%)hO%E=p&pZ zbEd^7Ox8PjMK`8&BW>|axS~6oW&igkGq}l(87h;Uvv6yFZ!CT`8Fx4oMHIF4enru4 z=0tE`J|(&Hyxf(akmS7OcH5<8CAK8mJa(nqZ+l&STNO*h{HDE1f!7`2 zO)W7E7S4gi5O^yQV7GO1K*p$4;PUEKTm>RjJOVd4}m{N!QVP! Q2JBoE!O~)+#IZZH2g5hHiU0rr literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/HKdla-B5-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/HKdla-B5-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..7d30c0500520d563d0e5891c8f4781c61ddcca5e GIT binary patch literal 2654 zcmW-fc~p~E8piLJgoLoDV1iVG#EWdQB!Dska^Z@KEGiKJt6VieWR+b7OJVMpTBmj!JFV@ww9{?uR9m&JOC9YvJu_$KuQ_Vzd^3MM|2*fO=e_Uydjxkk zm-X}x_qVsU4JvaA3e;J-YIT7UxAZjWl(oYHgStHf%8Kshp8npRe(j*HB|8Flbt(V< zen8o;8_@Od`=42>(l)3 z5_3C7W8#28sxAh9N4WMd$)m11OH42hj!JPI28xLDHX45P6A}5PLQrD$ZsAaCQO6I=ddkoZXMn>rz{cbfRZ!j3W zu@jQ>ynlWKk~fPmdh0nz-r9=M+xd{Zy%(c*cv$c9u-@fi{ho()froX0hxHy0>pdRU zA9z^r^RV7;fy+Kf0^rgXkn_PNTyT*A;Bo;FUMzy-BHw@y6CnAp5u=X^A^C`J#vdDC z@g;uI4>p3um-s_o8iZk&^FYJpLX57&LUKie(Nz`PcC{OTs|;X1uE6NyDo8$w!03}U zNdA6O5 z0B)Cq)E~NF`W+bn-)ceb9faYXJ|MX(2jKoL5PO%u&s{Z6y*CGdAA5lOUOrrMuNoBH z>%q(KX8`GaEhP6laq^E9ApXZ*IRAkZfP39w-GcZ1 z*f5LIpX{hHKy!>);gx&0*sJYz)=EPI+r=(0R|)l5F2!`8f6%JZ59>$tNqY5!E~K=V zTNiLc`YkgW!xod`NL;gnjCYK`5N+346rMbn+FWm6XX(^4292RReV((`ImqQXdXJC!_bHv5U)?UWD{U!X6n!SL9x#vjlBPtFQT9el&rG6k#4*p2 zVM%hYG&OLW9L%vcu6bNb7avMKw0NTN)YxRx^79mE#^|#4E2O?df~~r zN72z%SG_l%O*s***ZJU~hG4y=V6w<5*5p4e{YT;HQ7>~yHd$itVWUh5&NyeUUgcjg zHDYY!P_WhC@4@audUp~1d7ro0v_>$!VWqRup*^ zG@Ihd^E7$(dgswfeU?6DwPBq(r-$EW#d>|WVUMBLH*9DQ=F*rwmMp76AmBzPvbd-{ z`UrM~p(|U+_DhVN?C5m+jKa9nsh~~nM}8Y+vHUq*G^_qfnlDpw%s&fU+I_IhwQob9(!YiX*+$GL+{kvchE<} z^e2(Xw3o|tByvl+PEE9o$X%aUSIvD*hb200lQ$u^I7Yvj*DvsL4eUVM?hyZ#(=BF%-SwbR>N z&sWihQu=VtVs{Pwr<{I1472&JDDSx02)CG12S|>J&OGMUP#zv#oHbA4y zGWT3_lx-`u4pUoGg+)V)G$p^3{yIv_sW>Xes3s zwsnSZw^U`GPd}`nA4dhof&%eiyF|0&m(Z^(U;j;DwQFggC@3`47%D;?LXj}sD4(ti zcNRKxWYQ>SyyJzCa;`Aet#zgz9t}6{rI#i2vO?llg%s9G57Rn6dPL&Nx9<#=imudM z=}HXZU?xq@4;0PRICnY~GtxkuE8VWU6LUuv0Pg(B4VEzHMpni?XO1z5^;Kp?5W}fz z{VJQ(u}0#kHH?}wgXMvgnRNSzYt_tfFe(@w7}BK8mOh<7UKvcDIY4EBy)$d5dc4Y~ zz92oNpc!euF>KQJvkPfwgd|KF>rA(&POqm~(*?A~FB1yG4pyG2^=~b6L?3R`GP7;W zlTM9%wu5q`u2ycqlQ)&=UrSdy)2<4y3Y-a(rH1YXM|+ge*&EKL$7^J>p(~rOFP~CR zCHb=1N`I@T(Ssv=g{EQ?@)i5CeTlZ!_8no|3O@Qx=3l!t>u2Alzg?jZo08a;+tQ7T z&ZV7>v}M}Xu;GqP&TdO8C-a2~d`(=Dc`2JD@GgoJc%#Bu#H!fkbd2trO7{*er=qDG zuOQ!B;;uI?vTkIX&3(pjM!LhBo?^ QxJF!^-VRzcnd;s4Uw8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T<>8%@lc?)ts_T)+v(TI2l^-9& lYkfwB*M71;l(nECj@2Kr98sav2P-`~ljyD=Pp1 literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/HKdlb-B5-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/HKdlb-B5-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..d829a231015161e107123e211d4a78110daab6bf GIT binary patch literal 2414 zcmW;KX;hO}8VB$j_OQsJG{|PSK#(=aRsp%;$|5LKBC^T_S%M&IO_arj-Z$Gz_5=fj z1VX@Cs}=3EQ`_lc+tJ!qJ5D>*+SPSz$IhI7m~(pO%=EPL&V2ZPdCq(8z3=n;d)?bp zHZnSKsQ*BpLb#={Fgr6RJG)Sbdq%os!ukohLN+89Ru6ZN92y-t)Txm5WCh~ELE-B;W z>=~{S^;T8=(q_#RJ5FO4i>c5VZ75m`ou9Nf8*`oVGS$>tnzf9nTkfR7MP!W81!^;V zwykXOG^!MuZoU8P5p}fETA5h1wR5Hhvv7sxWE7|U9cf4}_ ze82Ocr+9vyre9N~sWy9gv+J$tb5(N_svvFbeELE5|e?s^WIqqRpM|qx_izCj;nF%}(a1GS}GZNHzEwqh1&}Ri!&HKhz|Z zSW2ntIPEd7cLmYNA-B*NV3L@MPPUkeXu4bCiB^?qTB~$2O@K_U${6xr95Dx2kGzzx z&oLd-$5U7OjoRs~)mD0`w|~v|VxCoQNpg1wdB%Oc)&4F?uvugq-leYhSMR4EAEnp* zV$=<)M!IQfi?rS1`DId7YR)Iz@*=7gD^ur4noDzY5u5$HD)gD)`w`{X+w}(%ssS~B~R?k00w8Sw; zu|1#ONT5IXFnu}+D`Gc=vwK{Tt|CN`JYGcT%;$g0I zv-OML1bO-_y^KD`|Ftpp1dHwMrbs$z$TLU+)M8r%*XS~OJ%N7Ita*02nF(hHmqD&v z77sF_W1e)nV=>2_NuxEPj8_ZOd#;fQI!`P$OZ(Zw?%LIW9-6D#peJ;YKAz~La!+Yg zH}L*Z3=$}Sdnp8fj&m6UeslsO20+3{FjB_BXk{DEOF2dXQq@DEj=)Gg3W-LHkv0Sp zZ4E|j8YFB#M$w!d{h>?K@iJ=rDV>~2Af|02hwwWdYuuWlPZi2+}6h;;W zB-UJvY~e7=RtK_X07f%nNM?pHI#~mWJqROvKP0o8F`Dy(WUd0E`9w(OyD)N;LgL`g zS|E@(V=;10LgFgKXi)&kVk1UNd5|p0F>*^GSq{T!c^Ha3nV`VafYC}YBrCfxT1|yy zwGW4%sszBZ7o?wRhU9r4jGpg;7u!0bz6|7V^*R1NCQmF?z8GroK1*>Na1_Y?r<#9XpK*|}^Sc}@Yq*)fpvQXnKR(Qe2tekADiD5Q45N#D*l@9mn;ijuFUMo_axx?@_h9t9?U1~} z!|0U`NM7aUuO5Ts_r(~!wh@xonlZXm0Li7p7`@J6y}@CQVMkyjMZ_i8R^x>|(M2N95bAjRmK7`9#;2H+YG@II`@=)+x*d=!Y$ zM}3fdoPyDHUr4T(V{`*Ta-$QYPb83hass12wLx+-2BVu3ko8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T<>8%@lceips_T)+v(TI2l^-9& lYkfwB*M71;l(nECj@2Kr98sav2P-`~lkWD=Yv2 literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/HKgccs-B5-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/HKgccs-B5-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..971a4f23f791f75d4e604ad717735ee55529eda5 GIT binary patch literal 2292 zcmW+&3s{t87Cz_yhk+4LK)HmV!xluLDa-%_0}!{Q89xgv!bn_%)-tr4wyp+MR&IvNCGYw6h3((wIh9R8} zvURRQ=(1v9R}@;ik`TL!a#Z(9^u8U0 zgKvl1;C2j_+>Vvvj+y-LWSA!0DMa5MFGiq@?uo?Uo(%HoDZ!AQN{s4x5>0m_G3YKy zue*=n#Jf{S-L02?_X^PWUK!f%t)Nl&2jj&1NmAUeqQqZfG3FN~#joC^e$AB0y`wbf zUBFm47J5s3p|{iwy^8fR9ec}l=(QvCRv`8+w)<{L6UHVVnrUpxDnX;oPXnWEFqgA! z$iNXWa0H@mv<2xbg$x{_1GX?3wc}c^LkBO=xcU~zd~k+?4raE*fG>En91Vd`%pO11 z%rJ;wNnm0f+3&-r9e1A7TxRLNv)yGuPOvacFpE!oaKS*R9d})V4~E(C#VWYD!k)gX z3|%1sx+_f6ToD?&Mk2VP2wa5dvT3?&H0v=MxMDSL*EkcnlF;l**1IQ*?08$Od;h=gnkWrnKzNb7v2f4%>%n?LppLuwh(6yYa-H zw6MjdCb0mc~m!j6(Xn<%bB-I)uMQbgoP4QB+`IBnP zm11)&sm;r!_)Qk6EoLdURFe9wO^TtEwE){TNb$RQq@E3t z;@JjLzvn647D#d1@*!?JNU=Sh)b>?U{2`arbG}kMx17`;$4c?Mnbh+cQtYsi+EF3J z3u&ZY;JbDzQoACg*tM3_i>XrV4kfjFt`sjNlX|IMia!;QdO1Lfmsio4J>wx|Pq7qx z{YdSdEyXJ_q+VGj17FPq*i!`KUY$>BpGk^+6{KE^lH#=ur2Z_V*dIZb{UuPie~A>Y zPo|jHn*jDZAn|}rS`W;H$OCIA^k4|U!FWa-q#sO>!3P@v4m3ja8-qx_ktoHR0i@o{ zlj6|$R%tm@4baj6)qz}&iWKiXMC!fyQoNr+>is9A_<)=BAvfzoZq{G9Ss!t; zKH_G5%+30koAozt)+gMoPbw+)s14vm5llFmCsU6hz{yn5kMT-5#uM;qB&knJr8qvB z)N!7Szt5v-C-{RNodY9Ia3N1Lkk`p1n0Ior6rTl=`m8{TQ}ML$)GB~e{N?;SM~cs9 zllo$i6kjYO^^a&NzVssXbp8A{+& zDOYP`a{D;2wA)FwSIN=WavWXjJA!TVMa(XDWRTY-#ej2swrOMrfBR!b8ck6#XZ%bRP# zX|>~?1^R#E?G?NC>F#`99!0z$ikav0LRrAPkWpencPTH3GF}vm7!_=*)J$#%$F49% zxmO~3hDh=RGAC=`NkQ;TG=panbE=M>$;?w3yevI}&@&x1kJQk^OUIMRayIA8W;vJr zb6Cz}Uq0tOhPtPS?ekgZ_u(mJR$8d1oO2r4zm|EO)I1wd@6!!r16b%Gfwd3d0ynk%qAp{S2oUCK%2jX)&DX{IlkK6wz=N;1I)E zhyjLkG5Q$J1`0KtPqCvp7)Kk;p=dFhr*TMgmh>^2=V7wZyomCRmSFTXT9(L%jTZh7 eV6=`zFQYYve2mt3Of*_2X?{j)l{Um^UGsmAm(QgD literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/HKgccs-B5-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/HKgccs-B5-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..d353ca256b54236a4acefafdbc08e5b719892014 GIT binary patch literal 149 zcmZR65agU+P+63jo>8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T?ctrCoLsEyWUA|t$g|L!;gugB m!)tv;hS!D+jEzi8jE!tS%mu`JKr95rVn8ef#Bv!7ulxZLvn!hb literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/HKm314-B5-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/HKm314-B5-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..576dc01112bd7f28c30804661f546ece203c53d8 GIT binary patch literal 1772 zcmW-hX;9Q>62|+_CEy8y9C8dzGJu2|ML=I^i69Frj-ce=RRZ<=ems{ZVz@n00OLs6mXL4yS)n(eWt+g{b8nYHPhBhV` zV~s&}MupK|AES5C?@aXe(gzPD%ZWYP%&}bo&G9<5Xj3W82dfrZw7-Togc}@{-JWu7 zce0!suUp)3Nabr8nU|gmbTq$cUTuyws~vn)ihy3niMSzcSCUz+KiC@68g0lk?AJ@h za;+}3ccrOb^gJ)gEm0~D%SBnvXkD!LvKuThq?$G~d6{cYDP`!Y8Qgg?O0Q~MI<&j3 zWZ6MN93R;%yHT`+! zWVu+bG87HI+*#~p^c3-5M0_JTTK@HOFq|re2r#5W94vrsV60Xttx3ODFEG|GHYRLK z8~pu{o1L9&S9w=`cTV>qTbt(U>S6aTKe?bMZ#c+M))Cgfsx`&FHMJ?dBl3j%2}P4% zr&^b;wzU?B8R-DeqQORPa#k(3mi)5ojjf$==A_QUo%OwmW#+BA!tui4Ej_lKFP~k~ zRoD%SCOlL=){%dvtdP^Y)-F62+*3ECv3=oahH-Vr^2y-Iph>0Kf3S3{cywQTWLv1N zPPuMi?Lg|lMzxLgQ|a+akRJP~oUE7TqZ-RPv>iFkRA1A!-B6--uzn%7DFk@DQ@mx% zUVwiyfO&fn*rRf@UVBo~Q{(2`AK4$&?%YB04u4aHIc`FERBhyqPL0YVTlzAMp8MUc zkEGvRM7|t;wud#O@0??=h#hC-(I^l^v6QKYT9uPLM8C)i6h@Ex9?PoU&?*KSV`VpIa z9{FTGv3EBje@`Oz-Y(?t3;+E?$UjIV_MsQ@4__ko(Hi6*RTKMzpv%XCE*}fJ{87;5 zoS@4&L6=ViT|N30u;xjL70l&-Q^Dk@B{z?qwTuC7IxhwL|Rm3b2_==?rz#@TUO(SMa zM}F0r*wrHBUjz~R(jNJjFB1C-k$KhBe@rJm`4MCrqf<8Bk$op0b1m4QS%-aqC z*TZ4aZ9%WwdvM(yf#n+n{&#i}yK@*F?=r}~yP4SczL@rXF2IxyiI-h}Qi56<9Fqia6^HFzX_;UMLNmXBpVe{_ekxKy8fx literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/HKm314-B5-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/HKm314-B5-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..0e96d0e228e0608f77f035655140c6a235d4ea56 GIT binary patch literal 149 zcmZR65agU+P+63jo>8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T?ctqkY-pnEWUA|t$g|L!;gugB m!)tv;hS!D+jEzi8jE!tS%mu`JKr95rVn8ef#Bv!7ulxb;p(_9Y literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/HKm471-B5-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/HKm471-B5-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..11d170c75ed8696f0705f9fb9f5afcf3b0aff4c9 GIT binary patch literal 2171 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 W3S-b|;bUNIW?^7zv1XQNu>%0E(j#{O literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/KSC-EUC-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/KSC-EUC-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..a45c65f008e7d6ff34edaf53af15ea471d4f6d90 GIT binary patch literal 1848 zcmW-i`CC-i8OOixy)y#?3=?IQ2uv?U1Z7bx1Vjvs#IU1aP?TlFfka8h8Nemd^tlqE zY0{)i(l!C)+;eVZ(YZ5oO(85Me?Xr;PnRG1OMmDOZIdqcZ|Ir+a6jjH&vMW5e&6?1 z{(8DH>z9aSZHI+weYU+K>S3_5VzP>wC)4?~Vd~I)yg(5dXk-&8DYE@eE zYf=pZr-eS649DE_8slzhYA6a`Kh#!yh# zPV0XC#L&G|T|0VjoXY3+>6&}a?{v>~rR2>Gq~^_q^n?C)Q}o8}cRTbW>U;rVzKBxh zi>YhAOxK3yXLRk{dwqK4`TGa-3g7)%ukS(O{pz6yO>*%4{Yktn@#6~;AJj^Gn4LsK z;wQZlA5}?woRP#eiJ!hI@v{RGKX)W?MdBAPOMFt4#H_@pgA%`dN#a+zNlZ)p`kcgP zH4>j^&Phz_TGc{3z_Q_3xC1N>!@KYf~RQ{cH^jl>Rs=Mg*TK?ST%UH z!j6I;13ON<7Q8-O_D2J(mUx50>Qvqc?gwiCKdrJ8;IF2!QxL@pYbWtNh*GdFhd2On z7_6H_rBl=>q7JNw#7Twql4u6&gYZMh^Y%mZtKu~hmmo$}c3u^;WD?j#GF2xV3^e`8 z7-FMRAVw2l3?rM%7h?xOJYUyTUI2L^IOL7wePm~eY)8?<<=f`+8EKqBmdKE8Cu)RG z*UH6N;BgJ|#9i8FW=S`gl@ed1C-H`^l{`8FtQMp2(RJWa1NN=BaP^Y>Z7;A^E5BR1wr8!54zIOIBLe5zOHI(c4R(IO z`Ij%SJ$$blJ9TqS*gW*085;rp5VqRGd4D%DqE`@&P&7om%^3}YcOZI;c$X`B8@wkq z`Xlf@SgGLsu-xG16)O#VK(jo=2O<4v)qr0P*Z#u*A0g`qcz~>9;8z^haqu9l28B<+ zl3u^2SdGN5E7mFSkjrWTdl^<6@i1BKV9hS86MR~+`oL$%dJX(0Sr@=s$QlH{1?w{S zZL)^I-v++}eizmV_$;hZ;_tw&CMy6zu*M)1`9x%0g;2qy>|TL24&iiI6XB9?4Tu!g znuJIt>js1yA{|yF>2~2EYYHOMW6eN#5mT`{p~f5#dmyruSSmygV(AdMh-Hw-qnHPx zAT8#F*ssP4APNyHf++IFiV-b!#j3-e?~K-1Er~O(*epbwl&&MLLUbUWn$%!i?%hf8 zG>ERS`=5q0o&nLT#`i*;EsEzt^p(etKC9i|IrD%mfu$sus0J}tXF3de-=fli` zT>vx3VZTUbzGC}eN^?KiCB!bf?NXRUF6kZ9M|LetjqI0TexK|HGD|&nBbjBe+hJCy zc1OVd+)&KQ4?SQb@3p|F)BP~=yf7-#U`)?|%^l||SZ2R6r$vNa)7#a4(iw_W7k&Y_C! yV!7M4%-TEI$l7s`XGdn5p&eNauv8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T=^gB>>l*5;>yaq1a1rCa3Py%~ zRSXOV8JL*%RRh^|EZqC*bs6?^H=8o-=V4>q&&$NHpP!LozW_JuenDx5{o+8j1Q1I~ IGw+uI04wP+sQ>@~ literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/KSC-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/KSC-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..b9b22b67879d4043c75b617a24f96b0bd47cf4ca GIT binary patch literal 1831 zcmW-i`Cn648pfaZ-Xstpq{U(4L1XORb!_ZPeu>guX1 zE>>69d7H-P?uESmXY&i8*?Diaa zWmRWeOKZ2kmB{DQ4+Ft#K3^cDYuEJ_{Yv0Ps;*spF+pX^r*zG^++uewccpli2U0!D zbNbnqZ&UP!?r%Hv3+hTfVWp5#R*I-=rBv4fD~r0;_nlv_xb^akUhaLls3t;!n0D?n(UlGl{m8S0;@K7)-O=bdYi7Lua5xhgXmqK*0npY8-Ul1P&RUd)G>*DSCG2yLGDwfC~usdX^b~YGn^!oyAR0?FX5!f6?HkU8P&VqQJuBkj9@IxPdH@A=^$=3$Lz~iJQRNYIwwRI%Q-@Hy9NX|4vWhfvy$5xdCh!q2SFl z@TMN8ww!XCtzx>pC1s{=1K1is<+e?>izwK>M9%G-x;D6dSN^sa*r}1<6J0y8Q%mP} z+N2SIedjT-JByqhshghNlYkjU#;(*<`tF<@=||)4b2+mWAHA)Y=Xl$pYyNj-l=|-1 zda)zw0Nz!iKPsI+Fb*p(Xdf!U;qZ%Y9Mvv2V*lK$ChP_Eb2w-ZdqTd9=siRu6rCg9 zW{-x!I}m+Byvq@N3f_|%{RZ3*GZnlarW5>@Vy1x)Xr_z!AfzA7YVe_O&4dqpgv<-z zK{79a-?N#Q!9y_X6+Q`5dVNYU8;DOU<~8s+huIAF8O%1~VKUpnnjB^)_<~~k!57K= z68tflx51jp90Y#?a|rw?nE~*xz@LFXhdBbi1ap-5*RZO{3_=jhF$hII5t-u^5^UTs$e|mZF+75UFH7f^b5l!;B=|E?i{JLu9(lMF=-yDvl@Bm<{3tM3xdu zg~&lH9U>R83=$rSxghe>Vs41jYAhe30I@=dLU*hP(Go|jD(t%NYmL>AxZ#K`L9|Kf z+Ttoi2jZzo4aVi(ofJ=l=n6X@`0Vivh+Z{*65?iIJQu=W7Qc*Ne&vXdgfpgmMezy5 zrnQ6vBIrt#felci7Gg|I)Io%hxC${5&YSiriAIR~lxTvOLPCbj4A||=#B~x6k&r?3 zNJ+>D3Pa2*i2)J|YGM%L2_=RV@l@*EmKcS2UXlofOJ;mFD;Fg_ux zo{SQg)j&omtacdXs?`y6&iWLi;zt+Q$al@ytkqkv>2YJTJPn%*E8SR~Xu(>;ax>N^ zgSOd+*qQvk8}G&%5KaGK5nH3d(%DbitR8Z|m(`%|eHma4Lwi3aL*yq%65|s8Y1Xxm z_q=pvuYuIPr@H3eTcXZ=naS<@cjStGwC>B4`qOE+f0juh@bhI^C=Rj+2NS^l7*Y-< zWvV!sqs&7GIS+HF{IE#wb||y=~ivf-csQK7Np5q&`=XgZdQa)Uz L{tvCv`X&E=BnB!` literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/KSC-Johab-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/KSC-Johab-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..2531ffcf41acc01338f781c845c7f50f62fcc84a GIT binary patch literal 16791 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 literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/KSC-Johab-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/KSC-Johab-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..367ceb226ab1e33624b30512716a3b65feb5a100 GIT binary patch literal 166 zcmZR65agU+P+63jo>8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T?H%l_>y@98n565GC~(t=abE=^ z!@ep8hJy@DO#7;V>^c_ief7Ew`?(uU8TRwAG4AJOV%X2m$gp34n{~gSG{b&zAX@^6 KC3TtiO923;%QA`p literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/KSC-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/KSC-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..6ae2f0b6b7238adc67bd9231668d9853ea3c8e1e GIT binary patch literal 160 zcmZR65agU+P+63jo>8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T>K*K?>yap+sKmIhf{|fg6$8UT z1}3I`)j)O~3-`WyU55SK&87_ddDs~D^D;5)=VxTtFTl;ZUr?H1zc`RB0mPEh%=@JP DC895z literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/KSCms-UHC-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/KSCms-UHC-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..a8d4240e6adb3ac1db859085b769a0715be03c72 GIT binary patch literal 2787 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 P^z)@`@$;3W7gGNZsUm@q literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/KSCms-UHC-HW-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/KSCms-UHC-HW-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..b655dbcfb123ed06c7eeb87dfc96ecf6759363dd GIT binary patch literal 169 zcmZR65agU+P+63jo>8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T=N;^vTdW)E;jHTsuIrH~uy7IM zz6wT$eN_w$2N{@{_EiJfbu8Tb>UA0Rb2pnZ?B`))+|SFzu%DliVZQ)3>wZCLhW+9| NwgeDMN;B`50suw^GhF}x literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/KSCms-UHC-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/KSCms-UHC-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..21f97f65b4a61adfa13f55d5a096ceab45eb485b GIT binary patch literal 166 zcmZR65agU+P+63jo>8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T?H%l#TdW)E;jHVCD6nu5x=3`|5QW_H#FzGVJGJW8BZn#IT>Akzv08H|u^uX@>pcK(+)B KOG-2EmjVE*uriJS literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/KSCpc-EUC-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/KSCpc-EUC-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..e06f361eb6d429290806b9f9cd7a0aebce22be4d GIT binary patch literal 2024 zcmW-i*H27iO?oT*=I*WEh>y zWZwfw)x9+eYFE?kLGTF?ZkWX&sp}x1yUFzOj=XcJL{@hkG za{2n`g`xA~u00hMC53xSN-A8{=SKQ{uJ-F=KpToUWs(J`+TmV;>Nm~+UE9J5L641UahVi1pSv>ge>ZlTsm4xiL@ zUR92$HR^%xThXer_tqfgPo=AheX7Q4pK6Lqo$8EEof=W|YCeim-OV30sC(q;48pXN zqNcN`X*yR`x~C^prS0Q(weZC4ooa#W_GE(VPUh|6?mJat@RRKk+z|NoDS=PR1U^fO zU{v5ctpeXI68K(R1Q!Lqe@x&9I|Y7diJ)KLM~4M|?2KSi;3r)IKix0zvy=$N1%BQp z@QV_GU&c=f4691fOg*3_!7_6lnC(Hr%m7Pp@|W`a?N=-A$JDlSJ!h)XdoRZZ$n^{es8+ zT#}v752-uc&wFI&i*4fNMWr0`;%c*HL&}ghqK>#XVrBcrG0C>kCRsO5OSI8jo4(=o zxHoRf&X@aJ<6m}q+%E@Z=c{aWN9ik%+US0DMRvX}?TC5Z=5fF7mYr`hI^{PNkTyqa z+;0xbDQ|8R#BXldVcB%myEk*P6E^$T%kk{2-~L-2^Xa&IF=;+SFlD|Nvy-v&??TIV z&A0h8ey8u99|KE)<|b_?SSo3GR+a{>0D(M-Il&ZYyJVIPZ8umhv_fJ9(2BrzOIk5l zv83$HjCKe-OVa9z?*Pw%)@0#3 z!FNMzCSGXeB@!=()$LY1y#wucNAF2Lgu|oz`aVO-?xix?q}1f`yvwL z1pxOuQM6zY?F2FxO3A)(TvfUj&WO*p0*hthxvDB#7Rzb(Vx2HXVO_ieJa`Yui$dBh z54HlPA8`+a>|-B{h>;FdJ-8`m*5aLqmEs%^8&swJQ9eaK`j(n)3)p~1Md%1Py!6Mv zAe`p4{^@h9_S|a5)AFe*EbqEgjVE4p7gp;1sejeu0{sY#QecEwoi*SGYe3*Cu_jyK z8dyto;6t!>n9*PzFzsL`Br^uAQ!yRHx*+^$mVll0m;Fr#>m_p!n3v2_uzriV56lO% zQes0eh1V}irkmI$$vgx$VlzF^4#TV?<|nfrTD8q=1RIykcCZODPl8<`^At1>nO$I4 zVV(uMMrJqI4Y2EAH(~aIO~ULW_5s4hWO~5~<^Z@Pei51Hz-4GccJIO*1h-nuA%FJQ zI(U?94ueONc^TXe9t(3c;&$#Ja|}G*VNQT2ASh#PNDf-Sw}2-~!D#Sg1Y^Nd5R4<9 zNg$PYdy zg*u6k%b_mts}$;y_%)$(OQ;Y0W=_cG&-u4*3CF^)!HA~tJ1}D8@K%^rWW+%`L*Wz{ zTPU0cBN5>Y7|E9KHZszrunUGTw^KNqw6peb4h*MFc*k&2xD19u;r%eaLE%a=avWhd z8Mz48!zhr$4PN_OT`~$kb3p6;*aN*>t%07J0KFgv`uKD+W(I38>z?vpZpdqS`yVV0 zebS6a18xLjKb^q+K5y<@qb}S+36Dj=s(73agnOVo9uOh&g)M?}0>AR8%C;viI`G6z z@{?<-lJI1b8ka?}u`Zt$D>_iSEVBL=+mZ04NDAFw?i00aC6TZ)2rLgEYGp{Iij@(H zU$v2aHJJ)lv&3$zqOd$oLgG^kIi8A4)BRM`E39RbXU#&XYez-TTCb`^Jv&Gp&uWGB LRYsqvzytpSc&T|h literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/KSCpc-EUC-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/KSCpc-EUC-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..f3c9113fcf0b02e1deea8246bfd27408becc8401 GIT binary patch literal 166 zcmZR65agU+P+63jo>8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T?H%k~kgV$(>a6RLD6nu5x=3`|5QW_H#FzGVJGJW8BZn#IT>Akzv08H|u^uX@>pcK(+)B KOG-2EmjVE${4#z3 literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/Katakana.bcmap b/htdocs/vendor/pdfjs/web/cmaps/Katakana.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..524303c4f0c20e6cd19aa1d35805e98c2c05cb7c GIT binary patch literal 100 zcmZR25agU+P+63jo>8J;XlZGnYh++xso>knU|bjRFGekSdyBe y$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC8-WN55UU{bJea$}HdW(NS2fFFMV literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/LICENSE b/htdocs/vendor/pdfjs/web/cmaps/LICENSE new file mode 100644 index 0000000..b1ad168 --- /dev/null +++ b/htdocs/vendor/pdfjs/web/cmaps/LICENSE @@ -0,0 +1,36 @@ +%%Copyright: ----------------------------------------------------------- +%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated. +%%Copyright: All rights reserved. +%%Copyright: +%%Copyright: Redistribution and use in source and binary forms, with or +%%Copyright: without modification, are permitted provided that the +%%Copyright: following conditions are met: +%%Copyright: +%%Copyright: Redistributions of source code must retain the above +%%Copyright: copyright notice, this list of conditions and the following +%%Copyright: disclaimer. +%%Copyright: +%%Copyright: Redistributions in binary form must reproduce the above +%%Copyright: copyright notice, this list of conditions and the following +%%Copyright: disclaimer in the documentation and/or other materials +%%Copyright: provided with the distribution. +%%Copyright: +%%Copyright: Neither the name of Adobe Systems Incorporated nor the names +%%Copyright: of its contributors may be used to endorse or promote +%%Copyright: products derived from this software without specific prior +%%Copyright: written permission. +%%Copyright: +%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +%%Copyright: ----------------------------------------------------------- diff --git a/htdocs/vendor/pdfjs/web/cmaps/NWP-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/NWP-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..afc5e4b05ee6f4be4f17eb616742b59aee4c5ac1 GIT binary patch literal 2765 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 K#KF2yhX4S!xj~o! literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/RKSJ-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/RKSJ-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..fb8d298e9bb8e090139bbc5e958f11a237672825 GIT binary patch literal 534 zcmW-dVM|kS6vlV1!_6jlIAtre^(Q4FZ7qdzD5oo@Ra#hW!6IgQZI@-tuH22r;(#pN zc3YNZS(fEYv$QPBvQ!BADC=#XqScEBemwl(fk!HbNFU1>Bk}7gaWoL{A8z;i1EMFU z4{IWvNv5>Xr0BhQO*h7LLrrNh->#lSLj3oW!qAeMaqC|h)->Tea;}$x{o$YmELjUc zR{7a&frS$QWo5ftfMs7cJ_O=wHmj={)2+bMHwYicfu9^8oM{H0876!>2>i@TINJz3dxh|M1o(xUaIPMBE=2h9Jn$=- zaNYqt-$(7G(`^H#%Fe=N;MX3)#RlNTFyYb#;5Saf(o zt}4K*<3p7z@0?PlvV!j!_(PZ4@LR#PPT;jP;l~v4rw+n(Kk&Lv_&EXmrIm2wAn-<< p@M{eCTQlLN0NxxV{2m4V(MY(p8+a>1xP1xs@6@aCX9<2q{{oKurl8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T7UUi5rR$N%+UUr**PoYhZy+br u-e4w{y8J;XlZGnYh++xso>knU|bjRFGekSdyBe u$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC8-WN55UU{r`}Oa}lMG#?cJ literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniCNS-UCS2-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniCNS-UCS2-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..d5db27c5cf1f5b0e66e16f6314d042a4ef707222 GIT binary patch literal 48280 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 Jqc2`({U4}20Ez$r literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniCNS-UCS2-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniCNS-UCS2-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..1dc9b7a21bc59b6540d55b3d8933e5a6ba9f8947 GIT binary patch literal 156 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�ksTLal!IJ% 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 literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniCNS-UTF8-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniCNS-UTF8-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..22a27e4ddbe26664c57f778a864b6872f6c2ba03 GIT binary patch literal 157 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 Uyk~SGTv&9{NH!N6NOao&1LeutHUIzs literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniGB-UCS2-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniGB-UCS2-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..53c534b7fecfd84e465c8943fe3adf500a4444f4 GIT binary patch literal 193 zcmZR65agU+P+63jo>8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T6PlOl?xY*)9BicPk;tzg!q5^X z$j}nrT*t6SW_C0~i#-EFiybR_iw6T^OAsT&9w{L02E+l)b2AxQoY)v!T$mVIY=JV; k+>9*_j-3Bx_sB55H!Wak%8eoOCt*p0P(FjU;qFB literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniGB-UTF16-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniGB-UTF16-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..b95045b400a77419292cab245f9f66f6298dbb5d GIT binary patch literal 44086 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 literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniGB-UTF16-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniGB-UTF16-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..51f023e0d609798e72d46bf41309e092d72ccb07 GIT binary patch literal 178 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 M|Id0?+kYqj4{W+_`v3p{ literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniGB-UTF32-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniGB-UTF32-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..ce9c30a98541e23244876fef9dc67c2639fdd746 GIT binary patch literal 182 zcmZR65agU+P+63jo>8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T8=9Bt?xY(U;%025>)|ZOz@Q+~ z5+=wnKgy7SS>U}{^W5C`hFsi?@2&V47~dO9zc*q8(!A1~j0_C#SsGb*lGzv-3^>?Z aJQx^Tf|wXv+<60%_Kq6G^=0>TfT+@BhdeDO?X>hUuHu_q3k%s6#2V_#78KN$Sf%!F%7O==pmDHH;&t; z3m{IJAk*)kz+9P(emJ8iG8nJXZ&kV}^r_alOt79epVPU8h4UwE_a_&ete+mvo-|>1 zl6KMOgO7~M^m&`C6Bt)}2=2;DDu3K(T4_u*rFv@gm;FH0XQs*IOi-w}FR0igQ4rK1 zfF}pZkNyq;SIHOG34-7y12vwPtCc!sIPPETa9Ia}y9fd%$w3h0oYUL061`j;%LJ|a z7g_ng3*@++fgAmp6X{-KFa{c~nltJ{mGm2)03AmNx>^x?LF@X3t`oaA{yiDJ!FZX= z1d#(MRN&^vML`s~T!rgBlfu5ZpH-{1gpD6(8T)Al8t3+@%2t%^D)(>LcTa=I)E%*1 zDT7kMyhcCW+|bWv{m<+Mw|mp?y4;&+i>M0f*-{x{2x(A#8t_AK^9tvw3MjhtnzEG_ zdsd~j?rpo;x$@aU!){%G`Rw!YPv`e8HOxf!fqjpc8jnmUn^M0SySJeuj)w3ct6_T8 z+ScO@D{P+Dg!-wL%LV=#XRKjriL95sqv#mZA(UOoPB%_6`If9|xzsheJ3aqU$F%&= zLbV~re$C+5ysK(`&6u*3oWs_Hei8gqN1eYjp;l2D z^t!jstN*BRzb>P4S+4wp=^sp^K|IX5HSu;tO~~zuc%Z>8e|5u^{HvY((P{kR5;muP z64&8+T9<;uQ?bqEldDxR4Izf)PnT!vH@!T5>zK?D{CwuUJ?)!ywR`cOM{p*77p2R; zYFPZiA&cwC82h>3dEeZu%UYsqcPZ553tz7NBBa{$Re!tJ*jG14nYGWB4~;{YPXqN) zokx>=zj&0@xVJO-tAnN$&Mp7g_))-z5xS0aUCm|Z={IFJM9fMvoG9DY6#UOwR%Y63 zkoO8&uRmw$(-;7jUxUUes)iK6GLKnU?r*$;6&pt{TQep7>B;7+D%=lBkcozO(mx4? zwn#wZ3HUl#JMYg~kFa~Qep4Wf1Fj2L1Y~@`E8>kovjuCqLVuF01?N?T&PUMi6+v{B z3|?SPky$2z{xs+-&MGVl$Q{G=nJQ7hqoVl&*v@iq!Nf!fbe@14Am<_g~jCC5ws z9WH;-e08AK>&Co}INj75&%#YfnwNw1wj*df^<9W_{~tDesV-5x4~S_E>E(xu#wEGG z9PF`QL;VJ{97oHs?_9pqym#`w6Mvr47}R*ke&NO8?|t-(o0cbyd3i@)GVdGs@$!$C z-uJ5BRdVoC#fM6p(z>!a#F(6O>HEF^9gJ$--oNccbV1Z$wz6x3R`c>sW#d_B7Qnt7 z^4EhQ1dfU3AYPO%t62fz%<8SuEu;C})xEM^%U|BP`Fla*O=G%ia(I7t?Grb>--nrh zxmX#}v&git^862hACGIA)P5mXUOHbZzPwx7xEtQjgwK)zFD7}syj%VB^n;=OfZoZ(Ey}Z}< z`(U|@gIvY{!y!ra@_uz$iaDlv3TCf;f8+ZbzM4?7zIIpbPFl|U?Nworx09xJ|Aysk zb`zu)rZ@h^}4CGsz8{}Nerfj<90Z;R!Zle}L($f;V_7}7ft zr~hGQ+g6^XmGVsQMHG*?m>_Fkk<9(gNC|sU>OgnVaQnJ z7;fIm%R+^k+0d5G1W^N=$)R`;ZQFz9-=AWj(a04vu!s7lRR)j$@~xdzI}vTy`%k^l z{IKkYrC&yTseR%0!u7=%t>WcFN7Gt(p@8b`@YfxJArR2u4S#guhTtTZmk%2pN50?i z^W}yUeF@c}wsB4FF9Kgoei86;Syd2i_QTty$;w(cj4({3)s^gABtx`DYK51Nj7>3$ zB%VN1c%*x4Jl*P%vm(AS6-{$qY<#idMdID-H#01nd+T41`(o{jWUch_QCm@lU>eKJ z60@c#ibrq%sJSU}G&>6RRib^pD3@GEFSfkBR3S2uDI}R5!-`Kz*~gPKLs{1Q`&%|N zZteBBdj|8jy*TqCqh`WaahQGRr|nwBP*!Q>I4Dbn`V{zMCcHS$TUWs^O96A$Nvff& zrl#%9*MGY5;`*5Caqlnc_Yno{?4hi?^@$8)SaA@pEjuT)PlonDVFDWum9wSFsiMw@ zV~CIDi=#fqn;=_ma*cwQjV|IX9%rNy=U3?K>kwPi@wY(2isV$ zyxmgnLdZW1xP}>L%l2S|c?-8M6YMMH<}< zS(vNs%!J%YTGfyt|M?cd1tev`LRD_2Ja?6te}yXu_9(UDkfGq63+*3ww8dwtOVK<}8|*{Bre|D?jX`O)(bOJ$T((DD(#|+}_7ZTWr(>RkdE$q& z^G=TV{Y~8-ZJch~+wI?T1TCJQduhFgELpZOZ~<zI(>gm1byZb^4o*{1S?et?1bD z$?>j@XkCeU8%ICd*W^ylV(D*)%->}ghhfzr`JR}yA1znWa^;ir+HphHtR_$B-3}Ii zD0P<^;+cIXlqGP75{%xwrfn<&5>5F6FL-`~#SvOBe7O!+6kNWVz$PzE6lH%e30w5|s8p zxk900pi-$^DSWGBGLhz#T~T!MKNG(_QXgb@HEPN;3jLZ6Xx)agTWu$x#~aGWf=w=;Ku_^Pn^hBO0~~J?X6EIxE^D=3Zhg(`W^3_-M6O8nR`*w~-OtAB{mt>LFY4 zgM`kr|K*Fih|f3G9;-Q9lUaY(5c^)NcH)q&v2?4t@`6IQ5S-hEQaRM@$1sbpc#BrV zpS6t_a~3eu2{0WOb&H`r5^^^)y%zdixp5z_pA7mFtYiz%2^D%)2|X)S6>`w+g}m|H zDuXIPD<87eKUw5z-YeLraeWkKnkTZHM3%FjjLX*W-a$MtPo_}PkBch}Gbiiu$=_}M zpLzc}^RJ9QN`DmpC)sqZQk{36wlpU`sN%9=ZDYu-$ zl5{NDh$S1)x%kPJ+!eJO4WYFsYSaER@v~LAiC?Qeng7YWua_mc4CQn;rdOYIPBjO8 zorxBgg7ud9zoesKT3O7ODW8OpKju6t-G|!h*~}ONwV_b3nai2;8mtHFLHWQ!?%2dE zqjr{C_B@v*Yk$-X&Axr;hW4w|_Pu{}{i9pX3%ByMd=|7Hzt~b>0pSOCM4;$8!&A-?z zLakWFc2yHvhf zWuMEc+<1N%Hz}a_4CKs0t@*r^J(aw%K;N#At5q_f^sCY^g~|m2gt6d)>!`}5WRrjQ z{p)-**+eTCkS9{fH=27i?if!OD1vH+3T^e#EpoK4L(`t>_?AS>+x=&cKf8ahV&Jr8 zIR)dwGDjpwOo9*QOWxoKAGpE?b15&{PLrJ$c66szo+;Y$!BR9aG{NxV;YDbSzM&z5 zFC456;m$2^#}(c>3txG|2Mg&NMOo%WwNXuq52DZ>jrJ%kjI2wkJlX=<8AC<(_8H)u z0Nu&({0htk$7XP(a1FbiAl}{rGAb7e=S$5ep>QTNXF}~7ut$O+otrL#GefYDn&~y)F(63B7u%4(YW6bL-DGp zS_V$$@q@(>T+B3fwjEeGEkFR2B%m*8_^M)J)?a`vZ z$}d8B28K)QMjSNAm?MPOX2PpM(yI%o;!#K{@m?}7UIK=lkTVUsSM%nptRfR^8fe+5 z%%8)ZNl+QhDpzB8Pb~Ckp?n;ayF=YHo|6FGnb5xvF2lfjVG3Kq6~ZgK;FX=cj6roc z8<-<6nL>+QocDCRpr4^K#Ou`hIJSdXj*xjc9=y1MTH0q0uI^+U8V`4}g$*hfSB>Yd zn_tq~p47MK>8_CrA71?M!Y@I;%=~ckhnxNy`Pa1s2AqcWbSSwhl%&f!1VLRI)O)f? z1VEgo$J@ZXUS^#_zmz=sAPi#^8by-FkhA>h#9hs+WvvyEjoPjI-14pEc8l_u}J^}$w^ifr6PBNtUFa>mlm4z3)? zFeRH7JWsn7j^(RgZhyA^L*ZYl+HnKPA0GQ=2ZgoLM|tja>oR+XoT}jBNmB82?ncN- zMTt%rD$DxdGC17E+0_*B%4%OdRU7uvxR3ll@)+16uU-A~1Bc0_ip#i9@_T7L6t^&H1&Kdzd8Rr3zovh6<~RPIN{vf| zX6?=WZQxZo5Ls8Yq&$cof>bq2Z`BiyI=LWIvRwhewm4b1BrTp*svpkJ4Bx3!g;+=XxK; zDHBvWKRoB<=jBN@qtwv4S2Y&7VfMryX8bVy^JJHrg*A&lPx(Cg^CZO0w7yjXg$cMW ze+m>V0o{HVouJ4~qx1s9VmWYU(Q(BhW{J(HT zTSA-m3&j_)U&LV9bu7E~#n?74?X02dn=PxED7a#5-z3NxE3Zi6CEMZNRPN4d=0nX? zV%7*xaaTq_uXnESz*nJQZbbWWsND*=GdQs}TFy!?3$;|7oD=Xe)l=20gi;@&e;b7o z5gz$)(`qSqqEz86wz}c^fteJCYwBK|<)d4J33eATcePq0;~s`&mN$-P(k52-eH4d# z=BX5J-k9XAQh55(*41S{I*>E#g-`dP-}*JHn^pe~f3dV#@xRx#bB5|lE4?MdRaqsM zO6Eh!JdfiTo&j>!ahetG7RuZe6$^<{lnkLztrfDP$>#Ft4?^4sToH%aYNkOHq;lEamoB3<3^PNbn@H~ohVT1_P6z4RQ^JEGN>6`sj zt{M%6hsOHH>}KYt5z?noSmTB@uK&J{Le(BD-~H8mYfyb8I{h(AB4cU1Re6|_e&axG zTt%>9mn9l2W4@UC#hd}30dMWtp(bow0ESqW>%;RdgFXlf6WBCvp9uAbSZOk^*#l4f zpl9ExX_tF4LAsYf8J{GX* zYEBXrqFkk61#S9Jb58ep@%b*W z9OgCap=u_(=^@_q7L}lYhLgN@Gk>;{_gscv&IQ@cGt6+9cWW@ZceBu|h1O)Ta1EFi z!s95Y2?u>7Z%}}SRjpvvsc_#{;%s0XFP|gSp3ywm%PJ=brcD^0bB2XOfy7Oh;ob>Q zkVg@NF7`4Zkz1xg{&?QDfjy5D3Nz%+7%0C+n4@!=)VT;Flv4K|o_z@#4yr(WxKRFZ zk*MSYsmh9YsGJCG+o5eYrQ(_um{fFKu7SR(u7X?z^>Ws(;ua>UQTt#56b8r&&+^K7 zQk|CWtYBOKs)b+M!(Q9XMc%uW^=c&zZdGW=AN@HijOK+=#F3M|G*>;JYdm1xHPvuH zR>gsrsqS1NFOcTh6x^DhqCDr@%hjLbTR`Sr`waz=i4 z;$NvbvCXO2>5c}uejb^3cV6D)B=4c_qV9#CE%_|uv*rJs+o^6pc;jk)hG}oFyzv5> zIJOA2EAyt6ZLzLsaeuIk%G>Vt>R3YbV(U!ad>QHwf-Vs%V|l?r!G0AS%b@8HYD<<; zGN|)}l5jAd7PHfY`~a2{2~F2VpE}sRm`2_`@P};}M_7bLaHFbphtaES4Yppu8kgbB zLEq2L-b(m1R5$j)j7I?j0k>9}_uTjY?EGivK08a{?#5ttI_Ne)bre|0a4+(jsTf{y zfbiUn+YeNLGe+MH{DH!UNVR{Dp?m_GwOB6yRBLzr{omKHEt)T)`NAJ&yt$o1Z%=*OQuymk_;D5Fdyc;OceGeIUhKZe zyDw05=oxr*=SPd}*SfC1q3wyZ9&zr?*-q2!)mdk0)kD2mg%a4fU{mv)V_;T5i2$^D zre$C}z;fdS^HdsaZ+`b-#i)1pR#&Le6pFgj`RWg&8saL>{r=)D`0P^WaqWSj-fqHz z4ab?uL!Ofa#lB+EG7Pt+f_akEyqda7)FL7me0rTd&4hcw{N74KXkMZ$ zIO<)n7Y_({O2ZA|+%U&Yr4VF-yNu0{=Z=E5-EzEvl9PT1&pttL@d6Xp*eZBp> zJxBTG(U?nEV|pk9wW~~l+XCFYIrvV*owHngadRLC@4$d1qlnsHrch{H6yBa>4ue^L zT8lkijawRG@dn52sRX13JO8v@5^=r8+h3_5 z54m$QXRTwNZW21uu_qXNmY_cIL3$;7<$OcbjC-DcI!QivH>-1@kRJy>o&(HZ1GPK2 z{uDgDM4ZIkyqZr$*-Q@ONb#^ZC3ld(gFB`fmIV)HztqOxT@7F~91eB`MO z9J<@o84Og!^p2PEnN$-+=2IUB1yi7EDU>V_Ij-xK0F|^a+&>D#O^D%#3Us~UxJ4a|F z_wU%;p?nKq;a(Uzj}ca1>E>=|cZD}xXz?G|9}ACYd4V0tQ!PZ|FL#-8u9yzh)UT zdhx0g?6CySC}>+rDcIp7b9l4T8N75lRGyJlX0XQ|;$wFhq_#~p<@AH_x&S>%+&PaA zxzf50oZvy(7T$4% zS4gZT0`7)V89;3W`flklxDNFyLgxWo4vtmeSk5~VS?M+?T?iEy`D>m8mU}~}?&r08 z;OPQk@FWcGgz_U`Tn+rAg+c zpbG;#r>j!!ZeBQBR;1;1L}xExWqYA@EW33`Fz*m>B6J5~VpAxyDp;)-G%ppKm+{A~s{G_1pNkG?BO%3(`Q@0DTSVIP5Byo6!zfdqP( zrM-YsQPl9*VLz-*#@eJ;LS9+^H2j=?K;BBZF`SwRft0tUdgAoAK$YKUpr-6x zJOgSMf@v*Oo+8A;9T(+mwZgFFL0={n&}+Gt4_kFZe$*IJ4_li{Czk}GJ_8#UcgEKQ z+m98dRi)`S)F`ydVQZiHIL}_k9qW0C7dKqSFnflOvqCKJhhim7+WN4b^7^p#!O&8= zRdzw`E?ab=E9yBGtf))P38+m+qdWFQ7o}@mhqG%74}oD8n1K~4A$KFMUc>{ya!G92 zESTa2qH~JoLC0+7B&KgTyQXdBI3jk2vm1tDea8!sG;Y|Y%kjoux_xr*9{sqo)rU<- zI@kTM67OxU4m5^f{bB6hhuwRzC8+pP`#!v{!GiG8Yd3_(rP)zA6Z*YqLbjTcNUlFW zD!{>ZLJ!t4P;nfH!KpY3eMC|W+d7N9@-$WP_EOmV7-nIy?+=MxXSC{J z+kIy;lJr>(zuqDgvVAyrpkYnVNgQy+ zyR-4`tRJucc1@gkFgjJmfSo2va z-yd)cM<20gH_MA;d2^Vr*twZ?Zo#luLZ}}JIZ4DmOTDD>;*a-%?l7$|RPC450#pXG zij8cL#4*JDR7_y4$zW2*UQ0cxACP?*MWq1JCW&p5nQ zt#Tn8=}txLC|!byuCA`5xL2uBs0airM5RWlQMpPo`ZbOUY8Q7(JB4iy4YtgBFZfMX z6GFA`onvTThUTTejm_3R5wU(Q))RmkF1*`zob}5wqF=^3wl19?CNW!z^|3%pk({xAQ&%_7gYDBE|{`d8NU&HFTSUu+jb%KYB zoNcF|Knq`n!P|+n-$m6GF<83uUG=-FpIm;@{N(YIJ5tk{4Lh=&YOULFQRibnZgl}G zcQmzSN;hWn8?zv1k}Ur$D^|gcGoE=ffu_ni$u=hsDDPCSveT|B-2@jQ{@$DfXgvCCx#yF==#eP<*%%jKV|3Q z;+tt7toiG@kNmKE6?U)0HUZl>KDw&&r}Ztar#?ZcKd(@VZw0^;HLXQ)PlY$(0Ic=F zT5rtWb8Gbn6S4o|m;34CCAwE8f_a(nV4q+;1%3OHT!u^X`@%n*kB<+38S>@whhrc5 z;hn8`XA8FZV4L@+;|7AsCrfG?$RBO10ZWvlUui4|%RPe+v^XHg0U6q7pndvZr8?C& z5qKvQ%deVOYBvm*+_9$!73(OO6H~lZDh?H_8S>JT3Y(Udr}BcsP?-QZDbPU3b_zGn zfMr76WYM`4@~8)}fy_QZaC%EcV_E45uw57G!oavpMRd18C3Y=iCGJq|F6vjX{2)!C zE6a|SndR&VYg6y86zs^ zh~}e8Q-Wxj4b}U6tCmZZWAI?pA;C1s(?PYe+bEuGaucmV+?4|eF^$?#F7q)7S4sh*r`BV*WZ=P8<2vgs ze`5-!qngawuXK-O3gN{UaGTYSnOA~2oY@v?Y)h0ylG?CIorLSm;o5-VlEJ^6`Lz|O zQh52}o{6KhqPwSDF-k3J$lEatCJ?J7(tusul`4!7S8O8uNq}X%?|8L>3Pz>s*J?sD zT-n?=r*qzLG`1eb@)@}&E8=b~!2CH_GX`sXF=vO?d${tJGXtEHL{h_4FGa0QVEJ2s zsDzTsymY5%4*{nFI%j}>x!40zR~)aV&i`qs+A9<$^Rg2ZBC0Gsn*_NGRHH2!kqoyA zzdRsODiJ|N4fNrvF0#Kt4L*-8ob%DjlFPc|-)g^I^X=+ymyLe;VZ~}_nSkN>Dcmqt ztez#q{h^IZj#&712@z#}-9>DifzrEPOs+#JWTcR#+q>phw9 z-4@K7jd`=aJM&!zRtFoeV&eiF+^ApqXgbBNy852WZ^peD-*dj_3V%gv_Qbry-=%6} zhU@w(_u;yNRf6smR0!^NP?e4sET>6bMa7<&KZl_!7$BG>m1xxG)AS1nw&?^Gi~thoWsgO6gj(O4ZCr3 zfsaSk6nWcjH;TLK8#W1ssWS@3=+BUDq9Pis8Bl#q$e*DqUN0|75Ukg!|B=CR7%!ft zjT^4J)vG387&k%fD~OYo7_SQO)+iMcm*ZNEk_dAz7q3uCyqi=^QaA5T@N51+<; zW$xgPQDZ28cnTBc5}(bzsqI1nb%86Dqje#$$t0lkr2aqG5P7F@!NU_}lO%7s2yPfD zs71MkyC_|}+_?-lsu@+~)J_iy-662!OLvxF~+i0(qCCL1(S|zCk@w^zMf7+^EnAGxa$14j*av7 z$21l0n!Lmt6XZG=ot3YfgnLAp8m2Kn@P^s)K$yYY*euy(F%Y*XDMTvdqeVmejkm^X z=MUH2{+kllQHPts*r{%wL~zA>D>S1tyw5~6vHCJK$?4}r;of<2g(y;ZTlcFNV#+A# zm+a^2J}-uF&ZJqR=trh-b){-elHrLM4_`t&r`P`)AI~KD1<M6m+ES-@|3@+5h*$7!(sS5;BR&VwxvOFG)CZ~Mda$;`dY6B)z8!M zHwWHY`tvNTn`Vt}h{WH``*{Y{{oN%Eizbk0tat}&+a_<{is6=(LftvZc$($SXE>kg zp6=57JEhVsygQk9ua~+Lp*x9k3Fi(EaJtB<0>N+uDTW9YyD1KKJO8nijx$WeSe2R< zgZ%MEq3vq#{=usnUai2J3-IkV`1We-Po`4jMqPc9qL#yJAwu~~q09Bxj*5iQl$=1I z2y^4n8`SK#62Crt*`g>jF_2+DMf{}2 zj@X8C1WkJe>!yiTPt+E!fSg6(xG0p%pyMLbxyh>IMax1~GFhnG#_S8B+xur?25z_cl*?-39j9=cg^7KanQb&=VU<68L{~+;Em~kw-zV458tfG zb;VcHaZrha3baIa#+jz*raB|>?e%C`d@nU;CiWjg%l!UCt?%&7zC4v^SOIMcW>^Ba z7}|oNH4}^^Y{ko9pCSZ8tq&`UQWOSDf!yKCGf6E3)mxaJsQGiOHjOOpW^dODQu^$2 zM#|^Gt-lMe#*=b*QSE$$^)YHQcW1Sl7RQT@Y4-XNL=(|Vt zM{YC}PsfOQwX$lHEXPN*ju#4N^TNe4+eFb2Ei=YaGhWdW4CUTn-2=MWWPg2kyOs+o zjMR)a(3wglkoIV-;5th0Gqo_5#@2V|n{?uE!w6NVTwUB2VXe`|?7P>R%B`73SR0_MZ8SZT3 zr3+cX>&X`CQPSsEkeuTKqcWD2#htacHr4QDk+`75EUe}z!BlsP4gA&}Cw zO;Jy6yA$&Jr&)CW?Vr~LqNPa>FOG_wFl;b2QwzOVkrHJx`XCjNxX{&*UXH?gRZ2 zn!&xkZwUps2F#&caKEkFTk75Mr>WhS(Y_z;YtX(LZ!Uf>?Aa9UjN$wJ-EQ)V?HFIN zjn&On*>?##Ei;c3ZpI6JM`d~G(3mE?Auz*$O-PO*2?SM?+UC3U=VB&+nb?VluJZV1QRC139Qa_=XL1?_~9tcLEH z9z?fb(xU_X(LqpGIv^4d0-CC^^XvLn=aX+(Q1g+PrhQqZ60#wB95 zyJSrO!lAk2wepdy-tUq~*}uVW!c+yFh``PMG-6#xU-FZyMHj3mv-jcabhK^?8Uyj; z>srl-Zm^zWteWR%LJ?VReGKGXhr+dD{&6?!Rj`Dy+Jl1mqE;Hw4fG`m60QZMLL?27 zFrvHr{Vb}<-2IX?Bl^a|ID9P=-#cD@sZaCTDtv1q-r86^C2uC)jlrH&ZQzK0pvs@w zb_tFIjBDCLS_(oyLT)Npr>ZT}mDLI<=L~KxJi;*Dt#F=XIl#-0$?%+O(OHbLET?oT zrigZmX8w{%&@`XLEe-yvY&V(nl$&9L!WxBJ9|}_jQdqep)_7=_j_7Yaxr95aqemT) z%~4bzcBvUd8=5Q=%0ws=pbfn2; zazRl!lU2?q)axr2lEkMhKvuen&SA02Jz_QIIoo(PHHWWC1?f<5M5;d|%aO$51Kc^0 zIYM!L?i6mIiMmh+O9gVB#A>6oz9ag9pVoB-|%k9D`)_u)l?`-p_f22HIgDrl|4c1I!J+sMqjMOw1FF<=m7x3y%|G~x%3f?*N<_TO1QCEys@4s;JF%}T@gA{q09@OU!#hJWU$0|l$`{&n3Kt25Zya~_~M<=?I>}@2c^+D1P3x;O%etB&K-aCO6bK8Bt@&4Xx^xtm3GW&lN zLm}2>|9#@Wr;(0&!O%RcScVl#wev@E4K=a6cp)o`VU~ToX+Loe_mf3an9%Rd1zEF_ z<*neiSHt58P<4zr9~d}Bnm%9nJ-OuXPB5jUqNv-sj~51xazwAqhu0R!HKKx*(LtgM zBu)~9x37xtaNN*+m1SRt^_*;MV5g{pHo3BmjsnX{7i;-QZq{pKb*s#awd#>v%a0d- z-3Jj9JvFZGzA~a|e5X<&L;jxM)U!xH$1!vq9qrmX&Y~j|9Y@e{7^yHHy?&Z@Gr!L< z5iE2Ncp;pX^y~N^(=qJjEI`L)WzSk#kAmW!m00YD#S^f2JQk08GU*BT#Nq&a%H~mk zDd@>vEj4Vw_|lWwF(U;HPj*RqSD@1&wOf^fjFaq_^(?3vCr&@*3A z>8`AF<2`{GpOYr$>?MA-(`jE0xKlHpgX=HhrxqT z;ijsQOiag_BWknc?rA@WMcqn`rlY}mAUqXVUlF3Bsuj!);{pi3v67(9lyi zdJ<#~XjArAIn@DiuQG1W|VxqYd#|j}d2Y{{`w&P`$ue>waiGNtPr+E_Hb2P|kU| zT6ASf;!276Afqfb{H*dInM0EMNNM$(i$00GdBQ&4J{j$S_)hS1J~-~T$NsewUnUrW zo0IU#9JG^4eWdhOJ<+ofnA{LdmQ>m^pe9+8Txwkhtvi@I$T3XL3ReP^Tdiw_)^HhT zG?Y0)>p~KzWS=AJDShzsRE!`&riMyK0wL;=vifKI^^+g2w#WVB;LEWu{az|xD$pKR z=BM=B{M}W@#cT z+QbsIZX;zk2F3t|5WNo+1S%^gU|jA+iKb7QYTIF@?TCwR4kg2uW6YjFL9p!6&k=-o zM`@0L1q3$|XnbTg6*;%npQ!sM8rM|E>c`?A_Tq~)d~pc>bkY#++(g?{QBfX3+f-5g z?8IlQ@a>eJg`fG)=M5>P30QFGe=lo8Mk=~X0-;!7?;L}NdswALutr0tKfgDY6(2!u z<#K*2jFg+q#MrY1YWn{b#D@7$9?c$P3L&CAyks<3&L#I7@C<(en$PSs10aDaejCaJ(l< zGMP*@dLc?Sc@Ejy#dxyw>LzCr{%!;Q_B8(X6!v@c`ryb^d~NQZ=~UTBbzkL9In@js ztt#c6144;6t#)pz@W1lN(8`tn4(H$L#j zfr~hB0Sm`sp&x!6jvt5Nr$N8byg%7G`|pP-eb)4qM=9xibp1uJAHr}t>T8{&BpI=7 zwn)v3{A-LVF!Onh@sh&1M#$ub3y^nEsyu+7bC*6P!0i3ArC$jG*92L3Y-cTmMf$b+0#k_q5VDr@TT zj$(z;s5K@4ch6EPWTReEUt`;We>sfKvFP;s|6hI3>5YG1g@0f9@3Gp2BlSJbWsozM zm83w^DrNa{)RwvkMh}tt0|mii=~~fp+0%5)Rlkv2l^CVlw!Fxfk?=T2hFZf6ncz}N zI8_csb3u1XG9Ki)B#>XB%$^U{ozy_O2Cdh*X_hKa8Ps|ROo328fo02}Xg-FMqR>o4 z(kWiOhFcR^t%enE5b7l`Eth7$~1KD7LSX+E+vS8Yth*bYm$QhO0=72X)I8 zR)rvl?Q3}Z9Ns>caYg$QjBXE66v)H^Ny?ie=FKK?B*{}807bLGkRUqG@%Gs=Tt*;X zqP0`f|Ghy1N|BLFOD?EL`8FEmidRB$y1FAseRC1qT+BPB3q_My5y_#VS>Z0+XPBz> z8L7XASrbOrn(TYgT8wv}8aifFk`%2N>o1CO1tHk8>qk9+EdBp=I9x|s8u}-Fl!$-d zhVM?!1AICW@2|o8tI_F(PFHmPx+{O4Z%-ub(K1*toma=Rx`pKF3skKuSS=}J<|&#l z@`07o&EuXe3i5_lUH{ZkXy>9J9^0Cva;SLzZ1S9z`-o@AAXFMpKhN>xXRQPMGto&_ za2%b-@ayZ@DHrjjKmO%9VS+YO$u#%u%<<;EjJWii3*1hJWR7c9BW+o~J+HfDG? zwluLdKr(sr&Z{!x6|MJ3d*8q`-a1`yPQq9shb($1yLQX7g z*E(P_vI=SuQrc6~UUZmHm&w6@s!~PAJE90Xk)z3!lq1Q%IvWQwg%6h@oxc3u1HX62 zV!86;J^1%ySS(Rs?7W-5g|I)y7p`FTS+r%Hy@RLe{vHx_7Gz-7fO)n!k#?c;ChCL# z&wa^^Vkl51xs7z?*~9JU>aOJm<6BYqO%Q%F6TgkbZ`We+6f6#;*M}bX-XemJRL6D= z6rN`V(PCvFhUWYCHws%u=+z2ERio_hqb4m?l2sQE%nGAwB1qrN-QXs? zWxwQ+EV&QfvAjsy2K)SLwo_o-_X4psJ*%*vULcdZ%WqA2LjGa?-%Y^miguO;74;85zSI9n0O_`^p%#;J|gUq&8Y|BbsvV?D%%k%tLVJK)tMaFSY zqXtc(q?VEu$TF4~OZ{92E&b{iImrwm-xaiSmI+T z!KfdLpc!XQ1r)cGM#h*C?gbq=0>)>Fyw-|7fw@s`f07-=rq!mM?c{Kd$qlo=0Q`>} ztO%o1MsnlG(PEpI80~{uiZ@1VMW(b@tJBEr^zIJ!@`OGoCj|xd#BOF+i`l;}=!Xh; z4X6JXqWGbToMkTtyk7XO&pYe?TlN1|z6*U9B6Fu~nf_&^JUq1eZ%=k_-V_7x&{-KX4*nDf+weI&JDl}%gB;Hs%U34j8q2sw zQnpI&BA09&0@3R5w#|d6yRtDtl!S|-L2_O0Vr%1Phl@@xaYKSg!c2T*vWx1o%74&=3C#xOZI~uN>QrS#TOje z^L=PSRN}zQp)#-I|J2;rCt+Gj&5UW#8;>0Ob`nc#&0JY*G^N205yVo*$PoBz%^Y!Q z8Ozl)OX(B6t=`E-o%P~{jDjqkVa+fjW@!2Or5~Re@%tYy3D7`y3 z$-y>Q4Ut*H+?8%D%(QV0ZJZCzAw;69kWECwD9X05qzUMnqbGlFgs(VqO2!V5BmG>Q zK63@Jqxc%kmMLxBy)dJX9r&?ZY|#HI@75={#D?b#lqt&px+3!=r-RICFKt~?{AGG1 zDmyNd2V3hsJ0A0MB$~fqkhvg|;%c&(8A|eMkjt|<=TvjZX zUmE|?a?iL;?J`=*hmrE9E?bwR`Pj_{D$&kq`VO=0Zw&h$XWlb;oHJxMU=eQ1~UA~{fI3pjAF4G zOKU;kV78Isu$9?b(dG#VvFt10J4&p<>}z;z10~)c6XxWRiUkJ5P$V>k6bKYfeK7W0p$AI;*&dGbS3S<&Nn)mrD-sa-`DmKdtohN>Au z+3EStX1-pNau&;eXB)a+9g3hdo;H*1okxI!IlG)L3FQ(j#_U$8dMk|W2w=7#0r-@| zgIPvDc9`hUTAn(9Qu`wq-wMCqv(w4HMv*=r%I~S85{w##Sp0N zVCPgn6Z36UX089}`9Hn>r>DHIKwg+H?{$#(+RG<(tTmsV*_bk3O=%>u7jqfP6K8nm zEoA$fiJcvRnzBsnY^IfuH`sfN{`a`nx<^T!c3L}Vjx9YL{=@H72v`_WnmYGPmHN)i(yIL z>Q76Q#FhA@Guz%mO0aLEwQtwa^=@>%JKNU}lb>z=h8IVZ&M9WTv}SZ< z|8bh<&-t^ttYA3XHPXr*8}|Nc1*Dt7v7rc%R3^NMGXlqeEz;zWnMcRV;=%HH1NpqZ zOz9?5y2^)>HrFgPtt9hMzeLE7A#(4U%l#9Ym$}K`6#1#kh)9b=-<>`-ZvAiV z<=&-o@3QMNa$3rlO;N76vAj@M?p5v|6Iqn#bC znnOQ&aFyZ?jX4DNRwGBt=qF`DXT&I=9c($dzDGyOas=qO9PM+o>jA?7uWRe^VYZ^Q zHoR;(D{0H*4$NeSZO<~5=XpF!qiAthdr&h!Nv}@z~e2CMQjb0=j!XSpDz2#a!*X*ao{S&2SEMwi!uDFGs~Tr?*0c4H7tnaPF!Ak!(LMJ4GGW2LUM){YOzf7v^43CG zK1`NJ%9jK4`ohhsQG7wSpaJ$(PjHr)rh8`QbLM2PU)P28f88ZLQ;oIee(5 z$m%NlXEjiTksGtSt9o~yyNX-*<{@nJB=?kIEM+uht!10qv-I9bz*}O-n+QlJXq8*q zQo7NY)q%2_Dhb1w&a|Cf*p^6gREBCP9^>FUZyhKK9qb|1OD+Qn6At#n>Cu6bGC2@|`)rSq zcKOReJBE1Z4XUR>0~|q_9xOS86+|kj^;oJ4Pc^e|N3m~5O6%T5w0F7H(-D8{cw0C( z6a=d(nEis8V#67t2$`~D8s)Vj08Z_g#&>{&XnwRSPT63-P_dPGAAYUnTOTv zNZOOPRBVUH6FZ#AYt?uv<1VPXA(PKmVOxn~Ur?lEyu)~Teoeusj6S(bV|$lat2Jze zIh355F}#MH$C6v&MU#_vxo}tVP+Rg=tUE&@sUtZ>CQX7NLW%TpB=5-%%3XGPu{`I6 zroeB&m?O_Mm*=VlqzmAPpDM3LGlwKM0bOH$`! z8m3fiYi%f=!Vb>lH6ZjWvY&|+)#35=lw=>VC5rV_JorG?nLMbbp$4QzSGHq}vLl?8 zwO|sWvm-U}$7U``V_c-Fq|SDp=OVDy$)En67O9moxxG9$Z~vnGOH*g1qTR>Ka}!EC zS=%|%Htd?nT8JR3bmwtn2^Pqq%Ap`~Ay;u`2|KeAK_X|zu(Pv8D^b*m6^({XXV)B- z=4n1UTJ~`#*dXW7rpchdrGnWpt*k7kJ()CjVPre&7 zQ&;{REq`7s-*?*+zGvE=1@h;m^5-?yK8{R1sjGHkB2|oF6%)ZjYE$V9p6sFIhr7l_ zaOA8O*A_{mSW+ZXy-cLY-tIheg_7*b3N5gMF_vG4^6T^O3|jVZikX27MQ(8`|^!VQJBV*i+U{Bw#o&ri z5{--+qO2jPd4f&VhaZr8a1R4{CpXi;>%KMx!I>0 ze3h8`Cc6vSy7G-R*~ZBbH3;BT_PRoEl3;3t$8>O_-^4EvA&z%?XQn#(u969MSb(GWY;nYaY-ZkpBmWx9? z{#E6h!h7u{r#G$c2Rs7AX}kIOxm%!igDh{!EL^?6wcNi@J_~eOwVzB%@{+d($o<3Q z{z&;@lKe1H?w^3sx1}h{Pkys`E>$#B$`%{9wyQOY;#$a&n_GLvF7ksRZ(Y`E*+13C zGcUkWuu4uStF1^?1Bz>;W~;{Yn^1w#P}Gq_>p(&%F31U^{8$2 z^z`NOW-ocOr+igYzN#TB*INS|MMt*}ll^V|`QiQ;hqS4)k`N_ggH?MEL&j|FWIx(7 zR}`%RR8ljRQ=1n~v)EQ5&4tO;A|ue8+}{nEUNJ+3y$wsABg2Nd%3w-$@hV=c#7?(1 zbQB%`(IQ}kwFfbK6WEQpy%A?M?M-~R0*z0_-`z~?TF)}t8dH2lY;%^;h;m18djqFy zjssDfIjs(RCbB&fWLVisUbespcmOasH`QP=gXk9>lYmd_2ijybRz_CXe=$NBcVQ4pm2qeQTs&en6c(4qwS|rPPF$ z-*NKC2{Lp`2X*ISx2=seBrk4XLfhxU8n$zV$i-0W%L~WwCkUEB#@mcaw9}wr}M;_e1#v`6<4zEz(NU`>i@zu3+l;&x^lZg zZr5Z%W5~L@<0}<>`>w3-XA_J=@vSJPF^54Zxi;ycB4!OG*H_YJ@c7ZlSLeDn#Woaj zpxD?SxEyZ4`ZkeVMmk=M#g9QDK8~mN;u#>@b=Y`r>xF*WwNWAp<6kvY)jX=3EKuz= zqXAZ7yr8RN_ip%AOPJj6lIfMYB6YbeSSkzFr}mPRIA0cr%YtaM$L{0B!+@eYg(c21 z+L}NN+k42o|ryq#sMJrrJ9i66)|&3)$e=b(F;;Fu~kmC-k&oQ( zYM(CmG?d#1nq&N8Bjk>Sa_kaeP!taSvp^CoglZ4ms^L*twZoPsTu0rlk@FlHMX6P z-qPyg*pvI?dc=45iB?pXG-h8Q>=Us^Ut%QgDUjLCoReHbv?h9N&yk;aT6Ah_xvjG- zUN4K0r8Yxuoi2CPle_Ao!}iAQ>yAOScf)sXEMYE-nLvma3s+Kvun(uiTKMg~HksWM z(*jY*j=dXyQe>e~Ze5nuK^_c}JD0?-O&KTm4wl>J;KRyGGbXA@kr)7bi+<3Q%m_Hn zKwT4ESfW{-q9zYh^wn}eJb1JpOC6=90)4ALiwk41<4EuCme5Gp)`Jzrs65tJO`0vO zDdS84@-D0|woYJ)K4e1xa#wug-kmag7+iUy8ll5h4##`#+wzl}+}2TUYb>`llJ}eJ z>5xl9VtwK+dvGWCncf6;wj_mw7G|XynROFO4QtXSEeW{w#fa%Ry z;z~+u7Fpd$qB0LRoQdLxNSA;!5b&Y_u=v{k=S5u2S`q-+otu+m@8!MS?$eO91tA-ln;G|kSdA!xvaUkyaa+U@izkwDHT&$r= zs!KrXI%gUOm@NE>La~Lj3?Q7$fG>gBe3aOx2;F6J4ojHM;%DK_Fg5pYl{xL?6c61z z8(HX{j)N6H)<>NC=FW0+J2(Ro?Oa<{iul2Cp7M}YZtjsYCt+>!T)DZc+*=O{>!A&2 zLbJm%dUdfi%WjI;DY?B_@*=t4PwsG1=|dU+ZOc+yv7~BDR)TMA?u~vul>gs$5@~>k zmdQg)Wtl3=6uBoNX=&W77;jrQx!)oW2Ih=}+Hk1sM^6~WQ~PW7?kY6-R5TYdlUK{W zEig+C?fGv9cf=ieV@|=tklPe2<8b^Bz&G%bB`xF-xqYlG>n6*(%2Mw{3kn_1`A?5X zU&rCiXR4)GKCQ1DyQhV|(M`{sk+A0AfVd^)jgJ^hLQB_{&)GUYe!^DYB#%9V_Xyjn z`0*IghYxQF-$LiC=cjC3oKejl{8P`uMTHB$kC2Exb5zQWjoExd;(V3|`^G3L0Ale9 zwsjsxVx7`qX#Te;z28=zt%^4(FHwYOVYn>?lUn0)7w$^o2?n$#KWfR4|25gTPD;veKAwO=35UrH`<5^}+ z@7PEY+si$dvCU-KgkUIrk>PLzi(9MYYA%TZ6yL#^u$JP7Daj2*+Gxr}?53xT*u9+g z)#2L*xMf9%jaH1^%JSpOR9D!VEgZh2_z;mYz%90>F>M9gVdUGpa2IkT#4b7g`)=MY zP+1I$8&kAatgZzFkf7eS5zV!Pz9JzM2}w*S;C+>QWo}<2)pQPbattthBqt!K*J5!- zV5sm!`Jm&D?M`q%5-uHPdCFa$a>HLPPvL|xLXX?GbQHzicu{A+o!+SM*x?^qv#ePV zt5puSzd_4gPn$Gmq~e7}MQk5r+CEaCkDt<;d()1y`YiI zn^!QUV7APgEO!l(yTawEVZ3;*tFd?i2K$LU`HkS1=h-uPUJFCvVrwVIiTvM)im?C# z2ZlmHC@TmBR8 zWk}W_${Iq#={|{H2WxOnAdBm)+K6Q=WZABU9xOYU1I|A_Sh0-~8z(Bj!i%59Q--i5 z(wf+wl6x^70VN$dK*+}cr(Dg70uw&5S#Da5E?E}Vq&s#Y&MtJuyDsPoo%?j*nZEMK zQdugnI7iWFS@ex8nx=0Xb|8G`sv@Y{>*U3Ln>%c7e|%tq&qicBIZhwmKACR;)Du5g zjU9v|v;ixuj|fRLX2t-}{4=(Uy5H6QuYXG4laW_ir1|Nce(EbPHbN7hNl&R3>!W9d z%m1%t;lfNc&NF`O)~*E$3g(xLDq5iDPSdwW+dVOd&TNMP|1xY*C%aw zUc6Qwp8+-e$zqBBJ%;6v zVrhfL&eb+)1xmb*l%YP%X5>lToRuEh7iyD3;5x&|J$v}KHIe>R8xjf!G%Xk+Z;Y2W z#>g9^<=1+t=Io9?`RfJCAf+)8Lx1# z6*4jR8D)7JS>9S6UcbGjyjfk}0qpQ9eZ#hf?7LcQM>G6l;Y^;{ksS3Zm%yLfg-P69xB3NJ^MWS%o2ZVy(;|- zLf);3U3g+w=FC9agLL+AR=O5iLtGPzYYtp7XMogxxR&R$-CiJ639tZ~_{oK|e;n-} ztDNX9^l(K^XGf4%UFlDiemVE`Qiiwk($Drput73MaV80vm^x^vUcKY_V^8X7sF+jbv?9y6ic>DJQFGa+6 zkExR}_|!xzRmGgm85U`(ij6s8l;026i)ZP;RCzT*zQS>*yQ39U9Gjm#lEsci;n>W= zTIl=O^b;nS)w8|SG*{PHfmMW9!caqE18^3Oj*Hvyoxgph+`n3G>*5r*xAl{AZ1Q*6RGUl)TnC_iC{i&@V1|IRnj~UpFp0p6uAp)Go-BT((bhn*nJ9NQ z!Y+(jBN%wRSym^W)fNENKCA%*@uUtcsk;o$X{_Wh-W0BSE;g$oe=emj<4EJOwa7zls%p0t{0p9WN>mlo($8&0WunY3lo)^CkOR#zY8{|v;Is>JQTbdV(@<-sP&tz`+))F)K)t=~+RBI_U& zy_nuVrzg6CbPrKSXy;-6x;v>t>tk5I9TzVEEz8kb&`iV%I_BF%dB;) zk}^-P_mq>cJ`0!JY@a9eIdWKPOGA1K!$gXA6ZQ^JDrZyq7OA^ zKIEx(V;!MDL++3R0A}hUxLKH4C~Ga;+)M_0PeM|1zlKoZC1^xT3wH;kwD8sHswTq_ z8QPy~9^C3tm9$kBgc`x`U{?*ZcvN>sE|I$jazm^LldIhvfCzmQCni%>YUwXiS2-~t zcXf)CJEP>cljOG(_mlanUBzvf^lrid={eC0$v%#1hJeDswr&TV*7@qnar}kY-XsdZ1kp$)v;oPNhHCX z8zwxt(a=WCHi+z=EPEEkOy;S5$wO@I#tNs)kfb(hQd4TI<~9bhk&7IPlmhZq3rA2P zmK_-cBzeV-SmNeCUV~8bzENafZs-5^U-&NTD7Xof@D7ycTGP8wo|6T48Nim3d%OGl&>lqt&CW`A)1SQ541yM~sBh zoTU^ulf_J}mO7H9%@dp3Qhca!+Y~2gELIEvuGca;%Q*Z< z@lm{}Bi}KC?XZZ%XciN$rufnR25jS6@V?B0m4W|CG$G8p7Kj&j#{FXSa3|43PPi4O zS|2~yRkfU49%8P3`iM+0=siKn$){`q-#~~uIvH(mX`XKR+mp_>J@9s z+L!j*+PrjeLA3&(V^cAla*t*Y%$vWdTH2hgwYSdQS8rck`E;VyuWHiyCw47V!gCmtT8^kU3UND zGo7cKTx>iMkvLU(>01Yi^!h9>l;7-*F_E`9zOTN&tvp>*o~|L^8{~UU-#u!t`6tT< z=WNK^SvrX&G-h$tSZWWZXE7$<1A(V1Z~qUqt_eo&JH) zmH9D6;rS+g6Qrd;`M#n2soVGK^~BEded7au=UOF3qKf>DDGOeP$YVp~`xa+Ll@HNl zTFV~{$ABbSmA`Xy6#IQ9ILit@?J-@e}A1uFHhE;if zYc6+=vUaS>KZ7u@-Z9--%0iBad;n~KFaQrPt{W?FO6BWSJ<4m(O4xv0a&UJ9g-fGHfiuLl&s;TBhvqI#L=};Z#!8e=SiR)b{X)ufR zVF)5_F7~xC#r0%cG^&^(hwtl1`&OBYG4Q=DnG58~-6L7NFJ-%m*jnmVFM_=$U06F* zZB95+OG)SnvuRpu9!QBZSejX6wV^~Grn{-hQ&rBhMzgF5hL~U(8q-6;M2E9P_+~Jk zzTVm8mSQU_MrK5DPkRHYRxpNcH!IuS!J@%Ejm0$p zn!#uC8NiTbdOa<6jk+<61J=H7VmE8es{FIE$P?Hto*tT3y~e*$b)kx{pLZ=+56mL} zhQK)++0dy@Vc7`mK~qQ8_wqBlxgaN?YTE``JXN0VkU~)ZzgsHLbkI#1Ytx3wGamA= zyFBbBzilPIZE3AmwJrSz=r0RcN++g|7IBy!zAkZXjd}yPAq>*UZLs;e$*|Z6HMTWN z4Ahcg8ViEina8*pZNO4l1QN1s%dh#VDLED2$tJC9-&F^}2Eb;3^@^ z6;*uSGreg}Jqfj?qFq*(|18i*v8&WeCA=nkTd5ltE1BVx6rz0BpB2_%IkSaEnNxW3Xo}Sg39X#iPDyKJNUSHtbP(CK z84_@SGGtpXa+b4Xe-?{Wv_?E;G*9>C@k6vkWHP%bIn#uf;z`a}mMCaulsrS#tFbhO z2!0k@i;@FCT#A+}j0#tXY%Cg9&+1cEyj^Z@X#wq%kzk}2Hz1_JucJ8gM?=7E+5q@T zbAy8wnUfGVAW@W*Cy(4Ua+`nF#FAE}WA%(7^0hcSEU#~=8Ipg=iHw>|FRjJ&qbmCe zwC%OR^om(B_-qv0GYYL+YTp~QxzDx+C#N0krWf~=uhk#N>6H_)M^U{H@OxFInb~zj zQZ1IXj_E!ub(mYGAJm4@k|WKuY|i3>SPJn(MoG~urLPQ!6b8J-7%NL(L+SHbCV{}0 z9+W$J%R$u?^D6#O?>2uIOik^=RReL#K~{7IN(WqGnB!os}%PdD3> z_S+PB&`n;gw%z#1{e1JR@dBs%{(5M~y{A(9TK%i`6rP-m5roGPp_l+s2iHd8SWV71~%rFa-Gf_Zrg*;-PZnUZG%-v8TibRvYE?P1)AklLy}+hoZi z7w7VF;a-}t8iYJ2k~KJ4`370qQ7;`6>wCj`ZpFF9@>+9wtr=dKSCyv~^jA{XTiaEY zr=0wT6|Lh%>$RfQls?KQZjzE41Os4yIJ3-v*=L0lSm8(n7$A)Z@1&3m^dvbnVqs~tJ8eu>m zl&8zmZUEew9)g+WQ!7Z0Yi_|uIQ=X>wPmE=zvFZNf#2G8G)m-@9BCkr)R#wQ$s;r6 zkp=R|e0ii9THwH`qA;uxIKd^))opKxA-jvW9ne5&tG$Y%4Y@U}kyZQ8{5Bl36tKeE zJdNA@U}b|+h&N|SbLwrFtxhp}lb=#N6v_b>?q#(a$|VpSc~X#oY?9bt!$K6XX3Cl^ zBhc$`7rV$Ys*NEf2?kITPj#mN4H)IzoaZ7&AZ2}`8^CFDA%X$3DSsBnYMhuOl+}l4 zS$Srt9G+Q=8kr0Vo;IT;)Pz7K-Ba7rk=Y0WLp^`l!KD~UZL5x*PMMCRD%mGyAtjAd^1>8bC!h2Pm+i~l zHjR+OT)fu$RFh$ebCkWEMK*GA=J5oTXSNphPIB4C5p=K?FK;Ev8&S+yEw7nhNe4N+ zux-mNo-$Ndvfanx0uMH=Gz32Iq}I_YhU3C zJ0y!0vHkR#tL%zxA;}KbF;&OT9O(lQ+!-P0jM`<1Mm13=%;X_3B5Cgs(Uj@^C=W8- zV3yTG_OT5xVvZ~EwbXcjXb=fwMUEMfkV@%LRvOGpL*=mC(R}L^x76lLcV=$D5re^` z4`%u>@B{``g?jQnw7-d{z{Cz^#Uaiplj44uliQbCiu%LY0dhzJVd!e&L>3z+5(d-W z1}sY>fE#lBLy!o|4W&Fp#&&~8S*RQPDI3FNSn&v$;}HFiq=@ArwgCfDVp%(u)id|9 z+19eyxTS8&B7C5g{w~dya+tMw6=Lnng0VCyf@Yi_Z!jVu*%^Hm)jS}G1IFIR1F;Df zi_?^Vlym2RaUNo*SgJStKf&f-pe&3W<5FY}R%dnbzjoH?g|-lT%K8{JR>`R;C*{=E zls?AS+w?e?1PO6atZ41<9o}_q4_5WF7p(A#`%lZZld0}RnqvMnk$!I%t9sa7Nwe2B zxY+{{kYI0*la9Kk+Q+gw_9>9nxD0lWu|)Yj+^~t}aa!O*vO&UJ7r9zaBiYqnjU@2j zNctP$`Au7BlGDvDz)K7^$cfBb_O#ue#wV+WC5)mup+(lnSv~b>GT7VJz_qrmlML=? z8<{Z6Bp2>~Hj3*Sb=A!>I6x1zbCN+(F0ZzxX!ahA>_hB_qJ=%!dE`g-(b$Jz8;-3n zwn%IP5G`*Hj}i|zZs-*gC4*gJ>)Y%pS6f}7T^)5nyT-;0qFpnN z1yE@X0M`O?kV>HfSvtyAU*Sxv3Z>4Q4 zRj3<1X-^v%EBA!NcS1y$EiH`phU;x;@A$OAbZB{I3)($9VHrPYj+;#fgA%LJ{^fEm z?Oz!aO$WSe)9FBv-Hi_PN}5RrM!M61u^JtiU|Y)%PSjngJP5<0ybbj1@{uv?sC;qU zBHCxNZR$t|`^gowXR%JSm#2i#{yvRpe^|VUj?74kq{HL!{)fLo1&5c|meb)zf(|$H z=Z9O!v2?g|yg+gTCh}3gnErHZy1gD9S7kIEuO3^Cjz`MDbbMs0A61N!BYDMmBUMcH zri$qns+dhwG1ov93uP#;SR$xmIj4%13RSFe)AqwwxF2MCKfGvkY_i^jj`y?Kmhz)R zW7dm6n|{OvhSf4de&AkvP~hzb+kY zE{D>=wnPWp+Z8$ysL_dfb?8J>TNs@PcB2#4_}cuyRH6gZIUSfS`_h5=W`1Ca%^pbm zBJh>_hR3a;3k7_j;FW{$K%@+#%2BvD28G6PrE($)euG+Oq0l@OT8RBp z8Nw@98mKZFh1Qce0(yAFKy<`R#v>MmAE|C9DhC1*mAk5<+|$6zeR07LU2$S{+%P&h zK=8*_28mFz1{ zw&U7KeE&(Pj3;|@IvJ8^R*rPC(2?F~~I|YTsy96HT_&Y%KR)Z zmVRv&NWZqX|G0qu8(>3L%zu~Ied!m^m@)KAM65UcGE+CwFTD$=)31Gz8}{GuD5|O` zqu;tkW%qv=v)}Z46FFY|-aXbrzlY?`Z18(OImqqzIfDPbx)J>zEvJd!*Z<@}a&Mo6 zl`iMQZE^~ohv0VJXj??*8!|fIM6XTf8)Zk(c`pk;?;{t}c|Uvk0z5I2@Mknu=#_h? z*cNGW@ASCY{QQ_2{QM*fo&QD-;pgZ2()neYIKP7EJRJFq!DWR8lW|<3ktb8|cDfoG--#%TetrOvnrC-0319HZGb4U34S5=;5kd ztVYI*2sx#T4HR)Pkod(WigK~JD_v}_(#1{&aS^=qVla}5l#3YW7yDcI#R%LPhN~mZ z=8I!xUw&~W9-D(Y=i|{uBrYx&hKu;nOIVlTl1bs0JcurN%Rb^#H5}9=amk+ym+B~n zOF>4u)Rv1&?KQg8h0~>OXq8JnQ7D-BB`YbHU}(5Bkn>A}aXu6^4o7Wcg}8)81TIBk zKV624OY`ycQryJPUWz8|vP$Bzh3K+}pvztmJulbL_~lwcxm*_)1Fu2JZ2cU*QvNyjR;by!%3MW%=15JGS8##t9FH-3; z+V}Eu&M&Vt(&e?pFRvqh1rCxcn8{a6GJ>wS;=o;@E1sOLcnfi*I*$EOC_v*^>f>6V zqFo7+{rHtO2D;J#C!I~=N-%DQ2-B5*Xx%HrRB>grpeqwx=t`6@U-^dfD+^KU62Y%5 zL#tj{sfa7linz)(x{BYuYEtN`h4@u;@l{V%yXqt8DqL0kYF#s3ZRkZ;o4Jast!B#nqvxVFWBaSI21l>I4*+Y~)v`)uF3%RYoj&g+IT!Rh16?PNn8WDyfzUFg3^;&WOU9YS1>-BN75%KFmDBMiZuD3+N4k}&mA|u50 z-Wpx+ivnR9zdq2Lt`Eb_5t?#+G(PzHL{u|X5!b=Vug^wJkfp9KMBybK{Q6308rRnf z<%ULd!$r^yS57zFUFn988^7T%dy5;jg}6~);Wru!exn%~Z{T-tbixB&Ils|M6*u}2 zztIna?*^#v4K(zP2<-9uH%4F^<)Ypghgzdh>ohz7)^%eRbmkj#T*QrqI9ZBXK}T+^ zMlEYe+*og-n+hp6H9%FXK7L(;n$VBt3#;J6XzH-oS>gXnm(r7CW= z=E}|XT)WwY#LZxLeltw)o8hDZ`2Yn*;>Kt^HHp*BDGJ@3hU%xQbaNINZq5BF$W-jzc zJFfiE0R_7%${#(s;SV&;9|KVsFu44W5nTIYGzv^I82*^f#UJx=V=-xeEXQQI#f0&e zqS7sQ!EbpQ#4U`tTeXO8)y7tr)2;g0H^hhBf>?8_2`RUl3300pjyouHt21tP^`Kk5 zvF`&}<`$^wtwFdk#Gu?7hC*YA-x{ZhTayj^)^rq_g@JbqzkdroaBHc;Z>`|s)@l@7 zr_gN#_1@;B-iB@Uwu`i?w*d!x8&FuceO0>cZ%}SyCfo*Lz1^5xZZ{SDb|=(!yE}>7 zJ%zZ9PreOqc^g9K?QqysfT--ZBldj>b%o`naN;N}Y4SjXv4BKi|c ziv5X*gFjtJ{OKxtd;aN3+Mf-$`Ol`f*#XC$aI+U~f-$Rq;%ELGM9QBL2L9(r;(w08 zP0Z^*Ckf@xD4fs0z1b+dK=#)DT%sEPT%%}rR5IKFY~mdsmG1a+?M?ues=3pU_?=cB zbO+PvPA7%m>7vn{o`UZ52H(2V4>$Y!@H-J)+=(Q*Gt$8CjKL7OGhP#SCgJ8(#dv3i zkGQkUNOx8{Z$!J%UHB^R8Z>d&mBd|7qPyS}cYPuJ+^vZNe}(P_DEw|6;&uVBs`wQjnAeG-8W)yd^S^?diMCx6TmAf;r%_HsZ z64bidKzG*>-DAY>Ars*qrqDeXjG23w()ZlCa?cZ6b%o!!}f$n$3)*bhH%5Z)k9d{p`=zh3ayB{I= z{gEg*7UvVNO~N(>y?cKeY4>NVbRSIr{!&f5zk)0G*Ma#xzyNswH~j+_FY&-j@CSg` ze&A;i59&&*@d47e9<&tnpgoBP9f?2as)`3aRP{k0l^zVhc{nE9g9wE`7-psiV{u_T z7Y`58Fa?dDvc|hnfUaK?vYad!f?$(%ooLJi-L@^B_L5blSIu_(pEWhfLa=n=a55tzp#NC=OR zwDt(j&PU*qk38f6{s?pS5k%}q{@4eo{80k~Jqp5kQxt6BMvvNY{s>vY$|K~kJ?g=g zM-WmTg`z;1Sv(r#NsopJ@d#!t@o0>~A59d>qbc~A>3DiJesV5qTtJ3L=$}WcNqvMB zrwxy}fgXcXKgK&e_7wCOocb{+vah6)C9_3>Z`Pmf2CcsxoIkH;y-$7qhnvrq_O{*M=6zfy)PkE5&eC%_GP z;^IP2JV|*1;1K?#rjedtf<382^rSv%Pa0wm0{sNM>q%>DZLzh71o;H(RX*v;)h9h& z_>;Z{dIBEyB%F&Ukk6h(VjBVV;>lQldNKt!rlQvA7V%^b#DFIYg?Iw4@dR-tPr$sM zth3NlSK>aEh#>PGRjCK;YWNP61HNKcz_{jh}f|-=IDVRQNNfPtRH@+Ou}J33>P# zhUYV@CZ2_&Z=Urx7@k4xdp459v(cPC8;=5$HJja3_&kZD= zTd;Xx>O8NexjaYnKZkYZc~jg(D?D$5tsU{_U^maZ2zuTPUGuyro(R_Hc_?o5Q~2|N zs``A0g`SV$;`ul{FbUffeAM%43O%1;q~~)`+dPdw2kC#l9JQ=;5znJB8veq2{Du6R zzpx70U#@2UmybLBRZG+Usv|>9e+6m$ueL7qS7+jXK}!Cs2ew|C;V-KU5q}Lt$zfdi zYXokNCGD>XT>A@B+h5Ry{+chxn*LgDF}xtf@B*u@8(v^_?iXm`7j?OK(Lm6PARIRp z;zbLEUbGda7ae3D^+m8MUW5_72-n1m2u?4Cq0k6YUyN4x3oy?YQP@wHR{ml(DKF+3 zU0y8Z{3Rp9OMJyk7ve9$Kwo-bkGMB_S%b8fez;kW)5|6(&kl|H5;;)(r@v6BdUbV%(li;tq6TRvs=v8lM zFt0%7UxjgcH2@Dl27NU|;jcz3^a@P$71Bvwfr`Cah)NdA-ux9*fmfg+uhuH`H>9Ay z;gt9rv-oe5qWtZOYu-4nhHEu&uNL;T!C?NbPi}t)lKOXhP5Zl>rv4p*8yLlZ55|57 zWYWKflk)dyoIoP_8$vh?qTxV{=SuZJZ58p_UV@YL5v;;+qQc#TQ? zx|)ez`;+!MfW+&D8h_nH4i>M$++IVmeGMt$HHOY>@blN0z^^fZUWej3eCDqQV1&LN z%*AWWqSqtM%ImSHaT0FKK<%>ye?1@jMNqz9FH`vI)gJr}^QAXHNqu7`dgF%od4t5& zH$KGQ)KvJJ00X_Li{tu2c@v0Zpsl@W1;gZ!iF5ZHTzHN@eEs4Kv4Vv{9MC~o6^V`n2*iBX5 z_VlE;eNhvJ{#$g*+i+6ff}ioXQ25`DLJbh9-cH2vR6I08@V5|k-p;r1w@bi~--4>V zU1Owoq|iHs=pA&kcSZxfbHN4;;T^=DchynbJ3nrC7r@0k*b3iaF1%~O&F@-a-<7+* z>+UQt05uFI<=qgjyc>b1#^D@e|J@Wp@1~J>H{C?<=Hc2xXejTNxzao6{O`cZ-edZ` z2P=CIsp7p^DDSb527m8`3m~rVeTl!XCB%COk?$L*;(Zerdfy6#+JcC@hcxjXUGhE{ zg`o|+59Rb8y4ZUVwD&`d^nSEP@5kfa-cQ6qlrX%1`@gP6TvhMHGmzZO5e zp6COS`oWop@WDjd2RBY1AWMIMVDkZ@^aqI29|BMSJ@g?^F??tYoN?ttTa?12{LmE} z#EK8SP4uBJ@eg5K`!G<@2T-98kSsoo#(R7KmHPlw(+70JhuPTA!;J-8d{}}?pq+eJ zrHK#G3jc>g9sNfm{*RgSe_XNmQ0X5ZqJOG$%Re2D&2NvPMRb>1p8l&JNe(Ix( z#y@(H@uRok9|Mf^u|D<~fFFYdeQZJWu@$EJ$2O#V>_FlpCgn${EgyRe2rM(eQs!=&yDatpPLf@+!}>oL;T!Xq0ik=pa-t?(&%#^qR()5eC`ht^f{bspTW#O zk3dbM$?$nRX`iRL(C7IOvp+*@`@BM>&yZn0N24};@)tq;3v5ka%%py?2>Rl!@h>nr ze5uLB7k|*JFA(#;1ghGXAQWyT#FzFe|I!u5J;?l}H-^!dK?;2tiqgZl@yjT#e!-CX zGTlO7<|)b-H1wCHvXAl03Nn60vhr7`pkLiNeZ}zkS{=tVxcW6f_T^s#Rr=agn7?8O zeT8-DYY#>J+6xbb;us(F6|~*-HIl?v5Vfz9h4OXk|KHJhzgKx3c|7lJx+;h&urUbH zd#{FoBt$V_L^s_AWQyq>(={qrz4uFZ>(ar$NxyxBP34e8$Wb?}i}4OU@;DK`%Mf8niJ-G0K`gaMtj~#zCUR_) z6X7r`!tOJY=yf7V{GWlhEi#7;^F98^Lcb@n5`67gUxd{(l8Wp^wonQs8bOIh-lWtX z{_pbyBL|#dgdvEW^?4!}yxz!VOLZdGiMSbXB6s7Q$OG_4G5%rhAq+=*oMB!%b%xoA z508(E8J^_v4&&1rp3C1tuWxv1&@;RS4L7{r2@G%aMh&y^9)6R|=|N|BzbAJ1pyL@n zr3@J!|1evi;maQ1@Kwh*e9P|)-;Z{N*?5m|D`W&Y4vcUpG{USMK~aq)5}6e58Npl` zS>*MOaN^(}VYwK2-QyYAFxoSc7Uhg!D~zx`9ihpQJvjVE@R5!jCV^eo$SKD^f{ikA zDHs^J=6FZ$fl{jjClb_?F2DCwX=|6yc{ymU+bSS>_30 zr-hwW^SIG0^Qv;+RNQS=V#|E!3z~h7NP`DvvC)8dpVw@xH()l==QB&hwl828 zdl1S8hp7TCS(aA-1Iu_25G>Y-Hckz}Cee*7M$BhfNpvA=wvsX0Eo%`!%*tBs@mtn< zdYOgBv#hOr1|(|--%_wFCW&Pogq*CyKCq*H;!ef@GE^;U&$4iLSr$SHyv`-7th=OS z>l-H79$LxfMK#NgR$QFdZ`q@TB~W4ZBupa9o*WH816lSgn3X+8*aE1{UK|Uy5}LBt za7EFwH*pr8y>&F;O-1fuV6qRWGL*4pACCf@LJwGW2HnbLM`PJnATRqGJjuSLy6*`* z2m&5cE(Z^T<#?Qc<@m*?96nuUIb*#(%b7@xIe7jpXR0!ax*QIBEN7O2bD=J00sYHa z%-j8zvr-vf_k(RzWogK24jWy|N%zEBj)W?QXM3Y8=d@>(5kW<#Knxaz#WgJAKPd@`25y8@Y36Dt7@j zlH507Xm0u_f=6-m8Ap$R(=lW`%i!f+P(2tXmV1qxC%HG(!29eNE%&iE)x+E{e*^`CXY+GnKb0@TlK?!YCxfHq;+DucS?V2Yc)UAai z+M#_sEfqRITcM-MEtZ8&DJWSAorS-li%=K3qKgip8+15y-xIXZW2Qu26isnC48X?0 z_#H3563Ba%36(d6jCq>O zF@8Qr1(5~w#t^wA4vdx23f97s(e0!NvA z1#dfXR)7Iu1y`WA;JTW=jW68_?vHh>&M znOR$Sdjdh+bfB2kR^(;0i=vRrq8O?u;#9+mCc>a1R%k0qgp);@R7JcD2b>Kvisr?V z2mh)St$@6uHFTzEz0`7%=qcLFFDr|-k0K+!O)E-Q#{Eh-h(;_rBEpMKsvt)&R`f1% zS;T>m695QB!#Cid^~&sz!_lt z))_E2=(XZSv{k$;p5Pj-TE%S1cqmu^Q{0ME>2)zrk?>}}3bR+W;(fGNd`J}@qxoW9 zF#(r z0I$;Dl4;|7Rx(%OQi9cG{1OVVN(Dt-2{%BjWFs)x|Ap*uiS?PG1E`3D_lf6MJ6-P_wO4v&= zwXBrQtCcQ?l2Sb7R?1$Yb(WtVx>35alysP9za<+H|VT9ikVT)fryolqewZ%v6XAxFXv{6l~2L+wesnxk8-S1 z9>k)u@&&?{&`LR54=Z1#xOFJVa?w1r_@~$MXeQawiU>cyH#MmT7^~{-gzbY zH5gHmNM9;uK|GK0fQhpeOQ^77g-WbdhbmsDLlrXaDpFBn6=@Jwu~WfxW!%R=RIp*Q zild4<0ZA3_XzEnpoa3tys{1|Ed<7mWtGMltvx@g&Wu>IOlE;>;GFGir#zS)DSVp>1 zmP_SiJ?iY#+RS=9cf>LwU(*pskW)}>)m_?3HF#)tr@0O9j40wKa)xB+rInHS-v|nnh^cn&q&mX0=k+ z*?yqx` zE44D9YuQ>`ZM?AYmKwBL+|*X95v-k#8CN?yXG)YFy+)_iZiJRv8S}N861AGYwL4*T zZMr95yblgg+qGvPrS_bmzH2Y3VwueRM2h5F!dxmIqwMQE@T4waC;WU_0T$LJung5r z#aODtRc3XwallyJLg=kq8cmo}N~?R_?h@X_7r^VJbL(VZ)a_uouS4;I9z-8F zX>qE~b=AE~+jZJk)Lljj>#oC}I_y&-W$M&(4d3dyx?uGSr+&_1vehdQO9_ele8Pucp!ZwM>foWF@4kt}W0|zs-E=FD>2YA-F6v=JmK*t(aVU+T3&1-;-5ZK6RfHiJa(sl;7aiX@BF9fs!MIdlO|zslo95Herp55IX{j(RrcE1EPCRXrwcoTAb<(t( zVQAv643T1D(_tQ(Z_>imBu+M+R<#*W*K~F)0Ctl7DzedZml0^vdf)VrY0|{Oi8Xr> zjpk@L(9CIqaf|<$W6e`&p;_cL&-BJv^BnBE=9OYb^Eyg5bDzkXH$r1`Dz1rU&B$ha z#@4)-zBS9XZsvxEH6NEgYnF^PpH`6!6~?1!&DsDob4G5>IQOmjhQMvLe@`??;#xfD zp_YIeZHY!Lx5QCRi_DRhNi0__vV2>nVfwddMQxeGAh)n)0aqzyt-$MuN(+ak*0K#z zXxYV}x8T?{p2`R4yxdxjdU>+#q^gyUZ8@)2-xJ^r(^_sQ4)3zH+!46Pu(j~gkz=j= ziojaENPMeya;@@8wDNlzYaOSA$<)xA$hfplS8%qn@MT2ua28>$+UT|}SMo~4uXQap zU+X3sXx)yaweD7yy-L`x)w)&dYU^=2-6|`tHG>|so@aN|dfAD!)@uxWD_&@iwQ=du z+5+Th8wLB@LnhuHmL~rSgZ{< zp0({~&1#c5*>()qzO|jmVotQ3%b5nehvIGHf~RBc4yD??EFAY&w%;u=h!&4UsT*x>B{!&BISKP!`}WFb<+{l64oJ0vV$AO)}aNk<5lYE zcnw~4aR1dhX3*0P*=8LJl(0ydmuWV4tfYmGHH=sXo?h$VJk2^bA(b6cvK{yWtwTme z$6h+q!Od8`&67s>go?a_y6rfl8nq;KNU%DtF+3eN6}*j^&F>d|)+q;0r(eW(O0{-! zB5a)#;b|wwC)SxHAa&6>i^81?Xugw!1>?zknBS>^>s&AJc~-H`WYr***0~c2@7x_E zc*sYQ<9Oq&^8z$>UQ%UOmFFgc+<8YBmuGp>8)Cy==nMz6TMCPua6F?E9#6S2mxe7Y ze^OZfq;L|Q49`@NIre~zOBuKD8WoYY2yf)z!@?=3`>^bt@Ghtib63g2dzp~o18AnO zW?}e*ET-_gs_laET!trMkr&oLg>MVog}m_ls$1KrE-wvqMG1>h;jYop+%=wRyAoJa zyI!NNuB3^?&Cy1&Yr(`A>(b=wTCalIYIY_2h}&$NM_E@ogm;~cjkYdns;(<+^LWiL z4fF|I=+>^JJ4os7cxQ}tk3lPT&xGOK^W+%nUZNDuqHftt-5VIG?v08|pbmI121 zckdogJ^L8V?!(N2?vs*~?o;%sTSC%(K89quXuEIHvF^M6pmjea*n?0QqR2Bb&du;~#mdZx2U?3sf}(j(V#&q_I!d)CpaerIAmo4n(#XR~s@rQ96(S`Wh> zZ9V7w0qc>v>v`W3V?7W2Jf(s5^;z#E9K*d+X|PwG!rn!2u9w3I>(#!mcP&-)uIEhN zdedmJSMIUibYHCX?h_`>+RJSq>*b!G^`1q)^btRKC1VO1YL2(v!!WLRGu zTDwo?Pv2C{y*_z1`m{0Wn>!1PLtKybtx)=EEZ#outXbdd%CmtQ`#58=K5d}-6$G$7da~+oU-SW_&*6)6=r8?FhU?0&RWP0_>XW5?!js5bO z_RptC|3ajqe=$yd>tB!F?$>Dc@4`XSFN2}~7!CBFRNNWb?>|S^`*|Cm8nwvvKlMf1 zfR`Evv|LO0Nf#Y)6m>K9#bJo$ugkdOi4gC2wU`3~uMSRvX+;TZ3;w z#2~jIt%QBH>malt_Bdx$E%a= zUy@zu;$HxtYF~KjB-s}+=#%Y>n=ECNeenrLC|`Uv=@Xy7<>z{A(`G55Q9<*}pz==Gcc5EM>8MxB*@DAwO16whuXqiszL!-1cAJ z;Y_oyA6D$w?^((U-r$4oZ(LNwH|`4l+Zq>wkFsyBahBOPwKmQM=P9Z_9Gm<$@Zfgg8#YPg)aVM7yq$~ z{{(!E{p1Ey?ZrH0d4Wnx`{e`Lc=;Hu^ULw7=9efN;BmoUx%jVK{MRo2YZw2Gi~q*O zf9vAE1z%&o;|DbMyZsvR-yQSwag+P1<@X7eGR}T~C~CI-{(>St;{)A`?Xz@d`e%>o zs&*#Z|MB%9;2VN}aPdF5_#a*Tk1qZv7ypxs|JlX=?BaiM@xQqEUtRpKF8((c|C@{d W-NpY7&VvC#?^62*GzIJ*TmK)sASzq{ literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniGB-UTF8-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniGB-UTF8-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..f78020dd4028d56497c44b7afa94985f0d18f8ce GIT binary patch literal 181 zcmZR65agU+P+63jo>8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T6PlOl?xY(U;%1@i;UxH|VM5Yq4M+!U_+G%+;v&G<;s5}C8#>Vd literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniJIS-UCS2-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniJIS-UCS2-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..7daf56afabf65a4707d7bb06d829f56b247c9e80 GIT binary patch literal 25439 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 literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniJIS-UCS2-HW-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniJIS-UCS2-HW-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..ac9975c585ede6958758980ade161f687d40d58b GIT binary patch literal 119 zcmZR25agU+P+63jo>8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T8=9BtKtsO>ygO9pkUpY R&cJYlpFy!nMUA0J8303WB^dw! literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniJIS-UCS2-HW-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniJIS-UCS2-HW-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..3da0a1c62f19f720590b54fc1de7b027af100945 GIT binary patch literal 680 zcmZY4T~8B16b9gTW_C-zEKrO{Xki;z^rld0f@uiR4Ix@Y5SLOB2rjVUBlNpUP=hJZ zdv1(>g-o)Woy5N}MSq0Xx}bOFeWi!YTCQwVdLmXyM5o#>UP7ff4B)v+t$V>7V@)mi{{+VJB9MW zeBMkKX3fd;b1MvOy0r&Plg#y)x zX}a?kEYdC`e%><$20DDP28u4w=~n3;YfUN!NqxPZvI05?&-otvW_;5=!}nylUyt%< zl+mDX_+Nh*P#INNtw$dr{1ChXUIIS?FN4>>tKfC;b;>uvHz-@HZAgi;yP{& zWD?FQJ`$vs2>#XphHs|;qU{Wr(w_ML#!@oBh)Y#C<^_Wo0+Cb8kt`GOtNE+q)oMTu zssZYjYJJ(5D(B#;5O*QMkP8rfkc&*df=E%h0uh2pKo%j_;C90e5xD^|3b(hWWz&#b zRBl6zLD~>8BKP4&Aj^y3Hq)$ literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniJIS-UCS2-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniJIS-UCS2-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..c50b9ddfde9da7ebb2f67eba68d58fa2cdee902a GIT binary patch literal 664 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 UUp1g87AoR8lAx!|poMAw7d?}<%>V!Z literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniJIS-UTF16-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniJIS-UTF16-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..70bf90c0efb66da2a7aa19a820d766cfe3ef3183 GIT binary patch literal 643 zcmZXOTTc^F5XWcEIeWU@mZfZql}p1S79^z5N>bApgDXKP7qONqiI&*X4WK}=trCdA zkfrgJ7Xyht_z`$)Hfb#%WUGFXdH~!%YTOcem-5?-7jsfZ&dVHA`y+;jYbo? zQ7Gn3J-uJ9nA>GNxwBR*?G{V9idh&}jIAyGYQC(O%(7Yfcv(!FranHgker@*nx6Ti zW_C8`lIcih`Ee{BnKjtpNi`1=Fpvzl?yF}Q1*S5f*3?k}2)KY49L}4IKaqoG`Qku< zr2IqQT9x53c5B3YqmOC9#u%lIM~wufsbJV^KOvOJf`NbW4wool)bNDEc2OJ?65`;c zpP)ef6jJW+L;J(!l8eaH(1-h*q3fqC44xbu@4*4W;1a^M^}xVY#=%>S0%g^S|2rMo zWBMgv;0XDp85sT1o=4jFCtG%qf;F2tH(%3e%$v{Ku(x8K?N{7}7y(CCw>vVo9 z6cU=DzJBn720cg2BSyO~0?>^#LgnI-v}~-6~Uex?ZdBe ztS?FK`WnG{_A@qTSFu5??_F4bl~bcPvGuOHj!xVoIWwF(&yYCF9G%yUIC+ZBhD@9a nq0Syd=MzEakYUSZoypkR&at6$Y_Fabu${D4-0ek>+ADtn7bS_K literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniJIS-UTF32-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniJIS-UTF32-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..7a83d53ae70ca3d81cda827cc224ec8c5efa4f17 GIT binary patch literal 40539 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 TSv}^!0%Bau4|_Jjy$rZ_2%S+!ysBd@ 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 literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniJIS-UTF32-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniJIS-UTF32-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..7a8713539491f51c52ba3a1525d181efd32c1f0f GIT binary patch literal 677 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 Zk@2$oe=xv)=QA%Cm7k5@(*(V9{{Wi~yy*Y{ literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniJIS-UTF8-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniJIS-UTF8-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..808a94f0fd9c3b3cb0267e5cfe4dced2e65ecb1c GIT binary patch literal 678 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 E-=u#IHvj+t literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniJIS2004-UTF16-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniJIS2004-UTF16-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..3d5bf6fb4ef94b452ed1ef0df926fc2bee55e973 GIT binary patch literal 647 zcmZXOTTc^F5XWcEoITxcODS8ha%o(|f`kCAn3~2ITnS3Kh_zHn6k?$pK!IXgB@lxl zOXDjq1`>VnBk)KzX@w86RX<5RfNy5yQNzGM`wl2!b8QOsDDF*H1#8XJF_8ULea zH`gXp87XylFgy1+o*0}kdG}#u2^8RTl(-T{8I&ws6x>*3k}QSDJJNt6yp{mv6cOqJaD7jFxN7$?&gjXDK+OiIXu z7k-$4LIi1V^r7?NV#&i)GL7D@v&hv`Hii#(54K?!p?enL%G%+^WhTI1i2?D-@c*5r zg#-H1YGNPzrJET0(U?m6M(A8WojiSc`a&qGB3Nz1)JIxtN{bFn6wsRVX6RsHQthLu z(MUvUMmoD71Uj_ubDtb-J8y+H3@RNIhg%{b7{-+#YC_?<=vV!H{q~XnJ!)ofBB&Rx&Ty_M)@* zHG$Px#amrwSY7yxXA_H9WA^tJtiH+xV%M?$uCjt|!l$_7g4}1w+&O{nYtGyyLU&bV oZkdt0&C&hD(B0!$_t?iO);Dsz=L8#z$9Zg|?0Iiv29(D9Ur3XRZ2$lO literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniJIS2004-UTF32-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniJIS2004-UTF32-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..09eee10d4fb4b9fe1e70a1ee56825a207ae8034a GIT binary patch literal 40630 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 literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniJIS2004-UTF32-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniJIS2004-UTF32-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..6c546001331cf4f2f68563229f994b55730dfdb1 GIT binary patch literal 681 zcmZXSTTc@~6vxk*GdtZbrIZD%TpAX!R6>9P2GbaWxIrlwF)r063Q^h(pg^&$5{SW& zrSX*)1BpKP5qKn`1s-L7z!8bGc&6%9b|D2f&{eEudws-UEt7}DLB$0>@j>h8& zV=|jtu?=gtP_#D-Msh2Y%WvoMZ;N(zNSoZ)Fs||oM&2&i`A>DHW!uKk@LbZIdTLGm z(NkONGf7KI-5pFVJ{}t#oHjW?&rxXw6yTtkegGp>PH_Sr zg1l$QyhVZDYtFnCLT^oFUXhWv!_oW9(A(!&^*JXhRyQ;9qx7C)ZTTdNwWO2w*XBW~ GrT+p)28xXU literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniJIS2004-UTF8-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniJIS2004-UTF8-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..1b1a64f50d204b03ef0c5575233687830a1b053a GIT binary patch literal 41779 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 z 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 StUu@Nr1Glp*C4U(!~X!6rxDoz literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniJIS2004-UTF8-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniJIS2004-UTF8-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..994aa9ef9f50495a3ac558630b0234680be23c2f GIT binary patch literal 682 zcmXwz-%b-j6voe)ncZ&xP+*Hz(8|Ubkr1F5gEq#HZUa&TftD%;Q7LTz1&VEjKn!## z=uIJ*lt3aE-gw`5MK)VT^@u_4q(qZw=&r4_igcOe^qVeVGV=x+(Iywja zzTPLn-aqxB#km20(1^O*9vbVr-`?-VAGzX?%=C|Y+hO2<0VkXF)LuTsC@?z%y0f7~ zfPe{z%;~A`#ZeG^0V(#gN*vo=5JBP^5)md8@17Nw74BHt?5T3U13;5)R)_2tZgHi*Ph2gGDy7G|gsSPOPV z=E20<%{DMJ?9j6*R6T&|J%fh^4-C8pJx)~L2t=JkqP{i=8H^jOD1KDe)4!H6Kg^l) z(**OA=?yIQZ(hd&$^9M0{6yGZP90+D?ZFIc-BwQP<*7D;L>uE#d%=hnrl`#ds3jF2 o)m9j49|&se3`?fmseq-0Fw=K)Sb3Q)N3i1Gy<)Bm0aqFS2j0}QeHI+_hb#t%0 z^sD3GC; zUAp1EhZJd*5WDP|h6FltwGN67(3xiOfz+ImO_Kb2J8i252+IbZ1!e;?0WU)R-Fv-F+$BYGcZ0(sh`VKz#}v0Q zb1)ruSMix3xkT`{1~KwyQW0&XA<3=D|8HzL{fl^1fook!;KLwddO4Djcz>% literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniJISPro-UCS2-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniJISPro-UCS2-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..c148f67f5e9fe4a108519eeaace89e708a51f8f5 GIT binary patch literal 689 zcmZY4-%b-j6bA5bW_FiuTM!Bnkyf_RMQ;j~CYXj0-H=905X4dtf#3ogfzW^3DnSeh zf!=dtd<`$jB)jQ6$SnF0UgLt^nUi16nQtbO9QO0=Os#(8?tR>C8Bg>1Y-S>x%^TKE zZObuAN6nT~X&S}qcFnEVT)XA$j76=31LO96({P=p<9@ygOO9iVjn5Tl3iGAHukLbn zZ?;&+XyjjiqN$83 ztkG*eBzzyd23`R_0Iz~K!0X^H_!{LK;Omrs054Hq24AB5olVSX$`2QH^9BEO^J^E4 zurMqVeq!sRNpw;`XE^jAlsqHo^j&NcZ$Z_)?eH)U;%(UEF~wEF8pFA)5# zA&lHk8shCNn9?5q|Hf9bzll#(c%^d&@c=|lF2-_9Braz!S1y+|HKJuo$7=?5odWhVG zAA_ty)*%KV8xSeTeMpze7Gx7*n8`y36Y?0o0zX0ISNL5JeMFwXk0YQ6Gz5$UVR+Bh za>oebKoAQ>LpmUov+oh&ty%hY%B!SO;r^-NB>IuS(5Vu$=ykj^N1_(Fz8@6+0LGcP AI{*Lx literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniJISPro-UTF8-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniJISPro-UTF8-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..1849d809a679e56414f4e18dce8ca3c41109e84e GIT binary patch literal 726 zcmXxgT~8B16b9gTW_Js1`H(_H0)?8W@dl_~pp7wxk}41c(hm@UAPXCT&=0m1f*8^Y zB{3-mlad&NSH?>dZcLhy-E{PKOwsKR;4io!X7Xgtyl3WIjPyG^kW6jr%P*HQzB_?{ zzx%G=AMo`rCRNQB*-U4&c-l9VSV-!rq&}a~7JFR%tE;|?`)Qx9r8Ry1Jd9|Xucvop zXdpBi3H_;$C63r${xUo$uOdTF-gd2JtbyKP`36C@+uU_ zP=XCs_N(z6k~^P(XMem85@^@%6ewyyb6dIiRVlB_L1OJ4p7yB@tC%G$0K)Fs9@-w* z`fZQGtyZzXo=}O_+PW_H+YUvdvZPVf^yT&uQ_6j zDNbX-K8=DHv-Xptw>b3#+p5_kV*;-Ua`R&Z|5h7va~Gupb$LG|Ip6!gm77A>WlNQ- zJKu>(6&R5Z1K^z?qA%>O7IwI&G+df2O*oWV#X-%u-drubS40S=0^S1df*1jBh8UH^ zIQVrcqTo*O4v0yJDVU8gokYxl-+Y&3?q?y^A=2ROlGp&h39$uJhUp>V4a^$wCL*?B)}caCaiAiRiXC249o79G zsMG-!x6Ng90$e^8gT$B)I?ql%8*#7K{tj<$x&zJdplw%n2kF^Kp*%udL2`ETsS^4N DWh&!c literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniJISX0213-UTF32-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniJISX0213-UTF32-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..a83a677c56df6f1ac395d2ba71e60a08b0985e97 GIT binary patch literal 40517 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

    ry6~E0z8>XD9~7$zzTJUQY|Ybl zQEm&$r@T#>j>5#v_#DY7uZ`Stu-ZniQR|$L?<86yEHEroO%wV0q7_B&`MB_3F!*R}}ZDRaflm@~mVVH-y zT=b(vkD~5i5sDMbQJmRMdA$KcaBdk|R_`hLU1H&w^>f>F_+o~J4%9D5#OFO2jQSKY z0q4$$zSQTPL2(@KJMW5_XkgP&7%`*`E{yR8_dparSoi#VXaXs1j$mK@~Wk#K+weWi&-F@i`mnS{NiR*a&dP8uJ($nW5cNFqHFO4$}jE7;qX9Zpf|6t;j2*Q?q?il z-{7j~Am!H#7_w{T7!+Q9j9&|I#?=@+cx@c$=UOz{eQgRB(zR*Gh{msFz))~)6>7M) z8!x)HFB?TcDvDDOocMKTj@qvKVw$dpV5qN0?nW^Ur)^x12;>-ojtQWWjyN>GV;)BrJ2KJej^%ME)|gO04B;J{`54AK z_TwcThe3`V1;vq+cZOjWJ0n1Jos$K@BgPiRLRS=vI95dGYD`V%dVU<`em(_XoIzJ_ z8aepDO>fNuWdx@5<^;UvW;B?`%_);n#By(xi_nUji^V-lFuXU@w=#Zng&^gdXE5en zIvW;c*EIB}YZltymADo~3WqM#wL(J+yC8V;u0tHP!3NKW6%NJ96D|7*h zNPiR)1tYw*zzTkQ>xhPzb?Z)`5ZtNT8^hA=ix+l>S@ja{UVy5*7jckm_bNfX-Mg$f z(BZZbI}^X{i{ZXKW^ze4XBotFL%>L~RjN$ENvr(*Ck7CCLJacdnyB?j#o!FzW2oDs3 zr0<;)#Tf|jyw?}q>J3KKz2SJMHxjhc8*N>LG97f>yBsX4cMYbhH#-i+mN^XBzKd|R zcLR!}i73vXhCV4Bh4T@3HGY~wN7mDkt#o7~9oa)iAWh~-BfIFo;M}>*Iq+=!tfw}J zlO?cC7N1dkOT1Lyk{C5!OI|>2sX1^!{JfcdnPdIe$-W{Af5tKtg~P5=>(Z;svFEV!WbF6r!{jK!IXgX&?qe zj>cDB3?%yCpWq|8q)kcqH?HbmQm5dX*?e|3Gqc~Boh<+T+|2Fn=Qr0kibgzcFf zVhLj=n_IIDYrjymw+lvcCzH$X=JIcgc6Lmi+1fI$@(V`ZF4+0Krqi-*V{CjeY0f^i zX8(kjcQ)sfRysBjpB!CIJ(`>toihbM-${85BoH8(3V;!*q(B4(aA*1`3k-a~Oio#s zwGwb(Rv4iFTfI0qB5n-@ZgdMxua0nDeOOI!Zs`C60rxTEOd)#z**mhtnc!v%MF-p* z6(b=k*xbiC@Gu95F^DiAH0t~TVTGPgUG!`ssWRhQK=kw<;&tJ%rBFU_}ZEEE0s7mb`wDO?Z zs;2R9lJZL$m-Fq1t@&KTlAnp?PiF?Eh zF|DKfPGRl}GWQL!Or(jDAKk;RQ&?G&{FMyD%F1V~&8=dUIp5o{@+uRg$KS;I`|>(^ zQ!SD=D|7D|GA|{g_gXM-jia}rFt5nCR}$!bV(1+TtoxiZ1?$@x`YQcDv9WrV#YWOe L`x{R{YNY=HNrj7y literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniJISX02132004-UTF32-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniJISX02132004-UTF32-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..e1a988dc9e80be9a0803e22d021b1e81fdcc5b94 GIT binary patch literal 40608 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 WYzZKilxEs5#lWzyu91adzbpV2cs2|G literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniKS-UTF16-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniKS-UTF16-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..fd4e66e81f3507b190fb2986a26a45c1c380e302 GIT binary patch literal 26327 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 literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniKS-UTF16-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniKS-UTF16-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..075efb7054901b1022af68e723647769cbe1d556 GIT binary patch literal 164 zcmZR65agU+P+63jo>8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T8=9Bt9jqG~;$~>3>*2_)AhxfT zk9~fwLi5~Q1}+vx1|1$o21W)s^F|h%M0N#X#(mZEa~StkuyXEaWMbS`-#oX7aX+sB L>wZCNru|X?)N3(k literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniKS-UTF32-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniKS-UTF32-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..769d2142c03b10680800b3b6ae883e27fe04c5a2 GIT binary patch literal 26451 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 literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniKS-UTF32-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniKS-UTF32-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..bdab208b69d287128195eccbd084c8cf4ca658c3 GIT binary patch literal 168 zcmZR65agU+P+63jo>8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T8=9Bt9jqG~;%025>*37Jz@Q+u zua=K}ey&3E+*}4O7Dfgg9!3U6208Oa7Mo;tpu8~SzUuiojQc8BIrlR%G488xo?FDY OpI3l&zo0eKeklND@-b-u literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniKS-UTF8-H.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniKS-UTF8-H.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..6ff8674af772af896d7d33c7addc37c57822f8a2 GIT binary patch literal 27790 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

      UjdU>!C<8eSfmt; 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 XDie!M@tP=Qo=5R?GKGx`n-c&3T8mO+ literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/UniKS-UTF8-V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/UniKS-UTF8-V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..8dfa76a58eb720dd1992c2cc9abf1dd4b39c5a66 GIT binary patch literal 169 zcmZR65agU+P+63jo>8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T6PlOl9jqG~;%1@i;l%x@VcNc0 zKKADSxe6P;=Q41yFf!=yFfuSQG{%{?u-GKAKWdoFxUahTe-7im3Rcejj7*IC>Nk8Z RV%*Owz`9?sv6^YW6ad@#ITio_ literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/V.bcmap b/htdocs/vendor/pdfjs/web/cmaps/V.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..fdec9906621904180f42bd5c91f377397fd6cf95 GIT binary patch literal 166 zcmZR65agU+P+63jo>8J;XlZGnYh++xso>knU|bjRFGekSdyBe z$K{xlqX1T4tWcC%oLW={5)4jFRnXJ-@pN|e3wC|T=#j{(sKmI}pOXoN*Dkx{jjaUT-^bqy(L literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/cmaps/WP-Symbol.bcmap b/htdocs/vendor/pdfjs/web/cmaps/WP-Symbol.bcmap new file mode 100644 index 0000000000000000000000000000000000000000..46729bbf30f3b2f176492d907fb8ca3f6a1e3026 GIT binary patch literal 179 zcmW;C-wMG{90&04*(h8{xuKNv0%qLpa><2~3lnNLW=^QFb+%;wBoDUVIgjE|#O#wbv3o&3S`2gr-Jo93r6xVAssnXnw1B!ZT0%WQ!k{%%Po}{NAH@>d0EGtm W&}LiN6j32_>FyT<6+0XN literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/compressed.tracemonkey-pldi-09.pdf b/htdocs/vendor/pdfjs/web/compressed.tracemonkey-pldi-09.pdf new file mode 100644 index 0000000000000000000000000000000000000000..65570184ac82fbc478a403cb8dd64a59c0065eae GIT binary patch literal 1016315 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�v_)@^!rDg3@1D%o#Hk5G-tYeQE;I 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
      v7R`Taz^CF$7 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%0Dbq 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

      !H1ZAV|(6is8=)Ne!ez0@sCsIv8hxM`v%I^cdj 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 z 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%0D8bGnWEX=&1U%Q%cSAF* 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

      tnorth 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

      %hSe#a|9It3t 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 Iuh0Fz09WF-JOBUy literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/debugger.js b/htdocs/vendor/pdfjs/web/debugger.js new file mode 100644 index 0000000..501daa8 --- /dev/null +++ b/htdocs/vendor/pdfjs/web/debugger.js @@ -0,0 +1,615 @@ +/* Copyright 2012 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/* eslint-disable no-var */ + +'use strict'; + +var FontInspector = (function FontInspectorClosure() { + var fonts, createObjectURL; + var active = false; + var fontAttribute = 'data-font-name'; + function removeSelection() { + let divs = document.querySelectorAll(`span[${fontAttribute}]`); + for (let div of divs) { + div.className = ''; + } + } + function resetSelection() { + let divs = document.querySelectorAll(`span[${fontAttribute}]`); + for (let div of divs) { + div.className = 'debuggerHideText'; + } + } + function selectFont(fontName, show) { + let divs = document.querySelectorAll(`span[${fontAttribute}=${fontName}]`); + for (let div of divs) { + div.className = show ? 'debuggerShowText' : 'debuggerHideText'; + } + } + function textLayerClick(e) { + if (!e.target.dataset.fontName || + e.target.tagName.toUpperCase() !== 'SPAN') { + return; + } + var fontName = e.target.dataset.fontName; + var selects = document.getElementsByTagName('input'); + for (var i = 0; i < selects.length; ++i) { + var select = selects[i]; + if (select.dataset.fontName !== fontName) { + continue; + } + select.checked = !select.checked; + selectFont(fontName, select.checked); + select.scrollIntoView(); + } + } + return { + // Properties/functions needed by PDFBug. + id: 'FontInspector', + name: 'Font Inspector', + panel: null, + manager: null, + init: function init(pdfjsLib) { + var panel = this.panel; + panel.setAttribute('style', 'padding: 5px;'); + var tmp = document.createElement('button'); + tmp.addEventListener('click', resetSelection); + tmp.textContent = 'Refresh'; + panel.appendChild(tmp); + + fonts = document.createElement('div'); + panel.appendChild(fonts); + + createObjectURL = pdfjsLib.createObjectURL; + }, + cleanup: function cleanup() { + fonts.textContent = ''; + }, + enabled: false, + get active() { + return active; + }, + set active(value) { + active = value; + if (active) { + document.body.addEventListener('click', textLayerClick, true); + resetSelection(); + } else { + document.body.removeEventListener('click', textLayerClick, true); + removeSelection(); + } + }, + // FontInspector specific functions. + fontAdded: function fontAdded(fontObj, url) { + function properties(obj, list) { + var moreInfo = document.createElement('table'); + for (var i = 0; i < list.length; i++) { + var tr = document.createElement('tr'); + var td1 = document.createElement('td'); + td1.textContent = list[i]; + tr.appendChild(td1); + var td2 = document.createElement('td'); + td2.textContent = obj[list[i]].toString(); + tr.appendChild(td2); + moreInfo.appendChild(tr); + } + return moreInfo; + } + var moreInfo = properties(fontObj, ['name', 'type']); + var fontName = fontObj.loadedName; + var font = document.createElement('div'); + var name = document.createElement('span'); + name.textContent = fontName; + var download = document.createElement('a'); + if (url) { + url = /url\(['"]?([^\)"']+)/.exec(url); + download.href = url[1]; + } else if (fontObj.data) { + download.href = createObjectURL(fontObj.data, fontObj.mimeType); + } + download.textContent = 'Download'; + var logIt = document.createElement('a'); + logIt.href = ''; + logIt.textContent = 'Log'; + logIt.addEventListener('click', function(event) { + event.preventDefault(); + console.log(fontObj); + }); + var select = document.createElement('input'); + select.setAttribute('type', 'checkbox'); + select.dataset.fontName = fontName; + select.addEventListener('click', (function(select, fontName) { + return (function() { + selectFont(fontName, select.checked); + }); + })(select, fontName)); + font.appendChild(select); + font.appendChild(name); + font.appendChild(document.createTextNode(' ')); + font.appendChild(download); + font.appendChild(document.createTextNode(' ')); + font.appendChild(logIt); + font.appendChild(moreInfo); + fonts.appendChild(font); + // Somewhat of a hack, should probably add a hook for when the text layer + // is done rendering. + setTimeout(() => { + if (this.active) { + resetSelection(); + } + }, 2000); + }, + }; +})(); + +var opMap; + +// Manages all the page steppers. +var StepperManager = (function StepperManagerClosure() { + var steppers = []; + var stepperDiv = null; + var stepperControls = null; + var stepperChooser = null; + var breakPoints = Object.create(null); + return { + // Properties/functions needed by PDFBug. + id: 'Stepper', + name: 'Stepper', + panel: null, + manager: null, + init: function init(pdfjsLib) { + var self = this; + this.panel.setAttribute('style', 'padding: 5px;'); + stepperControls = document.createElement('div'); + stepperChooser = document.createElement('select'); + stepperChooser.addEventListener('change', function(event) { + self.selectStepper(this.value); + }); + stepperControls.appendChild(stepperChooser); + stepperDiv = document.createElement('div'); + this.panel.appendChild(stepperControls); + this.panel.appendChild(stepperDiv); + if (sessionStorage.getItem('pdfjsBreakPoints')) { + breakPoints = JSON.parse(sessionStorage.getItem('pdfjsBreakPoints')); + } + + opMap = Object.create(null); + for (var key in pdfjsLib.OPS) { + opMap[pdfjsLib.OPS[key]] = key; + } + }, + cleanup: function cleanup() { + stepperChooser.textContent = ''; + stepperDiv.textContent = ''; + steppers = []; + }, + enabled: false, + active: false, + // Stepper specific functions. + create: function create(pageIndex) { + var debug = document.createElement('div'); + debug.id = 'stepper' + pageIndex; + debug.setAttribute('hidden', true); + debug.className = 'stepper'; + stepperDiv.appendChild(debug); + var b = document.createElement('option'); + b.textContent = 'Page ' + (pageIndex + 1); + b.value = pageIndex; + stepperChooser.appendChild(b); + var initBreakPoints = breakPoints[pageIndex] || []; + var stepper = new Stepper(debug, pageIndex, initBreakPoints); + steppers.push(stepper); + if (steppers.length === 1) { + this.selectStepper(pageIndex, false); + } + return stepper; + }, + selectStepper: function selectStepper(pageIndex, selectPanel) { + var i; + pageIndex = pageIndex | 0; + if (selectPanel) { + this.manager.selectPanel(this); + } + for (i = 0; i < steppers.length; ++i) { + var stepper = steppers[i]; + if (stepper.pageIndex === pageIndex) { + stepper.panel.removeAttribute('hidden'); + } else { + stepper.panel.setAttribute('hidden', true); + } + } + var options = stepperChooser.options; + for (i = 0; i < options.length; ++i) { + var option = options[i]; + option.selected = (option.value | 0) === pageIndex; + } + }, + saveBreakPoints: function saveBreakPoints(pageIndex, bps) { + breakPoints[pageIndex] = bps; + sessionStorage.setItem('pdfjsBreakPoints', JSON.stringify(breakPoints)); + }, + }; +})(); + +// The stepper for each page's IRQueue. +var Stepper = (function StepperClosure() { + // Shorter way to create element and optionally set textContent. + function c(tag, textContent) { + var d = document.createElement(tag); + if (textContent) { + d.textContent = textContent; + } + return d; + } + + function simplifyArgs(args) { + if (typeof args === 'string') { + var MAX_STRING_LENGTH = 75; + return args.length <= MAX_STRING_LENGTH ? args : + args.substring(0, MAX_STRING_LENGTH) + '...'; + } + if (typeof args !== 'object' || args === null) { + return args; + } + if ('length' in args) { // array + var simpleArgs = [], i, ii; + var MAX_ITEMS = 10; + for (i = 0, ii = Math.min(MAX_ITEMS, args.length); i < ii; i++) { + simpleArgs.push(simplifyArgs(args[i])); + } + if (i < args.length) { + simpleArgs.push('...'); + } + return simpleArgs; + } + var simpleObj = {}; + for (var key in args) { + simpleObj[key] = simplifyArgs(args[key]); + } + return simpleObj; + } + + function Stepper(panel, pageIndex, initialBreakPoints) { + this.panel = panel; + this.breakPoint = 0; + this.nextBreakPoint = null; + this.pageIndex = pageIndex; + this.breakPoints = initialBreakPoints; + this.currentIdx = -1; + this.operatorListIdx = 0; + } + Stepper.prototype = { + init: function init(operatorList) { + var panel = this.panel; + var content = c('div', 'c=continue, s=step'); + var table = c('table'); + content.appendChild(table); + table.cellSpacing = 0; + var headerRow = c('tr'); + table.appendChild(headerRow); + headerRow.appendChild(c('th', 'Break')); + headerRow.appendChild(c('th', 'Idx')); + headerRow.appendChild(c('th', 'fn')); + headerRow.appendChild(c('th', 'args')); + panel.appendChild(content); + this.table = table; + this.updateOperatorList(operatorList); + }, + updateOperatorList: function updateOperatorList(operatorList) { + var self = this; + + function cboxOnClick() { + var x = +this.dataset.idx; + if (this.checked) { + self.breakPoints.push(x); + } else { + self.breakPoints.splice(self.breakPoints.indexOf(x), 1); + } + StepperManager.saveBreakPoints(self.pageIndex, self.breakPoints); + } + + var MAX_OPERATORS_COUNT = 15000; + if (this.operatorListIdx > MAX_OPERATORS_COUNT) { + return; + } + + var chunk = document.createDocumentFragment(); + var operatorsToDisplay = Math.min(MAX_OPERATORS_COUNT, + operatorList.fnArray.length); + for (var i = this.operatorListIdx; i < operatorsToDisplay; i++) { + var line = c('tr'); + line.className = 'line'; + line.dataset.idx = i; + chunk.appendChild(line); + var checked = this.breakPoints.includes(i); + var args = operatorList.argsArray[i] || []; + + var breakCell = c('td'); + var cbox = c('input'); + cbox.type = 'checkbox'; + cbox.className = 'points'; + cbox.checked = checked; + cbox.dataset.idx = i; + cbox.onclick = cboxOnClick; + + breakCell.appendChild(cbox); + line.appendChild(breakCell); + line.appendChild(c('td', i.toString())); + var fn = opMap[operatorList.fnArray[i]]; + var decArgs = args; + if (fn === 'showText') { + var glyphs = args[0]; + var newArgs = []; + var str = []; + for (var j = 0; j < glyphs.length; j++) { + var glyph = glyphs[j]; + if (typeof glyph === 'object' && glyph !== null) { + str.push(glyph.fontChar); + } else { + if (str.length > 0) { + newArgs.push(str.join('')); + str = []; + } + newArgs.push(glyph); // null or number + } + } + if (str.length > 0) { + newArgs.push(str.join('')); + } + decArgs = [newArgs]; + } + line.appendChild(c('td', fn)); + line.appendChild(c('td', JSON.stringify(simplifyArgs(decArgs)))); + } + if (operatorsToDisplay < operatorList.fnArray.length) { + line = c('tr'); + var lastCell = c('td', '...'); + lastCell.colspan = 4; + chunk.appendChild(lastCell); + } + this.operatorListIdx = operatorList.fnArray.length; + this.table.appendChild(chunk); + }, + getNextBreakPoint: function getNextBreakPoint() { + this.breakPoints.sort(function(a, b) { + return a - b; + }); + for (var i = 0; i < this.breakPoints.length; i++) { + if (this.breakPoints[i] > this.currentIdx) { + return this.breakPoints[i]; + } + } + return null; + }, + breakIt: function breakIt(idx, callback) { + StepperManager.selectStepper(this.pageIndex, true); + var self = this; + var dom = document; + self.currentIdx = idx; + var listener = function(e) { + switch (e.keyCode) { + case 83: // step + dom.removeEventListener('keydown', listener); + self.nextBreakPoint = self.currentIdx + 1; + self.goTo(-1); + callback(); + break; + case 67: // continue + dom.removeEventListener('keydown', listener); + var breakPoint = self.getNextBreakPoint(); + self.nextBreakPoint = breakPoint; + self.goTo(-1); + callback(); + break; + } + }; + dom.addEventListener('keydown', listener); + self.goTo(idx); + }, + goTo: function goTo(idx) { + var allRows = this.panel.getElementsByClassName('line'); + for (var x = 0, xx = allRows.length; x < xx; ++x) { + var row = allRows[x]; + if ((row.dataset.idx | 0) === idx) { + row.style.backgroundColor = 'rgb(251,250,207)'; + row.scrollIntoView(); + } else { + row.style.backgroundColor = null; + } + } + }, + }; + return Stepper; +})(); + +var Stats = (function Stats() { + var stats = []; + function clear(node) { + while (node.hasChildNodes()) { + node.removeChild(node.lastChild); + } + } + function getStatIndex(pageNumber) { + for (var i = 0, ii = stats.length; i < ii; ++i) { + if (stats[i].pageNumber === pageNumber) { + return i; + } + } + return false; + } + return { + // Properties/functions needed by PDFBug. + id: 'Stats', + name: 'Stats', + panel: null, + manager: null, + init(pdfjsLib) { + this.panel.setAttribute('style', 'padding: 5px;'); + }, + enabled: false, + active: false, + // Stats specific functions. + add(pageNumber, stat) { + if (!stat) { + return; + } + var statsIndex = getStatIndex(pageNumber); + if (statsIndex !== false) { + var b = stats[statsIndex]; + this.panel.removeChild(b.div); + stats.splice(statsIndex, 1); + } + var wrapper = document.createElement('div'); + wrapper.className = 'stats'; + var title = document.createElement('div'); + title.className = 'title'; + title.textContent = 'Page: ' + pageNumber; + var statsDiv = document.createElement('div'); + statsDiv.textContent = stat.toString(); + wrapper.appendChild(title); + wrapper.appendChild(statsDiv); + stats.push({ pageNumber, div: wrapper, }); + stats.sort(function(a, b) { + return a.pageNumber - b.pageNumber; + }); + clear(this.panel); + for (var i = 0, ii = stats.length; i < ii; ++i) { + this.panel.appendChild(stats[i].div); + } + }, + cleanup() { + stats = []; + clear(this.panel); + }, + }; +})(); + +// Manages all the debugging tools. +window.PDFBug = (function PDFBugClosure() { + var panelWidth = 300; + var buttons = []; + var activePanel = null; + + return { + tools: [ + FontInspector, + StepperManager, + Stats + ], + enable(ids) { + var all = false, tools = this.tools; + if (ids.length === 1 && ids[0] === 'all') { + all = true; + } + for (var i = 0; i < tools.length; ++i) { + var tool = tools[i]; + if (all || ids.includes(tool.id)) { + tool.enabled = true; + } + } + if (!all) { + // Sort the tools by the order they are enabled. + tools.sort(function(a, b) { + var indexA = ids.indexOf(a.id); + indexA = indexA < 0 ? tools.length : indexA; + var indexB = ids.indexOf(b.id); + indexB = indexB < 0 ? tools.length : indexB; + return indexA - indexB; + }); + } + }, + init(pdfjsLib, container) { + /* + * Basic Layout: + * PDFBug + * Controls + * Panels + * Panel + * Panel + * ... + */ + var ui = document.createElement('div'); + ui.id = 'PDFBug'; + + var controls = document.createElement('div'); + controls.setAttribute('class', 'controls'); + ui.appendChild(controls); + + var panels = document.createElement('div'); + panels.setAttribute('class', 'panels'); + ui.appendChild(panels); + + container.appendChild(ui); + container.style.right = panelWidth + 'px'; + + // Initialize all the debugging tools. + var tools = this.tools; + var self = this; + for (var i = 0; i < tools.length; ++i) { + var tool = tools[i]; + var panel = document.createElement('div'); + var panelButton = document.createElement('button'); + panelButton.textContent = tool.name; + panelButton.addEventListener('click', (function(selected) { + return function(event) { + event.preventDefault(); + self.selectPanel(selected); + }; + })(i)); + controls.appendChild(panelButton); + panels.appendChild(panel); + tool.panel = panel; + tool.manager = this; + if (tool.enabled) { + tool.init(pdfjsLib); + } else { + panel.textContent = tool.name + ' is disabled. To enable add ' + + ' "' + tool.id + '" to the pdfBug parameter ' + + 'and refresh (separate multiple by commas).'; + } + buttons.push(panelButton); + } + this.selectPanel(0); + }, + cleanup() { + for (var i = 0, ii = this.tools.length; i < ii; i++) { + if (this.tools[i].enabled) { + this.tools[i].cleanup(); + } + } + }, + selectPanel(index) { + if (typeof index !== 'number') { + index = this.tools.indexOf(index); + } + if (index === activePanel) { + return; + } + activePanel = index; + var tools = this.tools; + for (var j = 0; j < tools.length; ++j) { + if (j === index) { + buttons[j].setAttribute('class', 'active'); + tools[j].active = true; + tools[j].panel.removeAttribute('hidden'); + } else { + buttons[j].setAttribute('class', ''); + tools[j].active = false; + tools[j].panel.setAttribute('hidden', 'true'); + } + } + }, + }; +})(); diff --git a/htdocs/vendor/pdfjs/web/images/annotation-check.svg b/htdocs/vendor/pdfjs/web/images/annotation-check.svg new file mode 100644 index 0000000..71cd16d --- /dev/null +++ b/htdocs/vendor/pdfjs/web/images/annotation-check.svg @@ -0,0 +1,11 @@ + + + + diff --git a/htdocs/vendor/pdfjs/web/images/annotation-comment.svg b/htdocs/vendor/pdfjs/web/images/annotation-comment.svg new file mode 100644 index 0000000..86f1f17 --- /dev/null +++ b/htdocs/vendor/pdfjs/web/images/annotation-comment.svg @@ -0,0 +1,16 @@ + + + + + diff --git a/htdocs/vendor/pdfjs/web/images/annotation-help.svg b/htdocs/vendor/pdfjs/web/images/annotation-help.svg new file mode 100644 index 0000000..00938fe --- /dev/null +++ b/htdocs/vendor/pdfjs/web/images/annotation-help.svg @@ -0,0 +1,26 @@ + + + + + + + + + + diff --git a/htdocs/vendor/pdfjs/web/images/annotation-insert.svg b/htdocs/vendor/pdfjs/web/images/annotation-insert.svg new file mode 100644 index 0000000..519ef68 --- /dev/null +++ b/htdocs/vendor/pdfjs/web/images/annotation-insert.svg @@ -0,0 +1,10 @@ + + + + diff --git a/htdocs/vendor/pdfjs/web/images/annotation-key.svg b/htdocs/vendor/pdfjs/web/images/annotation-key.svg new file mode 100644 index 0000000..8d09d53 --- /dev/null +++ b/htdocs/vendor/pdfjs/web/images/annotation-key.svg @@ -0,0 +1,11 @@ + + + + diff --git a/htdocs/vendor/pdfjs/web/images/annotation-newparagraph.svg b/htdocs/vendor/pdfjs/web/images/annotation-newparagraph.svg new file mode 100644 index 0000000..38d2497 --- /dev/null +++ b/htdocs/vendor/pdfjs/web/images/annotation-newparagraph.svg @@ -0,0 +1,11 @@ + + + + diff --git a/htdocs/vendor/pdfjs/web/images/annotation-noicon.svg b/htdocs/vendor/pdfjs/web/images/annotation-noicon.svg new file mode 100644 index 0000000..c07d108 --- /dev/null +++ b/htdocs/vendor/pdfjs/web/images/annotation-noicon.svg @@ -0,0 +1,7 @@ + + + diff --git a/htdocs/vendor/pdfjs/web/images/annotation-note.svg b/htdocs/vendor/pdfjs/web/images/annotation-note.svg new file mode 100644 index 0000000..7017365 --- /dev/null +++ b/htdocs/vendor/pdfjs/web/images/annotation-note.svg @@ -0,0 +1,42 @@ + + + + + + + + diff --git a/htdocs/vendor/pdfjs/web/images/annotation-paragraph.svg b/htdocs/vendor/pdfjs/web/images/annotation-paragraph.svg new file mode 100644 index 0000000..6ae5212 --- /dev/null +++ b/htdocs/vendor/pdfjs/web/images/annotation-paragraph.svg @@ -0,0 +1,16 @@ + + + + + diff --git a/htdocs/vendor/pdfjs/web/images/findbarButton-next-rtl.png b/htdocs/vendor/pdfjs/web/images/findbarButton-next-rtl.png new file mode 100644 index 0000000000000000000000000000000000000000..bef02743fc108697e14e0e5daab8181f7ef91dd8 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6`aE46Ln;`jUU1|(WFXM`uzZfwf<{~}+$G0pUl&6i=kdI{(<22WQ%mvv4FO#q)8O6mXr literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/findbarButton-next-rtl@2x.png b/htdocs/vendor/pdfjs/web/images/findbarButton-next-rtl@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1da6dc949cd6451c2d8ea39e1618d0323d2e1ec1 GIT binary patch literal 304 zcmV-00nh%4P)kdg0002@NklJ%mRW)o*bZ%{dl2K@N_?~eFJnrG5D`)>eWA=I9=*xrZ>GuI z4!;9U26Pv$_Z4XH%%iCpph2GpV-c{*6Zhs6SfR_EJq5;V+?sh4&K}p+ z6sU+@u52lw#15CH6i}kr=3>#xgHlS7GA$J0E366+j!0VQ&&@3-ef{(7H#?13Ev59AjB0000QONN1jjx$vyv5uZYI@G&FX~xujj12+YK~w v*fr|J-NDGo&9wKH*qTY?mdrSMOX2+jbf@g_m202_00000NkvXXu0mjfGEh>( literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/findbarButton-next@2x.png b/htdocs/vendor/pdfjs/web/images/findbarButton-next@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0250307c0d10b0c0a38a8381361ec265ef3080c8 GIT binary patch literal 296 zcmV+@0oVSCP)kdg0002*NklD^w4Rl6cnRtQcFE3nm0&QVWiRnO%{h3-*x?K4w z&|kYa uWt-+4V4d~Up94HjH;lQ?oa>Bv?A`$+U7<=?MIved0000QONN1jjx$vyv5uZYI@G&FX~xujj12+YK~w v*fr|J-NDGo&9wKH*qTY?mdrSMOX2+jbf@g_m202_00000NkvXXu0mjfGEh>( literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/findbarButton-previous-rtl@2x.png b/htdocs/vendor/pdfjs/web/images/findbarButton-previous-rtl@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0250307c0d10b0c0a38a8381361ec265ef3080c8 GIT binary patch literal 296 zcmV+@0oVSCP)kdg0002*NklD^w4Rl6cnRtQcFE3nm0&QVWiRnO%{h3-*x?K4w z&|kYa uWt-+4V4d~Up94HjH;lQ?oa>Bv?A`$+U7<=?MIved0000fwf<{~}+$G0pUl&6i=kdI{(<22WQ%mvv4FO#q)8O6mXr literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/findbarButton-previous@2x.png b/htdocs/vendor/pdfjs/web/images/findbarButton-previous@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1da6dc949cd6451c2d8ea39e1618d0323d2e1ec1 GIT binary patch literal 304 zcmV-00nh%4P)kdg0002@NklJ%mRW)o*bZ%{dl2K@N_?~eFJnrG5D`)>eWA=I9=*xrZ>GuI z4!;9U26Pv$_Z4XH%%iCpph2GpV-c{*6Zhs6SfR_EJq5;V+?sh4&K}p+ z6sU+@u52lw#15CH6i}kr=3>#xgHlS7GA$J0E366+j!0VQ&&@3-ef{(7H#?13Ev59AjB0000G{p)>hLyxD99 z76ej)=-vic0UL9~!GgO~9_MsOnufoUx`QHG)5E@a!o?nT8@#*2`fMlI9X~2&%Qwtd fAElzRww7{H`T9z)QIL|gUwP@h-(DMO`2YPI1=f8x literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/grabbing.cur b/htdocs/vendor/pdfjs/web/images/grabbing.cur new file mode 100644 index 0000000000000000000000000000000000000000..e0dfd04e4d3fcbaa6588c8cbb9e9065609bcb862 GIT binary patch literal 326 zcmZQzU}9ioP*7lC;0HnjMg|5k1_lNVAO;FCH~=vt5Q0Dhn8YOh|NoCEh)sn30RsaF z^8>N`2L=Xv5dHz=L$Uk|1_tQ_266z<4TQl5{{R0$_yG_fVE_NW0fd=>Y#@FBr9t9P K<`XsxO$7j30D*Y` literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/loading-icon.gif b/htdocs/vendor/pdfjs/web/images/loading-icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..1c72ebb554be018511ae972c3f2361dff02dce02 GIT binary patch literal 2545 zcma*pX;2es8VB%~zPr=ibVMCx-JQ^BhLDAsK)^**h(ZDp9YGuzZ%~j!}+w%FI;|aC7){7CdVvG)P{bng1y9Te*f}~*`1kQl$jwb z$tlW~rRS!X?#xfm_&6tTdp_`cjgYwbRFLNdoJCN$S-yhg`ZnC-yvedRSmOh%;Y`Gl6bY$Z-}#C=#F4%9!I1b zWQ~f+9P?;vhCxWwlwl=lrWG|7IYo;{jjmzJ5R9?f>n%-d@>kLINUc z4wM5dAO;kq<$}Dk{2-u0$I6@2N}&cUx9nmV1dYc8jfC}%=F9WCg^OQK9C6poh#2!A z3^EU*UFZvS^)?bu3T?J;@Ahb~%I?+@4!l5!*TjC}GIslNan-RCrrd~PdHYnNLJk+m&`$Y+NV(e>CCu%R#_8GqY4cv#j`#uRWdsg9DxWy(?oOvgCU}&@jy%c!H&-Q zqXJxajAtmQRoRa9V-RFXXh-bK*;Fum{BjpkYQGX~i@OZ^Dx0n&H}kvGKqQ?w(6iGXu_g08T|_hp#ZvFzIwKF*a=oMJ~3UGAjZ?g}GOxm44td zXoyYrU*I=y*vHv89hkYH(v5R#wc)BC3dZJKb3K)f>zaM3%JP(mpecViP0eKKYf3zy z->jx_mc?mCtPEvCQ?uppk?eLJt}_IR7giW%Jr)RyI!+E-voIs*lXI*z`GQc_&D#X( z{6G};HPYj6O|$lXxBJeDaweqa{4L=tOZCjTI^&UOxXg})LRG_cr^B9Rqt(i5ORbQX zq`_xCRsH>xEYY%&*Nyi#{S_JZNlTm#K56`RI%7^amom;*h90Si&g1CfaFV3D|a!`3Y-GKKbL*KSbl z>I96`TR@CqPJl(>QqB~RvK~-U)`e`l4LIqj+IU^~yyIe*|BRVB>4Bup%j{tLdKz4j zY^<8P8m~GRGz*yv0&-RJE+-keJ+%m3wNeopzsltWd->eWmBVwUr)pX` zK~CD<;~Z*Uy3W`3+MrEYxm5qYQ!z%YI;y7DTG`UVH0;@{M{!B&id_}3DBQ?zsotuR zEGLdRx25nLm%-wjlnEi;-aN_1S7???rO~WgA67jjr&(vRa3y$u#kqJbeKnw z{!T!1li9>M+sJ6AUe+*9d}2uGjhzd z|L1Rtp8uTGYyZoQ*`DS^m2dw-X{a)l+3m?ncvn^+O>)hdd3(hMtlhkRGns{<8c0I! zDDjpmwtj?@!6kA|iu3q+Ai;@JR+ zfk+ln&YFC{4bhK6IxVgLs4W%^8Lk`qzWU*L>yq0A3;l}{!wKZ!ue)C)SKI)9dl1hl zhIRLV@8E}rwvE{gX(}$f6x*k)_`*Ijt1=EU-Ls6-(phomeQBgtUs z5Xz~Cd*nE)Ac!0i4ep}Z1AugMB(&F?)#CU{Qc{Sp^vKsdL}vRB30H+Bbzrn`M##H3 z{W8dc_mDroEE+p8_}mnJtzZ4!RNe)zhB)Ds;S57nYSJxtek>^~&(7B+N5MPf2+2xx z5Dl&4X|c@f{Kd|z1r+N|$DmsoVp*3yOdxT^J^-VAk)Z@$4^XrPrFP-Co+MXZ+KJ(W z{JNYvraLLWA;&tRhIKOvhW|HC|L-dLvAUF(MG0(Nl?4tB{RzN7I(}Cb%hwN{crFC8 zji#aJElKvDFV+&VI1V?oUMA>*kto0^;3W8FQBSZ|{ z$v~TqE=(8DZa^i$^oht&h};P1N&wMXorKh*Z68gPV&ouy>%f36Oqkwemyeas$Qbz# zV?7Jy%o7KY6^I=P@eCji%W`o5sf(5hySYo9$l4e2`(hIV_?=H-#R6}0$WVA|*(K@3 z=5?@RlcLh(meW%A4)hGzcvEpm(_w?>zhL*i&s9$2>r zAtk{8Cia|+Y+V!uX9BtpXoF%lswuRKsM!pSs!?yhlCy!269K0|b M?FSZn2B>%I-}ej|s{jB1 literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/loading-small.png b/htdocs/vendor/pdfjs/web/images/loading-small.png new file mode 100644 index 0000000000000000000000000000000000000000..8831a80588dcaffe9a0e075f3d00066faed3d482 GIT binary patch literal 7402 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 literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/loading-small@2x.png b/htdocs/vendor/pdfjs/web/images/loading-small@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b25b4452aa1a52181c324020c39175e0f8f425a2 GIT binary patch literal 16131 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 Hu0mjfs1U=| literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-firstPage.png b/htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-firstPage.png new file mode 100644 index 0000000000000000000000000000000000000000..e68846aa5f609f48e89b25692abdd85c2de7ecb9 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6sytmBLn;{eUNGc3kdg0002dNklu=O3C8jVap{PU;A41oOzOaJ;Key$ zQU*)*)D8A5V+RX%R3~;UVg_@zlxMcgLkF6gqD74k8E7`-9X9B`!HkM$kBXUZFs0+2AR>HC Q6951J07*qoM6N<$f&iRyUH||9 literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-handTool.png b/htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-handTool.png new file mode 100644 index 0000000000000000000000000000000000000000..cb85a841b18be0235fc6c6714223609e1097d1f4 GIT binary patch literal 301 zcmV+|0n+}7P)J24O| z%QaP!}IU9e5CrM>v9W%fW1qojxzD%=Q00000NkvXXu0mjf%W{5L literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-handTool@2x.png b/htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-handTool@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5c13f77ff003460753a39d9e406c0020231cabda GIT binary patch literal 583 zcmV-N0=WH&P)kdg0006GNklsDncb1tl(lO0{5H zQE6&xnvkURPmGNv7*b6L!Th=V`QF__%SrC--TQe6-{l_O7Xsbk5HrdU;SJOpV0KIxYb5^yMTWCRz8#4m*=<-RYnu#WwP~*n506n@GajHIFM;%}f zFY^Y^aW7$86$8At-QN{yj&9v@sxj9<1L$1g8gpFdYaS((q*!NG$}P*BQ`PAzs=(Gm zuGm&PFW5_{a(v>7UM*fj4M<$)vPc?t4M_V?iB(Vmj)#B6xFk|MFXcmJ%3gpyBWK$S zOgPLXDIdy{Wt3sfzR7D`46gK~gc4x?9LbFFLr|r0SztMRsut(_Uiii;Sc}-002ovPDHLkV1iPk2)h6P literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-lastPage.png b/htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-lastPage.png new file mode 100644 index 0000000000000000000000000000000000000000..be763e0c4a02cab5d7842c8999faade8c47059bf GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6$~;{hLn;{eb{X<9DT=r}_bOuI z*S;pAB4U5DMLQrPIWf`wN4P|1^q&c>d5`zJymvU>ZK0k3(_cShdv}w=iShns``k;6 z|9a2*kZNL>>-ng7x$0%-AZ2dv-evusD-M1!nVC^#Cw7NZpelLZ;<(0t-0Qey{BDRJ YJiB<=q@5ck0$sr1>FVdQ&MBb@0Mz?GUH||9 literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-lastPage@2x.png b/htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-lastPage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8570984f2d9952ebb8543a6c8bbca2408be3fe90 GIT binary patch literal 276 zcmV+v0qg#WP)kdg0002nNkl&Czfjc{g zj6%Epm%+!Y13m~u!|`;DXFGIF9(|doYCM^ve(0R2@MwmrSf3_JJZz&%)@Kv4!2LS1 zV0}4}<8B$5v%a3la66C8Hg!&j6gN{uYNm4{!PR#}Vyttbi*Y&9#dbQsBEkhDB5R!! zZ3qqBhHg41f;Mp0Iq}XP49B>3;NV a-`N}fhF>K<1*gRT0000IXDMlYJjH!bP6)MzmI9A`JeaMrW zP{;Eb78VxP+o^u+tz)%w>Y7tjQAHKiynbv>Q2u<>aK#ZG+*=LzzJU35q7H&2Nb8UG z4tHis9hc+YH714zU~vDD-l4 zafLJ>w7618y&iZMZti8jkXl?(NPqY>rLdN@q_C#sSI-x0yte^Yo}fkdg0007_Nklh8e7=r0Vcp)Y9Pr|5OlrS&sF1(Z=>P7`I$&2V#B8FQ@ z#xx11n2B@MtaN4N=HFayP|U&0*qP^fzdz3rbvx5{@V?*A7yO;ybIvoweHnhs|HM2| zKI2b<|A+)(s$d&GYW}mq85+9hKEosr^Z)ai~BEfeTNO#3*wjb*wP4^U`OFpp(!|`#~2s8 z`FYx|7Q`+s4a0>};|dO&@9pxBxm8wN7W`#thbT7CssC=I zTAKz9&;++jKrz^NzcAADM`@&iv`7W`N3qmw3RZ&e8hPgH3^G7Qpcx$&o`vOn_6(y+ zZas$_WXt7wl$(nFs}3E|%QjcV-;}eBGn_%TTz6djMaiyYk%erz{(qejCHZ9%NywHf z{V9J|qQg-{A#0$GFYt5L61R9<|A{{;zE^$lK~~|*404N++(Ztym|$2*&p8|pI3TP1 z`Lol$YO^mh!s0;lvGNuWs=UoKADO*y*%)pt=Qi+&XoY ztsnG;h7yz6Kt7lcW&?@I(9rw6m9415J&yxVq8aUYUbLfGo*u)4nY;A)5mO4m-#Y*R N002ovPDHLkV1o45W##|? literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-rotateCw.png b/htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-rotateCw.png new file mode 100644 index 0000000000000000000000000000000000000000..e1c7598886bd49e194764015577b766aadd82288 GIT binary patch literal 359 zcmV-t0hs=YP)x?uT5p77|>RR|+!(Z0%SPBBerLNU!<(Nsaeb!tN(Ep1s3u|3Lqc zXA482_4)TIcUT&Mg&ka9PU%bJ(4vmb9tomENw9}a{m@cGL+1YGpu!Cenlx!}GpOuu z%G3xmxmwG;o&*28mt2*pekdg0007!Nkl7D_=c-w$rRM%>rppb3*+sVXe|le>e}?;(Er{M9e0<;c?0eV_qyI8^j_+&`1R|)U z;XGO}fI0Zt9GrYA<6DaHV~zRM1twVFK>**djW85SZR6yh2FUfJb!D6Sq1r_=#U#5b6Imp7B9ZQ6dlA8G-$eSq@9Y$Onc`L6}j4VAGA1e z1=skwPmHutJ|&xcR~vkBjDocAI6jNzhpOjziuITk{*=Ke2$x|I3s}%U+A3|7NKzG} zAk>06vGjn6XdlOMA5}2zo(U{7GxQ7|5$+DtKDyz>3|zQm6o@A`;T9ZPLCJCIg`0Wi>*q{U9GDRL?<%aEPKbabJ1?6A$s(GnBf}UMn8ID;D}MVOPR2!KxT(5{c95|#cUhyO zcqQP07oE6>JRD?syzAu0o}Dy0+GSP$>9RT+BSRRAndFjb%&=+RP43=DhB_K4i;_&1 zr8a2C%jAM~ORYRlKIV)PyKSob%7 literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-scrollHorizontal.png b/htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-scrollHorizontal.png new file mode 100644 index 0000000000000000000000000000000000000000..cb702fc4d11149a31f22495ad285b98cc3cf21c4 GIT binary patch literal 218 zcmV<0044v4P)*%Ckqm%#nzTkbB2o8#L5J}@;sIu@+PaMFaH&X@x>v-#* zT%ew8%}^g;^@P+XsOmg~P#3(NpsFc^aQ}m07`CO9Heo%E<1FX=-1y2jJ^yvx04Rl6 U>n3b|U;qFB07*qoM6N<$f*JE%`Tzg` literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-scrollHorizontal@2x.png b/htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-scrollHorizontal@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7f05289bb157e3a8bb79578e556ff6c886c9d57b GIT binary patch literal 332 zcmV-S0ki&zP)P2JUa$YvE|?$&qg2(0Xi}8 zfoQyg@~LjHi+wr*R{+R4v(^@qYf;}3C1d=Jb-(>N~acHj9o8x-B5D`bbPkWsoqwjXW=vA#*Zmj-Z%P*2A>KL^Q|OZ0(MBMLPdkr?-{ z27ne&b6PP}y`|PHi1mC~N<%9EN$j)cHxNr0th8Q2!`SGRxh1(e4YT!t_x?9B|Fu34 z0HOCSdjf6S?jL&K?)AV2fVYV_V>Wz|+?J-{2EZ}1^KEL)g2guX$3!N|z)Jzp?YPJZ vSpfVe-mcm-OoT_~Nu^5~qO z_Vl`zF1R?>lAa|fmnyjZ_yu(i?l0-Q#UsEpO`prM4Cmk~zttRk0ipk+h*XpK1rZ4>56aa00000NkvXXu0mjftGk6u literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-scrollWrapped@2x.png b/htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-scrollWrapped@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4246141192214e00d2b789685bd28591e355a40d GIT binary patch literal 490 zcmVV)ZSj4_BA!t|BfA0p6o-NP|_ z-gVvMX&(6Z^S~1kT|0VtCO-qX6Ljp^OL+lsE6cDYqFrU@YmK#CC4glu7fcbJ(6);Q z6Yo$_>hG)^ZscgEazTmFN)bvG{NU2@hjZkb%Z9AYlNJDLDAB?PXXKK=Q!O2*!UzUO gM}`~DfHTU0Py7T36}?uA&j0`b07*qoM6N<$f)Qxjl>h($ literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-selectTool.png b/htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-selectTool.png new file mode 100644 index 0000000000000000000000000000000000000000..25520a6fe58475cf3e16e254ef2ee0c4723b6644 GIT binary patch literal 461 zcmV;;0W$uHP)wY82{uU_46Wo2av>gwuD zpqMa7oLB=G#l*yP-@kwV<;|NnKi<82_jTdIg)`aN*%g3ttV9_A#ESRt-+u-&0BXp$ zvuDqqv#_wRCg>%oq}Z`z$4-GXzkdDtCkVfN`}RA?(5kAcEMmOGzir#L%`gLC80wlY zt5&U=4^$(MFP3;VZ{EBHn*kt~fCBi&jT`$bDk_w4d53HH^5wHYiqQ=CK7IQ1Re5=N z@osKz`uM_wt-iiK3lw{SpEF`9ACbC z`TF6*htForm{A23<3(3Q$VI$Bjp4$=!Wuv}H?r*j0p}3KNklcgHMp4GRDGA76Lho0b%r=i4y(~0SX9u_uY51o12?IS-W=a4t$>i z0)VU5A_Qi6ctJtIMT^B^(CKtN+1c5-_-#IO!-KgbXz4)si4!Nzn$QdegT-hxnx1^} z$w%DW+}7g1Sm3QyNO%H#at#U}EuRbH&xd6`4 zkRVTusi~>?EF|F*5fXt7G95NQI+6gj8x)e)UVH6%^jX6~;sX>%MF`BwxYE+n60(}^ zRxN-tG$aUF-IOU)4mukWUW_6S9XfQ8?rvlOBZmaPLHt*=%lk|NZw*VmwcKs-^@2WLaLLL*unzyvaK|J9XcF`|Xd|Hy%SC z6kff0_2l~X>z9$6_BtQ}U$CUIvhojG1mNAWWXX~n&}TQ858^=>@B?m+B%&9XjdQ^p zycVcYFGX1W8TxDhQLMiUPd-PMqC1#;|NZyh!D|7x8t;Gc?;QG$>&zJ$8F}mg;|U~Z zi&50clP43^+w%VX`yXm;ZSCWs;gC}lGUU!`io3JbPyt~pR;)No8O@j0ZMWTaKYl-W z(@i%$NO!E>ElJ=*4?T1jtA^e{a_U@wTCfvK$w(rQ53k_vR^j)VV0~R(U9~zt$d&f? z_BNE{U9|q4IY&ysf9lk!tE^V59;cyiaU>&aBS8R|a`EEDG)!n5$%QxHeDg(IGY|MV zdR7pDS7c=56b$$$J}+RCdjMA^V)6IifB)r3F3_H^bLY-8bcWT?3N^ehtU zOfCqV(VihBN!rlT($Y+mss*&Qwf%-`5`eoc0vyT{FzxQU@4gu>467I2-Q69JKmK?b zTU lPt+c){6>K=;A6{~@ISN(|7jO`x6l9p002ovPDHLkV1g~E2H^kz literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-spreadEven.png b/htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-spreadEven.png new file mode 100644 index 0000000000000000000000000000000000000000..3fa07e703eaa56fa201db3e4ed6cde8bf849d608 GIT binary patch literal 347 zcmV-h0i^zkP)f*c{dlCL1q@VmAOItx{sSlR;WCL2patwCy#$P9 z!#;o~U>_)eWneV7(o#p%hB~JXrl}QwPUoUJqYhQPa_|N$0IR@xL>#N#%t23mO7{06 z;#BSB4j$ACwVCvW`uL4ssS`)8q~5z$bWfY($TBzu~7bp@DAwE>`)HK?lxz&J3i9#$X#I-SmCQ52p0lXSb?vMkG~ te!K)|Hk zJ!n)x6otRLCTJlEs31{61T7RHpkj!XC@2;diikhp52Uab1RFciK#J5BS_mo#f}oLf zMnokcVh}W95>yBX62x7QBud_~$lYZ!dGj`4Vc}jFc4y|C;m(;eb00LK5smoY!>WHI zJpy*+U=(A4VKY0t05s3v>9{;jbuA0|VFKd;K#4@F^O)J@D1osAJ{+s{&1?%mQvk?v zNL6B%qex1rdYA=?G$lv_zztyB`x}81z)_%7CxL0;Ht-mj1e%?H5;&4`EHw!~cI3$f z*@!DJRg^#md;+@6Y)aA&ckcFRaTO?#1piWktnD>>_BPdk-{4Q3*W423|m~tyV d$^SQ3`dEaa-jzTV1)wV!JYD@<);T3K0RT5nKwSU; literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-spreadNone@2x.png b/htdocs/vendor/pdfjs/web/images/secondaryToolbarButton-spreadNone@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8e51cf3b7d6ebed644db207d4e99391898ff3952 GIT binary patch literal 261 zcmV+g0s8)lP)PM>6+3`IT=LQA_{vFT; zlDs+RCMl%Ic?WRmE#NVeKp_9*1#s5nJ+5#oSIC?~P!|Cd{-d=AS{%RvDO+ye>HrsR z-|WKH60jo7L;!p2fwet=%G{Tw*wq0ldjpnZXubz1j3TVY@SE&?&K6Brt9iEQ0j?;| z?hZ(6nN|*P>ry&s15--RLWKCuv3(r~AzWjOCrzyPK8?rbz|Y_X&cCXl5!ijiZAtWjM3s91u3Q6yMb5v`(3@v(c=@2 z@EUiUVsjkhV@>c1Yps>TB#)DeewI?Ulf1(jbk_un>O&pm0+;wwN_mrH4^OT;7~wO% z;V<@a&?J~u@iTnId;Dn~qzcxtf!|F#aF%4Ni61RyRG{zs@8j{fZyO$lq3gQt(JH=! q>2&&HHk*yxfXQUC{DoEgzr__9eVLMZ=Mj zyK59t6vlritY{&tt&m2HSSg}GQLwVM5G}OO%0?6mL5Zl9O+>`Mz*?*WwyAOs;RFrC0C#sW)b zcBTeemp|&bluV_|Lix~v_W?i|M=L&NHWfMWE`ty6M*q!hKR_n{lnJ3quuMcG7pXQ( z&5?1!2t)(0NXPmPB~Bl zpMVKTJAli;ZeS;H(hF}0tTm-Tz}-wCsima_OnUx9eZPPg9+kcBP}x)i%JgrUxK9;f z*gXT_wwb+=WWfEXqmpeHJCiezN*)%iNL&>ee{<50-W9uM(GJ~swoAZ&FpJ!8JG=#Rafw{VGs>A zv4Lw547cH8V$52!Kt_BsJ088+tIX1g*R$5e?O0P0vc)!RYULV@ilHcq)o9i$G5-a~ zu{8?hTTf9GD;sK{*Xzyp`~6*;`HbpzyG4ArRrxWE>7UUb)UPDB$k`IH00000NkvXX Hu0mjf-&h!* literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/shadow.png b/htdocs/vendor/pdfjs/web/images/shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..31d3bdb14f1d67953d18dc04e73db834aaa200f2 GIT binary patch literal 290 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 XtGDvpiMgkM4q)(f^>bP0l+XkKeAzzU literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/toolbarButton-bookmark@2x.png b/htdocs/vendor/pdfjs/web/images/toolbarButton-bookmark@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4efbaa6758dce6ea82f9e03e81c0196cd806b266 GIT binary patch literal 260 zcmV+f0sH=mP)kdg0002XNkl|Mj3PYt*CIh*)L;+Ye)qJLer!U=dbLBLZSzSesM4tY9KKocB+w3G#Z zP#|$ck0S&$A%{+O@CHd@not;m^nk=r!lx-oOkfDo1ASdr=)nV-#q?0Gf`(oI0000< KMNUMnLSTYMTxkmc literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/toolbarButton-download.png b/htdocs/vendor/pdfjs/web/images/toolbarButton-download.png new file mode 100644 index 0000000000000000000000000000000000000000..eaab35f09e12fed1a285ca765b38846f84ebbb91 GIT binary patch literal 259 zcmV+e0sQ`nP)kdg0004SNkl) zyTrz@9NlC#^DUV~uyB6O#`Wc|{GJapsNf}n_~s#6@aR;~Ks|!^o;hKkb<`q>uf_@c ze2Ny_{735Rz+(^grfCv7@DMF@(?E&?)gFc+;s(Y=f4GnKw)K%<_IcMs6%8~k4%~hd z1#ZH&m*NR=jd9Z9?xHxKc#XI|a&$D7>pcNfCv2 z6(}mA@U8*{MHJpuAa5+piu*}@=C6x$-8&9=MtcJe#2}8pdIkrw28vjvgyHy0F}R~Z zCUA)rP9TO&f3a5-II~coM6B}%`OpmoPD3uR3@7y8J#|5W6U7S>1Ne&^?G!jBIjmz4 zBlw35uM~LQ#}Ub*j1tayY3;VeknSU$Z13T)Kdqf~GA)J#k0F^Bw@*|4^-q28r{Use T)~jCX00000NkvXXu0mjf;mWr^ literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/toolbarButton-menuArrows.png b/htdocs/vendor/pdfjs/web/images/toolbarButton-menuArrows.png new file mode 100644 index 0000000000000000000000000000000000000000..e50ca4eee46e25d92e06847004f323d616237f85 GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^>_9BQ!3HF6HKu+5QbwLGjv*C{$r2tP{{OG9Q;1_& zbWt^;p+Z-{zWI{QiAmlEggExJ)R+qxP213Hu-B-8fx+-v^k(la_imtW22WQ%mvv4F FO#tGFAX@+c literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/toolbarButton-menuArrows@2x.png b/htdocs/vendor/pdfjs/web/images/toolbarButton-menuArrows@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f7570bc0d30db3dafe54aa7c1fe92367690f5046 GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^d_b(g!2%>Zo;S(>sd!Hp$B+ufWQooP^)>=V3JT0Z z$G`noR@ib>ZRMZ;zy7B?RLGuin*8K{y@Up1n}eABCY96wr#d)VuzZRTnDjQlktL_y z<57djB$XEmhvE+MurwWXw|F2ZV0`Mr1B0n74EE`D>#U8d6@XSTc)I$ztaD0e0s!v6 BGzG;VmC z;q~VKH(~JG$%=&H*l#BhBA@m%+@JRU8U%hjmgvvG%fOT9|Lqt|?CCOwE9L($f#A18 zKxs~}zd3BF({67qbqF`wWgvfL;hE+U&_WnNzfk1a( t2EvOl{_oukEDQ`x40a3-IG`;90|2DgL5N;Bd29dx002ovPDHLkV1nayd!_&Y literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/toolbarButton-openFile@2x.png b/htdocs/vendor/pdfjs/web/images/toolbarButton-openFile@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..91ab76593eadd6280b2a554d8d3eb1430d7ef6ba GIT binary patch literal 550 zcmV+>0@?kEP)kdg0005)NklV8EdrV)CkilFRiwZGwaE58mndUOxVhkz-=YH-{A&5&o{d zns22dWrs@ZlkDB%fnWKmLb;Wa?OQuga#3zxZ}MmDC0|@s&JT+HXqXKe@Ow>O zxH{3h$him+5RYuj9yN~lP7jG!JjhF_%4%QAQk5*<6Jqsm?Kz+C$$K}&xzJc>>|@Nm zsKzm_h^c1H4jjOTZ(zSQ>)J$FIwS8?teL?fGyt^0A!|lm!cm zrf{tQ1#;(QSpf${lMm-1Pv*3|P{2Xa=o32VET52+0uG8MJ)VX%$q`vnz(LU@4ksYN zlb}3P@CY_uRWrYD9_C5zkwt}Z+X>H)v#KVxI|eagyX2`tMhu(u=AyNL7l4cY^~bW% oyZVDVb*O{JA&&H6n13-p0bKq8;5tc*kN^Mx07*qoM6N<$g1cw`kpKVy literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/toolbarButton-pageDown-rtl.png b/htdocs/vendor/pdfjs/web/images/toolbarButton-pageDown-rtl.png new file mode 100644 index 0000000000000000000000000000000000000000..1957f79ab95a970cc93eaeadec532661c5a1ae55 GIT binary patch literal 242 zcmVkgj4Lv#w4(S5>&h#|Q|$T30}L=f&H#|39(FQ@U4`qXaxf1Bc1+XmFJ4%~M*)ck=@jF*AE z@OmCGUIsRTT4WE_AE@?zRCReJsxQhE$k7T*n^xpdHBOme(Nrc9n@SO5E{eDjb45p( sF&)`4S3;ynbtti233MRw&&qfF1f{Oim%bdkdg00041Nklk=KUzNjE&+Z(ng)kL^NUuQIUigABdoZ zjSq~+fdO@9zMHugg5R&b=MNYE`8du+Zn4FCK6*TGn{x~k1gJ8@hCRLGEpOaj+8e8g zB8)MpkFy_r`|-8kb8}@LQy6}n7&Pq1SAK);+5#pKbni>{+q`3FZOa;uPgpuN| s!;t41i6pD68cF@RkkFqi61Km+Pl0_ej2E!U-~a#s07*qoM6N<$f+7928vp6;%ZmspUL<91jYXM#X%ehtN;K207*qoM6N<$g5$DeH~;_u literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/toolbarButton-pageDown@2x.png b/htdocs/vendor/pdfjs/web/images/toolbarButton-pageDown@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..758c01d8364c5597d7e9ead825cf4e7754c8d929 GIT binary patch literal 396 zcmV;70dxL|P)kdg0003~NkluFpq+}Hm0+F1Hup;*cG@Vugl*K#ZX`wwAsWOGa}fz> zkwzm~KZOBxbLOmLAviyn;=uQ(|M3vS0uJzqrx86=v5yr@f+Xsjpdf{JHeYJ!j=0AI zdMIPgH=xkW`qFa+9gXf=3-i7Kg{HTb-3Hnk9k+}r-+)2^XB#c8_HcDb96Kz|zFy%@ zr+?TdjvvNrduZwmN(16Fr=vAAblkd2oaVF}#;t%j0<#gojle8GW2g(H0CO!c4%7t3 zfvP|ZM9}o82$~*|&j5vrIb8luF-IZ#_Cih;7v`L-ntKx&oSShnYR(gBlz!%<)m)pf zQ#kWyr_@|dB;m;HB%5m!ww^R+i9!MvS4hZno`~brs}PswLc)&W1w*T#Q92I_?)jA__{b8r{ocmDkjB;))luQR&DQs#s?5{OcWsXDuPe zmo+wBW`Ex!Y-z#88@{DbU>|qCUYXlY&65@XZDezLlfot}w3kTg-zv6Kc{)$s27`wd tL8q?PzUn!-=+u@K&b74>{cp1VFo`V}NvvaB+5+?kgQu&X%Q~loCIFI;U?~6q literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/toolbarButton-pageUp-rtl@2x.png b/htdocs/vendor/pdfjs/web/images/toolbarButton-pageUp-rtl@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a01b02380b90e5ab32727ac5460eca3108a8f1e5 GIT binary patch literal 405 zcmV;G0c!qkdg00048Nklrkxqu zT8M?#!bm@}5SjL#xxE$==eN2ibN;KL|31hDNQNMj#dAQK=y(1Y5EDv)44Ux1HIb1A zxbp_wkVaG@>bwr8M;#f}fPp8}M8Vcj2^jETNAO_u3+Qn1AmKun1#~zl_u)W~3TUX} zUO^Qa7tmniPLU0*H;_gJx9U(qIvhx$jGJF7BlQ!YX-bCSn%DhRa1}MU;;H}2mpt`A ziKiME#syC?(4NFOPciVagfos`@JYn1UN>;cY3;X2BrFj7v{2+Y+YX6@#fO0+3LJCQ zBvH>3vz-&-ueoS%1%d+z!pldaMb1S zJy+Y=T^nDZ7)fV{#%PX`f<=ncJWbF5{oQ;4iDXE!#q;ab00000NkvXXu0mjfx2&{B literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/toolbarButton-pageUp.png b/htdocs/vendor/pdfjs/web/images/toolbarButton-pageUp.png new file mode 100644 index 0000000000000000000000000000000000000000..fb9daa337656a75091ea00d4c5600ba4f557d834 GIT binary patch literal 246 zcmV4@1mz9~E$`$~;b_k}_F6G1q{7jr18lHWj_7~< wLcHP)kdg00046NklObOG9sOZQNBke(N5=mxxi_UHnda|*&J&5TH*h$u8)^QA!? z;xt&CUk(xa@IS{#Xz2Hu|6d*s2mgJH_rVY7C(gG%-^8f%*FGts5wO{2{YRVjxB;6j z)&{h^5?<#`RuxU!x&ey~Rs;=NIsuDymORvHjS85o@x@1treDBhm4y+iG`#`_%Y4>Q zrXd9kmiVNpL_-b4SmY!16&V{0L|Nd&m{h`q6-zeg7QAIlCLxaTHheG%?nYsXZ0`) zJwbTMNirjGFS)Go0!$`0KT}Lg+!F?+fC96-Tkl6a7i8QNLsCG2!2H_bPUYYu$y1&U xNi)wqhB>1K6qvvQRuRHFB2cYh4paDxeFMq5jmkNGJDLCh002ovPDHLkV1nI`spbFx literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/toolbarButton-presentationMode.png b/htdocs/vendor/pdfjs/web/images/toolbarButton-presentationMode.png new file mode 100644 index 0000000000000000000000000000000000000000..3ac21244dff26830f46ec462f2dab36e1a18938c GIT binary patch literal 321 zcmV-H0lxl;P)d-;VqjhMU0mZ4X2g!hLXQ*2lyD zAO1T4QSzVf-}e8HzMQ-~=l=t+g42^3RNS0C9Q=RpM>>fAJ?a1b&&NYN8B~EX5F3G* z)y-)~6N3zxFSVx?D9sL)fdf{kGziForAY+;dH)B&*)2a2N#7G$Xm3^>hP76r$iD7@qu}40l!X|5FfA2;Tt;<=`gB!NnK=_L!_3 TdOB@M00000NkvXXu0mjfBu|wT literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/toolbarButton-presentationMode@2x.png b/htdocs/vendor/pdfjs/web/images/toolbarButton-presentationMode@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..cada9e7918da28bdf84af38c354dbf1e1c6fe31a GIT binary patch literal 586 zcmV-Q0=4~#P)kdg0006JNkl6nm`NYOT@I1}o-1mKoVd&o&{7f+mN-&#|()Zx;dz{8H zjZ$((8_UU@2);#emg03$I7{)Q2)+sjYw5ZuyjRhz2zmk^;uiyU5k4mtKpo5NDq;oH3c;DYmG_Dw9@94#Qd!Np$MYD$j zPc4{FS9m_nZFoN1#o4faN{cjOD4v!1b8BVb^Z!9gw9*2_{C#gi$nn)e!f!}1hmw`k2Xb!g|HAo2t*7E*&>DgR^vZU zVV4ks^D731!9T-ielNTbGw_$axq|YpFKNTWBMo*4b40@@e=r<~g@MK&J_SO41MfMq z6K6!=^stS5fYisq7foRJTRX628(*Bq(yKr%dZE{WZ`;7vZJ2IZv$kcQLwS8}%Xy#f zfMcjMVUtA}0uh@ufx-#qxPlcm-vgSJD;yl)1oluX_K^Glse?0qV_8Mk00000NkvXX Hu0mjf@9=3h literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/toolbarButton-print@2x.png b/htdocs/vendor/pdfjs/web/images/toolbarButton-print@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..53d18daf7825ae12d99406068073d16ab682737e GIT binary patch literal 464 zcmV;>0WbcEP)kdg0004(Nkl|6%E6&Q zgKhE5R6HaVnnStjcWqH1ObaL>24WBUJ_Y#4uV1O`0z?e~qSOfwF1Pr+z z$Bpe>*voD2#tn`c<-UL;j`nO=$Qx_VPMhTiws^}Shpj6L11HP{ZY}JG58#d<-o%HwW2=;PUN2XFHukd_-`kI$Y@{*S`_h91y zIW}gls+39Ng#)bOp}H?Gw|H@Pf)(V=%H0Vs*gACdn;u{lW|A|ybdPtAQD7%+lCuPJ zNHpGOlkX&todVvkrYUPEpq8BS?cYmI7hZsM*cGhfU(HW?%hSMo{ZqpL0000YA literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/toolbarButton-search.png b/htdocs/vendor/pdfjs/web/images/toolbarButton-search.png new file mode 100644 index 0000000000000000000000000000000000000000..f9b75579b1e058baada95941a4a7ff0c80edb5cb GIT binary patch literal 309 zcmV-50m}Y~P)}CT$H)>Cl*KShVy4rnvP0Z8?}Z*4h&|1f^pNMc6--g9AMzMF;T^ zdxEUy+IsY03~>NTiO@2lBS(WyDLQStmhYno%7XP%~a zg|t=`Q(SSy6w-os!-I2sl2TAVdpUcr6!sO=uOix1Q2+A@lD3RUk?l9y00000NkvXX Hu0mjfGKYz; literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/toolbarButton-search@2x.png b/htdocs/vendor/pdfjs/web/images/toolbarButton-search@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..456b133248fd5310857db3e2b174730f6488371b GIT binary patch literal 653 zcmV;80&@L{P)kdg00071Nkl{bbX%$pI4<4dGmxrK3y9C*x5W092iXDWyS$NGul86ip{iUm* zph&8bY4&exY`K>GnEG>Dd62o*(mD5i_k8$VY~O9Br=aKc@csAZc|K$K(~H}AmbW;? zMG@u@&$EhH4=lw&FBkZQF-Ap9o)(M%&-~tka$b|+DChG;`IX(=w(){a#`%8{F<#$j z!3oAVrx=lttE;Wi(dg)E3%QJl{>ms%ms(Jfo#2eJ;_GOI4YjBgwXk)xuK0A4^|Gqy zg0)keVT6&~w6g^ktS^hRB{!`y&ScJIkb$(>x10P=3G|{G`Bfe0)oE%dg%qUCmd7}) z3^)d0=5pwC)whaONSkH-{G>RoP849(sVpfg@*ia0@S_s8gi(M+r$*3#0co@3D5sRA zh9wlxpwskt8fi$I&Gs>uWY z?@M2Nt`6yC6T6=Kx^U>Q*>AFmU}|CQ^VA2Q+|HIZgo*jpkAZhSx|3}@2xVraKJvzU wce9NLp>&q3J+HiVD_f9=9_zn#f#kpM2NJQXccvwU^Z)<=07*qoM6N<$g7779MF0Q* literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/toolbarButton-secondaryToolbarToggle-rtl@2x.png b/htdocs/vendor/pdfjs/web/images/toolbarButton-secondaryToolbarToggle-rtl@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9d9bfa4f63d6a8ae5cbaafa2efadd2c16b48a3d8 GIT binary patch literal 456 zcmV;(0XP1MP)kdg0004xNkl&Eo0wtSl_%_c@)#x6@Nc{?`phhD&@IIESE8yJl-K zSNKF1)hUn5sOZvq+E~U7KGIR4efOfQ^}884Zquc$Li5&n8S%Rr1@7~nmioPL?ToDQ zyBRA(nRhf*zjpbgtnj-TYr+Ig8tT{lh2v82yBQlog$4`i$IR)&lJ~nAn?g*Tx2iXJ zWWVJ6ZpK)6$s20w>%%>JCF}K+&F|>X@+#3QMD!p6D zD}Un9_eZ=yRl_vval1L7BzJJ%w+GCj;t)~vyE&jFTPl6N#|&!ruPuHz2b3(`y7R*w zDyWF(Z1=l4pkzsLTk9rI70-y-?RRDWXwkZ{`gNuh)5IL`x)Kb@EZ>3!A!A$=*8}1L$Je~+C1~_8?0000)($5yeRDdaQJ-M|4aWbecXOn@Guga;V=~b z@A-fE|GC#2l&u(8kl8S=_WnQr|Ky7m5@rlc$ZVK&-~ZG9k3Lz%WyHXU%!Wxf{y*{m t;LXXb20&>fHXkdg0004zNklungn#PzRCDDkC`n~n-$qc_|=6h2P`+3##e4qF2k^f~&;~by5E|5SX@g5gF zM(V@4qrL*vqBy9 zmb;|w9+AI3)?7ThQODDyXUp*o57Q zk<^j>?O9%<$}VJ!)rCGJIWh710VUKc_nfi8UFd6Wq&>}xNGDg=Rgg%$YmQ;9d&EnM z>U;L=QAvw#VE4vGm!-&}`ugz1AsMo}H!?0DWI=tocW|Gi?CyR7|OZx}=1^9!Vb3w=BGynhq07*qoM6N<$f>h_@ AZvX%Q literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/toolbarButton-sidebarToggle-rtl.png b/htdocs/vendor/pdfjs/web/images/toolbarButton-sidebarToggle-rtl.png new file mode 100644 index 0000000000000000000000000000000000000000..6f85ec061ea167b1718d2865cfc1e53370f11b7a GIT binary patch literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6R(QHNhEy=Fy|9t%kby|+!~K<= z=lYs7_Vv%s4-^nwVp00$&6?)LeSG^I3$L4YTv-}i{FpUUBct%;PlbZ%#R_fqh7bDx z-F*1OP);pG_ExTK`(Chn5R(EeH9pPAiYO~EVU zg;AX0YiF?m$$s9yK0f=U*jm^Eqt`WV2>kpZ@LOBJCk~ccO~LBz65exMPv3u}^Njbh X)s)<0)dyODZf5Xw^>bP0l+XkKTSZs> literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/toolbarButton-sidebarToggle-rtl@2x.png b/htdocs/vendor/pdfjs/web/images/toolbarButton-sidebarToggle-rtl@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..291e006797fc7f0e84d297e952630c719fe6eeab GIT binary patch literal 344 zcmV-e0jK_nP)kdg0003WNklzGl0Qy}Zomti9P@(RHP^G#|@5~=y7$K!siiboRh zuIeZWmVB=G=|>dh^>JgTvTX_3{+V)mF&H3EjY7F_lyu+m(` z^5@!%E%1sIf<-iET7g&00wOY5YylCO%que#{I4g>zrp+oX2Hs@7Sy8){GqKd3+i8+ z(La(~<(6kl$Y?0+E!3g~6pVPYgsgOBL}3a(#z;E(drpoEc78P(r=PdlEn2u>S!eOM qa*)PSBkN>jxL^#qr<+KRA;34`pdw#DmQPIp0000%D&|RWz?R3S%8@5!h6F=s6G4bYqaW?MzjoCkpng6|s zXV#N@oaktrz{i#`@v)}nB&N==y>HnTvNCfR?M_V%Q~Gzyo8O~>Q6}#e!-ESy&GlaR zu`s+4fAKGyamxbfPlhLUim60w=5E=2>$USub|+s^j;X5ze{YfSp5y*9zfkTo Zkdg0003JNkl$GH;g-ye=E3m76~FBj%$^S3p8p9*q*pSbd*{>iVWHsKF0S;I z^gX4t*wuc`Tb2cq{&%P`@>A8<^(NL(>Ho}s&vtk+Fua<7E9$@Hp92jMpDMqu z1xm9(o%fjY|H;!pyNX@EE&si$I{ZV$w@o%SaA_c5db|2dDUjx3Fk~?LRQ7GXy(6+T z5KNBxck+Mrf8+l~|GU4fb8ui_Wk3UhZHZr2{6GKy)RPIe_L$OOB@D*mE*uUFn%Jcw efQf+-n=k;HAC|A!G+~AS0000kdg0009bNklO!qs?nO>`2G`bN+(=Af|T(S(@31n57R7<0pDb zv*kV(PVYe$9;O?e1ONJb6Yc5BKP*8IY3C>D9Hdz{8730PBZ^sbmXX%4tmg@4vsUTxntmOiRVB}nLnYi#??6;a}ZB3eP57p|1DS zXl@|>xwZ%;kT8Pz`Hz3Db$te9qxmP|1)H#*aDh5Lj}^X@`uu%;NfI2egk?GY;;*~a z@dUdWZu{mdd@#VUTEfucA z9}iccG?Fc|>vewjnSi)TqAu#895Qn;HT?c?WeWVQy!reZ_MEv1^(6j}Uth0B86;mF zdF6c{@Vju11>@nYT*bfq@_HT0Bh@l39~}OgKg2Iw!R~CvPMjyc=5Ky}tMIgxcku}S zhy2W6{6`&XB>Y8u|6sYo(^$Sr?Vhc2yC#0%M}7=@X>@SpAe2G6%8YVoT%t?Q{>}Sj lZHt=7g$$J$Igkx$P79l;1h5EfFlGP%002ovPDHLkV1kE3p%MT9 literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/toolbarButton-viewOutline-rtl.png b/htdocs/vendor/pdfjs/web/images/toolbarButton-viewOutline-rtl.png new file mode 100644 index 0000000000000000000000000000000000000000..aaa9430211e168a593f7e3bb486b3cac2be6556b GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6Dm+~rLn;{8UeM)Zaui^FxJzhG z!|qKIVyq93J2V|v60i`ubLP&1jLj#z)YdH6_dNZQ&xuJ2GPazLv>Ue+?>6bs6%sUl z=5wmNX+x=cM?cG@Z*M=Wx3_WU$gY-DxaT(E)^*=hf#2W0ec7YVF<0AhkJ^MyIkdg0003|NklAE8oCqP6^J2Th#(YoIRh@jaAR$9RboY0TBz8UW*<_dt4i~Ob~DGonWs6N zDHmgSc1896;1BQmyd3=B*_8?FdJfKrFg8ajkxH`r#|ZrHE^89r%(@^&LP zaU~!CnZY3+ryJx4P}Ww4*H%5boJ10kK>!OHX7MpIn8%#kUo_liM?;42gn8)-kME$x z2MsMkajI;x=~Nv!fDG?7K@n$i6P3?9=x2F1U4N$!WpzoMSmnfG0tr9{|91dxvNb`P z@Pt@#g$O@Ts`FxkI-!h8tg$vKjo=3vo__&~$jeRS1pFY=P4m>Rm+nD{$E*W$KOT$2 zPbKiz-rYZ3=dFef!V_e{6&&9|na3K+gyQ5_WYNiu|AQk^Ne|QKRngBbo7l z(Z#9O-!Ih&DHL`j3;gi;Q|>%Z+C4MQ_`#CC(&&{H^BL7&PFp7vkdg0003JNkl4op8oHYTF~kcIgrY7-m_-=gLr9yLNJGQQw7)|`w#sbRZsr&`=k35ZXB7v& zrAY4&X89~W4uka=>r9+FQTkQ_0Xjv(1s6q9K=4z^2Y#M8=iEFR2+oy!;P`O)ls|M1 zIuQI&@&RmN2ixxJx2v>4V~zJtjVOI7`6Jp1XPnuIh2Wc#513n~OwGtZFjew_qkVIo zU$ytz5PVhoe+S{Q%8^qgO78)3#J^TUPB~o-R}j1l2nEaq#~hp3KyVxo3PjEPJUfe; z5d?1nLIL%=*r2h(o>L)8FG~K1Hs*i>8(RooD*3?jlzsNIZU(`=k`J^Rc{e+0HChnt dDXqo-;1^oHB*H?C%i{n5002ovPDHLkV1gg@i>m+t literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/toolbarButton-viewThumbnail.png b/htdocs/vendor/pdfjs/web/images/toolbarButton-viewThumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..584ba55881f9a192ddea645d6d8525bab205e289 GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf68a!PbLn;`1FBoz$1@g2!+&O99 zf!$e4*(j56dDxhu@!aQ2zL__%gK{mTjH$a~4^&m3zt@ zUaiuXsMG0KBR${yp3FT-zMKuGw=rB1}fgF!j@Pa jH|Ai1Yx4!(rbx9*stQkf2`I11D?x VwzoOr^jH7@002ovPDHLkV1mA0TJZn? literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/toolbarButton-zoomIn.png b/htdocs/vendor/pdfjs/web/images/toolbarButton-zoomIn.png new file mode 100644 index 0000000000000000000000000000000000000000..513d081bc2d2f3eb64801a5e8cde86ef4455829c GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6{5@S9Ln;`P7g+!J&&MG-LGg5b zi0J(bTQ@BD_154)g5P7Bj9n-%)M8r~??+_T|q$+)-V kia5^-HX{oL#i@)8E52we&r^_U0~*cX>FVdQ&MBb@0BWi($p8QV literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/toolbarButton-zoomIn@2x.png b/htdocs/vendor/pdfjs/web/images/toolbarButton-zoomIn@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d5d49d5ff107f01daa307bd0f89f98efc31eeec7 GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4U>7Fi*Ar*|t5-bTK29GBH`OkMs z;LzH(r}lQj`-ICFx#MpBpCa|4zl7P1x1vYwH*5P29X)2dhZ~*=Z`AwIt>?Q+{9j-O zLo#EO)0^fl@rko%`Z-H3Q%PTTaY>Is!UArQV{B|y4S@^{cTUS(`F>5r0%#?Jr>mdK II;Vst0FRG1RsaA1 literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/toolbarButton-zoomOut.png b/htdocs/vendor/pdfjs/web/images/toolbarButton-zoomOut.png new file mode 100644 index 0000000000000000000000000000000000000000..156c26b941c12a13130e7a7c181d13300a85de89 GIT binary patch literal 88 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6mdKI;Vst01!SC>;M1& literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/toolbarButton-zoomOut@2x.png b/htdocs/vendor/pdfjs/web/images/toolbarButton-zoomOut@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..959e1919d5a7a83a9c319de4d65ddaf6dc6c2763 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UCY~;iAr*|t5x6B zz{uFh!Ff-a?~&O9p+bS}jK@2hEqD_O6oi80fl3Ux7>c+~q1|%O$WD@{VVV*9IAr*|t6(1k5>aAfpGT9*~ zXOfab4D%87#veSpl*$zRm>xL?oHRbsHKXB%c*k}H6$4SxhZAg?^X4iGtUtb-qb;)0 qg018G0wld=oSO}#+&x_!LpZJ{CnQuDzHAj@)~YCc zcJ!pUslH1WIk z$<$8#)-<<4$>7e1Lt^WdBv>MS0tC+_?dkdu(KF##vY``K|4|Ok95LarEgxHDk6!z_ xe}ZGN#WGb9Hnl@SJ`EdME-hi&#=_6Qka7RV*Qd`VTY>g4c)I$ztaD0e0sz~DGV1^U literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/treeitem-expanded.png b/htdocs/vendor/pdfjs/web/images/treeitem-expanded.png new file mode 100644 index 0000000000000000000000000000000000000000..c8d557351cd2fc80c3abd4b19e52924cd74780d5 GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>0wld=oSO}#Ts&PILn;`P75MhNs4Zk;-DbE) zpt_L5GvPZo^g4)z4*}Q$iB}$ABb+ literal 0 HcmV?d00001 diff --git a/htdocs/vendor/pdfjs/web/images/treeitem-expanded@2x.png b/htdocs/vendor/pdfjs/web/images/treeitem-expanded@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3b3b6103b356200d05caf7fa692cadf2c1e89043 GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|mialK%Ln;`P7Z_I span { + color: transparent; + position: absolute; + white-space: pre; + cursor: text; + -webkit-transform-origin: 0% 0%; + transform-origin: 0% 0%; +} + +.textLayer .highlight { + margin: -1px; + padding: 1px; + + background-color: rgb(180, 0, 170); + border-radius: 4px; +} + +.textLayer .highlight.begin { + border-radius: 4px 0px 0px 4px; +} + +.textLayer .highlight.end { + border-radius: 0px 4px 4px 0px; +} + +.textLayer .highlight.middle { + border-radius: 0px; +} + +.textLayer .highlight.selected { + background-color: rgb(0, 100, 0); +} + +.textLayer ::-moz-selection { background: rgb(0,0,255); } + +.textLayer ::selection { background: rgb(0,0,255); } + +.textLayer .endOfContent { + display: block; + position: absolute; + left: 0px; + top: 100%; + right: 0px; + bottom: 0px; + z-index: -1; + cursor: default; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.textLayer .endOfContent.active { + top: 0px; +} + + +.annotationLayer section { + position: absolute; +} + +.annotationLayer .linkAnnotation > a, +.annotationLayer .buttonWidgetAnnotation.pushButton > a { + position: absolute; + font-size: 1em; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.annotationLayer .linkAnnotation > a:hover, +.annotationLayer .buttonWidgetAnnotation.pushButton > a:hover { + opacity: 0.2; + background: #ff0; + box-shadow: 0px 2px 10px #ff0; +} + +.annotationLayer .textAnnotation img { + position: absolute; + cursor: pointer; +} + +.annotationLayer .textWidgetAnnotation input, +.annotationLayer .textWidgetAnnotation textarea, +.annotationLayer .choiceWidgetAnnotation select, +.annotationLayer .buttonWidgetAnnotation.checkBox input, +.annotationLayer .buttonWidgetAnnotation.radioButton input { + background-color: rgba(0, 54, 255, 0.13); + border: 1px solid transparent; + box-sizing: border-box; + font-size: 9px; + height: 100%; + margin: 0; + padding: 0 3px; + vertical-align: top; + width: 100%; +} + +.annotationLayer .choiceWidgetAnnotation select option { + padding: 0; +} + +.annotationLayer .buttonWidgetAnnotation.radioButton input { + border-radius: 50%; +} + +.annotationLayer .textWidgetAnnotation textarea { + font: message-box; + font-size: 9px; + resize: none; +} + +.annotationLayer .textWidgetAnnotation input[disabled], +.annotationLayer .textWidgetAnnotation textarea[disabled], +.annotationLayer .choiceWidgetAnnotation select[disabled], +.annotationLayer .buttonWidgetAnnotation.checkBox input[disabled], +.annotationLayer .buttonWidgetAnnotation.radioButton input[disabled] { + background: none; + border: 1px solid transparent; + cursor: not-allowed; +} + +.annotationLayer .textWidgetAnnotation input:hover, +.annotationLayer .textWidgetAnnotation textarea:hover, +.annotationLayer .choiceWidgetAnnotation select:hover, +.annotationLayer .buttonWidgetAnnotation.checkBox input:hover, +.annotationLayer .buttonWidgetAnnotation.radioButton input:hover { + border: 1px solid #000; +} + +.annotationLayer .textWidgetAnnotation input:focus, +.annotationLayer .textWidgetAnnotation textarea:focus, +.annotationLayer .choiceWidgetAnnotation select:focus { + background: none; + border: 1px solid transparent; +} + +.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before, +.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after, +.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before { + background-color: #000; + content: ''; + display: block; + position: absolute; +} + +.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before, +.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after { + height: 80%; + left: 45%; + width: 1px; +} + +.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before { + -webkit-transform: rotate(45deg); + transform: rotate(45deg); +} + +.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); +} + +.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before { + border-radius: 50%; + height: 50%; + left: 30%; + top: 20%; + width: 50%; +} + +.annotationLayer .textWidgetAnnotation input.comb { + font-family: monospace; + padding-left: 2px; + padding-right: 0; +} + +.annotationLayer .textWidgetAnnotation input.comb:focus { + /* + * Letter spacing is placed on the right side of each character. Hence, the + * letter spacing of the last character may be placed outside the visible + * area, causing horizontal scrolling. We avoid this by extending the width + * when the element has focus and revert this when it loses focus. + */ + width: 115%; +} + +.annotationLayer .buttonWidgetAnnotation.checkBox input, +.annotationLayer .buttonWidgetAnnotation.radioButton input { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + padding: 0; +} + +.annotationLayer .popupWrapper { + position: absolute; + width: 20em; +} + +.annotationLayer .popup { + position: absolute; + z-index: 200; + max-width: 20em; + background-color: #FFFF99; + box-shadow: 0px 2px 5px #888; + border-radius: 2px; + padding: 6px; + margin-left: 5px; + cursor: pointer; + font: message-box; + font-size: 9px; + word-wrap: break-word; +} + +.annotationLayer .popup > * { + font-size: 9px; +} + +.annotationLayer .popup h1 { + display: inline-block; +} + +.annotationLayer .popup span { + display: inline-block; + margin-left: 5px; +} + +.annotationLayer .popup p { + border-top: 1px solid #333; + margin-top: 2px; + padding-top: 2px; +} + +.annotationLayer .highlightAnnotation, +.annotationLayer .underlineAnnotation, +.annotationLayer .squigglyAnnotation, +.annotationLayer .strikeoutAnnotation, +.annotationLayer .freeTextAnnotation, +.annotationLayer .lineAnnotation svg line, +.annotationLayer .squareAnnotation svg rect, +.annotationLayer .circleAnnotation svg ellipse, +.annotationLayer .polylineAnnotation svg polyline, +.annotationLayer .polygonAnnotation svg polygon, +.annotationLayer .caretAnnotation, +.annotationLayer .inkAnnotation svg polyline, +.annotationLayer .stampAnnotation, +.annotationLayer .fileAttachmentAnnotation { + cursor: pointer; +} + +.pdfViewer .canvasWrapper { + overflow: hidden; +} + +.pdfViewer .page { + direction: ltr; + width: 816px; + height: 1056px; + margin: 1px auto -8px auto; + position: relative; + overflow: visible; + border: 9px solid transparent; + background-clip: content-box; + -webkit-border-image: url(images/shadow.png) 9 9 repeat; + -o-border-image: url(images/shadow.png) 9 9 repeat; + border-image: url(images/shadow.png) 9 9 repeat; + background-color: white; +} + +.pdfViewer.removePageBorders .page { + margin: 0px auto 10px auto; + border: none; +} + +.pdfViewer.singlePageView { + display: inline-block; +} + +.pdfViewer.singlePageView .page { + margin: 0; + border: none; +} + +.pdfViewer.scrollHorizontal, .pdfViewer.scrollWrapped, .spread { + margin-left: 3.5px; + margin-right: 3.5px; + text-align: center; +} + +.pdfViewer.scrollHorizontal, .spread { + white-space: nowrap; +} + +.pdfViewer.removePageBorders, +.pdfViewer.scrollHorizontal .spread, +.pdfViewer.scrollWrapped .spread { + margin-left: 0; + margin-right: 0; +} + +.spread .page, +.pdfViewer.scrollHorizontal .page, +.pdfViewer.scrollWrapped .page, +.pdfViewer.scrollHorizontal .spread, +.pdfViewer.scrollWrapped .spread { + display: inline-block; + vertical-align: middle; +} + +.spread .page, +.pdfViewer.scrollHorizontal .page, +.pdfViewer.scrollWrapped .page { + margin-left: -3.5px; + margin-right: -3.5px; +} + +.pdfViewer.removePageBorders .spread .page, +.pdfViewer.removePageBorders.scrollHorizontal .page, +.pdfViewer.removePageBorders.scrollWrapped .page { + margin-left: 5px; + margin-right: 5px; +} + +.pdfViewer .page canvas { + margin: 0; + display: block; +} + +.pdfViewer .page canvas[hidden] { + display: none; +} + +.pdfViewer .page .loadingIcon { + position: absolute; + display: block; + left: 0; + top: 0; + right: 0; + bottom: 0; + background: url('images/loading-icon.gif') center no-repeat; +} + +.pdfPresentationMode .pdfViewer { + margin-left: 0; + margin-right: 0; +} + +.pdfPresentationMode .pdfViewer .page, +.pdfPresentationMode .pdfViewer .spread { + display: block; +} + +.pdfPresentationMode .pdfViewer .page, +.pdfPresentationMode .pdfViewer.removePageBorders .page { + margin-left: auto; + margin-right: auto; +} + +.pdfPresentationMode:-ms-fullscreen .pdfViewer .page { + margin-bottom: 100% !important; +} + +.pdfPresentationMode:-webkit-full-screen .pdfViewer .page { + margin-bottom: 100%; + border: 0; +} + +.pdfPresentationMode:-moz-full-screen .pdfViewer .page { + margin-bottom: 100%; + border: 0; +} + +.pdfPresentationMode:fullscreen .pdfViewer .page { + margin-bottom: 100%; + border: 0; +} + +:root { + --sidebar-width: 200px; +} + +* { + padding: 0; + margin: 0; +} + +html { + height: 100%; + width: 100%; + /* Font size is needed to make the activity bar the correct size. */ + font-size: 10px; +} + +body { + height: 100%; + width: 100%; + background-color: #404040; + background-image: url(images/texture.png); +} + +body, +input, +button, +select { + font: message-box; + outline: none; +} + +.hidden { + display: none !important; +} +[hidden] { + display: none !important; +} + +#viewerContainer.pdfPresentationMode:-ms-fullscreen { + top: 0px !important; + overflow: hidden !important; +} + +#viewerContainer.pdfPresentationMode:-ms-fullscreen::-ms-backdrop { + background-color: #000; +} + +#viewerContainer.pdfPresentationMode:-webkit-full-screen { + top: 0px; + border-top: 2px solid transparent; + background-color: #000; + width: 100%; + height: 100%; + overflow: hidden; + cursor: none; + -webkit-user-select: none; + user-select: none; +} + +#viewerContainer.pdfPresentationMode:-moz-full-screen { + top: 0px; + border-top: 2px solid transparent; + background-color: #000; + width: 100%; + height: 100%; + overflow: hidden; + cursor: none; + -moz-user-select: none; + user-select: none; +} + +#viewerContainer.pdfPresentationMode:-ms-fullscreen { + top: 0px; + border-top: 2px solid transparent; + background-color: #000; + width: 100%; + height: 100%; + overflow: hidden; + cursor: none; + -ms-user-select: none; + user-select: none; +} + +#viewerContainer.pdfPresentationMode:fullscreen { + top: 0px; + border-top: 2px solid transparent; + background-color: #000; + width: 100%; + height: 100%; + overflow: hidden; + cursor: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.pdfPresentationMode:-webkit-full-screen a:not(.internalLink) { + display: none; +} + +.pdfPresentationMode:-moz-full-screen a:not(.internalLink) { + display: none; +} + +.pdfPresentationMode:-ms-fullscreen a:not(.internalLink) { + display: none; +} + +.pdfPresentationMode:fullscreen a:not(.internalLink) { + display: none; +} + +.pdfPresentationMode:-webkit-full-screen .textLayer > span { + cursor: none; +} + +.pdfPresentationMode:-moz-full-screen .textLayer > span { + cursor: none; +} + +.pdfPresentationMode:-ms-fullscreen .textLayer > span { + cursor: none; +} + +.pdfPresentationMode:fullscreen .textLayer > span { + cursor: none; +} + +.pdfPresentationMode.pdfPresentationModeControls > *, +.pdfPresentationMode.pdfPresentationModeControls .textLayer > span { + cursor: default; +} + +#outerContainer { + width: 100%; + height: 100%; + position: relative; +} + +#sidebarContainer { + position: absolute; + top: 32px; + bottom: 0; + width: 200px; /* Here, and elsewhere below, keep the constant value for compatibility + with older browsers that lack support for CSS variables. */ + width: var(--sidebar-width); + visibility: hidden; + z-index: 100; + border-top: 1px solid #333; + + -webkit-transition-duration: 200ms; + + transition-duration: 200ms; + -webkit-transition-timing-function: ease; + transition-timing-function: ease; +} +html[dir='ltr'] #sidebarContainer { + -webkit-transition-property: left; + transition-property: left; + left: -200px; + left: calc(-1 * var(--sidebar-width)); +} +html[dir='rtl'] #sidebarContainer { + -webkit-transition-property: right; + transition-property: right; + right: -200px; + right: calc(-1 * var(--sidebar-width)); +} + +.loadingInProgress #sidebarContainer { + top: 36px; +} + +#outerContainer.sidebarResizing #sidebarContainer { + /* Improve responsiveness and avoid visual glitches when the sidebar is resized. */ + -webkit-transition-duration: 0s; + transition-duration: 0s; + /* Prevent e.g. the thumbnails being selected when the sidebar is resized. */ + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +#outerContainer.sidebarMoving #sidebarContainer, +#outerContainer.sidebarOpen #sidebarContainer { + visibility: visible; +} +html[dir='ltr'] #outerContainer.sidebarOpen #sidebarContainer { + left: 0px; +} +html[dir='rtl'] #outerContainer.sidebarOpen #sidebarContainer { + right: 0px; +} + +#mainContainer { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + min-width: 320px; +} + +#sidebarContent { + top: 32px; + bottom: 0; + overflow: auto; + -webkit-overflow-scrolling: touch; + position: absolute; + width: 100%; + background-color: hsla(0,0%,0%,.1); +} +html[dir='ltr'] #sidebarContent { + left: 0; + box-shadow: inset -1px 0 0 hsla(0,0%,0%,.25); +} +html[dir='rtl'] #sidebarContent { + right: 0; + box-shadow: inset 1px 0 0 hsla(0,0%,0%,.25); +} + +#viewerContainer { + overflow: auto; + -webkit-overflow-scrolling: touch; + position: absolute; + top: 32px; + right: 0; + bottom: 0; + left: 0; + outline: none; +} +#viewerContainer:not(.pdfPresentationMode) { + -webkit-transition-duration: 200ms; + transition-duration: 200ms; + -webkit-transition-timing-function: ease; + transition-timing-function: ease; +} +html[dir='ltr'] #viewerContainer { + box-shadow: inset 1px 0 0 hsla(0,0%,100%,.05); +} +html[dir='rtl'] #viewerContainer { + box-shadow: inset -1px 0 0 hsla(0,0%,100%,.05); +} + +#outerContainer.sidebarResizing #viewerContainer { + /* Improve responsiveness and avoid visual glitches when the sidebar is resized. */ + -webkit-transition-duration: 0s; + transition-duration: 0s; +} + +html[dir='ltr'] #outerContainer.sidebarOpen #viewerContainer:not(.pdfPresentationMode) { + -webkit-transition-property: left; + transition-property: left; + left: 200px; + left: var(--sidebar-width); +} +html[dir='rtl'] #outerContainer.sidebarOpen #viewerContainer:not(.pdfPresentationMode) { + -webkit-transition-property: right; + transition-property: right; + right: 200px; + right: var(--sidebar-width); +} + +.toolbar { + position: relative; + left: 0; + right: 0; + z-index: 9999; + cursor: default; +} + +#toolbarContainer { + width: 100%; +} + +#toolbarSidebar { + width: 100%; + height: 32px; + background-color: #424242; /* fallback */ + background-image: url(images/texture.png), + -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,30%,.99)), to(hsla(0,0%,25%,.95))); + background-image: url(images/texture.png), + linear-gradient(hsla(0,0%,30%,.99), hsla(0,0%,25%,.95)); +} +html[dir='ltr'] #toolbarSidebar { + box-shadow: inset -1px 0 0 rgba(0, 0, 0, 0.25), + inset 0 -1px 0 hsla(0,0%,100%,.05), + 0 1px 0 hsla(0,0%,0%,.15), + 0 0 1px hsla(0,0%,0%,.1); +} +html[dir='rtl'] #toolbarSidebar { + box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.25), + inset 0 1px 0 hsla(0,0%,100%,.05), + 0 1px 0 hsla(0,0%,0%,.15), + 0 0 1px hsla(0,0%,0%,.1); +} + +#sidebarResizer { + position: absolute; + top: 0; + bottom: 0; + width: 6px; + z-index: 200; + cursor: ew-resize; +} +html[dir='ltr'] #sidebarResizer { + right: -6px; +} +html[dir='rtl'] #sidebarResizer { + left: -6px; +} + +#toolbarContainer, .findbar, .secondaryToolbar { + position: relative; + height: 32px; + background-color: #474747; /* fallback */ + background-image: url(images/texture.png), + -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,32%,.99)), to(hsla(0,0%,27%,.95))); + background-image: url(images/texture.png), + linear-gradient(hsla(0,0%,32%,.99), hsla(0,0%,27%,.95)); +} +html[dir='ltr'] #toolbarContainer, .findbar, .secondaryToolbar { + box-shadow: inset 0 1px 1px hsla(0,0%,0%,.15), + inset 0 -1px 0 hsla(0,0%,100%,.05), + 0 1px 0 hsla(0,0%,0%,.15), + 0 1px 1px hsla(0,0%,0%,.1); +} +html[dir='rtl'] #toolbarContainer, .findbar, .secondaryToolbar { + box-shadow: inset 0 1px 1px hsla(0,0%,0%,.15), + inset 0 -1px 0 hsla(0,0%,100%,.05), + 0 1px 0 hsla(0,0%,0%,.15), + 0 1px 1px hsla(0,0%,0%,.1); +} + +#toolbarViewer { + height: 32px; +} + +#loadingBar { + position: relative; + width: 100%; + height: 4px; + background-color: #333; + border-bottom: 1px solid #333; +} + +#loadingBar .progress { + position: absolute; + top: 0; + left: 0; + width: 0%; + height: 100%; + background-color: #ddd; + overflow: hidden; + -webkit-transition: width 200ms; + transition: width 200ms; +} + +@-webkit-keyframes progressIndeterminate { + 0% { left: -142px; } + 100% { left: 0; } +} + +@keyframes progressIndeterminate { + 0% { left: -142px; } + 100% { left: 0; } +} + +#loadingBar .progress.indeterminate { + background-color: #999; + -webkit-transition: none; + transition: none; +} + +#loadingBar .progress.indeterminate .glimmer { + position: absolute; + top: 0; + left: 0; + height: 100%; + width: calc(100% + 150px); + + background: repeating-linear-gradient(135deg, + #bbb 0, #999 5px, + #999 45px, #ddd 55px, + #ddd 95px, #bbb 100px); + + -webkit-animation: progressIndeterminate 950ms linear infinite; + + animation: progressIndeterminate 950ms linear infinite; +} + +.findbar, .secondaryToolbar { + top: 32px; + position: absolute; + z-index: 10000; + height: auto; + min-width: 16px; + padding: 0px 6px 0px 6px; + margin: 4px 2px 4px 2px; + color: hsl(0,0%,85%); + font-size: 12px; + line-height: 14px; + text-align: left; + cursor: default; +} + +.findbar { + min-width: 300px; +} +.findbar > div { + height: 32px; +} +.findbar.wrapContainers > div { + clear: both; +} +.findbar.wrapContainers > div#findbarMessageContainer { + height: auto; +} +html[dir='ltr'] .findbar { + left: 68px; +} +html[dir='rtl'] .findbar { + right: 68px; +} + +.findbar label { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +#findInput { + width: 200px; +} +#findInput::-webkit-input-placeholder { + color: hsl(0, 0%, 75%); +} +#findInput::-moz-placeholder { + font-style: italic; +} +#findInput:-ms-input-placeholder { + font-style: italic; +} +#findInput::-ms-input-placeholder { + font-style: italic; +} +#findInput::placeholder { + font-style: italic; +} +#findInput[data-status="pending"] { + background-image: url(images/loading-small.png); + background-repeat: no-repeat; + background-position: right; +} +html[dir='rtl'] #findInput[data-status="pending"] { + background-position: left; +} + +.secondaryToolbar { + padding: 6px; + height: auto; + z-index: 30000; +} +html[dir='ltr'] .secondaryToolbar { + right: 4px; +} +html[dir='rtl'] .secondaryToolbar { + left: 4px; +} + +#secondaryToolbarButtonContainer { + max-width: 200px; + max-height: 400px; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + margin-bottom: -4px; +} + +#secondaryToolbarButtonContainer.hiddenScrollModeButtons > .scrollModeButtons, +#secondaryToolbarButtonContainer.hiddenSpreadModeButtons > .spreadModeButtons { + display: none !important; +} + +.doorHanger, +.doorHangerRight { + border: 1px solid hsla(0,0%,0%,.5); + border-radius: 2px; + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); +} +.doorHanger:after, .doorHanger:before, +.doorHangerRight:after, .doorHangerRight:before { + bottom: 100%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; +} +.doorHanger:after, +.doorHangerRight:after { + border-bottom-color: hsla(0,0%,32%,.99); + border-width: 8px; +} +.doorHanger:before, +.doorHangerRight:before { + border-bottom-color: hsla(0,0%,0%,.5); + border-width: 9px; +} + +html[dir='ltr'] .doorHanger:after, +html[dir='rtl'] .doorHangerRight:after { + left: 13px; + margin-left: -8px; +} + +html[dir='ltr'] .doorHanger:before, +html[dir='rtl'] .doorHangerRight:before { + left: 13px; + margin-left: -9px; +} + +html[dir='rtl'] .doorHanger:after, +html[dir='ltr'] .doorHangerRight:after { + right: 13px; + margin-right: -8px; +} + +html[dir='rtl'] .doorHanger:before, +html[dir='ltr'] .doorHangerRight:before { + right: 13px; + margin-right: -9px; +} + +#findResultsCount { + background-color: hsl(0, 0%, 85%); + color: hsl(0, 0%, 32%); + text-align: center; + padding: 3px 4px; +} + +#findMsg { + font-style: italic; + color: #A6B7D0; +} +#findMsg:empty { + display: none; +} + +#findInput.notFound { + background-color: rgb(255, 102, 102); +} + +#toolbarViewerMiddle { + position: absolute; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); +} + +html[dir='ltr'] #toolbarViewerLeft, +html[dir='rtl'] #toolbarViewerRight { + float: left; +} +html[dir='ltr'] #toolbarViewerRight, +html[dir='rtl'] #toolbarViewerLeft { + float: right; +} +html[dir='ltr'] #toolbarViewerLeft > *, +html[dir='ltr'] #toolbarViewerMiddle > *, +html[dir='ltr'] #toolbarViewerRight > *, +html[dir='ltr'] .findbar * { + position: relative; + float: left; +} +html[dir='rtl'] #toolbarViewerLeft > *, +html[dir='rtl'] #toolbarViewerMiddle > *, +html[dir='rtl'] #toolbarViewerRight > *, +html[dir='rtl'] .findbar * { + position: relative; + float: right; +} + +html[dir='ltr'] .splitToolbarButton { + margin: 3px 2px 4px 0; + display: inline-block; +} +html[dir='rtl'] .splitToolbarButton { + margin: 3px 0 4px 2px; + display: inline-block; +} +html[dir='ltr'] .splitToolbarButton > .toolbarButton { + border-radius: 0; + float: left; +} +html[dir='rtl'] .splitToolbarButton > .toolbarButton { + border-radius: 0; + float: right; +} + +.toolbarButton, +.secondaryToolbarButton, +.overlayButton { + border: 0 none; + background: none; + width: 32px; + height: 25px; +} + +.toolbarButton > span { + display: inline-block; + width: 0; + height: 0; + overflow: hidden; +} + +.toolbarButton[disabled], +.secondaryToolbarButton[disabled], +.overlayButton[disabled] { + opacity: .5; +} + +.splitToolbarButton.toggled .toolbarButton { + margin: 0; +} + +.splitToolbarButton:hover > .toolbarButton, +.splitToolbarButton:focus > .toolbarButton, +.splitToolbarButton.toggled > .toolbarButton, +.toolbarButton.textButton { + background-color: hsla(0,0%,0%,.12); + background-image: -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,100%,.05)), to(hsla(0,0%,100%,0))); + background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0)); + background-clip: padding-box; + border: 1px solid hsla(0,0%,0%,.35); + border-color: hsla(0,0%,0%,.32) hsla(0,0%,0%,.38) hsla(0,0%,0%,.42); + box-shadow: 0 1px 0 hsla(0,0%,100%,.05) inset, + 0 0 1px hsla(0,0%,100%,.15) inset, + 0 1px 0 hsla(0,0%,100%,.05); + -webkit-transition-property: background-color, border-color, box-shadow; + transition-property: background-color, border-color, box-shadow; + -webkit-transition-duration: 150ms; + transition-duration: 150ms; + -webkit-transition-timing-function: ease; + transition-timing-function: ease; + +} +.splitToolbarButton > .toolbarButton:hover, +.splitToolbarButton > .toolbarButton:focus, +.dropdownToolbarButton:hover, +.overlayButton:hover, +.overlayButton:focus, +.toolbarButton.textButton:hover, +.toolbarButton.textButton:focus { + background-color: hsla(0,0%,0%,.2); + box-shadow: 0 1px 0 hsla(0,0%,100%,.05) inset, + 0 0 1px hsla(0,0%,100%,.15) inset, + 0 0 1px hsla(0,0%,0%,.05); + z-index: 199; +} +.splitToolbarButton > .toolbarButton { + position: relative; +} +html[dir='ltr'] .splitToolbarButton > .toolbarButton:first-child, +html[dir='rtl'] .splitToolbarButton > .toolbarButton:last-child { + position: relative; + margin: 0; + margin-right: -1px; + border-top-left-radius: 2px; + border-bottom-left-radius: 2px; + border-right-color: transparent; +} +html[dir='ltr'] .splitToolbarButton > .toolbarButton:last-child, +html[dir='rtl'] .splitToolbarButton > .toolbarButton:first-child { + position: relative; + margin: 0; + margin-left: -1px; + border-top-right-radius: 2px; + border-bottom-right-radius: 2px; + border-left-color: transparent; +} +.splitToolbarButtonSeparator { + padding: 8px 0; + width: 1px; + background-color: hsla(0,0%,0%,.5); + z-index: 99; + box-shadow: 0 0 0 1px hsla(0,0%,100%,.08); + display: inline-block; + margin: 5px 0; +} +html[dir='ltr'] .splitToolbarButtonSeparator { + float: left; +} +html[dir='rtl'] .splitToolbarButtonSeparator { + float: right; +} +.splitToolbarButton:hover > .splitToolbarButtonSeparator, +.splitToolbarButton.toggled > .splitToolbarButtonSeparator { + padding: 12px 0; + margin: 1px 0; + box-shadow: 0 0 0 1px hsla(0,0%,100%,.03); + -webkit-transition-property: padding; + transition-property: padding; + -webkit-transition-duration: 10ms; + transition-duration: 10ms; + -webkit-transition-timing-function: ease; + transition-timing-function: ease; +} + +.toolbarButton, +.dropdownToolbarButton, +.secondaryToolbarButton, +.overlayButton { + min-width: 16px; + padding: 2px 6px 0; + border: 1px solid transparent; + border-radius: 2px; + color: hsla(0,0%,100%,.8); + font-size: 12px; + line-height: 14px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + /* Opera does not support user-select, use <... unselectable="on"> instead */ + cursor: default; + -webkit-transition-property: background-color, border-color, box-shadow; + transition-property: background-color, border-color, box-shadow; + -webkit-transition-duration: 150ms; + transition-duration: 150ms; + -webkit-transition-timing-function: ease; + transition-timing-function: ease; +} + +html[dir='ltr'] .toolbarButton, +html[dir='ltr'] .overlayButton, +html[dir='ltr'] .dropdownToolbarButton { + margin: 3px 2px 4px 0; +} +html[dir='rtl'] .toolbarButton, +html[dir='rtl'] .overlayButton, +html[dir='rtl'] .dropdownToolbarButton { + margin: 3px 0 4px 2px; +} + +.toolbarButton:hover, +.toolbarButton:focus, +.dropdownToolbarButton, +.overlayButton, +.secondaryToolbarButton:hover, +.secondaryToolbarButton:focus { + background-color: hsla(0,0%,0%,.12); + background-image: -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,100%,.05)), to(hsla(0,0%,100%,0))); + background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0)); + background-clip: padding-box; + border: 1px solid hsla(0,0%,0%,.35); + border-color: hsla(0,0%,0%,.32) hsla(0,0%,0%,.38) hsla(0,0%,0%,.42); + box-shadow: 0 1px 0 hsla(0,0%,100%,.05) inset, + 0 0 1px hsla(0,0%,100%,.15) inset, + 0 1px 0 hsla(0,0%,100%,.05); +} + +.toolbarButton:hover:active, +.overlayButton:hover:active, +.dropdownToolbarButton:hover:active, +.secondaryToolbarButton:hover:active { + background-color: hsla(0,0%,0%,.2); + background-image: -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,100%,.05)), to(hsla(0,0%,100%,0))); + background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0)); + border-color: hsla(0,0%,0%,.35) hsla(0,0%,0%,.4) hsla(0,0%,0%,.45); + box-shadow: 0 1px 1px hsla(0,0%,0%,.1) inset, + 0 0 1px hsla(0,0%,0%,.2) inset, + 0 1px 0 hsla(0,0%,100%,.05); + -webkit-transition-property: background-color, border-color, box-shadow; + transition-property: background-color, border-color, box-shadow; + -webkit-transition-duration: 10ms; + transition-duration: 10ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; +} + +.toolbarButton.toggled, +.splitToolbarButton.toggled > .toolbarButton.toggled, +.secondaryToolbarButton.toggled { + background-color: hsla(0,0%,0%,.3); + background-image: -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,100%,.05)), to(hsla(0,0%,100%,0))); + background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0)); + border-color: hsla(0,0%,0%,.4) hsla(0,0%,0%,.45) hsla(0,0%,0%,.5); + box-shadow: 0 1px 1px hsla(0,0%,0%,.1) inset, + 0 0 1px hsla(0,0%,0%,.2) inset, + 0 1px 0 hsla(0,0%,100%,.05); + -webkit-transition-property: background-color, border-color, box-shadow; + transition-property: background-color, border-color, box-shadow; + -webkit-transition-duration: 10ms; + transition-duration: 10ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; +} + +.toolbarButton.toggled:hover:active, +.splitToolbarButton.toggled > .toolbarButton.toggled:hover:active, +.secondaryToolbarButton.toggled:hover:active { + background-color: hsla(0,0%,0%,.4); + border-color: hsla(0,0%,0%,.4) hsla(0,0%,0%,.5) hsla(0,0%,0%,.55); + box-shadow: 0 1px 1px hsla(0,0%,0%,.2) inset, + 0 0 1px hsla(0,0%,0%,.3) inset, + 0 1px 0 hsla(0,0%,100%,.05); +} + +.dropdownToolbarButton { + width: 120px; + max-width: 120px; + padding: 0; + overflow: hidden; + background: url(images/toolbarButton-menuArrows.png) no-repeat; +} +html[dir='ltr'] .dropdownToolbarButton { + background-position: 95%; +} +html[dir='rtl'] .dropdownToolbarButton { + background-position: 5%; +} + +.dropdownToolbarButton > select { + min-width: 140px; + font-size: 12px; + color: hsl(0,0%,95%); + margin: 0; + padding: 3px 2px 2px; + border: none; + background: rgba(0,0,0,0); /* Opera does not support 'transparent' +

      +

      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

    + +
    + + + + +
    +
    + + + +
    + +
    + +
    +
    + + + +
    +
    +
    +
    + +
    + +
    + +
    + +
    + + +
    +
    + + + + + + + + + Current View + + +
    + + +
    +
    +
    + +
    + +
    + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + +
    +
    +
    + + + + + + + +
    + + + diff --git a/htdocs/vendor/pdfjs/web/viewer.js b/htdocs/vendor/pdfjs/web/viewer.js new file mode 100644 index 0000000..79a9fac --- /dev/null +++ b/htdocs/vendor/pdfjs/web/viewer.js @@ -0,0 +1,15661 @@ +/** + * @licstart The following is the entire license notice for the + * Javascript code in this page + * + * Copyright 2019 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * @licend The above is the entire license notice for the + * Javascript code in this page + */ + +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +; +var pdfjsWebApp, pdfjsWebAppOptions; +{ + pdfjsWebApp = __webpack_require__(1); + pdfjsWebAppOptions = __webpack_require__(6); +} +; +{ + __webpack_require__(36); +} +; +{ + __webpack_require__(41); +} + +function getViewerConfiguration() { + return { + appContainer: document.body, + mainContainer: document.getElementById('viewerContainer'), + viewerContainer: document.getElementById('viewer'), + eventBus: null, + toolbar: { + container: document.getElementById('toolbarViewer'), + numPages: document.getElementById('numPages'), + pageNumber: document.getElementById('pageNumber'), + scaleSelectContainer: document.getElementById('scaleSelectContainer'), + scaleSelect: document.getElementById('scaleSelect'), + customScaleOption: document.getElementById('customScaleOption'), + previous: document.getElementById('previous'), + next: document.getElementById('next'), + zoomIn: document.getElementById('zoomIn'), + zoomOut: document.getElementById('zoomOut'), + viewFind: document.getElementById('viewFind'), + openFile: document.getElementById('openFile'), + print: document.getElementById('print'), + presentationModeButton: document.getElementById('presentationMode'), + download: document.getElementById('download'), + viewBookmark: document.getElementById('viewBookmark') + }, + secondaryToolbar: { + toolbar: document.getElementById('secondaryToolbar'), + toggleButton: document.getElementById('secondaryToolbarToggle'), + toolbarButtonContainer: document.getElementById('secondaryToolbarButtonContainer'), + presentationModeButton: document.getElementById('secondaryPresentationMode'), + openFileButton: document.getElementById('secondaryOpenFile'), + printButton: document.getElementById('secondaryPrint'), + downloadButton: document.getElementById('secondaryDownload'), + viewBookmarkButton: document.getElementById('secondaryViewBookmark'), + firstPageButton: document.getElementById('firstPage'), + lastPageButton: document.getElementById('lastPage'), + pageRotateCwButton: document.getElementById('pageRotateCw'), + pageRotateCcwButton: document.getElementById('pageRotateCcw'), + cursorSelectToolButton: document.getElementById('cursorSelectTool'), + cursorHandToolButton: document.getElementById('cursorHandTool'), + scrollVerticalButton: document.getElementById('scrollVertical'), + scrollHorizontalButton: document.getElementById('scrollHorizontal'), + scrollWrappedButton: document.getElementById('scrollWrapped'), + spreadNoneButton: document.getElementById('spreadNone'), + spreadOddButton: document.getElementById('spreadOdd'), + spreadEvenButton: document.getElementById('spreadEven'), + documentPropertiesButton: document.getElementById('documentProperties') + }, + fullscreen: { + contextFirstPage: document.getElementById('contextFirstPage'), + contextLastPage: document.getElementById('contextLastPage'), + contextPageRotateCw: document.getElementById('contextPageRotateCw'), + contextPageRotateCcw: document.getElementById('contextPageRotateCcw') + }, + sidebar: { + outerContainer: document.getElementById('outerContainer'), + viewerContainer: document.getElementById('viewerContainer'), + toggleButton: document.getElementById('sidebarToggle'), + thumbnailButton: document.getElementById('viewThumbnail'), + outlineButton: document.getElementById('viewOutline'), + attachmentsButton: document.getElementById('viewAttachments'), + thumbnailView: document.getElementById('thumbnailView'), + outlineView: document.getElementById('outlineView'), + attachmentsView: document.getElementById('attachmentsView') + }, + sidebarResizer: { + outerContainer: document.getElementById('outerContainer'), + resizer: document.getElementById('sidebarResizer') + }, + findBar: { + bar: document.getElementById('findbar'), + toggleButton: document.getElementById('viewFind'), + findField: document.getElementById('findInput'), + highlightAllCheckbox: document.getElementById('findHighlightAll'), + caseSensitiveCheckbox: document.getElementById('findMatchCase'), + entireWordCheckbox: document.getElementById('findEntireWord'), + findMsg: document.getElementById('findMsg'), + findResultsCount: document.getElementById('findResultsCount'), + findPreviousButton: document.getElementById('findPrevious'), + findNextButton: document.getElementById('findNext') + }, + passwordOverlay: { + overlayName: 'passwordOverlay', + container: document.getElementById('passwordOverlay'), + label: document.getElementById('passwordText'), + input: document.getElementById('password'), + submitButton: document.getElementById('passwordSubmit'), + cancelButton: document.getElementById('passwordCancel') + }, + documentProperties: { + overlayName: 'documentPropertiesOverlay', + container: document.getElementById('documentPropertiesOverlay'), + closeButton: document.getElementById('documentPropertiesClose'), + fields: { + 'fileName': document.getElementById('fileNameField'), + 'fileSize': document.getElementById('fileSizeField'), + 'title': document.getElementById('titleField'), + 'author': document.getElementById('authorField'), + 'subject': document.getElementById('subjectField'), + 'keywords': document.getElementById('keywordsField'), + 'creationDate': document.getElementById('creationDateField'), + 'modificationDate': document.getElementById('modificationDateField'), + 'creator': document.getElementById('creatorField'), + 'producer': document.getElementById('producerField'), + 'version': document.getElementById('versionField'), + 'pageCount': document.getElementById('pageCountField'), + 'pageSize': document.getElementById('pageSizeField'), + 'linearized': document.getElementById('linearizedField') + } + }, + errorWrapper: { + container: document.getElementById('errorWrapper'), + errorMessage: document.getElementById('errorMessage'), + closeButton: document.getElementById('errorClose'), + errorMoreInfo: document.getElementById('errorMoreInfo'), + moreInfoButton: document.getElementById('errorShowMore'), + lessInfoButton: document.getElementById('errorShowLess') + }, + printContainer: document.getElementById('printContainer'), + openFileInputName: 'fileInput', + debuggerScriptPath: './debugger.js' + }; +} + +function webViewerLoad() { + var config = getViewerConfiguration(); + window.PDFViewerApplication = pdfjsWebApp.PDFViewerApplication; + window.PDFViewerApplicationOptions = pdfjsWebAppOptions.AppOptions; + var event = document.createEvent('CustomEvent'); + event.initCustomEvent('webviewerloaded', true, true, {}); + document.dispatchEvent(event); + pdfjsWebApp.PDFViewerApplication.run(config); +} + +if (document.readyState === 'interactive' || document.readyState === 'complete') { + webViewerLoad(); +} else { + document.addEventListener('DOMContentLoaded', webViewerLoad, true); +} + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFPrintServiceFactory = exports.DefaultExternalServices = exports.PDFViewerApplication = void 0; + +var _regenerator = _interopRequireDefault(__webpack_require__(2)); + +var _ui_utils = __webpack_require__(5); + +var _app_options = __webpack_require__(6); + +var _pdfjsLib = __webpack_require__(7); + +var _pdf_cursor_tools = __webpack_require__(9); + +var _pdf_rendering_queue = __webpack_require__(11); + +var _pdf_sidebar = __webpack_require__(12); + +var _overlay_manager = __webpack_require__(13); + +var _password_prompt = __webpack_require__(14); + +var _pdf_attachment_viewer = __webpack_require__(15); + +var _pdf_document_properties = __webpack_require__(16); + +var _pdf_find_bar = __webpack_require__(17); + +var _pdf_find_controller = __webpack_require__(18); + +var _pdf_history = __webpack_require__(20); + +var _pdf_link_service = __webpack_require__(21); + +var _pdf_outline_viewer = __webpack_require__(22); + +var _pdf_presentation_mode = __webpack_require__(23); + +var _pdf_sidebar_resizer = __webpack_require__(24); + +var _pdf_thumbnail_viewer = __webpack_require__(25); + +var _pdf_viewer = __webpack_require__(27); + +var _secondary_toolbar = __webpack_require__(32); + +var _toolbar = __webpack_require__(34); + +var _view_history = __webpack_require__(35); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } + +function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +var DEFAULT_SCALE_DELTA = 1.1; +var DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT = 5000; +var FORCE_PAGES_LOADED_TIMEOUT = 10000; +var WHEEL_ZOOM_DISABLED_TIMEOUT = 1000; +var ViewOnLoad = { + UNKNOWN: -1, + PREVIOUS: 0, + INITIAL: 1 +}; +var DefaultExternalServices = { + updateFindControlState: function updateFindControlState(data) {}, + updateFindMatchesCount: function updateFindMatchesCount(data) {}, + initPassiveLoading: function initPassiveLoading(callbacks) {}, + fallback: function fallback(data, callback) {}, + reportTelemetry: function reportTelemetry(data) {}, + createDownloadManager: function createDownloadManager(options) { + throw new Error('Not implemented: createDownloadManager'); + }, + createPreferences: function createPreferences() { + throw new Error('Not implemented: createPreferences'); + }, + createL10n: function createL10n(options) { + throw new Error('Not implemented: createL10n'); + }, + supportsIntegratedFind: false, + supportsDocumentFonts: true, + supportsDocumentColors: true, + supportedMouseWheelZoomModifierKeys: { + ctrlKey: true, + metaKey: true + } +}; +exports.DefaultExternalServices = DefaultExternalServices; +var PDFViewerApplication = { + initialBookmark: document.location.hash.substring(1), + initialized: false, + fellback: false, + appConfig: null, + pdfDocument: null, + pdfLoadingTask: null, + printService: null, + pdfViewer: null, + pdfThumbnailViewer: null, + pdfRenderingQueue: null, + pdfPresentationMode: null, + pdfDocumentProperties: null, + pdfLinkService: null, + pdfHistory: null, + pdfSidebar: null, + pdfSidebarResizer: null, + pdfOutlineViewer: null, + pdfAttachmentViewer: null, + pdfCursorTools: null, + store: null, + downloadManager: null, + overlayManager: null, + preferences: null, + toolbar: null, + secondaryToolbar: null, + eventBus: null, + l10n: null, + isInitialViewSet: false, + downloadComplete: false, + isViewerEmbedded: window.parent !== window, + url: '', + baseUrl: '', + externalServices: DefaultExternalServices, + _boundEvents: {}, + contentDispositionFilename: null, + initialize: function () { + var _initialize = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee(appConfig) { + var _this = this; + + var appContainer; + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + this.preferences = this.externalServices.createPreferences(); + this.appConfig = appConfig; + _context.next = 4; + return this._readPreferences(); + + case 4: + _context.next = 6; + return this._parseHashParameters(); + + case 6: + _context.next = 8; + return this._initializeL10n(); + + case 8: + if (this.isViewerEmbedded && _app_options.AppOptions.get('externalLinkTarget') === _pdfjsLib.LinkTarget.NONE) { + _app_options.AppOptions.set('externalLinkTarget', _pdfjsLib.LinkTarget.TOP); + } + + _context.next = 11; + return this._initializeViewerComponents(); + + case 11: + this.bindEvents(); + this.bindWindowEvents(); + appContainer = appConfig.appContainer || document.documentElement; + this.l10n.translate(appContainer).then(function () { + _this.eventBus.dispatch('localized', { + source: _this + }); + }); + this.initialized = true; + + case 16: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function initialize(_x) { + return _initialize.apply(this, arguments); + } + + return initialize; + }(), + _readPreferences: function () { + var _readPreferences2 = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee2() { + var prefs, name; + return _regenerator["default"].wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + if (!(_app_options.AppOptions.get('disablePreferences') === true)) { + _context2.next = 2; + break; + } + + return _context2.abrupt("return"); + + case 2: + _context2.prev = 2; + _context2.next = 5; + return this.preferences.getAll(); + + case 5: + prefs = _context2.sent; + + for (name in prefs) { + _app_options.AppOptions.set(name, prefs[name]); + } + + _context2.next = 12; + break; + + case 9: + _context2.prev = 9; + _context2.t0 = _context2["catch"](2); + console.error("_readPreferences: \"".concat(_context2.t0.message, "\".")); + + case 12: + case "end": + return _context2.stop(); + } + } + }, _callee2, this, [[2, 9]]); + })); + + function _readPreferences() { + return _readPreferences2.apply(this, arguments); + } + + return _readPreferences; + }(), + _parseHashParameters: function () { + var _parseHashParameters2 = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee3() { + var waitOn, hash, hashParams, viewer, enabled; + return _regenerator["default"].wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + if (_app_options.AppOptions.get('pdfBugEnabled')) { + _context3.next = 2; + break; + } + + return _context3.abrupt("return", undefined); + + case 2: + waitOn = []; + hash = document.location.hash.substring(1); + hashParams = (0, _ui_utils.parseQueryString)(hash); + + if ('disableworker' in hashParams && hashParams['disableworker'] === 'true') { + waitOn.push(loadFakeWorker()); + } + + if ('disablerange' in hashParams) { + _app_options.AppOptions.set('disableRange', hashParams['disablerange'] === 'true'); + } + + if ('disablestream' in hashParams) { + _app_options.AppOptions.set('disableStream', hashParams['disablestream'] === 'true'); + } + + if ('disableautofetch' in hashParams) { + _app_options.AppOptions.set('disableAutoFetch', hashParams['disableautofetch'] === 'true'); + } + + if ('disablefontface' in hashParams) { + _app_options.AppOptions.set('disableFontFace', hashParams['disablefontface'] === 'true'); + } + + if ('disablehistory' in hashParams) { + _app_options.AppOptions.set('disableHistory', hashParams['disablehistory'] === 'true'); + } + + if ('webgl' in hashParams) { + _app_options.AppOptions.set('enableWebGL', hashParams['webgl'] === 'true'); + } + + if ('useonlycsszoom' in hashParams) { + _app_options.AppOptions.set('useOnlyCssZoom', hashParams['useonlycsszoom'] === 'true'); + } + + if ('verbosity' in hashParams) { + _app_options.AppOptions.set('verbosity', hashParams['verbosity'] | 0); + } + + if (!('textlayer' in hashParams)) { + _context3.next = 23; + break; + } + + _context3.t0 = hashParams['textlayer']; + _context3.next = _context3.t0 === 'off' ? 18 : _context3.t0 === 'visible' ? 20 : _context3.t0 === 'shadow' ? 20 : _context3.t0 === 'hover' ? 20 : 23; + break; + + case 18: + _app_options.AppOptions.set('textLayerMode', _ui_utils.TextLayerMode.DISABLE); + + return _context3.abrupt("break", 23); + + case 20: + viewer = this.appConfig.viewerContainer; + viewer.classList.add('textLayer-' + hashParams['textlayer']); + return _context3.abrupt("break", 23); + + case 23: + if ('pdfbug' in hashParams) { + _app_options.AppOptions.set('pdfBug', true); + + enabled = hashParams['pdfbug'].split(','); + waitOn.push(loadAndEnablePDFBug(enabled)); + } + + if ('locale' in hashParams) { + _app_options.AppOptions.set('locale', hashParams['locale']); + } + + return _context3.abrupt("return", Promise.all(waitOn)["catch"](function (reason) { + console.error("_parseHashParameters: \"".concat(reason.message, "\".")); + })); + + case 26: + case "end": + return _context3.stop(); + } + } + }, _callee3, this); + })); + + function _parseHashParameters() { + return _parseHashParameters2.apply(this, arguments); + } + + return _parseHashParameters; + }(), + _initializeL10n: function () { + var _initializeL10n2 = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee4() { + var dir; + return _regenerator["default"].wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + this.l10n = this.externalServices.createL10n({ + locale: _app_options.AppOptions.get('locale') + }); + _context4.next = 3; + return this.l10n.getDirection(); + + case 3: + dir = _context4.sent; + document.getElementsByTagName('html')[0].dir = dir; + + case 5: + case "end": + return _context4.stop(); + } + } + }, _callee4, this); + })); + + function _initializeL10n() { + return _initializeL10n2.apply(this, arguments); + } + + return _initializeL10n; + }(), + _initializeViewerComponents: function () { + var _initializeViewerComponents2 = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee5() { + var appConfig, eventBus, pdfRenderingQueue, pdfLinkService, downloadManager, findController, container, viewer; + return _regenerator["default"].wrap(function _callee5$(_context5) { + while (1) { + switch (_context5.prev = _context5.next) { + case 0: + appConfig = this.appConfig; + this.overlayManager = new _overlay_manager.OverlayManager(); + eventBus = appConfig.eventBus || (0, _ui_utils.getGlobalEventBus)(_app_options.AppOptions.get('eventBusDispatchToDOM')); + this.eventBus = eventBus; + pdfRenderingQueue = new _pdf_rendering_queue.PDFRenderingQueue(); + pdfRenderingQueue.onIdle = this.cleanup.bind(this); + this.pdfRenderingQueue = pdfRenderingQueue; + pdfLinkService = new _pdf_link_service.PDFLinkService({ + eventBus: eventBus, + externalLinkTarget: _app_options.AppOptions.get('externalLinkTarget'), + externalLinkRel: _app_options.AppOptions.get('externalLinkRel') + }); + this.pdfLinkService = pdfLinkService; + downloadManager = this.externalServices.createDownloadManager({ + disableCreateObjectURL: _app_options.AppOptions.get('disableCreateObjectURL') + }); + this.downloadManager = downloadManager; + findController = new _pdf_find_controller.PDFFindController({ + linkService: pdfLinkService, + eventBus: eventBus + }); + this.findController = findController; + container = appConfig.mainContainer; + viewer = appConfig.viewerContainer; + this.pdfViewer = new _pdf_viewer.PDFViewer({ + container: container, + viewer: viewer, + eventBus: eventBus, + renderingQueue: pdfRenderingQueue, + linkService: pdfLinkService, + downloadManager: downloadManager, + findController: findController, + renderer: _app_options.AppOptions.get('renderer'), + enableWebGL: _app_options.AppOptions.get('enableWebGL'), + l10n: this.l10n, + textLayerMode: _app_options.AppOptions.get('textLayerMode'), + imageResourcesPath: _app_options.AppOptions.get('imageResourcesPath'), + renderInteractiveForms: _app_options.AppOptions.get('renderInteractiveForms'), + enablePrintAutoRotate: _app_options.AppOptions.get('enablePrintAutoRotate'), + useOnlyCssZoom: _app_options.AppOptions.get('useOnlyCssZoom'), + maxCanvasPixels: _app_options.AppOptions.get('maxCanvasPixels') + }); + pdfRenderingQueue.setViewer(this.pdfViewer); + pdfLinkService.setViewer(this.pdfViewer); + this.pdfThumbnailViewer = new _pdf_thumbnail_viewer.PDFThumbnailViewer({ + container: appConfig.sidebar.thumbnailView, + renderingQueue: pdfRenderingQueue, + linkService: pdfLinkService, + l10n: this.l10n + }); + pdfRenderingQueue.setThumbnailViewer(this.pdfThumbnailViewer); + this.pdfHistory = new _pdf_history.PDFHistory({ + linkService: pdfLinkService, + eventBus: eventBus + }); + pdfLinkService.setHistory(this.pdfHistory); + this.findBar = new _pdf_find_bar.PDFFindBar(appConfig.findBar, eventBus, this.l10n); + this.pdfDocumentProperties = new _pdf_document_properties.PDFDocumentProperties(appConfig.documentProperties, this.overlayManager, eventBus, this.l10n); + this.pdfCursorTools = new _pdf_cursor_tools.PDFCursorTools({ + container: container, + eventBus: eventBus, + cursorToolOnLoad: _app_options.AppOptions.get('cursorToolOnLoad') + }); + this.toolbar = new _toolbar.Toolbar(appConfig.toolbar, eventBus, this.l10n); + this.secondaryToolbar = new _secondary_toolbar.SecondaryToolbar(appConfig.secondaryToolbar, container, eventBus); + + if (this.supportsFullscreen) { + this.pdfPresentationMode = new _pdf_presentation_mode.PDFPresentationMode({ + container: container, + viewer: viewer, + pdfViewer: this.pdfViewer, + eventBus: eventBus, + contextMenuItems: appConfig.fullscreen + }); + } + + this.passwordPrompt = new _password_prompt.PasswordPrompt(appConfig.passwordOverlay, this.overlayManager, this.l10n); + this.pdfOutlineViewer = new _pdf_outline_viewer.PDFOutlineViewer({ + container: appConfig.sidebar.outlineView, + eventBus: eventBus, + linkService: pdfLinkService + }); + this.pdfAttachmentViewer = new _pdf_attachment_viewer.PDFAttachmentViewer({ + container: appConfig.sidebar.attachmentsView, + eventBus: eventBus, + downloadManager: downloadManager + }); + this.pdfSidebar = new _pdf_sidebar.PDFSidebar({ + elements: appConfig.sidebar, + pdfViewer: this.pdfViewer, + pdfThumbnailViewer: this.pdfThumbnailViewer, + eventBus: eventBus, + l10n: this.l10n + }); + this.pdfSidebar.onToggled = this.forceRendering.bind(this); + this.pdfSidebarResizer = new _pdf_sidebar_resizer.PDFSidebarResizer(appConfig.sidebarResizer, eventBus, this.l10n); + + case 34: + case "end": + return _context5.stop(); + } + } + }, _callee5, this); + })); + + function _initializeViewerComponents() { + return _initializeViewerComponents2.apply(this, arguments); + } + + return _initializeViewerComponents; + }(), + run: function run(config) { + this.initialize(config).then(webViewerInitialized); + }, + zoomIn: function zoomIn(ticks) { + var newScale = this.pdfViewer.currentScale; + + do { + newScale = (newScale * DEFAULT_SCALE_DELTA).toFixed(2); + newScale = Math.ceil(newScale * 10) / 10; + newScale = Math.min(_ui_utils.MAX_SCALE, newScale); + } while (--ticks > 0 && newScale < _ui_utils.MAX_SCALE); + + this.pdfViewer.currentScaleValue = newScale; + }, + zoomOut: function zoomOut(ticks) { + var newScale = this.pdfViewer.currentScale; + + do { + newScale = (newScale / DEFAULT_SCALE_DELTA).toFixed(2); + newScale = Math.floor(newScale * 10) / 10; + newScale = Math.max(_ui_utils.MIN_SCALE, newScale); + } while (--ticks > 0 && newScale > _ui_utils.MIN_SCALE); + + this.pdfViewer.currentScaleValue = newScale; + }, + zoomReset: function zoomReset() { + var ignoreDuplicate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + + if (this.pdfViewer.isInPresentationMode) { + return; + } else if (ignoreDuplicate && this.pdfViewer.currentScaleValue === _ui_utils.DEFAULT_SCALE_VALUE) { + return; + } + + this.pdfViewer.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; + }, + + get pagesCount() { + return this.pdfDocument ? this.pdfDocument.numPages : 0; + }, + + set page(val) { + this.pdfViewer.currentPageNumber = val; + }, + + get page() { + return this.pdfViewer.currentPageNumber; + }, + + get printing() { + return !!this.printService; + }, + + get supportsPrinting() { + return PDFPrintServiceFactory.instance.supportsPrinting; + }, + + get supportsFullscreen() { + var support; + var doc = document.documentElement; + support = !!(doc.requestFullscreen || doc.mozRequestFullScreen || doc.webkitRequestFullScreen || doc.msRequestFullscreen); + + if (document.fullscreenEnabled === false || document.mozFullScreenEnabled === false || document.webkitFullscreenEnabled === false || document.msFullscreenEnabled === false) { + support = false; + } + + return (0, _pdfjsLib.shadow)(this, 'supportsFullscreen', support); + }, + + get supportsIntegratedFind() { + return this.externalServices.supportsIntegratedFind; + }, + + get supportsDocumentFonts() { + return this.externalServices.supportsDocumentFonts; + }, + + get supportsDocumentColors() { + return this.externalServices.supportsDocumentColors; + }, + + get loadingBar() { + var bar = new _ui_utils.ProgressBar('#loadingBar'); + return (0, _pdfjsLib.shadow)(this, 'loadingBar', bar); + }, + + get supportedMouseWheelZoomModifierKeys() { + return this.externalServices.supportedMouseWheelZoomModifierKeys; + }, + + initPassiveLoading: function initPassiveLoading() { + throw new Error('Not implemented: initPassiveLoading'); + }, + setTitleUsingUrl: function setTitleUsingUrl() { + var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; + this.url = url; + this.baseUrl = url.split('#')[0]; + var title = (0, _ui_utils.getPDFFileNameFromURL)(url, ''); + + if (!title) { + try { + title = decodeURIComponent((0, _pdfjsLib.getFilenameFromUrl)(url)) || url; + } catch (ex) { + title = url; + } + } + + this.setTitle(title); + }, + setTitle: function setTitle(title) { + if (this.isViewerEmbedded) { + return; + } + + document.title = title; + }, + close: function () { + var _close = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee6() { + var errorWrapper, promise; + return _regenerator["default"].wrap(function _callee6$(_context6) { + while (1) { + switch (_context6.prev = _context6.next) { + case 0: + errorWrapper = this.appConfig.errorWrapper.container; + errorWrapper.setAttribute('hidden', 'true'); + + if (this.pdfLoadingTask) { + _context6.next = 4; + break; + } + + return _context6.abrupt("return", undefined); + + case 4: + promise = this.pdfLoadingTask.destroy(); + this.pdfLoadingTask = null; + + if (this.pdfDocument) { + this.pdfDocument = null; + this.pdfThumbnailViewer.setDocument(null); + this.pdfViewer.setDocument(null); + this.pdfLinkService.setDocument(null); + this.pdfDocumentProperties.setDocument(null); + } + + this.store = null; + this.isInitialViewSet = false; + this.downloadComplete = false; + this.url = ''; + this.baseUrl = ''; + this.contentDispositionFilename = null; + this.pdfSidebar.reset(); + this.pdfOutlineViewer.reset(); + this.pdfAttachmentViewer.reset(); + this.findBar.reset(); + this.toolbar.reset(); + this.secondaryToolbar.reset(); + + if (typeof PDFBug !== 'undefined') { + PDFBug.cleanup(); + } + + return _context6.abrupt("return", promise); + + case 21: + case "end": + return _context6.stop(); + } + } + }, _callee6, this); + })); + + function close() { + return _close.apply(this, arguments); + } + + return close; + }(), + open: function () { + var _open = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee7(file, args) { + var _this2 = this; + + var workerParameters, key, parameters, apiParameters, _key, prop, loadingTask; + + return _regenerator["default"].wrap(function _callee7$(_context7) { + while (1) { + switch (_context7.prev = _context7.next) { + case 0: + if (!this.pdfLoadingTask) { + _context7.next = 3; + break; + } + + _context7.next = 3; + return this.close(); + + case 3: + workerParameters = _app_options.AppOptions.getAll(_app_options.OptionKind.WORKER); + + for (key in workerParameters) { + _pdfjsLib.GlobalWorkerOptions[key] = workerParameters[key]; + } + + parameters = Object.create(null); + + if (typeof file === 'string') { + this.setTitleUsingUrl(file); + parameters.url = file; + } else if (file && 'byteLength' in file) { + parameters.data = file; + } else if (file.url && file.originalUrl) { + this.setTitleUsingUrl(file.originalUrl); + parameters.url = file.url; + } + + apiParameters = _app_options.AppOptions.getAll(_app_options.OptionKind.API); + + for (_key in apiParameters) { + parameters[_key] = apiParameters[_key]; + } + + if (args) { + for (prop in args) { + if (prop === 'length') { + this.pdfDocumentProperties.setFileSize(args[prop]); + } + + parameters[prop] = args[prop]; + } + } + + loadingTask = (0, _pdfjsLib.getDocument)(parameters); + this.pdfLoadingTask = loadingTask; + + loadingTask.onPassword = function (updateCallback, reason) { + _this2.passwordPrompt.setUpdateCallback(updateCallback, reason); + + _this2.passwordPrompt.open(); + }; + + loadingTask.onProgress = function (_ref) { + var loaded = _ref.loaded, + total = _ref.total; + + _this2.progress(loaded / total); + }; + + loadingTask.onUnsupportedFeature = this.fallback.bind(this); + return _context7.abrupt("return", loadingTask.promise.then(function (pdfDocument) { + _this2.load(pdfDocument); + }, function (exception) { + if (loadingTask !== _this2.pdfLoadingTask) { + return undefined; + } + + var message = exception && exception.message; + var loadingErrorMessage; + + if (exception instanceof _pdfjsLib.InvalidPDFException) { + loadingErrorMessage = _this2.l10n.get('invalid_file_error', null, 'Invalid or corrupted PDF file.'); + } else if (exception instanceof _pdfjsLib.MissingPDFException) { + loadingErrorMessage = _this2.l10n.get('missing_file_error', null, 'Missing PDF file.'); + } else if (exception instanceof _pdfjsLib.UnexpectedResponseException) { + loadingErrorMessage = _this2.l10n.get('unexpected_response_error', null, 'Unexpected server response.'); + } else { + loadingErrorMessage = _this2.l10n.get('loading_error', null, 'An error occurred while loading the PDF.'); + } + + return loadingErrorMessage.then(function (msg) { + _this2.error(msg, { + message: message + }); + + throw new Error(msg); + }); + })); + + case 16: + case "end": + return _context7.stop(); + } + } + }, _callee7, this); + })); + + function open(_x2, _x3) { + return _open.apply(this, arguments); + } + + return open; + }(), + download: function download() { + var _this3 = this; + + function downloadByUrl() { + downloadManager.downloadUrl(url, filename); + } + + var url = this.baseUrl; + var filename = this.contentDispositionFilename || (0, _ui_utils.getPDFFileNameFromURL)(this.url); + var downloadManager = this.downloadManager; + + downloadManager.onerror = function (err) { + _this3.error("PDF failed to download: ".concat(err)); + }; + + if (!this.pdfDocument || !this.downloadComplete) { + downloadByUrl(); + return; + } + + this.pdfDocument.getData().then(function (data) { + var blob = new Blob([data], { + type: 'application/pdf' + }); + downloadManager.download(blob, url, filename); + })["catch"](downloadByUrl); + }, + fallback: function fallback(featureId) {}, + error: function error(message, moreInfo) { + var moreInfoText = [this.l10n.get('error_version_info', { + version: _pdfjsLib.version || '?', + build: _pdfjsLib.build || '?' + }, 'PDF.js v{{version}} (build: {{build}})')]; + + if (moreInfo) { + moreInfoText.push(this.l10n.get('error_message', { + message: moreInfo.message + }, 'Message: {{message}}')); + + if (moreInfo.stack) { + moreInfoText.push(this.l10n.get('error_stack', { + stack: moreInfo.stack + }, 'Stack: {{stack}}')); + } else { + if (moreInfo.filename) { + moreInfoText.push(this.l10n.get('error_file', { + file: moreInfo.filename + }, 'File: {{file}}')); + } + + if (moreInfo.lineNumber) { + moreInfoText.push(this.l10n.get('error_line', { + line: moreInfo.lineNumber + }, 'Line: {{line}}')); + } + } + } + + var errorWrapperConfig = this.appConfig.errorWrapper; + var errorWrapper = errorWrapperConfig.container; + errorWrapper.removeAttribute('hidden'); + var errorMessage = errorWrapperConfig.errorMessage; + errorMessage.textContent = message; + var closeButton = errorWrapperConfig.closeButton; + + closeButton.onclick = function () { + errorWrapper.setAttribute('hidden', 'true'); + }; + + var errorMoreInfo = errorWrapperConfig.errorMoreInfo; + var moreInfoButton = errorWrapperConfig.moreInfoButton; + var lessInfoButton = errorWrapperConfig.lessInfoButton; + + moreInfoButton.onclick = function () { + errorMoreInfo.removeAttribute('hidden'); + moreInfoButton.setAttribute('hidden', 'true'); + lessInfoButton.removeAttribute('hidden'); + errorMoreInfo.style.height = errorMoreInfo.scrollHeight + 'px'; + }; + + lessInfoButton.onclick = function () { + errorMoreInfo.setAttribute('hidden', 'true'); + moreInfoButton.removeAttribute('hidden'); + lessInfoButton.setAttribute('hidden', 'true'); + }; + + moreInfoButton.oncontextmenu = _ui_utils.noContextMenuHandler; + lessInfoButton.oncontextmenu = _ui_utils.noContextMenuHandler; + closeButton.oncontextmenu = _ui_utils.noContextMenuHandler; + moreInfoButton.removeAttribute('hidden'); + lessInfoButton.setAttribute('hidden', 'true'); + Promise.all(moreInfoText).then(function (parts) { + errorMoreInfo.value = parts.join('\n'); + }); + }, + progress: function progress(level) { + var _this4 = this; + + if (this.downloadComplete) { + return; + } + + var percent = Math.round(level * 100); + + if (percent > this.loadingBar.percent || isNaN(percent)) { + this.loadingBar.percent = percent; + var disableAutoFetch = this.pdfDocument ? this.pdfDocument.loadingParams['disableAutoFetch'] : _app_options.AppOptions.get('disableAutoFetch'); + + if (disableAutoFetch && percent) { + if (this.disableAutoFetchLoadingBarTimeout) { + clearTimeout(this.disableAutoFetchLoadingBarTimeout); + this.disableAutoFetchLoadingBarTimeout = null; + } + + this.loadingBar.show(); + this.disableAutoFetchLoadingBarTimeout = setTimeout(function () { + _this4.loadingBar.hide(); + + _this4.disableAutoFetchLoadingBarTimeout = null; + }, DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT); + } + } + }, + load: function load(pdfDocument) { + var _this5 = this; + + this.pdfDocument = pdfDocument; + pdfDocument.getDownloadInfo().then(function () { + _this5.downloadComplete = true; + + _this5.loadingBar.hide(); + + firstPagePromise.then(function () { + _this5.eventBus.dispatch('documentloaded', { + source: _this5 + }); + }); + }); + var pageLayoutPromise = pdfDocument.getPageLayout()["catch"](function () {}); + var pageModePromise = pdfDocument.getPageMode()["catch"](function () {}); + var openActionDestPromise = pdfDocument.getOpenActionDestination()["catch"](function () {}); + this.toolbar.setPagesCount(pdfDocument.numPages, false); + this.secondaryToolbar.setPagesCount(pdfDocument.numPages); + var store = this.store = new _view_history.ViewHistory(pdfDocument.fingerprint); + var baseDocumentUrl; + baseDocumentUrl = null; + this.pdfLinkService.setDocument(pdfDocument, baseDocumentUrl); + this.pdfDocumentProperties.setDocument(pdfDocument, this.url); + var pdfViewer = this.pdfViewer; + pdfViewer.setDocument(pdfDocument); + var firstPagePromise = pdfViewer.firstPagePromise; + var pagesPromise = pdfViewer.pagesPromise; + var onePageRendered = pdfViewer.onePageRendered; + var pdfThumbnailViewer = this.pdfThumbnailViewer; + pdfThumbnailViewer.setDocument(pdfDocument); + firstPagePromise.then(function (pdfPage) { + _this5.loadingBar.setWidth(_this5.appConfig.viewerContainer); + + var storePromise = store.getMultiple({ + page: null, + zoom: _ui_utils.DEFAULT_SCALE_VALUE, + scrollLeft: '0', + scrollTop: '0', + rotation: null, + sidebarView: _pdf_sidebar.SidebarView.UNKNOWN, + scrollMode: _ui_utils.ScrollMode.UNKNOWN, + spreadMode: _ui_utils.SpreadMode.UNKNOWN + })["catch"](function () {}); + Promise.all([storePromise, pageLayoutPromise, pageModePromise, openActionDestPromise]).then( + /*#__PURE__*/ + function () { + var _ref3 = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee8(_ref2) { + var _ref4, _ref4$, values, pageLayout, pageMode, openActionDest, viewOnLoad, initialBookmark, zoom, hash, rotation, sidebarView, scrollMode, spreadMode; + + return _regenerator["default"].wrap(function _callee8$(_context8) { + while (1) { + switch (_context8.prev = _context8.next) { + case 0: + _ref4 = _slicedToArray(_ref2, 4), _ref4$ = _ref4[0], values = _ref4$ === void 0 ? {} : _ref4$, pageLayout = _ref4[1], pageMode = _ref4[2], openActionDest = _ref4[3]; + viewOnLoad = _app_options.AppOptions.get('viewOnLoad'); + + _this5._initializePdfHistory({ + fingerprint: pdfDocument.fingerprint, + viewOnLoad: viewOnLoad, + initialDest: openActionDest + }); + + initialBookmark = _this5.initialBookmark; + zoom = _app_options.AppOptions.get('defaultZoomValue'); + hash = zoom ? "zoom=".concat(zoom) : null; + rotation = null; + sidebarView = _app_options.AppOptions.get('sidebarViewOnLoad'); + scrollMode = _app_options.AppOptions.get('scrollModeOnLoad'); + spreadMode = _app_options.AppOptions.get('spreadModeOnLoad'); + + if (values.page && viewOnLoad !== ViewOnLoad.INITIAL) { + hash = "page=".concat(values.page, "&zoom=").concat(zoom || values.zoom, ",") + "".concat(values.scrollLeft, ",").concat(values.scrollTop); + rotation = parseInt(values.rotation, 10); + + if (sidebarView === _pdf_sidebar.SidebarView.UNKNOWN) { + sidebarView = values.sidebarView | 0; + } + + if (scrollMode === _ui_utils.ScrollMode.UNKNOWN) { + scrollMode = values.scrollMode | 0; + } + + if (spreadMode === _ui_utils.SpreadMode.UNKNOWN) { + spreadMode = values.spreadMode | 0; + } + } + + if (pageMode && sidebarView === _pdf_sidebar.SidebarView.UNKNOWN) { + sidebarView = apiPageModeToSidebarView(pageMode); + } + + if (pageLayout && spreadMode === _ui_utils.SpreadMode.UNKNOWN) { + spreadMode = apiPageLayoutToSpreadMode(pageLayout); + } + + _this5.setInitialView(hash, { + rotation: rotation, + sidebarView: sidebarView, + scrollMode: scrollMode, + spreadMode: spreadMode + }); + + _this5.eventBus.dispatch('documentinit', { + source: _this5 + }); + + if (!_this5.isViewerEmbedded) { + pdfViewer.focus(); + } + + _context8.next = 18; + return Promise.race([pagesPromise, new Promise(function (resolve) { + setTimeout(resolve, FORCE_PAGES_LOADED_TIMEOUT); + })]); + + case 18: + if (!(!initialBookmark && !hash)) { + _context8.next = 20; + break; + } + + return _context8.abrupt("return"); + + case 20: + if (!pdfViewer.hasEqualPageSizes) { + _context8.next = 22; + break; + } + + return _context8.abrupt("return"); + + case 22: + _this5.initialBookmark = initialBookmark; + pdfViewer.currentScaleValue = pdfViewer.currentScaleValue; + + _this5.setInitialView(hash); + + case 25: + case "end": + return _context8.stop(); + } + } + }, _callee8); + })); + + return function (_x4) { + return _ref3.apply(this, arguments); + }; + }())["catch"](function () { + _this5.setInitialView(); + }).then(function () { + pdfViewer.update(); + }); + }); + pdfDocument.getPageLabels().then(function (labels) { + if (!labels || _app_options.AppOptions.get('disablePageLabels')) { + return; + } + + var i = 0, + numLabels = labels.length; + + if (numLabels !== _this5.pagesCount) { + console.error('The number of Page Labels does not match ' + 'the number of pages in the document.'); + return; + } + + while (i < numLabels && labels[i] === (i + 1).toString()) { + i++; + } + + if (i === numLabels) { + return; + } + + pdfViewer.setPageLabels(labels); + pdfThumbnailViewer.setPageLabels(labels); + + _this5.toolbar.setPagesCount(pdfDocument.numPages, true); + + _this5.toolbar.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel); + }); + pagesPromise.then(function () { + if (!_this5.supportsPrinting) { + return; + } + + pdfDocument.getJavaScript().then(function (javaScript) { + if (!javaScript) { + return; + } + + javaScript.some(function (js) { + if (!js) { + return false; + } + + console.warn('Warning: JavaScript is not supported'); + + _this5.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.javaScript); + + return true; + }); + var regex = /\bprint\s*\(/; + + for (var i = 0, ii = javaScript.length; i < ii; i++) { + var js = javaScript[i]; + + if (js && regex.test(js)) { + setTimeout(function () { + window.print(); + }); + return; + } + } + }); + }); + Promise.all([onePageRendered, _ui_utils.animationStarted]).then(function () { + pdfDocument.getOutline().then(function (outline) { + _this5.pdfOutlineViewer.render({ + outline: outline + }); + }); + pdfDocument.getAttachments().then(function (attachments) { + _this5.pdfAttachmentViewer.render({ + attachments: attachments + }); + }); + }); + pdfDocument.getMetadata().then(function (_ref5) { + var info = _ref5.info, + metadata = _ref5.metadata, + contentDispositionFilename = _ref5.contentDispositionFilename; + _this5.documentInfo = info; + _this5.metadata = metadata; + _this5.contentDispositionFilename = contentDispositionFilename; + console.log('PDF ' + pdfDocument.fingerprint + ' [' + info.PDFFormatVersion + ' ' + (info.Producer || '-').trim() + ' / ' + (info.Creator || '-').trim() + ']' + ' (PDF.js: ' + (_pdfjsLib.version || '-') + (_app_options.AppOptions.get('enableWebGL') ? ' [WebGL]' : '') + ')'); + var pdfTitle; + + if (metadata && metadata.has('dc:title')) { + var title = metadata.get('dc:title'); + + if (title !== 'Untitled') { + pdfTitle = title; + } + } + + if (!pdfTitle && info && info['Title']) { + pdfTitle = info['Title']; + } + + if (pdfTitle) { + _this5.setTitle("".concat(pdfTitle, " - ").concat(contentDispositionFilename || document.title)); + } else if (contentDispositionFilename) { + _this5.setTitle(contentDispositionFilename); + } + + if (info.IsAcroFormPresent) { + console.warn('Warning: AcroForm/XFA is not supported'); + + _this5.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.forms); + } + }); + }, + _initializePdfHistory: function _initializePdfHistory(_ref6) { + var fingerprint = _ref6.fingerprint, + viewOnLoad = _ref6.viewOnLoad, + _ref6$initialDest = _ref6.initialDest, + initialDest = _ref6$initialDest === void 0 ? null : _ref6$initialDest; + + if (_app_options.AppOptions.get('disableHistory') || this.isViewerEmbedded) { + return; + } + + this.pdfHistory.initialize({ + fingerprint: fingerprint, + resetHistory: viewOnLoad === ViewOnLoad.INITIAL, + updateUrl: _app_options.AppOptions.get('historyUpdateUrl') + }); + + if (this.pdfHistory.initialBookmark) { + this.initialBookmark = this.pdfHistory.initialBookmark; + this.initialRotation = this.pdfHistory.initialRotation; + } + + if (initialDest && !this.initialBookmark && viewOnLoad === ViewOnLoad.UNKNOWN) { + this.initialBookmark = JSON.stringify(initialDest); + this.pdfHistory.push({ + explicitDest: initialDest, + pageNumber: null + }); + } + }, + setInitialView: function setInitialView(storedHash) { + var _this6 = this; + + var _ref7 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + rotation = _ref7.rotation, + sidebarView = _ref7.sidebarView, + scrollMode = _ref7.scrollMode, + spreadMode = _ref7.spreadMode; + + var setRotation = function setRotation(angle) { + if ((0, _ui_utils.isValidRotation)(angle)) { + _this6.pdfViewer.pagesRotation = angle; + } + }; + + var setViewerModes = function setViewerModes(scroll, spread) { + if ((0, _ui_utils.isValidScrollMode)(scroll)) { + _this6.pdfViewer.scrollMode = scroll; + } + + if ((0, _ui_utils.isValidSpreadMode)(spread)) { + _this6.pdfViewer.spreadMode = spread; + } + }; + + this.isInitialViewSet = true; + this.pdfSidebar.setInitialView(sidebarView); + setViewerModes(scrollMode, spreadMode); + + if (this.initialBookmark) { + setRotation(this.initialRotation); + delete this.initialRotation; + this.pdfLinkService.setHash(this.initialBookmark); + this.initialBookmark = null; + } else if (storedHash) { + setRotation(rotation); + this.pdfLinkService.setHash(storedHash); + } + + this.toolbar.setPageNumber(this.pdfViewer.currentPageNumber, this.pdfViewer.currentPageLabel); + this.secondaryToolbar.setPageNumber(this.pdfViewer.currentPageNumber); + + if (!this.pdfViewer.currentScaleValue) { + this.pdfViewer.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; + } + }, + cleanup: function cleanup() { + if (!this.pdfDocument) { + return; + } + + this.pdfViewer.cleanup(); + this.pdfThumbnailViewer.cleanup(); + + if (this.pdfViewer.renderer !== _ui_utils.RendererType.SVG) { + this.pdfDocument.cleanup(); + } + }, + forceRendering: function forceRendering() { + this.pdfRenderingQueue.printing = this.printing; + this.pdfRenderingQueue.isThumbnailViewEnabled = this.pdfSidebar.isThumbnailViewVisible; + this.pdfRenderingQueue.renderHighestPriority(); + }, + beforePrint: function beforePrint() { + var _this7 = this; + + if (this.printService) { + return; + } + + if (!this.supportsPrinting) { + this.l10n.get('printing_not_supported', null, 'Warning: Printing is not fully supported by ' + 'this browser.').then(function (printMessage) { + _this7.error(printMessage); + }); + return; + } + + if (!this.pdfViewer.pageViewsReady) { + this.l10n.get('printing_not_ready', null, 'Warning: The PDF is not fully loaded for printing.').then(function (notReadyMessage) { + window.alert(notReadyMessage); + }); + return; + } + + var pagesOverview = this.pdfViewer.getPagesOverview(); + var printContainer = this.appConfig.printContainer; + var printService = PDFPrintServiceFactory.instance.createPrintService(this.pdfDocument, pagesOverview, printContainer, this.l10n); + this.printService = printService; + this.forceRendering(); + printService.layout(); + }, + afterPrint: function pdfViewSetupAfterPrint() { + if (this.printService) { + this.printService.destroy(); + this.printService = null; + } + + this.forceRendering(); + }, + rotatePages: function rotatePages(delta) { + if (!this.pdfDocument) { + return; + } + + var newRotation = (this.pdfViewer.pagesRotation + 360 + delta) % 360; + this.pdfViewer.pagesRotation = newRotation; + }, + requestPresentationMode: function requestPresentationMode() { + if (!this.pdfPresentationMode) { + return; + } + + this.pdfPresentationMode.request(); + }, + bindEvents: function bindEvents() { + var eventBus = this.eventBus, + _boundEvents = this._boundEvents; + _boundEvents.beforePrint = this.beforePrint.bind(this); + _boundEvents.afterPrint = this.afterPrint.bind(this); + eventBus.on('resize', webViewerResize); + eventBus.on('hashchange', webViewerHashchange); + eventBus.on('beforeprint', _boundEvents.beforePrint); + eventBus.on('afterprint', _boundEvents.afterPrint); + eventBus.on('pagerendered', webViewerPageRendered); + eventBus.on('textlayerrendered', webViewerTextLayerRendered); + eventBus.on('updateviewarea', webViewerUpdateViewarea); + eventBus.on('pagechanging', webViewerPageChanging); + eventBus.on('scalechanging', webViewerScaleChanging); + eventBus.on('rotationchanging', webViewerRotationChanging); + eventBus.on('sidebarviewchanged', webViewerSidebarViewChanged); + eventBus.on('pagemode', webViewerPageMode); + eventBus.on('namedaction', webViewerNamedAction); + eventBus.on('presentationmodechanged', webViewerPresentationModeChanged); + eventBus.on('presentationmode', webViewerPresentationMode); + eventBus.on('openfile', webViewerOpenFile); + eventBus.on('print', webViewerPrint); + eventBus.on('download', webViewerDownload); + eventBus.on('firstpage', webViewerFirstPage); + eventBus.on('lastpage', webViewerLastPage); + eventBus.on('nextpage', webViewerNextPage); + eventBus.on('previouspage', webViewerPreviousPage); + eventBus.on('zoomin', webViewerZoomIn); + eventBus.on('zoomout', webViewerZoomOut); + eventBus.on('zoomreset', webViewerZoomReset); + eventBus.on('pagenumberchanged', webViewerPageNumberChanged); + eventBus.on('scalechanged', webViewerScaleChanged); + eventBus.on('rotatecw', webViewerRotateCw); + eventBus.on('rotateccw', webViewerRotateCcw); + eventBus.on('switchscrollmode', webViewerSwitchScrollMode); + eventBus.on('scrollmodechanged', webViewerScrollModeChanged); + eventBus.on('switchspreadmode', webViewerSwitchSpreadMode); + eventBus.on('spreadmodechanged', webViewerSpreadModeChanged); + eventBus.on('documentproperties', webViewerDocumentProperties); + eventBus.on('find', webViewerFind); + eventBus.on('findfromurlhash', webViewerFindFromUrlHash); + eventBus.on('updatefindmatchescount', webViewerUpdateFindMatchesCount); + eventBus.on('updatefindcontrolstate', webViewerUpdateFindControlState); + eventBus.on('fileinputchange', webViewerFileInputChange); + }, + bindWindowEvents: function bindWindowEvents() { + var eventBus = this.eventBus, + _boundEvents = this._boundEvents; + + _boundEvents.windowResize = function () { + eventBus.dispatch('resize', { + source: window + }); + }; + + _boundEvents.windowHashChange = function () { + eventBus.dispatch('hashchange', { + source: window, + hash: document.location.hash.substring(1) + }); + }; + + _boundEvents.windowBeforePrint = function () { + eventBus.dispatch('beforeprint', { + source: window + }); + }; + + _boundEvents.windowAfterPrint = function () { + eventBus.dispatch('afterprint', { + source: window + }); + }; + + window.addEventListener('visibilitychange', webViewerVisibilityChange); + window.addEventListener('wheel', webViewerWheel, { + passive: false + }); + window.addEventListener('click', webViewerClick); + window.addEventListener('keydown', webViewerKeyDown); + window.addEventListener('resize', _boundEvents.windowResize); + window.addEventListener('hashchange', _boundEvents.windowHashChange); + window.addEventListener('beforeprint', _boundEvents.windowBeforePrint); + window.addEventListener('afterprint', _boundEvents.windowAfterPrint); + }, + unbindEvents: function unbindEvents() { + var eventBus = this.eventBus, + _boundEvents = this._boundEvents; + eventBus.off('resize', webViewerResize); + eventBus.off('hashchange', webViewerHashchange); + eventBus.off('beforeprint', _boundEvents.beforePrint); + eventBus.off('afterprint', _boundEvents.afterPrint); + eventBus.off('pagerendered', webViewerPageRendered); + eventBus.off('textlayerrendered', webViewerTextLayerRendered); + eventBus.off('updateviewarea', webViewerUpdateViewarea); + eventBus.off('pagechanging', webViewerPageChanging); + eventBus.off('scalechanging', webViewerScaleChanging); + eventBus.off('rotationchanging', webViewerRotationChanging); + eventBus.off('sidebarviewchanged', webViewerSidebarViewChanged); + eventBus.off('pagemode', webViewerPageMode); + eventBus.off('namedaction', webViewerNamedAction); + eventBus.off('presentationmodechanged', webViewerPresentationModeChanged); + eventBus.off('presentationmode', webViewerPresentationMode); + eventBus.off('openfile', webViewerOpenFile); + eventBus.off('print', webViewerPrint); + eventBus.off('download', webViewerDownload); + eventBus.off('firstpage', webViewerFirstPage); + eventBus.off('lastpage', webViewerLastPage); + eventBus.off('nextpage', webViewerNextPage); + eventBus.off('previouspage', webViewerPreviousPage); + eventBus.off('zoomin', webViewerZoomIn); + eventBus.off('zoomout', webViewerZoomOut); + eventBus.off('zoomreset', webViewerZoomReset); + eventBus.off('pagenumberchanged', webViewerPageNumberChanged); + eventBus.off('scalechanged', webViewerScaleChanged); + eventBus.off('rotatecw', webViewerRotateCw); + eventBus.off('rotateccw', webViewerRotateCcw); + eventBus.off('switchscrollmode', webViewerSwitchScrollMode); + eventBus.off('scrollmodechanged', webViewerScrollModeChanged); + eventBus.off('switchspreadmode', webViewerSwitchSpreadMode); + eventBus.off('spreadmodechanged', webViewerSpreadModeChanged); + eventBus.off('documentproperties', webViewerDocumentProperties); + eventBus.off('find', webViewerFind); + eventBus.off('findfromurlhash', webViewerFindFromUrlHash); + eventBus.off('updatefindmatchescount', webViewerUpdateFindMatchesCount); + eventBus.off('updatefindcontrolstate', webViewerUpdateFindControlState); + eventBus.off('fileinputchange', webViewerFileInputChange); + _boundEvents.beforePrint = null; + _boundEvents.afterPrint = null; + }, + unbindWindowEvents: function unbindWindowEvents() { + var _boundEvents = this._boundEvents; + window.removeEventListener('visibilitychange', webViewerVisibilityChange); + window.removeEventListener('wheel', webViewerWheel); + window.removeEventListener('click', webViewerClick); + window.removeEventListener('keydown', webViewerKeyDown); + window.removeEventListener('resize', _boundEvents.windowResize); + window.removeEventListener('hashchange', _boundEvents.windowHashChange); + window.removeEventListener('beforeprint', _boundEvents.windowBeforePrint); + window.removeEventListener('afterprint', _boundEvents.windowAfterPrint); + _boundEvents.windowResize = null; + _boundEvents.windowHashChange = null; + _boundEvents.windowBeforePrint = null; + _boundEvents.windowAfterPrint = null; + } +}; +exports.PDFViewerApplication = PDFViewerApplication; +var validateFileURL; +{ + var HOSTED_VIEWER_ORIGINS = ['null', 'http://mozilla.github.io', 'https://mozilla.github.io']; + + validateFileURL = function validateFileURL(file) { + if (file === undefined) { + return; + } + + try { + var viewerOrigin = new _pdfjsLib.URL(window.location.href).origin || 'null'; + + if (HOSTED_VIEWER_ORIGINS.includes(viewerOrigin)) { + return; + } + + var _ref8 = new _pdfjsLib.URL(file, window.location.href), + origin = _ref8.origin, + protocol = _ref8.protocol; + + if (origin !== viewerOrigin && protocol !== 'blob:') { + throw new Error('file origin does not match viewer\'s'); + } + } catch (ex) { + var message = ex && ex.message; + PDFViewerApplication.l10n.get('loading_error', null, 'An error occurred while loading the PDF.').then(function (loadingErrorMessage) { + PDFViewerApplication.error(loadingErrorMessage, { + message: message + }); + }); + throw ex; + } + }; +} + +function loadFakeWorker() { + if (!_pdfjsLib.GlobalWorkerOptions.workerSrc) { + _pdfjsLib.GlobalWorkerOptions.workerSrc = _app_options.AppOptions.get('workerSrc'); + } + + return (0, _pdfjsLib.loadScript)(_pdfjsLib.PDFWorker.getWorkerSrc()); +} + +function loadAndEnablePDFBug(enabledTabs) { + var appConfig = PDFViewerApplication.appConfig; + return (0, _pdfjsLib.loadScript)(appConfig.debuggerScriptPath).then(function () { + PDFBug.enable(enabledTabs); + PDFBug.init({ + OPS: _pdfjsLib.OPS, + createObjectURL: _pdfjsLib.createObjectURL + }, appConfig.mainContainer); + }); +} + +function webViewerInitialized() { + var appConfig = PDFViewerApplication.appConfig; + var file; + var queryString = document.location.search.substring(1); + var params = (0, _ui_utils.parseQueryString)(queryString); + file = 'file' in params ? params.file : _app_options.AppOptions.get('defaultUrl'); + validateFileURL(file); + var fileInput = document.createElement('input'); + fileInput.id = appConfig.openFileInputName; + fileInput.className = 'fileInput'; + fileInput.setAttribute('type', 'file'); + fileInput.oncontextmenu = _ui_utils.noContextMenuHandler; + document.body.appendChild(fileInput); + + if (!window.File || !window.FileReader || !window.FileList || !window.Blob) { + appConfig.toolbar.openFile.setAttribute('hidden', 'true'); + appConfig.secondaryToolbar.openFileButton.setAttribute('hidden', 'true'); + } else { + fileInput.value = null; + } + + fileInput.addEventListener('change', function (evt) { + var files = evt.target.files; + + if (!files || files.length === 0) { + return; + } + + PDFViewerApplication.eventBus.dispatch('fileinputchange', { + source: this, + fileInput: evt.target + }); + }); + appConfig.mainContainer.addEventListener('dragover', function (evt) { + evt.preventDefault(); + evt.dataTransfer.dropEffect = 'move'; + }); + appConfig.mainContainer.addEventListener('drop', function (evt) { + evt.preventDefault(); + var files = evt.dataTransfer.files; + + if (!files || files.length === 0) { + return; + } + + PDFViewerApplication.eventBus.dispatch('fileinputchange', { + source: this, + fileInput: evt.dataTransfer + }); + }); + + if (!PDFViewerApplication.supportsPrinting) { + appConfig.toolbar.print.classList.add('hidden'); + appConfig.secondaryToolbar.printButton.classList.add('hidden'); + } + + if (!PDFViewerApplication.supportsFullscreen) { + appConfig.toolbar.presentationModeButton.classList.add('hidden'); + appConfig.secondaryToolbar.presentationModeButton.classList.add('hidden'); + } + + if (PDFViewerApplication.supportsIntegratedFind) { + appConfig.toolbar.viewFind.classList.add('hidden'); + } + + appConfig.mainContainer.addEventListener('transitionend', function (evt) { + if (evt.target === this) { + PDFViewerApplication.eventBus.dispatch('resize', { + source: this + }); + } + }, true); + appConfig.sidebar.toggleButton.addEventListener('click', function () { + PDFViewerApplication.pdfSidebar.toggle(); + }); + + try { + webViewerOpenFileViaURL(file); + } catch (reason) { + PDFViewerApplication.l10n.get('loading_error', null, 'An error occurred while loading the PDF.').then(function (msg) { + PDFViewerApplication.error(msg, reason); + }); + } +} + +var webViewerOpenFileViaURL; +{ + webViewerOpenFileViaURL = function webViewerOpenFileViaURL(file) { + if (file && file.lastIndexOf('file:', 0) === 0) { + PDFViewerApplication.setTitleUsingUrl(file); + var xhr = new XMLHttpRequest(); + + xhr.onload = function () { + PDFViewerApplication.open(new Uint8Array(xhr.response)); + }; + + xhr.open('GET', file); + xhr.responseType = 'arraybuffer'; + xhr.send(); + return; + } + + if (file) { + PDFViewerApplication.open(file); + } + }; +} + +function webViewerPageRendered(evt) { + var pageNumber = evt.pageNumber; + var pageIndex = pageNumber - 1; + var pageView = PDFViewerApplication.pdfViewer.getPageView(pageIndex); + + if (pageNumber === PDFViewerApplication.page) { + PDFViewerApplication.toolbar.updateLoadingIndicatorState(false); + } + + if (!pageView) { + return; + } + + if (PDFViewerApplication.pdfSidebar.isThumbnailViewVisible) { + var thumbnailView = PDFViewerApplication.pdfThumbnailViewer.getThumbnail(pageIndex); + thumbnailView.setImage(pageView); + } + + if (typeof Stats !== 'undefined' && Stats.enabled && pageView.stats) { + Stats.add(pageNumber, pageView.stats); + } + + if (pageView.error) { + PDFViewerApplication.l10n.get('rendering_error', null, 'An error occurred while rendering the page.').then(function (msg) { + PDFViewerApplication.error(msg, pageView.error); + }); + } +} + +function webViewerTextLayerRendered(evt) {} + +function webViewerPageMode(evt) { + var mode = evt.mode, + view; + + switch (mode) { + case 'thumbs': + view = _pdf_sidebar.SidebarView.THUMBS; + break; + + case 'bookmarks': + case 'outline': + view = _pdf_sidebar.SidebarView.OUTLINE; + break; + + case 'attachments': + view = _pdf_sidebar.SidebarView.ATTACHMENTS; + break; + + case 'none': + view = _pdf_sidebar.SidebarView.NONE; + break; + + default: + console.error('Invalid "pagemode" hash parameter: ' + mode); + return; + } + + PDFViewerApplication.pdfSidebar.switchView(view, true); +} + +function webViewerNamedAction(evt) { + var action = evt.action; + + switch (action) { + case 'GoToPage': + PDFViewerApplication.appConfig.toolbar.pageNumber.select(); + break; + + case 'Find': + if (!PDFViewerApplication.supportsIntegratedFind) { + PDFViewerApplication.findBar.toggle(); + } + + break; + } +} + +function webViewerPresentationModeChanged(evt) { + var active = evt.active, + switchInProgress = evt.switchInProgress; + PDFViewerApplication.pdfViewer.presentationModeState = switchInProgress ? _ui_utils.PresentationModeState.CHANGING : active ? _ui_utils.PresentationModeState.FULLSCREEN : _ui_utils.PresentationModeState.NORMAL; +} + +function webViewerSidebarViewChanged(evt) { + PDFViewerApplication.pdfRenderingQueue.isThumbnailViewEnabled = PDFViewerApplication.pdfSidebar.isThumbnailViewVisible; + var store = PDFViewerApplication.store; + + if (store && PDFViewerApplication.isInitialViewSet) { + store.set('sidebarView', evt.view)["catch"](function () {}); + } +} + +function webViewerUpdateViewarea(evt) { + var location = evt.location, + store = PDFViewerApplication.store; + + if (store && PDFViewerApplication.isInitialViewSet) { + store.setMultiple({ + 'page': location.pageNumber, + 'zoom': location.scale, + 'scrollLeft': location.left, + 'scrollTop': location.top, + 'rotation': location.rotation + })["catch"](function () {}); + } + + var href = PDFViewerApplication.pdfLinkService.getAnchorUrl(location.pdfOpenParams); + PDFViewerApplication.appConfig.toolbar.viewBookmark.href = href; + PDFViewerApplication.appConfig.secondaryToolbar.viewBookmarkButton.href = href; + var currentPage = PDFViewerApplication.pdfViewer.getPageView(PDFViewerApplication.page - 1); + var loading = currentPage.renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED; + PDFViewerApplication.toolbar.updateLoadingIndicatorState(loading); +} + +function webViewerScrollModeChanged(evt) { + var store = PDFViewerApplication.store; + + if (store && PDFViewerApplication.isInitialViewSet) { + store.set('scrollMode', evt.mode)["catch"](function () {}); + } +} + +function webViewerSpreadModeChanged(evt) { + var store = PDFViewerApplication.store; + + if (store && PDFViewerApplication.isInitialViewSet) { + store.set('spreadMode', evt.mode)["catch"](function () {}); + } +} + +function webViewerResize() { + var pdfDocument = PDFViewerApplication.pdfDocument, + pdfViewer = PDFViewerApplication.pdfViewer; + + if (!pdfDocument) { + return; + } + + var currentScaleValue = pdfViewer.currentScaleValue; + + if (currentScaleValue === 'auto' || currentScaleValue === 'page-fit' || currentScaleValue === 'page-width') { + pdfViewer.currentScaleValue = currentScaleValue; + } + + pdfViewer.update(); +} + +function webViewerHashchange(evt) { + var hash = evt.hash; + + if (!hash) { + return; + } + + if (!PDFViewerApplication.isInitialViewSet) { + PDFViewerApplication.initialBookmark = hash; + } else if (!PDFViewerApplication.pdfHistory.popStateInProgress) { + PDFViewerApplication.pdfLinkService.setHash(hash); + } +} + +var webViewerFileInputChange; +{ + webViewerFileInputChange = function webViewerFileInputChange(evt) { + if (PDFViewerApplication.pdfViewer && PDFViewerApplication.pdfViewer.isInPresentationMode) { + return; + } + + var file = evt.fileInput.files[0]; + + if (_pdfjsLib.URL.createObjectURL && !_app_options.AppOptions.get('disableCreateObjectURL')) { + var url = _pdfjsLib.URL.createObjectURL(file); + + if (file.name) { + url = { + url: url, + originalUrl: file.name + }; + } + + PDFViewerApplication.open(url); + } else { + PDFViewerApplication.setTitleUsingUrl(file.name); + var fileReader = new FileReader(); + + fileReader.onload = function webViewerChangeFileReaderOnload(evt) { + var buffer = evt.target.result; + PDFViewerApplication.open(new Uint8Array(buffer)); + }; + + fileReader.readAsArrayBuffer(file); + } + + var appConfig = PDFViewerApplication.appConfig; + appConfig.toolbar.viewBookmark.setAttribute('hidden', 'true'); + appConfig.secondaryToolbar.viewBookmarkButton.setAttribute('hidden', 'true'); + appConfig.toolbar.download.setAttribute('hidden', 'true'); + appConfig.secondaryToolbar.downloadButton.setAttribute('hidden', 'true'); + }; +} + +function webViewerPresentationMode() { + PDFViewerApplication.requestPresentationMode(); +} + +function webViewerOpenFile() { + var openFileInputName = PDFViewerApplication.appConfig.openFileInputName; + document.getElementById(openFileInputName).click(); +} + +function webViewerPrint() { + window.print(); +} + +function webViewerDownload() { + PDFViewerApplication.download(); +} + +function webViewerFirstPage() { + if (PDFViewerApplication.pdfDocument) { + PDFViewerApplication.page = 1; + } +} + +function webViewerLastPage() { + if (PDFViewerApplication.pdfDocument) { + PDFViewerApplication.page = PDFViewerApplication.pagesCount; + } +} + +function webViewerNextPage() { + PDFViewerApplication.page++; +} + +function webViewerPreviousPage() { + PDFViewerApplication.page--; +} + +function webViewerZoomIn() { + PDFViewerApplication.zoomIn(); +} + +function webViewerZoomOut() { + PDFViewerApplication.zoomOut(); +} + +function webViewerZoomReset(evt) { + PDFViewerApplication.zoomReset(evt && evt.ignoreDuplicate); +} + +function webViewerPageNumberChanged(evt) { + var pdfViewer = PDFViewerApplication.pdfViewer; + + if (evt.value !== '') { + pdfViewer.currentPageLabel = evt.value; + } + + if (evt.value !== pdfViewer.currentPageNumber.toString() && evt.value !== pdfViewer.currentPageLabel) { + PDFViewerApplication.toolbar.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel); + } +} + +function webViewerScaleChanged(evt) { + PDFViewerApplication.pdfViewer.currentScaleValue = evt.value; +} + +function webViewerRotateCw() { + PDFViewerApplication.rotatePages(90); +} + +function webViewerRotateCcw() { + PDFViewerApplication.rotatePages(-90); +} + +function webViewerSwitchScrollMode(evt) { + PDFViewerApplication.pdfViewer.scrollMode = evt.mode; +} + +function webViewerSwitchSpreadMode(evt) { + PDFViewerApplication.pdfViewer.spreadMode = evt.mode; +} + +function webViewerDocumentProperties() { + PDFViewerApplication.pdfDocumentProperties.open(); +} + +function webViewerFind(evt) { + PDFViewerApplication.findController.executeCommand('find' + evt.type, { + query: evt.query, + phraseSearch: evt.phraseSearch, + caseSensitive: evt.caseSensitive, + entireWord: evt.entireWord, + highlightAll: evt.highlightAll, + findPrevious: evt.findPrevious + }); +} + +function webViewerFindFromUrlHash(evt) { + PDFViewerApplication.findController.executeCommand('find', { + query: evt.query, + phraseSearch: evt.phraseSearch, + caseSensitive: false, + entireWord: false, + highlightAll: true, + findPrevious: false + }); +} + +function webViewerUpdateFindMatchesCount(_ref9) { + var matchesCount = _ref9.matchesCount; + + if (PDFViewerApplication.supportsIntegratedFind) { + PDFViewerApplication.externalServices.updateFindMatchesCount(matchesCount); + } else { + PDFViewerApplication.findBar.updateResultsCount(matchesCount); + } +} + +function webViewerUpdateFindControlState(_ref10) { + var state = _ref10.state, + previous = _ref10.previous, + matchesCount = _ref10.matchesCount; + + if (PDFViewerApplication.supportsIntegratedFind) { + PDFViewerApplication.externalServices.updateFindControlState({ + result: state, + findPrevious: previous, + matchesCount: matchesCount + }); + } else { + PDFViewerApplication.findBar.updateUIState(state, previous, matchesCount); + } +} + +function webViewerScaleChanging(evt) { + PDFViewerApplication.toolbar.setPageScale(evt.presetValue, evt.scale); + PDFViewerApplication.pdfViewer.update(); +} + +function webViewerRotationChanging(evt) { + PDFViewerApplication.pdfThumbnailViewer.pagesRotation = evt.pagesRotation; + PDFViewerApplication.forceRendering(); + PDFViewerApplication.pdfViewer.currentPageNumber = evt.pageNumber; +} + +function webViewerPageChanging(evt) { + var page = evt.pageNumber; + PDFViewerApplication.toolbar.setPageNumber(page, evt.pageLabel || null); + PDFViewerApplication.secondaryToolbar.setPageNumber(page); + + if (PDFViewerApplication.pdfSidebar.isThumbnailViewVisible) { + PDFViewerApplication.pdfThumbnailViewer.scrollThumbnailIntoView(page); + } + + if (typeof Stats !== 'undefined' && Stats.enabled) { + var pageView = PDFViewerApplication.pdfViewer.getPageView(page - 1); + + if (pageView && pageView.stats) { + Stats.add(page, pageView.stats); + } + } +} + +function webViewerVisibilityChange(evt) { + if (document.visibilityState === 'visible') { + setZoomDisabledTimeout(); + } +} + +var zoomDisabledTimeout = null; + +function setZoomDisabledTimeout() { + if (zoomDisabledTimeout) { + clearTimeout(zoomDisabledTimeout); + } + + zoomDisabledTimeout = setTimeout(function () { + zoomDisabledTimeout = null; + }, WHEEL_ZOOM_DISABLED_TIMEOUT); +} + +function webViewerWheel(evt) { + var pdfViewer = PDFViewerApplication.pdfViewer; + + if (pdfViewer.isInPresentationMode) { + return; + } + + if (evt.ctrlKey || evt.metaKey) { + var support = PDFViewerApplication.supportedMouseWheelZoomModifierKeys; + + if (evt.ctrlKey && !support.ctrlKey || evt.metaKey && !support.metaKey) { + return; + } + + evt.preventDefault(); + + if (zoomDisabledTimeout || document.visibilityState === 'hidden') { + return; + } + + var previousScale = pdfViewer.currentScale; + var delta = (0, _ui_utils.normalizeWheelEventDelta)(evt); + var MOUSE_WHEEL_DELTA_PER_PAGE_SCALE = 3.0; + var ticks = delta * MOUSE_WHEEL_DELTA_PER_PAGE_SCALE; + + if (ticks < 0) { + PDFViewerApplication.zoomOut(-ticks); + } else { + PDFViewerApplication.zoomIn(ticks); + } + + var currentScale = pdfViewer.currentScale; + + if (previousScale !== currentScale) { + var scaleCorrectionFactor = currentScale / previousScale - 1; + var rect = pdfViewer.container.getBoundingClientRect(); + var dx = evt.clientX - rect.left; + var dy = evt.clientY - rect.top; + pdfViewer.container.scrollLeft += dx * scaleCorrectionFactor; + pdfViewer.container.scrollTop += dy * scaleCorrectionFactor; + } + } else { + setZoomDisabledTimeout(); + } +} + +function webViewerClick(evt) { + if (!PDFViewerApplication.secondaryToolbar.isOpen) { + return; + } + + var appConfig = PDFViewerApplication.appConfig; + + if (PDFViewerApplication.pdfViewer.containsElement(evt.target) || appConfig.toolbar.container.contains(evt.target) && evt.target !== appConfig.secondaryToolbar.toggleButton) { + PDFViewerApplication.secondaryToolbar.close(); + } +} + +function webViewerKeyDown(evt) { + if (PDFViewerApplication.overlayManager.active) { + return; + } + + var handled = false, + ensureViewerFocused = false; + var cmd = (evt.ctrlKey ? 1 : 0) | (evt.altKey ? 2 : 0) | (evt.shiftKey ? 4 : 0) | (evt.metaKey ? 8 : 0); + var pdfViewer = PDFViewerApplication.pdfViewer; + var isViewerInPresentationMode = pdfViewer && pdfViewer.isInPresentationMode; + + if (cmd === 1 || cmd === 8 || cmd === 5 || cmd === 12) { + switch (evt.keyCode) { + case 70: + if (!PDFViewerApplication.supportsIntegratedFind) { + PDFViewerApplication.findBar.open(); + handled = true; + } + + break; + + case 71: + if (!PDFViewerApplication.supportsIntegratedFind) { + var findState = PDFViewerApplication.findController.state; + + if (findState) { + PDFViewerApplication.findController.executeCommand('findagain', { + query: findState.query, + phraseSearch: findState.phraseSearch, + caseSensitive: findState.caseSensitive, + entireWord: findState.entireWord, + highlightAll: findState.highlightAll, + findPrevious: cmd === 5 || cmd === 12 + }); + } + + handled = true; + } + + break; + + case 61: + case 107: + case 187: + case 171: + if (!isViewerInPresentationMode) { + PDFViewerApplication.zoomIn(); + } + + handled = true; + break; + + case 173: + case 109: + case 189: + if (!isViewerInPresentationMode) { + PDFViewerApplication.zoomOut(); + } + + handled = true; + break; + + case 48: + case 96: + if (!isViewerInPresentationMode) { + setTimeout(function () { + PDFViewerApplication.zoomReset(); + }); + handled = false; + } + + break; + + case 38: + if (isViewerInPresentationMode || PDFViewerApplication.page > 1) { + PDFViewerApplication.page = 1; + handled = true; + ensureViewerFocused = true; + } + + break; + + case 40: + if (isViewerInPresentationMode || PDFViewerApplication.page < PDFViewerApplication.pagesCount) { + PDFViewerApplication.page = PDFViewerApplication.pagesCount; + handled = true; + ensureViewerFocused = true; + } + + break; + } + } + + if (cmd === 1 || cmd === 8) { + switch (evt.keyCode) { + case 83: + PDFViewerApplication.download(); + handled = true; + break; + } + } + + if (cmd === 3 || cmd === 10) { + switch (evt.keyCode) { + case 80: + PDFViewerApplication.requestPresentationMode(); + handled = true; + break; + + case 71: + PDFViewerApplication.appConfig.toolbar.pageNumber.select(); + handled = true; + break; + } + } + + if (handled) { + if (ensureViewerFocused && !isViewerInPresentationMode) { + pdfViewer.focus(); + } + + evt.preventDefault(); + return; + } + + var curElement = document.activeElement || document.querySelector(':focus'); + var curElementTagName = curElement && curElement.tagName.toUpperCase(); + + if (curElementTagName === 'INPUT' || curElementTagName === 'TEXTAREA' || curElementTagName === 'SELECT') { + if (evt.keyCode !== 27) { + return; + } + } + + if (cmd === 0) { + var turnPage = 0, + turnOnlyIfPageFit = false; + + switch (evt.keyCode) { + case 38: + case 33: + if (pdfViewer.isVerticalScrollbarEnabled) { + turnOnlyIfPageFit = true; + } + + turnPage = -1; + break; + + case 8: + if (!isViewerInPresentationMode) { + turnOnlyIfPageFit = true; + } + + turnPage = -1; + break; + + case 37: + if (pdfViewer.isHorizontalScrollbarEnabled) { + turnOnlyIfPageFit = true; + } + + case 75: + case 80: + turnPage = -1; + break; + + case 27: + if (PDFViewerApplication.secondaryToolbar.isOpen) { + PDFViewerApplication.secondaryToolbar.close(); + handled = true; + } + + if (!PDFViewerApplication.supportsIntegratedFind && PDFViewerApplication.findBar.opened) { + PDFViewerApplication.findBar.close(); + handled = true; + } + + break; + + case 40: + case 34: + if (pdfViewer.isVerticalScrollbarEnabled) { + turnOnlyIfPageFit = true; + } + + turnPage = 1; + break; + + case 13: + case 32: + if (!isViewerInPresentationMode) { + turnOnlyIfPageFit = true; + } + + turnPage = 1; + break; + + case 39: + if (pdfViewer.isHorizontalScrollbarEnabled) { + turnOnlyIfPageFit = true; + } + + case 74: + case 78: + turnPage = 1; + break; + + case 36: + if (isViewerInPresentationMode || PDFViewerApplication.page > 1) { + PDFViewerApplication.page = 1; + handled = true; + ensureViewerFocused = true; + } + + break; + + case 35: + if (isViewerInPresentationMode || PDFViewerApplication.page < PDFViewerApplication.pagesCount) { + PDFViewerApplication.page = PDFViewerApplication.pagesCount; + handled = true; + ensureViewerFocused = true; + } + + break; + + case 83: + PDFViewerApplication.pdfCursorTools.switchTool(_pdf_cursor_tools.CursorTool.SELECT); + break; + + case 72: + PDFViewerApplication.pdfCursorTools.switchTool(_pdf_cursor_tools.CursorTool.HAND); + break; + + case 82: + PDFViewerApplication.rotatePages(90); + break; + + case 115: + PDFViewerApplication.pdfSidebar.toggle(); + break; + } + + if (turnPage !== 0 && (!turnOnlyIfPageFit || pdfViewer.currentScaleValue === 'page-fit')) { + if (turnPage > 0) { + if (PDFViewerApplication.page < PDFViewerApplication.pagesCount) { + PDFViewerApplication.page++; + } + } else { + if (PDFViewerApplication.page > 1) { + PDFViewerApplication.page--; + } + } + + handled = true; + } + } + + if (cmd === 4) { + switch (evt.keyCode) { + case 13: + case 32: + if (!isViewerInPresentationMode && pdfViewer.currentScaleValue !== 'page-fit') { + break; + } + + if (PDFViewerApplication.page > 1) { + PDFViewerApplication.page--; + } + + handled = true; + break; + + case 82: + PDFViewerApplication.rotatePages(-90); + break; + } + } + + if (!handled && !isViewerInPresentationMode) { + if (evt.keyCode >= 33 && evt.keyCode <= 40 || evt.keyCode === 32 && curElementTagName !== 'BUTTON') { + ensureViewerFocused = true; + } + } + + if (ensureViewerFocused && !pdfViewer.containsElement(curElement)) { + pdfViewer.focus(); + } + + if (handled) { + evt.preventDefault(); + } +} + +function apiPageLayoutToSpreadMode(layout) { + switch (layout) { + case 'SinglePage': + case 'OneColumn': + return _ui_utils.SpreadMode.NONE; + + case 'TwoColumnLeft': + case 'TwoPageLeft': + return _ui_utils.SpreadMode.ODD; + + case 'TwoColumnRight': + case 'TwoPageRight': + return _ui_utils.SpreadMode.EVEN; + } + + return _ui_utils.SpreadMode.NONE; +} + +function apiPageModeToSidebarView(mode) { + switch (mode) { + case 'UseNone': + return _pdf_sidebar.SidebarView.NONE; + + case 'UseThumbs': + return _pdf_sidebar.SidebarView.THUMBS; + + case 'UseOutlines': + return _pdf_sidebar.SidebarView.OUTLINE; + + case 'UseAttachments': + return _pdf_sidebar.SidebarView.ATTACHMENTS; + + case 'UseOC': + } + + return _pdf_sidebar.SidebarView.NONE; +} + +var PDFPrintServiceFactory = { + instance: { + supportsPrinting: false, + createPrintService: function createPrintService() { + throw new Error('Not implemented: createPrintService'); + } + } +}; +exports.PDFPrintServiceFactory = PDFPrintServiceFactory; + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = __webpack_require__(3); + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(module) { + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +var runtime = function (exports) { + "use strict"; + + var Op = Object.prototype; + var hasOwn = Op.hasOwnProperty; + var undefined; + var $Symbol = typeof Symbol === "function" ? Symbol : {}; + var iteratorSymbol = $Symbol.iterator || "@@iterator"; + var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; + var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; + var generator = Object.create(protoGenerator.prototype); + var context = new Context(tryLocsList || []); + generator._invoke = makeInvokeMethod(innerFn, self, context); + return generator; + } + + exports.wrap = wrap; + + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) + }; + } catch (err) { + return { + type: "throw", + arg: err + }; + } + } + + var GenStateSuspendedStart = "suspendedStart"; + var GenStateSuspendedYield = "suspendedYield"; + var GenStateExecuting = "executing"; + var GenStateCompleted = "completed"; + var ContinueSentinel = {}; + + function Generator() {} + + function GeneratorFunction() {} + + function GeneratorFunctionPrototype() {} + + var IteratorPrototype = {}; + + IteratorPrototype[iteratorSymbol] = function () { + return this; + }; + + var getProto = Object.getPrototypeOf; + var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + + if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { + IteratorPrototype = NativeIteratorPrototype; + } + + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; + GeneratorFunctionPrototype.constructor = GeneratorFunction; + GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction"; + + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + prototype[method] = function (arg) { + return this._invoke(method, arg); + }; + }); + } + + exports.isGeneratorFunction = function (genFun) { + var ctor = typeof genFun === "function" && genFun.constructor; + return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false; + }; + + exports.mark = function (genFun) { + if (Object.setPrototypeOf) { + Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); + } else { + genFun.__proto__ = GeneratorFunctionPrototype; + + if (!(toStringTagSymbol in genFun)) { + genFun[toStringTagSymbol] = "GeneratorFunction"; + } + } + + genFun.prototype = Object.create(Gp); + return genFun; + }; + + exports.awrap = function (arg) { + return { + __await: arg + }; + }; + + function AsyncIterator(generator) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + + if (record.type === "throw") { + reject(record.arg); + } else { + var result = record.arg; + var value = result.value; + + if (value && _typeof(value) === "object" && hasOwn.call(value, "__await")) { + return Promise.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }); + } + + return Promise.resolve(value).then(function (unwrapped) { + result.value = unwrapped; + resolve(result); + }, function (error) { + return invoke("throw", error, resolve, reject); + }); + } + } + + var previousPromise; + + function enqueue(method, arg) { + function callInvokeWithMethodAndArg() { + return new Promise(function (resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + + return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + } + + this._invoke = enqueue; + } + + defineIteratorMethods(AsyncIterator.prototype); + + AsyncIterator.prototype[asyncIteratorSymbol] = function () { + return this; + }; + + exports.AsyncIterator = AsyncIterator; + + exports.async = function (innerFn, outerFn, self, tryLocsList) { + var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList)); + return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { + return result.done ? result.value : iter.next(); + }); + }; + + function makeInvokeMethod(innerFn, self, context) { + var state = GenStateSuspendedStart; + return function invoke(method, arg) { + if (state === GenStateExecuting) { + throw new Error("Generator is already running"); + } + + if (state === GenStateCompleted) { + if (method === "throw") { + throw arg; + } + + return doneResult(); + } + + context.method = method; + context.arg = arg; + + while (true) { + var delegate = context.delegate; + + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + + if (context.method === "next") { + context.sent = context._sent = context.arg; + } else if (context.method === "throw") { + if (state === GenStateSuspendedStart) { + state = GenStateCompleted; + throw context.arg; + } + + context.dispatchException(context.arg); + } else if (context.method === "return") { + context.abrupt("return", context.arg); + } + + state = GenStateExecuting; + var record = tryCatch(innerFn, self, context); + + if (record.type === "normal") { + state = context.done ? GenStateCompleted : GenStateSuspendedYield; + + if (record.arg === ContinueSentinel) { + continue; + } + + return { + value: record.arg, + done: context.done + }; + } else if (record.type === "throw") { + state = GenStateCompleted; + context.method = "throw"; + context.arg = record.arg; + } + } + }; + } + + function maybeInvokeDelegate(delegate, context) { + var method = delegate.iterator[context.method]; + + if (method === undefined) { + context.delegate = null; + + if (context.method === "throw") { + if (delegate.iterator["return"]) { + context.method = "return"; + context.arg = undefined; + maybeInvokeDelegate(delegate, context); + + if (context.method === "throw") { + return ContinueSentinel; + } + } + + context.method = "throw"; + context.arg = new TypeError("The iterator does not provide a 'throw' method"); + } + + return ContinueSentinel; + } + + var record = tryCatch(method, delegate.iterator, context.arg); + + if (record.type === "throw") { + context.method = "throw"; + context.arg = record.arg; + context.delegate = null; + return ContinueSentinel; + } + + var info = record.arg; + + if (!info) { + context.method = "throw"; + context.arg = new TypeError("iterator result is not an object"); + context.delegate = null; + return ContinueSentinel; + } + + if (info.done) { + context[delegate.resultName] = info.value; + context.next = delegate.nextLoc; + + if (context.method !== "return") { + context.method = "next"; + context.arg = undefined; + } + } else { + return info; + } + + context.delegate = null; + return ContinueSentinel; + } + + defineIteratorMethods(Gp); + Gp[toStringTagSymbol] = "Generator"; + + Gp[iteratorSymbol] = function () { + return this; + }; + + Gp.toString = function () { + return "[object Generator]"; + }; + + function pushTryEntry(locs) { + var entry = { + tryLoc: locs[0] + }; + + if (1 in locs) { + entry.catchLoc = locs[1]; + } + + if (2 in locs) { + entry.finallyLoc = locs[2]; + entry.afterLoc = locs[3]; + } + + this.tryEntries.push(entry); + } + + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal"; + delete record.arg; + entry.completion = record; + } + + function Context(tryLocsList) { + this.tryEntries = [{ + tryLoc: "root" + }]; + tryLocsList.forEach(pushTryEntry, this); + this.reset(true); + } + + exports.keys = function (object) { + var keys = []; + + for (var key in object) { + keys.push(key); + } + + keys.reverse(); + return function next() { + while (keys.length) { + var key = keys.pop(); + + if (key in object) { + next.value = key; + next.done = false; + return next; + } + } + + next.done = true; + return next; + }; + }; + + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + + if (iteratorMethod) { + return iteratorMethod.call(iterable); + } + + if (typeof iterable.next === "function") { + return iterable; + } + + if (!isNaN(iterable.length)) { + var i = -1, + next = function next() { + while (++i < iterable.length) { + if (hasOwn.call(iterable, i)) { + next.value = iterable[i]; + next.done = false; + return next; + } + } + + next.value = undefined; + next.done = true; + return next; + }; + + return next.next = next; + } + } + + return { + next: doneResult + }; + } + + exports.values = values; + + function doneResult() { + return { + value: undefined, + done: true + }; + } + + Context.prototype = { + constructor: Context, + reset: function reset(skipTempReset) { + this.prev = 0; + this.next = 0; + this.sent = this._sent = undefined; + this.done = false; + this.delegate = null; + this.method = "next"; + this.arg = undefined; + this.tryEntries.forEach(resetTryEntry); + + if (!skipTempReset) { + for (var name in this) { + if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { + this[name] = undefined; + } + } + } + }, + stop: function stop() { + this.done = true; + var rootEntry = this.tryEntries[0]; + var rootRecord = rootEntry.completion; + + if (rootRecord.type === "throw") { + throw rootRecord.arg; + } + + return this.rval; + }, + dispatchException: function dispatchException(exception) { + if (this.done) { + throw exception; + } + + var context = this; + + function handle(loc, caught) { + record.type = "throw"; + record.arg = exception; + context.next = loc; + + if (caught) { + context.method = "next"; + context.arg = undefined; + } + + return !!caught; + } + + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + var record = entry.completion; + + if (entry.tryLoc === "root") { + return handle("end"); + } + + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"); + var hasFinally = hasOwn.call(entry, "finallyLoc"); + + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } else if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + } else if (hasCatch) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } + } else if (hasFinally) { + if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + } else { + throw new Error("try statement without catch or finally"); + } + } + } + }, + abrupt: function abrupt(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + + if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + + if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { + finallyEntry = null; + } + + var record = finallyEntry ? finallyEntry.completion : {}; + record.type = type; + record.arg = arg; + + if (finallyEntry) { + this.method = "next"; + this.next = finallyEntry.finallyLoc; + return ContinueSentinel; + } + + return this.complete(record); + }, + complete: function complete(record, afterLoc) { + if (record.type === "throw") { + throw record.arg; + } + + if (record.type === "break" || record.type === "continue") { + this.next = record.arg; + } else if (record.type === "return") { + this.rval = this.arg = record.arg; + this.method = "return"; + this.next = "end"; + } else if (record.type === "normal" && afterLoc) { + this.next = afterLoc; + } + + return ContinueSentinel; + }, + finish: function finish(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + + if (entry.finallyLoc === finallyLoc) { + this.complete(entry.completion, entry.afterLoc); + resetTryEntry(entry); + return ContinueSentinel; + } + } + }, + "catch": function _catch(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + + if (record.type === "throw") { + var thrown = record.arg; + resetTryEntry(entry); + } + + return thrown; + } + } + + throw new Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(iterable, resultName, nextLoc) { + this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }; + + if (this.method === "next") { + this.arg = undefined; + } + + return ContinueSentinel; + } + }; + return exports; +}(( false ? undefined : _typeof(module)) === "object" ? module.exports : {}); + +try { + regeneratorRuntime = runtime; +} catch (accidentalStrictMode) { + Function("r", "regeneratorRuntime = r")(runtime); +} +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(4)(module))) + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = function (module) { + if (!module.webpackPolyfill) { + module.deprecate = function () {}; + + module.paths = []; + if (!module.children) module.children = []; + Object.defineProperty(module, "loaded", { + enumerable: true, + get: function get() { + return module.l; + } + }); + Object.defineProperty(module, "id", { + enumerable: true, + get: function get() { + return module.i; + } + }); + module.webpackPolyfill = 1; + } + + return module; +}; + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isValidRotation = isValidRotation; +exports.isValidScrollMode = isValidScrollMode; +exports.isValidSpreadMode = isValidSpreadMode; +exports.isPortraitOrientation = isPortraitOrientation; +exports.getGlobalEventBus = getGlobalEventBus; +exports.getPDFFileNameFromURL = getPDFFileNameFromURL; +exports.noContextMenuHandler = noContextMenuHandler; +exports.parseQueryString = parseQueryString; +exports.backtrackBeforeAllVisibleElements = backtrackBeforeAllVisibleElements; +exports.getVisibleElements = getVisibleElements; +exports.roundToDivide = roundToDivide; +exports.getPageSizeInches = getPageSizeInches; +exports.approximateFraction = approximateFraction; +exports.getOutputScale = getOutputScale; +exports.scrollIntoView = scrollIntoView; +exports.watchScroll = watchScroll; +exports.binarySearchFirstItem = binarySearchFirstItem; +exports.normalizeWheelEventDelta = normalizeWheelEventDelta; +exports.waitOnEventOrTimeout = waitOnEventOrTimeout; +exports.moveToEndOfArray = moveToEndOfArray; +exports.WaitOnType = exports.animationStarted = exports.ProgressBar = exports.EventBus = exports.NullL10n = exports.SpreadMode = exports.ScrollMode = exports.TextLayerMode = exports.RendererType = exports.PresentationModeState = exports.VERTICAL_PADDING = exports.SCROLLBAR_PADDING = exports.MAX_AUTO_SCALE = exports.UNKNOWN_SCALE = exports.MAX_SCALE = exports.MIN_SCALE = exports.DEFAULT_SCALE = exports.DEFAULT_SCALE_VALUE = exports.CSS_UNITS = void 0; + +var _regenerator = _interopRequireDefault(__webpack_require__(2)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } + +function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +var CSS_UNITS = 96.0 / 72.0; +exports.CSS_UNITS = CSS_UNITS; +var DEFAULT_SCALE_VALUE = 'auto'; +exports.DEFAULT_SCALE_VALUE = DEFAULT_SCALE_VALUE; +var DEFAULT_SCALE = 1.0; +exports.DEFAULT_SCALE = DEFAULT_SCALE; +var MIN_SCALE = 0.10; +exports.MIN_SCALE = MIN_SCALE; +var MAX_SCALE = 10.0; +exports.MAX_SCALE = MAX_SCALE; +var UNKNOWN_SCALE = 0; +exports.UNKNOWN_SCALE = UNKNOWN_SCALE; +var MAX_AUTO_SCALE = 1.25; +exports.MAX_AUTO_SCALE = MAX_AUTO_SCALE; +var SCROLLBAR_PADDING = 40; +exports.SCROLLBAR_PADDING = SCROLLBAR_PADDING; +var VERTICAL_PADDING = 5; +exports.VERTICAL_PADDING = VERTICAL_PADDING; +var PresentationModeState = { + UNKNOWN: 0, + NORMAL: 1, + CHANGING: 2, + FULLSCREEN: 3 +}; +exports.PresentationModeState = PresentationModeState; +var RendererType = { + CANVAS: 'canvas', + SVG: 'svg' +}; +exports.RendererType = RendererType; +var TextLayerMode = { + DISABLE: 0, + ENABLE: 1, + ENABLE_ENHANCE: 2 +}; +exports.TextLayerMode = TextLayerMode; +var ScrollMode = { + UNKNOWN: -1, + VERTICAL: 0, + HORIZONTAL: 1, + WRAPPED: 2 +}; +exports.ScrollMode = ScrollMode; +var SpreadMode = { + UNKNOWN: -1, + NONE: 0, + ODD: 1, + EVEN: 2 +}; +exports.SpreadMode = SpreadMode; + +function formatL10nValue(text, args) { + if (!args) { + return text; + } + + return text.replace(/\{\{\s*(\w+)\s*\}\}/g, function (all, name) { + return name in args ? args[name] : '{{' + name + '}}'; + }); +} + +var NullL10n = { + getLanguage: function () { + var _getLanguage = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee() { + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + return _context.abrupt("return", 'en-us'); + + case 1: + case "end": + return _context.stop(); + } + } + }, _callee); + })); + + function getLanguage() { + return _getLanguage.apply(this, arguments); + } + + return getLanguage; + }(), + getDirection: function () { + var _getDirection = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee2() { + return _regenerator["default"].wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + return _context2.abrupt("return", 'ltr'); + + case 1: + case "end": + return _context2.stop(); + } + } + }, _callee2); + })); + + function getDirection() { + return _getDirection.apply(this, arguments); + } + + return getDirection; + }(), + get: function () { + var _get = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee3(property, args, fallback) { + return _regenerator["default"].wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + return _context3.abrupt("return", formatL10nValue(fallback, args)); + + case 1: + case "end": + return _context3.stop(); + } + } + }, _callee3); + })); + + function get(_x, _x2, _x3) { + return _get.apply(this, arguments); + } + + return get; + }(), + translate: function () { + var _translate = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee4(element) { + return _regenerator["default"].wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + case "end": + return _context4.stop(); + } + } + }, _callee4); + })); + + function translate(_x4) { + return _translate.apply(this, arguments); + } + + return translate; + }() +}; +exports.NullL10n = NullL10n; + +function getOutputScale(ctx) { + var devicePixelRatio = window.devicePixelRatio || 1; + var backingStoreRatio = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1; + var pixelRatio = devicePixelRatio / backingStoreRatio; + return { + sx: pixelRatio, + sy: pixelRatio, + scaled: pixelRatio !== 1 + }; +} + +function scrollIntoView(element, spot) { + var skipOverflowHiddenElements = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + var parent = element.offsetParent; + + if (!parent) { + console.error('offsetParent is not set -- cannot scroll'); + return; + } + + var offsetY = element.offsetTop + element.clientTop; + var offsetX = element.offsetLeft + element.clientLeft; + + while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || skipOverflowHiddenElements && getComputedStyle(parent).overflow === 'hidden') { + if (parent.dataset._scaleY) { + offsetY /= parent.dataset._scaleY; + offsetX /= parent.dataset._scaleX; + } + + offsetY += parent.offsetTop; + offsetX += parent.offsetLeft; + parent = parent.offsetParent; + + if (!parent) { + return; + } + } + + if (spot) { + if (spot.top !== undefined) { + offsetY += spot.top; + } + + if (spot.left !== undefined) { + offsetX += spot.left; + parent.scrollLeft = offsetX; + } + } + + parent.scrollTop = offsetY; +} + +function watchScroll(viewAreaElement, callback) { + var debounceScroll = function debounceScroll(evt) { + if (rAF) { + return; + } + + rAF = window.requestAnimationFrame(function viewAreaElementScrolled() { + rAF = null; + var currentX = viewAreaElement.scrollLeft; + var lastX = state.lastX; + + if (currentX !== lastX) { + state.right = currentX > lastX; + } + + state.lastX = currentX; + var currentY = viewAreaElement.scrollTop; + var lastY = state.lastY; + + if (currentY !== lastY) { + state.down = currentY > lastY; + } + + state.lastY = currentY; + callback(state); + }); + }; + + var state = { + right: true, + down: true, + lastX: viewAreaElement.scrollLeft, + lastY: viewAreaElement.scrollTop, + _eventHandler: debounceScroll + }; + var rAF = null; + viewAreaElement.addEventListener('scroll', debounceScroll, true); + return state; +} + +function parseQueryString(query) { + var parts = query.split('&'); + var params = Object.create(null); + + for (var i = 0, ii = parts.length; i < ii; ++i) { + var param = parts[i].split('='); + var key = param[0].toLowerCase(); + var value = param.length > 1 ? param[1] : null; + params[decodeURIComponent(key)] = decodeURIComponent(value); + } + + return params; +} + +function binarySearchFirstItem(items, condition) { + var minIndex = 0; + var maxIndex = items.length - 1; + + if (items.length === 0 || !condition(items[maxIndex])) { + return items.length; + } + + if (condition(items[minIndex])) { + return minIndex; + } + + while (minIndex < maxIndex) { + var currentIndex = minIndex + maxIndex >> 1; + var currentItem = items[currentIndex]; + + if (condition(currentItem)) { + maxIndex = currentIndex; + } else { + minIndex = currentIndex + 1; + } + } + + return minIndex; +} + +function approximateFraction(x) { + if (Math.floor(x) === x) { + return [x, 1]; + } + + var xinv = 1 / x; + var limit = 8; + + if (xinv > limit) { + return [1, limit]; + } else if (Math.floor(xinv) === xinv) { + return [1, xinv]; + } + + var x_ = x > 1 ? xinv : x; + var a = 0, + b = 1, + c = 1, + d = 1; + + while (true) { + var p = a + c, + q = b + d; + + if (q > limit) { + break; + } + + if (x_ <= p / q) { + c = p; + d = q; + } else { + a = p; + b = q; + } + } + + var result; + + if (x_ - a / b < c / d - x_) { + result = x_ === x ? [a, b] : [b, a]; + } else { + result = x_ === x ? [c, d] : [d, c]; + } + + return result; +} + +function roundToDivide(x, div) { + var r = x % div; + return r === 0 ? x : Math.round(x - r + div); +} + +function getPageSizeInches(_ref) { + var view = _ref.view, + userUnit = _ref.userUnit, + rotate = _ref.rotate; + + var _view = _slicedToArray(view, 4), + x1 = _view[0], + y1 = _view[1], + x2 = _view[2], + y2 = _view[3]; + + var changeOrientation = rotate % 180 !== 0; + var width = (x2 - x1) / 72 * userUnit; + var height = (y2 - y1) / 72 * userUnit; + return { + width: changeOrientation ? height : width, + height: changeOrientation ? width : height + }; +} + +function backtrackBeforeAllVisibleElements(index, views, top) { + if (index < 2) { + return index; + } + + var elt = views[index].div; + var pageTop = elt.offsetTop + elt.clientTop; + + if (pageTop >= top) { + elt = views[index - 1].div; + pageTop = elt.offsetTop + elt.clientTop; + } + + for (var i = index - 2; i >= 0; --i) { + elt = views[i].div; + + if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) { + break; + } + + index = i; + } + + return index; +} + +function getVisibleElements(scrollEl, views) { + var sortByVisibility = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + var horizontal = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + var top = scrollEl.scrollTop, + bottom = top + scrollEl.clientHeight; + var left = scrollEl.scrollLeft, + right = left + scrollEl.clientWidth; + + function isElementBottomAfterViewTop(view) { + var element = view.div; + var elementBottom = element.offsetTop + element.clientTop + element.clientHeight; + return elementBottom > top; + } + + function isElementRightAfterViewLeft(view) { + var element = view.div; + var elementRight = element.offsetLeft + element.clientLeft + element.clientWidth; + return elementRight > left; + } + + var visible = [], + numViews = views.length; + var firstVisibleElementInd = numViews === 0 ? 0 : binarySearchFirstItem(views, horizontal ? isElementRightAfterViewLeft : isElementBottomAfterViewTop); + + if (firstVisibleElementInd > 0 && firstVisibleElementInd < numViews && !horizontal) { + firstVisibleElementInd = backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top); + } + + var lastEdge = horizontal ? right : -1; + + for (var i = firstVisibleElementInd; i < numViews; i++) { + var view = views[i], + element = view.div; + var currentWidth = element.offsetLeft + element.clientLeft; + var currentHeight = element.offsetTop + element.clientTop; + var viewWidth = element.clientWidth, + viewHeight = element.clientHeight; + var viewRight = currentWidth + viewWidth; + var viewBottom = currentHeight + viewHeight; + + if (lastEdge === -1) { + if (viewBottom >= bottom) { + lastEdge = viewBottom; + } + } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) { + break; + } + + if (viewBottom <= top || currentHeight >= bottom || viewRight <= left || currentWidth >= right) { + continue; + } + + var hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom); + var hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right); + var percent = (viewHeight - hiddenHeight) * (viewWidth - hiddenWidth) * 100 / viewHeight / viewWidth | 0; + visible.push({ + id: view.id, + x: currentWidth, + y: currentHeight, + view: view, + percent: percent + }); + } + + var first = visible[0], + last = visible[visible.length - 1]; + + if (sortByVisibility) { + visible.sort(function (a, b) { + var pc = a.percent - b.percent; + + if (Math.abs(pc) > 0.001) { + return -pc; + } + + return a.id - b.id; + }); + } + + return { + first: first, + last: last, + views: visible + }; +} + +function noContextMenuHandler(evt) { + evt.preventDefault(); +} + +function isDataSchema(url) { + var i = 0, + ii = url.length; + + while (i < ii && url[i].trim() === '') { + i++; + } + + return url.substring(i, i + 5).toLowerCase() === 'data:'; +} + +function getPDFFileNameFromURL(url) { + var defaultFilename = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'document.pdf'; + + if (typeof url !== 'string') { + return defaultFilename; + } + + if (isDataSchema(url)) { + console.warn('getPDFFileNameFromURL: ' + 'ignoring "data:" URL for performance reasons.'); + return defaultFilename; + } + + var reURI = /^(?:(?:[^:]+:)?\/\/[^\/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/; + var reFilename = /[^\/?#=]+\.pdf\b(?!.*\.pdf\b)/i; + var splitURI = reURI.exec(url); + var suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]); + + if (suggestedFilename) { + suggestedFilename = suggestedFilename[0]; + + if (suggestedFilename.includes('%')) { + try { + suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0]; + } catch (ex) {} + } + } + + return suggestedFilename || defaultFilename; +} + +function normalizeWheelEventDelta(evt) { + var delta = Math.sqrt(evt.deltaX * evt.deltaX + evt.deltaY * evt.deltaY); + var angle = Math.atan2(evt.deltaY, evt.deltaX); + + if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) { + delta = -delta; + } + + var MOUSE_DOM_DELTA_PIXEL_MODE = 0; + var MOUSE_DOM_DELTA_LINE_MODE = 1; + var MOUSE_PIXELS_PER_LINE = 30; + var MOUSE_LINES_PER_PAGE = 30; + + if (evt.deltaMode === MOUSE_DOM_DELTA_PIXEL_MODE) { + delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE; + } else if (evt.deltaMode === MOUSE_DOM_DELTA_LINE_MODE) { + delta /= MOUSE_LINES_PER_PAGE; + } + + return delta; +} + +function isValidRotation(angle) { + return Number.isInteger(angle) && angle % 90 === 0; +} + +function isValidScrollMode(mode) { + return Number.isInteger(mode) && Object.values(ScrollMode).includes(mode) && mode !== ScrollMode.UNKNOWN; +} + +function isValidSpreadMode(mode) { + return Number.isInteger(mode) && Object.values(SpreadMode).includes(mode) && mode !== SpreadMode.UNKNOWN; +} + +function isPortraitOrientation(size) { + return size.width <= size.height; +} + +var WaitOnType = { + EVENT: 'event', + TIMEOUT: 'timeout' +}; +exports.WaitOnType = WaitOnType; + +function waitOnEventOrTimeout(_ref2) { + var target = _ref2.target, + name = _ref2.name, + _ref2$delay = _ref2.delay, + delay = _ref2$delay === void 0 ? 0 : _ref2$delay; + return new Promise(function (resolve, reject) { + if (_typeof(target) !== 'object' || !(name && typeof name === 'string') || !(Number.isInteger(delay) && delay >= 0)) { + throw new Error('waitOnEventOrTimeout - invalid parameters.'); + } + + function handler(type) { + if (target instanceof EventBus) { + target.off(name, eventHandler); + } else { + target.removeEventListener(name, eventHandler); + } + + if (timeout) { + clearTimeout(timeout); + } + + resolve(type); + } + + var eventHandler = handler.bind(null, WaitOnType.EVENT); + + if (target instanceof EventBus) { + target.on(name, eventHandler); + } else { + target.addEventListener(name, eventHandler); + } + + var timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT); + var timeout = setTimeout(timeoutHandler, delay); + }); +} + +var animationStarted = new Promise(function (resolve) { + window.requestAnimationFrame(resolve); +}); +exports.animationStarted = animationStarted; + +var EventBus = +/*#__PURE__*/ +function () { + function EventBus() { + var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref3$dispatchToDOM = _ref3.dispatchToDOM, + dispatchToDOM = _ref3$dispatchToDOM === void 0 ? false : _ref3$dispatchToDOM; + + _classCallCheck(this, EventBus); + + this._listeners = Object.create(null); + this._dispatchToDOM = dispatchToDOM === true; + } + + _createClass(EventBus, [{ + key: "on", + value: function on(eventName, listener) { + var eventListeners = this._listeners[eventName]; + + if (!eventListeners) { + eventListeners = []; + this._listeners[eventName] = eventListeners; + } + + eventListeners.push(listener); + } + }, { + key: "off", + value: function off(eventName, listener) { + var eventListeners = this._listeners[eventName]; + var i; + + if (!eventListeners || (i = eventListeners.indexOf(listener)) < 0) { + return; + } + + eventListeners.splice(i, 1); + } + }, { + key: "dispatch", + value: function dispatch(eventName) { + var eventListeners = this._listeners[eventName]; + + if (!eventListeners || eventListeners.length === 0) { + if (this._dispatchToDOM) { + var _args5 = Array.prototype.slice.call(arguments, 1); + + this._dispatchDOMEvent(eventName, _args5); + } + + return; + } + + var args = Array.prototype.slice.call(arguments, 1); + eventListeners.slice(0).forEach(function (listener) { + listener.apply(null, args); + }); + + if (this._dispatchToDOM) { + this._dispatchDOMEvent(eventName, args); + } + } + }, { + key: "_dispatchDOMEvent", + value: function _dispatchDOMEvent(eventName) { + var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + var details = Object.create(null); + + if (args && args.length > 0) { + var obj = args[0]; + + for (var key in obj) { + var value = obj[key]; + + if (key === 'source') { + if (value === window || value === document) { + return; + } + + continue; + } + + details[key] = value; + } + } + + var event = document.createEvent('CustomEvent'); + event.initCustomEvent(eventName, true, true, details); + document.dispatchEvent(event); + } + }]); + + return EventBus; +}(); + +exports.EventBus = EventBus; +var globalEventBus = null; + +function getGlobalEventBus() { + var dispatchToDOM = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + + if (!globalEventBus) { + globalEventBus = new EventBus({ + dispatchToDOM: dispatchToDOM + }); + } + + return globalEventBus; +} + +function clamp(v, min, max) { + return Math.min(Math.max(v, min), max); +} + +var ProgressBar = +/*#__PURE__*/ +function () { + function ProgressBar(id) { + var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + height = _ref4.height, + width = _ref4.width, + units = _ref4.units; + + _classCallCheck(this, ProgressBar); + + this.visible = true; + this.div = document.querySelector(id + ' .progress'); + this.bar = this.div.parentNode; + this.height = height || 100; + this.width = width || 100; + this.units = units || '%'; + this.div.style.height = this.height + this.units; + this.percent = 0; + } + + _createClass(ProgressBar, [{ + key: "_updateBar", + value: function _updateBar() { + if (this._indeterminate) { + this.div.classList.add('indeterminate'); + this.div.style.width = this.width + this.units; + return; + } + + this.div.classList.remove('indeterminate'); + var progressSize = this.width * this._percent / 100; + this.div.style.width = progressSize + this.units; + } + }, { + key: "setWidth", + value: function setWidth(viewer) { + if (!viewer) { + return; + } + + var container = viewer.parentNode; + var scrollbarWidth = container.offsetWidth - viewer.offsetWidth; + + if (scrollbarWidth > 0) { + this.bar.setAttribute('style', 'width: calc(100% - ' + scrollbarWidth + 'px);'); + } + } + }, { + key: "hide", + value: function hide() { + if (!this.visible) { + return; + } + + this.visible = false; + this.bar.classList.add('hidden'); + document.body.classList.remove('loadingInProgress'); + } + }, { + key: "show", + value: function show() { + if (this.visible) { + return; + } + + this.visible = true; + document.body.classList.add('loadingInProgress'); + this.bar.classList.remove('hidden'); + } + }, { + key: "percent", + get: function get() { + return this._percent; + }, + set: function set(val) { + this._indeterminate = isNaN(val); + this._percent = clamp(val, 0, 100); + + this._updateBar(); + } + }]); + + return ProgressBar; +}(); + +exports.ProgressBar = ProgressBar; + +function moveToEndOfArray(arr, condition) { + var moved = [], + len = arr.length; + var write = 0; + + for (var read = 0; read < len; ++read) { + if (condition(arr[read])) { + moved.push(arr[read]); + } else { + arr[write] = arr[read]; + ++write; + } + } + + for (var _read = 0; write < len; ++_read, ++write) { + arr[write] = moved[_read]; + } +} + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.OptionKind = exports.AppOptions = void 0; + +var _pdfjsLib = __webpack_require__(7); + +var _viewer_compatibility = __webpack_require__(8); + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var OptionKind = { + VIEWER: 0x02, + API: 0x04, + WORKER: 0x08, + PREFERENCE: 0x80 +}; +exports.OptionKind = OptionKind; +var defaultOptions = { + cursorToolOnLoad: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + defaultUrl: { + value: 'compressed.tracemonkey-pldi-09.pdf', + kind: OptionKind.VIEWER + }, + defaultZoomValue: { + value: '', + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + disableHistory: { + value: false, + kind: OptionKind.VIEWER + }, + disablePageLabels: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enablePrintAutoRotate: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enableWebGL: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + eventBusDispatchToDOM: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + externalLinkRel: { + value: 'noopener noreferrer nofollow', + kind: OptionKind.VIEWER + }, + externalLinkTarget: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + historyUpdateUrl: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + imageResourcesPath: { + value: './images/', + kind: OptionKind.VIEWER + }, + maxCanvasPixels: { + value: 16777216, + compatibility: _viewer_compatibility.viewerCompatibilityParams.maxCanvasPixels, + kind: OptionKind.VIEWER + }, + pdfBugEnabled: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + renderer: { + value: 'canvas', + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + renderInteractiveForms: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + sidebarViewOnLoad: { + value: -1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + scrollModeOnLoad: { + value: -1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + spreadModeOnLoad: { + value: -1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + textLayerMode: { + value: 1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + useOnlyCssZoom: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + viewOnLoad: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + cMapPacked: { + value: true, + kind: OptionKind.API + }, + cMapUrl: { + value: '../web/cmaps/', + kind: OptionKind.API + }, + disableAutoFetch: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + disableCreateObjectURL: { + value: false, + compatibility: _pdfjsLib.apiCompatibilityParams.disableCreateObjectURL, + kind: OptionKind.API + }, + disableFontFace: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + disableRange: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + disableStream: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + isEvalSupported: { + value: true, + kind: OptionKind.API + }, + maxImageSize: { + value: -1, + kind: OptionKind.API + }, + pdfBug: { + value: false, + kind: OptionKind.API + }, + postMessageTransfers: { + value: true, + kind: OptionKind.API + }, + verbosity: { + value: 1, + kind: OptionKind.API + }, + workerPort: { + value: null, + kind: OptionKind.WORKER + }, + workerSrc: { + value: '../build/pdf.worker.js', + kind: OptionKind.WORKER + } +}; +{ + defaultOptions.disablePreferences = { + value: false, + kind: OptionKind.VIEWER + }; + defaultOptions.locale = { + value: typeof navigator !== 'undefined' ? navigator.language : 'en-US', + kind: OptionKind.VIEWER + }; + defaultOptions.printResolution = { + value: 150, + kind: OptionKind.VIEWER + }; +} +var userOptions = Object.create(null); + +var AppOptions = +/*#__PURE__*/ +function () { + function AppOptions() { + _classCallCheck(this, AppOptions); + + throw new Error('Cannot initialize AppOptions.'); + } + + _createClass(AppOptions, null, [{ + key: "get", + value: function get(name) { + var userOption = userOptions[name]; + + if (userOption !== undefined) { + return userOption; + } + + var defaultOption = defaultOptions[name]; + + if (defaultOption !== undefined) { + return defaultOption.compatibility || defaultOption.value; + } + + return undefined; + } + }, { + key: "getAll", + value: function getAll() { + var kind = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + var options = Object.create(null); + + for (var name in defaultOptions) { + var defaultOption = defaultOptions[name]; + + if (kind) { + if ((kind & defaultOption.kind) === 0) { + continue; + } + + if (kind === OptionKind.PREFERENCE) { + var value = defaultOption.value, + valueType = _typeof(value); + + if (valueType === 'boolean' || valueType === 'string' || valueType === 'number' && Number.isInteger(value)) { + options[name] = value; + continue; + } + + throw new Error("Invalid type for preference: ".concat(name)); + } + } + + var userOption = userOptions[name]; + options[name] = userOption !== undefined ? userOption : defaultOption.compatibility || defaultOption.value; + } + + return options; + } + }, { + key: "set", + value: function set(name, value) { + userOptions[name] = value; + } + }, { + key: "remove", + value: function remove(name) { + delete userOptions[name]; + } + }]); + + return AppOptions; +}(); + +exports.AppOptions = AppOptions; + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var pdfjsLib; + +if (typeof window !== 'undefined' && window['pdfjs-dist/build/pdf']) { + pdfjsLib = window['pdfjs-dist/build/pdf']; +} else { + pdfjsLib = require('../build/pdf.js'); +} + +module.exports = pdfjsLib; + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var compatibilityParams = Object.create(null); +{ + var userAgent = typeof navigator !== 'undefined' && navigator.userAgent || ''; + var isAndroid = /Android/.test(userAgent); + var isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent); + + (function checkCanvasSizeLimitation() { + if (isIOS || isAndroid) { + compatibilityParams.maxCanvasPixels = 5242880; + } + })(); +} +exports.viewerCompatibilityParams = Object.freeze(compatibilityParams); + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFCursorTools = exports.CursorTool = void 0; + +var _grab_to_pan = __webpack_require__(10); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var CursorTool = { + SELECT: 0, + HAND: 1, + ZOOM: 2 +}; +exports.CursorTool = CursorTool; + +var PDFCursorTools = +/*#__PURE__*/ +function () { + function PDFCursorTools(_ref) { + var _this = this; + + var container = _ref.container, + eventBus = _ref.eventBus, + _ref$cursorToolOnLoad = _ref.cursorToolOnLoad, + cursorToolOnLoad = _ref$cursorToolOnLoad === void 0 ? CursorTool.SELECT : _ref$cursorToolOnLoad; + + _classCallCheck(this, PDFCursorTools); + + this.container = container; + this.eventBus = eventBus; + this.active = CursorTool.SELECT; + this.activeBeforePresentationMode = null; + this.handTool = new _grab_to_pan.GrabToPan({ + element: this.container + }); + + this._addEventListeners(); + + Promise.resolve().then(function () { + _this.switchTool(cursorToolOnLoad); + }); + } + + _createClass(PDFCursorTools, [{ + key: "switchTool", + value: function switchTool(tool) { + var _this2 = this; + + if (this.activeBeforePresentationMode !== null) { + return; + } + + if (tool === this.active) { + return; + } + + var disableActiveTool = function disableActiveTool() { + switch (_this2.active) { + case CursorTool.SELECT: + break; + + case CursorTool.HAND: + _this2.handTool.deactivate(); + + break; + + case CursorTool.ZOOM: + } + }; + + switch (tool) { + case CursorTool.SELECT: + disableActiveTool(); + break; + + case CursorTool.HAND: + disableActiveTool(); + this.handTool.activate(); + break; + + case CursorTool.ZOOM: + default: + console.error("switchTool: \"".concat(tool, "\" is an unsupported value.")); + return; + } + + this.active = tool; + + this._dispatchEvent(); + } + }, { + key: "_dispatchEvent", + value: function _dispatchEvent() { + this.eventBus.dispatch('cursortoolchanged', { + source: this, + tool: this.active + }); + } + }, { + key: "_addEventListeners", + value: function _addEventListeners() { + var _this3 = this; + + this.eventBus.on('switchcursortool', function (evt) { + _this3.switchTool(evt.tool); + }); + this.eventBus.on('presentationmodechanged', function (evt) { + if (evt.switchInProgress) { + return; + } + + var previouslyActive; + + if (evt.active) { + previouslyActive = _this3.active; + + _this3.switchTool(CursorTool.SELECT); + + _this3.activeBeforePresentationMode = previouslyActive; + } else { + previouslyActive = _this3.activeBeforePresentationMode; + _this3.activeBeforePresentationMode = null; + + _this3.switchTool(previouslyActive); + } + }); + } + }, { + key: "activeTool", + get: function get() { + return this.active; + } + }]); + + return PDFCursorTools; +}(); + +exports.PDFCursorTools = PDFCursorTools; + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.GrabToPan = GrabToPan; + +function GrabToPan(options) { + this.element = options.element; + this.document = options.element.ownerDocument; + + if (typeof options.ignoreTarget === 'function') { + this.ignoreTarget = options.ignoreTarget; + } + + this.onActiveChanged = options.onActiveChanged; + this.activate = this.activate.bind(this); + this.deactivate = this.deactivate.bind(this); + this.toggle = this.toggle.bind(this); + this._onmousedown = this._onmousedown.bind(this); + this._onmousemove = this._onmousemove.bind(this); + this._endPan = this._endPan.bind(this); + var overlay = this.overlay = document.createElement('div'); + overlay.className = 'grab-to-pan-grabbing'; +} + +GrabToPan.prototype = { + CSS_CLASS_GRAB: 'grab-to-pan-grab', + activate: function GrabToPan_activate() { + if (!this.active) { + this.active = true; + this.element.addEventListener('mousedown', this._onmousedown, true); + this.element.classList.add(this.CSS_CLASS_GRAB); + + if (this.onActiveChanged) { + this.onActiveChanged(true); + } + } + }, + deactivate: function GrabToPan_deactivate() { + if (this.active) { + this.active = false; + this.element.removeEventListener('mousedown', this._onmousedown, true); + + this._endPan(); + + this.element.classList.remove(this.CSS_CLASS_GRAB); + + if (this.onActiveChanged) { + this.onActiveChanged(false); + } + } + }, + toggle: function GrabToPan_toggle() { + if (this.active) { + this.deactivate(); + } else { + this.activate(); + } + }, + ignoreTarget: function GrabToPan_ignoreTarget(node) { + return node[matchesSelector]('a[href], a[href] *, input, textarea, button, button *, select, option'); + }, + _onmousedown: function GrabToPan__onmousedown(event) { + if (event.button !== 0 || this.ignoreTarget(event.target)) { + return; + } + + if (event.originalTarget) { + try { + event.originalTarget.tagName; + } catch (e) { + return; + } + } + + this.scrollLeftStart = this.element.scrollLeft; + this.scrollTopStart = this.element.scrollTop; + this.clientXStart = event.clientX; + this.clientYStart = event.clientY; + this.document.addEventListener('mousemove', this._onmousemove, true); + this.document.addEventListener('mouseup', this._endPan, true); + this.element.addEventListener('scroll', this._endPan, true); + event.preventDefault(); + event.stopPropagation(); + var focusedElement = document.activeElement; + + if (focusedElement && !focusedElement.contains(event.target)) { + focusedElement.blur(); + } + }, + _onmousemove: function GrabToPan__onmousemove(event) { + this.element.removeEventListener('scroll', this._endPan, true); + + if (isLeftMouseReleased(event)) { + this._endPan(); + + return; + } + + var xDiff = event.clientX - this.clientXStart; + var yDiff = event.clientY - this.clientYStart; + var scrollTop = this.scrollTopStart - yDiff; + var scrollLeft = this.scrollLeftStart - xDiff; + + if (this.element.scrollTo) { + this.element.scrollTo({ + top: scrollTop, + left: scrollLeft, + behavior: 'instant' + }); + } else { + this.element.scrollTop = scrollTop; + this.element.scrollLeft = scrollLeft; + } + + if (!this.overlay.parentNode) { + document.body.appendChild(this.overlay); + } + }, + _endPan: function GrabToPan__endPan() { + this.element.removeEventListener('scroll', this._endPan, true); + this.document.removeEventListener('mousemove', this._onmousemove, true); + this.document.removeEventListener('mouseup', this._endPan, true); + this.overlay.remove(); + } +}; +var matchesSelector; +['webkitM', 'mozM', 'msM', 'oM', 'm'].some(function (prefix) { + var name = prefix + 'atches'; + + if (name in document.documentElement) { + matchesSelector = name; + } + + name += 'Selector'; + + if (name in document.documentElement) { + matchesSelector = name; + } + + return matchesSelector; +}); +var isNotIEorIsIE10plus = !document.documentMode || document.documentMode > 9; +var chrome = window.chrome; +var isChrome15OrOpera15plus = chrome && (chrome.webstore || chrome.app); +var isSafari6plus = /Apple/.test(navigator.vendor) && /Version\/([6-9]\d*|[1-5]\d+)/.test(navigator.userAgent); + +function isLeftMouseReleased(event) { + if ('buttons' in event && isNotIEorIsIE10plus) { + return !(event.buttons & 1); + } + + if (isChrome15OrOpera15plus || isSafari6plus) { + return event.which === 0; + } + + return false; +} + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFRenderingQueue = exports.RenderingStates = void 0; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var CLEANUP_TIMEOUT = 30000; +var RenderingStates = { + INITIAL: 0, + RUNNING: 1, + PAUSED: 2, + FINISHED: 3 +}; +exports.RenderingStates = RenderingStates; + +var PDFRenderingQueue = +/*#__PURE__*/ +function () { + function PDFRenderingQueue() { + _classCallCheck(this, PDFRenderingQueue); + + this.pdfViewer = null; + this.pdfThumbnailViewer = null; + this.onIdle = null; + this.highestPriorityPage = null; + this.idleTimeout = null; + this.printing = false; + this.isThumbnailViewEnabled = false; + } + + _createClass(PDFRenderingQueue, [{ + key: "setViewer", + value: function setViewer(pdfViewer) { + this.pdfViewer = pdfViewer; + } + }, { + key: "setThumbnailViewer", + value: function setThumbnailViewer(pdfThumbnailViewer) { + this.pdfThumbnailViewer = pdfThumbnailViewer; + } + }, { + key: "isHighestPriority", + value: function isHighestPriority(view) { + return this.highestPriorityPage === view.renderingId; + } + }, { + key: "renderHighestPriority", + value: function renderHighestPriority(currentlyVisiblePages) { + if (this.idleTimeout) { + clearTimeout(this.idleTimeout); + this.idleTimeout = null; + } + + if (this.pdfViewer.forceRendering(currentlyVisiblePages)) { + return; + } + + if (this.pdfThumbnailViewer && this.isThumbnailViewEnabled) { + if (this.pdfThumbnailViewer.forceRendering()) { + return; + } + } + + if (this.printing) { + return; + } + + if (this.onIdle) { + this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT); + } + } + }, { + key: "getHighestPriority", + value: function getHighestPriority(visible, views, scrolledDown) { + var visibleViews = visible.views; + var numVisible = visibleViews.length; + + if (numVisible === 0) { + return null; + } + + for (var i = 0; i < numVisible; ++i) { + var view = visibleViews[i].view; + + if (!this.isViewFinished(view)) { + return view; + } + } + + if (scrolledDown) { + var nextPageIndex = visible.last.id; + + if (views[nextPageIndex] && !this.isViewFinished(views[nextPageIndex])) { + return views[nextPageIndex]; + } + } else { + var previousPageIndex = visible.first.id - 2; + + if (views[previousPageIndex] && !this.isViewFinished(views[previousPageIndex])) { + return views[previousPageIndex]; + } + } + + return null; + } + }, { + key: "isViewFinished", + value: function isViewFinished(view) { + return view.renderingState === RenderingStates.FINISHED; + } + }, { + key: "renderView", + value: function renderView(view) { + var _this = this; + + switch (view.renderingState) { + case RenderingStates.FINISHED: + return false; + + case RenderingStates.PAUSED: + this.highestPriorityPage = view.renderingId; + view.resume(); + break; + + case RenderingStates.RUNNING: + this.highestPriorityPage = view.renderingId; + break; + + case RenderingStates.INITIAL: + this.highestPriorityPage = view.renderingId; + view.draw()["finally"](function () { + _this.renderHighestPriority(); + }); + break; + } + + return true; + } + }]); + + return PDFRenderingQueue; +}(); + +exports.PDFRenderingQueue = PDFRenderingQueue; + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFSidebar = exports.SidebarView = void 0; + +var _ui_utils = __webpack_require__(5); + +var _pdf_rendering_queue = __webpack_require__(11); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var UI_NOTIFICATION_CLASS = 'pdfSidebarNotification'; +var SidebarView = { + UNKNOWN: -1, + NONE: 0, + THUMBS: 1, + OUTLINE: 2, + ATTACHMENTS: 3, + LAYERS: 4 +}; +exports.SidebarView = SidebarView; + +var PDFSidebar = +/*#__PURE__*/ +function () { + function PDFSidebar(_ref) { + var elements = _ref.elements, + pdfViewer = _ref.pdfViewer, + pdfThumbnailViewer = _ref.pdfThumbnailViewer, + eventBus = _ref.eventBus, + _ref$l10n = _ref.l10n, + l10n = _ref$l10n === void 0 ? _ui_utils.NullL10n : _ref$l10n, + _ref$disableNotificat = _ref.disableNotification, + disableNotification = _ref$disableNotificat === void 0 ? false : _ref$disableNotificat; + + _classCallCheck(this, PDFSidebar); + + this.isOpen = false; + this.active = SidebarView.THUMBS; + this.isInitialViewSet = false; + this.onToggled = null; + this.pdfViewer = pdfViewer; + this.pdfThumbnailViewer = pdfThumbnailViewer; + this.outerContainer = elements.outerContainer; + this.viewerContainer = elements.viewerContainer; + this.toggleButton = elements.toggleButton; + this.thumbnailButton = elements.thumbnailButton; + this.outlineButton = elements.outlineButton; + this.attachmentsButton = elements.attachmentsButton; + this.thumbnailView = elements.thumbnailView; + this.outlineView = elements.outlineView; + this.attachmentsView = elements.attachmentsView; + this.eventBus = eventBus; + this.l10n = l10n; + this._disableNotification = disableNotification; + + this._addEventListeners(); + } + + _createClass(PDFSidebar, [{ + key: "reset", + value: function reset() { + this.isInitialViewSet = false; + + this._hideUINotification(null); + + this.switchView(SidebarView.THUMBS); + this.outlineButton.disabled = false; + this.attachmentsButton.disabled = false; + } + }, { + key: "setInitialView", + value: function setInitialView() { + var view = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SidebarView.NONE; + + if (this.isInitialViewSet) { + return; + } + + this.isInitialViewSet = true; + + if (view === SidebarView.NONE || view === SidebarView.UNKNOWN) { + this._dispatchEvent(); + + return; + } + + if (!this._switchView(view, true)) { + this._dispatchEvent(); + } + } + }, { + key: "switchView", + value: function switchView(view) { + var forceOpen = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + this._switchView(view, forceOpen); + } + }, { + key: "_switchView", + value: function _switchView(view) { + var forceOpen = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var isViewChanged = view !== this.active; + var shouldForceRendering = false; + + switch (view) { + case SidebarView.NONE: + if (this.isOpen) { + this.close(); + return true; + } + + return false; + + case SidebarView.THUMBS: + if (this.isOpen && isViewChanged) { + shouldForceRendering = true; + } + + break; + + case SidebarView.OUTLINE: + if (this.outlineButton.disabled) { + return false; + } + + break; + + case SidebarView.ATTACHMENTS: + if (this.attachmentsButton.disabled) { + return false; + } + + break; + + default: + console.error("PDFSidebar._switchView: \"".concat(view, "\" is not a valid view.")); + return false; + } + + this.active = view; + this.thumbnailButton.classList.toggle('toggled', view === SidebarView.THUMBS); + this.outlineButton.classList.toggle('toggled', view === SidebarView.OUTLINE); + this.attachmentsButton.classList.toggle('toggled', view === SidebarView.ATTACHMENTS); + this.thumbnailView.classList.toggle('hidden', view !== SidebarView.THUMBS); + this.outlineView.classList.toggle('hidden', view !== SidebarView.OUTLINE); + this.attachmentsView.classList.toggle('hidden', view !== SidebarView.ATTACHMENTS); + + if (forceOpen && !this.isOpen) { + this.open(); + return true; + } + + if (shouldForceRendering) { + this._updateThumbnailViewer(); + + this._forceRendering(); + } + + if (isViewChanged) { + this._dispatchEvent(); + } + + this._hideUINotification(this.active); + + return isViewChanged; + } + }, { + key: "open", + value: function open() { + if (this.isOpen) { + return; + } + + this.isOpen = true; + this.toggleButton.classList.add('toggled'); + this.outerContainer.classList.add('sidebarMoving', 'sidebarOpen'); + + if (this.active === SidebarView.THUMBS) { + this._updateThumbnailViewer(); + } + + this._forceRendering(); + + this._dispatchEvent(); + + this._hideUINotification(this.active); + } + }, { + key: "close", + value: function close() { + if (!this.isOpen) { + return; + } + + this.isOpen = false; + this.toggleButton.classList.remove('toggled'); + this.outerContainer.classList.add('sidebarMoving'); + this.outerContainer.classList.remove('sidebarOpen'); + + this._forceRendering(); + + this._dispatchEvent(); + } + }, { + key: "toggle", + value: function toggle() { + if (this.isOpen) { + this.close(); + } else { + this.open(); + } + } + }, { + key: "_dispatchEvent", + value: function _dispatchEvent() { + this.eventBus.dispatch('sidebarviewchanged', { + source: this, + view: this.visibleView + }); + } + }, { + key: "_forceRendering", + value: function _forceRendering() { + if (this.onToggled) { + this.onToggled(); + } else { + this.pdfViewer.forceRendering(); + this.pdfThumbnailViewer.forceRendering(); + } + } + }, { + key: "_updateThumbnailViewer", + value: function _updateThumbnailViewer() { + var pdfViewer = this.pdfViewer, + pdfThumbnailViewer = this.pdfThumbnailViewer; + var pagesCount = pdfViewer.pagesCount; + + for (var pageIndex = 0; pageIndex < pagesCount; pageIndex++) { + var pageView = pdfViewer.getPageView(pageIndex); + + if (pageView && pageView.renderingState === _pdf_rendering_queue.RenderingStates.FINISHED) { + var thumbnailView = pdfThumbnailViewer.getThumbnail(pageIndex); + thumbnailView.setImage(pageView); + } + } + + pdfThumbnailViewer.scrollThumbnailIntoView(pdfViewer.currentPageNumber); + } + }, { + key: "_showUINotification", + value: function _showUINotification(view) { + var _this = this; + + if (this._disableNotification) { + return; + } + + this.l10n.get('toggle_sidebar_notification.title', null, 'Toggle Sidebar (document contains outline/attachments)').then(function (msg) { + _this.toggleButton.title = msg; + }); + + if (!this.isOpen) { + this.toggleButton.classList.add(UI_NOTIFICATION_CLASS); + } else if (view === this.active) { + return; + } + + switch (view) { + case SidebarView.OUTLINE: + this.outlineButton.classList.add(UI_NOTIFICATION_CLASS); + break; + + case SidebarView.ATTACHMENTS: + this.attachmentsButton.classList.add(UI_NOTIFICATION_CLASS); + break; + } + } + }, { + key: "_hideUINotification", + value: function _hideUINotification(view) { + var _this2 = this; + + if (this._disableNotification) { + return; + } + + var removeNotification = function removeNotification(view) { + switch (view) { + case SidebarView.OUTLINE: + _this2.outlineButton.classList.remove(UI_NOTIFICATION_CLASS); + + break; + + case SidebarView.ATTACHMENTS: + _this2.attachmentsButton.classList.remove(UI_NOTIFICATION_CLASS); + + break; + } + }; + + if (!this.isOpen && view !== null) { + return; + } + + this.toggleButton.classList.remove(UI_NOTIFICATION_CLASS); + + if (view !== null) { + removeNotification(view); + return; + } + + for (view in SidebarView) { + removeNotification(SidebarView[view]); + } + + this.l10n.get('toggle_sidebar.title', null, 'Toggle Sidebar').then(function (msg) { + _this2.toggleButton.title = msg; + }); + } + }, { + key: "_addEventListeners", + value: function _addEventListeners() { + var _this3 = this; + + this.viewerContainer.addEventListener('transitionend', function (evt) { + if (evt.target === _this3.viewerContainer) { + _this3.outerContainer.classList.remove('sidebarMoving'); + } + }); + this.thumbnailButton.addEventListener('click', function () { + _this3.switchView(SidebarView.THUMBS); + }); + this.outlineButton.addEventListener('click', function () { + _this3.switchView(SidebarView.OUTLINE); + }); + this.outlineButton.addEventListener('dblclick', function () { + _this3.eventBus.dispatch('toggleoutlinetree', { + source: _this3 + }); + }); + this.attachmentsButton.addEventListener('click', function () { + _this3.switchView(SidebarView.ATTACHMENTS); + }); + this.eventBus.on('outlineloaded', function (evt) { + var outlineCount = evt.outlineCount; + _this3.outlineButton.disabled = !outlineCount; + + if (outlineCount) { + _this3._showUINotification(SidebarView.OUTLINE); + } else if (_this3.active === SidebarView.OUTLINE) { + _this3.switchView(SidebarView.THUMBS); + } + }); + this.eventBus.on('attachmentsloaded', function (evt) { + if (evt.attachmentsCount) { + _this3.attachmentsButton.disabled = false; + + _this3._showUINotification(SidebarView.ATTACHMENTS); + + return; + } + + Promise.resolve().then(function () { + if (_this3.attachmentsView.hasChildNodes()) { + return; + } + + _this3.attachmentsButton.disabled = true; + + if (_this3.active === SidebarView.ATTACHMENTS) { + _this3.switchView(SidebarView.THUMBS); + } + }); + }); + this.eventBus.on('presentationmodechanged', function (evt) { + if (!evt.active && !evt.switchInProgress && _this3.isThumbnailViewVisible) { + _this3._updateThumbnailViewer(); + } + }); + } + }, { + key: "visibleView", + get: function get() { + return this.isOpen ? this.active : SidebarView.NONE; + } + }, { + key: "isThumbnailViewVisible", + get: function get() { + return this.isOpen && this.active === SidebarView.THUMBS; + } + }, { + key: "isOutlineViewVisible", + get: function get() { + return this.isOpen && this.active === SidebarView.OUTLINE; + } + }, { + key: "isAttachmentsViewVisible", + get: function get() { + return this.isOpen && this.active === SidebarView.ATTACHMENTS; + } + }]); + + return PDFSidebar; +}(); + +exports.PDFSidebar = PDFSidebar; + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.OverlayManager = void 0; + +var _regenerator = _interopRequireDefault(__webpack_require__(2)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var OverlayManager = +/*#__PURE__*/ +function () { + function OverlayManager() { + _classCallCheck(this, OverlayManager); + + this._overlays = {}; + this._active = null; + this._keyDownBound = this._keyDown.bind(this); + } + + _createClass(OverlayManager, [{ + key: "register", + value: function () { + var _register = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee(name, element) { + var callerCloseMethod, + canForceClose, + container, + _args = arguments; + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + callerCloseMethod = _args.length > 2 && _args[2] !== undefined ? _args[2] : null; + canForceClose = _args.length > 3 && _args[3] !== undefined ? _args[3] : false; + + if (!(!name || !element || !(container = element.parentNode))) { + _context.next = 6; + break; + } + + throw new Error('Not enough parameters.'); + + case 6: + if (!this._overlays[name]) { + _context.next = 8; + break; + } + + throw new Error('The overlay is already registered.'); + + case 8: + this._overlays[name] = { + element: element, + container: container, + callerCloseMethod: callerCloseMethod, + canForceClose: canForceClose + }; + + case 9: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function register(_x, _x2) { + return _register.apply(this, arguments); + } + + return register; + }() + }, { + key: "unregister", + value: function () { + var _unregister = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee2(name) { + return _regenerator["default"].wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + if (this._overlays[name]) { + _context2.next = 4; + break; + } + + throw new Error('The overlay does not exist.'); + + case 4: + if (!(this._active === name)) { + _context2.next = 6; + break; + } + + throw new Error('The overlay cannot be removed while it is active.'); + + case 6: + delete this._overlays[name]; + + case 7: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + function unregister(_x3) { + return _unregister.apply(this, arguments); + } + + return unregister; + }() + }, { + key: "open", + value: function () { + var _open = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee3(name) { + return _regenerator["default"].wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + if (this._overlays[name]) { + _context3.next = 4; + break; + } + + throw new Error('The overlay does not exist.'); + + case 4: + if (!this._active) { + _context3.next = 14; + break; + } + + if (!this._overlays[name].canForceClose) { + _context3.next = 9; + break; + } + + this._closeThroughCaller(); + + _context3.next = 14; + break; + + case 9: + if (!(this._active === name)) { + _context3.next = 13; + break; + } + + throw new Error('The overlay is already active.'); + + case 13: + throw new Error('Another overlay is currently active.'); + + case 14: + this._active = name; + + this._overlays[this._active].element.classList.remove('hidden'); + + this._overlays[this._active].container.classList.remove('hidden'); + + window.addEventListener('keydown', this._keyDownBound); + + case 18: + case "end": + return _context3.stop(); + } + } + }, _callee3, this); + })); + + function open(_x4) { + return _open.apply(this, arguments); + } + + return open; + }() + }, { + key: "close", + value: function () { + var _close = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee4(name) { + return _regenerator["default"].wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + if (this._overlays[name]) { + _context4.next = 4; + break; + } + + throw new Error('The overlay does not exist.'); + + case 4: + if (this._active) { + _context4.next = 8; + break; + } + + throw new Error('The overlay is currently not active.'); + + case 8: + if (!(this._active !== name)) { + _context4.next = 10; + break; + } + + throw new Error('Another overlay is currently active.'); + + case 10: + this._overlays[this._active].container.classList.add('hidden'); + + this._overlays[this._active].element.classList.add('hidden'); + + this._active = null; + window.removeEventListener('keydown', this._keyDownBound); + + case 14: + case "end": + return _context4.stop(); + } + } + }, _callee4, this); + })); + + function close(_x5) { + return _close.apply(this, arguments); + } + + return close; + }() + }, { + key: "_keyDown", + value: function _keyDown(evt) { + if (this._active && evt.keyCode === 27) { + this._closeThroughCaller(); + + evt.preventDefault(); + } + } + }, { + key: "_closeThroughCaller", + value: function _closeThroughCaller() { + if (this._overlays[this._active].callerCloseMethod) { + this._overlays[this._active].callerCloseMethod(); + } + + if (this._active) { + this.close(this._active); + } + } + }, { + key: "active", + get: function get() { + return this._active; + } + }]); + + return OverlayManager; +}(); + +exports.OverlayManager = OverlayManager; + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PasswordPrompt = void 0; + +var _ui_utils = __webpack_require__(5); + +var _pdfjsLib = __webpack_require__(7); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var PasswordPrompt = +/*#__PURE__*/ +function () { + function PasswordPrompt(options, overlayManager) { + var _this = this; + + var l10n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _ui_utils.NullL10n; + + _classCallCheck(this, PasswordPrompt); + + this.overlayName = options.overlayName; + this.container = options.container; + this.label = options.label; + this.input = options.input; + this.submitButton = options.submitButton; + this.cancelButton = options.cancelButton; + this.overlayManager = overlayManager; + this.l10n = l10n; + this.updateCallback = null; + this.reason = null; + this.submitButton.addEventListener('click', this.verify.bind(this)); + this.cancelButton.addEventListener('click', this.close.bind(this)); + this.input.addEventListener('keydown', function (e) { + if (e.keyCode === 13) { + _this.verify(); + } + }); + this.overlayManager.register(this.overlayName, this.container, this.close.bind(this), true); + } + + _createClass(PasswordPrompt, [{ + key: "open", + value: function open() { + var _this2 = this; + + this.overlayManager.open(this.overlayName).then(function () { + _this2.input.focus(); + + var promptString; + + if (_this2.reason === _pdfjsLib.PasswordResponses.INCORRECT_PASSWORD) { + promptString = _this2.l10n.get('password_invalid', null, 'Invalid password. Please try again.'); + } else { + promptString = _this2.l10n.get('password_label', null, 'Enter the password to open this PDF file.'); + } + + promptString.then(function (msg) { + _this2.label.textContent = msg; + }); + }); + } + }, { + key: "close", + value: function close() { + var _this3 = this; + + this.overlayManager.close(this.overlayName).then(function () { + _this3.input.value = ''; + }); + } + }, { + key: "verify", + value: function verify() { + var password = this.input.value; + + if (password && password.length > 0) { + this.close(); + this.updateCallback(password); + } + } + }, { + key: "setUpdateCallback", + value: function setUpdateCallback(updateCallback, reason) { + this.updateCallback = updateCallback; + this.reason = reason; + } + }]); + + return PasswordPrompt; +}(); + +exports.PasswordPrompt = PasswordPrompt; + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFAttachmentViewer = void 0; + +var _pdfjsLib = __webpack_require__(7); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var PDFAttachmentViewer = +/*#__PURE__*/ +function () { + function PDFAttachmentViewer(_ref) { + var container = _ref.container, + eventBus = _ref.eventBus, + downloadManager = _ref.downloadManager; + + _classCallCheck(this, PDFAttachmentViewer); + + this.container = container; + this.eventBus = eventBus; + this.downloadManager = downloadManager; + this.reset(); + this.eventBus.on('fileattachmentannotation', this._appendAttachment.bind(this)); + } + + _createClass(PDFAttachmentViewer, [{ + key: "reset", + value: function reset() { + var keepRenderedCapability = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + this.attachments = null; + this.container.textContent = ''; + + if (!keepRenderedCapability) { + this._renderedCapability = (0, _pdfjsLib.createPromiseCapability)(); + } + } + }, { + key: "_dispatchEvent", + value: function _dispatchEvent(attachmentsCount) { + this._renderedCapability.resolve(); + + this.eventBus.dispatch('attachmentsloaded', { + source: this, + attachmentsCount: attachmentsCount + }); + } + }, { + key: "_bindPdfLink", + value: function _bindPdfLink(button, content, filename) { + if (this.downloadManager.disableCreateObjectURL) { + throw new Error('bindPdfLink: Unsupported "disableCreateObjectURL" value.'); + } + + var blobUrl; + + button.onclick = function () { + if (!blobUrl) { + blobUrl = (0, _pdfjsLib.createObjectURL)(content, 'application/pdf'); + } + + var viewerUrl; + viewerUrl = '?file=' + encodeURIComponent(blobUrl + '#' + filename); + window.open(viewerUrl); + return false; + }; + } + }, { + key: "_bindLink", + value: function _bindLink(button, content, filename) { + var _this = this; + + button.onclick = function () { + _this.downloadManager.downloadData(content, filename, ''); + + return false; + }; + } + }, { + key: "render", + value: function render(_ref2) { + var attachments = _ref2.attachments, + _ref2$keepRenderedCap = _ref2.keepRenderedCapability, + keepRenderedCapability = _ref2$keepRenderedCap === void 0 ? false : _ref2$keepRenderedCap; + var attachmentsCount = 0; + + if (this.attachments) { + this.reset(keepRenderedCapability === true); + } + + this.attachments = attachments || null; + + if (!attachments) { + this._dispatchEvent(attachmentsCount); + + return; + } + + var names = Object.keys(attachments).sort(function (a, b) { + return a.toLowerCase().localeCompare(b.toLowerCase()); + }); + attachmentsCount = names.length; + + for (var i = 0; i < attachmentsCount; i++) { + var item = attachments[names[i]]; + var filename = (0, _pdfjsLib.removeNullCharacters)((0, _pdfjsLib.getFilenameFromUrl)(item.filename)); + var div = document.createElement('div'); + div.className = 'attachmentsItem'; + var button = document.createElement('button'); + button.textContent = filename; + + if (/\.pdf$/i.test(filename) && !this.downloadManager.disableCreateObjectURL) { + this._bindPdfLink(button, item.content, filename); + } else { + this._bindLink(button, item.content, filename); + } + + div.appendChild(button); + this.container.appendChild(div); + } + + this._dispatchEvent(attachmentsCount); + } + }, { + key: "_appendAttachment", + value: function _appendAttachment(_ref3) { + var _this2 = this; + + var id = _ref3.id, + filename = _ref3.filename, + content = _ref3.content; + + this._renderedCapability.promise.then(function () { + var attachments = _this2.attachments; + + if (!attachments) { + attachments = Object.create(null); + } else { + for (var name in attachments) { + if (id === name) { + return; + } + } + } + + attachments[id] = { + filename: filename, + content: content + }; + + _this2.render({ + attachments: attachments, + keepRenderedCapability: true + }); + }); + } + }]); + + return PDFAttachmentViewer; +}(); + +exports.PDFAttachmentViewer = PDFAttachmentViewer; + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFDocumentProperties = void 0; + +var _regenerator = _interopRequireDefault(__webpack_require__(2)); + +var _pdfjsLib = __webpack_require__(7); + +var _ui_utils = __webpack_require__(5); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } + +function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var DEFAULT_FIELD_CONTENT = '-'; +var NON_METRIC_LOCALES = ['en-us', 'en-lr', 'my']; +var US_PAGE_NAMES = { + '8.5x11': 'Letter', + '8.5x14': 'Legal' +}; +var METRIC_PAGE_NAMES = { + '297x420': 'A3', + '210x297': 'A4' +}; + +function getPageName(size, isPortrait, pageNames) { + var width = isPortrait ? size.width : size.height; + var height = isPortrait ? size.height : size.width; + return pageNames["".concat(width, "x").concat(height)]; +} + +var PDFDocumentProperties = +/*#__PURE__*/ +function () { + function PDFDocumentProperties(_ref, overlayManager, eventBus) { + var _this = this; + + var overlayName = _ref.overlayName, + fields = _ref.fields, + container = _ref.container, + closeButton = _ref.closeButton; + var l10n = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _ui_utils.NullL10n; + + _classCallCheck(this, PDFDocumentProperties); + + this.overlayName = overlayName; + this.fields = fields; + this.container = container; + this.overlayManager = overlayManager; + this.l10n = l10n; + + this._reset(); + + if (closeButton) { + closeButton.addEventListener('click', this.close.bind(this)); + } + + this.overlayManager.register(this.overlayName, this.container, this.close.bind(this)); + + if (eventBus) { + eventBus.on('pagechanging', function (evt) { + _this._currentPageNumber = evt.pageNumber; + }); + eventBus.on('rotationchanging', function (evt) { + _this._pagesRotation = evt.pagesRotation; + }); + } + + this._isNonMetricLocale = true; + l10n.getLanguage().then(function (locale) { + _this._isNonMetricLocale = NON_METRIC_LOCALES.includes(locale); + }); + } + + _createClass(PDFDocumentProperties, [{ + key: "open", + value: function open() { + var _this2 = this; + + var freezeFieldData = function freezeFieldData(data) { + Object.defineProperty(_this2, 'fieldData', { + value: Object.freeze(data), + writable: false, + enumerable: true, + configurable: true + }); + }; + + Promise.all([this.overlayManager.open(this.overlayName), this._dataAvailableCapability.promise]).then(function () { + var currentPageNumber = _this2._currentPageNumber; + var pagesRotation = _this2._pagesRotation; + + if (_this2.fieldData && currentPageNumber === _this2.fieldData['_currentPageNumber'] && pagesRotation === _this2.fieldData['_pagesRotation']) { + _this2._updateUI(); + + return; + } + + _this2.pdfDocument.getMetadata().then(function (_ref2) { + var info = _ref2.info, + metadata = _ref2.metadata, + contentDispositionFilename = _ref2.contentDispositionFilename; + return Promise.all([info, metadata, contentDispositionFilename || (0, _ui_utils.getPDFFileNameFromURL)(_this2.url || ''), _this2._parseFileSize(_this2.maybeFileSize), _this2._parseDate(info.CreationDate), _this2._parseDate(info.ModDate), _this2.pdfDocument.getPage(currentPageNumber).then(function (pdfPage) { + return _this2._parsePageSize((0, _ui_utils.getPageSizeInches)(pdfPage), pagesRotation); + }), _this2._parseLinearization(info.IsLinearized)]); + }).then(function (_ref3) { + var _ref4 = _slicedToArray(_ref3, 8), + info = _ref4[0], + metadata = _ref4[1], + fileName = _ref4[2], + fileSize = _ref4[3], + creationDate = _ref4[4], + modDate = _ref4[5], + pageSize = _ref4[6], + isLinearized = _ref4[7]; + + freezeFieldData({ + 'fileName': fileName, + 'fileSize': fileSize, + 'title': info.Title, + 'author': info.Author, + 'subject': info.Subject, + 'keywords': info.Keywords, + 'creationDate': creationDate, + 'modificationDate': modDate, + 'creator': info.Creator, + 'producer': info.Producer, + 'version': info.PDFFormatVersion, + 'pageCount': _this2.pdfDocument.numPages, + 'pageSize': pageSize, + 'linearized': isLinearized, + '_currentPageNumber': currentPageNumber, + '_pagesRotation': pagesRotation + }); + + _this2._updateUI(); + + return _this2.pdfDocument.getDownloadInfo(); + }).then(function (_ref5) { + var length = _ref5.length; + _this2.maybeFileSize = length; + return _this2._parseFileSize(length); + }).then(function (fileSize) { + if (fileSize === _this2.fieldData['fileSize']) { + return; + } + + var data = Object.assign(Object.create(null), _this2.fieldData); + data['fileSize'] = fileSize; + freezeFieldData(data); + + _this2._updateUI(); + }); + }); + } + }, { + key: "close", + value: function close() { + this.overlayManager.close(this.overlayName); + } + }, { + key: "setDocument", + value: function setDocument(pdfDocument) { + var url = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + + if (this.pdfDocument) { + this._reset(); + + this._updateUI(true); + } + + if (!pdfDocument) { + return; + } + + this.pdfDocument = pdfDocument; + this.url = url; + + this._dataAvailableCapability.resolve(); + } + }, { + key: "setFileSize", + value: function setFileSize(fileSize) { + if (Number.isInteger(fileSize) && fileSize > 0) { + this.maybeFileSize = fileSize; + } + } + }, { + key: "_reset", + value: function _reset() { + this.pdfDocument = null; + this.url = null; + this.maybeFileSize = 0; + delete this.fieldData; + this._dataAvailableCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._currentPageNumber = 1; + this._pagesRotation = 0; + } + }, { + key: "_updateUI", + value: function _updateUI() { + var reset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + + if (reset || !this.fieldData) { + for (var id in this.fields) { + this.fields[id].textContent = DEFAULT_FIELD_CONTENT; + } + + return; + } + + if (this.overlayManager.active !== this.overlayName) { + return; + } + + for (var _id in this.fields) { + var content = this.fieldData[_id]; + this.fields[_id].textContent = content || content === 0 ? content : DEFAULT_FIELD_CONTENT; + } + } + }, { + key: "_parseFileSize", + value: function () { + var _parseFileSize2 = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee() { + var fileSize, + kb, + _args = arguments; + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + fileSize = _args.length > 0 && _args[0] !== undefined ? _args[0] : 0; + kb = fileSize / 1024; + + if (kb) { + _context.next = 6; + break; + } + + return _context.abrupt("return", undefined); + + case 6: + if (!(kb < 1024)) { + _context.next = 8; + break; + } + + return _context.abrupt("return", this.l10n.get('document_properties_kb', { + size_kb: (+kb.toPrecision(3)).toLocaleString(), + size_b: fileSize.toLocaleString() + }, '{{size_kb}} KB ({{size_b}} bytes)')); + + case 8: + return _context.abrupt("return", this.l10n.get('document_properties_mb', { + size_mb: (+(kb / 1024).toPrecision(3)).toLocaleString(), + size_b: fileSize.toLocaleString() + }, '{{size_mb}} MB ({{size_b}} bytes)')); + + case 9: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function _parseFileSize() { + return _parseFileSize2.apply(this, arguments); + } + + return _parseFileSize; + }() + }, { + key: "_parsePageSize", + value: function () { + var _parsePageSize2 = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee2(pageSizeInches, pagesRotation) { + var _this3 = this; + + var isPortrait, sizeInches, sizeMillimeters, pageName, name, exactMillimeters, intMillimeters; + return _regenerator["default"].wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + if (pageSizeInches) { + _context2.next = 2; + break; + } + + return _context2.abrupt("return", undefined); + + case 2: + if (pagesRotation % 180 !== 0) { + pageSizeInches = { + width: pageSizeInches.height, + height: pageSizeInches.width + }; + } + + isPortrait = (0, _ui_utils.isPortraitOrientation)(pageSizeInches); + sizeInches = { + width: Math.round(pageSizeInches.width * 100) / 100, + height: Math.round(pageSizeInches.height * 100) / 100 + }; + sizeMillimeters = { + width: Math.round(pageSizeInches.width * 25.4 * 10) / 10, + height: Math.round(pageSizeInches.height * 25.4 * 10) / 10 + }; + pageName = null; + name = getPageName(sizeInches, isPortrait, US_PAGE_NAMES) || getPageName(sizeMillimeters, isPortrait, METRIC_PAGE_NAMES); + + if (!name && !(Number.isInteger(sizeMillimeters.width) && Number.isInteger(sizeMillimeters.height))) { + exactMillimeters = { + width: pageSizeInches.width * 25.4, + height: pageSizeInches.height * 25.4 + }; + intMillimeters = { + width: Math.round(sizeMillimeters.width), + height: Math.round(sizeMillimeters.height) + }; + + if (Math.abs(exactMillimeters.width - intMillimeters.width) < 0.1 && Math.abs(exactMillimeters.height - intMillimeters.height) < 0.1) { + name = getPageName(intMillimeters, isPortrait, METRIC_PAGE_NAMES); + + if (name) { + sizeInches = { + width: Math.round(intMillimeters.width / 25.4 * 100) / 100, + height: Math.round(intMillimeters.height / 25.4 * 100) / 100 + }; + sizeMillimeters = intMillimeters; + } + } + } + + if (name) { + pageName = this.l10n.get('document_properties_page_size_name_' + name.toLowerCase(), null, name); + } + + return _context2.abrupt("return", Promise.all([this._isNonMetricLocale ? sizeInches : sizeMillimeters, this.l10n.get('document_properties_page_size_unit_' + (this._isNonMetricLocale ? 'inches' : 'millimeters'), null, this._isNonMetricLocale ? 'in' : 'mm'), pageName, this.l10n.get('document_properties_page_size_orientation_' + (isPortrait ? 'portrait' : 'landscape'), null, isPortrait ? 'portrait' : 'landscape')]).then(function (_ref6) { + var _ref7 = _slicedToArray(_ref6, 4), + _ref7$ = _ref7[0], + width = _ref7$.width, + height = _ref7$.height, + unit = _ref7[1], + name = _ref7[2], + orientation = _ref7[3]; + + return _this3.l10n.get('document_properties_page_size_dimension_' + (name ? 'name_' : '') + 'string', { + width: width.toLocaleString(), + height: height.toLocaleString(), + unit: unit, + name: name, + orientation: orientation + }, '{{width}} × {{height}} {{unit}} (' + (name ? '{{name}}, ' : '') + '{{orientation}})'); + })); + + case 11: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + function _parsePageSize(_x, _x2) { + return _parsePageSize2.apply(this, arguments); + } + + return _parsePageSize; + }() + }, { + key: "_parseDate", + value: function () { + var _parseDate2 = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee3(inputDate) { + var dateObject; + return _regenerator["default"].wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + dateObject = _pdfjsLib.PDFDateString.toDateObject(inputDate); + + if (dateObject) { + _context3.next = 3; + break; + } + + return _context3.abrupt("return", undefined); + + case 3: + return _context3.abrupt("return", this.l10n.get('document_properties_date_string', { + date: dateObject.toLocaleDateString(), + time: dateObject.toLocaleTimeString() + }, '{{date}}, {{time}}')); + + case 4: + case "end": + return _context3.stop(); + } + } + }, _callee3, this); + })); + + function _parseDate(_x3) { + return _parseDate2.apply(this, arguments); + } + + return _parseDate; + }() + }, { + key: "_parseLinearization", + value: function _parseLinearization(isLinearized) { + return this.l10n.get('document_properties_linearized_' + (isLinearized ? 'yes' : 'no'), null, isLinearized ? 'Yes' : 'No'); + } + }]); + + return PDFDocumentProperties; +}(); + +exports.PDFDocumentProperties = PDFDocumentProperties; + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFFindBar = void 0; + +var _ui_utils = __webpack_require__(5); + +var _pdf_find_controller = __webpack_require__(18); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var MATCHES_COUNT_LIMIT = 1000; + +var PDFFindBar = +/*#__PURE__*/ +function () { + function PDFFindBar(options) { + var _this = this; + + var eventBus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (0, _ui_utils.getGlobalEventBus)(); + var l10n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _ui_utils.NullL10n; + + _classCallCheck(this, PDFFindBar); + + this.opened = false; + this.bar = options.bar || null; + this.toggleButton = options.toggleButton || null; + this.findField = options.findField || null; + this.highlightAll = options.highlightAllCheckbox || null; + this.caseSensitive = options.caseSensitiveCheckbox || null; + this.entireWord = options.entireWordCheckbox || null; + this.findMsg = options.findMsg || null; + this.findResultsCount = options.findResultsCount || null; + this.findPreviousButton = options.findPreviousButton || null; + this.findNextButton = options.findNextButton || null; + this.eventBus = eventBus; + this.l10n = l10n; + this.toggleButton.addEventListener('click', function () { + _this.toggle(); + }); + this.findField.addEventListener('input', function () { + _this.dispatchEvent(''); + }); + this.bar.addEventListener('keydown', function (e) { + switch (e.keyCode) { + case 13: + if (e.target === _this.findField) { + _this.dispatchEvent('again', e.shiftKey); + } + + break; + + case 27: + _this.close(); + + break; + } + }); + this.findPreviousButton.addEventListener('click', function () { + _this.dispatchEvent('again', true); + }); + this.findNextButton.addEventListener('click', function () { + _this.dispatchEvent('again', false); + }); + this.highlightAll.addEventListener('click', function () { + _this.dispatchEvent('highlightallchange'); + }); + this.caseSensitive.addEventListener('click', function () { + _this.dispatchEvent('casesensitivitychange'); + }); + this.entireWord.addEventListener('click', function () { + _this.dispatchEvent('entirewordchange'); + }); + this.eventBus.on('resize', this._adjustWidth.bind(this)); + } + + _createClass(PDFFindBar, [{ + key: "reset", + value: function reset() { + this.updateUIState(); + } + }, { + key: "dispatchEvent", + value: function dispatchEvent(type, findPrev) { + this.eventBus.dispatch('find', { + source: this, + type: type, + query: this.findField.value, + phraseSearch: true, + caseSensitive: this.caseSensitive.checked, + entireWord: this.entireWord.checked, + highlightAll: this.highlightAll.checked, + findPrevious: findPrev + }); + } + }, { + key: "updateUIState", + value: function updateUIState(state, previous, matchesCount) { + var _this2 = this; + + var notFound = false; + var findMsg = ''; + var status = ''; + + switch (state) { + case _pdf_find_controller.FindState.FOUND: + break; + + case _pdf_find_controller.FindState.PENDING: + status = 'pending'; + break; + + case _pdf_find_controller.FindState.NOT_FOUND: + findMsg = this.l10n.get('find_not_found', null, 'Phrase not found'); + notFound = true; + break; + + case _pdf_find_controller.FindState.WRAPPED: + if (previous) { + findMsg = this.l10n.get('find_reached_top', null, 'Reached top of document, continued from bottom'); + } else { + findMsg = this.l10n.get('find_reached_bottom', null, 'Reached end of document, continued from top'); + } + + break; + } + + this.findField.classList.toggle('notFound', notFound); + this.findField.setAttribute('data-status', status); + Promise.resolve(findMsg).then(function (msg) { + _this2.findMsg.textContent = msg; + + _this2._adjustWidth(); + }); + this.updateResultsCount(matchesCount); + } + }, { + key: "updateResultsCount", + value: function updateResultsCount() { + var _this3 = this; + + var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref$current = _ref.current, + current = _ref$current === void 0 ? 0 : _ref$current, + _ref$total = _ref.total, + total = _ref$total === void 0 ? 0 : _ref$total; + + if (!this.findResultsCount) { + return; + } + + var matchesCountMsg = '', + limit = MATCHES_COUNT_LIMIT; + + if (total > 0) { + if (total > limit) { + matchesCountMsg = this.l10n.get('find_match_count_limit', { + limit: limit + }, 'More than {{limit}} match' + (limit !== 1 ? 'es' : '')); + } else { + matchesCountMsg = this.l10n.get('find_match_count', { + current: current, + total: total + }, '{{current}} of {{total}} match' + (total !== 1 ? 'es' : '')); + } + } + + Promise.resolve(matchesCountMsg).then(function (msg) { + _this3.findResultsCount.textContent = msg; + + _this3.findResultsCount.classList.toggle('hidden', !total); + + _this3._adjustWidth(); + }); + } + }, { + key: "open", + value: function open() { + if (!this.opened) { + this.opened = true; + this.toggleButton.classList.add('toggled'); + this.bar.classList.remove('hidden'); + } + + this.findField.select(); + this.findField.focus(); + + this._adjustWidth(); + } + }, { + key: "close", + value: function close() { + if (!this.opened) { + return; + } + + this.opened = false; + this.toggleButton.classList.remove('toggled'); + this.bar.classList.add('hidden'); + this.eventBus.dispatch('findbarclose', { + source: this + }); + } + }, { + key: "toggle", + value: function toggle() { + if (this.opened) { + this.close(); + } else { + this.open(); + } + } + }, { + key: "_adjustWidth", + value: function _adjustWidth() { + if (!this.opened) { + return; + } + + this.bar.classList.remove('wrapContainers'); + var findbarHeight = this.bar.clientHeight; + var inputContainerHeight = this.bar.firstElementChild.clientHeight; + + if (findbarHeight > inputContainerHeight) { + this.bar.classList.add('wrapContainers'); + } + } + }]); + + return PDFFindBar; +}(); + +exports.PDFFindBar = PDFFindBar; + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFFindController = exports.FindState = void 0; + +var _ui_utils = __webpack_require__(5); + +var _pdfjsLib = __webpack_require__(7); + +var _pdf_find_utils = __webpack_require__(19); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var FindState = { + FOUND: 0, + NOT_FOUND: 1, + WRAPPED: 2, + PENDING: 3 +}; +exports.FindState = FindState; +var FIND_TIMEOUT = 250; +var MATCH_SCROLL_OFFSET_TOP = -50; +var MATCH_SCROLL_OFFSET_LEFT = -400; +var CHARACTERS_TO_NORMALIZE = { + "\u2018": '\'', + "\u2019": '\'', + "\u201A": '\'', + "\u201B": '\'', + "\u201C": '"', + "\u201D": '"', + "\u201E": '"', + "\u201F": '"', + "\xBC": '1/4', + "\xBD": '1/2', + "\xBE": '3/4' +}; +var normalizationRegex = null; + +function normalize(text) { + if (!normalizationRegex) { + var replace = Object.keys(CHARACTERS_TO_NORMALIZE).join(''); + normalizationRegex = new RegExp("[".concat(replace, "]"), 'g'); + } + + return text.replace(normalizationRegex, function (ch) { + return CHARACTERS_TO_NORMALIZE[ch]; + }); +} + +var PDFFindController = +/*#__PURE__*/ +function () { + function PDFFindController(_ref) { + var linkService = _ref.linkService, + _ref$eventBus = _ref.eventBus, + eventBus = _ref$eventBus === void 0 ? (0, _ui_utils.getGlobalEventBus)() : _ref$eventBus; + + _classCallCheck(this, PDFFindController); + + this._linkService = linkService; + this._eventBus = eventBus; + + this._reset(); + + eventBus.on('findbarclose', this._onFindBarClose.bind(this)); + } + + _createClass(PDFFindController, [{ + key: "setDocument", + value: function setDocument(pdfDocument) { + if (this._pdfDocument) { + this._reset(); + } + + if (!pdfDocument) { + return; + } + + this._pdfDocument = pdfDocument; + + this._firstPageCapability.resolve(); + } + }, { + key: "executeCommand", + value: function executeCommand(cmd, state) { + var _this = this; + + if (!state) { + return; + } + + var pdfDocument = this._pdfDocument; + + if (this._state === null || this._shouldDirtyMatch(cmd, state)) { + this._dirtyMatch = true; + } + + this._state = state; + + if (cmd !== 'findhighlightallchange') { + this._updateUIState(FindState.PENDING); + } + + this._firstPageCapability.promise.then(function () { + if (!_this._pdfDocument || pdfDocument && _this._pdfDocument !== pdfDocument) { + return; + } + + _this._extractText(); + + var findbarClosed = !_this._highlightMatches; + var pendingTimeout = !!_this._findTimeout; + + if (_this._findTimeout) { + clearTimeout(_this._findTimeout); + _this._findTimeout = null; + } + + if (cmd === 'find') { + _this._findTimeout = setTimeout(function () { + _this._nextMatch(); + + _this._findTimeout = null; + }, FIND_TIMEOUT); + } else if (_this._dirtyMatch) { + _this._nextMatch(); + } else if (cmd === 'findagain') { + _this._nextMatch(); + + if (findbarClosed && _this._state.highlightAll) { + _this._updateAllPages(); + } + } else if (cmd === 'findhighlightallchange') { + if (pendingTimeout) { + _this._nextMatch(); + } else { + _this._highlightMatches = true; + } + + _this._updateAllPages(); + } else { + _this._nextMatch(); + } + }); + } + }, { + key: "scrollMatchIntoView", + value: function scrollMatchIntoView(_ref2) { + var _ref2$element = _ref2.element, + element = _ref2$element === void 0 ? null : _ref2$element, + _ref2$pageIndex = _ref2.pageIndex, + pageIndex = _ref2$pageIndex === void 0 ? -1 : _ref2$pageIndex, + _ref2$matchIndex = _ref2.matchIndex, + matchIndex = _ref2$matchIndex === void 0 ? -1 : _ref2$matchIndex; + + if (!this._scrollMatches || !element) { + return; + } else if (matchIndex === -1 || matchIndex !== this._selected.matchIdx) { + return; + } else if (pageIndex === -1 || pageIndex !== this._selected.pageIdx) { + return; + } + + this._scrollMatches = false; + var spot = { + top: MATCH_SCROLL_OFFSET_TOP, + left: MATCH_SCROLL_OFFSET_LEFT + }; + (0, _ui_utils.scrollIntoView)(element, spot, true); + } + }, { + key: "_reset", + value: function _reset() { + this._highlightMatches = false; + this._scrollMatches = false; + this._pdfDocument = null; + this._pageMatches = []; + this._pageMatchesLength = []; + this._state = null; + this._selected = { + pageIdx: -1, + matchIdx: -1 + }; + this._offset = { + pageIdx: null, + matchIdx: null, + wrapped: false + }; + this._extractTextPromises = []; + this._pageContents = []; + this._matchesCountTotal = 0; + this._pagesToSearch = null; + this._pendingFindMatches = Object.create(null); + this._resumePageIdx = null; + this._dirtyMatch = false; + clearTimeout(this._findTimeout); + this._findTimeout = null; + this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)(); + } + }, { + key: "_shouldDirtyMatch", + value: function _shouldDirtyMatch(cmd, state) { + if (state.query !== this._state.query) { + return true; + } + + switch (cmd) { + case 'findagain': + var pageNumber = this._selected.pageIdx + 1; + var linkService = this._linkService; + + if (pageNumber >= 1 && pageNumber <= linkService.pagesCount && pageNumber !== linkService.page && !linkService.isPageVisible(pageNumber)) { + return true; + } + + return false; + + case 'findhighlightallchange': + return false; + } + + return true; + } + }, { + key: "_prepareMatches", + value: function _prepareMatches(matchesWithLength, matches, matchesLength) { + function isSubTerm(matchesWithLength, currentIndex) { + var currentElem = matchesWithLength[currentIndex]; + var nextElem = matchesWithLength[currentIndex + 1]; + + if (currentIndex < matchesWithLength.length - 1 && currentElem.match === nextElem.match) { + currentElem.skipped = true; + return true; + } + + for (var i = currentIndex - 1; i >= 0; i--) { + var prevElem = matchesWithLength[i]; + + if (prevElem.skipped) { + continue; + } + + if (prevElem.match + prevElem.matchLength < currentElem.match) { + break; + } + + if (prevElem.match + prevElem.matchLength >= currentElem.match + currentElem.matchLength) { + currentElem.skipped = true; + return true; + } + } + + return false; + } + + matchesWithLength.sort(function (a, b) { + return a.match === b.match ? a.matchLength - b.matchLength : a.match - b.match; + }); + + for (var i = 0, len = matchesWithLength.length; i < len; i++) { + if (isSubTerm(matchesWithLength, i)) { + continue; + } + + matches.push(matchesWithLength[i].match); + matchesLength.push(matchesWithLength[i].matchLength); + } + } + }, { + key: "_isEntireWord", + value: function _isEntireWord(content, startIdx, length) { + if (startIdx > 0) { + var first = content.charCodeAt(startIdx); + var limit = content.charCodeAt(startIdx - 1); + + if ((0, _pdf_find_utils.getCharacterType)(first) === (0, _pdf_find_utils.getCharacterType)(limit)) { + return false; + } + } + + var endIdx = startIdx + length - 1; + + if (endIdx < content.length - 1) { + var last = content.charCodeAt(endIdx); + + var _limit = content.charCodeAt(endIdx + 1); + + if ((0, _pdf_find_utils.getCharacterType)(last) === (0, _pdf_find_utils.getCharacterType)(_limit)) { + return false; + } + } + + return true; + } + }, { + key: "_calculatePhraseMatch", + value: function _calculatePhraseMatch(query, pageIndex, pageContent, entireWord) { + var matches = []; + var queryLen = query.length; + var matchIdx = -queryLen; + + while (true) { + matchIdx = pageContent.indexOf(query, matchIdx + queryLen); + + if (matchIdx === -1) { + break; + } + + if (entireWord && !this._isEntireWord(pageContent, matchIdx, queryLen)) { + continue; + } + + matches.push(matchIdx); + } + + this._pageMatches[pageIndex] = matches; + } + }, { + key: "_calculateWordMatch", + value: function _calculateWordMatch(query, pageIndex, pageContent, entireWord) { + var matchesWithLength = []; + var queryArray = query.match(/\S+/g); + + for (var i = 0, len = queryArray.length; i < len; i++) { + var subquery = queryArray[i]; + var subqueryLen = subquery.length; + var matchIdx = -subqueryLen; + + while (true) { + matchIdx = pageContent.indexOf(subquery, matchIdx + subqueryLen); + + if (matchIdx === -1) { + break; + } + + if (entireWord && !this._isEntireWord(pageContent, matchIdx, subqueryLen)) { + continue; + } + + matchesWithLength.push({ + match: matchIdx, + matchLength: subqueryLen, + skipped: false + }); + } + } + + this._pageMatchesLength[pageIndex] = []; + this._pageMatches[pageIndex] = []; + + this._prepareMatches(matchesWithLength, this._pageMatches[pageIndex], this._pageMatchesLength[pageIndex]); + } + }, { + key: "_calculateMatch", + value: function _calculateMatch(pageIndex) { + var pageContent = this._pageContents[pageIndex]; + var query = this._query; + var _this$_state = this._state, + caseSensitive = _this$_state.caseSensitive, + entireWord = _this$_state.entireWord, + phraseSearch = _this$_state.phraseSearch; + + if (query.length === 0) { + return; + } + + if (!caseSensitive) { + pageContent = pageContent.toLowerCase(); + query = query.toLowerCase(); + } + + if (phraseSearch) { + this._calculatePhraseMatch(query, pageIndex, pageContent, entireWord); + } else { + this._calculateWordMatch(query, pageIndex, pageContent, entireWord); + } + + if (this._state.highlightAll) { + this._updatePage(pageIndex); + } + + if (this._resumePageIdx === pageIndex) { + this._resumePageIdx = null; + + this._nextPageMatch(); + } + + var pageMatchesCount = this._pageMatches[pageIndex].length; + + if (pageMatchesCount > 0) { + this._matchesCountTotal += pageMatchesCount; + + this._updateUIResultsCount(); + } + } + }, { + key: "_extractText", + value: function _extractText() { + var _this2 = this; + + if (this._extractTextPromises.length > 0) { + return; + } + + var promise = Promise.resolve(); + + var _loop = function _loop(i, ii) { + var extractTextCapability = (0, _pdfjsLib.createPromiseCapability)(); + _this2._extractTextPromises[i] = extractTextCapability.promise; + promise = promise.then(function () { + return _this2._pdfDocument.getPage(i + 1).then(function (pdfPage) { + return pdfPage.getTextContent({ + normalizeWhitespace: true + }); + }).then(function (textContent) { + var textItems = textContent.items; + var strBuf = []; + + for (var j = 0, jj = textItems.length; j < jj; j++) { + strBuf.push(textItems[j].str); + } + + _this2._pageContents[i] = normalize(strBuf.join('')); + extractTextCapability.resolve(i); + }, function (reason) { + console.error("Unable to get text content for page ".concat(i + 1), reason); + _this2._pageContents[i] = ''; + extractTextCapability.resolve(i); + }); + }); + }; + + for (var i = 0, ii = this._linkService.pagesCount; i < ii; i++) { + _loop(i, ii); + } + } + }, { + key: "_updatePage", + value: function _updatePage(index) { + if (this._scrollMatches && this._selected.pageIdx === index) { + this._linkService.page = index + 1; + } + + this._eventBus.dispatch('updatetextlayermatches', { + source: this, + pageIndex: index + }); + } + }, { + key: "_updateAllPages", + value: function _updateAllPages() { + this._eventBus.dispatch('updatetextlayermatches', { + source: this, + pageIndex: -1 + }); + } + }, { + key: "_nextMatch", + value: function _nextMatch() { + var _this3 = this; + + var previous = this._state.findPrevious; + var currentPageIndex = this._linkService.page - 1; + var numPages = this._linkService.pagesCount; + this._highlightMatches = true; + + if (this._dirtyMatch) { + this._dirtyMatch = false; + this._selected.pageIdx = this._selected.matchIdx = -1; + this._offset.pageIdx = currentPageIndex; + this._offset.matchIdx = null; + this._offset.wrapped = false; + this._resumePageIdx = null; + this._pageMatches.length = 0; + this._pageMatchesLength.length = 0; + this._matchesCountTotal = 0; + + this._updateAllPages(); + + for (var i = 0; i < numPages; i++) { + if (this._pendingFindMatches[i] === true) { + continue; + } + + this._pendingFindMatches[i] = true; + + this._extractTextPromises[i].then(function (pageIdx) { + delete _this3._pendingFindMatches[pageIdx]; + + _this3._calculateMatch(pageIdx); + }); + } + } + + if (this._query === '') { + this._updateUIState(FindState.FOUND); + + return; + } + + if (this._resumePageIdx) { + return; + } + + var offset = this._offset; + this._pagesToSearch = numPages; + + if (offset.matchIdx !== null) { + var numPageMatches = this._pageMatches[offset.pageIdx].length; + + if (!previous && offset.matchIdx + 1 < numPageMatches || previous && offset.matchIdx > 0) { + offset.matchIdx = previous ? offset.matchIdx - 1 : offset.matchIdx + 1; + + this._updateMatch(true); + + return; + } + + this._advanceOffsetPage(previous); + } + + this._nextPageMatch(); + } + }, { + key: "_matchesReady", + value: function _matchesReady(matches) { + var offset = this._offset; + var numMatches = matches.length; + var previous = this._state.findPrevious; + + if (numMatches) { + offset.matchIdx = previous ? numMatches - 1 : 0; + + this._updateMatch(true); + + return true; + } + + this._advanceOffsetPage(previous); + + if (offset.wrapped) { + offset.matchIdx = null; + + if (this._pagesToSearch < 0) { + this._updateMatch(false); + + return true; + } + } + + return false; + } + }, { + key: "_nextPageMatch", + value: function _nextPageMatch() { + if (this._resumePageIdx !== null) { + console.error('There can only be one pending page.'); + } + + var matches = null; + + do { + var pageIdx = this._offset.pageIdx; + matches = this._pageMatches[pageIdx]; + + if (!matches) { + this._resumePageIdx = pageIdx; + break; + } + } while (!this._matchesReady(matches)); + } + }, { + key: "_advanceOffsetPage", + value: function _advanceOffsetPage(previous) { + var offset = this._offset; + var numPages = this._linkService.pagesCount; + offset.pageIdx = previous ? offset.pageIdx - 1 : offset.pageIdx + 1; + offset.matchIdx = null; + this._pagesToSearch--; + + if (offset.pageIdx >= numPages || offset.pageIdx < 0) { + offset.pageIdx = previous ? numPages - 1 : 0; + offset.wrapped = true; + } + } + }, { + key: "_updateMatch", + value: function _updateMatch() { + var found = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + var state = FindState.NOT_FOUND; + var wrapped = this._offset.wrapped; + this._offset.wrapped = false; + + if (found) { + var previousPage = this._selected.pageIdx; + this._selected.pageIdx = this._offset.pageIdx; + this._selected.matchIdx = this._offset.matchIdx; + state = wrapped ? FindState.WRAPPED : FindState.FOUND; + + if (previousPage !== -1 && previousPage !== this._selected.pageIdx) { + this._updatePage(previousPage); + } + } + + this._updateUIState(state, this._state.findPrevious); + + if (this._selected.pageIdx !== -1) { + this._scrollMatches = true; + + this._updatePage(this._selected.pageIdx); + } + } + }, { + key: "_onFindBarClose", + value: function _onFindBarClose(evt) { + var _this4 = this; + + var pdfDocument = this._pdfDocument; + + this._firstPageCapability.promise.then(function () { + if (!_this4._pdfDocument || pdfDocument && _this4._pdfDocument !== pdfDocument) { + return; + } + + if (_this4._findTimeout) { + clearTimeout(_this4._findTimeout); + _this4._findTimeout = null; + } + + if (_this4._resumePageIdx) { + _this4._resumePageIdx = null; + _this4._dirtyMatch = true; + } + + _this4._updateUIState(FindState.FOUND); + + _this4._highlightMatches = false; + + _this4._updateAllPages(); + }); + } + }, { + key: "_requestMatchesCount", + value: function _requestMatchesCount() { + var _this$_selected = this._selected, + pageIdx = _this$_selected.pageIdx, + matchIdx = _this$_selected.matchIdx; + var current = 0, + total = this._matchesCountTotal; + + if (matchIdx !== -1) { + for (var i = 0; i < pageIdx; i++) { + current += this._pageMatches[i] && this._pageMatches[i].length || 0; + } + + current += matchIdx + 1; + } + + if (current < 1 || current > total) { + current = total = 0; + } + + return { + current: current, + total: total + }; + } + }, { + key: "_updateUIResultsCount", + value: function _updateUIResultsCount() { + this._eventBus.dispatch('updatefindmatchescount', { + source: this, + matchesCount: this._requestMatchesCount() + }); + } + }, { + key: "_updateUIState", + value: function _updateUIState(state, previous) { + this._eventBus.dispatch('updatefindcontrolstate', { + source: this, + state: state, + previous: previous, + matchesCount: this._requestMatchesCount() + }); + } + }, { + key: "highlightMatches", + get: function get() { + return this._highlightMatches; + } + }, { + key: "pageMatches", + get: function get() { + return this._pageMatches; + } + }, { + key: "pageMatchesLength", + get: function get() { + return this._pageMatchesLength; + } + }, { + key: "selected", + get: function get() { + return this._selected; + } + }, { + key: "state", + get: function get() { + return this._state; + } + }, { + key: "_query", + get: function get() { + if (this._state.query !== this._rawQuery) { + this._rawQuery = this._state.query; + this._normalizedQuery = normalize(this._state.query); + } + + return this._normalizedQuery; + } + }]); + + return PDFFindController; +}(); + +exports.PDFFindController = PDFFindController; + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getCharacterType = getCharacterType; +exports.CharacterType = void 0; +var CharacterType = { + SPACE: 0, + ALPHA_LETTER: 1, + PUNCT: 2, + HAN_LETTER: 3, + KATAKANA_LETTER: 4, + HIRAGANA_LETTER: 5, + HALFWIDTH_KATAKANA_LETTER: 6, + THAI_LETTER: 7 +}; +exports.CharacterType = CharacterType; + +function isAlphabeticalScript(charCode) { + return charCode < 0x2E80; +} + +function isAscii(charCode) { + return (charCode & 0xFF80) === 0; +} + +function isAsciiAlpha(charCode) { + return charCode >= 0x61 && charCode <= 0x7A || charCode >= 0x41 && charCode <= 0x5A; +} + +function isAsciiDigit(charCode) { + return charCode >= 0x30 && charCode <= 0x39; +} + +function isAsciiSpace(charCode) { + return charCode === 0x20 || charCode === 0x09 || charCode === 0x0D || charCode === 0x0A; +} + +function isHan(charCode) { + return charCode >= 0x3400 && charCode <= 0x9FFF || charCode >= 0xF900 && charCode <= 0xFAFF; +} + +function isKatakana(charCode) { + return charCode >= 0x30A0 && charCode <= 0x30FF; +} + +function isHiragana(charCode) { + return charCode >= 0x3040 && charCode <= 0x309F; +} + +function isHalfwidthKatakana(charCode) { + return charCode >= 0xFF60 && charCode <= 0xFF9F; +} + +function isThai(charCode) { + return (charCode & 0xFF80) === 0x0E00; +} + +function getCharacterType(charCode) { + if (isAlphabeticalScript(charCode)) { + if (isAscii(charCode)) { + if (isAsciiSpace(charCode)) { + return CharacterType.SPACE; + } else if (isAsciiAlpha(charCode) || isAsciiDigit(charCode) || charCode === 0x5F) { + return CharacterType.ALPHA_LETTER; + } + + return CharacterType.PUNCT; + } else if (isThai(charCode)) { + return CharacterType.THAI_LETTER; + } else if (charCode === 0xA0) { + return CharacterType.SPACE; + } + + return CharacterType.ALPHA_LETTER; + } + + if (isHan(charCode)) { + return CharacterType.HAN_LETTER; + } else if (isKatakana(charCode)) { + return CharacterType.KATAKANA_LETTER; + } else if (isHiragana(charCode)) { + return CharacterType.HIRAGANA_LETTER; + } else if (isHalfwidthKatakana(charCode)) { + return CharacterType.HALFWIDTH_KATAKANA_LETTER; + } + + return CharacterType.ALPHA_LETTER; +} + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isDestHashesEqual = isDestHashesEqual; +exports.isDestArraysEqual = isDestArraysEqual; +exports.PDFHistory = void 0; + +var _ui_utils = __webpack_require__(5); + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } + +function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var HASH_CHANGE_TIMEOUT = 1000; +var POSITION_UPDATED_THRESHOLD = 50; +var UPDATE_VIEWAREA_TIMEOUT = 1000; + +function getCurrentHash() { + return document.location.hash; +} + +function parseCurrentHash(linkService) { + var hash = unescape(getCurrentHash()).substring(1); + var params = (0, _ui_utils.parseQueryString)(hash); + var page = params.page | 0; + + if (!(Number.isInteger(page) && page > 0 && page <= linkService.pagesCount)) { + page = null; + } + + return { + hash: hash, + page: page, + rotation: linkService.rotation + }; +} + +var PDFHistory = +/*#__PURE__*/ +function () { + function PDFHistory(_ref) { + var _this = this; + + var linkService = _ref.linkService, + eventBus = _ref.eventBus; + + _classCallCheck(this, PDFHistory); + + this.linkService = linkService; + this.eventBus = eventBus || (0, _ui_utils.getGlobalEventBus)(); + this.initialized = false; + this.initialBookmark = null; + this.initialRotation = null; + this._boundEvents = Object.create(null); + this._isViewerInPresentationMode = false; + this._isPagesLoaded = false; + this.eventBus.on('presentationmodechanged', function (evt) { + _this._isViewerInPresentationMode = evt.active || evt.switchInProgress; + }); + this.eventBus.on('pagesloaded', function (evt) { + _this._isPagesLoaded = !!evt.pagesCount; + }); + } + + _createClass(PDFHistory, [{ + key: "initialize", + value: function initialize(_ref2) { + var fingerprint = _ref2.fingerprint, + _ref2$resetHistory = _ref2.resetHistory, + resetHistory = _ref2$resetHistory === void 0 ? false : _ref2$resetHistory, + _ref2$updateUrl = _ref2.updateUrl, + updateUrl = _ref2$updateUrl === void 0 ? false : _ref2$updateUrl; + + if (!fingerprint || typeof fingerprint !== 'string') { + console.error('PDFHistory.initialize: The "fingerprint" must be a non-empty string.'); + return; + } + + var reInitialized = this.initialized && this.fingerprint !== fingerprint; + this.fingerprint = fingerprint; + this._updateUrl = updateUrl === true; + + if (!this.initialized) { + this._bindEvents(); + } + + var state = window.history.state; + this.initialized = true; + this.initialBookmark = null; + this.initialRotation = null; + this._popStateInProgress = false; + this._blockHashChange = 0; + this._currentHash = getCurrentHash(); + this._numPositionUpdates = 0; + this._uid = this._maxUid = 0; + this._destination = null; + this._position = null; + + if (!this._isValidState(state, true) || resetHistory) { + var _parseCurrentHash = parseCurrentHash(this.linkService), + hash = _parseCurrentHash.hash, + page = _parseCurrentHash.page, + rotation = _parseCurrentHash.rotation; + + if (!hash || reInitialized || resetHistory) { + this._pushOrReplaceState(null, true); + + return; + } + + this._pushOrReplaceState({ + hash: hash, + page: page, + rotation: rotation + }, true); + + return; + } + + var destination = state.destination; + + this._updateInternalState(destination, state.uid, true); + + if (this._uid > this._maxUid) { + this._maxUid = this._uid; + } + + if (destination.rotation !== undefined) { + this.initialRotation = destination.rotation; + } + + if (destination.dest) { + this.initialBookmark = JSON.stringify(destination.dest); + this._destination.page = null; + } else if (destination.hash) { + this.initialBookmark = destination.hash; + } else if (destination.page) { + this.initialBookmark = "page=".concat(destination.page); + } + } + }, { + key: "push", + value: function push(_ref3) { + var _this2 = this; + + var _ref3$namedDest = _ref3.namedDest, + namedDest = _ref3$namedDest === void 0 ? null : _ref3$namedDest, + explicitDest = _ref3.explicitDest, + pageNumber = _ref3.pageNumber; + + if (!this.initialized) { + return; + } + + if (namedDest && typeof namedDest !== 'string') { + console.error('PDFHistory.push: ' + "\"".concat(namedDest, "\" is not a valid namedDest parameter.")); + return; + } else if (!Array.isArray(explicitDest)) { + console.error('PDFHistory.push: ' + "\"".concat(explicitDest, "\" is not a valid explicitDest parameter.")); + return; + } else if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.linkService.pagesCount)) { + if (pageNumber !== null || this._destination) { + console.error('PDFHistory.push: ' + "\"".concat(pageNumber, "\" is not a valid pageNumber parameter.")); + return; + } + } + + var hash = namedDest || JSON.stringify(explicitDest); + + if (!hash) { + return; + } + + var forceReplace = false; + + if (this._destination && (isDestHashesEqual(this._destination.hash, hash) || isDestArraysEqual(this._destination.dest, explicitDest))) { + if (this._destination.page) { + return; + } + + forceReplace = true; + } + + if (this._popStateInProgress && !forceReplace) { + return; + } + + this._pushOrReplaceState({ + dest: explicitDest, + hash: hash, + page: pageNumber, + rotation: this.linkService.rotation + }, forceReplace); + + if (!this._popStateInProgress) { + this._popStateInProgress = true; + Promise.resolve().then(function () { + _this2._popStateInProgress = false; + }); + } + } + }, { + key: "pushCurrentPosition", + value: function pushCurrentPosition() { + if (!this.initialized || this._popStateInProgress) { + return; + } + + this._tryPushCurrentPosition(); + } + }, { + key: "back", + value: function back() { + if (!this.initialized || this._popStateInProgress) { + return; + } + + var state = window.history.state; + + if (this._isValidState(state) && state.uid > 0) { + window.history.back(); + } + } + }, { + key: "forward", + value: function forward() { + if (!this.initialized || this._popStateInProgress) { + return; + } + + var state = window.history.state; + + if (this._isValidState(state) && state.uid < this._maxUid) { + window.history.forward(); + } + } + }, { + key: "_pushOrReplaceState", + value: function _pushOrReplaceState(destination) { + var forceReplace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var shouldReplace = forceReplace || !this._destination; + var newState = { + fingerprint: this.fingerprint, + uid: shouldReplace ? this._uid : this._uid + 1, + destination: destination + }; + + this._updateInternalState(destination, newState.uid); + + var newUrl; + + if (this._updateUrl && destination && destination.hash) { + var baseUrl = document.location.href.split('#')[0]; + + if (!baseUrl.startsWith('file://')) { + newUrl = "".concat(baseUrl, "#").concat(destination.hash); + } + } + + if (shouldReplace) { + if (newUrl) { + window.history.replaceState(newState, '', newUrl); + } else { + window.history.replaceState(newState, ''); + } + } else { + this._maxUid = this._uid; + + if (newUrl) { + window.history.pushState(newState, '', newUrl); + } else { + window.history.pushState(newState, ''); + } + } + } + }, { + key: "_tryPushCurrentPosition", + value: function _tryPushCurrentPosition() { + var temporary = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + + if (!this._position) { + return; + } + + var position = this._position; + + if (temporary) { + position = Object.assign(Object.create(null), this._position); + position.temporary = true; + } + + if (!this._destination) { + this._pushOrReplaceState(position); + + return; + } + + if (this._destination.temporary) { + this._pushOrReplaceState(position, true); + + return; + } + + if (this._destination.hash === position.hash) { + return; + } + + if (!this._destination.page && (POSITION_UPDATED_THRESHOLD <= 0 || this._numPositionUpdates <= POSITION_UPDATED_THRESHOLD)) { + return; + } + + var forceReplace = false; + + if (this._destination.page >= position.first && this._destination.page <= position.page) { + if (this._destination.dest || !this._destination.first) { + return; + } + + forceReplace = true; + } + + this._pushOrReplaceState(position, forceReplace); + } + }, { + key: "_isValidState", + value: function _isValidState(state) { + var checkReload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + if (!state) { + return false; + } + + if (state.fingerprint !== this.fingerprint) { + if (checkReload) { + if (typeof state.fingerprint !== 'string' || state.fingerprint.length !== this.fingerprint.length) { + return false; + } + + var _performance$getEntri = performance.getEntriesByType('navigation'), + _performance$getEntri2 = _slicedToArray(_performance$getEntri, 1), + perfEntry = _performance$getEntri2[0]; + + if (!perfEntry || perfEntry.type !== 'reload') { + return false; + } + } else { + return false; + } + } + + if (!Number.isInteger(state.uid) || state.uid < 0) { + return false; + } + + if (state.destination === null || _typeof(state.destination) !== 'object') { + return false; + } + + return true; + } + }, { + key: "_updateInternalState", + value: function _updateInternalState(destination, uid) { + var removeTemporary = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + if (this._updateViewareaTimeout) { + clearTimeout(this._updateViewareaTimeout); + this._updateViewareaTimeout = null; + } + + if (removeTemporary && destination && destination.temporary) { + delete destination.temporary; + } + + this._destination = destination; + this._uid = uid; + this._numPositionUpdates = 0; + } + }, { + key: "_updateViewarea", + value: function _updateViewarea(_ref4) { + var _this3 = this; + + var location = _ref4.location; + + if (this._updateViewareaTimeout) { + clearTimeout(this._updateViewareaTimeout); + this._updateViewareaTimeout = null; + } + + this._position = { + hash: this._isViewerInPresentationMode ? "page=".concat(location.pageNumber) : location.pdfOpenParams.substring(1), + page: this.linkService.page, + first: location.pageNumber, + rotation: location.rotation + }; + + if (this._popStateInProgress) { + return; + } + + if (POSITION_UPDATED_THRESHOLD > 0 && this._isPagesLoaded && this._destination && !this._destination.page) { + this._numPositionUpdates++; + } + + if (UPDATE_VIEWAREA_TIMEOUT > 0) { + this._updateViewareaTimeout = setTimeout(function () { + if (!_this3._popStateInProgress) { + _this3._tryPushCurrentPosition(true); + } + + _this3._updateViewareaTimeout = null; + }, UPDATE_VIEWAREA_TIMEOUT); + } + } + }, { + key: "_popState", + value: function _popState(_ref5) { + var _this4 = this; + + var state = _ref5.state; + var newHash = getCurrentHash(), + hashChanged = this._currentHash !== newHash; + this._currentHash = newHash; + + if (!state || false) { + this._uid++; + + var _parseCurrentHash2 = parseCurrentHash(this.linkService), + hash = _parseCurrentHash2.hash, + page = _parseCurrentHash2.page, + rotation = _parseCurrentHash2.rotation; + + this._pushOrReplaceState({ + hash: hash, + page: page, + rotation: rotation + }, true); + + return; + } + + if (!this._isValidState(state)) { + return; + } + + this._popStateInProgress = true; + + if (hashChanged) { + this._blockHashChange++; + (0, _ui_utils.waitOnEventOrTimeout)({ + target: window, + name: 'hashchange', + delay: HASH_CHANGE_TIMEOUT + }).then(function () { + _this4._blockHashChange--; + }); + } + + var destination = state.destination; + + this._updateInternalState(destination, state.uid, true); + + if (this._uid > this._maxUid) { + this._maxUid = this._uid; + } + + if ((0, _ui_utils.isValidRotation)(destination.rotation)) { + this.linkService.rotation = destination.rotation; + } + + if (destination.dest) { + this.linkService.navigateTo(destination.dest); + } else if (destination.hash) { + this.linkService.setHash(destination.hash); + } else if (destination.page) { + this.linkService.page = destination.page; + } + + Promise.resolve().then(function () { + _this4._popStateInProgress = false; + }); + } + }, { + key: "_bindEvents", + value: function _bindEvents() { + var _this5 = this; + + var _boundEvents = this._boundEvents, + eventBus = this.eventBus; + _boundEvents.updateViewarea = this._updateViewarea.bind(this); + _boundEvents.popState = this._popState.bind(this); + + _boundEvents.pageHide = function (evt) { + if (!_this5._destination || _this5._destination.temporary) { + _this5._tryPushCurrentPosition(); + } + }; + + eventBus.on('updateviewarea', _boundEvents.updateViewarea); + window.addEventListener('popstate', _boundEvents.popState); + window.addEventListener('pagehide', _boundEvents.pageHide); + } + }, { + key: "popStateInProgress", + get: function get() { + return this.initialized && (this._popStateInProgress || this._blockHashChange > 0); + } + }]); + + return PDFHistory; +}(); + +exports.PDFHistory = PDFHistory; + +function isDestHashesEqual(destHash, pushHash) { + if (typeof destHash !== 'string' || typeof pushHash !== 'string') { + return false; + } + + if (destHash === pushHash) { + return true; + } + + var _parseQueryString = (0, _ui_utils.parseQueryString)(destHash), + nameddest = _parseQueryString.nameddest; + + if (nameddest === pushHash) { + return true; + } + + return false; +} + +function isDestArraysEqual(firstDest, secondDest) { + function isEntryEqual(first, second) { + if (_typeof(first) !== _typeof(second)) { + return false; + } + + if (Array.isArray(first) || Array.isArray(second)) { + return false; + } + + if (first !== null && _typeof(first) === 'object' && second !== null) { + if (Object.keys(first).length !== Object.keys(second).length) { + return false; + } + + for (var key in first) { + if (!isEntryEqual(first[key], second[key])) { + return false; + } + } + + return true; + } + + return first === second || Number.isNaN(first) && Number.isNaN(second); + } + + if (!(Array.isArray(firstDest) && Array.isArray(secondDest))) { + return false; + } + + if (firstDest.length !== secondDest.length) { + return false; + } + + for (var i = 0, ii = firstDest.length; i < ii; i++) { + if (!isEntryEqual(firstDest[i], secondDest[i])) { + return false; + } + } + + return true; +} + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SimpleLinkService = exports.PDFLinkService = void 0; + +var _ui_utils = __webpack_require__(5); + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var PDFLinkService = +/*#__PURE__*/ +function () { + function PDFLinkService() { + var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + eventBus = _ref.eventBus, + _ref$externalLinkTarg = _ref.externalLinkTarget, + externalLinkTarget = _ref$externalLinkTarg === void 0 ? null : _ref$externalLinkTarg, + _ref$externalLinkRel = _ref.externalLinkRel, + externalLinkRel = _ref$externalLinkRel === void 0 ? null : _ref$externalLinkRel; + + _classCallCheck(this, PDFLinkService); + + this.eventBus = eventBus || (0, _ui_utils.getGlobalEventBus)(); + this.externalLinkTarget = externalLinkTarget; + this.externalLinkRel = externalLinkRel; + this.baseUrl = null; + this.pdfDocument = null; + this.pdfViewer = null; + this.pdfHistory = null; + this._pagesRefCache = null; + } + + _createClass(PDFLinkService, [{ + key: "setDocument", + value: function setDocument(pdfDocument) { + var baseUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + this.baseUrl = baseUrl; + this.pdfDocument = pdfDocument; + this._pagesRefCache = Object.create(null); + } + }, { + key: "setViewer", + value: function setViewer(pdfViewer) { + this.pdfViewer = pdfViewer; + } + }, { + key: "setHistory", + value: function setHistory(pdfHistory) { + this.pdfHistory = pdfHistory; + } + }, { + key: "navigateTo", + value: function navigateTo(dest) { + var _this = this; + + var goToDestination = function goToDestination(_ref2) { + var namedDest = _ref2.namedDest, + explicitDest = _ref2.explicitDest; + var destRef = explicitDest[0], + pageNumber; + + if (destRef instanceof Object) { + pageNumber = _this._cachedPageNumber(destRef); + + if (pageNumber === null) { + _this.pdfDocument.getPageIndex(destRef).then(function (pageIndex) { + _this.cachePageRef(pageIndex + 1, destRef); + + goToDestination({ + namedDest: namedDest, + explicitDest: explicitDest + }); + })["catch"](function () { + console.error("PDFLinkService.navigateTo: \"".concat(destRef, "\" is not ") + "a valid page reference, for dest=\"".concat(dest, "\".")); + }); + + return; + } + } else if (Number.isInteger(destRef)) { + pageNumber = destRef + 1; + } else { + console.error("PDFLinkService.navigateTo: \"".concat(destRef, "\" is not ") + "a valid destination reference, for dest=\"".concat(dest, "\".")); + return; + } + + if (!pageNumber || pageNumber < 1 || pageNumber > _this.pagesCount) { + console.error("PDFLinkService.navigateTo: \"".concat(pageNumber, "\" is not ") + "a valid page number, for dest=\"".concat(dest, "\".")); + return; + } + + if (_this.pdfHistory) { + _this.pdfHistory.pushCurrentPosition(); + + _this.pdfHistory.push({ + namedDest: namedDest, + explicitDest: explicitDest, + pageNumber: pageNumber + }); + } + + _this.pdfViewer.scrollPageIntoView({ + pageNumber: pageNumber, + destArray: explicitDest + }); + }; + + new Promise(function (resolve, reject) { + if (typeof dest === 'string') { + _this.pdfDocument.getDestination(dest).then(function (destArray) { + resolve({ + namedDest: dest, + explicitDest: destArray + }); + }); + + return; + } + + resolve({ + namedDest: '', + explicitDest: dest + }); + }).then(function (data) { + if (!Array.isArray(data.explicitDest)) { + console.error("PDFLinkService.navigateTo: \"".concat(data.explicitDest, "\" is") + " not a valid destination array, for dest=\"".concat(dest, "\".")); + return; + } + + goToDestination(data); + }); + } + }, { + key: "getDestinationHash", + value: function getDestinationHash(dest) { + if (typeof dest === 'string') { + return this.getAnchorUrl('#' + escape(dest)); + } + + if (Array.isArray(dest)) { + var str = JSON.stringify(dest); + return this.getAnchorUrl('#' + escape(str)); + } + + return this.getAnchorUrl(''); + } + }, { + key: "getAnchorUrl", + value: function getAnchorUrl(anchor) { + return (this.baseUrl || '') + anchor; + } + }, { + key: "setHash", + value: function setHash(hash) { + var pageNumber, dest; + + if (hash.includes('=')) { + var params = (0, _ui_utils.parseQueryString)(hash); + + if ('search' in params) { + this.eventBus.dispatch('findfromurlhash', { + source: this, + query: params['search'].replace(/"/g, ''), + phraseSearch: params['phrase'] === 'true' + }); + } + + if ('nameddest' in params) { + this.navigateTo(params.nameddest); + return; + } + + if ('page' in params) { + pageNumber = params.page | 0 || 1; + } + + if ('zoom' in params) { + var zoomArgs = params.zoom.split(','); + var zoomArg = zoomArgs[0]; + var zoomArgNumber = parseFloat(zoomArg); + + if (!zoomArg.includes('Fit')) { + dest = [null, { + name: 'XYZ' + }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null, zoomArgs.length > 2 ? zoomArgs[2] | 0 : null, zoomArgNumber ? zoomArgNumber / 100 : zoomArg]; + } else { + if (zoomArg === 'Fit' || zoomArg === 'FitB') { + dest = [null, { + name: zoomArg + }]; + } else if (zoomArg === 'FitH' || zoomArg === 'FitBH' || zoomArg === 'FitV' || zoomArg === 'FitBV') { + dest = [null, { + name: zoomArg + }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null]; + } else if (zoomArg === 'FitR') { + if (zoomArgs.length !== 5) { + console.error('PDFLinkService.setHash: Not enough parameters for "FitR".'); + } else { + dest = [null, { + name: zoomArg + }, zoomArgs[1] | 0, zoomArgs[2] | 0, zoomArgs[3] | 0, zoomArgs[4] | 0]; + } + } else { + console.error("PDFLinkService.setHash: \"".concat(zoomArg, "\" is not ") + 'a valid zoom value.'); + } + } + } + + if (dest) { + this.pdfViewer.scrollPageIntoView({ + pageNumber: pageNumber || this.page, + destArray: dest, + allowNegativeOffset: true + }); + } else if (pageNumber) { + this.page = pageNumber; + } + + if ('pagemode' in params) { + this.eventBus.dispatch('pagemode', { + source: this, + mode: params.pagemode + }); + } + } else { + dest = unescape(hash); + + try { + dest = JSON.parse(dest); + + if (!Array.isArray(dest)) { + dest = dest.toString(); + } + } catch (ex) {} + + if (typeof dest === 'string' || isValidExplicitDestination(dest)) { + this.navigateTo(dest); + return; + } + + console.error("PDFLinkService.setHash: \"".concat(unescape(hash), "\" is not ") + 'a valid destination.'); + } + } + }, { + key: "executeNamedAction", + value: function executeNamedAction(action) { + switch (action) { + case 'GoBack': + if (this.pdfHistory) { + this.pdfHistory.back(); + } + + break; + + case 'GoForward': + if (this.pdfHistory) { + this.pdfHistory.forward(); + } + + break; + + case 'NextPage': + if (this.page < this.pagesCount) { + this.page++; + } + + break; + + case 'PrevPage': + if (this.page > 1) { + this.page--; + } + + break; + + case 'LastPage': + this.page = this.pagesCount; + break; + + case 'FirstPage': + this.page = 1; + break; + + default: + break; + } + + this.eventBus.dispatch('namedaction', { + source: this, + action: action + }); + } + }, { + key: "cachePageRef", + value: function cachePageRef(pageNum, pageRef) { + if (!pageRef) { + return; + } + + var refStr = pageRef.num + ' ' + pageRef.gen + ' R'; + this._pagesRefCache[refStr] = pageNum; + } + }, { + key: "_cachedPageNumber", + value: function _cachedPageNumber(pageRef) { + var refStr = pageRef.num + ' ' + pageRef.gen + ' R'; + return this._pagesRefCache && this._pagesRefCache[refStr] || null; + } + }, { + key: "isPageVisible", + value: function isPageVisible(pageNumber) { + return this.pdfViewer.isPageVisible(pageNumber); + } + }, { + key: "pagesCount", + get: function get() { + return this.pdfDocument ? this.pdfDocument.numPages : 0; + } + }, { + key: "page", + get: function get() { + return this.pdfViewer.currentPageNumber; + }, + set: function set(value) { + this.pdfViewer.currentPageNumber = value; + } + }, { + key: "rotation", + get: function get() { + return this.pdfViewer.pagesRotation; + }, + set: function set(value) { + this.pdfViewer.pagesRotation = value; + } + }]); + + return PDFLinkService; +}(); + +exports.PDFLinkService = PDFLinkService; + +function isValidExplicitDestination(dest) { + if (!Array.isArray(dest)) { + return false; + } + + var destLength = dest.length, + allowNull = true; + + if (destLength < 2) { + return false; + } + + var page = dest[0]; + + if (!(_typeof(page) === 'object' && Number.isInteger(page.num) && Number.isInteger(page.gen)) && !(Number.isInteger(page) && page >= 0)) { + return false; + } + + var zoom = dest[1]; + + if (!(_typeof(zoom) === 'object' && typeof zoom.name === 'string')) { + return false; + } + + switch (zoom.name) { + case 'XYZ': + if (destLength !== 5) { + return false; + } + + break; + + case 'Fit': + case 'FitB': + return destLength === 2; + + case 'FitH': + case 'FitBH': + case 'FitV': + case 'FitBV': + if (destLength !== 3) { + return false; + } + + break; + + case 'FitR': + if (destLength !== 6) { + return false; + } + + allowNull = false; + break; + + default: + return false; + } + + for (var i = 2; i < destLength; i++) { + var param = dest[i]; + + if (!(typeof param === 'number' || allowNull && param === null)) { + return false; + } + } + + return true; +} + +var SimpleLinkService = +/*#__PURE__*/ +function () { + function SimpleLinkService() { + _classCallCheck(this, SimpleLinkService); + + this.externalLinkTarget = null; + this.externalLinkRel = null; + } + + _createClass(SimpleLinkService, [{ + key: "navigateTo", + value: function navigateTo(dest) {} + }, { + key: "getDestinationHash", + value: function getDestinationHash(dest) { + return '#'; + } + }, { + key: "getAnchorUrl", + value: function getAnchorUrl(hash) { + return '#'; + } + }, { + key: "setHash", + value: function setHash(hash) {} + }, { + key: "executeNamedAction", + value: function executeNamedAction(action) {} + }, { + key: "cachePageRef", + value: function cachePageRef(pageNum, pageRef) {} + }, { + key: "isPageVisible", + value: function isPageVisible(pageNumber) { + return true; + } + }, { + key: "pagesCount", + get: function get() { + return 0; + } + }, { + key: "page", + get: function get() { + return 0; + }, + set: function set(value) {} + }, { + key: "rotation", + get: function get() { + return 0; + }, + set: function set(value) {} + }]); + + return SimpleLinkService; +}(); + +exports.SimpleLinkService = SimpleLinkService; + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFOutlineViewer = void 0; + +var _pdfjsLib = __webpack_require__(7); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var DEFAULT_TITLE = "\u2013"; + +var PDFOutlineViewer = +/*#__PURE__*/ +function () { + function PDFOutlineViewer(_ref) { + var container = _ref.container, + linkService = _ref.linkService, + eventBus = _ref.eventBus; + + _classCallCheck(this, PDFOutlineViewer); + + this.container = container; + this.linkService = linkService; + this.eventBus = eventBus; + this.reset(); + eventBus.on('toggleoutlinetree', this.toggleOutlineTree.bind(this)); + } + + _createClass(PDFOutlineViewer, [{ + key: "reset", + value: function reset() { + this.outline = null; + this.lastToggleIsShow = true; + this.container.textContent = ''; + this.container.classList.remove('outlineWithDeepNesting'); + } + }, { + key: "_dispatchEvent", + value: function _dispatchEvent(outlineCount) { + this.eventBus.dispatch('outlineloaded', { + source: this, + outlineCount: outlineCount + }); + } + }, { + key: "_bindLink", + value: function _bindLink(element, _ref2) { + var url = _ref2.url, + newWindow = _ref2.newWindow, + dest = _ref2.dest; + var linkService = this.linkService; + + if (url) { + (0, _pdfjsLib.addLinkAttributes)(element, { + url: url, + target: newWindow ? _pdfjsLib.LinkTarget.BLANK : linkService.externalLinkTarget, + rel: linkService.externalLinkRel + }); + return; + } + + element.href = linkService.getDestinationHash(dest); + + element.onclick = function () { + if (dest) { + linkService.navigateTo(dest); + } + + return false; + }; + } + }, { + key: "_setStyles", + value: function _setStyles(element, _ref3) { + var bold = _ref3.bold, + italic = _ref3.italic; + var styleStr = ''; + + if (bold) { + styleStr += 'font-weight: bold;'; + } + + if (italic) { + styleStr += 'font-style: italic;'; + } + + if (styleStr) { + element.setAttribute('style', styleStr); + } + } + }, { + key: "_addToggleButton", + value: function _addToggleButton(div, _ref4) { + var _this = this; + + var count = _ref4.count, + items = _ref4.items; + var toggler = document.createElement('div'); + toggler.className = 'outlineItemToggler'; + + if (count < 0 && Math.abs(count) === items.length) { + toggler.classList.add('outlineItemsHidden'); + } + + toggler.onclick = function (evt) { + evt.stopPropagation(); + toggler.classList.toggle('outlineItemsHidden'); + + if (evt.shiftKey) { + var shouldShowAll = !toggler.classList.contains('outlineItemsHidden'); + + _this._toggleOutlineItem(div, shouldShowAll); + } + }; + + div.insertBefore(toggler, div.firstChild); + } + }, { + key: "_toggleOutlineItem", + value: function _toggleOutlineItem(root) { + var show = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + this.lastToggleIsShow = show; + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = root.querySelectorAll('.outlineItemToggler')[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var toggler = _step.value; + toggler.classList.toggle('outlineItemsHidden', !show); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator["return"] != null) { + _iterator["return"](); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + } + }, { + key: "toggleOutlineTree", + value: function toggleOutlineTree() { + if (!this.outline) { + return; + } + + this._toggleOutlineItem(this.container, !this.lastToggleIsShow); + } + }, { + key: "render", + value: function render(_ref5) { + var outline = _ref5.outline; + var outlineCount = 0; + + if (this.outline) { + this.reset(); + } + + this.outline = outline || null; + + if (!outline) { + this._dispatchEvent(outlineCount); + + return; + } + + var fragment = document.createDocumentFragment(); + var queue = [{ + parent: fragment, + items: this.outline + }]; + var hasAnyNesting = false; + + while (queue.length > 0) { + var levelData = queue.shift(); + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + for (var _iterator2 = levelData.items[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + var item = _step2.value; + var div = document.createElement('div'); + div.className = 'outlineItem'; + var element = document.createElement('a'); + + this._bindLink(element, item); + + this._setStyles(element, item); + + element.textContent = (0, _pdfjsLib.removeNullCharacters)(item.title) || DEFAULT_TITLE; + div.appendChild(element); + + if (item.items.length > 0) { + hasAnyNesting = true; + + this._addToggleButton(div, item); + + var itemsDiv = document.createElement('div'); + itemsDiv.className = 'outlineItems'; + div.appendChild(itemsDiv); + queue.push({ + parent: itemsDiv, + items: item.items + }); + } + + levelData.parent.appendChild(div); + outlineCount++; + } + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { + _iterator2["return"](); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + } + + if (hasAnyNesting) { + this.container.classList.add('outlineWithDeepNesting'); + this.lastToggleIsShow = fragment.querySelectorAll('.outlineItemsHidden').length === 0; + } + + this.container.appendChild(fragment); + + this._dispatchEvent(outlineCount); + } + }]); + + return PDFOutlineViewer; +}(); + +exports.PDFOutlineViewer = PDFOutlineViewer; + +/***/ }), +/* 23 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFPresentationMode = void 0; + +var _ui_utils = __webpack_require__(5); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var DELAY_BEFORE_RESETTING_SWITCH_IN_PROGRESS = 1500; +var DELAY_BEFORE_HIDING_CONTROLS = 3000; +var ACTIVE_SELECTOR = 'pdfPresentationMode'; +var CONTROLS_SELECTOR = 'pdfPresentationModeControls'; +var MOUSE_SCROLL_COOLDOWN_TIME = 50; +var PAGE_SWITCH_THRESHOLD = 0.1; +var SWIPE_MIN_DISTANCE_THRESHOLD = 50; +var SWIPE_ANGLE_THRESHOLD = Math.PI / 6; + +var PDFPresentationMode = +/*#__PURE__*/ +function () { + function PDFPresentationMode(_ref) { + var _this = this; + + var container = _ref.container, + _ref$viewer = _ref.viewer, + viewer = _ref$viewer === void 0 ? null : _ref$viewer, + pdfViewer = _ref.pdfViewer, + eventBus = _ref.eventBus, + _ref$contextMenuItems = _ref.contextMenuItems, + contextMenuItems = _ref$contextMenuItems === void 0 ? null : _ref$contextMenuItems; + + _classCallCheck(this, PDFPresentationMode); + + this.container = container; + this.viewer = viewer || container.firstElementChild; + this.pdfViewer = pdfViewer; + this.eventBus = eventBus; + this.active = false; + this.args = null; + this.contextMenuOpen = false; + this.mouseScrollTimeStamp = 0; + this.mouseScrollDelta = 0; + this.touchSwipeState = null; + + if (contextMenuItems) { + contextMenuItems.contextFirstPage.addEventListener('click', function () { + _this.contextMenuOpen = false; + + _this.eventBus.dispatch('firstpage', { + source: _this + }); + }); + contextMenuItems.contextLastPage.addEventListener('click', function () { + _this.contextMenuOpen = false; + + _this.eventBus.dispatch('lastpage', { + source: _this + }); + }); + contextMenuItems.contextPageRotateCw.addEventListener('click', function () { + _this.contextMenuOpen = false; + + _this.eventBus.dispatch('rotatecw', { + source: _this + }); + }); + contextMenuItems.contextPageRotateCcw.addEventListener('click', function () { + _this.contextMenuOpen = false; + + _this.eventBus.dispatch('rotateccw', { + source: _this + }); + }); + } + } + + _createClass(PDFPresentationMode, [{ + key: "request", + value: function request() { + if (this.switchInProgress || this.active || !this.viewer.hasChildNodes()) { + return false; + } + + this._addFullscreenChangeListeners(); + + this._setSwitchInProgress(); + + this._notifyStateChange(); + + if (this.container.requestFullscreen) { + this.container.requestFullscreen(); + } else if (this.container.mozRequestFullScreen) { + this.container.mozRequestFullScreen(); + } else if (this.container.webkitRequestFullscreen) { + this.container.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); + } else if (this.container.msRequestFullscreen) { + this.container.msRequestFullscreen(); + } else { + return false; + } + + this.args = { + page: this.pdfViewer.currentPageNumber, + previousScale: this.pdfViewer.currentScaleValue + }; + return true; + } + }, { + key: "_mouseWheel", + value: function _mouseWheel(evt) { + if (!this.active) { + return; + } + + evt.preventDefault(); + var delta = (0, _ui_utils.normalizeWheelEventDelta)(evt); + var currentTime = new Date().getTime(); + var storedTime = this.mouseScrollTimeStamp; + + if (currentTime > storedTime && currentTime - storedTime < MOUSE_SCROLL_COOLDOWN_TIME) { + return; + } + + if (this.mouseScrollDelta > 0 && delta < 0 || this.mouseScrollDelta < 0 && delta > 0) { + this._resetMouseScrollState(); + } + + this.mouseScrollDelta += delta; + + if (Math.abs(this.mouseScrollDelta) >= PAGE_SWITCH_THRESHOLD) { + var totalDelta = this.mouseScrollDelta; + + this._resetMouseScrollState(); + + var success = totalDelta > 0 ? this._goToPreviousPage() : this._goToNextPage(); + + if (success) { + this.mouseScrollTimeStamp = currentTime; + } + } + } + }, { + key: "_goToPreviousPage", + value: function _goToPreviousPage() { + var page = this.pdfViewer.currentPageNumber; + + if (page <= 1) { + return false; + } + + this.pdfViewer.currentPageNumber = page - 1; + return true; + } + }, { + key: "_goToNextPage", + value: function _goToNextPage() { + var page = this.pdfViewer.currentPageNumber; + + if (page >= this.pdfViewer.pagesCount) { + return false; + } + + this.pdfViewer.currentPageNumber = page + 1; + return true; + } + }, { + key: "_notifyStateChange", + value: function _notifyStateChange() { + this.eventBus.dispatch('presentationmodechanged', { + source: this, + active: this.active, + switchInProgress: !!this.switchInProgress + }); + } + }, { + key: "_setSwitchInProgress", + value: function _setSwitchInProgress() { + var _this2 = this; + + if (this.switchInProgress) { + clearTimeout(this.switchInProgress); + } + + this.switchInProgress = setTimeout(function () { + _this2._removeFullscreenChangeListeners(); + + delete _this2.switchInProgress; + + _this2._notifyStateChange(); + }, DELAY_BEFORE_RESETTING_SWITCH_IN_PROGRESS); + } + }, { + key: "_resetSwitchInProgress", + value: function _resetSwitchInProgress() { + if (this.switchInProgress) { + clearTimeout(this.switchInProgress); + delete this.switchInProgress; + } + } + }, { + key: "_enter", + value: function _enter() { + var _this3 = this; + + this.active = true; + + this._resetSwitchInProgress(); + + this._notifyStateChange(); + + this.container.classList.add(ACTIVE_SELECTOR); + setTimeout(function () { + _this3.pdfViewer.currentPageNumber = _this3.args.page; + _this3.pdfViewer.currentScaleValue = 'page-fit'; + }, 0); + + this._addWindowListeners(); + + this._showControls(); + + this.contextMenuOpen = false; + this.container.setAttribute('contextmenu', 'viewerContextMenu'); + window.getSelection().removeAllRanges(); + } + }, { + key: "_exit", + value: function _exit() { + var _this4 = this; + + var page = this.pdfViewer.currentPageNumber; + this.container.classList.remove(ACTIVE_SELECTOR); + setTimeout(function () { + _this4.active = false; + + _this4._removeFullscreenChangeListeners(); + + _this4._notifyStateChange(); + + _this4.pdfViewer.currentScaleValue = _this4.args.previousScale; + _this4.pdfViewer.currentPageNumber = page; + _this4.args = null; + }, 0); + + this._removeWindowListeners(); + + this._hideControls(); + + this._resetMouseScrollState(); + + this.container.removeAttribute('contextmenu'); + this.contextMenuOpen = false; + } + }, { + key: "_mouseDown", + value: function _mouseDown(evt) { + if (this.contextMenuOpen) { + this.contextMenuOpen = false; + evt.preventDefault(); + return; + } + + if (evt.button === 0) { + var isInternalLink = evt.target.href && evt.target.classList.contains('internalLink'); + + if (!isInternalLink) { + evt.preventDefault(); + + if (evt.shiftKey) { + this._goToPreviousPage(); + } else { + this._goToNextPage(); + } + } + } + } + }, { + key: "_contextMenu", + value: function _contextMenu() { + this.contextMenuOpen = true; + } + }, { + key: "_showControls", + value: function _showControls() { + var _this5 = this; + + if (this.controlsTimeout) { + clearTimeout(this.controlsTimeout); + } else { + this.container.classList.add(CONTROLS_SELECTOR); + } + + this.controlsTimeout = setTimeout(function () { + _this5.container.classList.remove(CONTROLS_SELECTOR); + + delete _this5.controlsTimeout; + }, DELAY_BEFORE_HIDING_CONTROLS); + } + }, { + key: "_hideControls", + value: function _hideControls() { + if (!this.controlsTimeout) { + return; + } + + clearTimeout(this.controlsTimeout); + this.container.classList.remove(CONTROLS_SELECTOR); + delete this.controlsTimeout; + } + }, { + key: "_resetMouseScrollState", + value: function _resetMouseScrollState() { + this.mouseScrollTimeStamp = 0; + this.mouseScrollDelta = 0; + } + }, { + key: "_touchSwipe", + value: function _touchSwipe(evt) { + if (!this.active) { + return; + } + + if (evt.touches.length > 1) { + this.touchSwipeState = null; + return; + } + + switch (evt.type) { + case 'touchstart': + this.touchSwipeState = { + startX: evt.touches[0].pageX, + startY: evt.touches[0].pageY, + endX: evt.touches[0].pageX, + endY: evt.touches[0].pageY + }; + break; + + case 'touchmove': + if (this.touchSwipeState === null) { + return; + } + + this.touchSwipeState.endX = evt.touches[0].pageX; + this.touchSwipeState.endY = evt.touches[0].pageY; + evt.preventDefault(); + break; + + case 'touchend': + if (this.touchSwipeState === null) { + return; + } + + var delta = 0; + var dx = this.touchSwipeState.endX - this.touchSwipeState.startX; + var dy = this.touchSwipeState.endY - this.touchSwipeState.startY; + var absAngle = Math.abs(Math.atan2(dy, dx)); + + if (Math.abs(dx) > SWIPE_MIN_DISTANCE_THRESHOLD && (absAngle <= SWIPE_ANGLE_THRESHOLD || absAngle >= Math.PI - SWIPE_ANGLE_THRESHOLD)) { + delta = dx; + } else if (Math.abs(dy) > SWIPE_MIN_DISTANCE_THRESHOLD && Math.abs(absAngle - Math.PI / 2) <= SWIPE_ANGLE_THRESHOLD) { + delta = dy; + } + + if (delta > 0) { + this._goToPreviousPage(); + } else if (delta < 0) { + this._goToNextPage(); + } + + break; + } + } + }, { + key: "_addWindowListeners", + value: function _addWindowListeners() { + this.showControlsBind = this._showControls.bind(this); + this.mouseDownBind = this._mouseDown.bind(this); + this.mouseWheelBind = this._mouseWheel.bind(this); + this.resetMouseScrollStateBind = this._resetMouseScrollState.bind(this); + this.contextMenuBind = this._contextMenu.bind(this); + this.touchSwipeBind = this._touchSwipe.bind(this); + window.addEventListener('mousemove', this.showControlsBind); + window.addEventListener('mousedown', this.mouseDownBind); + window.addEventListener('wheel', this.mouseWheelBind); + window.addEventListener('keydown', this.resetMouseScrollStateBind); + window.addEventListener('contextmenu', this.contextMenuBind); + window.addEventListener('touchstart', this.touchSwipeBind); + window.addEventListener('touchmove', this.touchSwipeBind); + window.addEventListener('touchend', this.touchSwipeBind); + } + }, { + key: "_removeWindowListeners", + value: function _removeWindowListeners() { + window.removeEventListener('mousemove', this.showControlsBind); + window.removeEventListener('mousedown', this.mouseDownBind); + window.removeEventListener('wheel', this.mouseWheelBind); + window.removeEventListener('keydown', this.resetMouseScrollStateBind); + window.removeEventListener('contextmenu', this.contextMenuBind); + window.removeEventListener('touchstart', this.touchSwipeBind); + window.removeEventListener('touchmove', this.touchSwipeBind); + window.removeEventListener('touchend', this.touchSwipeBind); + delete this.showControlsBind; + delete this.mouseDownBind; + delete this.mouseWheelBind; + delete this.resetMouseScrollStateBind; + delete this.contextMenuBind; + delete this.touchSwipeBind; + } + }, { + key: "_fullscreenChange", + value: function _fullscreenChange() { + if (this.isFullscreen) { + this._enter(); + } else { + this._exit(); + } + } + }, { + key: "_addFullscreenChangeListeners", + value: function _addFullscreenChangeListeners() { + this.fullscreenChangeBind = this._fullscreenChange.bind(this); + window.addEventListener('fullscreenchange', this.fullscreenChangeBind); + window.addEventListener('mozfullscreenchange', this.fullscreenChangeBind); + window.addEventListener('webkitfullscreenchange', this.fullscreenChangeBind); + window.addEventListener('MSFullscreenChange', this.fullscreenChangeBind); + } + }, { + key: "_removeFullscreenChangeListeners", + value: function _removeFullscreenChangeListeners() { + window.removeEventListener('fullscreenchange', this.fullscreenChangeBind); + window.removeEventListener('mozfullscreenchange', this.fullscreenChangeBind); + window.removeEventListener('webkitfullscreenchange', this.fullscreenChangeBind); + window.removeEventListener('MSFullscreenChange', this.fullscreenChangeBind); + delete this.fullscreenChangeBind; + } + }, { + key: "isFullscreen", + get: function get() { + return !!(document.fullscreenElement || document.mozFullScreen || document.webkitIsFullScreen || document.msFullscreenElement); + } + }]); + + return PDFPresentationMode; +}(); + +exports.PDFPresentationMode = PDFPresentationMode; + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFSidebarResizer = void 0; + +var _ui_utils = __webpack_require__(5); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var SIDEBAR_WIDTH_VAR = '--sidebar-width'; +var SIDEBAR_MIN_WIDTH = 200; +var SIDEBAR_RESIZING_CLASS = 'sidebarResizing'; + +var PDFSidebarResizer = +/*#__PURE__*/ +function () { + function PDFSidebarResizer(options, eventBus) { + var _this = this; + + var l10n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _ui_utils.NullL10n; + + _classCallCheck(this, PDFSidebarResizer); + + this.enabled = false; + this.isRTL = false; + this.sidebarOpen = false; + this.doc = document.documentElement; + this._width = null; + this._outerContainerWidth = null; + this._boundEvents = Object.create(null); + this.outerContainer = options.outerContainer; + this.resizer = options.resizer; + this.eventBus = eventBus; + this.l10n = l10n; + + if (typeof CSS === 'undefined' || typeof CSS.supports !== 'function' || !CSS.supports(SIDEBAR_WIDTH_VAR, "calc(-1 * ".concat(SIDEBAR_MIN_WIDTH, "px)"))) { + console.warn('PDFSidebarResizer: ' + 'The browser does not support resizing of the sidebar.'); + return; + } + + this.enabled = true; + this.resizer.classList.remove('hidden'); + this.l10n.getDirection().then(function (dir) { + _this.isRTL = dir === 'rtl'; + }); + + this._addEventListeners(); + } + + _createClass(PDFSidebarResizer, [{ + key: "_updateWidth", + value: function _updateWidth() { + var width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + + if (!this.enabled) { + return false; + } + + var maxWidth = Math.floor(this.outerContainerWidth / 2); + + if (width > maxWidth) { + width = maxWidth; + } + + if (width < SIDEBAR_MIN_WIDTH) { + width = SIDEBAR_MIN_WIDTH; + } + + if (width === this._width) { + return false; + } + + this._width = width; + this.doc.style.setProperty(SIDEBAR_WIDTH_VAR, "".concat(width, "px")); + return true; + } + }, { + key: "_mouseMove", + value: function _mouseMove(evt) { + var width = evt.clientX; + + if (this.isRTL) { + width = this.outerContainerWidth - width; + } + + this._updateWidth(width); + } + }, { + key: "_mouseUp", + value: function _mouseUp(evt) { + this.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS); + this.eventBus.dispatch('resize', { + source: this + }); + var _boundEvents = this._boundEvents; + window.removeEventListener('mousemove', _boundEvents.mouseMove); + window.removeEventListener('mouseup', _boundEvents.mouseUp); + } + }, { + key: "_addEventListeners", + value: function _addEventListeners() { + var _this2 = this; + + if (!this.enabled) { + return; + } + + var _boundEvents = this._boundEvents; + _boundEvents.mouseMove = this._mouseMove.bind(this); + _boundEvents.mouseUp = this._mouseUp.bind(this); + this.resizer.addEventListener('mousedown', function (evt) { + if (evt.button !== 0) { + return; + } + + _this2.outerContainer.classList.add(SIDEBAR_RESIZING_CLASS); + + window.addEventListener('mousemove', _boundEvents.mouseMove); + window.addEventListener('mouseup', _boundEvents.mouseUp); + }); + this.eventBus.on('sidebarviewchanged', function (evt) { + _this2.sidebarOpen = !!(evt && evt.view); + }); + this.eventBus.on('resize', function (evt) { + if (evt && evt.source === window) { + _this2._outerContainerWidth = null; + + if (_this2._width) { + if (_this2.sidebarOpen) { + _this2.outerContainer.classList.add(SIDEBAR_RESIZING_CLASS); + + var updated = _this2._updateWidth(_this2._width); + + Promise.resolve().then(function () { + _this2.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS); + + if (updated) { + _this2.eventBus.dispatch('resize', { + source: _this2 + }); + } + }); + } else { + _this2._updateWidth(_this2._width); + } + } + } + }); + } + }, { + key: "outerContainerWidth", + get: function get() { + if (!this._outerContainerWidth) { + this._outerContainerWidth = this.outerContainer.clientWidth; + } + + return this._outerContainerWidth; + } + }]); + + return PDFSidebarResizer; +}(); + +exports.PDFSidebarResizer = PDFSidebarResizer; + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFThumbnailViewer = void 0; + +var _ui_utils = __webpack_require__(5); + +var _pdf_thumbnail_view = __webpack_require__(26); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var THUMBNAIL_SCROLL_MARGIN = -19; +var THUMBNAIL_SELECTED_CLASS = 'selected'; + +var PDFThumbnailViewer = +/*#__PURE__*/ +function () { + function PDFThumbnailViewer(_ref) { + var container = _ref.container, + linkService = _ref.linkService, + renderingQueue = _ref.renderingQueue, + _ref$l10n = _ref.l10n, + l10n = _ref$l10n === void 0 ? _ui_utils.NullL10n : _ref$l10n; + + _classCallCheck(this, PDFThumbnailViewer); + + this.container = container; + this.linkService = linkService; + this.renderingQueue = renderingQueue; + this.l10n = l10n; + this.scroll = (0, _ui_utils.watchScroll)(this.container, this._scrollUpdated.bind(this)); + + this._resetView(); + } + + _createClass(PDFThumbnailViewer, [{ + key: "_scrollUpdated", + value: function _scrollUpdated() { + this.renderingQueue.renderHighestPriority(); + } + }, { + key: "getThumbnail", + value: function getThumbnail(index) { + return this._thumbnails[index]; + } + }, { + key: "_getVisibleThumbs", + value: function _getVisibleThumbs() { + return (0, _ui_utils.getVisibleElements)(this.container, this._thumbnails); + } + }, { + key: "scrollThumbnailIntoView", + value: function scrollThumbnailIntoView(pageNumber) { + if (!this.pdfDocument) { + return; + } + + var thumbnailView = this._thumbnails[pageNumber - 1]; + + if (!thumbnailView) { + console.error('scrollThumbnailIntoView: Invalid "pageNumber" parameter.'); + return; + } + + if (pageNumber !== this._currentPageNumber) { + var prevThumbnailView = this._thumbnails[this._currentPageNumber - 1]; + prevThumbnailView.div.classList.remove(THUMBNAIL_SELECTED_CLASS); + thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS); + } + + var visibleThumbs = this._getVisibleThumbs(); + + var numVisibleThumbs = visibleThumbs.views.length; + + if (numVisibleThumbs > 0) { + var first = visibleThumbs.first.id; + var last = numVisibleThumbs > 1 ? visibleThumbs.last.id : first; + var shouldScroll = false; + + if (pageNumber <= first || pageNumber >= last) { + shouldScroll = true; + } else { + visibleThumbs.views.some(function (view) { + if (view.id !== pageNumber) { + return false; + } + + shouldScroll = view.percent < 100; + return true; + }); + } + + if (shouldScroll) { + (0, _ui_utils.scrollIntoView)(thumbnailView.div, { + top: THUMBNAIL_SCROLL_MARGIN + }); + } + } + + this._currentPageNumber = pageNumber; + } + }, { + key: "cleanup", + value: function cleanup() { + _pdf_thumbnail_view.PDFThumbnailView.cleanup(); + } + }, { + key: "_resetView", + value: function _resetView() { + this._thumbnails = []; + this._currentPageNumber = 1; + this._pageLabels = null; + this._pagesRotation = 0; + this._pagesRequests = []; + this.container.textContent = ''; + } + }, { + key: "setDocument", + value: function setDocument(pdfDocument) { + var _this = this; + + if (this.pdfDocument) { + this._cancelRendering(); + + this._resetView(); + } + + this.pdfDocument = pdfDocument; + + if (!pdfDocument) { + return; + } + + pdfDocument.getPage(1).then(function (firstPage) { + var pagesCount = pdfDocument.numPages; + var viewport = firstPage.getViewport({ + scale: 1 + }); + + for (var pageNum = 1; pageNum <= pagesCount; ++pageNum) { + var thumbnail = new _pdf_thumbnail_view.PDFThumbnailView({ + container: _this.container, + id: pageNum, + defaultViewport: viewport.clone(), + linkService: _this.linkService, + renderingQueue: _this.renderingQueue, + disableCanvasToImageConversion: false, + l10n: _this.l10n + }); + + _this._thumbnails.push(thumbnail); + } + + var thumbnailView = _this._thumbnails[_this._currentPageNumber - 1]; + thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS); + })["catch"](function (reason) { + console.error('Unable to initialize thumbnail viewer', reason); + }); + } + }, { + key: "_cancelRendering", + value: function _cancelRendering() { + for (var i = 0, ii = this._thumbnails.length; i < ii; i++) { + if (this._thumbnails[i]) { + this._thumbnails[i].cancelRendering(); + } + } + } + }, { + key: "setPageLabels", + value: function setPageLabels(labels) { + if (!this.pdfDocument) { + return; + } + + if (!labels) { + this._pageLabels = null; + } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) { + this._pageLabels = null; + console.error('PDFThumbnailViewer_setPageLabels: Invalid page labels.'); + } else { + this._pageLabels = labels; + } + + for (var i = 0, ii = this._thumbnails.length; i < ii; i++) { + var label = this._pageLabels && this._pageLabels[i]; + + this._thumbnails[i].setPageLabel(label); + } + } + }, { + key: "_ensurePdfPageLoaded", + value: function _ensurePdfPageLoaded(thumbView) { + var _this2 = this; + + if (thumbView.pdfPage) { + return Promise.resolve(thumbView.pdfPage); + } + + var pageNumber = thumbView.id; + + if (this._pagesRequests[pageNumber]) { + return this._pagesRequests[pageNumber]; + } + + var promise = this.pdfDocument.getPage(pageNumber).then(function (pdfPage) { + thumbView.setPdfPage(pdfPage); + _this2._pagesRequests[pageNumber] = null; + return pdfPage; + })["catch"](function (reason) { + console.error('Unable to get page for thumb view', reason); + _this2._pagesRequests[pageNumber] = null; + }); + this._pagesRequests[pageNumber] = promise; + return promise; + } + }, { + key: "forceRendering", + value: function forceRendering() { + var _this3 = this; + + var visibleThumbs = this._getVisibleThumbs(); + + var thumbView = this.renderingQueue.getHighestPriority(visibleThumbs, this._thumbnails, this.scroll.down); + + if (thumbView) { + this._ensurePdfPageLoaded(thumbView).then(function () { + _this3.renderingQueue.renderView(thumbView); + }); + + return true; + } + + return false; + } + }, { + key: "pagesRotation", + get: function get() { + return this._pagesRotation; + }, + set: function set(rotation) { + if (!(0, _ui_utils.isValidRotation)(rotation)) { + throw new Error('Invalid thumbnails rotation angle.'); + } + + if (!this.pdfDocument) { + return; + } + + if (this._pagesRotation === rotation) { + return; + } + + this._pagesRotation = rotation; + + for (var i = 0, ii = this._thumbnails.length; i < ii; i++) { + this._thumbnails[i].update(rotation); + } + } + }]); + + return PDFThumbnailViewer; +}(); + +exports.PDFThumbnailViewer = PDFThumbnailViewer; + +/***/ }), +/* 26 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFThumbnailView = void 0; + +var _pdfjsLib = __webpack_require__(7); + +var _ui_utils = __webpack_require__(5); + +var _pdf_rendering_queue = __webpack_require__(11); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var MAX_NUM_SCALING_STEPS = 3; +var THUMBNAIL_CANVAS_BORDER_WIDTH = 1; +var THUMBNAIL_WIDTH = 98; + +var TempImageFactory = function TempImageFactoryClosure() { + var tempCanvasCache = null; + return { + getCanvas: function getCanvas(width, height) { + var tempCanvas = tempCanvasCache; + + if (!tempCanvas) { + tempCanvas = document.createElement('canvas'); + tempCanvasCache = tempCanvas; + } + + tempCanvas.width = width; + tempCanvas.height = height; + tempCanvas.mozOpaque = true; + var ctx = tempCanvas.getContext('2d', { + alpha: false + }); + ctx.save(); + ctx.fillStyle = 'rgb(255, 255, 255)'; + ctx.fillRect(0, 0, width, height); + ctx.restore(); + return tempCanvas; + }, + destroyCanvas: function destroyCanvas() { + var tempCanvas = tempCanvasCache; + + if (tempCanvas) { + tempCanvas.width = 0; + tempCanvas.height = 0; + } + + tempCanvasCache = null; + } + }; +}(); + +var PDFThumbnailView = +/*#__PURE__*/ +function () { + function PDFThumbnailView(_ref) { + var container = _ref.container, + id = _ref.id, + defaultViewport = _ref.defaultViewport, + linkService = _ref.linkService, + renderingQueue = _ref.renderingQueue, + _ref$disableCanvasToI = _ref.disableCanvasToImageConversion, + disableCanvasToImageConversion = _ref$disableCanvasToI === void 0 ? false : _ref$disableCanvasToI, + _ref$l10n = _ref.l10n, + l10n = _ref$l10n === void 0 ? _ui_utils.NullL10n : _ref$l10n; + + _classCallCheck(this, PDFThumbnailView); + + this.id = id; + this.renderingId = 'thumbnail' + id; + this.pageLabel = null; + this.pdfPage = null; + this.rotation = 0; + this.viewport = defaultViewport; + this.pdfPageRotate = defaultViewport.rotation; + this.linkService = linkService; + this.renderingQueue = renderingQueue; + this.renderTask = null; + this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL; + this.resume = null; + this.disableCanvasToImageConversion = disableCanvasToImageConversion; + this.pageWidth = this.viewport.width; + this.pageHeight = this.viewport.height; + this.pageRatio = this.pageWidth / this.pageHeight; + this.canvasWidth = THUMBNAIL_WIDTH; + this.canvasHeight = this.canvasWidth / this.pageRatio | 0; + this.scale = this.canvasWidth / this.pageWidth; + this.l10n = l10n; + var anchor = document.createElement('a'); + anchor.href = linkService.getAnchorUrl('#page=' + id); + this.l10n.get('thumb_page_title', { + page: id + }, 'Page {{page}}').then(function (msg) { + anchor.title = msg; + }); + + anchor.onclick = function () { + linkService.page = id; + return false; + }; + + this.anchor = anchor; + var div = document.createElement('div'); + div.className = 'thumbnail'; + div.setAttribute('data-page-number', this.id); + this.div = div; + var ring = document.createElement('div'); + ring.className = 'thumbnailSelectionRing'; + var borderAdjustment = 2 * THUMBNAIL_CANVAS_BORDER_WIDTH; + ring.style.width = this.canvasWidth + borderAdjustment + 'px'; + ring.style.height = this.canvasHeight + borderAdjustment + 'px'; + this.ring = ring; + div.appendChild(ring); + anchor.appendChild(div); + container.appendChild(anchor); + } + + _createClass(PDFThumbnailView, [{ + key: "setPdfPage", + value: function setPdfPage(pdfPage) { + this.pdfPage = pdfPage; + this.pdfPageRotate = pdfPage.rotate; + var totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = pdfPage.getViewport({ + scale: 1, + rotation: totalRotation + }); + this.reset(); + } + }, { + key: "reset", + value: function reset() { + this.cancelRendering(); + this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL; + this.pageWidth = this.viewport.width; + this.pageHeight = this.viewport.height; + this.pageRatio = this.pageWidth / this.pageHeight; + this.canvasHeight = this.canvasWidth / this.pageRatio | 0; + this.scale = this.canvasWidth / this.pageWidth; + this.div.removeAttribute('data-loaded'); + var ring = this.ring; + var childNodes = ring.childNodes; + + for (var i = childNodes.length - 1; i >= 0; i--) { + ring.removeChild(childNodes[i]); + } + + var borderAdjustment = 2 * THUMBNAIL_CANVAS_BORDER_WIDTH; + ring.style.width = this.canvasWidth + borderAdjustment + 'px'; + ring.style.height = this.canvasHeight + borderAdjustment + 'px'; + + if (this.canvas) { + this.canvas.width = 0; + this.canvas.height = 0; + delete this.canvas; + } + + if (this.image) { + this.image.removeAttribute('src'); + delete this.image; + } + } + }, { + key: "update", + value: function update(rotation) { + if (typeof rotation !== 'undefined') { + this.rotation = rotation; + } + + var totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = this.viewport.clone({ + scale: 1, + rotation: totalRotation + }); + this.reset(); + } + }, { + key: "cancelRendering", + value: function cancelRendering() { + if (this.renderTask) { + this.renderTask.cancel(); + this.renderTask = null; + } + + this.resume = null; + } + }, { + key: "_getPageDrawContext", + value: function _getPageDrawContext() { + var noCtxScale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + var canvas = document.createElement('canvas'); + this.canvas = canvas; + canvas.mozOpaque = true; + var ctx = canvas.getContext('2d', { + alpha: false + }); + var outputScale = (0, _ui_utils.getOutputScale)(ctx); + canvas.width = this.canvasWidth * outputScale.sx | 0; + canvas.height = this.canvasHeight * outputScale.sy | 0; + canvas.style.width = this.canvasWidth + 'px'; + canvas.style.height = this.canvasHeight + 'px'; + + if (!noCtxScale && outputScale.scaled) { + ctx.scale(outputScale.sx, outputScale.sy); + } + + return ctx; + } + }, { + key: "_convertCanvasToImage", + value: function _convertCanvasToImage() { + var _this = this; + + if (!this.canvas) { + return; + } + + if (this.renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) { + return; + } + + var id = this.renderingId; + var className = 'thumbnailImage'; + + if (this.disableCanvasToImageConversion) { + this.canvas.id = id; + this.canvas.className = className; + this.l10n.get('thumb_page_canvas', { + page: this.pageId + }, 'Thumbnail of Page {{page}}').then(function (msg) { + _this.canvas.setAttribute('aria-label', msg); + }); + this.div.setAttribute('data-loaded', true); + this.ring.appendChild(this.canvas); + return; + } + + var image = document.createElement('img'); + image.id = id; + image.className = className; + this.l10n.get('thumb_page_canvas', { + page: this.pageId + }, 'Thumbnail of Page {{page}}').then(function (msg) { + image.setAttribute('aria-label', msg); + }); + image.style.width = this.canvasWidth + 'px'; + image.style.height = this.canvasHeight + 'px'; + image.src = this.canvas.toDataURL(); + this.image = image; + this.div.setAttribute('data-loaded', true); + this.ring.appendChild(image); + this.canvas.width = 0; + this.canvas.height = 0; + delete this.canvas; + } + }, { + key: "draw", + value: function draw() { + var _this2 = this; + + if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) { + console.error('Must be in new state before drawing'); + return Promise.resolve(undefined); + } + + this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; + var renderCapability = (0, _pdfjsLib.createPromiseCapability)(); + + var finishRenderTask = function finishRenderTask(error) { + if (renderTask === _this2.renderTask) { + _this2.renderTask = null; + } + + if (error instanceof _pdfjsLib.RenderingCancelledException) { + renderCapability.resolve(undefined); + return; + } + + _this2.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; + + _this2._convertCanvasToImage(); + + if (!error) { + renderCapability.resolve(undefined); + } else { + renderCapability.reject(error); + } + }; + + var ctx = this._getPageDrawContext(); + + var drawViewport = this.viewport.clone({ + scale: this.scale + }); + + var renderContinueCallback = function renderContinueCallback(cont) { + if (!_this2.renderingQueue.isHighestPriority(_this2)) { + _this2.renderingState = _pdf_rendering_queue.RenderingStates.PAUSED; + + _this2.resume = function () { + _this2.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; + cont(); + }; + + return; + } + + cont(); + }; + + var renderContext = { + canvasContext: ctx, + viewport: drawViewport + }; + var renderTask = this.renderTask = this.pdfPage.render(renderContext); + renderTask.onContinue = renderContinueCallback; + renderTask.promise.then(function () { + finishRenderTask(null); + }, function (error) { + finishRenderTask(error); + }); + return renderCapability.promise; + } + }, { + key: "setImage", + value: function setImage(pageView) { + if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) { + return; + } + + var img = pageView.canvas; + + if (!img) { + return; + } + + if (!this.pdfPage) { + this.setPdfPage(pageView.pdfPage); + } + + this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; + + var ctx = this._getPageDrawContext(true); + + var canvas = ctx.canvas; + + if (img.width <= 2 * canvas.width) { + ctx.drawImage(img, 0, 0, img.width, img.height, 0, 0, canvas.width, canvas.height); + + this._convertCanvasToImage(); + + return; + } + + var reducedWidth = canvas.width << MAX_NUM_SCALING_STEPS; + var reducedHeight = canvas.height << MAX_NUM_SCALING_STEPS; + var reducedImage = TempImageFactory.getCanvas(reducedWidth, reducedHeight); + var reducedImageCtx = reducedImage.getContext('2d'); + + while (reducedWidth > img.width || reducedHeight > img.height) { + reducedWidth >>= 1; + reducedHeight >>= 1; + } + + reducedImageCtx.drawImage(img, 0, 0, img.width, img.height, 0, 0, reducedWidth, reducedHeight); + + while (reducedWidth > 2 * canvas.width) { + reducedImageCtx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, reducedWidth >> 1, reducedHeight >> 1); + reducedWidth >>= 1; + reducedHeight >>= 1; + } + + ctx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, canvas.width, canvas.height); + + this._convertCanvasToImage(); + } + }, { + key: "setPageLabel", + value: function setPageLabel(label) { + var _this3 = this; + + this.pageLabel = typeof label === 'string' ? label : null; + this.l10n.get('thumb_page_title', { + page: this.pageId + }, 'Page {{page}}').then(function (msg) { + _this3.anchor.title = msg; + }); + + if (this.renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) { + return; + } + + this.l10n.get('thumb_page_canvas', { + page: this.pageId + }, 'Thumbnail of Page {{page}}').then(function (ariaLabel) { + if (_this3.image) { + _this3.image.setAttribute('aria-label', ariaLabel); + } else if (_this3.disableCanvasToImageConversion && _this3.canvas) { + _this3.canvas.setAttribute('aria-label', ariaLabel); + } + }); + } + }, { + key: "pageId", + get: function get() { + return this.pageLabel !== null ? this.pageLabel : this.id; + } + }], [{ + key: "cleanup", + value: function cleanup() { + TempImageFactory.destroyCanvas(); + } + }]); + + return PDFThumbnailView; +}(); + +exports.PDFThumbnailView = PDFThumbnailView; + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFViewer = void 0; + +var _base_viewer = __webpack_require__(28); + +var _pdfjsLib = __webpack_require__(7); + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var PDFViewer = +/*#__PURE__*/ +function (_BaseViewer) { + _inherits(PDFViewer, _BaseViewer); + + function PDFViewer() { + _classCallCheck(this, PDFViewer); + + return _possibleConstructorReturn(this, _getPrototypeOf(PDFViewer).apply(this, arguments)); + } + + _createClass(PDFViewer, [{ + key: "_scrollIntoView", + value: function _scrollIntoView(_ref) { + var pageDiv = _ref.pageDiv, + _ref$pageSpot = _ref.pageSpot, + pageSpot = _ref$pageSpot === void 0 ? null : _ref$pageSpot, + _ref$pageNumber = _ref.pageNumber, + pageNumber = _ref$pageNumber === void 0 ? null : _ref$pageNumber; + + if (!pageSpot && !this.isInPresentationMode) { + var left = pageDiv.offsetLeft + pageDiv.clientLeft; + var right = left + pageDiv.clientWidth; + var _this$container = this.container, + scrollLeft = _this$container.scrollLeft, + clientWidth = _this$container.clientWidth; + + if (this._isScrollModeHorizontal || left < scrollLeft || right > scrollLeft + clientWidth) { + pageSpot = { + left: 0, + top: 0 + }; + } + } + + _get(_getPrototypeOf(PDFViewer.prototype), "_scrollIntoView", this).call(this, { + pageDiv: pageDiv, + pageSpot: pageSpot, + pageNumber: pageNumber + }); + } + }, { + key: "_getVisiblePages", + value: function _getVisiblePages() { + if (this.isInPresentationMode) { + return this._getCurrentVisiblePage(); + } + + return _get(_getPrototypeOf(PDFViewer.prototype), "_getVisiblePages", this).call(this); + } + }, { + key: "_updateHelper", + value: function _updateHelper(visiblePages) { + if (this.isInPresentationMode) { + return; + } + + var currentId = this._currentPageNumber; + var stillFullyVisible = false; + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = visiblePages[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var page = _step.value; + + if (page.percent < 100) { + break; + } + + if (page.id === currentId) { + stillFullyVisible = true; + break; + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator["return"] != null) { + _iterator["return"](); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + if (!stillFullyVisible) { + currentId = visiblePages[0].id; + } + + this._setCurrentPageNumber(currentId); + } + }, { + key: "_setDocumentViewerElement", + get: function get() { + return (0, _pdfjsLib.shadow)(this, '_setDocumentViewerElement', this.viewer); + } + }]); + + return PDFViewer; +}(_base_viewer.BaseViewer); + +exports.PDFViewer = PDFViewer; + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.BaseViewer = void 0; + +var _ui_utils = __webpack_require__(5); + +var _pdf_rendering_queue = __webpack_require__(11); + +var _annotation_layer_builder = __webpack_require__(29); + +var _pdfjsLib = __webpack_require__(7); + +var _pdf_page_view = __webpack_require__(30); + +var _pdf_link_service = __webpack_require__(21); + +var _text_layer_builder = __webpack_require__(31); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var DEFAULT_CACHE_SIZE = 10; + +function PDFPageViewBuffer(size) { + var data = []; + + this.push = function (view) { + var i = data.indexOf(view); + + if (i >= 0) { + data.splice(i, 1); + } + + data.push(view); + + if (data.length > size) { + data.shift().destroy(); + } + }; + + this.resize = function (newSize, pagesToKeep) { + size = newSize; + + if (pagesToKeep) { + var pageIdsToKeep = new Set(); + + for (var i = 0, iMax = pagesToKeep.length; i < iMax; ++i) { + pageIdsToKeep.add(pagesToKeep[i].id); + } + + (0, _ui_utils.moveToEndOfArray)(data, function (page) { + return pageIdsToKeep.has(page.id); + }); + } + + while (data.length > size) { + data.shift().destroy(); + } + }; +} + +function isSameScale(oldScale, newScale) { + if (newScale === oldScale) { + return true; + } + + if (Math.abs(newScale - oldScale) < 1e-15) { + return true; + } + + return false; +} + +var BaseViewer = +/*#__PURE__*/ +function () { + function BaseViewer(options) { + var _this = this; + + _classCallCheck(this, BaseViewer); + + if (this.constructor === BaseViewer) { + throw new Error('Cannot initialize BaseViewer.'); + } + + this._name = this.constructor.name; + this.container = options.container; + this.viewer = options.viewer || options.container.firstElementChild; + this.eventBus = options.eventBus || (0, _ui_utils.getGlobalEventBus)(); + this.linkService = options.linkService || new _pdf_link_service.SimpleLinkService(); + this.downloadManager = options.downloadManager || null; + this.findController = options.findController || null; + this.removePageBorders = options.removePageBorders || false; + this.textLayerMode = Number.isInteger(options.textLayerMode) ? options.textLayerMode : _ui_utils.TextLayerMode.ENABLE; + this.imageResourcesPath = options.imageResourcesPath || ''; + this.renderInteractiveForms = options.renderInteractiveForms || false; + this.enablePrintAutoRotate = options.enablePrintAutoRotate || false; + this.renderer = options.renderer || _ui_utils.RendererType.CANVAS; + this.enableWebGL = options.enableWebGL || false; + this.useOnlyCssZoom = options.useOnlyCssZoom || false; + this.maxCanvasPixels = options.maxCanvasPixels; + this.l10n = options.l10n || _ui_utils.NullL10n; + this.defaultRenderingQueue = !options.renderingQueue; + + if (this.defaultRenderingQueue) { + this.renderingQueue = new _pdf_rendering_queue.PDFRenderingQueue(); + this.renderingQueue.setViewer(this); + } else { + this.renderingQueue = options.renderingQueue; + } + + this.scroll = (0, _ui_utils.watchScroll)(this.container, this._scrollUpdate.bind(this)); + this.presentationModeState = _ui_utils.PresentationModeState.UNKNOWN; + + this._resetView(); + + if (this.removePageBorders) { + this.viewer.classList.add('removePageBorders'); + } + + Promise.resolve().then(function () { + _this.eventBus.dispatch('baseviewerinit', { + source: _this + }); + }); + } + + _createClass(BaseViewer, [{ + key: "getPageView", + value: function getPageView(index) { + return this._pages[index]; + } + }, { + key: "_setCurrentPageNumber", + value: function _setCurrentPageNumber(val) { + var resetCurrentPageView = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + if (this._currentPageNumber === val) { + if (resetCurrentPageView) { + this._resetCurrentPageView(); + } + + return true; + } + + if (!(0 < val && val <= this.pagesCount)) { + return false; + } + + this._currentPageNumber = val; + this.eventBus.dispatch('pagechanging', { + source: this, + pageNumber: val, + pageLabel: this._pageLabels && this._pageLabels[val - 1] + }); + + if (resetCurrentPageView) { + this._resetCurrentPageView(); + } + + return true; + } + }, { + key: "setDocument", + value: function setDocument(pdfDocument) { + var _this2 = this; + + if (this.pdfDocument) { + this._cancelRendering(); + + this._resetView(); + + if (this.findController) { + this.findController.setDocument(null); + } + } + + this.pdfDocument = pdfDocument; + + if (!pdfDocument) { + return; + } + + var pagesCount = pdfDocument.numPages; + var pagesCapability = (0, _pdfjsLib.createPromiseCapability)(); + this.pagesPromise = pagesCapability.promise; + pagesCapability.promise.then(function () { + _this2._pageViewsReady = true; + + _this2.eventBus.dispatch('pagesloaded', { + source: _this2, + pagesCount: pagesCount + }); + }); + var onePageRenderedCapability = (0, _pdfjsLib.createPromiseCapability)(); + this.onePageRendered = onePageRenderedCapability.promise; + + var bindOnAfterAndBeforeDraw = function bindOnAfterAndBeforeDraw(pageView) { + pageView.onBeforeDraw = function () { + _this2._buffer.push(pageView); + }; + + pageView.onAfterDraw = function () { + if (!onePageRenderedCapability.settled) { + onePageRenderedCapability.resolve(); + } + }; + }; + + var firstPagePromise = pdfDocument.getPage(1); + this.firstPagePromise = firstPagePromise; + firstPagePromise.then(function (pdfPage) { + var scale = _this2.currentScale; + var viewport = pdfPage.getViewport({ + scale: scale * _ui_utils.CSS_UNITS + }); + + for (var pageNum = 1; pageNum <= pagesCount; ++pageNum) { + var textLayerFactory = null; + + if (_this2.textLayerMode !== _ui_utils.TextLayerMode.DISABLE) { + textLayerFactory = _this2; + } + + var pageView = new _pdf_page_view.PDFPageView({ + container: _this2._setDocumentViewerElement, + eventBus: _this2.eventBus, + id: pageNum, + scale: scale, + defaultViewport: viewport.clone(), + renderingQueue: _this2.renderingQueue, + textLayerFactory: textLayerFactory, + textLayerMode: _this2.textLayerMode, + annotationLayerFactory: _this2, + imageResourcesPath: _this2.imageResourcesPath, + renderInteractiveForms: _this2.renderInteractiveForms, + renderer: _this2.renderer, + enableWebGL: _this2.enableWebGL, + useOnlyCssZoom: _this2.useOnlyCssZoom, + maxCanvasPixels: _this2.maxCanvasPixels, + l10n: _this2.l10n + }); + bindOnAfterAndBeforeDraw(pageView); + + _this2._pages.push(pageView); + } + + if (_this2._spreadMode !== _ui_utils.SpreadMode.NONE) { + _this2._updateSpreadMode(); + } + + onePageRenderedCapability.promise.then(function () { + if (_this2.findController) { + _this2.findController.setDocument(pdfDocument); + } + + if (pdfDocument.loadingParams['disableAutoFetch']) { + pagesCapability.resolve(); + return; + } + + var getPagesLeft = pagesCount; + + var _loop = function _loop(_pageNum) { + pdfDocument.getPage(_pageNum).then(function (pdfPage) { + var pageView = _this2._pages[_pageNum - 1]; + + if (!pageView.pdfPage) { + pageView.setPdfPage(pdfPage); + } + + _this2.linkService.cachePageRef(_pageNum, pdfPage.ref); + + if (--getPagesLeft === 0) { + pagesCapability.resolve(); + } + }, function (reason) { + console.error("Unable to get page ".concat(_pageNum, " to initialize viewer"), reason); + + if (--getPagesLeft === 0) { + pagesCapability.resolve(); + } + }); + }; + + for (var _pageNum = 1; _pageNum <= pagesCount; ++_pageNum) { + _loop(_pageNum); + } + }); + + _this2.eventBus.dispatch('pagesinit', { + source: _this2 + }); + + if (_this2.defaultRenderingQueue) { + _this2.update(); + } + })["catch"](function (reason) { + console.error('Unable to initialize viewer', reason); + }); + } + }, { + key: "setPageLabels", + value: function setPageLabels(labels) { + if (!this.pdfDocument) { + return; + } + + if (!labels) { + this._pageLabels = null; + } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) { + this._pageLabels = null; + console.error("".concat(this._name, ".setPageLabels: Invalid page labels.")); + } else { + this._pageLabels = labels; + } + + for (var i = 0, ii = this._pages.length; i < ii; i++) { + var pageView = this._pages[i]; + var label = this._pageLabels && this._pageLabels[i]; + pageView.setPageLabel(label); + } + } + }, { + key: "_resetView", + value: function _resetView() { + this._pages = []; + this._currentPageNumber = 1; + this._currentScale = _ui_utils.UNKNOWN_SCALE; + this._currentScaleValue = null; + this._pageLabels = null; + this._buffer = new PDFPageViewBuffer(DEFAULT_CACHE_SIZE); + this._location = null; + this._pagesRotation = 0; + this._pagesRequests = []; + this._pageViewsReady = false; + this._scrollMode = _ui_utils.ScrollMode.VERTICAL; + this._spreadMode = _ui_utils.SpreadMode.NONE; + this.viewer.textContent = ''; + + this._updateScrollMode(); + } + }, { + key: "_scrollUpdate", + value: function _scrollUpdate() { + if (this.pagesCount === 0) { + return; + } + + this.update(); + } + }, { + key: "_scrollIntoView", + value: function _scrollIntoView(_ref) { + var pageDiv = _ref.pageDiv, + _ref$pageSpot = _ref.pageSpot, + pageSpot = _ref$pageSpot === void 0 ? null : _ref$pageSpot, + _ref$pageNumber = _ref.pageNumber, + pageNumber = _ref$pageNumber === void 0 ? null : _ref$pageNumber; + (0, _ui_utils.scrollIntoView)(pageDiv, pageSpot); + } + }, { + key: "_setScaleUpdatePages", + value: function _setScaleUpdatePages(newScale, newValue) { + var noScroll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + var preset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + this._currentScaleValue = newValue.toString(); + + if (isSameScale(this._currentScale, newScale)) { + if (preset) { + this.eventBus.dispatch('scalechanging', { + source: this, + scale: newScale, + presetValue: newValue + }); + } + + return; + } + + for (var i = 0, ii = this._pages.length; i < ii; i++) { + this._pages[i].update(newScale); + } + + this._currentScale = newScale; + + if (!noScroll) { + var page = this._currentPageNumber, + dest; + + if (this._location && !(this.isInPresentationMode || this.isChangingPresentationMode)) { + page = this._location.pageNumber; + dest = [null, { + name: 'XYZ' + }, this._location.left, this._location.top, null]; + } + + this.scrollPageIntoView({ + pageNumber: page, + destArray: dest, + allowNegativeOffset: true + }); + } + + this.eventBus.dispatch('scalechanging', { + source: this, + scale: newScale, + presetValue: preset ? newValue : undefined + }); + + if (this.defaultRenderingQueue) { + this.update(); + } + } + }, { + key: "_setScale", + value: function _setScale(value) { + var noScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var scale = parseFloat(value); + + if (scale > 0) { + this._setScaleUpdatePages(scale, value, noScroll, false); + } else { + var currentPage = this._pages[this._currentPageNumber - 1]; + + if (!currentPage) { + return; + } + + var noPadding = this.isInPresentationMode || this.removePageBorders; + var hPadding = noPadding ? 0 : _ui_utils.SCROLLBAR_PADDING; + var vPadding = noPadding ? 0 : _ui_utils.VERTICAL_PADDING; + + if (!noPadding && this._isScrollModeHorizontal) { + var _ref2 = [vPadding, hPadding]; + hPadding = _ref2[0]; + vPadding = _ref2[1]; + } + + var pageWidthScale = (this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale; + var pageHeightScale = (this.container.clientHeight - vPadding) / currentPage.height * currentPage.scale; + + switch (value) { + case 'page-actual': + scale = 1; + break; + + case 'page-width': + scale = pageWidthScale; + break; + + case 'page-height': + scale = pageHeightScale; + break; + + case 'page-fit': + scale = Math.min(pageWidthScale, pageHeightScale); + break; + + case 'auto': + var horizontalScale = (0, _ui_utils.isPortraitOrientation)(currentPage) ? pageWidthScale : Math.min(pageHeightScale, pageWidthScale); + scale = Math.min(_ui_utils.MAX_AUTO_SCALE, horizontalScale); + break; + + default: + console.error("".concat(this._name, "._setScale: \"").concat(value, "\" is an unknown zoom value.")); + return; + } + + this._setScaleUpdatePages(scale, value, noScroll, true); + } + } + }, { + key: "_resetCurrentPageView", + value: function _resetCurrentPageView() { + if (this.isInPresentationMode) { + this._setScale(this._currentScaleValue, true); + } + + var pageView = this._pages[this._currentPageNumber - 1]; + + this._scrollIntoView({ + pageDiv: pageView.div + }); + } + }, { + key: "scrollPageIntoView", + value: function scrollPageIntoView(_ref3) { + var pageNumber = _ref3.pageNumber, + _ref3$destArray = _ref3.destArray, + destArray = _ref3$destArray === void 0 ? null : _ref3$destArray, + _ref3$allowNegativeOf = _ref3.allowNegativeOffset, + allowNegativeOffset = _ref3$allowNegativeOf === void 0 ? false : _ref3$allowNegativeOf; + + if (!this.pdfDocument) { + return; + } + + var pageView = Number.isInteger(pageNumber) && this._pages[pageNumber - 1]; + + if (!pageView) { + console.error("".concat(this._name, ".scrollPageIntoView: ") + "\"".concat(pageNumber, "\" is not a valid pageNumber parameter.")); + return; + } + + if (this.isInPresentationMode || !destArray) { + this._setCurrentPageNumber(pageNumber, true); + + return; + } + + var x = 0, + y = 0; + var width = 0, + height = 0, + widthScale, + heightScale; + var changeOrientation = pageView.rotation % 180 === 0 ? false : true; + var pageWidth = (changeOrientation ? pageView.height : pageView.width) / pageView.scale / _ui_utils.CSS_UNITS; + var pageHeight = (changeOrientation ? pageView.width : pageView.height) / pageView.scale / _ui_utils.CSS_UNITS; + var scale = 0; + + switch (destArray[1].name) { + case 'XYZ': + x = destArray[2]; + y = destArray[3]; + scale = destArray[4]; + x = x !== null ? x : 0; + y = y !== null ? y : pageHeight; + break; + + case 'Fit': + case 'FitB': + scale = 'page-fit'; + break; + + case 'FitH': + case 'FitBH': + y = destArray[2]; + scale = 'page-width'; + + if (y === null && this._location) { + x = this._location.left; + y = this._location.top; + } + + break; + + case 'FitV': + case 'FitBV': + x = destArray[2]; + width = pageWidth; + height = pageHeight; + scale = 'page-height'; + break; + + case 'FitR': + x = destArray[2]; + y = destArray[3]; + width = destArray[4] - x; + height = destArray[5] - y; + var hPadding = this.removePageBorders ? 0 : _ui_utils.SCROLLBAR_PADDING; + var vPadding = this.removePageBorders ? 0 : _ui_utils.VERTICAL_PADDING; + widthScale = (this.container.clientWidth - hPadding) / width / _ui_utils.CSS_UNITS; + heightScale = (this.container.clientHeight - vPadding) / height / _ui_utils.CSS_UNITS; + scale = Math.min(Math.abs(widthScale), Math.abs(heightScale)); + break; + + default: + console.error("".concat(this._name, ".scrollPageIntoView: ") + "\"".concat(destArray[1].name, "\" is not a valid destination type.")); + return; + } + + if (scale && scale !== this._currentScale) { + this.currentScaleValue = scale; + } else if (this._currentScale === _ui_utils.UNKNOWN_SCALE) { + this.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; + } + + if (scale === 'page-fit' && !destArray[4]) { + this._scrollIntoView({ + pageDiv: pageView.div, + pageNumber: pageNumber + }); + + return; + } + + var boundingRect = [pageView.viewport.convertToViewportPoint(x, y), pageView.viewport.convertToViewportPoint(x + width, y + height)]; + var left = Math.min(boundingRect[0][0], boundingRect[1][0]); + var top = Math.min(boundingRect[0][1], boundingRect[1][1]); + + if (!allowNegativeOffset) { + left = Math.max(left, 0); + top = Math.max(top, 0); + } + + this._scrollIntoView({ + pageDiv: pageView.div, + pageSpot: { + left: left, + top: top + }, + pageNumber: pageNumber + }); + } + }, { + key: "_updateLocation", + value: function _updateLocation(firstPage) { + var currentScale = this._currentScale; + var currentScaleValue = this._currentScaleValue; + var normalizedScaleValue = parseFloat(currentScaleValue) === currentScale ? Math.round(currentScale * 10000) / 100 : currentScaleValue; + var pageNumber = firstPage.id; + var pdfOpenParams = '#page=' + pageNumber; + pdfOpenParams += '&zoom=' + normalizedScaleValue; + var currentPageView = this._pages[pageNumber - 1]; + var container = this.container; + var topLeft = currentPageView.getPagePoint(container.scrollLeft - firstPage.x, container.scrollTop - firstPage.y); + var intLeft = Math.round(topLeft[0]); + var intTop = Math.round(topLeft[1]); + pdfOpenParams += ',' + intLeft + ',' + intTop; + this._location = { + pageNumber: pageNumber, + scale: normalizedScaleValue, + top: intTop, + left: intLeft, + rotation: this._pagesRotation, + pdfOpenParams: pdfOpenParams + }; + } + }, { + key: "_updateHelper", + value: function _updateHelper(visiblePages) { + throw new Error('Not implemented: _updateHelper'); + } + }, { + key: "update", + value: function update() { + var visible = this._getVisiblePages(); + + var visiblePages = visible.views, + numVisiblePages = visiblePages.length; + + if (numVisiblePages === 0) { + return; + } + + var newCacheSize = Math.max(DEFAULT_CACHE_SIZE, 2 * numVisiblePages + 1); + + this._buffer.resize(newCacheSize, visiblePages); + + this.renderingQueue.renderHighestPriority(visible); + + this._updateHelper(visiblePages); + + this._updateLocation(visible.first); + + this.eventBus.dispatch('updateviewarea', { + source: this, + location: this._location + }); + } + }, { + key: "containsElement", + value: function containsElement(element) { + return this.container.contains(element); + } + }, { + key: "focus", + value: function focus() { + this.container.focus(); + } + }, { + key: "_getCurrentVisiblePage", + value: function _getCurrentVisiblePage() { + if (!this.pagesCount) { + return { + views: [] + }; + } + + var pageView = this._pages[this._currentPageNumber - 1]; + var element = pageView.div; + var view = { + id: pageView.id, + x: element.offsetLeft + element.clientLeft, + y: element.offsetTop + element.clientTop, + view: pageView + }; + return { + first: view, + last: view, + views: [view] + }; + } + }, { + key: "_getVisiblePages", + value: function _getVisiblePages() { + return (0, _ui_utils.getVisibleElements)(this.container, this._pages, true, this._isScrollModeHorizontal); + } + }, { + key: "isPageVisible", + value: function isPageVisible(pageNumber) { + if (!this.pdfDocument) { + return false; + } + + if (this.pageNumber < 1 || pageNumber > this.pagesCount) { + console.error("".concat(this._name, ".isPageVisible: \"").concat(pageNumber, "\" is out of bounds.")); + return false; + } + + return this._getVisiblePages().views.some(function (view) { + return view.id === pageNumber; + }); + } + }, { + key: "cleanup", + value: function cleanup() { + for (var i = 0, ii = this._pages.length; i < ii; i++) { + if (this._pages[i] && this._pages[i].renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) { + this._pages[i].reset(); + } + } + } + }, { + key: "_cancelRendering", + value: function _cancelRendering() { + for (var i = 0, ii = this._pages.length; i < ii; i++) { + if (this._pages[i]) { + this._pages[i].cancelRendering(); + } + } + } + }, { + key: "_ensurePdfPageLoaded", + value: function _ensurePdfPageLoaded(pageView) { + var _this3 = this; + + if (pageView.pdfPage) { + return Promise.resolve(pageView.pdfPage); + } + + var pageNumber = pageView.id; + + if (this._pagesRequests[pageNumber]) { + return this._pagesRequests[pageNumber]; + } + + var promise = this.pdfDocument.getPage(pageNumber).then(function (pdfPage) { + if (!pageView.pdfPage) { + pageView.setPdfPage(pdfPage); + } + + _this3._pagesRequests[pageNumber] = null; + return pdfPage; + })["catch"](function (reason) { + console.error('Unable to get page for page view', reason); + _this3._pagesRequests[pageNumber] = null; + }); + this._pagesRequests[pageNumber] = promise; + return promise; + } + }, { + key: "forceRendering", + value: function forceRendering(currentlyVisiblePages) { + var _this4 = this; + + var visiblePages = currentlyVisiblePages || this._getVisiblePages(); + + var scrollAhead = this._isScrollModeHorizontal ? this.scroll.right : this.scroll.down; + var pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead); + + if (pageView) { + this._ensurePdfPageLoaded(pageView).then(function () { + _this4.renderingQueue.renderView(pageView); + }); + + return true; + } + + return false; + } + }, { + key: "createTextLayerBuilder", + value: function createTextLayerBuilder(textLayerDiv, pageIndex, viewport) { + var enhanceTextSelection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + return new _text_layer_builder.TextLayerBuilder({ + textLayerDiv: textLayerDiv, + eventBus: this.eventBus, + pageIndex: pageIndex, + viewport: viewport, + findController: this.isInPresentationMode ? null : this.findController, + enhanceTextSelection: this.isInPresentationMode ? false : enhanceTextSelection + }); + } + }, { + key: "createAnnotationLayerBuilder", + value: function createAnnotationLayerBuilder(pageDiv, pdfPage) { + var imageResourcesPath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; + var renderInteractiveForms = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + var l10n = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _ui_utils.NullL10n; + return new _annotation_layer_builder.AnnotationLayerBuilder({ + pageDiv: pageDiv, + pdfPage: pdfPage, + imageResourcesPath: imageResourcesPath, + renderInteractiveForms: renderInteractiveForms, + linkService: this.linkService, + downloadManager: this.downloadManager, + l10n: l10n + }); + } + }, { + key: "getPagesOverview", + value: function getPagesOverview() { + var pagesOverview = this._pages.map(function (pageView) { + var viewport = pageView.pdfPage.getViewport({ + scale: 1 + }); + return { + width: viewport.width, + height: viewport.height, + rotation: viewport.rotation + }; + }); + + if (!this.enablePrintAutoRotate) { + return pagesOverview; + } + + var isFirstPagePortrait = (0, _ui_utils.isPortraitOrientation)(pagesOverview[0]); + return pagesOverview.map(function (size) { + if (isFirstPagePortrait === (0, _ui_utils.isPortraitOrientation)(size)) { + return size; + } + + return { + width: size.height, + height: size.width, + rotation: (size.rotation + 90) % 360 + }; + }); + } + }, { + key: "_updateScrollMode", + value: function _updateScrollMode() { + var pageNumber = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + var scrollMode = this._scrollMode, + viewer = this.viewer; + viewer.classList.toggle('scrollHorizontal', scrollMode === _ui_utils.ScrollMode.HORIZONTAL); + viewer.classList.toggle('scrollWrapped', scrollMode === _ui_utils.ScrollMode.WRAPPED); + + if (!this.pdfDocument || !pageNumber) { + return; + } + + if (this._currentScaleValue && isNaN(this._currentScaleValue)) { + this._setScale(this._currentScaleValue, true); + } + + this._setCurrentPageNumber(pageNumber, true); + + this.update(); + } + }, { + key: "_updateSpreadMode", + value: function _updateSpreadMode() { + var pageNumber = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + + if (!this.pdfDocument) { + return; + } + + var viewer = this.viewer, + pages = this._pages; + viewer.textContent = ''; + + if (this._spreadMode === _ui_utils.SpreadMode.NONE) { + for (var i = 0, iMax = pages.length; i < iMax; ++i) { + viewer.appendChild(pages[i].div); + } + } else { + var parity = this._spreadMode - 1; + var spread = null; + + for (var _i = 0, _iMax = pages.length; _i < _iMax; ++_i) { + if (spread === null) { + spread = document.createElement('div'); + spread.className = 'spread'; + viewer.appendChild(spread); + } else if (_i % 2 === parity) { + spread = spread.cloneNode(false); + viewer.appendChild(spread); + } + + spread.appendChild(pages[_i].div); + } + } + + if (!pageNumber) { + return; + } + + this._setCurrentPageNumber(pageNumber, true); + + this.update(); + } + }, { + key: "pagesCount", + get: function get() { + return this._pages.length; + } + }, { + key: "pageViewsReady", + get: function get() { + return this._pageViewsReady; + } + }, { + key: "currentPageNumber", + get: function get() { + return this._currentPageNumber; + }, + set: function set(val) { + if (!Number.isInteger(val)) { + throw new Error('Invalid page number.'); + } + + if (!this.pdfDocument) { + return; + } + + if (!this._setCurrentPageNumber(val, true)) { + console.error("".concat(this._name, ".currentPageNumber: \"").concat(val, "\" is not a valid page.")); + } + } + }, { + key: "currentPageLabel", + get: function get() { + return this._pageLabels && this._pageLabels[this._currentPageNumber - 1]; + }, + set: function set(val) { + if (!this.pdfDocument) { + return; + } + + var page = val | 0; + + if (this._pageLabels) { + var i = this._pageLabels.indexOf(val); + + if (i >= 0) { + page = i + 1; + } + } + + if (!this._setCurrentPageNumber(page, true)) { + console.error("".concat(this._name, ".currentPageLabel: \"").concat(val, "\" is not a valid page.")); + } + } + }, { + key: "currentScale", + get: function get() { + return this._currentScale !== _ui_utils.UNKNOWN_SCALE ? this._currentScale : _ui_utils.DEFAULT_SCALE; + }, + set: function set(val) { + if (isNaN(val)) { + throw new Error('Invalid numeric scale.'); + } + + if (!this.pdfDocument) { + return; + } + + this._setScale(val, false); + } + }, { + key: "currentScaleValue", + get: function get() { + return this._currentScaleValue; + }, + set: function set(val) { + if (!this.pdfDocument) { + return; + } + + this._setScale(val, false); + } + }, { + key: "pagesRotation", + get: function get() { + return this._pagesRotation; + }, + set: function set(rotation) { + if (!(0, _ui_utils.isValidRotation)(rotation)) { + throw new Error('Invalid pages rotation angle.'); + } + + if (!this.pdfDocument) { + return; + } + + if (this._pagesRotation === rotation) { + return; + } + + this._pagesRotation = rotation; + var pageNumber = this._currentPageNumber; + + for (var i = 0, ii = this._pages.length; i < ii; i++) { + var pageView = this._pages[i]; + pageView.update(pageView.scale, rotation); + } + + if (this._currentScaleValue) { + this._setScale(this._currentScaleValue, true); + } + + this.eventBus.dispatch('rotationchanging', { + source: this, + pagesRotation: rotation, + pageNumber: pageNumber + }); + + if (this.defaultRenderingQueue) { + this.update(); + } + } + }, { + key: "_setDocumentViewerElement", + get: function get() { + throw new Error('Not implemented: _setDocumentViewerElement'); + } + }, { + key: "_isScrollModeHorizontal", + get: function get() { + return this.isInPresentationMode ? false : this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL; + } + }, { + key: "isInPresentationMode", + get: function get() { + return this.presentationModeState === _ui_utils.PresentationModeState.FULLSCREEN; + } + }, { + key: "isChangingPresentationMode", + get: function get() { + return this.presentationModeState === _ui_utils.PresentationModeState.CHANGING; + } + }, { + key: "isHorizontalScrollbarEnabled", + get: function get() { + return this.isInPresentationMode ? false : this.container.scrollWidth > this.container.clientWidth; + } + }, { + key: "isVerticalScrollbarEnabled", + get: function get() { + return this.isInPresentationMode ? false : this.container.scrollHeight > this.container.clientHeight; + } + }, { + key: "hasEqualPageSizes", + get: function get() { + var firstPageView = this._pages[0]; + + for (var i = 1, ii = this._pages.length; i < ii; ++i) { + var pageView = this._pages[i]; + + if (pageView.width !== firstPageView.width || pageView.height !== firstPageView.height) { + return false; + } + } + + return true; + } + }, { + key: "scrollMode", + get: function get() { + return this._scrollMode; + }, + set: function set(mode) { + if (this._scrollMode === mode) { + return; + } + + if (!(0, _ui_utils.isValidScrollMode)(mode)) { + throw new Error("Invalid scroll mode: ".concat(mode)); + } + + this._scrollMode = mode; + this.eventBus.dispatch('scrollmodechanged', { + source: this, + mode: mode + }); + + this._updateScrollMode(this._currentPageNumber); + } + }, { + key: "spreadMode", + get: function get() { + return this._spreadMode; + }, + set: function set(mode) { + if (this._spreadMode === mode) { + return; + } + + if (!(0, _ui_utils.isValidSpreadMode)(mode)) { + throw new Error("Invalid spread mode: ".concat(mode)); + } + + this._spreadMode = mode; + this.eventBus.dispatch('spreadmodechanged', { + source: this, + mode: mode + }); + + this._updateSpreadMode(this._currentPageNumber); + } + }]); + + return BaseViewer; +}(); + +exports.BaseViewer = BaseViewer; + +/***/ }), +/* 29 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.DefaultAnnotationLayerFactory = exports.AnnotationLayerBuilder = void 0; + +var _pdfjsLib = __webpack_require__(7); + +var _ui_utils = __webpack_require__(5); + +var _pdf_link_service = __webpack_require__(21); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var AnnotationLayerBuilder = +/*#__PURE__*/ +function () { + function AnnotationLayerBuilder(_ref) { + var pageDiv = _ref.pageDiv, + pdfPage = _ref.pdfPage, + linkService = _ref.linkService, + downloadManager = _ref.downloadManager, + _ref$imageResourcesPa = _ref.imageResourcesPath, + imageResourcesPath = _ref$imageResourcesPa === void 0 ? '' : _ref$imageResourcesPa, + _ref$renderInteractiv = _ref.renderInteractiveForms, + renderInteractiveForms = _ref$renderInteractiv === void 0 ? false : _ref$renderInteractiv, + _ref$l10n = _ref.l10n, + l10n = _ref$l10n === void 0 ? _ui_utils.NullL10n : _ref$l10n; + + _classCallCheck(this, AnnotationLayerBuilder); + + this.pageDiv = pageDiv; + this.pdfPage = pdfPage; + this.linkService = linkService; + this.downloadManager = downloadManager; + this.imageResourcesPath = imageResourcesPath; + this.renderInteractiveForms = renderInteractiveForms; + this.l10n = l10n; + this.div = null; + this._cancelled = false; + } + + _createClass(AnnotationLayerBuilder, [{ + key: "render", + value: function render(viewport) { + var _this = this; + + var intent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'display'; + this.pdfPage.getAnnotations({ + intent: intent + }).then(function (annotations) { + if (_this._cancelled) { + return; + } + + var parameters = { + viewport: viewport.clone({ + dontFlip: true + }), + div: _this.div, + annotations: annotations, + page: _this.pdfPage, + imageResourcesPath: _this.imageResourcesPath, + renderInteractiveForms: _this.renderInteractiveForms, + linkService: _this.linkService, + downloadManager: _this.downloadManager + }; + + if (_this.div) { + _pdfjsLib.AnnotationLayer.update(parameters); + } else { + if (annotations.length === 0) { + return; + } + + _this.div = document.createElement('div'); + _this.div.className = 'annotationLayer'; + + _this.pageDiv.appendChild(_this.div); + + parameters.div = _this.div; + + _pdfjsLib.AnnotationLayer.render(parameters); + + _this.l10n.translate(_this.div); + } + }); + } + }, { + key: "cancel", + value: function cancel() { + this._cancelled = true; + } + }, { + key: "hide", + value: function hide() { + if (!this.div) { + return; + } + + this.div.setAttribute('hidden', 'true'); + } + }]); + + return AnnotationLayerBuilder; +}(); + +exports.AnnotationLayerBuilder = AnnotationLayerBuilder; + +var DefaultAnnotationLayerFactory = +/*#__PURE__*/ +function () { + function DefaultAnnotationLayerFactory() { + _classCallCheck(this, DefaultAnnotationLayerFactory); + } + + _createClass(DefaultAnnotationLayerFactory, [{ + key: "createAnnotationLayerBuilder", + value: function createAnnotationLayerBuilder(pageDiv, pdfPage) { + var imageResourcesPath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; + var renderInteractiveForms = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + var l10n = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _ui_utils.NullL10n; + return new AnnotationLayerBuilder({ + pageDiv: pageDiv, + pdfPage: pdfPage, + imageResourcesPath: imageResourcesPath, + renderInteractiveForms: renderInteractiveForms, + linkService: new _pdf_link_service.SimpleLinkService(), + l10n: l10n + }); + } + }]); + + return DefaultAnnotationLayerFactory; +}(); + +exports.DefaultAnnotationLayerFactory = DefaultAnnotationLayerFactory; + +/***/ }), +/* 30 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFPageView = void 0; + +var _regenerator = _interopRequireDefault(__webpack_require__(2)); + +var _ui_utils = __webpack_require__(5); + +var _pdfjsLib = __webpack_require__(7); + +var _pdf_rendering_queue = __webpack_require__(11); + +var _viewer_compatibility = __webpack_require__(8); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var MAX_CANVAS_PIXELS = _viewer_compatibility.viewerCompatibilityParams.maxCanvasPixels || 16777216; + +var PDFPageView = +/*#__PURE__*/ +function () { + function PDFPageView(options) { + _classCallCheck(this, PDFPageView); + + var container = options.container; + var defaultViewport = options.defaultViewport; + this.id = options.id; + this.renderingId = 'page' + this.id; + this.pdfPage = null; + this.pageLabel = null; + this.rotation = 0; + this.scale = options.scale || _ui_utils.DEFAULT_SCALE; + this.viewport = defaultViewport; + this.pdfPageRotate = defaultViewport.rotation; + this.hasRestrictedScaling = false; + this.textLayerMode = Number.isInteger(options.textLayerMode) ? options.textLayerMode : _ui_utils.TextLayerMode.ENABLE; + this.imageResourcesPath = options.imageResourcesPath || ''; + this.renderInteractiveForms = options.renderInteractiveForms || false; + this.useOnlyCssZoom = options.useOnlyCssZoom || false; + this.maxCanvasPixels = options.maxCanvasPixels || MAX_CANVAS_PIXELS; + this.eventBus = options.eventBus || (0, _ui_utils.getGlobalEventBus)(); + this.renderingQueue = options.renderingQueue; + this.textLayerFactory = options.textLayerFactory; + this.annotationLayerFactory = options.annotationLayerFactory; + this.renderer = options.renderer || _ui_utils.RendererType.CANVAS; + this.enableWebGL = options.enableWebGL || false; + this.l10n = options.l10n || _ui_utils.NullL10n; + this.paintTask = null; + this.paintedViewportMap = new WeakMap(); + this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL; + this.resume = null; + this.error = null; + this.onBeforeDraw = null; + this.onAfterDraw = null; + this.annotationLayer = null; + this.textLayer = null; + this.zoomLayer = null; + var div = document.createElement('div'); + div.className = 'page'; + div.style.width = Math.floor(this.viewport.width) + 'px'; + div.style.height = Math.floor(this.viewport.height) + 'px'; + div.setAttribute('data-page-number', this.id); + this.div = div; + container.appendChild(div); + } + + _createClass(PDFPageView, [{ + key: "setPdfPage", + value: function setPdfPage(pdfPage) { + this.pdfPage = pdfPage; + this.pdfPageRotate = pdfPage.rotate; + var totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = pdfPage.getViewport({ + scale: this.scale * _ui_utils.CSS_UNITS, + rotation: totalRotation + }); + this.stats = pdfPage.stats; + this.reset(); + } + }, { + key: "destroy", + value: function destroy() { + this.reset(); + + if (this.pdfPage) { + this.pdfPage.cleanup(); + } + } + }, { + key: "_resetZoomLayer", + value: function _resetZoomLayer() { + var removeFromDOM = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + + if (!this.zoomLayer) { + return; + } + + var zoomLayerCanvas = this.zoomLayer.firstChild; + this.paintedViewportMap["delete"](zoomLayerCanvas); + zoomLayerCanvas.width = 0; + zoomLayerCanvas.height = 0; + + if (removeFromDOM) { + this.zoomLayer.remove(); + } + + this.zoomLayer = null; + } + }, { + key: "reset", + value: function reset() { + var keepZoomLayer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + var keepAnnotations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + this.cancelRendering(keepAnnotations); + this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL; + var div = this.div; + div.style.width = Math.floor(this.viewport.width) + 'px'; + div.style.height = Math.floor(this.viewport.height) + 'px'; + var childNodes = div.childNodes; + var currentZoomLayerNode = keepZoomLayer && this.zoomLayer || null; + var currentAnnotationNode = keepAnnotations && this.annotationLayer && this.annotationLayer.div || null; + + for (var i = childNodes.length - 1; i >= 0; i--) { + var node = childNodes[i]; + + if (currentZoomLayerNode === node || currentAnnotationNode === node) { + continue; + } + + div.removeChild(node); + } + + div.removeAttribute('data-loaded'); + + if (currentAnnotationNode) { + this.annotationLayer.hide(); + } else if (this.annotationLayer) { + this.annotationLayer.cancel(); + this.annotationLayer = null; + } + + if (!currentZoomLayerNode) { + if (this.canvas) { + this.paintedViewportMap["delete"](this.canvas); + this.canvas.width = 0; + this.canvas.height = 0; + delete this.canvas; + } + + this._resetZoomLayer(); + } + + if (this.svg) { + this.paintedViewportMap["delete"](this.svg); + delete this.svg; + } + + this.loadingIconDiv = document.createElement('div'); + this.loadingIconDiv.className = 'loadingIcon'; + div.appendChild(this.loadingIconDiv); + } + }, { + key: "update", + value: function update(scale, rotation) { + this.scale = scale || this.scale; + + if (typeof rotation !== 'undefined') { + this.rotation = rotation; + } + + var totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = this.viewport.clone({ + scale: this.scale * _ui_utils.CSS_UNITS, + rotation: totalRotation + }); + + if (this.svg) { + this.cssTransform(this.svg, true); + this.eventBus.dispatch('pagerendered', { + source: this, + pageNumber: this.id, + cssTransform: true + }); + return; + } + + var isScalingRestricted = false; + + if (this.canvas && this.maxCanvasPixels > 0) { + var outputScale = this.outputScale; + + if ((Math.floor(this.viewport.width) * outputScale.sx | 0) * (Math.floor(this.viewport.height) * outputScale.sy | 0) > this.maxCanvasPixels) { + isScalingRestricted = true; + } + } + + if (this.canvas) { + if (this.useOnlyCssZoom || this.hasRestrictedScaling && isScalingRestricted) { + this.cssTransform(this.canvas, true); + this.eventBus.dispatch('pagerendered', { + source: this, + pageNumber: this.id, + cssTransform: true + }); + return; + } + + if (!this.zoomLayer && !this.canvas.hasAttribute('hidden')) { + this.zoomLayer = this.canvas.parentNode; + this.zoomLayer.style.position = 'absolute'; + } + } + + if (this.zoomLayer) { + this.cssTransform(this.zoomLayer.firstChild); + } + + this.reset(true, true); + } + }, { + key: "cancelRendering", + value: function cancelRendering() { + var keepAnnotations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + + if (this.paintTask) { + this.paintTask.cancel(); + this.paintTask = null; + } + + this.resume = null; + + if (this.textLayer) { + this.textLayer.cancel(); + this.textLayer = null; + } + + if (!keepAnnotations && this.annotationLayer) { + this.annotationLayer.cancel(); + this.annotationLayer = null; + } + } + }, { + key: "cssTransform", + value: function cssTransform(target) { + var redrawAnnotations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var width = this.viewport.width; + var height = this.viewport.height; + var div = this.div; + target.style.width = target.parentNode.style.width = div.style.width = Math.floor(width) + 'px'; + target.style.height = target.parentNode.style.height = div.style.height = Math.floor(height) + 'px'; + var relativeRotation = this.viewport.rotation - this.paintedViewportMap.get(target).rotation; + var absRotation = Math.abs(relativeRotation); + var scaleX = 1, + scaleY = 1; + + if (absRotation === 90 || absRotation === 270) { + scaleX = height / width; + scaleY = width / height; + } + + var cssTransform = 'rotate(' + relativeRotation + 'deg) ' + 'scale(' + scaleX + ',' + scaleY + ')'; + target.style.transform = cssTransform; + + if (this.textLayer) { + var textLayerViewport = this.textLayer.viewport; + var textRelativeRotation = this.viewport.rotation - textLayerViewport.rotation; + var textAbsRotation = Math.abs(textRelativeRotation); + var scale = width / textLayerViewport.width; + + if (textAbsRotation === 90 || textAbsRotation === 270) { + scale = width / textLayerViewport.height; + } + + var textLayerDiv = this.textLayer.textLayerDiv; + var transX, transY; + + switch (textAbsRotation) { + case 0: + transX = transY = 0; + break; + + case 90: + transX = 0; + transY = '-' + textLayerDiv.style.height; + break; + + case 180: + transX = '-' + textLayerDiv.style.width; + transY = '-' + textLayerDiv.style.height; + break; + + case 270: + transX = '-' + textLayerDiv.style.width; + transY = 0; + break; + + default: + console.error('Bad rotation value.'); + break; + } + + textLayerDiv.style.transform = 'rotate(' + textAbsRotation + 'deg) ' + 'scale(' + scale + ', ' + scale + ') ' + 'translate(' + transX + ', ' + transY + ')'; + textLayerDiv.style.transformOrigin = '0% 0%'; + } + + if (redrawAnnotations && this.annotationLayer) { + this.annotationLayer.render(this.viewport, 'display'); + } + } + }, { + key: "getPagePoint", + value: function getPagePoint(x, y) { + return this.viewport.convertToPdfPoint(x, y); + } + }, { + key: "draw", + value: function draw() { + var _this = this; + + if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) { + console.error('Must be in new state before drawing'); + this.reset(); + } + + if (!this.pdfPage) { + this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; + return Promise.reject(new Error('Page is not loaded')); + } + + this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; + var pdfPage = this.pdfPage; + var div = this.div; + var canvasWrapper = document.createElement('div'); + canvasWrapper.style.width = div.style.width; + canvasWrapper.style.height = div.style.height; + canvasWrapper.classList.add('canvasWrapper'); + + if (this.annotationLayer && this.annotationLayer.div) { + div.insertBefore(canvasWrapper, this.annotationLayer.div); + } else { + div.appendChild(canvasWrapper); + } + + var textLayer = null; + + if (this.textLayerMode !== _ui_utils.TextLayerMode.DISABLE && this.textLayerFactory) { + var textLayerDiv = document.createElement('div'); + textLayerDiv.className = 'textLayer'; + textLayerDiv.style.width = canvasWrapper.style.width; + textLayerDiv.style.height = canvasWrapper.style.height; + + if (this.annotationLayer && this.annotationLayer.div) { + div.insertBefore(textLayerDiv, this.annotationLayer.div); + } else { + div.appendChild(textLayerDiv); + } + + textLayer = this.textLayerFactory.createTextLayerBuilder(textLayerDiv, this.id - 1, this.viewport, this.textLayerMode === _ui_utils.TextLayerMode.ENABLE_ENHANCE); + } + + this.textLayer = textLayer; + var renderContinueCallback = null; + + if (this.renderingQueue) { + renderContinueCallback = function renderContinueCallback(cont) { + if (!_this.renderingQueue.isHighestPriority(_this)) { + _this.renderingState = _pdf_rendering_queue.RenderingStates.PAUSED; + + _this.resume = function () { + _this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; + cont(); + }; + + return; + } + + cont(); + }; + } + + var finishPaintTask = + /*#__PURE__*/ + function () { + var _ref = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee(error) { + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + if (paintTask === _this.paintTask) { + _this.paintTask = null; + } + + if (!(error instanceof _pdfjsLib.RenderingCancelledException)) { + _context.next = 4; + break; + } + + _this.error = null; + return _context.abrupt("return"); + + case 4: + _this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; + + if (_this.loadingIconDiv) { + div.removeChild(_this.loadingIconDiv); + delete _this.loadingIconDiv; + } + + _this._resetZoomLayer(true); + + _this.error = error; + _this.stats = pdfPage.stats; + + if (_this.onAfterDraw) { + _this.onAfterDraw(); + } + + _this.eventBus.dispatch('pagerendered', { + source: _this, + pageNumber: _this.id, + cssTransform: false + }); + + if (!error) { + _context.next = 13; + break; + } + + throw error; + + case 13: + case "end": + return _context.stop(); + } + } + }, _callee); + })); + + return function finishPaintTask(_x) { + return _ref.apply(this, arguments); + }; + }(); + + var paintTask = this.renderer === _ui_utils.RendererType.SVG ? this.paintOnSvg(canvasWrapper) : this.paintOnCanvas(canvasWrapper); + paintTask.onRenderContinue = renderContinueCallback; + this.paintTask = paintTask; + var resultPromise = paintTask.promise.then(function () { + return finishPaintTask(null).then(function () { + if (textLayer) { + var readableStream = pdfPage.streamTextContent({ + normalizeWhitespace: true + }); + textLayer.setTextContentStream(readableStream); + textLayer.render(); + } + }); + }, function (reason) { + return finishPaintTask(reason); + }); + + if (this.annotationLayerFactory) { + if (!this.annotationLayer) { + this.annotationLayer = this.annotationLayerFactory.createAnnotationLayerBuilder(div, pdfPage, this.imageResourcesPath, this.renderInteractiveForms, this.l10n); + } + + this.annotationLayer.render(this.viewport, 'display'); + } + + div.setAttribute('data-loaded', true); + + if (this.onBeforeDraw) { + this.onBeforeDraw(); + } + + return resultPromise; + } + }, { + key: "paintOnCanvas", + value: function paintOnCanvas(canvasWrapper) { + var renderCapability = (0, _pdfjsLib.createPromiseCapability)(); + var result = { + promise: renderCapability.promise, + onRenderContinue: function onRenderContinue(cont) { + cont(); + }, + cancel: function cancel() { + renderTask.cancel(); + } + }; + var viewport = this.viewport; + var canvas = document.createElement('canvas'); + canvas.id = this.renderingId; + canvas.setAttribute('hidden', 'hidden'); + var isCanvasHidden = true; + + var showCanvas = function showCanvas() { + if (isCanvasHidden) { + canvas.removeAttribute('hidden'); + isCanvasHidden = false; + } + }; + + canvasWrapper.appendChild(canvas); + this.canvas = canvas; + canvas.mozOpaque = true; + var ctx = canvas.getContext('2d', { + alpha: false + }); + var outputScale = (0, _ui_utils.getOutputScale)(ctx); + this.outputScale = outputScale; + + if (this.useOnlyCssZoom) { + var actualSizeViewport = viewport.clone({ + scale: _ui_utils.CSS_UNITS + }); + outputScale.sx *= actualSizeViewport.width / viewport.width; + outputScale.sy *= actualSizeViewport.height / viewport.height; + outputScale.scaled = true; + } + + if (this.maxCanvasPixels > 0) { + var pixelsInViewport = viewport.width * viewport.height; + var maxScale = Math.sqrt(this.maxCanvasPixels / pixelsInViewport); + + if (outputScale.sx > maxScale || outputScale.sy > maxScale) { + outputScale.sx = maxScale; + outputScale.sy = maxScale; + outputScale.scaled = true; + this.hasRestrictedScaling = true; + } else { + this.hasRestrictedScaling = false; + } + } + + var sfx = (0, _ui_utils.approximateFraction)(outputScale.sx); + var sfy = (0, _ui_utils.approximateFraction)(outputScale.sy); + canvas.width = (0, _ui_utils.roundToDivide)(viewport.width * outputScale.sx, sfx[0]); + canvas.height = (0, _ui_utils.roundToDivide)(viewport.height * outputScale.sy, sfy[0]); + canvas.style.width = (0, _ui_utils.roundToDivide)(viewport.width, sfx[1]) + 'px'; + canvas.style.height = (0, _ui_utils.roundToDivide)(viewport.height, sfy[1]) + 'px'; + this.paintedViewportMap.set(canvas, viewport); + var transform = !outputScale.scaled ? null : [outputScale.sx, 0, 0, outputScale.sy, 0, 0]; + var renderContext = { + canvasContext: ctx, + transform: transform, + viewport: this.viewport, + enableWebGL: this.enableWebGL, + renderInteractiveForms: this.renderInteractiveForms + }; + var renderTask = this.pdfPage.render(renderContext); + + renderTask.onContinue = function (cont) { + showCanvas(); + + if (result.onRenderContinue) { + result.onRenderContinue(cont); + } else { + cont(); + } + }; + + renderTask.promise.then(function () { + showCanvas(); + renderCapability.resolve(undefined); + }, function (error) { + showCanvas(); + renderCapability.reject(error); + }); + return result; + } + }, { + key: "paintOnSvg", + value: function paintOnSvg(wrapper) { + var _this2 = this; + + var cancelled = false; + + var ensureNotCancelled = function ensureNotCancelled() { + if (cancelled) { + throw new _pdfjsLib.RenderingCancelledException('Rendering cancelled, page ' + _this2.id, 'svg'); + } + }; + + var pdfPage = this.pdfPage; + var actualSizeViewport = this.viewport.clone({ + scale: _ui_utils.CSS_UNITS + }); + var promise = pdfPage.getOperatorList().then(function (opList) { + ensureNotCancelled(); + var svgGfx = new _pdfjsLib.SVGGraphics(pdfPage.commonObjs, pdfPage.objs); + return svgGfx.getSVG(opList, actualSizeViewport).then(function (svg) { + ensureNotCancelled(); + _this2.svg = svg; + + _this2.paintedViewportMap.set(svg, actualSizeViewport); + + svg.style.width = wrapper.style.width; + svg.style.height = wrapper.style.height; + _this2.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; + wrapper.appendChild(svg); + }); + }); + return { + promise: promise, + onRenderContinue: function onRenderContinue(cont) { + cont(); + }, + cancel: function cancel() { + cancelled = true; + } + }; + } + }, { + key: "setPageLabel", + value: function setPageLabel(label) { + this.pageLabel = typeof label === 'string' ? label : null; + + if (this.pageLabel !== null) { + this.div.setAttribute('data-page-label', this.pageLabel); + } else { + this.div.removeAttribute('data-page-label'); + } + } + }, { + key: "width", + get: function get() { + return this.viewport.width; + } + }, { + key: "height", + get: function get() { + return this.viewport.height; + } + }]); + + return PDFPageView; +}(); + +exports.PDFPageView = PDFPageView; + +/***/ }), +/* 31 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.DefaultTextLayerFactory = exports.TextLayerBuilder = void 0; + +var _ui_utils = __webpack_require__(5); + +var _pdfjsLib = __webpack_require__(7); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var EXPAND_DIVS_TIMEOUT = 300; + +var TextLayerBuilder = +/*#__PURE__*/ +function () { + function TextLayerBuilder(_ref) { + var textLayerDiv = _ref.textLayerDiv, + eventBus = _ref.eventBus, + pageIndex = _ref.pageIndex, + viewport = _ref.viewport, + _ref$findController = _ref.findController, + findController = _ref$findController === void 0 ? null : _ref$findController, + _ref$enhanceTextSelec = _ref.enhanceTextSelection, + enhanceTextSelection = _ref$enhanceTextSelec === void 0 ? false : _ref$enhanceTextSelec; + + _classCallCheck(this, TextLayerBuilder); + + this.textLayerDiv = textLayerDiv; + this.eventBus = eventBus || (0, _ui_utils.getGlobalEventBus)(); + this.textContent = null; + this.textContentItemsStr = []; + this.textContentStream = null; + this.renderingDone = false; + this.pageIdx = pageIndex; + this.pageNumber = this.pageIdx + 1; + this.matches = []; + this.viewport = viewport; + this.textDivs = []; + this.findController = findController; + this.textLayerRenderTask = null; + this.enhanceTextSelection = enhanceTextSelection; + this._onUpdateTextLayerMatches = null; + + this._bindMouse(); + } + + _createClass(TextLayerBuilder, [{ + key: "_finishRendering", + value: function _finishRendering() { + this.renderingDone = true; + + if (!this.enhanceTextSelection) { + var endOfContent = document.createElement('div'); + endOfContent.className = 'endOfContent'; + this.textLayerDiv.appendChild(endOfContent); + } + + this.eventBus.dispatch('textlayerrendered', { + source: this, + pageNumber: this.pageNumber, + numTextDivs: this.textDivs.length + }); + } + }, { + key: "render", + value: function render() { + var _this = this; + + var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + + if (!(this.textContent || this.textContentStream) || this.renderingDone) { + return; + } + + this.cancel(); + this.textDivs = []; + var textLayerFrag = document.createDocumentFragment(); + this.textLayerRenderTask = (0, _pdfjsLib.renderTextLayer)({ + textContent: this.textContent, + textContentStream: this.textContentStream, + container: textLayerFrag, + viewport: this.viewport, + textDivs: this.textDivs, + textContentItemsStr: this.textContentItemsStr, + timeout: timeout, + enhanceTextSelection: this.enhanceTextSelection + }); + this.textLayerRenderTask.promise.then(function () { + _this.textLayerDiv.appendChild(textLayerFrag); + + _this._finishRendering(); + + _this._updateMatches(); + }, function (reason) {}); + + if (!this._onUpdateTextLayerMatches) { + this._onUpdateTextLayerMatches = function (evt) { + if (evt.pageIndex === _this.pageIdx || evt.pageIndex === -1) { + _this._updateMatches(); + } + }; + + this.eventBus.on('updatetextlayermatches', this._onUpdateTextLayerMatches); + } + } + }, { + key: "cancel", + value: function cancel() { + if (this.textLayerRenderTask) { + this.textLayerRenderTask.cancel(); + this.textLayerRenderTask = null; + } + + if (this._onUpdateTextLayerMatches) { + this.eventBus.off('updatetextlayermatches', this._onUpdateTextLayerMatches); + this._onUpdateTextLayerMatches = null; + } + } + }, { + key: "setTextContentStream", + value: function setTextContentStream(readableStream) { + this.cancel(); + this.textContentStream = readableStream; + } + }, { + key: "setTextContent", + value: function setTextContent(textContent) { + this.cancel(); + this.textContent = textContent; + } + }, { + key: "_convertMatches", + value: function _convertMatches(matches, matchesLength) { + if (!matches) { + return []; + } + + var findController = this.findController, + textContentItemsStr = this.textContentItemsStr; + var i = 0, + iIndex = 0; + var end = textContentItemsStr.length - 1; + var queryLen = findController.state.query.length; + var result = []; + + for (var m = 0, mm = matches.length; m < mm; m++) { + var matchIdx = matches[m]; + + while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) { + iIndex += textContentItemsStr[i].length; + i++; + } + + if (i === textContentItemsStr.length) { + console.error('Could not find a matching mapping'); + } + + var match = { + begin: { + divIdx: i, + offset: matchIdx - iIndex + } + }; + + if (matchesLength) { + matchIdx += matchesLength[m]; + } else { + matchIdx += queryLen; + } + + while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) { + iIndex += textContentItemsStr[i].length; + i++; + } + + match.end = { + divIdx: i, + offset: matchIdx - iIndex + }; + result.push(match); + } + + return result; + } + }, { + key: "_renderMatches", + value: function _renderMatches(matches) { + if (matches.length === 0) { + return; + } + + var findController = this.findController, + pageIdx = this.pageIdx, + textContentItemsStr = this.textContentItemsStr, + textDivs = this.textDivs; + var isSelectedPage = pageIdx === findController.selected.pageIdx; + var selectedMatchIdx = findController.selected.matchIdx; + var highlightAll = findController.state.highlightAll; + var prevEnd = null; + var infinity = { + divIdx: -1, + offset: undefined + }; + + function beginText(begin, className) { + var divIdx = begin.divIdx; + textDivs[divIdx].textContent = ''; + appendTextToDiv(divIdx, 0, begin.offset, className); + } + + function appendTextToDiv(divIdx, fromOffset, toOffset, className) { + var div = textDivs[divIdx]; + var content = textContentItemsStr[divIdx].substring(fromOffset, toOffset); + var node = document.createTextNode(content); + + if (className) { + var span = document.createElement('span'); + span.className = className; + span.appendChild(node); + div.appendChild(span); + return; + } + + div.appendChild(node); + } + + var i0 = selectedMatchIdx, + i1 = i0 + 1; + + if (highlightAll) { + i0 = 0; + i1 = matches.length; + } else if (!isSelectedPage) { + return; + } + + for (var i = i0; i < i1; i++) { + var match = matches[i]; + var begin = match.begin; + var end = match.end; + var isSelected = isSelectedPage && i === selectedMatchIdx; + var highlightSuffix = isSelected ? ' selected' : ''; + + if (isSelected) { + findController.scrollMatchIntoView({ + element: textDivs[begin.divIdx], + pageIndex: pageIdx, + matchIndex: selectedMatchIdx + }); + } + + if (!prevEnd || begin.divIdx !== prevEnd.divIdx) { + if (prevEnd !== null) { + appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset); + } + + beginText(begin); + } else { + appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset); + } + + if (begin.divIdx === end.divIdx) { + appendTextToDiv(begin.divIdx, begin.offset, end.offset, 'highlight' + highlightSuffix); + } else { + appendTextToDiv(begin.divIdx, begin.offset, infinity.offset, 'highlight begin' + highlightSuffix); + + for (var n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) { + textDivs[n0].className = 'highlight middle' + highlightSuffix; + } + + beginText(end, 'highlight end' + highlightSuffix); + } + + prevEnd = end; + } + + if (prevEnd) { + appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset); + } + } + }, { + key: "_updateMatches", + value: function _updateMatches() { + if (!this.renderingDone) { + return; + } + + var findController = this.findController, + matches = this.matches, + pageIdx = this.pageIdx, + textContentItemsStr = this.textContentItemsStr, + textDivs = this.textDivs; + var clearedUntilDivIdx = -1; + + for (var i = 0, ii = matches.length; i < ii; i++) { + var match = matches[i]; + var begin = Math.max(clearedUntilDivIdx, match.begin.divIdx); + + for (var n = begin, end = match.end.divIdx; n <= end; n++) { + var div = textDivs[n]; + div.textContent = textContentItemsStr[n]; + div.className = ''; + } + + clearedUntilDivIdx = match.end.divIdx + 1; + } + + if (!findController || !findController.highlightMatches) { + return; + } + + var pageMatches = findController.pageMatches[pageIdx] || null; + var pageMatchesLength = findController.pageMatchesLength[pageIdx] || null; + this.matches = this._convertMatches(pageMatches, pageMatchesLength); + + this._renderMatches(this.matches); + } + }, { + key: "_bindMouse", + value: function _bindMouse() { + var _this2 = this; + + var div = this.textLayerDiv; + var expandDivsTimer = null; + div.addEventListener('mousedown', function (evt) { + if (_this2.enhanceTextSelection && _this2.textLayerRenderTask) { + _this2.textLayerRenderTask.expandTextDivs(true); + + if (expandDivsTimer) { + clearTimeout(expandDivsTimer); + expandDivsTimer = null; + } + + return; + } + + var end = div.querySelector('.endOfContent'); + + if (!end) { + return; + } + + var adjustTop = evt.target !== div; + adjustTop = adjustTop && window.getComputedStyle(end).getPropertyValue('-moz-user-select') !== 'none'; + + if (adjustTop) { + var divBounds = div.getBoundingClientRect(); + var r = Math.max(0, (evt.pageY - divBounds.top) / divBounds.height); + end.style.top = (r * 100).toFixed(2) + '%'; + } + + end.classList.add('active'); + }); + div.addEventListener('mouseup', function () { + if (_this2.enhanceTextSelection && _this2.textLayerRenderTask) { + expandDivsTimer = setTimeout(function () { + if (_this2.textLayerRenderTask) { + _this2.textLayerRenderTask.expandTextDivs(false); + } + + expandDivsTimer = null; + }, EXPAND_DIVS_TIMEOUT); + return; + } + + var end = div.querySelector('.endOfContent'); + + if (!end) { + return; + } + + end.style.top = ''; + end.classList.remove('active'); + }); + } + }]); + + return TextLayerBuilder; +}(); + +exports.TextLayerBuilder = TextLayerBuilder; + +var DefaultTextLayerFactory = +/*#__PURE__*/ +function () { + function DefaultTextLayerFactory() { + _classCallCheck(this, DefaultTextLayerFactory); + } + + _createClass(DefaultTextLayerFactory, [{ + key: "createTextLayerBuilder", + value: function createTextLayerBuilder(textLayerDiv, pageIndex, viewport) { + var enhanceTextSelection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + return new TextLayerBuilder({ + textLayerDiv: textLayerDiv, + pageIndex: pageIndex, + viewport: viewport, + enhanceTextSelection: enhanceTextSelection + }); + } + }]); + + return DefaultTextLayerFactory; +}(); + +exports.DefaultTextLayerFactory = DefaultTextLayerFactory; + +/***/ }), +/* 32 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SecondaryToolbar = void 0; + +var _ui_utils = __webpack_require__(5); + +var _pdf_cursor_tools = __webpack_require__(9); + +var _pdf_single_page_viewer = __webpack_require__(33); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var SecondaryToolbar = +/*#__PURE__*/ +function () { + function SecondaryToolbar(options, mainContainer, eventBus) { + var _this = this; + + _classCallCheck(this, SecondaryToolbar); + + this.toolbar = options.toolbar; + this.toggleButton = options.toggleButton; + this.toolbarButtonContainer = options.toolbarButtonContainer; + this.buttons = [{ + element: options.presentationModeButton, + eventName: 'presentationmode', + close: true + }, { + element: options.openFileButton, + eventName: 'openfile', + close: true + }, { + element: options.printButton, + eventName: 'print', + close: true + }, { + element: options.downloadButton, + eventName: 'download', + close: true + }, { + element: options.viewBookmarkButton, + eventName: null, + close: true + }, { + element: options.firstPageButton, + eventName: 'firstpage', + close: true + }, { + element: options.lastPageButton, + eventName: 'lastpage', + close: true + }, { + element: options.pageRotateCwButton, + eventName: 'rotatecw', + close: false + }, { + element: options.pageRotateCcwButton, + eventName: 'rotateccw', + close: false + }, { + element: options.cursorSelectToolButton, + eventName: 'switchcursortool', + eventDetails: { + tool: _pdf_cursor_tools.CursorTool.SELECT + }, + close: true + }, { + element: options.cursorHandToolButton, + eventName: 'switchcursortool', + eventDetails: { + tool: _pdf_cursor_tools.CursorTool.HAND + }, + close: true + }, { + element: options.scrollVerticalButton, + eventName: 'switchscrollmode', + eventDetails: { + mode: _ui_utils.ScrollMode.VERTICAL + }, + close: true + }, { + element: options.scrollHorizontalButton, + eventName: 'switchscrollmode', + eventDetails: { + mode: _ui_utils.ScrollMode.HORIZONTAL + }, + close: true + }, { + element: options.scrollWrappedButton, + eventName: 'switchscrollmode', + eventDetails: { + mode: _ui_utils.ScrollMode.WRAPPED + }, + close: true + }, { + element: options.spreadNoneButton, + eventName: 'switchspreadmode', + eventDetails: { + mode: _ui_utils.SpreadMode.NONE + }, + close: true + }, { + element: options.spreadOddButton, + eventName: 'switchspreadmode', + eventDetails: { + mode: _ui_utils.SpreadMode.ODD + }, + close: true + }, { + element: options.spreadEvenButton, + eventName: 'switchspreadmode', + eventDetails: { + mode: _ui_utils.SpreadMode.EVEN + }, + close: true + }, { + element: options.documentPropertiesButton, + eventName: 'documentproperties', + close: true + }]; + this.items = { + firstPage: options.firstPageButton, + lastPage: options.lastPageButton, + pageRotateCw: options.pageRotateCwButton, + pageRotateCcw: options.pageRotateCcwButton + }; + this.mainContainer = mainContainer; + this.eventBus = eventBus; + this.opened = false; + this.containerHeight = null; + this.previousContainerHeight = null; + this.reset(); + + this._bindClickListeners(); + + this._bindCursorToolsListener(options); + + this._bindScrollModeListener(options); + + this._bindSpreadModeListener(options); + + this.eventBus.on('resize', this._setMaxHeight.bind(this)); + this.eventBus.on('baseviewerinit', function (evt) { + if (evt.source instanceof _pdf_single_page_viewer.PDFSinglePageViewer) { + _this.toolbarButtonContainer.classList.add('hiddenScrollModeButtons', 'hiddenSpreadModeButtons'); + } else { + _this.toolbarButtonContainer.classList.remove('hiddenScrollModeButtons', 'hiddenSpreadModeButtons'); + } + }); + } + + _createClass(SecondaryToolbar, [{ + key: "setPageNumber", + value: function setPageNumber(pageNumber) { + this.pageNumber = pageNumber; + + this._updateUIState(); + } + }, { + key: "setPagesCount", + value: function setPagesCount(pagesCount) { + this.pagesCount = pagesCount; + + this._updateUIState(); + } + }, { + key: "reset", + value: function reset() { + this.pageNumber = 0; + this.pagesCount = 0; + + this._updateUIState(); + + this.eventBus.dispatch('secondarytoolbarreset', { + source: this + }); + } + }, { + key: "_updateUIState", + value: function _updateUIState() { + this.items.firstPage.disabled = this.pageNumber <= 1; + this.items.lastPage.disabled = this.pageNumber >= this.pagesCount; + this.items.pageRotateCw.disabled = this.pagesCount === 0; + this.items.pageRotateCcw.disabled = this.pagesCount === 0; + } + }, { + key: "_bindClickListeners", + value: function _bindClickListeners() { + var _this2 = this; + + this.toggleButton.addEventListener('click', this.toggle.bind(this)); + + var _loop = function _loop(button) { + var _this2$buttons$button = _this2.buttons[button], + element = _this2$buttons$button.element, + eventName = _this2$buttons$button.eventName, + close = _this2$buttons$button.close, + eventDetails = _this2$buttons$button.eventDetails; + element.addEventListener('click', function (evt) { + if (eventName !== null) { + var details = { + source: _this2 + }; + + for (var property in eventDetails) { + details[property] = eventDetails[property]; + } + + _this2.eventBus.dispatch(eventName, details); + } + + if (close) { + _this2.close(); + } + }); + }; + + for (var button in this.buttons) { + _loop(button); + } + } + }, { + key: "_bindCursorToolsListener", + value: function _bindCursorToolsListener(buttons) { + this.eventBus.on('cursortoolchanged', function (_ref) { + var tool = _ref.tool; + buttons.cursorSelectToolButton.classList.toggle('toggled', tool === _pdf_cursor_tools.CursorTool.SELECT); + buttons.cursorHandToolButton.classList.toggle('toggled', tool === _pdf_cursor_tools.CursorTool.HAND); + }); + } + }, { + key: "_bindScrollModeListener", + value: function _bindScrollModeListener(buttons) { + var _this3 = this; + + function scrollModeChanged(_ref2) { + var mode = _ref2.mode; + buttons.scrollVerticalButton.classList.toggle('toggled', mode === _ui_utils.ScrollMode.VERTICAL); + buttons.scrollHorizontalButton.classList.toggle('toggled', mode === _ui_utils.ScrollMode.HORIZONTAL); + buttons.scrollWrappedButton.classList.toggle('toggled', mode === _ui_utils.ScrollMode.WRAPPED); + var isScrollModeHorizontal = mode === _ui_utils.ScrollMode.HORIZONTAL; + buttons.spreadNoneButton.disabled = isScrollModeHorizontal; + buttons.spreadOddButton.disabled = isScrollModeHorizontal; + buttons.spreadEvenButton.disabled = isScrollModeHorizontal; + } + + this.eventBus.on('scrollmodechanged', scrollModeChanged); + this.eventBus.on('secondarytoolbarreset', function (evt) { + if (evt.source === _this3) { + scrollModeChanged({ + mode: _ui_utils.ScrollMode.VERTICAL + }); + } + }); + } + }, { + key: "_bindSpreadModeListener", + value: function _bindSpreadModeListener(buttons) { + var _this4 = this; + + function spreadModeChanged(_ref3) { + var mode = _ref3.mode; + buttons.spreadNoneButton.classList.toggle('toggled', mode === _ui_utils.SpreadMode.NONE); + buttons.spreadOddButton.classList.toggle('toggled', mode === _ui_utils.SpreadMode.ODD); + buttons.spreadEvenButton.classList.toggle('toggled', mode === _ui_utils.SpreadMode.EVEN); + } + + this.eventBus.on('spreadmodechanged', spreadModeChanged); + this.eventBus.on('secondarytoolbarreset', function (evt) { + if (evt.source === _this4) { + spreadModeChanged({ + mode: _ui_utils.SpreadMode.NONE + }); + } + }); + } + }, { + key: "open", + value: function open() { + if (this.opened) { + return; + } + + this.opened = true; + + this._setMaxHeight(); + + this.toggleButton.classList.add('toggled'); + this.toolbar.classList.remove('hidden'); + } + }, { + key: "close", + value: function close() { + if (!this.opened) { + return; + } + + this.opened = false; + this.toolbar.classList.add('hidden'); + this.toggleButton.classList.remove('toggled'); + } + }, { + key: "toggle", + value: function toggle() { + if (this.opened) { + this.close(); + } else { + this.open(); + } + } + }, { + key: "_setMaxHeight", + value: function _setMaxHeight() { + if (!this.opened) { + return; + } + + this.containerHeight = this.mainContainer.clientHeight; + + if (this.containerHeight === this.previousContainerHeight) { + return; + } + + this.toolbarButtonContainer.setAttribute('style', 'max-height: ' + (this.containerHeight - _ui_utils.SCROLLBAR_PADDING) + 'px;'); + this.previousContainerHeight = this.containerHeight; + } + }, { + key: "isOpen", + get: function get() { + return this.opened; + } + }]); + + return SecondaryToolbar; +}(); + +exports.SecondaryToolbar = SecondaryToolbar; + +/***/ }), +/* 33 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFSinglePageViewer = void 0; + +var _base_viewer = __webpack_require__(28); + +var _pdfjsLib = __webpack_require__(7); + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var PDFSinglePageViewer = +/*#__PURE__*/ +function (_BaseViewer) { + _inherits(PDFSinglePageViewer, _BaseViewer); + + function PDFSinglePageViewer(options) { + var _this; + + _classCallCheck(this, PDFSinglePageViewer); + + _this = _possibleConstructorReturn(this, _getPrototypeOf(PDFSinglePageViewer).call(this, options)); + + _this.eventBus.on('pagesinit', function (evt) { + _this._ensurePageViewVisible(); + }); + + return _this; + } + + _createClass(PDFSinglePageViewer, [{ + key: "_resetView", + value: function _resetView() { + _get(_getPrototypeOf(PDFSinglePageViewer.prototype), "_resetView", this).call(this); + + this._previousPageNumber = 1; + this._shadowViewer = document.createDocumentFragment(); + this._updateScrollDown = null; + } + }, { + key: "_ensurePageViewVisible", + value: function _ensurePageViewVisible() { + var pageView = this._pages[this._currentPageNumber - 1]; + var previousPageView = this._pages[this._previousPageNumber - 1]; + var viewerNodes = this.viewer.childNodes; + + switch (viewerNodes.length) { + case 0: + this.viewer.appendChild(pageView.div); + break; + + case 1: + if (viewerNodes[0] !== previousPageView.div) { + throw new Error('_ensurePageViewVisible: Unexpected previously visible page.'); + } + + if (pageView === previousPageView) { + break; + } + + this._shadowViewer.appendChild(previousPageView.div); + + this.viewer.appendChild(pageView.div); + this.container.scrollTop = 0; + break; + + default: + throw new Error('_ensurePageViewVisible: Only one page should be visible at a time.'); + } + + this._previousPageNumber = this._currentPageNumber; + } + }, { + key: "_scrollUpdate", + value: function _scrollUpdate() { + if (this._updateScrollDown) { + this._updateScrollDown(); + } + + _get(_getPrototypeOf(PDFSinglePageViewer.prototype), "_scrollUpdate", this).call(this); + } + }, { + key: "_scrollIntoView", + value: function _scrollIntoView(_ref) { + var _this2 = this; + + var pageDiv = _ref.pageDiv, + _ref$pageSpot = _ref.pageSpot, + pageSpot = _ref$pageSpot === void 0 ? null : _ref$pageSpot, + _ref$pageNumber = _ref.pageNumber, + pageNumber = _ref$pageNumber === void 0 ? null : _ref$pageNumber; + + if (pageNumber) { + this._setCurrentPageNumber(pageNumber); + } + + var scrolledDown = this._currentPageNumber >= this._previousPageNumber; + + this._ensurePageViewVisible(); + + this.update(); + + _get(_getPrototypeOf(PDFSinglePageViewer.prototype), "_scrollIntoView", this).call(this, { + pageDiv: pageDiv, + pageSpot: pageSpot, + pageNumber: pageNumber + }); + + this._updateScrollDown = function () { + _this2.scroll.down = scrolledDown; + _this2._updateScrollDown = null; + }; + } + }, { + key: "_getVisiblePages", + value: function _getVisiblePages() { + return this._getCurrentVisiblePage(); + } + }, { + key: "_updateHelper", + value: function _updateHelper(visiblePages) {} + }, { + key: "_updateScrollMode", + value: function _updateScrollMode() {} + }, { + key: "_updateSpreadMode", + value: function _updateSpreadMode() {} + }, { + key: "_setDocumentViewerElement", + get: function get() { + return (0, _pdfjsLib.shadow)(this, '_setDocumentViewerElement', this._shadowViewer); + } + }, { + key: "_isScrollModeHorizontal", + get: function get() { + return (0, _pdfjsLib.shadow)(this, '_isScrollModeHorizontal', false); + } + }]); + + return PDFSinglePageViewer; +}(_base_viewer.BaseViewer); + +exports.PDFSinglePageViewer = PDFSinglePageViewer; + +/***/ }), +/* 34 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Toolbar = void 0; + +var _ui_utils = __webpack_require__(5); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var PAGE_NUMBER_LOADING_INDICATOR = 'visiblePageIsLoading'; +var SCALE_SELECT_CONTAINER_PADDING = 8; +var SCALE_SELECT_PADDING = 22; + +var Toolbar = +/*#__PURE__*/ +function () { + function Toolbar(options, eventBus) { + var l10n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _ui_utils.NullL10n; + + _classCallCheck(this, Toolbar); + + this.toolbar = options.container; + this.eventBus = eventBus; + this.l10n = l10n; + this.items = options; + this._wasLocalized = false; + this.reset(); + + this._bindListeners(); + } + + _createClass(Toolbar, [{ + key: "setPageNumber", + value: function setPageNumber(pageNumber, pageLabel) { + this.pageNumber = pageNumber; + this.pageLabel = pageLabel; + + this._updateUIState(false); + } + }, { + key: "setPagesCount", + value: function setPagesCount(pagesCount, hasPageLabels) { + this.pagesCount = pagesCount; + this.hasPageLabels = hasPageLabels; + + this._updateUIState(true); + } + }, { + key: "setPageScale", + value: function setPageScale(pageScaleValue, pageScale) { + this.pageScaleValue = (pageScaleValue || pageScale).toString(); + this.pageScale = pageScale; + + this._updateUIState(false); + } + }, { + key: "reset", + value: function reset() { + this.pageNumber = 0; + this.pageLabel = null; + this.hasPageLabels = false; + this.pagesCount = 0; + this.pageScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; + this.pageScale = _ui_utils.DEFAULT_SCALE; + + this._updateUIState(true); + } + }, { + key: "_bindListeners", + value: function _bindListeners() { + var _this = this; + + var eventBus = this.eventBus, + items = this.items; + var self = this; + items.previous.addEventListener('click', function () { + eventBus.dispatch('previouspage', { + source: self + }); + }); + items.next.addEventListener('click', function () { + eventBus.dispatch('nextpage', { + source: self + }); + }); + items.zoomIn.addEventListener('click', function () { + eventBus.dispatch('zoomin', { + source: self + }); + }); + items.zoomOut.addEventListener('click', function () { + eventBus.dispatch('zoomout', { + source: self + }); + }); + items.pageNumber.addEventListener('click', function () { + this.select(); + }); + items.pageNumber.addEventListener('change', function () { + eventBus.dispatch('pagenumberchanged', { + source: self, + value: this.value + }); + }); + items.scaleSelect.addEventListener('change', function () { + if (this.value === 'custom') { + return; + } + + eventBus.dispatch('scalechanged', { + source: self, + value: this.value + }); + }); + items.presentationModeButton.addEventListener('click', function () { + eventBus.dispatch('presentationmode', { + source: self + }); + }); + items.openFile.addEventListener('click', function () { + eventBus.dispatch('openfile', { + source: self + }); + }); + items.print.addEventListener('click', function () { + eventBus.dispatch('print', { + source: self + }); + }); + items.download.addEventListener('click', function () { + eventBus.dispatch('download', { + source: self + }); + }); + items.scaleSelect.oncontextmenu = _ui_utils.noContextMenuHandler; + eventBus.on('localized', function () { + _this._localized(); + }); + } + }, { + key: "_localized", + value: function _localized() { + this._wasLocalized = true; + + this._adjustScaleWidth(); + + this._updateUIState(true); + } + }, { + key: "_updateUIState", + value: function _updateUIState() { + var resetNumPages = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + + if (!this._wasLocalized) { + return; + } + + var pageNumber = this.pageNumber, + pagesCount = this.pagesCount, + pageScaleValue = this.pageScaleValue, + pageScale = this.pageScale, + items = this.items; + + if (resetNumPages) { + if (this.hasPageLabels) { + items.pageNumber.type = 'text'; + } else { + items.pageNumber.type = 'number'; + this.l10n.get('of_pages', { + pagesCount: pagesCount + }, 'of {{pagesCount}}').then(function (msg) { + items.numPages.textContent = msg; + }); + } + + items.pageNumber.max = pagesCount; + } + + if (this.hasPageLabels) { + items.pageNumber.value = this.pageLabel; + this.l10n.get('page_of_pages', { + pageNumber: pageNumber, + pagesCount: pagesCount + }, '({{pageNumber}} of {{pagesCount}})').then(function (msg) { + items.numPages.textContent = msg; + }); + } else { + items.pageNumber.value = pageNumber; + } + + items.previous.disabled = pageNumber <= 1; + items.next.disabled = pageNumber >= pagesCount; + items.zoomOut.disabled = pageScale <= _ui_utils.MIN_SCALE; + items.zoomIn.disabled = pageScale >= _ui_utils.MAX_SCALE; + var customScale = Math.round(pageScale * 10000) / 100; + this.l10n.get('page_scale_percent', { + scale: customScale + }, '{{scale}}%').then(function (msg) { + var options = items.scaleSelect.options; + var predefinedValueFound = false; + + for (var i = 0, ii = options.length; i < ii; i++) { + var option = options[i]; + + if (option.value !== pageScaleValue) { + option.selected = false; + continue; + } + + option.selected = true; + predefinedValueFound = true; + } + + if (!predefinedValueFound) { + items.customScaleOption.textContent = msg; + items.customScaleOption.selected = true; + } + }); + } + }, { + key: "updateLoadingIndicatorState", + value: function updateLoadingIndicatorState() { + var loading = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + var pageNumberInput = this.items.pageNumber; + pageNumberInput.classList.toggle(PAGE_NUMBER_LOADING_INDICATOR, loading); + } + }, { + key: "_adjustScaleWidth", + value: function _adjustScaleWidth() { + var container = this.items.scaleSelectContainer; + var select = this.items.scaleSelect; + + _ui_utils.animationStarted.then(function () { + if (container.clientWidth === 0) { + container.setAttribute('style', 'display: inherit;'); + } + + if (container.clientWidth > 0) { + select.setAttribute('style', 'min-width: inherit;'); + var width = select.clientWidth + SCALE_SELECT_CONTAINER_PADDING; + select.setAttribute('style', 'min-width: ' + (width + SCALE_SELECT_PADDING) + 'px;'); + container.setAttribute('style', 'min-width: ' + width + 'px; ' + 'max-width: ' + width + 'px;'); + } + }); + } + }]); + + return Toolbar; +}(); + +exports.Toolbar = Toolbar; + +/***/ }), +/* 35 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ViewHistory = void 0; + +var _regenerator = _interopRequireDefault(__webpack_require__(2)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var DEFAULT_VIEW_HISTORY_CACHE_SIZE = 20; + +var ViewHistory = +/*#__PURE__*/ +function () { + function ViewHistory(fingerprint) { + var _this = this; + + var cacheSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_VIEW_HISTORY_CACHE_SIZE; + + _classCallCheck(this, ViewHistory); + + this.fingerprint = fingerprint; + this.cacheSize = cacheSize; + this._initializedPromise = this._readFromStorage().then(function (databaseStr) { + var database = JSON.parse(databaseStr || '{}'); + + if (!('files' in database)) { + database.files = []; + } else { + while (database.files.length >= _this.cacheSize) { + database.files.shift(); + } + } + + var index = -1; + + for (var i = 0, length = database.files.length; i < length; i++) { + var branch = database.files[i]; + + if (branch.fingerprint === _this.fingerprint) { + index = i; + break; + } + } + + if (index === -1) { + index = database.files.push({ + fingerprint: _this.fingerprint + }) - 1; + } + + _this.file = database.files[index]; + _this.database = database; + }); + } + + _createClass(ViewHistory, [{ + key: "_writeToStorage", + value: function () { + var _writeToStorage2 = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee() { + var databaseStr; + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + databaseStr = JSON.stringify(this.database); + localStorage.setItem('pdfjs.history', databaseStr); + + case 2: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function _writeToStorage() { + return _writeToStorage2.apply(this, arguments); + } + + return _writeToStorage; + }() + }, { + key: "_readFromStorage", + value: function () { + var _readFromStorage2 = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee2() { + return _regenerator["default"].wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + return _context2.abrupt("return", localStorage.getItem('pdfjs.history')); + + case 1: + case "end": + return _context2.stop(); + } + } + }, _callee2); + })); + + function _readFromStorage() { + return _readFromStorage2.apply(this, arguments); + } + + return _readFromStorage; + }() + }, { + key: "set", + value: function () { + var _set = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee3(name, val) { + return _regenerator["default"].wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + _context3.next = 2; + return this._initializedPromise; + + case 2: + this.file[name] = val; + return _context3.abrupt("return", this._writeToStorage()); + + case 4: + case "end": + return _context3.stop(); + } + } + }, _callee3, this); + })); + + function set(_x, _x2) { + return _set.apply(this, arguments); + } + + return set; + }() + }, { + key: "setMultiple", + value: function () { + var _setMultiple = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee4(properties) { + var name; + return _regenerator["default"].wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + _context4.next = 2; + return this._initializedPromise; + + case 2: + for (name in properties) { + this.file[name] = properties[name]; + } + + return _context4.abrupt("return", this._writeToStorage()); + + case 4: + case "end": + return _context4.stop(); + } + } + }, _callee4, this); + })); + + function setMultiple(_x3) { + return _setMultiple.apply(this, arguments); + } + + return setMultiple; + }() + }, { + key: "get", + value: function () { + var _get = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee5(name, defaultValue) { + var val; + return _regenerator["default"].wrap(function _callee5$(_context5) { + while (1) { + switch (_context5.prev = _context5.next) { + case 0: + _context5.next = 2; + return this._initializedPromise; + + case 2: + val = this.file[name]; + return _context5.abrupt("return", val !== undefined ? val : defaultValue); + + case 4: + case "end": + return _context5.stop(); + } + } + }, _callee5, this); + })); + + function get(_x4, _x5) { + return _get.apply(this, arguments); + } + + return get; + }() + }, { + key: "getMultiple", + value: function () { + var _getMultiple = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee6(properties) { + var values, name, val; + return _regenerator["default"].wrap(function _callee6$(_context6) { + while (1) { + switch (_context6.prev = _context6.next) { + case 0: + _context6.next = 2; + return this._initializedPromise; + + case 2: + values = Object.create(null); + + for (name in properties) { + val = this.file[name]; + values[name] = val !== undefined ? val : properties[name]; + } + + return _context6.abrupt("return", values); + + case 5: + case "end": + return _context6.stop(); + } + } + }, _callee6, this); + })); + + function getMultiple(_x6) { + return _getMultiple.apply(this, arguments); + } + + return getMultiple; + }() + }]); + + return ViewHistory; +}(); + +exports.ViewHistory = ViewHistory; + +/***/ }), +/* 36 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.GenericCom = void 0; + +var _regenerator = _interopRequireDefault(__webpack_require__(2)); + +var _app = __webpack_require__(1); + +var _preferences = __webpack_require__(37); + +var _download_manager = __webpack_require__(38); + +var _genericl10n = __webpack_require__(39); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +; +var GenericCom = {}; +exports.GenericCom = GenericCom; + +var GenericPreferences = +/*#__PURE__*/ +function (_BasePreferences) { + _inherits(GenericPreferences, _BasePreferences); + + function GenericPreferences() { + _classCallCheck(this, GenericPreferences); + + return _possibleConstructorReturn(this, _getPrototypeOf(GenericPreferences).apply(this, arguments)); + } + + _createClass(GenericPreferences, [{ + key: "_writeToStorage", + value: function () { + var _writeToStorage2 = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee(prefObj) { + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + localStorage.setItem('pdfjs.preferences', JSON.stringify(prefObj)); + + case 1: + case "end": + return _context.stop(); + } + } + }, _callee); + })); + + function _writeToStorage(_x) { + return _writeToStorage2.apply(this, arguments); + } + + return _writeToStorage; + }() + }, { + key: "_readFromStorage", + value: function () { + var _readFromStorage2 = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee2(prefObj) { + return _regenerator["default"].wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + return _context2.abrupt("return", JSON.parse(localStorage.getItem('pdfjs.preferences'))); + + case 1: + case "end": + return _context2.stop(); + } + } + }, _callee2); + })); + + function _readFromStorage(_x2) { + return _readFromStorage2.apply(this, arguments); + } + + return _readFromStorage; + }() + }]); + + return GenericPreferences; +}(_preferences.BasePreferences); + +var GenericExternalServices = Object.create(_app.DefaultExternalServices); + +GenericExternalServices.createDownloadManager = function (options) { + return new _download_manager.DownloadManager(options); +}; + +GenericExternalServices.createPreferences = function () { + return new GenericPreferences(); +}; + +GenericExternalServices.createL10n = function (_ref) { + var _ref$locale = _ref.locale, + locale = _ref$locale === void 0 ? 'en-US' : _ref$locale; + return new _genericl10n.GenericL10n(locale); +}; + +_app.PDFViewerApplication.externalServices = GenericExternalServices; + +/***/ }), +/* 37 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.BasePreferences = void 0; + +var _regenerator = _interopRequireDefault(__webpack_require__(2)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var defaultPreferences = null; + +function getDefaultPreferences() { + if (!defaultPreferences) { + defaultPreferences = Promise.resolve({ + "cursorToolOnLoad": 0, + "defaultZoomValue": "", + "disablePageLabels": false, + "enablePrintAutoRotate": false, + "enableWebGL": false, + "eventBusDispatchToDOM": false, + "externalLinkTarget": 0, + "historyUpdateUrl": false, + "pdfBugEnabled": false, + "renderer": "canvas", + "renderInteractiveForms": false, + "sidebarViewOnLoad": -1, + "scrollModeOnLoad": -1, + "spreadModeOnLoad": -1, + "textLayerMode": 1, + "useOnlyCssZoom": false, + "viewOnLoad": 0, + "disableAutoFetch": false, + "disableFontFace": false, + "disableRange": false, + "disableStream": false + }); + } + + return defaultPreferences; +} + +var BasePreferences = +/*#__PURE__*/ +function () { + function BasePreferences() { + var _this = this; + + _classCallCheck(this, BasePreferences); + + if (this.constructor === BasePreferences) { + throw new Error('Cannot initialize BasePreferences.'); + } + + this.prefs = null; + this._initializedPromise = getDefaultPreferences().then(function (defaults) { + Object.defineProperty(_this, 'defaults', { + value: Object.freeze(defaults), + writable: false, + enumerable: true, + configurable: false + }); + _this.prefs = Object.assign(Object.create(null), defaults); + return _this._readFromStorage(defaults); + }).then(function (prefs) { + if (!prefs) { + return; + } + + for (var name in prefs) { + var defaultValue = _this.defaults[name], + prefValue = prefs[name]; + + if (defaultValue === undefined || _typeof(prefValue) !== _typeof(defaultValue)) { + continue; + } + + _this.prefs[name] = prefValue; + } + }); + } + + _createClass(BasePreferences, [{ + key: "_writeToStorage", + value: function () { + var _writeToStorage2 = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee(prefObj) { + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + throw new Error('Not implemented: _writeToStorage'); + + case 1: + case "end": + return _context.stop(); + } + } + }, _callee); + })); + + function _writeToStorage(_x) { + return _writeToStorage2.apply(this, arguments); + } + + return _writeToStorage; + }() + }, { + key: "_readFromStorage", + value: function () { + var _readFromStorage2 = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee2(prefObj) { + return _regenerator["default"].wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + throw new Error('Not implemented: _readFromStorage'); + + case 1: + case "end": + return _context2.stop(); + } + } + }, _callee2); + })); + + function _readFromStorage(_x2) { + return _readFromStorage2.apply(this, arguments); + } + + return _readFromStorage; + }() + }, { + key: "reset", + value: function () { + var _reset = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee3() { + return _regenerator["default"].wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + _context3.next = 2; + return this._initializedPromise; + + case 2: + this.prefs = Object.assign(Object.create(null), this.defaults); + return _context3.abrupt("return", this._writeToStorage(this.defaults)); + + case 4: + case "end": + return _context3.stop(); + } + } + }, _callee3, this); + })); + + function reset() { + return _reset.apply(this, arguments); + } + + return reset; + }() + }, { + key: "set", + value: function () { + var _set = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee4(name, value) { + var defaultValue, valueType, defaultType; + return _regenerator["default"].wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + _context4.next = 2; + return this._initializedPromise; + + case 2: + defaultValue = this.defaults[name]; + + if (!(defaultValue === undefined)) { + _context4.next = 7; + break; + } + + throw new Error("Set preference: \"".concat(name, "\" is undefined.")); + + case 7: + if (!(value === undefined)) { + _context4.next = 9; + break; + } + + throw new Error('Set preference: no value is specified.'); + + case 9: + valueType = _typeof(value); + defaultType = _typeof(defaultValue); + + if (!(valueType !== defaultType)) { + _context4.next = 19; + break; + } + + if (!(valueType === 'number' && defaultType === 'string')) { + _context4.next = 16; + break; + } + + value = value.toString(); + _context4.next = 17; + break; + + case 16: + throw new Error("Set preference: \"".concat(value, "\" is a ").concat(valueType, ", ") + "expected a ".concat(defaultType, ".")); + + case 17: + _context4.next = 21; + break; + + case 19: + if (!(valueType === 'number' && !Number.isInteger(value))) { + _context4.next = 21; + break; + } + + throw new Error("Set preference: \"".concat(value, "\" must be an integer.")); + + case 21: + this.prefs[name] = value; + return _context4.abrupt("return", this._writeToStorage(this.prefs)); + + case 23: + case "end": + return _context4.stop(); + } + } + }, _callee4, this); + })); + + function set(_x3, _x4) { + return _set.apply(this, arguments); + } + + return set; + }() + }, { + key: "get", + value: function () { + var _get = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee5(name) { + var defaultValue, prefValue; + return _regenerator["default"].wrap(function _callee5$(_context5) { + while (1) { + switch (_context5.prev = _context5.next) { + case 0: + _context5.next = 2; + return this._initializedPromise; + + case 2: + defaultValue = this.defaults[name]; + + if (!(defaultValue === undefined)) { + _context5.next = 7; + break; + } + + throw new Error("Get preference: \"".concat(name, "\" is undefined.")); + + case 7: + prefValue = this.prefs[name]; + + if (!(prefValue !== undefined)) { + _context5.next = 10; + break; + } + + return _context5.abrupt("return", prefValue); + + case 10: + return _context5.abrupt("return", defaultValue); + + case 11: + case "end": + return _context5.stop(); + } + } + }, _callee5, this); + })); + + function get(_x5) { + return _get.apply(this, arguments); + } + + return get; + }() + }, { + key: "getAll", + value: function () { + var _getAll = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee6() { + return _regenerator["default"].wrap(function _callee6$(_context6) { + while (1) { + switch (_context6.prev = _context6.next) { + case 0: + _context6.next = 2; + return this._initializedPromise; + + case 2: + return _context6.abrupt("return", Object.assign(Object.create(null), this.defaults, this.prefs)); + + case 3: + case "end": + return _context6.stop(); + } + } + }, _callee6, this); + })); + + function getAll() { + return _getAll.apply(this, arguments); + } + + return getAll; + }() + }]); + + return BasePreferences; +}(); + +exports.BasePreferences = BasePreferences; + +/***/ }), +/* 38 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.DownloadManager = void 0; + +var _pdfjsLib = __webpack_require__(7); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +; +var DISABLE_CREATE_OBJECT_URL = _pdfjsLib.apiCompatibilityParams.disableCreateObjectURL || false; + +function _download(blobUrl, filename) { + var a = document.createElement('a'); + + if (!a.click) { + throw new Error('DownloadManager: "a.click()" is not supported.'); + } + + a.href = blobUrl; + a.target = '_parent'; + + if ('download' in a) { + a.download = filename; + } + + (document.body || document.documentElement).appendChild(a); + a.click(); + a.remove(); +} + +var DownloadManager = +/*#__PURE__*/ +function () { + function DownloadManager(_ref) { + var _ref$disableCreateObj = _ref.disableCreateObjectURL, + disableCreateObjectURL = _ref$disableCreateObj === void 0 ? DISABLE_CREATE_OBJECT_URL : _ref$disableCreateObj; + + _classCallCheck(this, DownloadManager); + + this.disableCreateObjectURL = disableCreateObjectURL; + } + + _createClass(DownloadManager, [{ + key: "downloadUrl", + value: function downloadUrl(url, filename) { + if (!(0, _pdfjsLib.createValidAbsoluteUrl)(url, 'http://example.com')) { + return; + } + + _download(url + '#pdfjs.action=download', filename); + } + }, { + key: "downloadData", + value: function downloadData(data, filename, contentType) { + if (navigator.msSaveBlob) { + navigator.msSaveBlob(new Blob([data], { + type: contentType + }), filename); + return; + } + + var blobUrl = (0, _pdfjsLib.createObjectURL)(data, contentType, this.disableCreateObjectURL); + + _download(blobUrl, filename); + } + }, { + key: "download", + value: function download(blob, url, filename) { + if (navigator.msSaveBlob) { + if (!navigator.msSaveBlob(blob, filename)) { + this.downloadUrl(url, filename); + } + + return; + } + + if (this.disableCreateObjectURL) { + this.downloadUrl(url, filename); + return; + } + + var blobUrl = _pdfjsLib.URL.createObjectURL(blob); + + _download(blobUrl, filename); + } + }]); + + return DownloadManager; +}(); + +exports.DownloadManager = DownloadManager; + +/***/ }), +/* 39 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.GenericL10n = void 0; + +var _regenerator = _interopRequireDefault(__webpack_require__(2)); + +__webpack_require__(40); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var webL10n = document.webL10n; + +var GenericL10n = +/*#__PURE__*/ +function () { + function GenericL10n(lang) { + _classCallCheck(this, GenericL10n); + + this._lang = lang; + this._ready = new Promise(function (resolve, reject) { + webL10n.setLanguage(lang, function () { + resolve(webL10n); + }); + }); + } + + _createClass(GenericL10n, [{ + key: "getLanguage", + value: function () { + var _getLanguage = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee() { + var l10n; + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return this._ready; + + case 2: + l10n = _context.sent; + return _context.abrupt("return", l10n.getLanguage()); + + case 4: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function getLanguage() { + return _getLanguage.apply(this, arguments); + } + + return getLanguage; + }() + }, { + key: "getDirection", + value: function () { + var _getDirection = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee2() { + var l10n; + return _regenerator["default"].wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + _context2.next = 2; + return this._ready; + + case 2: + l10n = _context2.sent; + return _context2.abrupt("return", l10n.getDirection()); + + case 4: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + function getDirection() { + return _getDirection.apply(this, arguments); + } + + return getDirection; + }() + }, { + key: "get", + value: function () { + var _get = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee3(property, args, fallback) { + var l10n; + return _regenerator["default"].wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + _context3.next = 2; + return this._ready; + + case 2: + l10n = _context3.sent; + return _context3.abrupt("return", l10n.get(property, args, fallback)); + + case 4: + case "end": + return _context3.stop(); + } + } + }, _callee3, this); + })); + + function get(_x, _x2, _x3) { + return _get.apply(this, arguments); + } + + return get; + }() + }, { + key: "translate", + value: function () { + var _translate = _asyncToGenerator( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee4(element) { + var l10n; + return _regenerator["default"].wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + _context4.next = 2; + return this._ready; + + case 2: + l10n = _context4.sent; + return _context4.abrupt("return", l10n.translate(element)); + + case 4: + case "end": + return _context4.stop(); + } + } + }, _callee4, this); + })); + + function translate(_x4) { + return _translate.apply(this, arguments); + } + + return translate; + }() + }]); + + return GenericL10n; +}(); + +exports.GenericL10n = GenericL10n; + +/***/ }), +/* 40 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +document.webL10n = function (window, document, undefined) { + var gL10nData = {}; + var gTextData = ''; + var gTextProp = 'textContent'; + var gLanguage = ''; + var gMacros = {}; + var gReadyState = 'loading'; + var gAsyncResourceLoading = true; + + function getL10nResourceLinks() { + return document.querySelectorAll('link[type="application/l10n"]'); + } + + function getL10nDictionary() { + var script = document.querySelector('script[type="application/l10n"]'); + return script ? JSON.parse(script.innerHTML) : null; + } + + function getTranslatableChildren(element) { + return element ? element.querySelectorAll('*[data-l10n-id]') : []; + } + + function getL10nAttributes(element) { + if (!element) return {}; + var l10nId = element.getAttribute('data-l10n-id'); + var l10nArgs = element.getAttribute('data-l10n-args'); + var args = {}; + + if (l10nArgs) { + try { + args = JSON.parse(l10nArgs); + } catch (e) { + console.warn('could not parse arguments for #' + l10nId); + } + } + + return { + id: l10nId, + args: args + }; + } + + function fireL10nReadyEvent(lang) { + var evtObject = document.createEvent('Event'); + evtObject.initEvent('localized', true, false); + evtObject.language = lang; + document.dispatchEvent(evtObject); + } + + function xhrLoadText(url, onSuccess, onFailure) { + onSuccess = onSuccess || function _onSuccess(data) {}; + + onFailure = onFailure || function _onFailure() {}; + + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, gAsyncResourceLoading); + + if (xhr.overrideMimeType) { + xhr.overrideMimeType('text/plain; charset=utf-8'); + } + + xhr.onreadystatechange = function () { + if (xhr.readyState == 4) { + if (xhr.status == 200 || xhr.status === 0) { + onSuccess(xhr.responseText); + } else { + onFailure(); + } + } + }; + + xhr.onerror = onFailure; + xhr.ontimeout = onFailure; + + try { + xhr.send(null); + } catch (e) { + onFailure(); + } + } + + function parseResource(href, lang, successCallback, failureCallback) { + var baseURL = href.replace(/[^\/]*$/, '') || './'; + + function evalString(text) { + if (text.lastIndexOf('\\') < 0) return text; + return text.replace(/\\\\/g, '\\').replace(/\\n/g, '\n').replace(/\\r/g, '\r').replace(/\\t/g, '\t').replace(/\\b/g, '\b').replace(/\\f/g, '\f').replace(/\\{/g, '{').replace(/\\}/g, '}').replace(/\\"/g, '"').replace(/\\'/g, "'"); + } + + function parseProperties(text, parsedPropertiesCallback) { + var dictionary = {}; + var reBlank = /^\s*|\s*$/; + var reComment = /^\s*#|^\s*$/; + var reSection = /^\s*\[(.*)\]\s*$/; + var reImport = /^\s*@import\s+url\((.*)\)\s*$/i; + var reSplit = /^([^=\s]*)\s*=\s*(.+)$/; + + function parseRawLines(rawText, extendedSyntax, parsedRawLinesCallback) { + var entries = rawText.replace(reBlank, '').split(/[\r\n]+/); + var currentLang = '*'; + var genericLang = lang.split('-', 1)[0]; + var skipLang = false; + var match = ''; + + function nextEntry() { + while (true) { + if (!entries.length) { + parsedRawLinesCallback(); + return; + } + + var line = entries.shift(); + if (reComment.test(line)) continue; + + if (extendedSyntax) { + match = reSection.exec(line); + + if (match) { + currentLang = match[1].toLowerCase(); + skipLang = currentLang !== '*' && currentLang !== lang && currentLang !== genericLang; + continue; + } else if (skipLang) { + continue; + } + + match = reImport.exec(line); + + if (match) { + loadImport(baseURL + match[1], nextEntry); + return; + } + } + + var tmp = line.match(reSplit); + + if (tmp && tmp.length == 3) { + dictionary[tmp[1]] = evalString(tmp[2]); + } + } + } + + nextEntry(); + } + + function loadImport(url, callback) { + xhrLoadText(url, function (content) { + parseRawLines(content, false, callback); + }, function () { + console.warn(url + ' not found.'); + callback(); + }); + } + + parseRawLines(text, true, function () { + parsedPropertiesCallback(dictionary); + }); + } + + xhrLoadText(href, function (response) { + gTextData += response; + parseProperties(response, function (data) { + for (var key in data) { + var id, + prop, + index = key.lastIndexOf('.'); + + if (index > 0) { + id = key.substring(0, index); + prop = key.substring(index + 1); + } else { + id = key; + prop = gTextProp; + } + + if (!gL10nData[id]) { + gL10nData[id] = {}; + } + + gL10nData[id][prop] = data[key]; + } + + if (successCallback) { + successCallback(); + } + }); + }, failureCallback); + } + + function loadLocale(lang, callback) { + if (lang) { + lang = lang.toLowerCase(); + } + + callback = callback || function _callback() {}; + + clear(); + gLanguage = lang; + var langLinks = getL10nResourceLinks(); + var langCount = langLinks.length; + + if (langCount === 0) { + var dict = getL10nDictionary(); + + if (dict && dict.locales && dict.default_locale) { + console.log('using the embedded JSON directory, early way out'); + gL10nData = dict.locales[lang]; + + if (!gL10nData) { + var defaultLocale = dict.default_locale.toLowerCase(); + + for (var anyCaseLang in dict.locales) { + anyCaseLang = anyCaseLang.toLowerCase(); + + if (anyCaseLang === lang) { + gL10nData = dict.locales[lang]; + break; + } else if (anyCaseLang === defaultLocale) { + gL10nData = dict.locales[defaultLocale]; + } + } + } + + callback(); + } else { + console.log('no resource to load, early way out'); + } + + fireL10nReadyEvent(lang); + gReadyState = 'complete'; + return; + } + + var onResourceLoaded = null; + var gResourceCount = 0; + + onResourceLoaded = function onResourceLoaded() { + gResourceCount++; + + if (gResourceCount >= langCount) { + callback(); + fireL10nReadyEvent(lang); + gReadyState = 'complete'; + } + }; + + function L10nResourceLink(link) { + var href = link.href; + + this.load = function (lang, callback) { + parseResource(href, lang, callback, function () { + console.warn(href + ' not found.'); + console.warn('"' + lang + '" resource not found'); + gLanguage = ''; + callback(); + }); + }; + } + + for (var i = 0; i < langCount; i++) { + var resource = new L10nResourceLink(langLinks[i]); + resource.load(lang, onResourceLoaded); + } + } + + function clear() { + gL10nData = {}; + gTextData = ''; + gLanguage = ''; + } + + function getPluralRules(lang) { + var locales2rules = { + 'af': 3, + 'ak': 4, + 'am': 4, + 'ar': 1, + 'asa': 3, + 'az': 0, + 'be': 11, + 'bem': 3, + 'bez': 3, + 'bg': 3, + 'bh': 4, + 'bm': 0, + 'bn': 3, + 'bo': 0, + 'br': 20, + 'brx': 3, + 'bs': 11, + 'ca': 3, + 'cgg': 3, + 'chr': 3, + 'cs': 12, + 'cy': 17, + 'da': 3, + 'de': 3, + 'dv': 3, + 'dz': 0, + 'ee': 3, + 'el': 3, + 'en': 3, + 'eo': 3, + 'es': 3, + 'et': 3, + 'eu': 3, + 'fa': 0, + 'ff': 5, + 'fi': 3, + 'fil': 4, + 'fo': 3, + 'fr': 5, + 'fur': 3, + 'fy': 3, + 'ga': 8, + 'gd': 24, + 'gl': 3, + 'gsw': 3, + 'gu': 3, + 'guw': 4, + 'gv': 23, + 'ha': 3, + 'haw': 3, + 'he': 2, + 'hi': 4, + 'hr': 11, + 'hu': 0, + 'id': 0, + 'ig': 0, + 'ii': 0, + 'is': 3, + 'it': 3, + 'iu': 7, + 'ja': 0, + 'jmc': 3, + 'jv': 0, + 'ka': 0, + 'kab': 5, + 'kaj': 3, + 'kcg': 3, + 'kde': 0, + 'kea': 0, + 'kk': 3, + 'kl': 3, + 'km': 0, + 'kn': 0, + 'ko': 0, + 'ksb': 3, + 'ksh': 21, + 'ku': 3, + 'kw': 7, + 'lag': 18, + 'lb': 3, + 'lg': 3, + 'ln': 4, + 'lo': 0, + 'lt': 10, + 'lv': 6, + 'mas': 3, + 'mg': 4, + 'mk': 16, + 'ml': 3, + 'mn': 3, + 'mo': 9, + 'mr': 3, + 'ms': 0, + 'mt': 15, + 'my': 0, + 'nah': 3, + 'naq': 7, + 'nb': 3, + 'nd': 3, + 'ne': 3, + 'nl': 3, + 'nn': 3, + 'no': 3, + 'nr': 3, + 'nso': 4, + 'ny': 3, + 'nyn': 3, + 'om': 3, + 'or': 3, + 'pa': 3, + 'pap': 3, + 'pl': 13, + 'ps': 3, + 'pt': 3, + 'rm': 3, + 'ro': 9, + 'rof': 3, + 'ru': 11, + 'rwk': 3, + 'sah': 0, + 'saq': 3, + 'se': 7, + 'seh': 3, + 'ses': 0, + 'sg': 0, + 'sh': 11, + 'shi': 19, + 'sk': 12, + 'sl': 14, + 'sma': 7, + 'smi': 7, + 'smj': 7, + 'smn': 7, + 'sms': 7, + 'sn': 3, + 'so': 3, + 'sq': 3, + 'sr': 11, + 'ss': 3, + 'ssy': 3, + 'st': 3, + 'sv': 3, + 'sw': 3, + 'syr': 3, + 'ta': 3, + 'te': 3, + 'teo': 3, + 'th': 0, + 'ti': 4, + 'tig': 3, + 'tk': 3, + 'tl': 4, + 'tn': 3, + 'to': 0, + 'tr': 0, + 'ts': 3, + 'tzm': 22, + 'uk': 11, + 'ur': 3, + 've': 3, + 'vi': 0, + 'vun': 3, + 'wa': 4, + 'wae': 3, + 'wo': 0, + 'xh': 3, + 'xog': 3, + 'yo': 0, + 'zh': 0, + 'zu': 3 + }; + + function isIn(n, list) { + return list.indexOf(n) !== -1; + } + + function isBetween(n, start, end) { + return start <= n && n <= end; + } + + var pluralRules = { + '0': function _(n) { + return 'other'; + }, + '1': function _(n) { + if (isBetween(n % 100, 3, 10)) return 'few'; + if (n === 0) return 'zero'; + if (isBetween(n % 100, 11, 99)) return 'many'; + if (n == 2) return 'two'; + if (n == 1) return 'one'; + return 'other'; + }, + '2': function _(n) { + if (n !== 0 && n % 10 === 0) return 'many'; + if (n == 2) return 'two'; + if (n == 1) return 'one'; + return 'other'; + }, + '3': function _(n) { + if (n == 1) return 'one'; + return 'other'; + }, + '4': function _(n) { + if (isBetween(n, 0, 1)) return 'one'; + return 'other'; + }, + '5': function _(n) { + if (isBetween(n, 0, 2) && n != 2) return 'one'; + return 'other'; + }, + '6': function _(n) { + if (n === 0) return 'zero'; + if (n % 10 == 1 && n % 100 != 11) return 'one'; + return 'other'; + }, + '7': function _(n) { + if (n == 2) return 'two'; + if (n == 1) return 'one'; + return 'other'; + }, + '8': function _(n) { + if (isBetween(n, 3, 6)) return 'few'; + if (isBetween(n, 7, 10)) return 'many'; + if (n == 2) return 'two'; + if (n == 1) return 'one'; + return 'other'; + }, + '9': function _(n) { + if (n === 0 || n != 1 && isBetween(n % 100, 1, 19)) return 'few'; + if (n == 1) return 'one'; + return 'other'; + }, + '10': function _(n) { + if (isBetween(n % 10, 2, 9) && !isBetween(n % 100, 11, 19)) return 'few'; + if (n % 10 == 1 && !isBetween(n % 100, 11, 19)) return 'one'; + return 'other'; + }, + '11': function _(n) { + if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few'; + if (n % 10 === 0 || isBetween(n % 10, 5, 9) || isBetween(n % 100, 11, 14)) return 'many'; + if (n % 10 == 1 && n % 100 != 11) return 'one'; + return 'other'; + }, + '12': function _(n) { + if (isBetween(n, 2, 4)) return 'few'; + if (n == 1) return 'one'; + return 'other'; + }, + '13': function _(n) { + if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few'; + if (n != 1 && isBetween(n % 10, 0, 1) || isBetween(n % 10, 5, 9) || isBetween(n % 100, 12, 14)) return 'many'; + if (n == 1) return 'one'; + return 'other'; + }, + '14': function _(n) { + if (isBetween(n % 100, 3, 4)) return 'few'; + if (n % 100 == 2) return 'two'; + if (n % 100 == 1) return 'one'; + return 'other'; + }, + '15': function _(n) { + if (n === 0 || isBetween(n % 100, 2, 10)) return 'few'; + if (isBetween(n % 100, 11, 19)) return 'many'; + if (n == 1) return 'one'; + return 'other'; + }, + '16': function _(n) { + if (n % 10 == 1 && n != 11) return 'one'; + return 'other'; + }, + '17': function _(n) { + if (n == 3) return 'few'; + if (n === 0) return 'zero'; + if (n == 6) return 'many'; + if (n == 2) return 'two'; + if (n == 1) return 'one'; + return 'other'; + }, + '18': function _(n) { + if (n === 0) return 'zero'; + if (isBetween(n, 0, 2) && n !== 0 && n != 2) return 'one'; + return 'other'; + }, + '19': function _(n) { + if (isBetween(n, 2, 10)) return 'few'; + if (isBetween(n, 0, 1)) return 'one'; + return 'other'; + }, + '20': function _(n) { + if ((isBetween(n % 10, 3, 4) || n % 10 == 9) && !(isBetween(n % 100, 10, 19) || isBetween(n % 100, 70, 79) || isBetween(n % 100, 90, 99))) return 'few'; + if (n % 1000000 === 0 && n !== 0) return 'many'; + if (n % 10 == 2 && !isIn(n % 100, [12, 72, 92])) return 'two'; + if (n % 10 == 1 && !isIn(n % 100, [11, 71, 91])) return 'one'; + return 'other'; + }, + '21': function _(n) { + if (n === 0) return 'zero'; + if (n == 1) return 'one'; + return 'other'; + }, + '22': function _(n) { + if (isBetween(n, 0, 1) || isBetween(n, 11, 99)) return 'one'; + return 'other'; + }, + '23': function _(n) { + if (isBetween(n % 10, 1, 2) || n % 20 === 0) return 'one'; + return 'other'; + }, + '24': function _(n) { + if (isBetween(n, 3, 10) || isBetween(n, 13, 19)) return 'few'; + if (isIn(n, [2, 12])) return 'two'; + if (isIn(n, [1, 11])) return 'one'; + return 'other'; + } + }; + var index = locales2rules[lang.replace(/-.*$/, '')]; + + if (!(index in pluralRules)) { + console.warn('plural form unknown for [' + lang + ']'); + return function () { + return 'other'; + }; + } + + return pluralRules[index]; + } + + gMacros.plural = function (str, param, key, prop) { + var n = parseFloat(param); + if (isNaN(n)) return str; + if (prop != gTextProp) return str; + + if (!gMacros._pluralRules) { + gMacros._pluralRules = getPluralRules(gLanguage); + } + + var index = '[' + gMacros._pluralRules(n) + ']'; + + if (n === 0 && key + '[zero]' in gL10nData) { + str = gL10nData[key + '[zero]'][prop]; + } else if (n == 1 && key + '[one]' in gL10nData) { + str = gL10nData[key + '[one]'][prop]; + } else if (n == 2 && key + '[two]' in gL10nData) { + str = gL10nData[key + '[two]'][prop]; + } else if (key + index in gL10nData) { + str = gL10nData[key + index][prop]; + } else if (key + '[other]' in gL10nData) { + str = gL10nData[key + '[other]'][prop]; + } + + return str; + }; + + function getL10nData(key, args, fallback) { + var data = gL10nData[key]; + + if (!data) { + console.warn('#' + key + ' is undefined.'); + + if (!fallback) { + return null; + } + + data = fallback; + } + + var rv = {}; + + for (var prop in data) { + var str = data[prop]; + str = substIndexes(str, args, key, prop); + str = substArguments(str, args, key); + rv[prop] = str; + } + + return rv; + } + + function substIndexes(str, args, key, prop) { + var reIndex = /\{\[\s*([a-zA-Z]+)\(([a-zA-Z]+)\)\s*\]\}/; + var reMatch = reIndex.exec(str); + if (!reMatch || !reMatch.length) return str; + var macroName = reMatch[1]; + var paramName = reMatch[2]; + var param; + + if (args && paramName in args) { + param = args[paramName]; + } else if (paramName in gL10nData) { + param = gL10nData[paramName]; + } + + if (macroName in gMacros) { + var macro = gMacros[macroName]; + str = macro(str, param, key, prop); + } + + return str; + } + + function substArguments(str, args, key) { + var reArgs = /\{\{\s*(.+?)\s*\}\}/g; + return str.replace(reArgs, function (matched_text, arg) { + if (args && arg in args) { + return args[arg]; + } + + if (arg in gL10nData) { + return gL10nData[arg]; + } + + console.log('argument {{' + arg + '}} for #' + key + ' is undefined.'); + return matched_text; + }); + } + + function translateElement(element) { + var l10n = getL10nAttributes(element); + if (!l10n.id) return; + var data = getL10nData(l10n.id, l10n.args); + + if (!data) { + console.warn('#' + l10n.id + ' is undefined.'); + return; + } + + if (data[gTextProp]) { + if (getChildElementCount(element) === 0) { + element[gTextProp] = data[gTextProp]; + } else { + var children = element.childNodes; + var found = false; + + for (var i = 0, l = children.length; i < l; i++) { + if (children[i].nodeType === 3 && /\S/.test(children[i].nodeValue)) { + if (found) { + children[i].nodeValue = ''; + } else { + children[i].nodeValue = data[gTextProp]; + found = true; + } + } + } + + if (!found) { + var textNode = document.createTextNode(data[gTextProp]); + element.insertBefore(textNode, element.firstChild); + } + } + + delete data[gTextProp]; + } + + for (var k in data) { + element[k] = data[k]; + } + } + + function getChildElementCount(element) { + if (element.children) { + return element.children.length; + } + + if (typeof element.childElementCount !== 'undefined') { + return element.childElementCount; + } + + var count = 0; + + for (var i = 0; i < element.childNodes.length; i++) { + count += element.nodeType === 1 ? 1 : 0; + } + + return count; + } + + function translateFragment(element) { + element = element || document.documentElement; + var children = getTranslatableChildren(element); + var elementCount = children.length; + + for (var i = 0; i < elementCount; i++) { + translateElement(children[i]); + } + + translateElement(element); + } + + return { + get: function get(key, args, fallbackString) { + var index = key.lastIndexOf('.'); + var prop = gTextProp; + + if (index > 0) { + prop = key.substring(index + 1); + key = key.substring(0, index); + } + + var fallback; + + if (fallbackString) { + fallback = {}; + fallback[prop] = fallbackString; + } + + var data = getL10nData(key, args, fallback); + + if (data && prop in data) { + return data[prop]; + } + + return '{{' + key + '}}'; + }, + getData: function getData() { + return gL10nData; + }, + getText: function getText() { + return gTextData; + }, + getLanguage: function getLanguage() { + return gLanguage; + }, + setLanguage: function setLanguage(lang, callback) { + loadLocale(lang, function () { + if (callback) callback(); + }); + }, + getDirection: function getDirection() { + var rtlList = ['ar', 'he', 'fa', 'ps', 'ur']; + var shortCode = gLanguage.split('-', 1)[0]; + return rtlList.indexOf(shortCode) >= 0 ? 'rtl' : 'ltr'; + }, + translate: translateFragment, + getReadyState: function getReadyState() { + return gReadyState; + }, + ready: function ready(callback) { + if (!callback) { + return; + } else if (gReadyState == 'complete' || gReadyState == 'interactive') { + window.setTimeout(function () { + callback(); + }); + } else if (document.addEventListener) { + document.addEventListener('localized', function once() { + document.removeEventListener('localized', once); + callback(); + }); + } + } + }; +}(window, document); + +/***/ }), +/* 41 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFPrintService = PDFPrintService; + +var _ui_utils = __webpack_require__(5); + +var _app = __webpack_require__(1); + +var _app_options = __webpack_require__(6); + +var _pdfjsLib = __webpack_require__(7); + +var activeService = null; +var overlayManager = null; + +function renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size) { + var scratchCanvas = activeService.scratchCanvas; + var PRINT_RESOLUTION = _app_options.AppOptions.get('printResolution') || 150; + var PRINT_UNITS = PRINT_RESOLUTION / 72.0; + scratchCanvas.width = Math.floor(size.width * PRINT_UNITS); + scratchCanvas.height = Math.floor(size.height * PRINT_UNITS); + var width = Math.floor(size.width * _ui_utils.CSS_UNITS) + 'px'; + var height = Math.floor(size.height * _ui_utils.CSS_UNITS) + 'px'; + var ctx = scratchCanvas.getContext('2d'); + ctx.save(); + ctx.fillStyle = 'rgb(255, 255, 255)'; + ctx.fillRect(0, 0, scratchCanvas.width, scratchCanvas.height); + ctx.restore(); + return pdfDocument.getPage(pageNumber).then(function (pdfPage) { + var renderContext = { + canvasContext: ctx, + transform: [PRINT_UNITS, 0, 0, PRINT_UNITS, 0, 0], + viewport: pdfPage.getViewport({ + scale: 1, + rotation: size.rotation + }), + intent: 'print' + }; + return pdfPage.render(renderContext).promise; + }).then(function () { + return { + width: width, + height: height + }; + }); +} + +function PDFPrintService(pdfDocument, pagesOverview, printContainer, l10n) { + this.pdfDocument = pdfDocument; + this.pagesOverview = pagesOverview; + this.printContainer = printContainer; + this.l10n = l10n || _ui_utils.NullL10n; + this.disableCreateObjectURL = pdfDocument.loadingParams['disableCreateObjectURL']; + this.currentPage = -1; + this.scratchCanvas = document.createElement('canvas'); +} + +PDFPrintService.prototype = { + layout: function layout() { + this.throwIfInactive(); + var body = document.querySelector('body'); + body.setAttribute('data-pdfjsprinting', true); + var hasEqualPageSizes = this.pagesOverview.every(function (size) { + return size.width === this.pagesOverview[0].width && size.height === this.pagesOverview[0].height; + }, this); + + if (!hasEqualPageSizes) { + console.warn('Not all pages have the same size. The printed ' + 'result may be incorrect!'); + } + + this.pageStyleSheet = document.createElement('style'); + var pageSize = this.pagesOverview[0]; + this.pageStyleSheet.textContent = '@supports ((size:A4) and (size:1pt 1pt)) {' + '@page { size: ' + pageSize.width + 'pt ' + pageSize.height + 'pt;}' + '}'; + body.appendChild(this.pageStyleSheet); + }, + destroy: function destroy() { + if (activeService !== this) { + return; + } + + this.printContainer.textContent = ''; + + if (this.pageStyleSheet) { + this.pageStyleSheet.remove(); + this.pageStyleSheet = null; + } + + this.scratchCanvas.width = this.scratchCanvas.height = 0; + this.scratchCanvas = null; + activeService = null; + ensureOverlay().then(function () { + if (overlayManager.active !== 'printServiceOverlay') { + return; + } + + overlayManager.close('printServiceOverlay'); + }); + }, + renderPages: function renderPages() { + var _this = this; + + var pageCount = this.pagesOverview.length; + + var renderNextPage = function renderNextPage(resolve, reject) { + _this.throwIfInactive(); + + if (++_this.currentPage >= pageCount) { + renderProgress(pageCount, pageCount, _this.l10n); + resolve(); + return; + } + + var index = _this.currentPage; + renderProgress(index, pageCount, _this.l10n); + renderPage(_this, _this.pdfDocument, index + 1, _this.pagesOverview[index]).then(_this.useRenderedPage.bind(_this)).then(function () { + renderNextPage(resolve, reject); + }, reject); + }; + + return new Promise(renderNextPage); + }, + useRenderedPage: function useRenderedPage(printItem) { + this.throwIfInactive(); + var img = document.createElement('img'); + img.style.width = printItem.width; + img.style.height = printItem.height; + var scratchCanvas = this.scratchCanvas; + + if ('toBlob' in scratchCanvas && !this.disableCreateObjectURL) { + scratchCanvas.toBlob(function (blob) { + img.src = _pdfjsLib.URL.createObjectURL(blob); + }); + } else { + img.src = scratchCanvas.toDataURL(); + } + + var wrapper = document.createElement('div'); + wrapper.appendChild(img); + this.printContainer.appendChild(wrapper); + return new Promise(function (resolve, reject) { + img.onload = resolve; + img.onerror = reject; + }); + }, + performPrint: function performPrint() { + var _this2 = this; + + this.throwIfInactive(); + return new Promise(function (resolve) { + setTimeout(function () { + if (!_this2.active) { + resolve(); + return; + } + + print.call(window); + setTimeout(resolve, 20); + }, 0); + }); + }, + + get active() { + return this === activeService; + }, + + throwIfInactive: function throwIfInactive() { + if (!this.active) { + throw new Error('This print request was cancelled or completed.'); + } + } +}; +var print = window.print; + +window.print = function print() { + if (activeService) { + console.warn('Ignored window.print() because of a pending print job.'); + return; + } + + ensureOverlay().then(function () { + if (activeService) { + overlayManager.open('printServiceOverlay'); + } + }); + + try { + dispatchEvent('beforeprint'); + } finally { + if (!activeService) { + console.error('Expected print service to be initialized.'); + ensureOverlay().then(function () { + if (overlayManager.active === 'printServiceOverlay') { + overlayManager.close('printServiceOverlay'); + } + }); + return; + } + + var activeServiceOnEntry = activeService; + activeService.renderPages().then(function () { + return activeServiceOnEntry.performPrint(); + })["catch"](function () {}).then(function () { + if (activeServiceOnEntry.active) { + abort(); + } + }); + } +}; + +function dispatchEvent(eventType) { + var event = document.createEvent('CustomEvent'); + event.initCustomEvent(eventType, false, false, 'custom'); + window.dispatchEvent(event); +} + +function abort() { + if (activeService) { + activeService.destroy(); + dispatchEvent('afterprint'); + } +} + +function renderProgress(index, total, l10n) { + var progressContainer = document.getElementById('printServiceOverlay'); + var progress = Math.round(100 * index / total); + var progressBar = progressContainer.querySelector('progress'); + var progressPerc = progressContainer.querySelector('.relative-progress'); + progressBar.value = progress; + l10n.get('print_progress_percent', { + progress: progress + }, progress + '%').then(function (msg) { + progressPerc.textContent = msg; + }); +} + +var hasAttachEvent = !!document.attachEvent; +window.addEventListener('keydown', function (event) { + if (event.keyCode === 80 && (event.ctrlKey || event.metaKey) && !event.altKey && (!event.shiftKey || window.chrome || window.opera)) { + window.print(); + + if (hasAttachEvent) { + return; + } + + event.preventDefault(); + + if (event.stopImmediatePropagation) { + event.stopImmediatePropagation(); + } else { + event.stopPropagation(); + } + + return; + } +}, true); + +if (hasAttachEvent) { + document.attachEvent('onkeydown', function (event) { + event = event || window.event; + + if (event.keyCode === 80 && event.ctrlKey) { + event.keyCode = 0; + return false; + } + }); +} + +if ('onbeforeprint' in window) { + var stopPropagationIfNeeded = function stopPropagationIfNeeded(event) { + if (event.detail !== 'custom' && event.stopImmediatePropagation) { + event.stopImmediatePropagation(); + } + }; + + window.addEventListener('beforeprint', stopPropagationIfNeeded); + window.addEventListener('afterprint', stopPropagationIfNeeded); +} + +var overlayPromise; + +function ensureOverlay() { + if (!overlayPromise) { + overlayManager = _app.PDFViewerApplication.overlayManager; + + if (!overlayManager) { + throw new Error('The overlay manager has not yet been initialized.'); + } + + overlayPromise = overlayManager.register('printServiceOverlay', document.getElementById('printServiceOverlay'), abort, true); + document.getElementById('printCancel').onclick = abort; + } + + return overlayPromise; +} + +_app.PDFPrintServiceFactory.instance = { + supportsPrinting: true, + createPrintService: function createPrintService(pdfDocument, pagesOverview, printContainer, l10n) { + if (activeService) { + throw new Error('The print service is created and active.'); + } + + activeService = new PDFPrintService(pdfDocument, pagesOverview, printContainer, l10n); + return activeService; + } +}; + +/***/ }) +/******/ ]); +//# sourceMappingURL=viewer.js.map \ No newline at end of file diff --git a/htdocs/vendor/pdfjs/web/viewer.js.map b/htdocs/vendor/pdfjs/web/viewer.js.map new file mode 100644 index 0000000..a3af188 --- /dev/null +++ b/htdocs/vendor/pdfjs/web/viewer.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///web/viewer.js","webpack:///web/app.js","webpack:///node_modules/@babel/runtime/regenerator/index.js","webpack:///node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js","webpack:///node_modules/webpack/buildin/module.js","webpack:///web/ui_utils.js","webpack:///web/app_options.js","webpack:///web/pdfjs.js","webpack:///web/viewer_compatibility.js","webpack:///web/pdf_cursor_tools.js","webpack:///web/grab_to_pan.js","webpack:///web/pdf_rendering_queue.js","webpack:///web/pdf_sidebar.js","webpack:///web/overlay_manager.js","webpack:///web/password_prompt.js","webpack:///web/pdf_attachment_viewer.js","webpack:///web/pdf_document_properties.js","webpack:///web/pdf_find_bar.js","webpack:///web/pdf_find_controller.js","webpack:///web/pdf_find_utils.js","webpack:///web/pdf_history.js","webpack:///web/pdf_link_service.js","webpack:///web/pdf_outline_viewer.js","webpack:///web/pdf_presentation_mode.js","webpack:///web/pdf_sidebar_resizer.js","webpack:///web/pdf_thumbnail_viewer.js","webpack:///web/pdf_thumbnail_view.js","webpack:///web/pdf_viewer.js","webpack:///web/base_viewer.js","webpack:///web/annotation_layer_builder.js","webpack:///web/pdf_page_view.js","webpack:///web/text_layer_builder.js","webpack:///web/secondary_toolbar.js","webpack:///web/pdf_single_page_viewer.js","webpack:///web/toolbar.js","webpack:///web/view_history.js","webpack:///web/genericcom.js","webpack:///web/preferences.js","webpack:///web/download_manager.js","webpack:///web/genericl10n.js","webpack:///external/webL10n/l10n.js","webpack:///web/pdf_print_service.js"],"names":["pdfjsWebApp","require","pdfjsWebAppOptions","appContainer","document","mainContainer","viewerContainer","eventBus","toolbar","container","numPages","pageNumber","scaleSelectContainer","scaleSelect","customScaleOption","previous","next","zoomIn","zoomOut","viewFind","openFile","print","presentationModeButton","download","viewBookmark","secondaryToolbar","toggleButton","toolbarButtonContainer","openFileButton","printButton","downloadButton","viewBookmarkButton","firstPageButton","lastPageButton","pageRotateCwButton","pageRotateCcwButton","cursorSelectToolButton","cursorHandToolButton","scrollVerticalButton","scrollHorizontalButton","scrollWrappedButton","spreadNoneButton","spreadOddButton","spreadEvenButton","documentPropertiesButton","fullscreen","contextFirstPage","contextLastPage","contextPageRotateCw","contextPageRotateCcw","sidebar","outerContainer","thumbnailButton","outlineButton","attachmentsButton","thumbnailView","outlineView","attachmentsView","sidebarResizer","resizer","findBar","bar","findField","highlightAllCheckbox","caseSensitiveCheckbox","entireWordCheckbox","findMsg","findResultsCount","findPreviousButton","findNextButton","passwordOverlay","overlayName","label","input","submitButton","cancelButton","documentProperties","closeButton","fields","errorWrapper","errorMessage","errorMoreInfo","moreInfoButton","lessInfoButton","printContainer","openFileInputName","debuggerScriptPath","config","getViewerConfiguration","window","event","webViewerLoad","DEFAULT_SCALE_DELTA","DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT","FORCE_PAGES_LOADED_TIMEOUT","WHEEL_ZOOM_DISABLED_TIMEOUT","ViewOnLoad","UNKNOWN","PREVIOUS","INITIAL","DefaultExternalServices","updateFindControlState","updateFindMatchesCount","initPassiveLoading","fallback","reportTelemetry","createDownloadManager","createPreferences","createL10n","supportsIntegratedFind","supportsDocumentFonts","supportsDocumentColors","supportedMouseWheelZoomModifierKeys","ctrlKey","metaKey","PDFViewerApplication","initialBookmark","initialized","fellback","appConfig","pdfDocument","pdfLoadingTask","printService","pdfViewer","pdfThumbnailViewer","pdfRenderingQueue","pdfPresentationMode","pdfDocumentProperties","pdfLinkService","pdfHistory","pdfSidebar","pdfSidebarResizer","pdfOutlineViewer","pdfAttachmentViewer","pdfCursorTools","store","downloadManager","overlayManager","preferences","l10n","isInitialViewSet","downloadComplete","isViewerEmbedded","url","baseUrl","externalServices","_boundEvents","contentDispositionFilename","AppOptions","LinkTarget","source","prefs","console","reason","waitOn","hash","hashParams","parseQueryString","loadFakeWorker","TextLayerMode","viewer","enabled","loadAndEnablePDFBug","locale","dir","getGlobalEventBus","externalLinkTarget","externalLinkRel","disableCreateObjectURL","findController","linkService","renderingQueue","renderer","enableWebGL","textLayerMode","imageResourcesPath","renderInteractiveForms","enablePrintAutoRotate","useOnlyCssZoom","maxCanvasPixels","cursorToolOnLoad","contextMenuItems","elements","run","newScale","Math","zoomReset","ignoreDuplicate","PDFPrintServiceFactory","doc","support","shadow","setTitleUsingUrl","title","getPDFFileNameFromURL","decodeURIComponent","getFilenameFromUrl","setTitle","promise","PDFBug","workerParameters","OptionKind","GlobalWorkerOptions","parameters","Object","file","apiParameters","prop","args","loadingTask","getDocument","loaded","exception","message","loadingErrorMessage","msg","filename","err","downloadByUrl","blob","type","error","moreInfoText","version","build","moreInfo","stack","line","errorWrapperConfig","Promise","parts","progress","percent","level","isNaN","disableAutoFetch","clearTimeout","load","firstPagePromise","pageLayoutPromise","pageModePromise","openActionDestPromise","baseDocumentUrl","pagesPromise","onePageRendered","pdfPage","storePromise","page","zoom","scrollLeft","scrollTop","rotation","sidebarView","SidebarView","scrollMode","ScrollMode","spreadMode","SpreadMode","values","viewOnLoad","fingerprint","initialDest","parseInt","pageMode","apiPageModeToSidebarView","pageLayout","apiPageLayoutToSpreadMode","resolve","setTimeout","labels","i","numLabels","javaScript","js","UNSUPPORTED_FEATURES","regex","ii","outline","attachments","info","metadata","pdfTitle","_initializePdfHistory","resetHistory","updateUrl","JSON","explicitDest","setInitialView","setRotation","angle","isValidRotation","setViewerModes","isValidScrollMode","isValidSpreadMode","cleanup","RendererType","forceRendering","beforePrint","printMessage","notReadyMessage","pagesOverview","afterPrint","rotatePages","newRotation","requestPresentationMode","bindEvents","bindWindowEvents","passive","unbindEvents","unbindWindowEvents","HOSTED_VIEWER_ORIGINS","validateFileURL","viewerOrigin","origin","protocol","ex","loadScript","PDFWorker","OPS","createObjectURL","queryString","params","fileInput","files","evt","webViewerOpenFileViaURL","xhr","pageIndex","pageView","Stats","mode","view","action","switchInProgress","PresentationModeState","active","location","href","currentPage","loading","RenderingStates","currentScaleValue","webViewerFileInputChange","URL","originalUrl","fileReader","buffer","query","phraseSearch","caseSensitive","entireWord","highlightAll","findPrevious","result","matchesCount","setZoomDisabledTimeout","zoomDisabledTimeout","previousScale","delta","normalizeWheelEventDelta","MOUSE_WHEEL_DELTA_PER_PAGE_SCALE","ticks","currentScale","scaleCorrectionFactor","rect","dx","dy","handled","ensureViewerFocused","cmd","isViewerInPresentationMode","findState","curElement","curElementTagName","turnPage","turnOnlyIfPageFit","CursorTool","instance","supportsPrinting","createPrintService","module","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","protoGenerator","outerFn","generator","context","tryLocsList","makeInvokeMethod","exports","arg","fn","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","prototype","ctor","genFun","__await","record","tryCatch","reject","value","invoke","previousPromise","callInvokeWithMethodAndArg","defineIteratorMethods","AsyncIterator","iter","wrap","state","method","doneResult","delegate","delegateResult","maybeInvokeDelegate","done","entry","tryLoc","locs","keys","key","iteratorMethod","iterable","Context","constructor","reset","name","stop","rootEntry","rootRecord","dispatchException","handle","hasCatch","hasFinally","abrupt","finallyEntry","complete","finish","resetTryEntry","thrown","delegateYield","iterator","resultName","nextLoc","regeneratorRuntime","Function","enumerable","get","CSS_UNITS","DEFAULT_SCALE_VALUE","DEFAULT_SCALE","MIN_SCALE","MAX_SCALE","UNKNOWN_SCALE","MAX_AUTO_SCALE","SCROLLBAR_PADDING","VERTICAL_PADDING","NORMAL","CHANGING","FULLSCREEN","CANVAS","SVG","DISABLE","ENABLE","ENABLE_ENHANCE","VERTICAL","HORIZONTAL","WRAPPED","NONE","ODD","EVEN","NullL10n","formatL10nValue","devicePixelRatio","backingStoreRatio","ctx","pixelRatio","sx","sy","scaled","skipOverflowHiddenElements","parent","element","offsetY","offsetX","getComputedStyle","spot","debounceScroll","rAF","currentX","viewAreaElement","lastX","currentY","lastY","callback","right","down","_eventHandler","param","minIndex","maxIndex","items","condition","currentIndex","currentItem","xinv","limit","x_","x","a","b","c","d","p","q","r","changeOrientation","rotate","width","height","index","elt","views","pageTop","sortByVisibility","horizontal","top","scrollEl","bottom","left","elementBottom","elementRight","visible","numViews","firstVisibleElementInd","binarySearchFirstItem","backtrackBeforeAllVisibleElements","lastEdge","currentWidth","currentHeight","viewWidth","viewHeight","viewRight","viewBottom","hiddenHeight","hiddenWidth","id","y","first","last","pc","defaultFilename","isDataSchema","reURI","reFilename","splitURI","suggestedFilename","MOUSE_DOM_DELTA_PIXEL_MODE","MOUSE_DOM_DELTA_LINE_MODE","MOUSE_PIXELS_PER_LINE","MOUSE_LINES_PER_PAGE","Number","size","WaitOnType","EVENT","TIMEOUT","delay","target","eventHandler","handler","timeoutHandler","timeout","animationStarted","dispatchToDOM","on","eventListeners","off","dispatch","Array","listener","_dispatchDOMEvent","details","obj","globalEventBus","units","progressSize","setWidth","scrollbarWidth","clamp","moved","len","arr","write","read","VIEWER","API","WORKER","PREFERENCE","defaultOptions","kind","defaultUrl","defaultZoomValue","disableHistory","disablePageLabels","eventBusDispatchToDOM","historyUpdateUrl","compatibility","viewerCompatibilityParams","pdfBugEnabled","sidebarViewOnLoad","scrollModeOnLoad","spreadModeOnLoad","cMapPacked","cMapUrl","apiCompatibilityParams","disableFontFace","disableRange","disableStream","isEvalSupported","maxImageSize","pdfBug","postMessageTransfers","verbosity","workerPort","workerSrc","navigator","userOptions","userOption","defaultOption","options","valueType","pdfjsLib","__non_webpack_require__","compatibilityParams","userAgent","isAndroid","isIOS","SELECT","HAND","ZOOM","switchTool","tool","disableActiveTool","previouslyActive","overlay","GrabToPan","CSS_CLASS_GRAB","activate","deactivate","toggle","ignoreTarget","node","_onmousedown","focusedElement","_onmousemove","isLeftMouseReleased","xDiff","yDiff","behavior","_endPan","prefix","matchesSelector","isNotIEorIsIE10plus","chrome","isChrome15OrOpera15plus","isSafari6plus","CLEANUP_TIMEOUT","RUNNING","PAUSED","FINISHED","setViewer","setThumbnailViewer","isHighestPriority","renderHighestPriority","getHighestPriority","visibleViews","numVisible","nextPageIndex","previousPageIndex","isViewFinished","renderView","UI_NOTIFICATION_CLASS","THUMBS","OUTLINE","ATTACHMENTS","LAYERS","disableNotification","switchView","forceOpen","_switchView","isViewChanged","shouldForceRendering","pagesCount","_showUINotification","_hideUINotification","removeNotification","outlineCount","callerCloseMethod","canForceClose","_keyDown","e","PasswordResponses","promptString","password","setUpdateCallback","keepRenderedCapability","_dispatchEvent","attachmentsCount","_bindPdfLink","button","blobUrl","viewerUrl","encodeURIComponent","_bindLink","render","names","item","removeNullCharacters","div","_appendAttachment","content","DEFAULT_FIELD_CONTENT","NON_METRIC_LOCALES","US_PAGE_NAMES","METRIC_PAGE_NAMES","isPortrait","pageNames","freezeFieldData","data","writable","configurable","currentPageNumber","pagesRotation","getPageSizeInches","fileSize","setDocument","setFileSize","_updateUI","kb","size_kb","size_b","size_mb","pageSizeInches","isPortraitOrientation","sizeInches","sizeMillimeters","pageName","getPageName","exactMillimeters","intMillimeters","unit","orientation","dateObject","PDFDateString","date","time","_parseLinearization","isLinearized","MATCHES_COUNT_LIMIT","dispatchEvent","updateUIState","notFound","status","FindState","updateResultsCount","current","total","matchesCountMsg","findbarHeight","inputContainerHeight","FOUND","NOT_FOUND","PENDING","FIND_TIMEOUT","MATCH_SCROLL_OFFSET_TOP","MATCH_SCROLL_OFFSET_LEFT","CHARACTERS_TO_NORMALIZE","normalizationRegex","replace","executeCommand","findbarClosed","pendingTimeout","matchIndex","scrollMatchIntoView","scrollIntoView","pageIdx","matchIdx","wrapped","_shouldDirtyMatch","_prepareMatches","currentElem","matchesWithLength","nextElem","prevElem","isSubTerm","matches","matchesLength","_isEntireWord","startIdx","getCharacterType","endIdx","_calculatePhraseMatch","queryLen","pageContent","_calculateWordMatch","queryArray","subquery","subqueryLen","match","matchLength","skipped","_calculateMatch","pageMatchesCount","extractTextCapability","normalizeWhitespace","textContent","textItems","strBuf","j","jj","normalize","_updatePage","currentPageIndex","offset","numPageMatches","_matchesReady","numMatches","_advanceOffsetPage","found","_updateMatch","previousPage","_onFindBarClose","_updateUIState","CharacterType","SPACE","ALPHA_LETTER","PUNCT","HAN_LETTER","KATAKANA_LETTER","HIRAGANA_LETTER","HALFWIDTH_KATAKANA_LETTER","THAI_LETTER","charCode","isAlphabeticalScript","isAscii","isAsciiSpace","isAsciiAlpha","isAsciiDigit","isThai","isHan","isKatakana","isHiragana","isHalfwidthKatakana","HASH_CHANGE_TIMEOUT","POSITION_UPDATED_THRESHOLD","UPDATE_VIEWAREA_TIMEOUT","unescape","getCurrentHash","initialize","reInitialized","parseCurrentHash","destination","namedDest","push","forceReplace","isDestArraysEqual","dest","_pushOrReplaceState","shouldReplace","newState","uid","newUrl","temporary","_tryPushCurrentPosition","position","_isValidState","checkReload","performance","perfEntry","_updateInternalState","removeTemporary","_updateViewarea","_popState","newHash","hashChanged","waitOnEventOrTimeout","destHash","nameddest","second","isEntryEqual","firstDest","secondDest","setHistory","navigateTo","goToDestination","destRef","destArray","getDestinationHash","escape","str","getAnchorUrl","setHash","zoomArgs","zoomArg","zoomArgNumber","parseFloat","allowNegativeOffset","isValidExplicitDestination","executeNamedAction","cachePageRef","refStr","pageRef","_cachedPageNumber","isPageVisible","destLength","allowNull","DEFAULT_TITLE","addLinkAttributes","newWindow","rel","_setStyles","styleStr","_addToggleButton","toggler","count","shouldShowAll","_toggleOutlineItem","show","root","fragment","queue","hasAnyNesting","levelData","itemsDiv","DELAY_BEFORE_RESETTING_SWITCH_IN_PROGRESS","DELAY_BEFORE_HIDING_CONTROLS","ACTIVE_SELECTOR","CONTROLS_SELECTOR","MOUSE_SCROLL_COOLDOWN_TIME","PAGE_SWITCH_THRESHOLD","SWIPE_MIN_DISTANCE_THRESHOLD","SWIPE_ANGLE_THRESHOLD","Element","_mouseWheel","currentTime","storedTime","totalDelta","success","_mouseDown","isInternalLink","_touchSwipe","startX","startY","endX","endY","absAngle","SIDEBAR_WIDTH_VAR","SIDEBAR_MIN_WIDTH","SIDEBAR_RESIZING_CLASS","CSS","_updateWidth","maxWidth","_mouseMove","_mouseUp","updated","THUMBNAIL_SCROLL_MARGIN","THUMBNAIL_SELECTED_CLASS","watchScroll","getThumbnail","getVisibleElements","scrollThumbnailIntoView","prevThumbnailView","visibleThumbs","numVisibleThumbs","shouldScroll","PDFThumbnailView","firstPage","viewport","scale","pageNum","thumbnail","defaultViewport","disableCanvasToImageConversion","setPageLabels","_ensurePdfPageLoaded","thumbView","MAX_NUM_SCALING_STEPS","THUMBNAIL_CANVAS_BORDER_WIDTH","THUMBNAIL_WIDTH","TempImageFactory","tempCanvasCache","getCanvas","tempCanvas","alpha","destroyCanvas","anchor","ring","borderAdjustment","setPdfPage","totalRotation","childNodes","update","noCtxScale","_getPageDrawContext","canvas","outputScale","getOutputScale","className","image","renderCapability","finishRenderTask","renderTask","drawViewport","renderContinueCallback","cont","renderContext","canvasContext","setImage","img","reducedWidth","reducedHeight","reducedImage","reducedImageCtx","setPageLabel","ariaLabel","pageSpot","_scrollIntoView","pageDiv","_updateHelper","currentId","stillFullyVisible","visiblePages","DEFAULT_CACHE_SIZE","pageIdsToKeep","iMax","pagesToKeep","moveToEndOfArray","getPageView","_setCurrentPageNumber","resetCurrentPageView","val","pageLabel","pagesCapability","onePageRenderedCapability","bindOnAfterAndBeforeDraw","textLayerFactory","annotationLayerFactory","getPagesLeft","_setScaleUpdatePages","noScroll","preset","newValue","isSameScale","presetValue","_setScale","noPadding","hPadding","vPadding","pageWidthScale","pageHeightScale","horizontalScale","scrollPageIntoView","pageWidth","pageHeight","widthScale","heightScale","boundingRect","_updateLocation","normalizedScaleValue","pdfOpenParams","currentPageView","topLeft","intLeft","intTop","numVisiblePages","newCacheSize","containsElement","currentlyVisiblePages","scrollAhead","createTextLayerBuilder","enhanceTextSelection","textLayerDiv","createAnnotationLayerBuilder","isFirstPagePortrait","_updateScrollMode","_updateSpreadMode","pages","parity","spread","firstPageView","intent","annotations","dontFlip","AnnotationLayer","MAX_CANVAS_PIXELS","removeFromDOM","_resetZoomLayer","zoomLayerCanvas","keepZoomLayer","keepAnnotations","currentZoomLayerNode","currentAnnotationNode","cssTransform","isScalingRestricted","cancelRendering","redrawAnnotations","relativeRotation","absRotation","scaleX","scaleY","textLayerViewport","textRelativeRotation","textAbsRotation","transX","transY","getPagePoint","canvasWrapper","textLayer","finishPaintTask","paintTask","resultPromise","readableStream","paintOnCanvas","onRenderContinue","cancel","isCanvasHidden","showCanvas","actualSizeViewport","pixelsInViewport","maxScale","sfx","approximateFraction","sfy","roundToDivide","transform","paintOnSvg","cancelled","ensureNotCancelled","opList","svgGfx","svg","wrapper","EXPAND_DIVS_TIMEOUT","endOfContent","numTextDivs","textLayerFrag","textContentStream","textDivs","textContentItemsStr","setTextContentStream","setTextContent","_convertMatches","iIndex","end","m","mm","begin","divIdx","_renderMatches","isSelectedPage","selectedMatchIdx","prevEnd","infinity","appendTextToDiv","span","i0","i1","isSelected","highlightSuffix","beginText","n0","n1","clearedUntilDivIdx","n","pageMatches","pageMatchesLength","expandDivsTimer","adjustTop","divBounds","eventName","close","eventDetails","lastPage","pageRotateCw","pageRotateCcw","setPageNumber","setPagesCount","_bindCursorToolsListener","buttons","_bindScrollModeListener","isScrollModeHorizontal","scrollModeChanged","_bindSpreadModeListener","spreadModeChanged","previousPageView","viewerNodes","scrolledDown","PAGE_NUMBER_LOADING_INDICATOR","SCALE_SELECT_CONTAINER_PADDING","SCALE_SELECT_PADDING","setPageScale","self","resetNumPages","pageScale","customScale","predefinedValueFound","option","updateLoadingIndicatorState","pageNumberInput","select","DEFAULT_VIEW_HISTORY_CACHE_SIZE","cacheSize","databaseStr","database","length","branch","localStorage","properties","GenericCom","GenericExternalServices","defaultPreferences","defaults","defaultValue","prefValue","defaultType","DISABLE_CREATE_OBJECT_URL","downloadUrl","createValidAbsoluteUrl","downloadData","webL10n","gL10nData","gTextData","gTextProp","gLanguage","gMacros","gReadyState","gAsyncResourceLoading","script","l10nId","l10nArgs","evtObject","onSuccess","onFailure","baseURL","text","dictionary","reBlank","reComment","reSection","reImport","reSplit","entries","rawText","currentLang","genericLang","lang","skipLang","parsedRawLinesCallback","loadImport","tmp","evalString","nextEntry","xhrLoadText","parseRawLines","parsedPropertiesCallback","parseProperties","successCallback","clear","langLinks","getL10nResourceLinks","langCount","dict","getL10nDictionary","defaultLocale","anyCaseLang","fireL10nReadyEvent","onResourceLoaded","gResourceCount","link","parseResource","resource","locales2rules","list","start","pluralRules","isBetween","getPluralRules","rv","substIndexes","substArguments","reIndex","reMatch","macroName","paramName","macro","reArgs","getL10nAttributes","getL10nData","getChildElementCount","children","l","textNode","getTranslatableChildren","elementCount","translateElement","getData","getText","getLanguage","setLanguage","loadLocale","getDirection","rtlList","shortCode","translate","getReadyState","ready","activeService","scratchCanvas","PRINT_RESOLUTION","PRINT_UNITS","PDFPrintService","layout","body","hasEqualPageSizes","pageSize","destroy","ensureOverlay","renderPages","pageCount","renderNextPage","renderProgress","renderPage","useRenderedPage","printItem","performPrint","throwIfInactive","activeServiceOnEntry","abort","progressContainer","progressBar","progressPerc","hasAttachEvent","stopPropagationIfNeeded","overlayPromise"],"mappings":"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","file":"viewer.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","/* Copyright 2016 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals chrome */\n\n'use strict';\n\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('CHROME')) {\n var defaultUrl; // eslint-disable-line no-var\n\n (function rewriteUrlClosure() {\n // Run this code outside DOMContentLoaded to make sure that the URL\n // is rewritten as soon as possible.\n let queryString = document.location.search.slice(1);\n let m = /(^|&)file=([^&]*)/.exec(queryString);\n defaultUrl = m ? decodeURIComponent(m[2]) : '';\n\n // Example: chrome-extension://.../http://example.com/file.pdf\n let humanReadableUrl = '/' + defaultUrl + location.hash;\n history.replaceState(history.state, '', humanReadableUrl);\n if (top === window) {\n chrome.runtime.sendMessage('showPageAction');\n }\n })();\n}\n\nlet pdfjsWebApp, pdfjsWebAppOptions;\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('PRODUCTION')) {\n pdfjsWebApp = require('./app.js');\n pdfjsWebAppOptions = require('./app_options.js');\n}\n\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('FIREFOX || MOZCENTRAL')) {\n require('./firefoxcom.js');\n require('./firefox_print_service.js');\n}\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('GENERIC')) {\n require('./genericcom.js');\n}\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('CHROME')) {\n require('./chromecom.js');\n}\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('CHROME || GENERIC')) {\n require('./pdf_print_service.js');\n}\n\nfunction getViewerConfiguration() {\n return {\n appContainer: document.body,\n mainContainer: document.getElementById('viewerContainer'),\n viewerContainer: document.getElementById('viewer'),\n eventBus: null, // Using global event bus with (optional) DOM events.\n toolbar: {\n container: document.getElementById('toolbarViewer'),\n numPages: document.getElementById('numPages'),\n pageNumber: document.getElementById('pageNumber'),\n scaleSelectContainer: document.getElementById('scaleSelectContainer'),\n scaleSelect: document.getElementById('scaleSelect'),\n customScaleOption: document.getElementById('customScaleOption'),\n previous: document.getElementById('previous'),\n next: document.getElementById('next'),\n zoomIn: document.getElementById('zoomIn'),\n zoomOut: document.getElementById('zoomOut'),\n viewFind: document.getElementById('viewFind'),\n openFile: document.getElementById('openFile'),\n print: document.getElementById('print'),\n presentationModeButton: document.getElementById('presentationMode'),\n download: document.getElementById('download'),\n viewBookmark: document.getElementById('viewBookmark'),\n },\n secondaryToolbar: {\n toolbar: document.getElementById('secondaryToolbar'),\n toggleButton: document.getElementById('secondaryToolbarToggle'),\n toolbarButtonContainer:\n document.getElementById('secondaryToolbarButtonContainer'),\n presentationModeButton:\n document.getElementById('secondaryPresentationMode'),\n openFileButton: document.getElementById('secondaryOpenFile'),\n printButton: document.getElementById('secondaryPrint'),\n downloadButton: document.getElementById('secondaryDownload'),\n viewBookmarkButton: document.getElementById('secondaryViewBookmark'),\n firstPageButton: document.getElementById('firstPage'),\n lastPageButton: document.getElementById('lastPage'),\n pageRotateCwButton: document.getElementById('pageRotateCw'),\n pageRotateCcwButton: document.getElementById('pageRotateCcw'),\n cursorSelectToolButton: document.getElementById('cursorSelectTool'),\n cursorHandToolButton: document.getElementById('cursorHandTool'),\n scrollVerticalButton: document.getElementById('scrollVertical'),\n scrollHorizontalButton: document.getElementById('scrollHorizontal'),\n scrollWrappedButton: document.getElementById('scrollWrapped'),\n spreadNoneButton: document.getElementById('spreadNone'),\n spreadOddButton: document.getElementById('spreadOdd'),\n spreadEvenButton: document.getElementById('spreadEven'),\n documentPropertiesButton: document.getElementById('documentProperties'),\n },\n fullscreen: {\n contextFirstPage: document.getElementById('contextFirstPage'),\n contextLastPage: document.getElementById('contextLastPage'),\n contextPageRotateCw: document.getElementById('contextPageRotateCw'),\n contextPageRotateCcw: document.getElementById('contextPageRotateCcw'),\n },\n sidebar: {\n // Divs (and sidebar button)\n outerContainer: document.getElementById('outerContainer'),\n viewerContainer: document.getElementById('viewerContainer'),\n toggleButton: document.getElementById('sidebarToggle'),\n // Buttons\n thumbnailButton: document.getElementById('viewThumbnail'),\n outlineButton: document.getElementById('viewOutline'),\n attachmentsButton: document.getElementById('viewAttachments'),\n // Views\n thumbnailView: document.getElementById('thumbnailView'),\n outlineView: document.getElementById('outlineView'),\n attachmentsView: document.getElementById('attachmentsView'),\n },\n sidebarResizer: {\n outerContainer: document.getElementById('outerContainer'),\n resizer: document.getElementById('sidebarResizer'),\n },\n findBar: {\n bar: document.getElementById('findbar'),\n toggleButton: document.getElementById('viewFind'),\n findField: document.getElementById('findInput'),\n highlightAllCheckbox: document.getElementById('findHighlightAll'),\n caseSensitiveCheckbox: document.getElementById('findMatchCase'),\n entireWordCheckbox: document.getElementById('findEntireWord'),\n findMsg: document.getElementById('findMsg'),\n findResultsCount: document.getElementById('findResultsCount'),\n findPreviousButton: document.getElementById('findPrevious'),\n findNextButton: document.getElementById('findNext'),\n },\n passwordOverlay: {\n overlayName: 'passwordOverlay',\n container: document.getElementById('passwordOverlay'),\n label: document.getElementById('passwordText'),\n input: document.getElementById('password'),\n submitButton: document.getElementById('passwordSubmit'),\n cancelButton: document.getElementById('passwordCancel'),\n },\n documentProperties: {\n overlayName: 'documentPropertiesOverlay',\n container: document.getElementById('documentPropertiesOverlay'),\n closeButton: document.getElementById('documentPropertiesClose'),\n fields: {\n 'fileName': document.getElementById('fileNameField'),\n 'fileSize': document.getElementById('fileSizeField'),\n 'title': document.getElementById('titleField'),\n 'author': document.getElementById('authorField'),\n 'subject': document.getElementById('subjectField'),\n 'keywords': document.getElementById('keywordsField'),\n 'creationDate': document.getElementById('creationDateField'),\n 'modificationDate': document.getElementById('modificationDateField'),\n 'creator': document.getElementById('creatorField'),\n 'producer': document.getElementById('producerField'),\n 'version': document.getElementById('versionField'),\n 'pageCount': document.getElementById('pageCountField'),\n 'pageSize': document.getElementById('pageSizeField'),\n 'linearized': document.getElementById('linearizedField'),\n },\n },\n errorWrapper: {\n container: document.getElementById('errorWrapper'),\n errorMessage: document.getElementById('errorMessage'),\n closeButton: document.getElementById('errorClose'),\n errorMoreInfo: document.getElementById('errorMoreInfo'),\n moreInfoButton: document.getElementById('errorShowMore'),\n lessInfoButton: document.getElementById('errorShowLess'),\n },\n printContainer: document.getElementById('printContainer'),\n openFileInputName: 'fileInput',\n debuggerScriptPath: './debugger.js',\n };\n}\n\nfunction webViewerLoad() {\n let config = getViewerConfiguration();\n if (typeof PDFJSDev === 'undefined' || !PDFJSDev.test('PRODUCTION')) {\n Promise.all([\n SystemJS.import('pdfjs-web/app'),\n SystemJS.import('pdfjs-web/app_options'),\n SystemJS.import('pdfjs-web/genericcom'),\n SystemJS.import('pdfjs-web/pdf_print_service'),\n ]).then(function([app, appOptions, ...otherModules]) {\n window.PDFViewerApplication = app.PDFViewerApplication;\n window.PDFViewerApplicationOptions = appOptions.AppOptions;\n app.PDFViewerApplication.run(config);\n });\n } else {\n if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('CHROME')) {\n pdfjsWebAppOptions.AppOptions.set('defaultUrl', defaultUrl);\n }\n\n window.PDFViewerApplication = pdfjsWebApp.PDFViewerApplication;\n window.PDFViewerApplicationOptions = pdfjsWebAppOptions.AppOptions;\n\n if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('GENERIC')) {\n // Give custom implementations of the default viewer a simpler way to\n // set various `AppOptions`, by dispatching an event once all viewer\n // files are loaded but *before* the viewer initialization has run.\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('webviewerloaded', true, true, {});\n document.dispatchEvent(event);\n }\n\n pdfjsWebApp.PDFViewerApplication.run(config);\n }\n}\n\nif (document.readyState === 'interactive' ||\n document.readyState === 'complete') {\n webViewerLoad();\n} else {\n document.addEventListener('DOMContentLoaded', webViewerLoad, true);\n}\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals PDFBug, Stats */\n\nimport {\n animationStarted, DEFAULT_SCALE_VALUE, getGlobalEventBus,\n getPDFFileNameFromURL, isValidRotation, isValidScrollMode, isValidSpreadMode,\n MAX_SCALE, MIN_SCALE, noContextMenuHandler, normalizeWheelEventDelta,\n parseQueryString, PresentationModeState, ProgressBar, RendererType,\n ScrollMode, SpreadMode, TextLayerMode\n} from './ui_utils';\nimport { AppOptions, OptionKind } from './app_options';\nimport {\n build, createObjectURL, getDocument, getFilenameFromUrl, GlobalWorkerOptions,\n InvalidPDFException, LinkTarget, loadScript, MissingPDFException, OPS,\n PDFWorker, shadow, UnexpectedResponseException, UNSUPPORTED_FEATURES, URL,\n version\n} from 'pdfjs-lib';\nimport { CursorTool, PDFCursorTools } from './pdf_cursor_tools';\nimport { PDFRenderingQueue, RenderingStates } from './pdf_rendering_queue';\nimport { PDFSidebar, SidebarView } from './pdf_sidebar';\nimport { OverlayManager } from './overlay_manager';\nimport { PasswordPrompt } from './password_prompt';\nimport { PDFAttachmentViewer } from './pdf_attachment_viewer';\nimport { PDFDocumentProperties } from './pdf_document_properties';\nimport { PDFFindBar } from './pdf_find_bar';\nimport { PDFFindController } from './pdf_find_controller';\nimport { PDFHistory } from './pdf_history';\nimport { PDFLinkService } from './pdf_link_service';\nimport { PDFOutlineViewer } from './pdf_outline_viewer';\nimport { PDFPresentationMode } from './pdf_presentation_mode';\nimport { PDFSidebarResizer } from './pdf_sidebar_resizer';\nimport { PDFThumbnailViewer } from './pdf_thumbnail_viewer';\nimport { PDFViewer } from './pdf_viewer';\nimport { SecondaryToolbar } from './secondary_toolbar';\nimport { Toolbar } from './toolbar';\nimport { ViewHistory } from './view_history';\n\nconst DEFAULT_SCALE_DELTA = 1.1;\nconst DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT = 5000; // ms\nconst FORCE_PAGES_LOADED_TIMEOUT = 10000; // ms\nconst WHEEL_ZOOM_DISABLED_TIMEOUT = 1000; // ms\n\nconst ViewOnLoad = {\n UNKNOWN: -1,\n PREVIOUS: 0, // Default value.\n INITIAL: 1,\n};\n\nconst DefaultExternalServices = {\n updateFindControlState(data) {},\n updateFindMatchesCount(data) {},\n initPassiveLoading(callbacks) {},\n fallback(data, callback) {},\n reportTelemetry(data) {},\n createDownloadManager(options) {\n throw new Error('Not implemented: createDownloadManager');\n },\n createPreferences() {\n throw new Error('Not implemented: createPreferences');\n },\n createL10n(options) {\n throw new Error('Not implemented: createL10n');\n },\n supportsIntegratedFind: false,\n supportsDocumentFonts: true,\n supportsDocumentColors: true,\n supportedMouseWheelZoomModifierKeys: {\n ctrlKey: true,\n metaKey: true,\n },\n};\n\nlet PDFViewerApplication = {\n initialBookmark: document.location.hash.substring(1),\n initialized: false,\n fellback: false,\n appConfig: null,\n pdfDocument: null,\n pdfLoadingTask: null,\n printService: null,\n /** @type {PDFViewer} */\n pdfViewer: null,\n /** @type {PDFThumbnailViewer} */\n pdfThumbnailViewer: null,\n /** @type {PDFRenderingQueue} */\n pdfRenderingQueue: null,\n /** @type {PDFPresentationMode} */\n pdfPresentationMode: null,\n /** @type {PDFDocumentProperties} */\n pdfDocumentProperties: null,\n /** @type {PDFLinkService} */\n pdfLinkService: null,\n /** @type {PDFHistory} */\n pdfHistory: null,\n /** @type {PDFSidebar} */\n pdfSidebar: null,\n /** @type {PDFSidebarResizer} */\n pdfSidebarResizer: null,\n /** @type {PDFOutlineViewer} */\n pdfOutlineViewer: null,\n /** @type {PDFAttachmentViewer} */\n pdfAttachmentViewer: null,\n /** @type {PDFCursorTools} */\n pdfCursorTools: null,\n /** @type {ViewHistory} */\n store: null,\n /** @type {DownloadManager} */\n downloadManager: null,\n /** @type {OverlayManager} */\n overlayManager: null,\n /** @type {Preferences} */\n preferences: null,\n /** @type {Toolbar} */\n toolbar: null,\n /** @type {SecondaryToolbar} */\n secondaryToolbar: null,\n /** @type {EventBus} */\n eventBus: null,\n /** @type {IL10n} */\n l10n: null,\n isInitialViewSet: false,\n downloadComplete: false,\n isViewerEmbedded: (window.parent !== window),\n url: '',\n baseUrl: '',\n externalServices: DefaultExternalServices,\n _boundEvents: {},\n contentDispositionFilename: null,\n\n // Called once when the document is loaded.\n async initialize(appConfig) {\n this.preferences = this.externalServices.createPreferences();\n this.appConfig = appConfig;\n\n await this._readPreferences();\n await this._parseHashParameters();\n await this._initializeL10n();\n\n if (this.isViewerEmbedded &&\n AppOptions.get('externalLinkTarget') === LinkTarget.NONE) {\n // Prevent external links from \"replacing\" the viewer,\n // when it's embedded in e.g. an ")?Zg(r):eh(t)},applyToEditor:function(e,t,n){"fragmented"===t.type?Xg(t.fragments,e.getBody()):e.setContent(t.content,{format:"raw"}),e.selection.moveToBookmark(n?t.beforeBookmark:t.bookmark)},isEq:function(e,t){return!(!e||!t)&&(r=t,th(e)===th(r)||(n=t,nh(e)===nh(n)));var n,r}};function oh(u){var s,r,o=this,c=0,l=[],t=0,f=function(){return 0===t},i=function(e){f()&&(o.typing=e)},d=function(e){u.setDirty(e)},a=function(e){i(!1),o.add({},e)},n=function(){o.typing&&(i(!1),o.add())};return u.on("init",function(){o.add()}),u.on("BeforeExecCommand",function(e){var t=e.command;"Undo"!==t&&"Redo"!==t&&"mceRepaint"!==t&&(n(),o.beforeChange())}),u.on("ExecCommand",function(e){var t=e.command;"Undo"!==t&&"Redo"!==t&&"mceRepaint"!==t&&a(e)}),u.on("ObjectResizeStart Cut",function(){o.beforeChange()}),u.on("SaveContent ObjectResized blur",a),u.on("DragEnd",a),u.on("KeyUp",function(e){var t=e.keyCode;e.isDefaultPrevented()||((33<=t&&t<=36||37<=t&&t<=40||45===t||e.ctrlKey)&&(a(),u.nodeChanged()),46!==t&&8!==t||u.nodeChanged(),r&&o.typing&&!1===rh.isEq(rh.createFromEditor(u),l[0])&&(!1===u.isDirty()&&(d(!0),u.fire("change",{level:l[0],lastLevel:null})),u.fire("TypingUndo"),r=!1,u.nodeChanged()))}),u.on("KeyDown",function(e){var t=e.keyCode;if(!e.isDefaultPrevented())if(33<=t&&t<=36||37<=t&&t<=40||45===t)o.typing&&a(e);else{var n=e.ctrlKey&&!e.altKey||e.metaKey;!(t<16||20i.custom_undo_redo_levels){for(n=0;n
    ").append(n.childNodes)}))},jh[ih="pre"]||(jh[ih]=[]),jh[ih].push(ah);var Kh=function(e,t){Wh(jh[e],function(e){e(t)})},Xh=Lt.each,Yh={walk:function(e,t,o){var n,r,i,a,u,s,c,l=t.startContainer,f=t.startOffset,d=t.endContainer,m=t.endOffset;if(0<(c=e.select("td[data-mce-selected],th[data-mce-selected]")).length)Xh(c,function(e){o([e])});else{var p,g,h,v=function(e){var t;return 3===(t=e[0]).nodeType&&t===l&&f>=t.nodeValue.length&&e.splice(0,1),t=e[e.length-1],0===m&&0h.length-1?g=h.length-1:g<0&&(g=0),d=h[g]||p),l===d)return o(v([l]));for(n=e.findCommonAncestor(l,d),a=l;a;a=a.parentNode){if(a===d)return C(l,n,!0);if(a===n)break}for(a=d;a;a=a.parentNode){if(a===l)return C(d,n);if(a===n)break}r=b(l,n)||l,i=b(d,n)||d,C(l,r,!0),(s=y(r===l?r:r.nextSibling,"nextSibling",i===d?i.nextSibling:i)).length&&o(v(s)),C(d,i)}}},Gh=/^(src|href|style)$/,Jh=Lt.each,Qh=lh.isEq,Zh=function(e){return/^(TH|TD)$/.test(e.nodeName)},ev=function(e,t,n){var r,o,i;return r=t[n?"startContainer":"endContainer"],o=t[n?"startOffset":"endOffset"],Ao.isElement(r)&&(i=r.childNodes.length-1,!n&&o&&o--,r=r.childNodes[i=r.nodeValue.length&&(r=new no(r,e.getBody()).next()||r),Ao.isText(r)&&!n&&0===o&&(r=new no(r,e.getBody()).prev()||r),r},tv=function(e,t,n,r){var o=e.create(n,r);return t.parentNode.insertBefore(o,t),o.appendChild(t),o},nv=function(e,t,n,r){return!(t=lh.getNonWhiteSpaceSibling(t,n,r))||"BR"===t.nodeName||e.isBlock(t)},rv=function(e,n,r,o,i){var t,a,u,s,c,l,f,d,m,p,g,h,v,y,b=e.dom;if(c=b,!(Qh(l=o,(f=n).inline)||Qh(l,f.block)||(f.selector?Ao.isElement(l)&&c.is(l,f.selector):void 0)||(s=o,n.links&&"A"===s.tagName)))return!1;if("all"!==n.remove)for(Jh(n.styles,function(e,t){e=lh.normalizeStyleValue(b,lh.replaceVars(e,r),t),"number"==typeof t&&(t=e,i=0),(n.remove_similar||!i||Qh(lh.getStyle(b,i,t),e))&&b.setStyle(o,t,""),u=1}),u&&""===b.getAttrib(o,"style")&&(o.removeAttribute("style"),o.removeAttribute("data-mce-style")),Jh(n.attributes,function(e,t){var n;if(e=lh.replaceVars(e,r),"number"==typeof t&&(t=e,i=0),!i||Qh(b.getAttrib(i,t),e)){if("class"===t&&(e=b.getAttrib(o,t))&&(n="",Jh(e.split(/\s+/),function(e){/mce\-\w+/.test(e)&&(n+=(n?" ":"")+e)}),n))return void b.setAttrib(o,t,n);"class"===t&&o.removeAttribute("className"),Gh.test(t)&&o.removeAttribute("data-mce-"+t),o.removeAttribute(t)}}),Jh(n.classes,function(e){e=lh.replaceVars(e,r),i&&!b.hasClass(i,e)||b.removeClass(o,e)}),a=b.getAttribs(o),t=0;t)\s*/g,"$1"),Lt.map(e.split(/(?:>|\s+(?![^\[\]]+\]))/),function(e){var t=Lt.map(e.split(/(?:~\+|~|\+)/),Rv),n=t.pop();return t.length&&(n.siblings=t),n}).reverse()):[]},_v={getCssText:function(n,e){var t,r,o,i,a,u,s="";if(!1===(u=n.settings.preview_styles))return"";"string"!=typeof u&&(u="font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow");var c=function(e){return e.replace(/%(\w+)/g,"")};if("string"==typeof e){if(!(e=n.formatter.get(e)))return;e=e[0]}return"preview"in e&&!1===(u=e.preview)?"":(t=e.block||e.inline||"span",(i=Bv(e.selector)).length?(i[0].name||(i[0].name=t),t=e.selector,r=Av(i,n)):r=Av([t],n),o=Tv.select(t,r)[0]||r.firstChild,kv(e.styles,function(e,t){(e=c(e))&&Tv.setStyle(o,t,e)}),kv(e.attributes,function(e,t){(e=c(e))&&Tv.setAttrib(o,t,e)}),kv(e.classes,function(e){e=c(e),Tv.hasClass(o,e)||Tv.addClass(o,e)}),n.fire("PreviewFormats"),Tv.setStyles(r,{position:"absolute",left:-65535}),n.getBody().appendChild(r),a=Tv.getStyle(n.getBody(),"fontSize",!0),a=/px$/.test(a)?parseInt(a,10):0,kv(u.split(" "),function(e){var t=Tv.getStyle(o,e,!0);if(!("background-color"===e&&/transparent|rgba\s*\([^)]+,\s*0\)/.test(t)&&(t=Tv.getStyle(n.getBody(),e,!0),"#ffffff"===Tv.toHex(t).toLowerCase())||"color"===e&&"#000000"===Tv.toHex(t).toLowerCase())){if("font-size"===e&&/em|%$/.test(t)){if(0===a)return;t=parseFloat(t)/(/%$/.test(t)?100:1)*a+"px"}"border"===e&&t&&(s+="padding:0 2px;"),s+=e+":"+t+";"}}),n.fire("AfterPreviewFormats"),Tv.remove(r),s)},parseSelector:Bv,selectorToHtml:function(e,t){return Av(Bv(e),t)}},Dv={toggle:function(e,t,n,r,o){var i=t.get(n);!Rh.match(e,n,r,o)||"toggle"in i[0]&&!i[0].toggle?wv.applyFormat(e,n,r,o):ov.remove(e,n,r,o)}},Ov={setup:function(e){e.addShortcut("meta+b","","Bold"),e.addShortcut("meta+i","","Italic"),e.addShortcut("meta+u","","Underline");for(var t=1;t<=6;t++)e.addShortcut("access+"+t,"",["FormatBlock",!1,"h"+t]);e.addShortcut("access+7","",["FormatBlock",!1,"p"]),e.addShortcut("access+8","",["FormatBlock",!1,"div"]),e.addShortcut("access+9","",["FormatBlock",!1,"address"])}};function Pv(e){var t,n,r,o=(t=e,n={},(r=function(e,t){e&&("string"!=typeof e?Lt.each(e,function(e,t){r(t,e)}):(t=t.length?t:[t],Lt.each(t,function(e){"undefined"==typeof e.deep&&(e.deep=!e.selector),"undefined"==typeof e.split&&(e.split=!e.selector||e.inline),"undefined"==typeof e.remove&&e.selector&&!e.inline&&(e.remove="none"),e.selector&&e.inline&&(e.mixed=!0,e.block_expand=!0),"string"==typeof e.classes&&(e.classes=e.classes.split(/\s+/))}),n[e]=t))})(Sv.get(t.dom)),r(t.settings.formats),{get:function(e){return e?n[e]:n},register:r,unregister:function(e){return e&&n[e]&&delete n[e],n}}),i=Ju(null);return Ov.setup(e),Vh(e),{get:o.get,register:o.register,unregister:o.unregister,apply:V.curry(wv.applyFormat,e),remove:V.curry(ov.remove,e),toggle:V.curry(Dv.toggle,e,o),match:V.curry(Rh.match,e),matchAll:V.curry(Rh.matchAll,e),matchNode:V.curry(Rh.matchNode,e),canApply:V.curry(Rh.canApply,e),formatChanged:V.curry(Ev.formatChanged,e,i),getCssText:V.curry(_v.getCssText,e)}}var Lv=function(a){return function(){for(var e=new Array(arguments.length),t=0;t)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*(()?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")};i--;)r=(n=e[i]).firstChild?n.firstChild.value:"","script"===t?((o=n.attr("type"))&&n.attr("type","mce-no/type"===o?null:o.replace(/^mce\-/,"")),"xhtml"===s.element_format&&0")):"xhtml"===s.element_format&&0T(n)?(C=A(b*y),b=A(C/y)):(b=A(C/y),C=A(b*y))),N.setStyles(_(s),{width:b,height:C}),r=0<(r=f.startPos.x+t)?r:0,o=0<(o=f.startPos.y+n)?o:0,N.setStyles(c,{left:r,top:o,display:"block"}),c.innerHTML=b+" × "+C,f[2]<0&&s.clientWidth<=b&&N.setStyle(s,"left",p+(h-b)),f[3]<0&&s.clientHeight<=C&&N.setStyle(s,"top",g+(v-C)),(t=R.scrollWidth-x)+(n=R.scrollHeight-w)!=0&&N.setStyles(c,{left:r-t,top:o-n}),i||(a.fire("ObjectResizeStart",{target:u,width:h,height:v}),i=!0)},P=function(){i=!1;var e=function(e,t){t&&(u.style[e]||!a.schema.isValid(u.nodeName.toLowerCase(),e)?N.setStyle(_(u),e,t):N.setAttrib(_(u),e,t))};e("width",b),e("height",C),N.unbind(S,"mousemove",O),N.unbind(S,"mouseup",P),k!==S&&(N.unbind(k,"mousemove",O),N.unbind(k,"mouseup",P)),N.remove(s),N.remove(c),o(u),a.fire("ObjectResized",{target:u,width:b,height:C}),N.setAttrib(u,"style",N.getAttrib(u,"style")),a.nodeChanged()},o=function(e){var t,r,o,n,i;L(),F(),t=N.getPos(e,R),p=t.x,g=t.y,i=e.getBoundingClientRect(),r=i.width||i.right-i.left,o=i.height||i.bottom-i.top,u!==e&&(u=e,b=C=0),n=a.fire("ObjectSelected",{target:e}),D(e)&&!n.isDefaultPrevented()?E(l,function(n,e){var t;(t=N.get("mceResizeHandle"+e))&&N.remove(t),t=N.add(R,"div",{id:"mceResizeHandle"+e,"data-mce-bogus":"all","class":"mce-resizehandle",unselectable:!0,style:"cursor:"+e+"-resize; margin:0; padding:0"}),ge.ie&&(t.contentEditable=!1),N.bind(t,"mousedown",function(e){var t;e.stopImmediatePropagation(),e.preventDefault(),d=(t=e).screenX,m=t.screenY,h=_(u).clientWidth,v=_(u).clientHeight,y=v/h,(f=n).startPos={x:r*n[0]+p,y:o*n[1]+g},x=R.scrollWidth,w=R.scrollHeight,s=u.cloneNode(!0),N.addClass(s,"mce-clonedresizable"),N.setAttrib(s,"data-mce-bogus","all"),s.contentEditable=!1,s.unSelectabe=!0,N.setStyles(s,{left:p,top:g,margin:0}),s.removeAttribute("data-mce-selected"),R.appendChild(s),N.bind(S,"mousemove",O),N.bind(S,"mouseup",P),k!==S&&(N.bind(k,"mousemove",O),N.bind(k,"mouseup",P)),c=N.add(R,"div",{"class":"mce-resize-helper","data-mce-bogus":"all"},h+" × "+v)}),n.elm=t,N.setStyles(t,{left:r*n[0]+p-t.offsetWidth/2,top:o*n[1]+g-t.offsetHeight/2})}):L(),u.setAttribute("data-mce-selected","1")},L=function(){var e,t;for(e in F(),u&&u.removeAttribute("data-mce-selected"),l)(t=N.get("mceResizeHandle"+e))&&(N.unbind(t),N.remove(t))},I=function(e){var t,n=function(e,t){if(e)do{if(e===t)return!0}while(e=e.parentNode)};i||a.removed||(E(N.select("img[data-mce-selected],hr[data-mce-selected]"),function(e){e.removeAttribute("data-mce-selected")}),t="mousedown"===e.type?e.target:r.getNode(),n(t=N.$(t).closest("table,img,figure.image,hr")[0],R)&&(z(),n(r.getStart(!0),t)&&n(r.getEnd(!0),t))?o(t):L())},M=function(e){return gy(function(e,t){for(;t&&t!==e;){if(hy(t)||gy(t))return t;t=t.parentNode}return null}(a.getBody(),e))},F=function(){for(var e in l){var t=l[e];t.elm&&(N.unbind(t.elm),delete t.elm)}},z=function(){try{a.getDoc().execCommand("enableObjectResizing",!1,!1)}catch(e){}};return a.on("init",function(){z(),ge.ie&&11<=ge.ie&&(a.on("mousedown click",function(e){var t=e.target,n=t.nodeName;i||!/^(TABLE|IMG|HR)$/.test(n)||M(t)||(2!==e.button&&a.selection.select(t,"TABLE"===n),"mousedown"===e.type&&a.nodeChanged())}),a.dom.bind(R,"mscontrolselect",function(e){var t=function(e){Ce.setEditorTimeout(a,function(){a.selection.select(e)})};if(M(e.target))return e.preventDefault(),void t(e.target);/^(TABLE|IMG|HR)$/.test(e.target.nodeName)&&(e.preventDefault(),"IMG"===e.target.tagName&&t(e.target))}));var t=Ce.throttle(function(e){a.composing||I(e)});a.on("nodechange ResizeEditor ResizeWindow drop FullscreenStateChanged",t),a.on("keyup compositionend",function(e){u&&"TABLE"===u.nodeName&&t(e)}),a.on("hide blur",L),a.on("contextmenu",n)}),a.on("remove",F),{isResizable:D,showResizeRect:o,hideResizeRect:L,updateResizeRect:I,destroy:function(){u=s=null}}},yy=function(e){return Ao.isContentEditableTrue(e)||Ao.isContentEditableFalse(e)},by={fromPoint:function(e,t,n){var r,o,i,a,u,s=n;if(s.caretPositionFromPoint)(o=s.caretPositionFromPoint(e,t))&&((r=n.createRange()).setStart(o.offsetNode,o.offset),r.collapse(!0));else if(n.caretRangeFromPoint)r=n.caretRangeFromPoint(e,t);else if(s.body.createTextRange){r=s.body.createTextRange();try{r.moveToPoint(e,t),r.collapse(!0)}catch(c){r=function(e,n,t){var r,o,i;if(r=t.elementFromPoint(e,n),o=t.body.createTextRange(),r&&"HTML"!==r.tagName||(r=t.body),o.moveToElementText(r),0<(i=(i=Lt.toArray(o.getClientRects())).sort(function(e,t){return(e=Math.abs(Math.max(e.top-n,e.bottom-n)))-(t=Math.abs(Math.max(t.top-n,t.bottom-n)))})).length){n=(i[0].bottom+i[0].top)/2;try{return o.moveToPoint(e,n),o.collapse(!0),o}catch(a){}}return null}(e,t,n)}return i=r,a=n.body,u=i&&i.parentElement?i.parentElement():null,Ao.isContentEditableFalse(function(e,t,n){for(;e&&e!==t;){if(n(e))return e;e=e.parentNode}return null}(u,a,yy))?null:i}return r}},Cy=function(n,e){return H.map(e,function(e){var t=n.fire("GetSelectionRange",{range:e});return t.range!==e?t.range:e})},xy=function(e,t){return qn.fromDom(e.dom().cloneNode(t))},wy=function(e){return xy(e,!0)},Ny=function(e){return xy(e,!1)},Ey=wy,Sy=function(e,t){var n=(t||document).createDocumentFragment();return H.each(e,function(e){n.appendChild(e.dom())}),qn.fromDom(n)},ky=function(t){return qr.firstChild(t).fold(V.constant([t]),function(e){return[t].concat(ky(e))})},Ty=function(t){return qr.lastChild(t).fold(V.constant([t]),function(e){return"br"===Qn.name(e)?qr.prevSibling(e).map(function(e){return[t].concat(Ty(e))}).getOr([]):[t].concat(Ty(e))})},Ay=function(o,e){return sa([(i=e,a=i.startContainer,u=i.startOffset,Ao.isText(a)?0===u?A.some(qn.fromDom(a)):A.none():A.from(a.childNodes[u]).map(qn.fromDom)),(t=e,n=t.endContainer,r=t.endOffset,Ao.isText(n)?r===n.data.length?A.some(qn.fromDom(n)):A.none():A.from(n.childNodes[r-1]).map(qn.fromDom))],function(e,t){var n=H.find(ky(o),V.curry(Or.eq,e)),r=H.find(Ty(o),V.curry(Or.eq,t));return n.isSome()&&r.isSome()}).getOr(!1);var t,n,r,i,a,u},Ry=function(e,t,n,r){var o=n,i=new no(n,o),a=e.schema.getNonEmptyElements();do{if(3===n.nodeType&&0!==Lt.trim(n.nodeValue).length)return void(r?t.setStart(n,0):t.setEnd(n,n.nodeValue.length));if(a[n.nodeName]&&!/^(TD|TH)$/.test(n.nodeName))return void(r?t.setStartBefore(n):"BR"===n.nodeName?t.setEndBefore(n):t.setEndAfter(n));if(ge.ie&&ge.ie<11&&e.isBlock(n)&&e.isEmpty(n))return void(r?t.setStart(n,0):t.setEnd(n,0))}while(n=r?i.next():i.prev());"BODY"===o.nodeName&&(r?t.setStart(o,0):t.setEnd(o,o.childNodes.length))},By=wr.immutable("element","width","rows"),_y=wr.immutable("element","cells"),Dy=wr.immutable("x","y"),Oy=function(e,t){var n=parseInt(cr.get(e,t),10);return isNaN(n)?1:n},Py=function(e){return H.foldl(e,function(e,t){return t.cells().length>e?t.cells().length:e},0)},Ly=function(e,t){for(var n=e.rows(),r=0;r"+(r.item?r.item(0).outerHTML:r.htmlText),o.removeChild(o.firstChild)):o.innerHTML=r.toString(),t.getInner=!0;var u=e.selection.serializer.serialize(o,t);return"tree"===t.format?u:(t.content=e.selection.isCollapsed()?"":u,e.fire("GetContent",t),t.content)},Ky=function(e,t,n){var r,o,i,a=e.selection.getRng(),u=e.getDoc();if((n=n||{format:"html"}).set=!0,n.selection=!0,n.content=t,n.no_events||!(n=e.fire("BeforeSetContent",n)).isDefaultPrevented()){if(t=n.content,a.insertNode){t+='_',a.startContainer===u&&a.endContainer===u?u.body.innerHTML=t:(a.deleteContents(),0===u.body.childNodes.length?u.body.innerHTML=t:a.createContextualFragment?a.insertNode(a.createContextualFragment(t)):(o=u.createDocumentFragment(),i=u.createElement("div"),o.appendChild(i),i.outerHTML=t,a.insertNode(o))),r=e.dom.get("__caret"),(a=u.createRange()).setStartBefore(r),a.setEndBefore(r),e.selection.setRng(a),e.dom.remove("__caret");try{e.selection.setRng(a)}catch(s){}}else a.item&&(u.execCommand("Delete",!1,null),a=e.getRng()),/^\s+/.test(t)?(a.pasteHTML('_'+t),e.dom.remove("__mce_tmp")):a.pasteHTML(t);n.no_events||e.fire("SetContent",n)}else e.fire("SetContent",n)},Xy=function(e,t,n,r,o){var i=n?t.startContainer:t.endContainer,a=n?t.startOffset:t.endOffset;return A.from(i).map(qn.fromDom).map(function(e){return r&&t.collapsed?e:qr.child(e,o(e,a)).getOr(e)}).bind(function(e){return Qn.isElement(e)?A.some(e):qr.parent(e)}).map(function(e){return e.dom()}).getOr(e)},Yy=function(e,t,n){return Xy(e,t,!0,n,function(e,t){return Math.min(qr.childNodesCount(e),t)})},Gy=function(e,t,n){return Xy(e,t,!1,n,function(e,t){return 0t.clientHeight){e=t;break}t=t.parentNode}return e},scrollIntoView:function(e,t){return yu(c,e,t)},placeCaretAt:function(e,t){return i(by.fromPoint(e,t,c.getDoc()))},getBoundingClientRect:function(){var e=m();return e.collapsed?Ba.fromRangeStart(e).getClientRects()[0]:e.getBoundingClientRect()},destroy:function(){s=l=f=null,t.destroy()}};return n=py(g),t=vy(g,c),g.bookmarkManager=n,g.controlSelection=t,g},nb=Ao.isContentEditableFalse,rb=ta,ob=ks,ib=Ss,ab=function(e,t){for(;t=e(t);)if(t.isVisible())return t;return t},ub=function(e,t,n,r){var o,i,a,u,s,c,l=e===eu.Forwards,f=l?ib:ob;return!r.collapsed&&(o=rb(r),nb(o))?Ga(e,t,o,e===eu.Backwards,!0):(u=Ai(r.startContainer),f(i=Es(e,t.getBody(),r))?Ja(t,i.getNode(!l)):(i=n(i))?f(i)?Ga(e,t,i.getNode(!l),l,!0):f(a=n(i))&&(!(c=ps(s=i,a))&&Ao.isBr(s.getNode())||c)?Ga(e,t,a.getNode(!l),l,!0):u?Za(t,i.toRange(),!0):null:u?r:null)},sb=function(e,t,n,r){var o,i,a,u,s,c,l,f,d;if(d=rb(r),o=Es(e,t.getBody(),r),i=n(t.getBody(),mg(1),o),a=Bt.filter(i,pg(1)),s=Bt.last(o.getClientRects()),(ib(o)||Ts(o))&&(d=o.getNode()),(ob(o)||As(o))&&(d=o.getNode(!0)),!s)return null;if(c=s.left,(u=Cg(a,c))&&nb(u.node))return l=Math.abs(c-u.left),f=Math.abs(c-u.right),Ga(e,t,u.node,l'),o=a,1===t?e.$(r).after(o):e.$(r).before(o),e.selection.select(o,!0),e.selection.collapse())}},lb=function(l,f){return function(){var e,t,n,r,o,i,a,u,s,c=(t=f,r=js((e=l).getBody()),o=ua.curry(ab,r.next),i=ua.curry(ab,r.prev),a=t?eu.Forwards:eu.Backwards,u=t?o:i,s=e.selection.getRng(),(n=ub(a,e,u,s))?n:(n=cb(e,a,s))||null);return!!c&&(l.selection.setRng(c),!0)}},fb=function(u,s){return function(){var e,t,n,r,o,i,a=(r=(t=s)?1:-1,o=t?dg:fg,i=(e=u).selection.getRng(),(n=sb(r,e,o,i))?n:(n=cb(e,r,i))||null);return!!a&&(u.selection.setRng(a),!0)}},db=function(e,r){return H.bind((t=e,H.map(t,function(e){return Fv.merge({shiftKey:!1,altKey:!1,ctrlKey:!1,metaKey:!1,keyCode:0,action:V.noop},e)})),function(e){return t=e,(n=r).keyCode===t.keyCode&&n.shiftKey===t.shiftKey&&n.altKey===t.altKey&&n.ctrlKey===t.ctrlKey&&n.metaKey===t.metaKey?[e]:[];var t,n});var t},mb=function(e){for(var t=[],n=1;n'},Ob=function(e,t){return e.nodeName===t||e.previousSibling&&e.previousSibling.nodeName===t},Pb=function(e,t){return t&&e.isBlock(t)&&!/^(TD|TH|CAPTION|FORM)$/.test(t.nodeName)&&!/^(fixed|absolute)/i.test(t.style.position)&&"true"!==e.getContentEditable(t)},Lb=function(e,t,n){return!1===Ao.isText(t)?n:e?1===n&&t.data.charAt(n-1)===Ei?0:n:n===t.data.length-1&&t.data.charAt(n)===Ei?t.data.length:n},Ib=function(e,t){var n,r,o=e.getRoot();for(n=t;n!==o&&"false"!==e.getContentEditable(n);)"true"===e.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==o?r:o},Mb=function(e,t){var n=Au(e);n&&n.toLowerCase()===t.tagName.toLowerCase()&&e.dom.setAttribs(t,Ru(e))},Fb=function(a,e){var t,u,s,i,c,n,r,o,l,f,d,m,p,g,h,v,y,b,C=a.dom,x=a.schema,w=x.getNonEmptyElements(),N=a.selection.getRng(),E=function(e){var t,n,r,o=s,i=x.getTextInlineElements();if(e||"TABLE"===f||"HR"===f?(t=C.create(e||m),Mb(a,t)):t=c.cloneNode(!1),r=t,!1===Du(a))C.setAttrib(t,"style",null),C.setAttrib(t,"class",null);else do{if(i[o.nodeName]){if(xc(o))continue;n=o.cloneNode(!1),C.setAttrib(n,"id",""),t.hasChildNodes()?n.appendChild(t.firstChild):r=n,t.appendChild(n)}}while((o=o.parentNode)&&o!==u);return Db(r),t},S=function(e){var t,n,r,o;if(o=Lb(e,s,i),Ao.isText(s)&&(e?0s.childNodes.length-1,s=s.childNodes[Math.min(i,s.childNodes.length-1)]||s,i=p&&Ao.isText(s)?s.nodeValue.length:0),(u=Ib(C,s))&&((m&&!n||!m&&n)&&(s=function(e,t,n,r,o){var i,a,u,s,c,l,f,d=t||"P",m=e.dom,p=Ib(m,r);if(!(a=m.getParent(r,m.isBlock))||!Pb(m,a)){if(l=(a=a||p)===e.getBody()||(f=a)&&/^(TD|TH|CAPTION)$/.test(f.nodeName)?a.nodeName.toLowerCase():a.parentNode.nodeName.toLowerCase(),!a.hasChildNodes())return i=m.create(d),Mb(e,i),a.appendChild(i),n.setStart(i,0),n.setEnd(i,0),i;for(s=r;s.parentNode!==a;)s=s.parentNode;for(;s&&!m.isBlock(s);)s=(u=s).previousSibling;if(u&&e.schema.isValidChild(l,d.toLowerCase())){for(i=m.create(d),Mb(e,i),u.parentNode.insertBefore(i,u),s=u;s&&!m.isBlock(s);)c=s.nextSibling,i.appendChild(s),s=c;n.setStart(r,o),n.setEnd(r,o)}}return r}(a,m,N,s,i)),c=C.getParent(s,C.isBlock),l=c?C.getParent(c.parentNode,C.isBlock):null,f=c?c.nodeName.toUpperCase():"","LI"!==(d=l?l.nodeName.toUpperCase():"")||e.ctrlKey||(l=(c=l).parentNode,f=d),/^(LI|DT|DD)$/.test(f)&&C.isEmpty(c)?_b(a,E,l,c,m):m&&c===a.getBody()||(m=m||"P",Ai(c)?(r=Mi(c),C.isEmpty(c)&&Db(c),wb(a,r)):S()?k():S(!0)?(r=c.parentNode.insertBefore(E(),c),wb(a,Ob(c,"HR")?r:c)):((t=(y=N,b=y.cloneRange(),b.setStart(y.startContainer,Lb(!0,y.startContainer,y.startOffset)),b.setEnd(y.endContainer,Lb(!1,y.endContainer,y.endOffset)),b).cloneRange()).setEndAfter(c),function(e){for(;Ao.isText(e)&&(e.nodeValue=e.nodeValue.replace(/^[\r\n]+/,"")),e=e.firstChild;);}(o=t.extractContents()),r=o.firstChild,C.insertAfter(o,c),function(e,t,n){var r,o=n,i=[];if(o){for(;o=o.firstChild;){if(e.isBlock(o))return;Ao.isElement(o)&&!t[o.nodeName.toLowerCase()]&&i.push(o)}for(r=i.length;r--;)!(o=i[r]).hasChildNodes()||o.firstChild===o.lastChild&&""===o.firstChild.nodeValue?e.remove(o):(a=o)&&"A"===a.nodeName&&0===Lt.trim(Si(a.innerText||a.textContent)).length&&e.remove(o);var a}}(C,w,r),g=C,(h=c).normalize(),(v=h.lastChild)&&!/^(left|right)$/gi.test(g.getStyle(v,"float",!0))||g.add(h,"br"),C.isEmpty(c)&&Db(c),r.normalize(),C.isEmpty(r)?(C.remove(r),k()):wb(a,r)),C.setAttrib(r,"id",""),a.fire("NewBlock",{newBlock:r})))},zb=function(e,t){return Eb(e).filter(function(e){return 0",Nu(f)!==f.documentBaseUrl&&(p+=''),p+='',d=Eu(f),m=Su(f),ku(f)&&(p+=''),p+='
    '),gC.add(t.iframeContainer,l),g},vC=function(e,t){var n=hC(e,t);t.editorContainer&&(gC.get(t.editorContainer).style.display=e.orgDisplay,e.hidden=gC.isHidden(t.editorContainer)),e.getElement().style.display="none",gC.setAttrib(e.id,"aria-hidden","true"),n||pC(e)},yC=di.DOM,bC=function(t,n,e){var r,o,i=Tp.get(e);if(r=Tp.urls[e]||t.documentBaseUrl.replace(/\/$/,""),e=Lt.trim(e),i&&-1===Lt.inArray(n,e)){if(Lt.each(Tp.dependencies(e),function(e){bC(t,n,e)}),t.plugins[e])return;o=new i(t,r,t.$),(t.plugins[e]=o).init&&(o.init(t,r),n.push(e))}},CC=function(e){return e.replace(/^\-/,"")},xC=function(e){return{editorContainer:e,iframeContainer:e}},wC=function(e){var t,n,r=e.getElement();return e.inline?xC(null):(t=r,n=yC.create("div"),yC.insertAfter(n,t),xC(n))},NC=function(e){var t,n,r,o,i,a,u,s,c,l,f,d=e.settings,m=e.getElement();return e.orgDisplay=m.style.display,E.isString(d.theme)?(l=(o=e).settings,f=o.getElement(),i=l.width||yC.getStyle(f,"width")||"100%",a=l.height||yC.getStyle(f,"height")||f.offsetHeight,u=l.min_height||100,(s=/^[0-9\.]+(|px)$/i).test(""+i)&&(i=Math.max(parseInt(i,10),100)),s.test(""+a)&&(a=Math.max(parseInt(a,10),u)),c=o.theme.renderUI({targetNode:f,width:i,height:a,deltaWidth:l.delta_width,deltaHeight:l.delta_height}),l.content_editable||(a=(c.iframeHeight||a)+("number"==typeof a?c.deltaHeight||0:""))=n.length)for(r=0,o=e.length;r=n.length||e[r]!==n[r]){i=r+1;break}if(e.length=e.length||e[r]!==n[r]){i=r+1;break}if(1===i)return t;for(r=0,o=e.length-(i-1);r]*>( | |\\s|\xa0|
    |)<\\/"+a+">[\r\n]*|
    [\r\n]*)$"),r=i.replace(u,"")}return"text"!==t.format?t.content=Lt.trim(r):t.content=r,t.no_events||e.fire("GetContent",t),t.content},zC=function(u,s,c){return void 0===c&&(c={}),c.format=c.format?c.format:"html",c.set=!0,c.content=MC(s)?"":s,MC(s)||c.no_events||(u.fire("BeforeSetContent",c),s=c.content),A.from(u.getBody()).fold(V.constant(s),function(e){return MC(s)?function(e,t,n,r){IC(e.parser.getNodeFilters(),e.parser.getAttributeFilters(),n);var o=jc({validate:e.validate},e.schema).serialize(n);return r.content=Lt.trim(o),e.dom.setHTML(t,r.content),r.no_events||e.fire("SetContent",r),n}(u,e,s,c):(t=u,n=e,o=c,0===(r=s).length||/^\s+$/.test(r)?(a='
    ',"TABLE"===n.nodeName?r=""+a+"":/^(UL|OL)$/.test(n.nodeName)&&(r="
  • "+a+"
  • "),(i=Au(t))&&t.schema.isValidChild(n.nodeName.toLowerCase(),i.toLowerCase())?(r=a,r=t.dom.createHTML(i,t.settings.forced_root_block_attrs,r)):r||(r='
    '),t.dom.setHTML(n,r),t.fire("SetContent",o)):("raw"!==o.format&&(r=jc({validate:t.validate},t.schema).serialize(t.parser.parse(r,{isRootContent:!0,insert:!0}))),o.content=Lt.trim(r),t.dom.setHTML(n,o.content),o.no_events||t.fire("SetContent",o)),o.content);var t,n,r,o,i,a})},UC=di.DOM,qC=function(e){return A.from(e).each(function(e){return e.destroy()})},VC=function(e){if(!e.removed){var t=e._selectionOverrides,n=e.editorUpload,r=e.getBody(),o=e.getElement();r&&e.save(),e.removed=!0,e.unbindAllNativeEvents(),e.hasHiddenInput&&o&&UC.remove(o.nextSibling),!e.inline&&r&&(i=e,UC.setStyle(i.id,"display",i.orgDisplay)),qv(e),e.editorManager.remove(e),UC.remove(e.getContainer()),qC(t),qC(n),e.destroy()}var i},HC=function(e,t){var n,r,o,i=e.selection,a=e.dom;e.destroyed||(t||e.removed?(t||(e.editorManager.off("beforeunload",e._beforeUnload),e.theme&&e.theme.destroy&&e.theme.destroy(),qC(i),qC(a)),(r=(n=e).formElement)&&(r._mceOldSubmit&&(r.submit=r._mceOldSubmit,r._mceOldSubmit=null),UC.unbind(r,"submit reset",n.formEventDelegate)),(o=e).contentAreaContainer=o.formElement=o.container=o.editorContainer=null,o.bodyElement=o.contentDocument=o.contentWindow=null,o.iframeElement=o.targetElm=null,o.selection&&(o.selection=o.selection.win=o.selection.dom=o.selection.dom.doc=null),e.destroyed=!0):e.remove())},jC=di.DOM,$C=Lt.extend,WC=Lt.each,KC=Lt.resolve,XC=ge.ie,YC=function(e,t,n){var r,o,i,a,u,s,c,l=this,f=l.documentBaseUrl=n.documentBaseURL,d=n.baseURI;r=l,o=e,i=f,a=n.defaultSettings,u=t,c={id:o,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:i,add_form_submit_trigger:!0,submit_patch:!0,add_unload_trigger:!0,convert_urls:!0,relative_urls:!0,remove_script_host:!0,object_resizing:!0,doctype:"",visual:!0,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",forced_root_block:"p",hidden_input:!0,render_ui:!0,indentation:"30px",inline_styles:!0,convert_fonts_to_spans:!0,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",entity_encoding:"named",url_converter:(s=r).convertURL,url_converter_scope:s,ie7_compat:!0},t=sl(nl,c,a,u),l.settings=t,Ci.language=t.language||"en",Ci.languageLoad=t.language_load,Ci.baseURL=n.baseURL,l.id=e,l.setDirty(!1),l.plugins={},l.documentBaseURI=new PC(t.document_base_url,{base_uri:d}),l.baseURI=d,l.contentCSS=[],l.contentStyles=[],l.shortcuts=new tp(l),l.loadedCSS={},l.editorCommands=new Mm(l),l.suffix=n.suffix,l.editorManager=n,l.inline=t.inline,l.buttons={},l.menuItems={},t.cache_suffix&&(ge.cacheSuffix=t.cache_suffix.replace(/^[\?\&]+/,"")),!1===t.override_viewport&&(ge.overrideViewPort=!1),n.fire("SetupEditor",{editor:l}),l.execCallback("setup",l),l.$=en.overrideDefaults(function(){return{context:l.inline?l.getBody():l.getDoc(),element:l.getBody()}})};$C(YC.prototype={render:function(){AC(this)},focus:function(e){fp(this,e)},hasFocus:function(){return dp(this)},execCallback:function(e){for(var t=[],n=1;n=n.x&&o.x+o.w<=n.w+n.x&&o.y>=n.y&&o.y+o.h<=n.h+n.y)return r[i];return null},intersect:function(e,t){var n,r,o,i;return n=Rx(e.x,t.x),r=Rx(e.y,t.y),o=Ax(e.x+e.w,t.x+t.w),i=Ax(e.y+e.h,t.y+t.h),o-n<0||i-r<0?null:Dx(n,r,o-n,i-r)},clamp:function(e,t,n){var r,o,i,a,u,s,c,l,f,d;return u=e.x,s=e.y,c=e.x+e.w,l=e.y+e.h,f=t.x+t.w,d=t.y+t.h,r=Rx(0,t.x-u),o=Rx(0,t.y-s),i=Rx(0,c-f),a=Rx(0,l-d),u+=r,s+=o,n&&(c+=r,l+=o,u-=i,s-=a),Dx(u,s,(c-=i)-u,(l-=a)-s)},create:Dx,fromClientRect:function(e){return Dx(e.left,e.top,e.width,e.height)}},Px={},Lx={add:function(e,t){Px[e.toLowerCase()]=t},has:function(e){return!!Px[e.toLowerCase()]},get:function(e){var t=e.toLowerCase(),n=Px.hasOwnProperty(t)?Px[t]:null;if(null===n)throw new Error("Could not find module for type: "+e);return n},create:function(e,t){var n;if("string"==typeof e?(t=t||{}).type=e:e=(t=e).type,e=e.toLowerCase(),!(n=Px[e]))throw new Error("Could not find control by type: "+e);return(n=new n(t)).type=e,n}},Ix=Lt.each,Mx=Lt.extend,Fx=function(){};Fx.extend=Sx=function(n){var e,t,r,o=this.prototype,i=function(){var e,t,n;if(!kx&&(this.init&&this.init.apply(this,arguments),t=this.Mixins))for(e=t.length;e--;)(n=t[e]).init&&n.init.apply(this,arguments)},a=function(){return this},u=function(n,r){return function(){var e,t=this._super;return this._super=o[n],e=r.apply(this,arguments),this._super=t,e}};for(t in kx=!0,e=new this,kx=!1,n.Mixins&&(Ix(n.Mixins,function(e){for(var t in e)"init"!==t&&(n[t]=e[t])}),o.Mixins&&(n.Mixins=o.Mixins.concat(n.Mixins))),n.Methods&&Ix(n.Methods.split(","),function(e){n[e]=a}),n.Properties&&Ix(n.Properties.split(","),function(e){var t="_"+e;n[e]=function(e){return e!==undefined?(this[t]=e,this):this[t]}}),n.Statics&&Ix(n.Statics,function(e,t){i[t]=e}),n.Defaults&&o.Defaults&&(n.Defaults=Mx({},o.Defaults,n.Defaults)),n)"function"==typeof(r=n[t])&&o[t]?e[t]=u(t,r):e[t]=r;return i.prototype=e,(i.constructor=i).extend=Sx,i};var zx=Math.min,Ux=Math.max,qx=Math.round,Vx=function(e,n){var r,o,t,i;if(n=n||'"',null===e)return"null";if("string"==(t=typeof e))return o="\bb\tt\nn\ff\rr\"\"''\\\\",n+e.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(e,t){return'"'===n&&"'"===e?e:(r=o.indexOf(t))+1?"\\"+o.charAt(r+1):(e=t.charCodeAt().toString(16),"\\u"+"0000".substring(e.length)+e)})+n;if("object"===t){if(e.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(e)){for(r=0,o="[";r