pdfjs_viewer 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (421) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +13 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +230 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +7 -0
  7. data/CHANGELOG.md +2 -0
  8. data/Gemfile +8 -0
  9. data/Gemfile.lock +67 -0
  10. data/LICENSE +204 -0
  11. data/README.md +128 -0
  12. data/Rakefile +6 -0
  13. data/app/controllers/pdfjs_viewer/assets_controller.rb +27 -0
  14. data/app/controllers/pdfjs_viewer/viewer_controller.rb +11 -0
  15. data/app/helpers/pdfjs_viewer/application_helper.rb +20 -0
  16. data/app/views/pdfjs_viewer/viewer/show.html.erb +775 -0
  17. data/bin/build_pdfjs +24 -0
  18. data/bin/console +14 -0
  19. data/bin/setup +8 -0
  20. data/config/routes.rb +11 -0
  21. data/lib/generators/pdfjs_viewer/install_generator.rb +20 -0
  22. data/lib/generators/pdfjs_viewer/templates/README +20 -0
  23. data/lib/generators/pdfjs_viewer/templates/pdfjs_viewer.rb +30 -0
  24. data/lib/pdfjs_viewer/configuration.rb +21 -0
  25. data/lib/pdfjs_viewer/engine.rb +19 -0
  26. data/lib/pdfjs_viewer/version.rb +7 -0
  27. data/lib/pdfjs_viewer.rb +22 -0
  28. data/pdfjs_viewer.gemspec +54 -0
  29. data/public/build/pdf.mjs +23371 -0
  30. data/public/build/pdf.mjs.map +1 -0
  31. data/public/build/pdf.sandbox.mjs +218 -0
  32. data/public/build/pdf.sandbox.mjs.map +1 -0
  33. data/public/build/pdf.worker.mjs +58148 -0
  34. data/public/build/pdf.worker.mjs.map +1 -0
  35. data/public/web/cmaps/78-EUC-H.bcmap +0 -0
  36. data/public/web/cmaps/78-EUC-V.bcmap +0 -0
  37. data/public/web/cmaps/78-H.bcmap +0 -0
  38. data/public/web/cmaps/78-RKSJ-H.bcmap +0 -0
  39. data/public/web/cmaps/78-RKSJ-V.bcmap +0 -0
  40. data/public/web/cmaps/78-V.bcmap +0 -0
  41. data/public/web/cmaps/78ms-RKSJ-H.bcmap +0 -0
  42. data/public/web/cmaps/78ms-RKSJ-V.bcmap +0 -0
  43. data/public/web/cmaps/83pv-RKSJ-H.bcmap +0 -0
  44. data/public/web/cmaps/90ms-RKSJ-H.bcmap +0 -0
  45. data/public/web/cmaps/90ms-RKSJ-V.bcmap +0 -0
  46. data/public/web/cmaps/90msp-RKSJ-H.bcmap +0 -0
  47. data/public/web/cmaps/90msp-RKSJ-V.bcmap +0 -0
  48. data/public/web/cmaps/90pv-RKSJ-H.bcmap +0 -0
  49. data/public/web/cmaps/90pv-RKSJ-V.bcmap +0 -0
  50. data/public/web/cmaps/Add-H.bcmap +0 -0
  51. data/public/web/cmaps/Add-RKSJ-H.bcmap +0 -0
  52. data/public/web/cmaps/Add-RKSJ-V.bcmap +0 -0
  53. data/public/web/cmaps/Add-V.bcmap +0 -0
  54. data/public/web/cmaps/Adobe-CNS1-0.bcmap +0 -0
  55. data/public/web/cmaps/Adobe-CNS1-1.bcmap +0 -0
  56. data/public/web/cmaps/Adobe-CNS1-2.bcmap +0 -0
  57. data/public/web/cmaps/Adobe-CNS1-3.bcmap +0 -0
  58. data/public/web/cmaps/Adobe-CNS1-4.bcmap +0 -0
  59. data/public/web/cmaps/Adobe-CNS1-5.bcmap +0 -0
  60. data/public/web/cmaps/Adobe-CNS1-6.bcmap +0 -0
  61. data/public/web/cmaps/Adobe-CNS1-UCS2.bcmap +0 -0
  62. data/public/web/cmaps/Adobe-GB1-0.bcmap +0 -0
  63. data/public/web/cmaps/Adobe-GB1-1.bcmap +0 -0
  64. data/public/web/cmaps/Adobe-GB1-2.bcmap +0 -0
  65. data/public/web/cmaps/Adobe-GB1-3.bcmap +0 -0
  66. data/public/web/cmaps/Adobe-GB1-4.bcmap +0 -0
  67. data/public/web/cmaps/Adobe-GB1-5.bcmap +0 -0
  68. data/public/web/cmaps/Adobe-GB1-UCS2.bcmap +0 -0
  69. data/public/web/cmaps/Adobe-Japan1-0.bcmap +0 -0
  70. data/public/web/cmaps/Adobe-Japan1-1.bcmap +0 -0
  71. data/public/web/cmaps/Adobe-Japan1-2.bcmap +0 -0
  72. data/public/web/cmaps/Adobe-Japan1-3.bcmap +0 -0
  73. data/public/web/cmaps/Adobe-Japan1-4.bcmap +0 -0
  74. data/public/web/cmaps/Adobe-Japan1-5.bcmap +0 -0
  75. data/public/web/cmaps/Adobe-Japan1-6.bcmap +0 -0
  76. data/public/web/cmaps/Adobe-Japan1-UCS2.bcmap +0 -0
  77. data/public/web/cmaps/Adobe-Korea1-0.bcmap +0 -0
  78. data/public/web/cmaps/Adobe-Korea1-1.bcmap +0 -0
  79. data/public/web/cmaps/Adobe-Korea1-2.bcmap +0 -0
  80. data/public/web/cmaps/Adobe-Korea1-UCS2.bcmap +0 -0
  81. data/public/web/cmaps/B5-H.bcmap +0 -0
  82. data/public/web/cmaps/B5-V.bcmap +0 -0
  83. data/public/web/cmaps/B5pc-H.bcmap +0 -0
  84. data/public/web/cmaps/B5pc-V.bcmap +0 -0
  85. data/public/web/cmaps/CNS-EUC-H.bcmap +0 -0
  86. data/public/web/cmaps/CNS-EUC-V.bcmap +0 -0
  87. data/public/web/cmaps/CNS1-H.bcmap +0 -0
  88. data/public/web/cmaps/CNS1-V.bcmap +0 -0
  89. data/public/web/cmaps/CNS2-H.bcmap +0 -0
  90. data/public/web/cmaps/CNS2-V.bcmap +3 -0
  91. data/public/web/cmaps/ETHK-B5-H.bcmap +0 -0
  92. data/public/web/cmaps/ETHK-B5-V.bcmap +0 -0
  93. data/public/web/cmaps/ETen-B5-H.bcmap +0 -0
  94. data/public/web/cmaps/ETen-B5-V.bcmap +0 -0
  95. data/public/web/cmaps/ETenms-B5-H.bcmap +3 -0
  96. data/public/web/cmaps/ETenms-B5-V.bcmap +0 -0
  97. data/public/web/cmaps/EUC-H.bcmap +0 -0
  98. data/public/web/cmaps/EUC-V.bcmap +0 -0
  99. data/public/web/cmaps/Ext-H.bcmap +0 -0
  100. data/public/web/cmaps/Ext-RKSJ-H.bcmap +0 -0
  101. data/public/web/cmaps/Ext-RKSJ-V.bcmap +0 -0
  102. data/public/web/cmaps/Ext-V.bcmap +0 -0
  103. data/public/web/cmaps/GB-EUC-H.bcmap +0 -0
  104. data/public/web/cmaps/GB-EUC-V.bcmap +0 -0
  105. data/public/web/cmaps/GB-H.bcmap +4 -0
  106. data/public/web/cmaps/GB-V.bcmap +0 -0
  107. data/public/web/cmaps/GBK-EUC-H.bcmap +0 -0
  108. data/public/web/cmaps/GBK-EUC-V.bcmap +0 -0
  109. data/public/web/cmaps/GBK2K-H.bcmap +0 -0
  110. data/public/web/cmaps/GBK2K-V.bcmap +0 -0
  111. data/public/web/cmaps/GBKp-EUC-H.bcmap +0 -0
  112. data/public/web/cmaps/GBKp-EUC-V.bcmap +0 -0
  113. data/public/web/cmaps/GBT-EUC-H.bcmap +0 -0
  114. data/public/web/cmaps/GBT-EUC-V.bcmap +0 -0
  115. data/public/web/cmaps/GBT-H.bcmap +0 -0
  116. data/public/web/cmaps/GBT-V.bcmap +0 -0
  117. data/public/web/cmaps/GBTpc-EUC-H.bcmap +0 -0
  118. data/public/web/cmaps/GBTpc-EUC-V.bcmap +0 -0
  119. data/public/web/cmaps/GBpc-EUC-H.bcmap +0 -0
  120. data/public/web/cmaps/GBpc-EUC-V.bcmap +0 -0
  121. data/public/web/cmaps/H.bcmap +0 -0
  122. data/public/web/cmaps/HKdla-B5-H.bcmap +0 -0
  123. data/public/web/cmaps/HKdla-B5-V.bcmap +0 -0
  124. data/public/web/cmaps/HKdlb-B5-H.bcmap +0 -0
  125. data/public/web/cmaps/HKdlb-B5-V.bcmap +0 -0
  126. data/public/web/cmaps/HKgccs-B5-H.bcmap +0 -0
  127. data/public/web/cmaps/HKgccs-B5-V.bcmap +0 -0
  128. data/public/web/cmaps/HKm314-B5-H.bcmap +0 -0
  129. data/public/web/cmaps/HKm314-B5-V.bcmap +0 -0
  130. data/public/web/cmaps/HKm471-B5-H.bcmap +0 -0
  131. data/public/web/cmaps/HKm471-B5-V.bcmap +0 -0
  132. data/public/web/cmaps/HKscs-B5-H.bcmap +0 -0
  133. data/public/web/cmaps/HKscs-B5-V.bcmap +0 -0
  134. data/public/web/cmaps/Hankaku.bcmap +0 -0
  135. data/public/web/cmaps/Hiragana.bcmap +0 -0
  136. data/public/web/cmaps/KSC-EUC-H.bcmap +0 -0
  137. data/public/web/cmaps/KSC-EUC-V.bcmap +0 -0
  138. data/public/web/cmaps/KSC-H.bcmap +0 -0
  139. data/public/web/cmaps/KSC-Johab-H.bcmap +0 -0
  140. data/public/web/cmaps/KSC-Johab-V.bcmap +0 -0
  141. data/public/web/cmaps/KSC-V.bcmap +0 -0
  142. data/public/web/cmaps/KSCms-UHC-H.bcmap +0 -0
  143. data/public/web/cmaps/KSCms-UHC-HW-H.bcmap +0 -0
  144. data/public/web/cmaps/KSCms-UHC-HW-V.bcmap +0 -0
  145. data/public/web/cmaps/KSCms-UHC-V.bcmap +0 -0
  146. data/public/web/cmaps/KSCpc-EUC-H.bcmap +0 -0
  147. data/public/web/cmaps/KSCpc-EUC-V.bcmap +0 -0
  148. data/public/web/cmaps/Katakana.bcmap +0 -0
  149. data/public/web/cmaps/LICENSE +36 -0
  150. data/public/web/cmaps/NWP-H.bcmap +0 -0
  151. data/public/web/cmaps/NWP-V.bcmap +0 -0
  152. data/public/web/cmaps/RKSJ-H.bcmap +0 -0
  153. data/public/web/cmaps/RKSJ-V.bcmap +0 -0
  154. data/public/web/cmaps/Roman.bcmap +0 -0
  155. data/public/web/cmaps/UniCNS-UCS2-H.bcmap +0 -0
  156. data/public/web/cmaps/UniCNS-UCS2-V.bcmap +0 -0
  157. data/public/web/cmaps/UniCNS-UTF16-H.bcmap +0 -0
  158. data/public/web/cmaps/UniCNS-UTF16-V.bcmap +0 -0
  159. data/public/web/cmaps/UniCNS-UTF32-H.bcmap +0 -0
  160. data/public/web/cmaps/UniCNS-UTF32-V.bcmap +0 -0
  161. data/public/web/cmaps/UniCNS-UTF8-H.bcmap +0 -0
  162. data/public/web/cmaps/UniCNS-UTF8-V.bcmap +0 -0
  163. data/public/web/cmaps/UniGB-UCS2-H.bcmap +0 -0
  164. data/public/web/cmaps/UniGB-UCS2-V.bcmap +0 -0
  165. data/public/web/cmaps/UniGB-UTF16-H.bcmap +0 -0
  166. data/public/web/cmaps/UniGB-UTF16-V.bcmap +0 -0
  167. data/public/web/cmaps/UniGB-UTF32-H.bcmap +0 -0
  168. data/public/web/cmaps/UniGB-UTF32-V.bcmap +0 -0
  169. data/public/web/cmaps/UniGB-UTF8-H.bcmap +0 -0
  170. data/public/web/cmaps/UniGB-UTF8-V.bcmap +0 -0
  171. data/public/web/cmaps/UniJIS-UCS2-H.bcmap +0 -0
  172. data/public/web/cmaps/UniJIS-UCS2-HW-H.bcmap +0 -0
  173. data/public/web/cmaps/UniJIS-UCS2-HW-V.bcmap +0 -0
  174. data/public/web/cmaps/UniJIS-UCS2-V.bcmap +0 -0
  175. data/public/web/cmaps/UniJIS-UTF16-H.bcmap +0 -0
  176. data/public/web/cmaps/UniJIS-UTF16-V.bcmap +0 -0
  177. data/public/web/cmaps/UniJIS-UTF32-H.bcmap +0 -0
  178. data/public/web/cmaps/UniJIS-UTF32-V.bcmap +0 -0
  179. data/public/web/cmaps/UniJIS-UTF8-H.bcmap +0 -0
  180. data/public/web/cmaps/UniJIS-UTF8-V.bcmap +0 -0
  181. data/public/web/cmaps/UniJIS2004-UTF16-H.bcmap +0 -0
  182. data/public/web/cmaps/UniJIS2004-UTF16-V.bcmap +0 -0
  183. data/public/web/cmaps/UniJIS2004-UTF32-H.bcmap +0 -0
  184. data/public/web/cmaps/UniJIS2004-UTF32-V.bcmap +0 -0
  185. data/public/web/cmaps/UniJIS2004-UTF8-H.bcmap +0 -0
  186. data/public/web/cmaps/UniJIS2004-UTF8-V.bcmap +0 -0
  187. data/public/web/cmaps/UniJISPro-UCS2-HW-V.bcmap +0 -0
  188. data/public/web/cmaps/UniJISPro-UCS2-V.bcmap +0 -0
  189. data/public/web/cmaps/UniJISPro-UTF8-V.bcmap +0 -0
  190. data/public/web/cmaps/UniJISX0213-UTF32-H.bcmap +0 -0
  191. data/public/web/cmaps/UniJISX0213-UTF32-V.bcmap +0 -0
  192. data/public/web/cmaps/UniJISX02132004-UTF32-H.bcmap +0 -0
  193. data/public/web/cmaps/UniJISX02132004-UTF32-V.bcmap +0 -0
  194. data/public/web/cmaps/UniKS-UCS2-H.bcmap +0 -0
  195. data/public/web/cmaps/UniKS-UCS2-V.bcmap +0 -0
  196. data/public/web/cmaps/UniKS-UTF16-H.bcmap +0 -0
  197. data/public/web/cmaps/UniKS-UTF16-V.bcmap +0 -0
  198. data/public/web/cmaps/UniKS-UTF32-H.bcmap +0 -0
  199. data/public/web/cmaps/UniKS-UTF32-V.bcmap +0 -0
  200. data/public/web/cmaps/UniKS-UTF8-H.bcmap +0 -0
  201. data/public/web/cmaps/UniKS-UTF8-V.bcmap +0 -0
  202. data/public/web/cmaps/V.bcmap +0 -0
  203. data/public/web/cmaps/WP-Symbol.bcmap +0 -0
  204. data/public/web/compressed.tracemonkey-pldi-09.pdf +0 -0
  205. data/public/web/debugger.css +114 -0
  206. data/public/web/debugger.mjs +627 -0
  207. data/public/web/iccs/CGATS001Compat-v2-micro.icc +0 -0
  208. data/public/web/iccs/LICENSE +116 -0
  209. data/public/web/images/altText_add.svg +3 -0
  210. data/public/web/images/altText_disclaimer.svg +3 -0
  211. data/public/web/images/altText_done.svg +3 -0
  212. data/public/web/images/altText_spinner.svg +30 -0
  213. data/public/web/images/altText_warning.svg +3 -0
  214. data/public/web/images/annotation-check.svg +11 -0
  215. data/public/web/images/annotation-comment.svg +16 -0
  216. data/public/web/images/annotation-help.svg +26 -0
  217. data/public/web/images/annotation-insert.svg +10 -0
  218. data/public/web/images/annotation-key.svg +11 -0
  219. data/public/web/images/annotation-newparagraph.svg +11 -0
  220. data/public/web/images/annotation-noicon.svg +7 -0
  221. data/public/web/images/annotation-note.svg +42 -0
  222. data/public/web/images/annotation-paperclip.svg +6 -0
  223. data/public/web/images/annotation-paragraph.svg +16 -0
  224. data/public/web/images/annotation-pushpin.svg +7 -0
  225. data/public/web/images/comment-actionsButton.svg +3 -0
  226. data/public/web/images/comment-closeButton.svg +3 -0
  227. data/public/web/images/comment-editButton.svg +3 -0
  228. data/public/web/images/cursor-editorFreeHighlight.svg +6 -0
  229. data/public/web/images/cursor-editorFreeText.svg +3 -0
  230. data/public/web/images/cursor-editorInk.svg +4 -0
  231. data/public/web/images/cursor-editorTextHighlight.svg +8 -0
  232. data/public/web/images/editor-toolbar-delete.svg +5 -0
  233. data/public/web/images/editor-toolbar-edit.svg +3 -0
  234. data/public/web/images/findbarButton-next.svg +3 -0
  235. data/public/web/images/findbarButton-previous.svg +3 -0
  236. data/public/web/images/gv-toolbarButton-download.svg +3 -0
  237. data/public/web/images/loading-icon.gif +0 -0
  238. data/public/web/images/loading.svg +1 -0
  239. data/public/web/images/messageBar_closingButton.svg +3 -0
  240. data/public/web/images/messageBar_info.svg +3 -0
  241. data/public/web/images/messageBar_warning.svg +3 -0
  242. data/public/web/images/secondaryToolbarButton-documentProperties.svg +3 -0
  243. data/public/web/images/secondaryToolbarButton-firstPage.svg +3 -0
  244. data/public/web/images/secondaryToolbarButton-handTool.svg +3 -0
  245. data/public/web/images/secondaryToolbarButton-lastPage.svg +3 -0
  246. data/public/web/images/secondaryToolbarButton-rotateCcw.svg +3 -0
  247. data/public/web/images/secondaryToolbarButton-rotateCw.svg +3 -0
  248. data/public/web/images/secondaryToolbarButton-scrollHorizontal.svg +3 -0
  249. data/public/web/images/secondaryToolbarButton-scrollPage.svg +3 -0
  250. data/public/web/images/secondaryToolbarButton-scrollVertical.svg +3 -0
  251. data/public/web/images/secondaryToolbarButton-scrollWrapped.svg +3 -0
  252. data/public/web/images/secondaryToolbarButton-selectTool.svg +3 -0
  253. data/public/web/images/secondaryToolbarButton-spreadEven.svg +3 -0
  254. data/public/web/images/secondaryToolbarButton-spreadNone.svg +3 -0
  255. data/public/web/images/secondaryToolbarButton-spreadOdd.svg +3 -0
  256. data/public/web/images/toolbarButton-bookmark.svg +3 -0
  257. data/public/web/images/toolbarButton-currentOutlineItem.svg +3 -0
  258. data/public/web/images/toolbarButton-download.svg +4 -0
  259. data/public/web/images/toolbarButton-editorFreeText.svg +5 -0
  260. data/public/web/images/toolbarButton-editorHighlight.svg +6 -0
  261. data/public/web/images/toolbarButton-editorInk.svg +4 -0
  262. data/public/web/images/toolbarButton-editorSignature.svg +6 -0
  263. data/public/web/images/toolbarButton-editorStamp.svg +8 -0
  264. data/public/web/images/toolbarButton-menuArrow.svg +3 -0
  265. data/public/web/images/toolbarButton-openFile.svg +3 -0
  266. data/public/web/images/toolbarButton-pageDown.svg +3 -0
  267. data/public/web/images/toolbarButton-pageUp.svg +3 -0
  268. data/public/web/images/toolbarButton-presentationMode.svg +3 -0
  269. data/public/web/images/toolbarButton-print.svg +3 -0
  270. data/public/web/images/toolbarButton-search.svg +3 -0
  271. data/public/web/images/toolbarButton-secondaryToolbarToggle.svg +3 -0
  272. data/public/web/images/toolbarButton-sidebarToggle.svg +3 -0
  273. data/public/web/images/toolbarButton-viewAttachments.svg +3 -0
  274. data/public/web/images/toolbarButton-viewLayers.svg +3 -0
  275. data/public/web/images/toolbarButton-viewOutline.svg +3 -0
  276. data/public/web/images/toolbarButton-viewThumbnail.svg +3 -0
  277. data/public/web/images/toolbarButton-zoomIn.svg +3 -0
  278. data/public/web/images/toolbarButton-zoomOut.svg +3 -0
  279. data/public/web/images/treeitem-collapsed.svg +1 -0
  280. data/public/web/images/treeitem-expanded.svg +1 -0
  281. data/public/web/locale/ach/viewer.ftl +275 -0
  282. data/public/web/locale/af/viewer.ftl +262 -0
  283. data/public/web/locale/an/viewer.ftl +307 -0
  284. data/public/web/locale/ar/viewer.ftl +627 -0
  285. data/public/web/locale/ast/viewer.ftl +251 -0
  286. data/public/web/locale/az/viewer.ftl +307 -0
  287. data/public/web/locale/be/viewer.ftl +618 -0
  288. data/public/web/locale/bg/viewer.ftl +451 -0
  289. data/public/web/locale/bn/viewer.ftl +297 -0
  290. data/public/web/locale/bo/viewer.ftl +297 -0
  291. data/public/web/locale/br/viewer.ftl +382 -0
  292. data/public/web/locale/brx/viewer.ftl +268 -0
  293. data/public/web/locale/bs/viewer.ftl +618 -0
  294. data/public/web/locale/ca/viewer.ftl +343 -0
  295. data/public/web/locale/cak/viewer.ftl +341 -0
  296. data/public/web/locale/ckb/viewer.ftl +292 -0
  297. data/public/web/locale/cs/viewer.ftl +621 -0
  298. data/public/web/locale/cy/viewer.ftl +627 -0
  299. data/public/web/locale/da/viewer.ftl +615 -0
  300. data/public/web/locale/de/viewer.ftl +615 -0
  301. data/public/web/locale/dsb/viewer.ftl +621 -0
  302. data/public/web/locale/el/viewer.ftl +615 -0
  303. data/public/web/locale/en-CA/viewer.ftl +615 -0
  304. data/public/web/locale/en-GB/viewer.ftl +615 -0
  305. data/public/web/locale/en-US/viewer.ftl +667 -0
  306. data/public/web/locale/eo/viewer.ftl +615 -0
  307. data/public/web/locale/es-AR/viewer.ftl +615 -0
  308. data/public/web/locale/es-CL/viewer.ftl +615 -0
  309. data/public/web/locale/es-ES/viewer.ftl +615 -0
  310. data/public/web/locale/es-MX/viewer.ftl +580 -0
  311. data/public/web/locale/et/viewer.ftl +319 -0
  312. data/public/web/locale/eu/viewer.ftl +619 -0
  313. data/public/web/locale/fa/viewer.ftl +378 -0
  314. data/public/web/locale/ff/viewer.ftl +297 -0
  315. data/public/web/locale/fi/viewer.ftl +615 -0
  316. data/public/web/locale/fr/viewer.ftl +611 -0
  317. data/public/web/locale/fur/viewer.ftl +615 -0
  318. data/public/web/locale/fy-NL/viewer.ftl +615 -0
  319. data/public/web/locale/ga-IE/viewer.ftl +263 -0
  320. data/public/web/locale/gd/viewer.ftl +343 -0
  321. data/public/web/locale/gl/viewer.ftl +615 -0
  322. data/public/web/locale/gn/viewer.ftl +614 -0
  323. data/public/web/locale/gu-IN/viewer.ftl +297 -0
  324. data/public/web/locale/he/viewer.ftl +615 -0
  325. data/public/web/locale/hi-IN/viewer.ftl +297 -0
  326. data/public/web/locale/hr/viewer.ftl +618 -0
  327. data/public/web/locale/hsb/viewer.ftl +621 -0
  328. data/public/web/locale/hu/viewer.ftl +615 -0
  329. data/public/web/locale/hy-AM/viewer.ftl +314 -0
  330. data/public/web/locale/hye/viewer.ftl +318 -0
  331. data/public/web/locale/ia/viewer.ftl +615 -0
  332. data/public/web/locale/id/viewer.ftl +603 -0
  333. data/public/web/locale/is/viewer.ftl +600 -0
  334. data/public/web/locale/it/viewer.ftl +623 -0
  335. data/public/web/locale/ja/viewer.ftl +603 -0
  336. data/public/web/locale/ka/viewer.ftl +615 -0
  337. data/public/web/locale/kab/viewer.ftl +595 -0
  338. data/public/web/locale/kk/viewer.ftl +603 -0
  339. data/public/web/locale/km/viewer.ftl +273 -0
  340. data/public/web/locale/kn/viewer.ftl +263 -0
  341. data/public/web/locale/ko/viewer.ftl +603 -0
  342. data/public/web/locale/lij/viewer.ftl +297 -0
  343. data/public/web/locale/lo/viewer.ftl +343 -0
  344. data/public/web/locale/locale.json +1 -0
  345. data/public/web/locale/lt/viewer.ftl +318 -0
  346. data/public/web/locale/ltg/viewer.ftl +296 -0
  347. data/public/web/locale/lv/viewer.ftl +297 -0
  348. data/public/web/locale/meh/viewer.ftl +137 -0
  349. data/public/web/locale/mk/viewer.ftl +265 -0
  350. data/public/web/locale/ml/viewer.ftl +524 -0
  351. data/public/web/locale/mr/viewer.ftl +289 -0
  352. data/public/web/locale/ms/viewer.ftl +297 -0
  353. data/public/web/locale/my/viewer.ftl +256 -0
  354. data/public/web/locale/nb-NO/viewer.ftl +615 -0
  355. data/public/web/locale/ne-NP/viewer.ftl +284 -0
  356. data/public/web/locale/nl/viewer.ftl +615 -0
  357. data/public/web/locale/nn-NO/viewer.ftl +609 -0
  358. data/public/web/locale/oc/viewer.ftl +436 -0
  359. data/public/web/locale/pa-IN/viewer.ftl +615 -0
  360. data/public/web/locale/pl/viewer.ftl +618 -0
  361. data/public/web/locale/pt-BR/viewer.ftl +615 -0
  362. data/public/web/locale/pt-PT/viewer.ftl +615 -0
  363. data/public/web/locale/rm/viewer.ftl +615 -0
  364. data/public/web/locale/ro/viewer.ftl +302 -0
  365. data/public/web/locale/ru/viewer.ftl +618 -0
  366. data/public/web/locale/sat/viewer.ftl +355 -0
  367. data/public/web/locale/sc/viewer.ftl +394 -0
  368. data/public/web/locale/scn/viewer.ftl +124 -0
  369. data/public/web/locale/sco/viewer.ftl +314 -0
  370. data/public/web/locale/si/viewer.ftl +301 -0
  371. data/public/web/locale/sk/viewer.ftl +621 -0
  372. data/public/web/locale/skr/viewer.ftl +524 -0
  373. data/public/web/locale/sl/viewer.ftl +621 -0
  374. data/public/web/locale/son/viewer.ftl +256 -0
  375. data/public/web/locale/sq/viewer.ftl +606 -0
  376. data/public/web/locale/sr/viewer.ftl +451 -0
  377. data/public/web/locale/sv-SE/viewer.ftl +615 -0
  378. data/public/web/locale/szl/viewer.ftl +307 -0
  379. data/public/web/locale/ta/viewer.ftl +273 -0
  380. data/public/web/locale/te/viewer.ftl +289 -0
  381. data/public/web/locale/tg/viewer.ftl +615 -0
  382. data/public/web/locale/th/viewer.ftl +603 -0
  383. data/public/web/locale/tl/viewer.ftl +307 -0
  384. data/public/web/locale/tr/viewer.ftl +615 -0
  385. data/public/web/locale/trs/viewer.ftl +247 -0
  386. data/public/web/locale/uk/viewer.ftl +618 -0
  387. data/public/web/locale/ur/viewer.ftl +298 -0
  388. data/public/web/locale/uz/viewer.ftl +237 -0
  389. data/public/web/locale/vi/viewer.ftl +603 -0
  390. data/public/web/locale/wo/viewer.ftl +177 -0
  391. data/public/web/locale/xh/viewer.ftl +262 -0
  392. data/public/web/locale/zh-CN/viewer.ftl +603 -0
  393. data/public/web/locale/zh-TW/viewer.ftl +603 -0
  394. data/public/web/standard_fonts/FoxitDingbats.pfb +0 -0
  395. data/public/web/standard_fonts/FoxitFixed.pfb +0 -0
  396. data/public/web/standard_fonts/FoxitFixedBold.pfb +0 -0
  397. data/public/web/standard_fonts/FoxitFixedBoldItalic.pfb +0 -0
  398. data/public/web/standard_fonts/FoxitFixedItalic.pfb +0 -0
  399. data/public/web/standard_fonts/FoxitSerif.pfb +0 -0
  400. data/public/web/standard_fonts/FoxitSerifBold.pfb +0 -0
  401. data/public/web/standard_fonts/FoxitSerifBoldItalic.pfb +0 -0
  402. data/public/web/standard_fonts/FoxitSerifItalic.pfb +0 -0
  403. data/public/web/standard_fonts/FoxitSymbol.pfb +0 -0
  404. data/public/web/standard_fonts/LICENSE_FOXIT +27 -0
  405. data/public/web/standard_fonts/LICENSE_LIBERATION +102 -0
  406. data/public/web/standard_fonts/LiberationSans-Bold.ttf +0 -0
  407. data/public/web/standard_fonts/LiberationSans-BoldItalic.ttf +0 -0
  408. data/public/web/standard_fonts/LiberationSans-Italic.ttf +0 -0
  409. data/public/web/standard_fonts/LiberationSans-Regular.ttf +0 -0
  410. data/public/web/viewer.css +6766 -0
  411. data/public/web/viewer.html +768 -0
  412. data/public/web/viewer.mjs +17445 -0
  413. data/public/web/viewer.mjs.map +1 -0
  414. data/public/web/wasm/LICENSE_OPENJPEG +39 -0
  415. data/public/web/wasm/LICENSE_PDFJS_OPENJPEG +22 -0
  416. data/public/web/wasm/LICENSE_PDFJS_QCMS +22 -0
  417. data/public/web/wasm/LICENSE_QCMS +21 -0
  418. data/public/web/wasm/openjpeg.wasm +0 -0
  419. data/public/web/wasm/openjpeg_nowasm_fallback.js +29 -0
  420. data/public/web/wasm/qcms_bg.wasm +0 -0
  421. metadata +526 -0
@@ -0,0 +1,775 @@
1
+ <% if @file_url.present? %>
2
+ <!DOCTYPE html>
3
+ <!--
4
+ Copyright 2012 Mozilla Foundation
5
+
6
+ Licensed under the Apache License, Version 2.0 (the "License");
7
+ you may not use this file except in compliance with the License.
8
+ You may obtain a copy of the License at
9
+
10
+ http://www.apache.org/licenses/LICENSE-2.0
11
+
12
+ Unless required by applicable law or agreed to in writing, software
13
+ distributed under the License is distributed on an "AS IS" BASIS,
14
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ See the License for the specific language governing permissions and
16
+ limitations under the License.
17
+
18
+ Adobe CMap resources are covered by their own copyright but the same license:
19
+
20
+ Copyright 1990-2015 Adobe Systems Incorporated.
21
+
22
+ See https://github.com/adobe-type-tools/cmap-resources
23
+ -->
24
+ <html dir="ltr" mozdisallowselectionprint>
25
+ <base href="/web/">
26
+ <head>
27
+ <meta charset="utf-8">
28
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
29
+ <meta name="google" content="notranslate">
30
+ <title>PDF.js viewer</title>
31
+
32
+ <!-- This snippet is used in production (included from viewer.html) -->
33
+ <link rel="resource" type="application/l10n" href="locale/locale.json">
34
+ <script src="../build/pdf.mjs" type="module"></script>
35
+
36
+ <link rel="stylesheet" href="/web/viewer.css">
37
+ <% if stylesheet_path.present? %>
38
+ <link rel="stylesheet" href="<%= stylesheet_path %>">
39
+ <% end %>
40
+
41
+ <script src="/web/viewer.mjs" type="module"></script>
42
+ </head>
43
+
44
+ <body tabindex="0">
45
+ <div id="outerContainer">
46
+ <span id="viewer-alert" class="visuallyHidden" role="alert"></span>
47
+
48
+ <div id="sidebarContainer">
49
+ <div id="toolbarSidebar" class="toolbarHorizontalGroup">
50
+ <div id="toolbarSidebarLeft">
51
+ <div id="sidebarViewButtons" class="toolbarHorizontalGroup toggled" role="radiogroup">
52
+ <button id="viewThumbnail" class="toolbarButton toggled" type="button" tabindex="0" data-l10n-id="pdfjs-thumbs-button" role="radio" aria-checked="true" aria-controls="thumbnailView">
53
+ <span data-l10n-id="pdfjs-thumbs-button-label"></span>
54
+ </button>
55
+ <button id="viewOutline" class="toolbarButton" type="button" tabindex="0" data-l10n-id="pdfjs-document-outline-button" role="radio" aria-checked="false" aria-controls="outlineView">
56
+ <span data-l10n-id="pdfjs-document-outline-button-label"></span>
57
+ </button>
58
+ <button id="viewAttachments" class="toolbarButton" type="button" tabindex="0" data-l10n-id="pdfjs-attachments-button" role="radio" aria-checked="false" aria-controls="attachmentsView">
59
+ <span data-l10n-id="pdfjs-attachments-button-label"></span>
60
+ </button>
61
+ <button id="viewLayers" class="toolbarButton" type="button" tabindex="0" data-l10n-id="pdfjs-layers-button" role="radio" aria-checked="false" aria-controls="layersView">
62
+ <span data-l10n-id="pdfjs-layers-button-label"></span>
63
+ </button>
64
+ </div>
65
+ </div>
66
+
67
+ <div id="toolbarSidebarRight">
68
+ <div id="outlineOptionsContainer" class="toolbarHorizontalGroup">
69
+ <div class="verticalToolbarSeparator"></div>
70
+
71
+ <button id="currentOutlineItem" class="toolbarButton" type="button" disabled="disabled" tabindex="0" data-l10n-id="pdfjs-current-outline-item-button">
72
+ <span data-l10n-id="pdfjs-current-outline-item-button-label"></span>
73
+ </button>
74
+ </div>
75
+ </div>
76
+ </div>
77
+ <div id="sidebarContent">
78
+ <div id="thumbnailView">
79
+ </div>
80
+ <div id="outlineView" class="hidden">
81
+ </div>
82
+ <div id="attachmentsView" class="hidden">
83
+ </div>
84
+ <div id="layersView" class="hidden">
85
+ </div>
86
+ </div>
87
+ <div id="sidebarResizer"></div>
88
+ </div> <!-- sidebarContainer -->
89
+
90
+ <div id="mainContainer">
91
+ <div class="toolbar">
92
+ <div id="toolbarContainer">
93
+ <div id="toolbarViewer" class="toolbarHorizontalGroup">
94
+ <div id="toolbarViewerLeft" class="toolbarHorizontalGroup">
95
+ <button id="sidebarToggleButton" class="toolbarButton" type="button" tabindex="0" data-l10n-id="pdfjs-toggle-sidebar-button" aria-expanded="false" aria-haspopup="true" aria-controls="sidebarContainer">
96
+ <span data-l10n-id="pdfjs-toggle-sidebar-button-label"></span>
97
+ </button>
98
+ <div class="toolbarButtonSpacer"></div>
99
+ <div class="toolbarButtonWithContainer">
100
+ <button id="viewFindButton" class="toolbarButton" type="button" tabindex="0" data-l10n-id="pdfjs-findbar-button" aria-expanded="false" aria-controls="findbar">
101
+ <span data-l10n-id="pdfjs-findbar-button-label"></span>
102
+ </button>
103
+ <div class="hidden doorHanger toolbarHorizontalGroup" id="findbar">
104
+ <div id="findInputContainer" class="toolbarHorizontalGroup">
105
+ <span class="loadingInput end toolbarHorizontalGroup">
106
+ <input id="findInput" class="toolbarField" tabindex="0" data-l10n-id="pdfjs-find-input" aria-invalid="false">
107
+ </span>
108
+ <div class="toolbarHorizontalGroup">
109
+ <button id="findPreviousButton" class="toolbarButton" type="button" tabindex="0" data-l10n-id="pdfjs-find-previous-button">
110
+ <span data-l10n-id="pdfjs-find-previous-button-label"></span>
111
+ </button>
112
+ <div class="splitToolbarButtonSeparator"></div>
113
+ <button id="findNextButton" class="toolbarButton" type="button" tabindex="0" data-l10n-id="pdfjs-find-next-button">
114
+ <span data-l10n-id="pdfjs-find-next-button-label"></span>
115
+ </button>
116
+ </div>
117
+ </div>
118
+
119
+ <div id="findbarOptionsOneContainer" class="toolbarHorizontalGroup">
120
+ <div class="toggleButton toolbarLabel">
121
+ <input type="checkbox" id="findHighlightAll" tabindex="0" />
122
+ <label for="findHighlightAll" data-l10n-id="pdfjs-find-highlight-checkbox"></label>
123
+ </div>
124
+ <div class="toggleButton toolbarLabel">
125
+ <input type="checkbox" id="findMatchCase" tabindex="0" />
126
+ <label for="findMatchCase" data-l10n-id="pdfjs-find-match-case-checkbox-label"></label>
127
+ </div>
128
+ </div>
129
+ <div id="findbarOptionsTwoContainer" class="toolbarHorizontalGroup">
130
+ <div class="toggleButton toolbarLabel">
131
+ <input type="checkbox" id="findMatchDiacritics" tabindex="0" />
132
+ <label for="findMatchDiacritics" data-l10n-id="pdfjs-find-match-diacritics-checkbox-label"></label>
133
+ </div>
134
+ <div class="toggleButton toolbarLabel">
135
+ <input type="checkbox" id="findEntireWord" tabindex="0" />
136
+ <label for="findEntireWord" data-l10n-id="pdfjs-find-entire-word-checkbox-label"></label>
137
+ </div>
138
+ </div>
139
+
140
+ <div id="findbarMessageContainer" class="toolbarHorizontalGroup" aria-live="polite">
141
+ <span id="findResultsCount" class="toolbarLabel"></span>
142
+ <span id="findMsg" class="toolbarLabel"></span>
143
+ </div>
144
+ </div> <!-- findbar -->
145
+ </div>
146
+ <div class="toolbarHorizontalGroup hiddenSmallView">
147
+ <button class="toolbarButton" type="button" id="previous" tabindex="0" data-l10n-id="pdfjs-previous-button">
148
+ <span data-l10n-id="pdfjs-previous-button-label"></span>
149
+ </button>
150
+ <div class="splitToolbarButtonSeparator"></div>
151
+ <button class="toolbarButton" type="button" id="next" tabindex="0" data-l10n-id="pdfjs-next-button">
152
+ <span data-l10n-id="pdfjs-next-button-label"></span>
153
+ </button>
154
+ </div>
155
+ <div class="toolbarHorizontalGroup">
156
+ <span class="loadingInput start toolbarHorizontalGroup">
157
+ <input type="number" id="pageNumber" class="toolbarField" value="1" min="1" tabindex="0" data-l10n-id="pdfjs-page-input" autocomplete="off">
158
+ </span>
159
+ <span id="numPages" class="toolbarLabel"></span>
160
+ </div>
161
+ </div>
162
+ <div id="toolbarViewerMiddle" class="toolbarHorizontalGroup">
163
+ <div class="toolbarHorizontalGroup">
164
+ <button id="zoomOutButton" class="toolbarButton" type="button" tabindex="0" data-l10n-id="pdfjs-zoom-out-button">
165
+ <span data-l10n-id="pdfjs-zoom-out-button-label"></span>
166
+ </button>
167
+ <div class="splitToolbarButtonSeparator"></div>
168
+ <button id="zoomInButton" class="toolbarButton" type="button" tabindex="0" data-l10n-id="pdfjs-zoom-in-button">
169
+ <span data-l10n-id="pdfjs-zoom-in-button-label"></span>
170
+ </button>
171
+ </div>
172
+ <span id="scaleSelectContainer" class="dropdownToolbarButton">
173
+ <select id="scaleSelect" tabindex="0" data-l10n-id="pdfjs-zoom-select">
174
+ <option id="pageAutoOption" value="auto" selected="selected" data-l10n-id="pdfjs-page-scale-auto"></option>
175
+ <option id="pageActualOption" value="page-actual" data-l10n-id="pdfjs-page-scale-actual"></option>
176
+ <option id="pageFitOption" value="page-fit" data-l10n-id="pdfjs-page-scale-fit"></option>
177
+ <option id="pageWidthOption" value="page-width" data-l10n-id="pdfjs-page-scale-width"></option>
178
+ <option id="customScaleOption" value="custom" disabled="disabled" hidden="true" data-l10n-id="pdfjs-page-scale-percent" data-l10n-args='{ "scale": 0 }'></option>
179
+ <option value="0.5" data-l10n-id="pdfjs-page-scale-percent" data-l10n-args='{ "scale": 50 }'></option>
180
+ <option value="0.75" data-l10n-id="pdfjs-page-scale-percent" data-l10n-args='{ "scale": 75 }'></option>
181
+ <option value="1" data-l10n-id="pdfjs-page-scale-percent" data-l10n-args='{ "scale": 100 }'></option>
182
+ <option value="1.25" data-l10n-id="pdfjs-page-scale-percent" data-l10n-args='{ "scale": 125 }'></option>
183
+ <option value="1.5" data-l10n-id="pdfjs-page-scale-percent" data-l10n-args='{ "scale": 150 }'></option>
184
+ <option value="2" data-l10n-id="pdfjs-page-scale-percent" data-l10n-args='{ "scale": 200 }'></option>
185
+ <option value="3" data-l10n-id="pdfjs-page-scale-percent" data-l10n-args='{ "scale": 300 }'></option>
186
+ <option value="4" data-l10n-id="pdfjs-page-scale-percent" data-l10n-args='{ "scale": 400 }'></option>
187
+ </select>
188
+ </span>
189
+ </div>
190
+ <div id="toolbarViewerRight" class="toolbarHorizontalGroup">
191
+ <div id="editorModeButtons" class="toolbarHorizontalGroup" role="radiogroup">
192
+ <div id="editorSignature" class="toolbarButtonWithContainer" hidden="true">
193
+ <button id="editorSignatureButton" class="toolbarButton" type="button" tabindex="0" disabled="disabled" role="radio" aria-expanded="false" aria-haspopup="true" aria-controls="editorSignatureParamsToolbar" data-l10n-id="pdfjs-editor-signature-button">
194
+ <span data-l10n-id="pdfjs-editor-signature-button-label"></span>
195
+ </button>
196
+ <div class="editorParamsToolbar hidden doorHangerRight menu" id="editorSignatureParamsToolbar">
197
+ <div id="addSignatureDoorHanger" class="menuContainer" role="region" data-l10n-id="pdfjs-editor-add-signature-container">
198
+ <button id="editorSignatureAddSignature" class="toolbarButton labeled" type="button" tabindex="0" data-l10n-id="pdfjs-editor-signature-add-signature-button">
199
+ <span data-l10n-id="pdfjs-editor-signature-add-signature-button-label" class="editorParamsLabel"></span>
200
+ </button>
201
+ </div>
202
+ </div>
203
+ </div>
204
+ <div id="editorHighlight" class="toolbarButtonWithContainer">
205
+ <button id="editorHighlightButton" style="<%= toggle_action(:show_highlight_button) %>" class="toolbarButton" type="button" disabled="disabled" role="radio" aria-expanded="false" aria-haspopup="true" aria-controls="editorHighlightParamsToolbar" tabindex="0" data-l10n-id="pdfjs-editor-highlight-button">
206
+ <span data-l10n-id="pdfjs-editor-highlight-button-label"></span>
207
+ </button>
208
+ <div class="editorParamsToolbar hidden doorHangerRight" id="editorHighlightParamsToolbar">
209
+ <div id="highlightParamsToolbarContainer" class="editorParamsToolbarContainer">
210
+ <div id="editorHighlightColorPicker" class="colorPicker">
211
+ <span id="highlightColorPickerLabel" class="editorParamsLabel" data-l10n-id="pdfjs-editor-highlight-colorpicker-label"></span>
212
+ </div>
213
+ <div id="editorHighlightThickness">
214
+ <label for="editorFreeHighlightThickness" class="editorParamsLabel" data-l10n-id="pdfjs-editor-free-highlight-thickness-input"></label>
215
+ <div class="thicknessPicker">
216
+ <input type="range" id="editorFreeHighlightThickness" class="editorParamsSlider" data-l10n-id="pdfjs-editor-free-highlight-thickness-title" value="12" min="8" max="24" step="1" tabindex="0">
217
+ </div>
218
+ </div>
219
+ <div id="editorHighlightVisibility">
220
+ <div class="divider"></div>
221
+ <div class="toggler">
222
+ <label for="editorHighlightShowAll" class="editorParamsLabel" data-l10n-id="pdfjs-editor-highlight-show-all-button-label"></label>
223
+ <button id="editorHighlightShowAll" class="toggle-button" type="button" data-l10n-id="pdfjs-editor-highlight-show-all-button" aria-pressed="true" tabindex="0"></button>
224
+ </div>
225
+ </div>
226
+ </div>
227
+ </div>
228
+ </div>
229
+ <div id="editorFreeText" class="toolbarButtonWithContainer">
230
+ <button id="editorFreeTextButton" style="<%= toggle_action(:show_text_button) %>" class="toolbarButton" type="button" disabled="disabled" role="radio" aria-expanded="false" aria-haspopup="true" aria-controls="editorFreeTextParamsToolbar" tabindex="0" data-l10n-id="pdfjs-editor-free-text-button">
231
+ <span data-l10n-id="pdfjs-editor-free-text-button-label"></span>
232
+ </button>
233
+ <div class="editorParamsToolbar hidden doorHangerRight" id="editorFreeTextParamsToolbar">
234
+ <div class="editorParamsToolbarContainer">
235
+ <div class="editorParamsSetter">
236
+ <label for="editorFreeTextColor" class="editorParamsLabel" data-l10n-id="pdfjs-editor-free-text-color-input"></label>
237
+ <input type="color" id="editorFreeTextColor" class="editorParamsColor" tabindex="0">
238
+ </div>
239
+ <div class="editorParamsSetter">
240
+ <label for="editorFreeTextFontSize" class="editorParamsLabel" data-l10n-id="pdfjs-editor-free-text-size-input"></label>
241
+ <input type="range" id="editorFreeTextFontSize" class="editorParamsSlider" value="10" min="5" max="100" step="1" tabindex="0">
242
+ </div>
243
+ </div>
244
+ </div>
245
+ </div>
246
+ <div id="editorInk" class="toolbarButtonWithContainer">
247
+ <button id="editorInkButton" style="<%= toggle_action(:show_draw_button) %>" class="toolbarButton" type="button" disabled="disabled" role="radio" aria-expanded="false" aria-haspopup="true" aria-controls="editorInkParamsToolbar" tabindex="0" data-l10n-id="pdfjs-editor-ink-button">
248
+ <span data-l10n-id="pdfjs-editor-ink-button-label"></span>
249
+ </button>
250
+ <div class="editorParamsToolbar hidden doorHangerRight" id="editorInkParamsToolbar">
251
+ <div class="editorParamsToolbarContainer">
252
+ <div class="editorParamsSetter">
253
+ <label for="editorInkColor" class="editorParamsLabel" data-l10n-id="pdfjs-editor-ink-color-input"></label>
254
+ <input type="color" id="editorInkColor" class="editorParamsColor" tabindex="0">
255
+ </div>
256
+ <div class="editorParamsSetter">
257
+ <label for="editorInkThickness" class="editorParamsLabel" data-l10n-id="pdfjs-editor-ink-thickness-input"></label>
258
+ <input type="range" id="editorInkThickness" class="editorParamsSlider" value="1" min="1" max="20" step="1" tabindex="0">
259
+ </div>
260
+ <div class="editorParamsSetter">
261
+ <label for="editorInkOpacity" class="editorParamsLabel" data-l10n-id="pdfjs-editor-ink-opacity-input"></label>
262
+ <input type="range" id="editorInkOpacity" class="editorParamsSlider" value="1" min="0.05" max="1" step="0.05" tabindex="0">
263
+ </div>
264
+ </div>
265
+ </div>
266
+ </div>
267
+ <div id="editorStamp" class="toolbarButtonWithContainer">
268
+ <button id="editorStampButton" style="<%= toggle_action(:show_add_edit_image_button) %>" class="toolbarButton" type="button" disabled="disabled" role="radio" aria-expanded="false" aria-haspopup="true" aria-controls="editorStampParamsToolbar" tabindex="0" data-l10n-id="pdfjs-editor-stamp-button">
269
+ <span data-l10n-id="pdfjs-editor-stamp-button-label"></span>
270
+ </button>
271
+ <div class="editorParamsToolbar hidden doorHangerRight menu" id="editorStampParamsToolbar">
272
+ <div class="menuContainer">
273
+ <button id="editorStampAddImage" class="toolbarButton labeled" type="button" tabindex="0" data-l10n-id="pdfjs-editor-stamp-add-image-button">
274
+ <span class="editorParamsLabel" data-l10n-id="pdfjs-editor-stamp-add-image-button-label"></span>
275
+ </button>
276
+ </div>
277
+ </div>
278
+ </div>
279
+ </div>
280
+
281
+ <div id="editorModeSeparator" class="verticalToolbarSeparator"></div>
282
+
283
+ <div class="toolbarHorizontalGroup hiddenMediumView">
284
+ <button id="printButton" style="<%= toggle_action(:show_print_button) %>" class="toolbarButton" type="button" tabindex="0" data-l10n-id="pdfjs-print-button">
285
+ <span data-l10n-id="pdfjs-print-button-label"></span>
286
+ </button>
287
+ <button id="downloadButton" style="<%= toggle_action(:show_save_button) %>" class="toolbarButton" type="button" tabindex="0" data-l10n-id="pdfjs-save-button">
288
+ <span data-l10n-id="pdfjs-save-button-label"></span>
289
+ </button>
290
+ </div>
291
+
292
+ <div class="verticalToolbarSeparator hiddenMediumView"></div>
293
+
294
+ <div id="secondaryToolbarToggle" class="toolbarButtonWithContainer">
295
+ <button id="secondaryToolbarToggleButton" class="toolbarButton" type="button" tabindex="0" data-l10n-id="pdfjs-tools-button" aria-expanded="false" aria-haspopup="true" aria-controls="secondaryToolbar">
296
+ <span data-l10n-id="pdfjs-tools-button-label"></span>
297
+ </button>
298
+ <div id="secondaryToolbar" class="hidden doorHangerRight menu">
299
+ <div id="secondaryToolbarButtonContainer" class="menuContainer">
300
+ <button id="secondaryOpenFile" style="<%= toggle_action(:show_open_file_button) %>" class="toolbarButton labeled" type="button" tabindex="0" data-l10n-id="pdfjs-open-file-button">
301
+ <span data-l10n-id="pdfjs-open-file-button-label"></span>
302
+ </button>
303
+
304
+ <div class="visibleMediumView">
305
+ <button id="secondaryPrint" class="toolbarButton labeled" type="button" tabindex="0" data-l10n-id="pdfjs-print-button">
306
+ <span data-l10n-id="pdfjs-print-button-label"></span>
307
+ </button>
308
+
309
+ <button id="secondaryDownload" class="toolbarButton labeled" type="button" tabindex="0" data-l10n-id="pdfjs-save-button">
310
+ <span data-l10n-id="pdfjs-save-button-label"></span>
311
+ </button>
312
+
313
+ </div>
314
+
315
+ <div class="horizontalToolbarSeparator" style="<%= toggle_action(:show_open_file_button) %>"></div>
316
+
317
+ <button id="presentationMode" class="toolbarButton labeled" type="button" tabindex="0" data-l10n-id="pdfjs-presentation-mode-button">
318
+ <span data-l10n-id="pdfjs-presentation-mode-button-label"></span>
319
+ </button>
320
+
321
+ <a href="#" id="viewBookmark" class="toolbarButton labeled" tabindex="0" data-l10n-id="pdfjs-bookmark-button">
322
+ <span data-l10n-id="pdfjs-bookmark-button-label"></span>
323
+ </a>
324
+
325
+ <div id="viewBookmarkSeparator" class="horizontalToolbarSeparator"></div>
326
+
327
+ <button id="firstPage" class="toolbarButton labeled" type="button" tabindex="0" data-l10n-id="pdfjs-first-page-button">
328
+ <span data-l10n-id="pdfjs-first-page-button-label"></span>
329
+ </button>
330
+ <button id="lastPage" class="toolbarButton labeled" type="button" tabindex="0" data-l10n-id="pdfjs-last-page-button">
331
+ <span data-l10n-id="pdfjs-last-page-button-label"></span>
332
+ </button>
333
+
334
+ <div class="horizontalToolbarSeparator"></div>
335
+
336
+ <button id="pageRotateCw" class="toolbarButton labeled" type="button" tabindex="0" data-l10n-id="pdfjs-page-rotate-cw-button">
337
+ <span data-l10n-id="pdfjs-page-rotate-cw-button-label"></span>
338
+ </button>
339
+ <button id="pageRotateCcw" class="toolbarButton labeled" type="button" tabindex="0" data-l10n-id="pdfjs-page-rotate-ccw-button">
340
+ <span data-l10n-id="pdfjs-page-rotate-ccw-button-label"></span>
341
+ </button>
342
+
343
+ <div class="horizontalToolbarSeparator"></div>
344
+
345
+ <div id="cursorToolButtons" role="radiogroup">
346
+ <button id="cursorSelectTool" class="toolbarButton labeled toggled" type="button" tabindex="0" data-l10n-id="pdfjs-cursor-text-select-tool-button" role="radio" aria-checked="true">
347
+ <span data-l10n-id="pdfjs-cursor-text-select-tool-button-label"></span>
348
+ </button>
349
+ <button id="cursorHandTool" class="toolbarButton labeled" type="button" tabindex="0" data-l10n-id="pdfjs-cursor-hand-tool-button" role="radio" aria-checked="false">
350
+ <span data-l10n-id="pdfjs-cursor-hand-tool-button-label"></span>
351
+ </button>
352
+ </div>
353
+
354
+ <div class="horizontalToolbarSeparator"></div>
355
+
356
+ <div id="scrollModeButtons" role="radiogroup">
357
+ <button id="scrollPage" class="toolbarButton labeled" type="button" tabindex="0" data-l10n-id="pdfjs-scroll-page-button" role="radio" aria-checked="false">
358
+ <span data-l10n-id="pdfjs-scroll-page-button-label"></span>
359
+ </button>
360
+ <button id="scrollVertical" class="toolbarButton labeled toggled" type="button" tabindex="0" data-l10n-id="pdfjs-scroll-vertical-button" role="radio" aria-checked="true">
361
+ <span data-l10n-id="pdfjs-scroll-vertical-button-label"></span>
362
+ </button>
363
+ <button id="scrollHorizontal" class="toolbarButton labeled" type="button" tabindex="0" data-l10n-id="pdfjs-scroll-horizontal-button" role="radio" aria-checked="false">
364
+ <span data-l10n-id="pdfjs-scroll-horizontal-button-label"></span>
365
+ </button>
366
+ <button id="scrollWrapped" class="toolbarButton labeled" type="button" tabindex="0" data-l10n-id="pdfjs-scroll-wrapped-button" role="radio" aria-checked="false">
367
+ <span data-l10n-id="pdfjs-scroll-wrapped-button-label"></span>
368
+ </button>
369
+ </div>
370
+
371
+ <div class="horizontalToolbarSeparator"></div>
372
+
373
+ <div id="spreadModeButtons" role="radiogroup">
374
+ <button id="spreadNone" class="toolbarButton labeled toggled" type="button" tabindex="0" data-l10n-id="pdfjs-spread-none-button" role="radio" aria-checked="true">
375
+ <span data-l10n-id="pdfjs-spread-none-button-label"></span>
376
+ </button>
377
+ <button id="spreadOdd" class="toolbarButton labeled" type="button" tabindex="0" data-l10n-id="pdfjs-spread-odd-button" role="radio" aria-checked="false">
378
+ <span data-l10n-id="pdfjs-spread-odd-button-label"></span>
379
+ </button>
380
+ <button id="spreadEven" class="toolbarButton labeled" type="button" tabindex="0" data-l10n-id="pdfjs-spread-even-button" role="radio" aria-checked="false">
381
+ <span data-l10n-id="pdfjs-spread-even-button-label"></span>
382
+ </button>
383
+ </div>
384
+
385
+ <div id="imageAltTextSettingsSeparator" class="horizontalToolbarSeparator hidden"></div>
386
+ <button id="imageAltTextSettings" type="button" class="toolbarButton labeled hidden" tabindex="0" data-l10n-id="pdfjs-image-alt-text-settings-button" aria-controls="altTextSettingsDialog">
387
+ <span data-l10n-id="pdfjs-image-alt-text-settings-button-label"></span>
388
+ </button>
389
+
390
+ <div class="horizontalToolbarSeparator"></div>
391
+
392
+ <button id="documentProperties" class="toolbarButton labeled" type="button" tabindex="0" data-l10n-id="pdfjs-document-properties-button" aria-controls="documentPropertiesDialog">
393
+ <span data-l10n-id="pdfjs-document-properties-button-label"></span>
394
+ </button>
395
+ </div>
396
+ </div> <!-- secondaryToolbar -->
397
+ </div>
398
+ </div>
399
+ </div>
400
+ <div id="loadingBar">
401
+ <div class="progress">
402
+ <div class="glimmer">
403
+ </div>
404
+ </div>
405
+ </div>
406
+ </div>
407
+ </div>
408
+
409
+ <div id="viewerContainer" tabindex="0">
410
+ <div id="viewer" class="pdfViewer"></div>
411
+ </div>
412
+ </div> <!-- mainContainer -->
413
+
414
+ <div id="dialogContainer">
415
+ <dialog id="passwordDialog">
416
+ <div class="row">
417
+ <label for="password" id="passwordText" data-l10n-id="pdfjs-password-label"></label>
418
+ </div>
419
+ <div class="row">
420
+ <input type="password" id="password" class="toolbarField">
421
+ </div>
422
+ <div class="buttonRow">
423
+ <button id="passwordCancel" class="dialogButton" type="button"><span data-l10n-id="pdfjs-password-cancel-button"></span></button>
424
+ <button id="passwordSubmit" class="dialogButton" type="button"><span data-l10n-id="pdfjs-password-ok-button"></span></button>
425
+ </div>
426
+ </dialog>
427
+ <dialog id="documentPropertiesDialog">
428
+ <div class="row">
429
+ <span id="fileNameLabel" data-l10n-id="pdfjs-document-properties-file-name"></span>
430
+ <p id="fileNameField" aria-labelledby="fileNameLabel">-</p>
431
+ </div>
432
+ <div class="row">
433
+ <span id="fileSizeLabel" data-l10n-id="pdfjs-document-properties-file-size"></span>
434
+ <p id="fileSizeField" aria-labelledby="fileSizeLabel">-</p>
435
+ </div>
436
+ <div class="separator"></div>
437
+ <div class="row">
438
+ <span id="titleLabel" data-l10n-id="pdfjs-document-properties-title"></span>
439
+ <p id="titleField" aria-labelledby="titleLabel">-</p>
440
+ </div>
441
+ <div class="row">
442
+ <span id="authorLabel" data-l10n-id="pdfjs-document-properties-author"></span>
443
+ <p id="authorField" aria-labelledby="authorLabel">-</p>
444
+ </div>
445
+ <div class="row">
446
+ <span id="subjectLabel" data-l10n-id="pdfjs-document-properties-subject"></span>
447
+ <p id="subjectField" aria-labelledby="subjectLabel">-</p>
448
+ </div>
449
+ <div class="row">
450
+ <span id="keywordsLabel" data-l10n-id="pdfjs-document-properties-keywords"></span>
451
+ <p id="keywordsField" aria-labelledby="keywordsLabel">-</p>
452
+ </div>
453
+ <div class="row">
454
+ <span id="creationDateLabel" data-l10n-id="pdfjs-document-properties-creation-date"></span>
455
+ <p id="creationDateField" aria-labelledby="creationDateLabel">-</p>
456
+ </div>
457
+ <div class="row">
458
+ <span id="modificationDateLabel" data-l10n-id="pdfjs-document-properties-modification-date"></span>
459
+ <p id="modificationDateField" aria-labelledby="modificationDateLabel">-</p>
460
+ </div>
461
+ <div class="row">
462
+ <span id="creatorLabel" data-l10n-id="pdfjs-document-properties-creator"></span>
463
+ <p id="creatorField" aria-labelledby="creatorLabel">-</p>
464
+ </div>
465
+ <div class="separator"></div>
466
+ <div class="row">
467
+ <span id="producerLabel" data-l10n-id="pdfjs-document-properties-producer"></span>
468
+ <p id="producerField" aria-labelledby="producerLabel">-</p>
469
+ </div>
470
+ <div class="row">
471
+ <span id="versionLabel" data-l10n-id="pdfjs-document-properties-version"></span>
472
+ <p id="versionField" aria-labelledby="versionLabel">-</p>
473
+ </div>
474
+ <div class="row">
475
+ <span id="pageCountLabel" data-l10n-id="pdfjs-document-properties-page-count"></span>
476
+ <p id="pageCountField" aria-labelledby="pageCountLabel">-</p>
477
+ </div>
478
+ <div class="row">
479
+ <span id="pageSizeLabel" data-l10n-id="pdfjs-document-properties-page-size"></span>
480
+ <p id="pageSizeField" aria-labelledby="pageSizeLabel">-</p>
481
+ </div>
482
+ <div class="separator"></div>
483
+ <div class="row">
484
+ <span id="linearizedLabel" data-l10n-id="pdfjs-document-properties-linearized"></span>
485
+ <p id="linearizedField" aria-labelledby="linearizedLabel">-</p>
486
+ </div>
487
+ <div class="buttonRow">
488
+ <button id="documentPropertiesClose" class="dialogButton" type="button"><span data-l10n-id="pdfjs-document-properties-close-button"></span></button>
489
+ </div>
490
+ </dialog>
491
+ <dialog class="dialog altText" id="altTextDialog" aria-labelledby="dialogLabel" aria-describedby="dialogDescription">
492
+ <div id="altTextContainer" class="mainContainer">
493
+ <div id="overallDescription">
494
+ <span id="dialogLabel" data-l10n-id="pdfjs-editor-alt-text-dialog-label" class="title"></span>
495
+ <span id="dialogDescription" data-l10n-id="pdfjs-editor-alt-text-dialog-description"></span>
496
+ </div>
497
+ <div id="addDescription">
498
+ <div class="radio">
499
+ <div class="radioButton">
500
+ <input type="radio" id="descriptionButton" name="altTextOption" tabindex="0" aria-describedby="descriptionAreaLabel" checked>
501
+ <label for="descriptionButton" data-l10n-id="pdfjs-editor-alt-text-add-description-label"></label>
502
+ </div>
503
+ <div class="radioLabel">
504
+ <span id="descriptionAreaLabel" data-l10n-id="pdfjs-editor-alt-text-add-description-description"></span>
505
+ </div>
506
+ </div>
507
+ <div class="descriptionArea">
508
+ <textarea id="descriptionTextarea" aria-labelledby="descriptionAreaLabel" data-l10n-id="pdfjs-editor-alt-text-textarea" tabindex="0"></textarea>
509
+ </div>
510
+ </div>
511
+ <div id="markAsDecorative">
512
+ <div class="radio">
513
+ <div class="radioButton">
514
+ <input type="radio" id="decorativeButton" name="altTextOption" aria-describedby="decorativeLabel">
515
+ <label for="decorativeButton" data-l10n-id="pdfjs-editor-alt-text-mark-decorative-label"></label>
516
+ </div>
517
+ <div class="radioLabel">
518
+ <span id="decorativeLabel" data-l10n-id="pdfjs-editor-alt-text-mark-decorative-description"></span>
519
+ </div>
520
+ </div>
521
+ </div>
522
+ <div id="buttons">
523
+ <button id="altTextCancel" class="secondaryButton" type="button" tabindex="0"><span data-l10n-id="pdfjs-editor-alt-text-cancel-button"></span></button>
524
+ <button id="altTextSave" class="primaryButton" type="button" tabindex="0"><span data-l10n-id="pdfjs-editor-alt-text-save-button"></span></button>
525
+ </div>
526
+ </div>
527
+ </dialog>
528
+ <dialog class="dialog newAltText" id="newAltTextDialog" aria-labelledby="newAltTextTitle" aria-describedby="newAltTextDescription" tabindex="0">
529
+ <div id="newAltTextContainer" class="mainContainer">
530
+ <div class="title">
531
+ <span id="newAltTextTitle" data-l10n-id="pdfjs-editor-new-alt-text-dialog-edit-label" role="sectionhead" tabindex="0"></span>
532
+ </div>
533
+ <div id="mainContent">
534
+ <div id="descriptionAndSettings">
535
+ <div id="descriptionInstruction">
536
+ <div id="newAltTextDescriptionContainer">
537
+ <div class="altTextSpinner" role="status" aria-live="polite"></div>
538
+ <textarea id="newAltTextDescriptionTextarea" aria-labelledby="descriptionAreaLabel" data-l10n-id="pdfjs-editor-new-alt-text-textarea" tabindex="0"></textarea>
539
+ </div>
540
+ <span id="newAltTextDescription" role="note" data-l10n-id="pdfjs-editor-new-alt-text-description"></span>
541
+ <div id="newAltTextDisclaimer" role="note"><div><span data-l10n-id="pdfjs-editor-new-alt-text-disclaimer1"></span> <a href="https://support.mozilla.org/en-US/kb/pdf-alt-text" target="_blank" rel="noopener noreferrer" id="newAltTextLearnMore" data-l10n-id="pdfjs-editor-new-alt-text-disclaimer-learn-more-url" tabindex="0"></a></div></div>
542
+ </div>
543
+ <div id="newAltTextCreateAutomatically" class="toggler">
544
+ <button id="newAltTextCreateAutomaticallyButton" class="toggle-button" type="button" aria-pressed="true" tabindex="0"></button>
545
+ <label for="newAltTextCreateAutomaticallyButton" class="togglerLabel" data-l10n-id="pdfjs-editor-new-alt-text-create-automatically-button-label"></label>
546
+ </div>
547
+ <div id="newAltTextDownloadModel" class="hidden">
548
+ <span id="newAltTextDownloadModelDescription" data-l10n-id="pdfjs-editor-new-alt-text-ai-model-downloading-progress" aria-valuemin="0" data-l10n-args='{ "totalSize": 0, "downloadedSize": 0 }'></span>
549
+ </div>
550
+ </div>
551
+ <div id="newAltTextImagePreview"></div>
552
+ </div>
553
+ <div id="newAltTextError" class="messageBar">
554
+ <div>
555
+ <div>
556
+ <span class="title" data-l10n-id="pdfjs-editor-new-alt-text-error-title"></span>
557
+ <span class="description" data-l10n-id="pdfjs-editor-new-alt-text-error-description"></span>
558
+ </div>
559
+ <button id="newAltTextCloseButton" class="closeButton" type="button" tabindex="0"><span data-l10n-id="pdfjs-editor-new-alt-text-error-close-button"></span></button>
560
+ </div>
561
+ </div>
562
+ <div id="newAltTextButtons" class="dialogButtonsGroup">
563
+ <button id="newAltTextCancel" type="button" class="secondaryButton hidden" tabindex="0"><span data-l10n-id="pdfjs-editor-alt-text-cancel-button"></span></button>
564
+ <button id="newAltTextNotNow" type="button" class="secondaryButton" tabindex="0"><span data-l10n-id="pdfjs-editor-new-alt-text-not-now-button"></span></button>
565
+ <button id="newAltTextSave" type="button" class="primaryButton" tabindex="0"><span data-l10n-id="pdfjs-editor-alt-text-save-button"></span></button>
566
+ </div>
567
+ </div>
568
+ </dialog>
569
+
570
+ <dialog class="dialog" id="altTextSettingsDialog" aria-labelledby="altTextSettingsTitle">
571
+ <div id="altTextSettingsContainer" class="mainContainer">
572
+ <div class="title">
573
+ <span id="altTextSettingsTitle" data-l10n-id="pdfjs-editor-alt-text-settings-dialog-label" role="sectionhead" tabindex="0" class="title"></span>
574
+ </div>
575
+ <div id="automaticAltText">
576
+ <span data-l10n-id="pdfjs-editor-alt-text-settings-automatic-title"></span>
577
+ <div id="automaticSettings">
578
+ <div id="createModelSetting">
579
+ <div class="toggler">
580
+ <button id="createModelButton" type="button" class="toggle-button" aria-pressed="true" tabindex="0"></button>
581
+ <label for="createModelButton" class="togglerLabel" data-l10n-id="pdfjs-editor-alt-text-settings-create-model-button-label"></label>
582
+ </div>
583
+ <div id="createModelDescription" class="description">
584
+ <span data-l10n-id="pdfjs-editor-alt-text-settings-create-model-description"></span> <a href="https://support.mozilla.org/en-US/kb/pdf-alt-text" target="_blank" rel="noopener noreferrer" id="altTextSettingsLearnMore" data-l10n-id="pdfjs-editor-new-alt-text-disclaimer-learn-more-url" tabindex="0"></a>
585
+ </div>
586
+ </div>
587
+ <div id="aiModelSettings">
588
+ <div>
589
+ <span data-l10n-id="pdfjs-editor-alt-text-settings-download-model-label" data-l10n-args='{ "totalSize": 180 }'></span>
590
+ <div id="aiModelDescription" class="description">
591
+ <span data-l10n-id="pdfjs-editor-alt-text-settings-ai-model-description"></span>
592
+ </div>
593
+ </div>
594
+ <button id="deleteModelButton" type="button" class="secondaryButton" tabindex="0"><span data-l10n-id="pdfjs-editor-alt-text-settings-delete-model-button"></span></button>
595
+ <button id="downloadModelButton" type="button" class="secondaryButton" tabindex="0"><span data-l10n-id="pdfjs-editor-alt-text-settings-download-model-button"></span></button>
596
+ </div>
597
+ </div>
598
+ </div>
599
+ <div class="dialogSeparator"></div>
600
+ <div id="altTextEditor">
601
+ <span data-l10n-id="pdfjs-editor-alt-text-settings-editor-title"></span>
602
+ <div id="showAltTextEditor">
603
+ <div class="toggler">
604
+ <button id="showAltTextDialogButton" type="button" class="toggle-button" aria-pressed="true" tabindex="0"></button>
605
+ <label for="showAltTextDialogButton" class="togglerLabel" data-l10n-id="pdfjs-editor-alt-text-settings-show-dialog-button-label"></label>
606
+ </div>
607
+ <div id="showAltTextDialogDescription" class="description">
608
+ <span data-l10n-id="pdfjs-editor-alt-text-settings-show-dialog-description"></span>
609
+ </div>
610
+ </div>
611
+ </div>
612
+ <div id="buttons" class="dialogButtonsGroup">
613
+ <button id="altTextSettingsCloseButton" type="button" class="primaryButton" tabindex="0"><span data-l10n-id="pdfjs-editor-alt-text-settings-close-button"></span></button>
614
+ </div>
615
+ </div>
616
+ </dialog>
617
+
618
+ <dialog class="dialog signatureDialog" id="addSignatureDialog" aria-labelledby="addSignatureDialogLabel">
619
+ <span id="addSignatureDialogLabel" data-l10n-id="pdfjs-editor-add-signature-dialog-label"></span>
620
+ <div id="addSignatureContainer" class="mainContainer">
621
+ <div class="title">
622
+ <span role="sectionhead" data-l10n-id="pdfjs-editor-add-signature-dialog-title" tabindex="0"></span>
623
+ </div>
624
+ <div role="tablist" id="addSignatureOptions">
625
+ <button id="addSignatureTypeButton" type="button" role="tab" aria-selected="true" aria-controls="addSignatureTypeContainer" data-l10n-id="pdfjs-editor-add-signature-type-button" tabindex="0"></button>
626
+ <button id="addSignatureDrawButton" type="button" role="tab" aria-selected="false" aria-controls="addSignatureDrawContainer" data-l10n-id="pdfjs-editor-add-signature-draw-button" tabindex="0"></button>
627
+ <button id="addSignatureImageButton" type="button" role="tab" aria-selected="false" aria-controls="addSignatureImageContainer" data-l10n-id="pdfjs-editor-add-signature-image-button" tabindex="-1"></button>
628
+ </div>
629
+ <div id="addSignatureActionContainer" data-selected="type">
630
+ <div id="addSignatureTypeContainer" role="tabpanel" aria-labelledby="addSignatureTypeContainer">
631
+ <input id="addSignatureTypeInput" type="text" data-l10n-id="pdfjs-editor-add-signature-type-input" tabindex="0"></input>
632
+ </div>
633
+ <div id="addSignatureDrawContainer" role="tabpanel" aria-labelledby="addSignatureDrawButton" tabindex="-1">
634
+ <svg id="addSignatureDraw" xmlns="http://www.w3.org/2000/svg" aria-labelledby="addSignatureDrawPlaceholder"></svg>
635
+ <span id="addSignatureDrawPlaceholder" data-l10n-id="pdfjs-editor-add-signature-draw-placeholder"></span>
636
+ <div id="thickness">
637
+ <div>
638
+ <label for="addSignatureDrawThickness" data-l10n-id="pdfjs-editor-add-signature-draw-thickness-range-label"></label>
639
+ <input type="range" id="addSignatureDrawThickness" min="1" max="5" step="1" value="1" data-l10n-id="pdfjs-editor-add-signature-draw-thickness-range" data-l10n-args='{ "thickness": 1 }' tabindex="0">
640
+ </div>
641
+ </div>
642
+ </div>
643
+ <div id="addSignatureImageContainer" role="tabpanel" aria-labelledby="addSignatureImageButton" tabindex="-1">
644
+ <svg id="addSignatureImage" xmlns="http://www.w3.org/2000/svg" aria-labelledby="addSignatureImagePlaceholder"></svg>
645
+ <div id="addSignatureImagePlaceholder">
646
+ <span data-l10n-id="pdfjs-editor-add-signature-image-placeholder"></span>
647
+ <label id="addSignatureImageBrowse" for="addSignatureFilePicker" tabindex="0">
648
+ <a data-l10n-id="pdfjs-editor-add-signature-image-browse-link"></a>
649
+ </label>
650
+ <input id="addSignatureFilePicker" type="file"></input>
651
+ </div>
652
+ </div>
653
+ <div id="addSignatureControls">
654
+ <div id="horizontalContainer">
655
+ <div id="addSignatureDescriptionContainer">
656
+ <label for="addSignatureDescInput" data-l10n-id="pdfjs-editor-add-signature-description-label"></label>
657
+ <span id="addSignatureDescription" class="inputWithClearButton">
658
+ <input id="addSignatureDescInput" type="text" data-l10n-id="pdfjs-editor-add-signature-description-input" tabindex="0"></input>
659
+ <button class="clearInputButton" type="button" tabindex="0" aria-hidden="true"></button>
660
+ </span>
661
+ </div>
662
+ <button id="clearSignatureButton" type="button" data-l10n-id="pdfjs-editor-add-signature-clear-button" tabindex="0"><span data-l10n-id="pdfjs-editor-add-signature-clear-button-label"></span></button>
663
+ </div>
664
+ <div id="addSignatureSaveContainer">
665
+ <input type="checkbox" id="addSignatureSaveCheckbox"></input>
666
+ <label for="addSignatureSaveCheckbox" data-l10n-id="pdfjs-editor-add-signature-save-checkbox"></label>
667
+ <span></span>
668
+ <span id="addSignatureSaveWarning" data-l10n-id="pdfjs-editor-add-signature-save-warning-message"></span>
669
+ </div>
670
+ </div>
671
+ <div id="addSignatureError" hidden="true" class="messageBar">
672
+ <div>
673
+ <div>
674
+ <span id="addSignatureErrorTitle" class="title" data-l10n-id="pdfjs-editor-add-signature-image-upload-error-title"></span>
675
+ <span id="addSignatureErrorDescription" class="description" data-l10n-id="pdfjs-editor-add-signature-image-upload-error-description"></span>
676
+ </div>
677
+ <button id="addSignatureErrorCloseButton" class="closeButton" type="button" tabindex="0"><span data-l10n-id="pdfjs-editor-add-signature-error-close-button"></span></button>
678
+ </div>
679
+ </div>
680
+ <div class="dialogButtonsGroup">
681
+ <button id="addSignatureCancelButton" type="button" class="secondaryButton" tabindex="0"><span data-l10n-id="pdfjs-editor-add-signature-cancel-button"></span></button>
682
+ <button id="addSignatureAddButton" type="button" class="primaryButton" disabled tabindex="0"><span data-l10n-id="pdfjs-editor-add-signature-add-button"></span></button>
683
+ </div>
684
+ </div>
685
+ </div>
686
+ </dialog>
687
+
688
+ <dialog class="dialog signatureDialog" id="editSignatureDescriptionDialog" aria-labelledby="editSignatureDescriptionTitle">
689
+ <div id="editSignatureDescriptionContainer" class="mainContainer">
690
+ <div class="title">
691
+ <span id="editSignatureDescriptionTitle" role="sectionhead" data-l10n-id="pdfjs-editor-edit-signature-dialog-title" tabindex="0"></span>
692
+ </div>
693
+ <div id="editSignatureDescriptionAndView">
694
+ <div id="editSignatureDescriptionContainer">
695
+ <label for="editSignatureDescInput" data-l10n-id="pdfjs-editor-add-signature-description-label"></label>
696
+ <span id="editSignatureDescription" class="inputWithClearButton">
697
+ <input id="editSignatureDescInput" type="text" data-l10n-id="pdfjs-editor-add-signature-description-input" tabindex="0"></input>
698
+ <button class="clearInputButton" type="button" tabindex="0" aria-hidden="true"></button>
699
+ </span>
700
+ </div>
701
+ <svg id="editSignatureView" xmlns="http://www.w3.org/2000/svg"></svg>
702
+ </div>
703
+ <div class="dialogButtonsGroup">
704
+ <button id="editSignatureCancelButton" type="button" class="secondaryButton" tabindex="0"><span data-l10n-id="pdfjs-editor-add-signature-cancel-button"></span></button>
705
+ <button id="editSignatureUpdateButton" type="button" class="primaryButton" disabled tabindex="0"><span data-l10n-id="pdfjs-editor-edit-signature-update-button"></span></button>
706
+ </div>
707
+ </div>
708
+ </dialog>
709
+
710
+ <dialog class="dialog commentManager" id="commentManagerDialog">
711
+ <div class="mainContainer">
712
+ <div id="commentManagerToolbar">
713
+ <button id="commentActionsButton" class="toolbarButton" type="button" aria-expanded="false" aria-haspopup="true" aria-controls="commentActionsMenu" tabindex="0" data-l10n-id="pdfjs-editor-edit-comment-actions-button">
714
+ <span data-l10n-id="pdfjs-editor-edit-comment-actions-button-label"></span>
715
+ </button>
716
+ <menu class="hidden" role="menu" id="commentActionsMenu">
717
+ <button id="commentActionsEditButton" role="menuitem" type="button" tabindex="0">
718
+ <span data-l10n-id="pdfjs-editor-edit-comment-actions-edit-button-label"></span>
719
+ </button>
720
+ <button id="commentActionsDeleteButton" role="menuitem" type="button" tabindex="0">
721
+ <span data-l10n-id="pdfjs-editor-edit-comment-actions-delete-button-label"></span>
722
+ </button>
723
+ </menu>
724
+ <button id="commentCloseButton" class="toolbarButton" type="button" tabindex="0" data-l10n-id="pdfjs-editor-edit-comment-close-button">
725
+ <span data-l10n-id="pdfjs-editor-edit-comment-close-button-label"></span>
726
+ </button>
727
+ </div>
728
+ <textarea class="hidden" id="commentManagerTextInput" data-l10n-id="pdfjs-editor-edit-comment-manager-text-input"></textarea>
729
+ <div class="hidden" id="commentManagerTextView"></div>
730
+ <div class="dialogButtonsGroup">
731
+ <button id="commentManagerCancelButton" type="button" class="secondaryButton" tabindex="0">
732
+ <span data-l10n-id="pdfjs-editor-edit-comment-manager-cancel-button"></span>
733
+ </button>
734
+ <button id="commentManagerSaveButton" type="button" class="primaryButton" disabled tabindex="0">
735
+ <span data-l10n-id="pdfjs-editor-edit-comment-manager-save-button"></span>
736
+ </button>
737
+ </div>
738
+ </div>
739
+ </dialog>
740
+
741
+ <dialog id="printServiceDialog" style="min-width: 200px;">
742
+ <div class="row">
743
+ <span data-l10n-id="pdfjs-print-progress-message"></span>
744
+ </div>
745
+ <div class="row">
746
+ <progress value="0" max="100"></progress>
747
+ <span data-l10n-id="pdfjs-print-progress-percent" data-l10n-args='{ "progress": 0 }' class="relative-progress">0%</span>
748
+ </div>
749
+ <div class="buttonRow">
750
+ <button id="printCancel" class="dialogButton" type="button"><span data-l10n-id="pdfjs-print-progress-close-button"></span></button>
751
+ </div>
752
+ </dialog>
753
+ </div> <!-- dialogContainer -->
754
+
755
+ <div id="editorUndoBar" class="messageBar" role="status" aria-labelledby="editorUndoBarMessage" tabindex="-1" hidden>
756
+ <div>
757
+ <div>
758
+ <span id="editorUndoBarMessage" class="description"></span>
759
+ </div>
760
+ <button id="editorUndoBarUndoButton" class="undoButton" type="button" tabindex="0" data-l10n-id="pdfjs-editor-undo-bar-undo-button">
761
+ <span data-l10n-id="pdfjs-editor-undo-bar-undo-button-label"></span>
762
+ </button>
763
+ <button id="editorUndoBarCloseButton" class="closeButton" type="button" tabindex="0" data-l10n-id="pdfjs-editor-undo-bar-close-button">
764
+ <span data-l10n-id="pdfjs-editor-undo-bar-close-button-label"></span>
765
+ </button>
766
+ </div>
767
+ </div> <!-- editorUndoBar -->
768
+
769
+ </div> <!-- outerContainer -->
770
+ <div id="printContainer"></div>
771
+ </body>
772
+ </html>
773
+ <% else %>
774
+ <p>No PDF file specified.</p>
775
+ <% end %>