| /** |
| * @licstart The following is the entire license notice for the |
| * Javascript code in this page |
| * |
| * Copyright 2020 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 |
| */ |
| "use strict"; |
| |
| Object.defineProperty(exports, "__esModule", { |
| value: true |
| }); |
| exports.BaseTreeViewer = void 0; |
| |
| var _pdf = require("../pdf"); |
| |
| class BaseTreeViewer { |
| constructor(options) { |
| if (this.constructor === BaseTreeViewer) { |
| throw new Error("Cannot initialize BaseTreeViewer."); |
| } |
| |
| this.container = options.container; |
| this.eventBus = options.eventBus; |
| this.reset(); |
| } |
| |
| reset() { |
| this._lastToggleIsShow = true; |
| this.container.textContent = ""; |
| this.container.classList.remove("treeWithDeepNesting"); |
| } |
| |
| _dispatchEvent(count) { |
| throw new Error("Not implemented: _dispatchEvent"); |
| } |
| |
| _bindLink(element, params) { |
| throw new Error("Not implemented: _bindLink"); |
| } |
| |
| _normalizeTextContent(str) { |
| return (0, _pdf.removeNullCharacters)(str) || "\u2013"; |
| } |
| |
| _addToggleButton(div, hidden = false) { |
| const toggler = document.createElement("div"); |
| toggler.className = "treeItemToggler"; |
| |
| if (hidden) { |
| toggler.classList.add("treeItemsHidden"); |
| } |
| |
| toggler.onclick = evt => { |
| evt.stopPropagation(); |
| toggler.classList.toggle("treeItemsHidden"); |
| |
| if (evt.shiftKey) { |
| const shouldShowAll = !toggler.classList.contains("treeItemsHidden"); |
| |
| this._toggleTreeItem(div, shouldShowAll); |
| } |
| }; |
| |
| div.insertBefore(toggler, div.firstChild); |
| } |
| |
| _toggleTreeItem(root, show = false) { |
| this._lastToggleIsShow = show; |
| |
| for (const toggler of root.querySelectorAll(".treeItemToggler")) { |
| toggler.classList.toggle("treeItemsHidden", !show); |
| } |
| } |
| |
| _toggleAllTreeItems() { |
| this._toggleTreeItem(this.container, !this._lastToggleIsShow); |
| } |
| |
| render(params) { |
| throw new Error("Not implemented: render"); |
| } |
| |
| } |
| |
| exports.BaseTreeViewer = BaseTreeViewer; |