1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-20 07:08:08 +02:00
pdf.js/web
Jonas Jenwald 66aabe3ec7 [api-minor] Add support for toggling of Optional Content in the viewer (issue 12096)
*Besides, obviously, adding viewer support:* This patch attempts to improve the general API for Optional Content Groups slightly, by adding a couple of new methods for interacting with the (more complex) data structures of `OptionalContentConfig`-instances. (Thus allowing us to mark some of the data as "private", given that it probably shouldn't be manipulated directly.)

By utilizing not just the "raw" Optional Content Groups, but the data from the `/Order` array when available, we can thus display the Layers in a proper tree-structure with collapsible headings for PDF documents that utilizes that feature.

Note that it's possible to reset all Optional Content Groups to their default visibility state, simply by double-clicking on the Layers-button in the sidebar.
(Currently that's indicated in the Layers-button tooltip, which is obviously easy to overlook, however it's probably the best we can do for now without adding more buttons, or even a dropdown-toolbar, to the sidebar.)

Also, the current Layers-button icons are a little rough around the edges, quite literally, but given that the viewer will soon have its UI modernized anyway they hopefully suffice in the meantime.

To give users *full* control of the visibility of the various Optional Content Groups, even those which according to the `/Order` array should not (by default) be toggleable in the UI, this patch will place those under a *custom* heading which:
 - Is collapsed by default, and placed at the bottom of the Layers-tree, to be a bit less obtrusive.
 - Uses a slightly different formatting, compared to the "regular" headings.
 - Is localizable.

Finally, note that the thumbnails are *purposely* always rendered with all Optional Content Groups at their default visibility state, since that seems the most useful and it's also consistent with other viewers.
To ensure that this works as intended, we'll thus disable the `PDFThumbnailView.setImage` functionality when the Optional Content Groups have been changed in the viewer. (This obviously means that we'll re-render thumbnails instead of using the rendered pages. However, this situation ought to be rare enough for this to not really be a problem.)
2020-08-30 16:28:40 +02:00
..
images [api-minor] Add support for toggling of Optional Content in the viewer (issue 12096) 2020-08-30 16:28:40 +02:00
.eslintrc Enable the ESLint prefer-const rule globally (PR 11450 follow-up) 2020-01-25 00:20:22 +01:00
.gitignore Remove obselete file from .gitignore 2015-01-26 16:44:45 +01:00
annotation_layer_builder.css Convert all six-digit HEX colors to RGBA colors 2020-01-01 14:52:37 +01:00
annotation_layer_builder.js Also enable renderInteractiveForms by default in the viewer components (PR 12201 follow-up) 2020-08-22 14:24:04 +02:00
app.js [api-minor] Add support for toggling of Optional Content in the viewer (issue 12096) 2020-08-30 16:28:40 +02:00
app_options.js Enable renderInteractiveForms by default. 2020-08-12 10:28:27 -07:00
base_tree_viewer.js Extract common methods from PDFOutlineViewer/PDFAttachmentViewer into a new abstract BaseTreeViewer class 2020-08-05 23:08:06 +02:00
base_viewer.js [api-minor] Add support for toggling of Optional Content in the viewer (issue 12096) 2020-08-30 16:28:40 +02:00
chrome-i18n-allow-access-to-file-urls.json Add translations of "Allow access to file URLs" 2015-08-14 18:59:55 +02:00
chromecom.js Update Prettier to version 2.0 2020-04-14 12:28:14 +02:00
compressed.tracemonkey-pldi-09.pdf Add Makefile. Move some files around to make building the website easier. 2011-07-05 10:53:57 -07:00
debugger.js Update Prettier to version 2.0 2020-04-14 12:28:14 +02:00
download_manager.js Support file save triggered from the Firefox integrated version. 2020-08-20 18:05:08 -07:00
firefox_print_service.js [api-minor] Add support for toggling of Optional Content in the viewer (issue 12096) 2020-08-30 16:28:40 +02:00
firefoxcom.js Support file save triggered from the Firefox integrated version. 2020-08-20 18:05:08 -07:00
genericcom.js Re-factor the various ExternalServices, used in the default viewer, to classes with static methods 2020-01-15 14:26:47 +01:00
genericl10n.js Enable import/extensions of ESlint plugin to enforce all import have a .js file extension. 2020-01-18 10:53:01 +09:00
grab_to_pan.js Update Prettier to version 2.0 2020-04-14 12:28:14 +02:00
interfaces.js Also enable renderInteractiveForms by default in the viewer components (PR 12201 follow-up) 2020-08-22 14:24:04 +02:00
overlay_manager.js Fix the linting errors, from the Prettier auto-formatting, that ESLint --fix couldn't handle 2019-12-26 12:35:12 +01:00
password_prompt.js Ensure that all import and require statements, in the entire code-base, have a .js file extension 2020-01-04 13:01:43 +01:00
pdf_attachment_viewer.js Download, rather than opening, PDF attachments in Firefox (bug 1661259, PR 12286 follow-up) 2020-08-27 16:30:15 +02:00
pdf_cursor_tools.js Re-factor the EventBus to allow servicing of "external" event listeners *after* the viewer components have updated 2020-02-27 19:38:13 +01:00
pdf_document_properties.js Remove unnecessary empty string fallback from the getPDFFileNameFromURL call in web/pdf_document_properties.js (PR 10114 follow-up) 2020-05-20 12:09:04 +02:00
pdf_find_bar.js [api-minor] Remove the getGlobalEventBus viewer functionality (PR 11631 follow-up) 2020-03-29 12:20:23 +02:00
pdf_find_controller.js Return the query with the findcontrols 2020-08-20 11:18:43 +01:00
pdf_find_utils.js Enable auto-formatting of the entire code-base using Prettier (issue 11444) 2019-12-26 12:34:24 +01:00
pdf_history.js Attempt to respect the "zoom" hash parameter, even when the "nameddest" parameter is present (issue 11875) 2020-05-07 13:53:07 +02:00
pdf_layer_viewer.js [api-minor] Add support for toggling of Optional Content in the viewer (issue 12096) 2020-08-30 16:28:40 +02:00
pdf_link_service.js Attempt to respect the "zoom" hash parameter, even when the "nameddest" parameter is present (issue 11875) 2020-05-07 13:53:07 +02:00
pdf_outline_viewer.js Extract common methods from PDFOutlineViewer/PDFAttachmentViewer into a new abstract BaseTreeViewer class 2020-08-05 23:08:06 +02:00
pdf_page_view.js [api-minor] Add support for toggling of Optional Content in the viewer (issue 12096) 2020-08-30 16:28:40 +02:00
pdf_presentation_mode.js Add passive: false when removing wheel listeners 2020-03-25 22:42:27 +08:00
pdf_print_service.js [api-minor] Add support for toggling of Optional Content in the viewer (issue 12096) 2020-08-30 16:28:40 +02:00
pdf_rendering_queue.js Prevent circular references in the /Pages tree 2020-02-19 01:49:39 +01:00
pdf_sidebar.js [api-minor] Add support for toggling of Optional Content in the viewer (issue 12096) 2020-08-30 16:28:40 +02:00
pdf_sidebar_resizer.js Re-factor the EventBus to allow servicing of "external" event listeners *after* the viewer components have updated 2020-02-27 19:38:13 +01:00
pdf_single_page_viewer.js Rename BaseViewer._setDocumentViewerElement to BaseViewer._viewerElement 2020-03-24 16:54:37 +01:00
pdf_thumbnail_view.js [api-minor] Add support for toggling of Optional Content in the viewer (issue 12096) 2020-08-30 16:28:40 +02:00
pdf_thumbnail_viewer.js [api-minor] Add support for toggling of Optional Content in the viewer (issue 12096) 2020-08-30 16:28:40 +02:00
pdf_viewer.component.js [api-minor] Deprecate getGlobalEventBus and update the "viewer components" examples accordingly 2020-02-27 14:44:48 +01:00
pdf_viewer.css Convert all named colors to RGBA colors 2020-01-01 14:48:56 +01:00
pdf_viewer.js Rename BaseViewer._setDocumentViewerElement to BaseViewer._viewerElement 2020-03-24 16:54:37 +01:00
pdfjs.js Enable auto-formatting of the entire code-base using Prettier (issue 11444) 2019-12-26 12:34:24 +01:00
preferences.js Remove the SystemJS dependency from the web/preferences.js file 2020-05-16 16:22:15 +02:00
secondary_toolbar.js Update Prettier to version 2.0 2020-04-14 12:28:14 +02:00
text_layer_builder.css Convert all RGB colors to RGBA colors 2020-01-01 14:48:55 +01:00
text_layer_builder.js Update Prettier to version 2.0 2020-04-14 12:28:14 +02:00
toolbar.js Update the zoom dropdown width calculation to work better in locales with long zoom-strings (PR 11077 follow-up) 2020-08-20 09:57:42 +02:00
ui_utils.js Bug 1392361 - Fix zooming sensitivity on macOS 2020-08-12 17:18:50 -04:00
view_history.js Add a bit more validation in the ViewHistory constructor 2020-03-21 13:55:06 +01:00
viewer-snippet-chrome-extension.html Wraps mozL10n to async calls; splits firefox and generic l10n libs. 2017-05-31 09:22:25 -05:00
viewer-snippet-chrome-overlays.html [CRX] Add file chooser as fallback (fixes #9411) 2018-03-21 18:21:46 +01:00
viewer-snippet-firefox-extension.html Stop bundling the ReadableStream polyfill in MOZCENTRAL builds (PR 10470 follow-up) 2019-01-23 20:33:20 +01:00
viewer-snippet-minified.html Remove XHTML leftovers from the viewer HTML files 2016-02-14 13:23:34 +01:00
viewer-snippet.html Wraps mozL10n to async calls; splits firefox and generic l10n libs. 2017-05-31 09:22:25 -05:00
viewer.css [api-minor] Add support for toggling of Optional Content in the viewer (issue 12096) 2020-08-30 16:28:40 +02:00
viewer.html [api-minor] Add support for toggling of Optional Content in the viewer (issue 12096) 2020-08-30 16:28:40 +02:00
viewer.js [api-minor] Add support for toggling of Optional Content in the viewer (issue 12096) 2020-08-30 16:28:40 +02:00
viewer_compatibility.js [api-minor] Remove the disableCreateObjectURL option from the getDocument parameters, since it's now unused in the API 2020-05-22 00:22:48 +02:00